WordCount of Software Engineering
1.Github项目地址:https://github.com/BayardM/WordCount
2.PSP表格(before):
|
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
30 |
|
|
· Estimate |
· 估计这个任务需要多少时间 |
30 |
|
|
Development |
开发 |
50 |
|
|
· Analysis |
· 需求分析 (包括学习新技术) |
100 |
|
|
· Design Spec |
· 生成设计文档 |
15 |
|
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
|
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
|
|
· Design |
· 具体设计 |
40 |
|
|
· Coding |
· 具体编码 |
40 |
|
|
· Code Review |
· 代码复审 |
30 |
|
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
|
|
Reporting |
报告 |
25 |
|
|
· Test Report |
· 测试报告 |
10 |
|
|
· Size Measurement |
· 计算工作量 |
10 |
|
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
|
|
合计 |
|
470 |
|
3.解题思路:
刚开始拿到题目时因为感觉题目很长,要求很多,所以感到很懵,一点没懂到底要做什么,便在网上查阅了一些资料与博客,研究了牛人们的讲解终于明白题目意思,并且知道此次题目会涉及文档流的操作,因为自己暂时对c语言使用更加灵活,所以本次开发全为C语言。
4.设计实现过程:
代码简单明了大致分为四部分,三个基本功能各一个函数实现,主函数中对功能进行相应调用执行及功能使用的指引。
5.代码说明:
字符数类:
//字符数
int CharacterCount(char filepath[])
{
FILE *f1 = NULL;
char c;
int charcount = ;
f1 = fopen(filepath , "r");
if(f1 == NULL)
{
printf("Can't Find!\n");
exit();
}
c = fgetc(f1);
while(c != EOF)
{
c = getc(f1);
charcount++;
}
fclose(f1);
return charcount;
}
单词数类:
//词数
int WordCount(char filepath[])
{
FILE *f2 = NULL;
char w;
int wordcount = ;
f2 = fopen(filepath , "r");
if(f2 == NULL)
{
printf("Can't Find!\n");
exit();
}
w = fgetc(f2);
while(w != EOF)
{
if((w>='A' && w<='Z') || (w>='a' && w<='z') || (w>='' && w<=''))
{
while((w>='A' && w<='Z') || (w>='a' && w<='z') || (w>='' && w<='') || w == '_')
{
w = fgetc(f2);
}
wordcount++;
}
w = fgetc(f2);
}
fclose(f2);
return wordcount;
}
行数:
//行数
int LineCount(char filepath[])
{
FILE *f3 = NULL;
char l;
int linecount = ;
f3 = fopen(filepath , "r");
if(f3 == NULL)
{
printf("Can't Find!\n");
exit();
}
l = fgetc(f3);
while(l != EOF)
{
if(l == '\n')
{
linecount++;
l = fgetc(f3);
}
else{
l = fgetc(f3);
}
}
if(CharacterCount(filepath) == )
linecount = ;
fclose(f3);
return linecount;
}
以上类代码结构基本一致,不同点仅在于判断条件。
6.测试运行:
(1)普通文本测试结果及文件


(2)空文件测试结果及文件


(3)单字符测试结果及文件


(4)单行测试结果及文件


(5)普通代码测试结果及文件


(6)路径错误测试

7.PSP(after):
|
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
30 |
30 |
|
· Estimate |
· 估计这个任务需要多少时间 |
30 |
25 |
|
Development |
开发 |
50 |
55 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
100 |
120 |
|
· Design Spec |
· 生成设计文档 |
15 |
5 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
0 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
|
· Design |
· 具体设计 |
40 |
30 |
|
· Coding |
· 具体编码 |
40 |
40 |
|
· Code Review |
· 代码复审 |
30 |
25 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
65 |
|
Reporting |
报告 |
25 |
20 |
|
· Test Report |
· 测试报告 |
10 |
10 |
|
· Size Measurement |
· 计算工作量 |
10 |
10 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
25 |
|
合计 |
|
470 |
470
|
8.项目小结:
这次项目在编码上学到的主要是c语言相关文档的操作,这是之前从没涉及到过的领域,因此感觉收获蛮丰富的;然后在整个策划详细设计时主要是感悟到遇到困难决不能轻言放弃。要学会有效的借鉴前人的经验,从中汲取知识转化为自己的能力;除此之外,还是有遗憾的地方,便是觉得自己只能用c语言去做项目是非常单一的,并且也并没有将c语言用得融会贯通,还是需要继续学习,并且本次项目其实题目理解方面大部分都是查阅资料才弄清楚,感觉还是要加强自己的理解能力,平时自己还得做一些其他更复杂能锻炼人的项目,如果老师能推荐那更好,来日方称,未来可期,切勿放弃!
WordCount of Software Engineering的更多相关文章
- Software Engineering: 3. Project planning
recourse: "Software Engineering", Ian Sommerville Keywords for this chapter: planning sche ...
- 第二篇——The communication during software engineering.
I've learned a lot in my software engineering class about how a program comes out.That's also a esse ...
- Software Engineering: 2. Project management
resources:"Software Engineering" Ian Sommerville For most projects, important goals are: D ...
- Software Engineering: 1. Introduction
Resource: Ian, Sommerville, Software Engineering 1. Professional software development 1.1 Software e ...
- SENG201 (Software Engineering I) Project
SENG201 (Software Engineering I) ProjectSpace ExplorerFor project admin queries:For project help, hi ...
- 个人阅读作业2—《No Silver Bullet: Essence and Accidents of Software Engineering》读后感
在进行了一次结对编程.一次团队编程和一次个人编程项目后,读了<No Silver Bullet: Essence and Accidents of Software Engineering> ...
- Software Engineering at Google
Google的Fergus Henderson在Software Engineering at Google中介绍了Google的软件工程实践. 软件开发 源码仓库 单一源代码仓库,除了核心配置和安全 ...
- Go is more about software engineering than programming language research.
https://talks.golang.org/2012/splash.article Go at Google: Language Design in the Service of Softwar ...
- 10. Software, Software Engineering, water fall (瀑布模型),Code Complete等名词的来源
①.Software-软件”一词是20世纪60年代才出现的,软件Software——1958年由贝尔实验室的著名统计学家John Tukey 提出软件与硬件一起构成完整的计算机系统,它们是相互依存,缺 ...
随机推荐
- 使用vuex做列表数据过滤
功能需求 展示一个表格,表格包含选项有" 姓名 年龄 是否显示"三个列表项 是否显示列表项是可操作开关,点击切换打开/关闭 将表格中开关为打开状态的列表项,在另一个表格中显示 需求 ...
- 扯扯Java中的锁
前言 又过去了一个周末,最近陆陆续续的看了<并发编程的艺术>一书,对锁有不少感悟,这次就聊聊Java中的锁事.本文纯粹是漫谈,想到哪说到哪,但准确性肯定会保证,倘若有不正确之处,还请交流指 ...
- Servlet学习之Tomcat控制台中文乱码问题
Tomcat控制台中文乱码问题 在更新了IDEA2020.1版本后,可以安装官方的简体中文插件,方便我们日常使用,但是更新后再运行Tomcat时,控制台的输出日志出现中文乱码问题,接下来告诉大家如何修 ...
- [C++]类的空指针调用成员函数后,会发生什么事?
类的实例调用成员函数的原理 其实不管是通过对象实例或指针实例调用,其实底层调用的过程都是一样的,都是把当前对象的指针作为一个参数传递给被调用的成员函数.通过下面的相关实例代码进行检验: 实验的C++代 ...
- luogu P6088 [JSOI2015]字符串树 可持久化trie 线段树合并 树链剖分 trie树
LINK:字符串树 先说比较简单的正解.由于我没有从最简单的考虑答案的角度思考 所以... 下次还需要把所有角度都考察到. 求x~y的答案 考虑 求x~根+y~根-2*lca~根的答案. 那么问题变成 ...
- 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
一.什么是 RestTemplate? RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpCo ...
- [转] 总结了N个真实线上故障
以下文章来源于架构师进阶之路 ,作者二马读书 1. JVM频繁FULL GC快速排查 在分享此案例前,先聊聊哪些场景会导致频繁Full GC: 内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及 ...
- python爬虫学习05-爬取图片
python爬虫学习05-爬取图片 确定要爬取的网址:https://shenan.tuchong.com/20903415/#image309854686 要爬取的内容:使用浏览器插件xpath对图 ...
- 【NOI2016】区间 题解(线段树+尺取法)
题目链接 题目大意:给定$n$个区间$[l_i,r_i]$,选出$m$个区间使它们有一个共同的位置$x$,且使它们产生的费用最小.求最小费用.费用定义为最长的区间长度减去最短区间长度. ------- ...
- java多线程编程实例
[转]这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下. 1.三个售票窗口同时出售20张票程序分析: ...