当前位置: 首页 > news >正文

高端营销型网站长春自助建站模板

高端营销型网站,长春自助建站模板,嘉兴网站制作优化,做商城微信网站Word Count作业 一.个人Gitee地址#xff1a;https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令#xff0c;基本要求如下#xff1a; 命令格式#xff1a; wc.exe [para] filename [para] filename ... -o filename 功… Word Count作业 一.个人Gitee地址https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令基本要求如下 命令格式 wc.exe [para] filename [para] filename ... -o filename 功能 wc.exe -c file.c返回文件file.c的字符数 wc.exe -w file.c返回文件file.c的单词总数 wc.exe -l file.c返回文件file.c的总行数 wc.exe -o outputFile.txt将结果输出到指定文件 要求 -o后面必须跟一个文件 -c -w -l可以同时出现 -c -w -l可以合并成 -wcl即命令可以连写 如果不指定输出文件则将结果默认保存在result.txt里面 三.PSP2.1表格 PSP2.1PSP阶段预估耗时分钟实际耗时分钟Planning计划55· Estimate· 估计这个任务需要多少时间55Development开发340635· Analysis· 需求分析包括学习新技术2030· Design Spec· 生成设计文档3030· Design Review· 设计复审和同事审核设计文档1015· Coding Standard· 代码规范为目前的开发制定合适的规范55· Design· 具体设计1520· Coding· 具体编码200400· Code Review· 代码复审4030· Test· 测试自我测试修改代码提交修改2030Reporting报告6050· Test Report· 测试报告2015· Size Measurement· 计算工作量105· Postmortem Process improvement Plan· 事后总结并提出过程改进计划3030 合计405690四.解题思路 ​ 由于自己对C语言比较熟悉主要是C语言编译过后就是exe其他语言还要打包就直接用C语言写了因此选择用C语言来实现这个项目。刚拿到题的时候仔细分析了一下发现在功能上的要求不高甚至不用校验单词的有效性凡是以空格和逗号隔开的都算是单词因此第一次作业的难点应该在于命令行参数的解析上面。 ​ 接下来我用C语言写了一个简单的demo尝试着梳理一下程序构建思路应该如何设计模块怎样划分。demo中所有的功能都在main函数里面没有上传到码云。 写好demo后大致整理了一下解题思路 1.程序执行流程分析 ​ 根据项目的要求该程序执行的大体流程为首先用户执行程序并附带各种参数程序首先要分析处理各种选项校验选项的有效性并将各种参数和对应的文件联系在一起然后对不同的文件执行该文件对用的各种操作然后将最终的结果一并保存在输出文件中。 2.数据结构设计 ​ 根据对程序执行流程的分析由于不同的文件对应着不同的操作因此需要将文件名和其对应的操作绑定在一起由此想到了用结构体保存一个文件的相关信息然后使用链表将各个文件连起来。待命令处理完毕后只需遍历链表即可对各个文件执行相应的操作。文件的结构体如下 // 命令结构体 // 解析命令时存储相关信息 struct Node {bool _c;bool _w;bool _l;bool _hasFile;char inFile[100];int row;int character;int words;struct Node *next; };   3.模块划分 根据程序的执行流程可以将程序划分为以下几个模块 (1).主函数 主函数中主要是一些基本的处理和一些简单的逻辑的处理负责调用其他函数 (2).命令处理模块 ​ 对于用户输入的命令的处理有很多种办法其中最常用的就是遍历数组或者将输入的命令编程字符串然后解析字符串我选择的是将用户输入的各种选项和命令拼接成一个字符串然后遍历整个字符串并做相应的分析。 (3).统计模块 ​ 统计模块主要就是对每个文件做相应的统计操作包括对行数的统计对单词数的统计对字符数的统计每个功能写在一个单独的函数里面。统计完字符后顺便将数据写入文件。 五.关键代码分析 1.命令处理函数 1 // 对用户输入的命令进行分析2 // 传入的用户输入的命令的字符串中间用空格隔开3 // 如果是-开头的则认为是选项4 // 如果检测到-o就立即读取后面紧跟的输出文件5 // 如果不是-开头的就认为是输入文件6 7 // 第二个参数是一串文件的头结点8 void analyseCommand(char commandStr[], struct Node *Head)9 {10 // 遍历整个字符串11 initFileNode(Head);12 struct Node *cur;13 cur Head;14 for (int i 0;; i)15 {16 // 读出当前字符17 char c commandStr[i];18 // 如果遍历到了\0说明字符串结束则退出函数19 if (c 0)20 return;21 // 如果c是-则应该是一个选项22 if (c -)23 {24 i;25 // 读取出-后面的字符并做判断26 read:27 c commandStr[i];28 // 如果-后面是c就将_c置为true29 if (c c)30 {31 cur-_c true;32 if (commandStr[i] ! )33 {34 goto read;35 }36 continue;37 }38 // 如果-后面是w就将_w置为true39 else if (c w)40 {41 cur-_w true;42 if (commandStr[i] ! )43 {44 goto read;45 }46 continue;47 }48 // 如果-后面是l就将_l置为true49 else if (c l)50 {51 cur-_l true;52 if (commandStr[i] ! )53 {54 goto read;55 }56 continue;57 }58 // 如果-后面是o则后面紧跟的一个参数一定是filePath59 // 首先判断后面是否有文件如果有就添加60 // 如果没有就报错61 // 此时i的index是在选项上的62 else if (c o)63 {64 i 2; // 将i移动到65 char next commandStr[i];66 if (next - || next 0)67 {68 printf(after -o must a para\n);69 exit(-1);70 }71 char path[100] ; // 用来存放输出路径72 for (int j 0;; j)73 {74 // 读取出命令中的文件名中的每一个字符75 char ch commandStr[i];76 77 // 如果读取到了0就说明文件名读取结束就退出78 if (ch )79 {80 break;81 }82 path[j] ch;83 }84 memset(outFile, 0, sizeof(outFile));85 strcpy(outFile, path);86 }87 else88 {89 // 如果-后面什么都没有就判定为错误90 printf(after - must a para\n);91 exit(-1);92 }93 }94 else95 {96 // 如果不是-则判定为输入文件97 // 此时i定位在输入文件的第一个字符上98 char path[100] ;99 for (int j 0;; j) 100 { 101 char ch commandStr[i]; 102 if (ch ) 103 { 104 break; 105 } 106 path[j] ch; 107 } 108 strcpy(cur-inFile, path); 109 cur-_hasFile true; 110 struct Node *fileNode; 111 fileNode (struct Node *)malloc(sizeof(struct Node)); 112 initFileNode(fileNode); 113 cur-next fileNode; 114 cur fileNode; 115 i--; 116 } 117 } 118 // 检测是否有输入文件 119 // if (strlen(cur-inFile) 0) 120 // { 121 // printf(you do not have input file); 122 // exit(-1); 123 // } 124 }   代码分析该函数是这次作业中最重要的一个函数因此单独拿出来说一下。 要点说明 1.使用for循环遍历整个字符串 2.遇到-之后就认为是一个选项就紧接着读取他的后一个字符如果是有效参数就记录在当前文件的结构体中否则报错 3.如果是-o则认为后面紧跟着一个输出文件不做文件名有效性检验不做权限检查 4.如果是普通字符开头则认为是输入文件不做文件名有效性检查不做权限检查 5.根据规则输出文件应该放在该文件对应参数的后面 6.遍历完毕之后就将相关数据都保存在了文件的结构体中并连接成了链表返回后可进行后期相关操作。 六.测试设计 根据要求根据如下条件设计测试 是否有输入 是否输入- -后是否有参数 是否统计行数 是否统计字符数 是否统计单词数 是否支持命令连写 是否支持多文件统计 是否有-o -o后是否跟文件 根据以上条件设计了如下批处理文件 1 .\wc.exe2 .\wc.exe -3 .\wc.exe -l4 .\wc.exe -c5 .\wc.exe -w6 .\wc.exe -lc7 .\wc.exe -lw8 .\wc.exe -cw9 .\wc.exe -lcw 10 .\wc.exe -lcw -o 11 .\wc.exe -lcw -o res.txt 12 .\wc.exe -lcw file1.c 13 .\wc.exe -lcw file1.c -o 14 .\wc.exe -lcw file1.c -o res.txt 15 .\wc.exe -lcw file1.c file2.c -o res.txt 16 .\wc.exe -lcw file1.c -lcw file2.c -o res.txt 17 .\wc.exe -lcw file1.c -o -lcw file2.c -o res.txt 18 PAUSE   测试结果如下 文件输出结果 七.参考文献 《构建之法--现代软件工程》 --邹新 [第三版]   博客园把我的格式变成了这个样子 哇的一声就哭出来了 转载于:https://www.cnblogs.com/guochangyu/p/9695176.html
http://www.sadfv.cn/news/239340/

相关文章:

  • 怎样在手机做自己的网站6哪个电商平台最能卖货
  • 中国南昌网站建设成都网站建设天府科蓝
  • 0元做网站住房和城乡建设部网站关于污水运行负荷率要求的文件
  • h5网站建设功能计划表做某网站的设计与实现
  • 做图表的网站小说网站怎么推广
  • 济南网站建设公司排行大连网站搭建与推广
  • 提供哈尔滨网站建设服务创建wordpress主题
  • 琪觅网站建设php网站游客试用怎么做
  • 金融网站建设运营方案杭州百度竞价推广公司
  • ps做网站画布大小是多少手机网页开发框架
  • 免费ps软件网站wordpress 怎么修改主题
  • 百度seo网站上海到北京高铁票价多少
  • 网站更新前知道内容住房城乡建设部网站办事大厅
  • 个人可以备案企业网站吗小程序代理合同
  • dedecms做网站和thinkphp网站文件解压
  • 一个虚拟主机如何做两个网站做网站找谁好
  • 网站开发和设计域名注册后怎么建设网站
  • 家用电脑做网站能备案上海网站推广联盟
  • 大良营销网站建设特色汕头百姓网
  • 装饰公司简介内容广西优化网站
  • 网站群建设的目的意义广告公司网站首页
  • 仙居网站建设wordpress博客主题源码
  • 免费搭建贴吧系统网站做网站需要注意的点
  • 承德网站建设方案推广seo公司
  • 盐都城乡建设部网站首页苏州网站建设及推广
  • 人和动物做的网站做图字体网站
  • 广西来宾网站网站建设wordpress 不能拖动了
  • 网站建设有发展吗广元建设工程网站
  • 莲塘网站建设学做网站的书籍
  • wordpress模板 站长医疗器械网上商城