软工个人项目WC(Python实现)

一、github地址:https://github.com/1371272989/WC.exe

实现功能:

1、-c:统计字符数;

2、-w:统计单词数;

3、-l:统计行数;

4、-a:统计复杂数据(空行、代码行和注释行);

5、-s:递归处理目录下符合条件的文件;

  通配符没有全面,只能辨别后缀。

6、-x:通过图形界面选择文件;

  可以通过图形界面选择文件,但输出还是在cmd上显示。

二、PSP

PSP Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划  30 25
· Estimate · 估计这个任务需要多少时间  20  20
Development 开发  600 660
· Analysis · 需求分析 20  20
· Design Spec · 生成设计文档  20  30
· Design Review · 设计复审   30  30
· Coding Standard · 代码规范  30  40
· Design · 具体设计  80  60
· Coding · 具体编码(学习新技术)  400  370
· Code Review · 代码复审  60  50
· Test · 测试(自我测试,修改代码,提交修改)  60  60
Reporting 报告 120 120
· Test Report · 测试报告  60  80
· Size Measurement · 计算工作量  30  30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  30  30
  合计  1590  1625

三、解题思路

  看到题目时,发现它的需求可以用Python很容易的实现,然后看到需要用cmd输入,但用python并不会直接生成exe文件,然后在网上看到可以利用一些途径生成exe文件,就直接用python写了。因为我对Python不是很熟悉,对python里面类的方法还不是很懂,并且我之前打惯了C语言,所以我用面对过程的思路去实现了这个程序。下面是实现各种功能的思路:

  1、字符计算:python有方法可以直接知道字符的个数,但要减去空格还有换行的字符。

  2、单词计算:可以通过正则表达式,只保留连续的英文字母,即可得到单词数。

  3、行数计算:有readlines方法,可以把文件按行读入,即可知道有多少行。

  4、复杂数据:按行读入,把空格和换行符去掉,在判断是空行还是注释行还是代码行。

  5、处理文件夹里面符合类型的文件:通过递归把符合类型的文件都存进一个列表里面,在循环处理。

  6、通过图形界面选择文件:直接调用方法即可。

  7、在CMD上输入,可以通过sys模块实现,然后对输入的参数进行读取分析。

  

四、设计过程

  因为用的还是面对过程的思路,所以没有用到类,主要有下面几个方法:

  1、count_char: 统计字符个数;

  2、count_word: 统计单词的个数;

  3、count_line:统计行数;

  4、function_a:实现-a的功能,统计复杂数据;

  5、get_filelist: 递归处理文件夹里面符合条件的文件,存在一个列表里面;

  6、function_s:实现-s的功能;

  7、function_x:实现-x的功能,可以通过图形界面选择文件;

  8、main:主方法,用来分析输入调用特定的方法。

  流程图如下:

  

五、测试结果

测试文件说明:除了特殊文件夹里面的文件,其他均为正常的源文件。特殊文件夹里面file1.c是空文件,file2.c只有一个字符,file3.c只有一个单词,file4.c只有一行。

s

 测试截图:

测试-c、-w、-l、-a和-s(可以直接用-a命令把-c、-w、-l和-a的答案都输出来):

  

  测试-s:

  

  

六、总结

  本次软工作业,是我用Python做出来的第一个软件,我对python的理解进一步加强了。但python是一门面向对象的语言,我却用面向过程的思路去实现这个软件,可以看出我对python的理解和应用还不够深,还需继续深入学习。同时,也可以看出我还没面向过程的思想中跳出来,对“万物皆对象”的理解不够强,对于像这样的小软件还能完成,但对于大程序来说,就可能比较吃力了。本次开发过程中,可能实现的步骤中不明确,有很多的bug出现,大大增加了开发的时间。所以通过这次软工作业,我懂得了一个道理,编程能力固然重要,但实现的步骤同样重要。

原文地址:https://www.cnblogs.com/Gleez/p/11575279.html

时间: 2024-08-25 22:09:17

软工个人项目WC(Python实现)的相关文章

软工团队项目个人总结

经过了一个学期的软工课程学习,以及长期的团队开发,收获有下. 用户:创新就是极致的用户体验.在开发我们的这款游戏的开始阶段,我们与校内很多同学交流了一下他们对这款游戏的看法,并与他们在线下对游戏进行试玩,然后他们也对我们提出了很多意见,包括有些时候觉得我们某些地方设置的太傻了,随机性太大,博弈性不够等问题.而且有时候交流还会出现一些问题,但总的来说,我们还是从中挖掘了很多可以改进的点,分析了用户的需要,改进了挺多地方的规则的.然后,秉承着从软工课程上学到的,能让用户少点一下,绝不多点一下的类似的

软工2019_MucMuc项目个人总结

MucMuc项目个人总结 1.相关链接 原型界面设计链接 UML设计链接 github项目链接 2.项目个人分工 项目总体的部分设计 后端项目总体构建, 代码实现, 以及测试 阿里云后端服务器的配置和项目部署 3.开发过程 开始 在项目最初的阶段, 整个组对于要做怎样的工作并没有清晰的想法. 不知道如何开始工作, 从何做起, 开发工具为何, 是面临的最大难题. 因为没有任何有对于web开发有经验的成员. 从前后端开发工具的选择上, 到前后端通信的具体流程, 都没有一个较好的认知. 这也直接导致了

二、软工个人项目:文本信息统计器

本软件的代码:https://github.com/amekao/SE_work1 界面: 一.需求分析阶段: 需求分析: 总需求:需要用户在cmd运行程序,根据所输入的参数提供对应的计算模式 基本功能: -c -w -l 显示字符数,词数,行数 拓展功能:-a 显示具体行数, -s 可以递归遍历指定目录下的文件 高级功能: -x 弹出界面让用户选择要统计的文本,显示所有的信息 二.设计阶段: 考虑到python语言对文本操作提供了较好的接口,而且文件编码也比较丰富,因此决定使用python来完

软工个人项目(Java实现)

一. Github地址: https://github.com/RuiBingo/PersonalWork 二.个人PSP表格: PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 20 · Estimate · 估计这个任务需要多少时间 60 20 Development 开发 1200  1080 · Analysis · 需求分析  120  100 · Design Spec · 生成设计文档  30  30 · Design Review · 设

三、软工结对项目:四则运算生成器

一. 1. github项目地址: https://github.com/amekao/SE_work2 2. 界面示例: 生成模式 批改模式 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 · Estimate · 估计这个任务需要多少时间 1200 1200 Development 开发 · Analysis · 需求分析 (包括学习新技术) 180 200 · Design Spec

软工实践项目课程的自我目标

对实践项目完成后学习到的能力的预期 组长说,攻坚安卓方向,那就希望首先懂得安卓这门语言吧 然后就是了解安卓应用的开发过程吧 对项目课程的期望 但愿难度不要太大,虽然越难越锻炼人,但我还是不希望难 有一定的补救机会就更好了 对项目的愿景规划 不懂,好好学习,天天向上!

软工团队项目之项目选择

项目基础:考试练习系统APP 项目扩展:能让客户坚持每天做题的APP 需求分析:首先,用户会选择这个APP,那么必然有做题的必要和需求,也许是为了即将来临的考试也可能是真的为了做题给自己填补漏洞,那么不管是哪种情况,大量的刷题是免不了的,那么我们这个APP就有了市场需求. 对市面上已有的类似的APP分析:其实在市场上已经有了很多成熟的类似的APP,那么我们所要制作的就必须有我们的特色.传统的考试系统或是练习系统,基本上都是能从数据库中抽取一定量的题,组合成一套试卷,来供用户使用,而在用户提交答案

2017BUAA软工个人项目之数独

1.项目GitHub地址:https://github.com/ZiJiaW/Soduko (由于一开始把sudoku看成了soduko,于是名字建错了,读起来可能有点奇怪-) 2.项目PSP表格如下: PSP2.1 Personal Software Process Stages 预估耗时 实际耗时 Planning 计划 0.5h 0.5h .Estimate .估计这个任务需要多少时间 0.5h 0.5h Development 开发 20.5h 21.5 .Analysis .需求分析(

软工个人项目——地铁最短路径分析

一.开发环境 IDEA(java) 二.需求分析 设计简单UI界面(Java Swing) 用户可以自行选择起点.终点的地铁线路和对应的站点 用户选择后后台返回一个或多个方案 三.设计思路 启动程序读取地铁站点和线路信息文件"subway.txt",并将站点和线路信息储存在有向图中 根据用户的选择输入起点终点等参数 UI界面提供地铁线路.起始站点和目的站点的选择 通过最短路径算法求解最优的出行线路(采用Dijkstra算法或Floyd算法),将结果输出到一个txt文件 测试优化 四.项