软工作业-Wc
Wc.exe
wc.exe是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。
githud地址:https://github.com/Coothen/practice.git
一、PSP表-预估耗时
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) |
|---|---|---|
| Planning | 计划 | 60 |
| · Estimate | · 估计这个任务需要多少时间 | 60 |
| Development | 开发 | 840 |
| · Analysis | · 需求分析 (包括学习新技术) | 60 |
| · Design Spec | · 生成设计文档 | 30 |
| · Design Review | · 设计复审 (和同事审核设计文档) | 30 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 |
| · Design | · 具体设计 | 30 |
| · Coding | · 具体编码 | 480 |
| · Code Review | · 代码复审 | 60 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 120 |
| Reporting | 报告 | 100 |
| · Test Report | · 测试报告 | 60 |
| · Size Measurement | · 计算工作量 | 10 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 |
| 合计 | 1000 |
二、解题思路
先去GitHub或CSDN博客上面找类似的源程序,比较其他语言,我对C语言较熟悉,所以找了几份用C编程的源程序,并在编译器上运行测试效果。
选择一份具备基本功能的源代码开始分析,并尝试根据其思路自己编辑。
基本功能实现后,开始尝试实现拓展功能。
拓展功能实现后,开始测试并修改代码。
三、设计实现过程
先写两个功能函数
void file_error(){};文件打开错误
void c_w_lCount(int wc_char,int wc_word,int wc_line,FILE *fp){};实现字符,单词,行数的计数
再写主函数
四、代码说明
//文件打开错误函数
void file_error(){
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit(0);
}
//字符数,单词数,行数计算
void c_w_lCount(int wc_char,int wc_word,int wc_line,FILE *fp){//单词,字符,行数计算函数
char *c;
while (1){
char ch;
ch = fgetc(fp);//fgetc():从FP中 返回一个字符
if (ch >= 'A'&&ch <= 'z'){
putchar(ch);//终端输出一个字符
wc_char++;}
else if (ch == ' '){
putchar(ch);
wc_word++;}
else if (ch == '\n'){
putchar(ch);
wc_word++;
wc_line++;}
else if (ch==EOF){
break;}
_getch();
printf("\n该文件中字符数有 %d个。\n", wc_char);
printf("该文件中单词数有 %d个。\n", wc_word);
printf("该文件中行数有 %d行。\n", wc_line);
printf("请输入统计方式如(-c\-w\-l):");//输入“-c"显示字符数 ,输入“-l"显示行数,输入“-w"显示单词数
gets(c);
if (strcmp(c, "-c") == 0){
printf("该文件中字符数有 %d个。\n",wc_char);}
else if (strcmp(c, "-w") == 0){
printf("该文件中单词数有 %d个。\n",wc_word);}
else if (strcmp(c, "-l") == 0){
printf("该文件中行数有 %d行。\n",wc_line);}
exit(0);}
五、测试运行
基本功能:
文件打开错误提示

实现文件字符数,单词数,行数的计算。

输入-w/-c/-l,相对应输出字符数,单词数和行数。
统计字符数:

统计单词数:

统计行数:

六、PSP表-实际耗时
| PSP2.1 | Personal Software Process Stages | 实际耗时(分钟) | |
|---|---|---|---|
| Planning | 计划 | 50 | |
| · Estimate | · 估计这个任务需要多少时间 | 50 | |
| Development | 开发 | 680 | |
| · Analysis | · 需求分析 (包括学习新技术) | 90 | |
| · Design Spec | · 生成设计文档 | 20 | |
| · Design Review | · 设计复审 (和同事审核设计文档) | 20 | |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | |
| · Design | · 具体设计 | 60 | |
| · Coding | · 具体编码 | 240 | |
| · Code Review | · 代码复审 | 120 | |
| · Test | · 测试(自我测试,修改代码,提交修改) | 120 | |
| Reporting | 报告 | 90 | |
| · Test Report | · 测试报告 | 60 | |
| · Size Measurement | · 计算工作量 | 10 | |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 20 | |
| 合计 | 820 |
七、总结
遇到的问题:
时间过于紧迫。拿到题目,虽然题目并不是很难,但对于缺乏实践的我来说,是一个挑战,我从来没试过在这么短的时间内写一个小程序。
之前未接触过GitHub,在GItHub使用上面花费了较长时间。
开始的时间较晚,到后面发现很多问题,但是来不及修改。
改进及建议:学习用JAVA语言编写程序,此次用C语言编写程序,运行界面为编译器的运行窗口,并未自己制作视图界面。
收获:
知道独自开发一个小程序的基本步骤,学会使用预估耗时和实际耗时进行对比,从而提高自己的效率。
意识到自己C语言和JAVA语言的薄弱,应利用大三时间复习巩固,并多实践。
学会使用GitHub。
软工作业-Wc的更多相关文章
- 软工作业-wc(Python实现)
GitHub地址:GitHub PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 40 · Esti ...
- 软工作业-----Alpha版本第一周小结
软工作业-----Alpha版本第一周小结 Part1.第一周周计划记录 姓名 学号 周前计划安排 每周工作记录 自我打分 yrz(队长) 1417 1.进行任务分析 2.任务分配 ...
- [软工作业]-软件案例分析-CSDN
[软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...
- 【软工作业&思考】关于软工的一些概念性理解暨第一次阅读作业
概述 项目 内容 本次作业所属课程 2019BUAA软件工程 周二班 本次作业要求 第1次个人作业当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 我在本课程的目标 在原有实践经验 ...
- BUAA2020软工作业——提问回顾与个人总结
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...
- 软工作业No.3--团队作业:甜美女孩出击!
队名:甜美女孩 队员包括: 姓名 学号 身份 曾祎祺 3216005211 队长 邓画月 3216005212 队员 何颖琪 3216005213 队员 梁沛诗 3216005214 队员 梁子君 3 ...
- 软工作业No.1。Java实现WC.exe
网址:https://github.com/a249970271/WC WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有w ...
- 软工作业1—java实现wc.exe
github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c //返回文件 file.c 的字符数 ...
- 软工作业1:wc.exe项目开发(java)
Github地址:https://github.com/Zzhaomin/learngit 项目相关要求 : wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个 ...
随机推荐
- mysql 如何找出两张表之间的关系
分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的 ...
- 枢轴点(Pivot Point)系统
Pivot Point是日内交易方法,非常简单实用,是一套非常“单纯”的阻力支持体系,大概是10年前一个做期货的高手发明的方法,至今已经广泛的用在股票.期货.国债.指数等高成交量的商品上.经典的Piv ...
- Grunt JS构建环境搭建以及使用入门
Grunt JS构建环境搭建以及使用入门 1.应用场景 一种自动化任务处理工具,对于日常的需求(代码规则检查.代码合并)可以实现自动化执行,只需要保留package.json和Gruntfile.js ...
- NUnit.Framework的使用方法演示
using NUnit.Framework; namespace CheckExcel { [TestFixture] public class TestExcelHelper { /// <s ...
- Python中 and,or 的计算规则
一.纯 and 和 or 语句 1. 在纯and语句中,如果每一个表达式都不是假的话,那么返回最后一个,因为需要一直匹配直到最后一个.如果有一个是假,那么返回假2. 在纯or语句中,只要有一个表达式不 ...
- Python(文件处理)
二.基本操作 #r''------------------>> r:原生字符串,不判断符号的含义#文件处理 f=open(r’c:\a.txt’,’r’,encoding=’utf-8’) ...
- WCF RIA SERVICE相关技术
WCF RIA SERVICE实体属性拷贝 private void DoSubmit() { ((IEditableObject)this.RepairContract).EndEdit(); va ...
- HBase在数据统计应用中的使用心得
转载自:http://www.cnblogs.com/panfeng412/archive/2011/11/19/2254921.html 1. 数据统计的需求 互联网上对于数据的统计,一个重要的应用 ...
- 微信小程序获取验证码倒计时
getVerificationCode: function() { var that = this; var currentTime = that.data.currentTime; that.set ...
- 【笔记】IntelliJ IDEA配置Hibernate
参考:imooc:http://www.imooc.com/video/7706 1.创建Hibernate的配置文件. 将依赖包导入项目.http://blog.csdn.net/a15337525 ...