个人项目 python实现

一.  github地址:https://github.com/zjh1234562/WC

 

二 . PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划1010
Estimate估计这个任务需要多少时间1010
Development开发510590
Analysis需求分析1020
Design Spec生成设计文档3030
Design Review设计复审1010
Coding Standard代码规范4050
Design具体设计2040
Coding具体编码350400
Code Review代码复审3020
Test测试(自我测试,修改代码,提交修改)2020
Reporting报告100120
Test Report测试报告4060
Size Measurement计算工作量1020
Postmortem & Process Improvement Plan        事后总结,并提出过程改进计划5060
Total总计620720

 

三. 解题思路

  1. 分析需求:这个作业要求的是根据用户输入的参数,文件名,从而对文件进行相应的统计。因此主要功能可分解为:命令行参数读取(包括参数,文件名),文件统计功能,界面,支持统配符。针对这些要实现的功能,我们可以一一分析解决。
  2. 命令行参数读取:该功能可以利用内置库sys实现,对用户输入的参数进行读取分析,并且用list储存。
  3. 文件统计功能:实现统计字符,单词,行数,注释行,空白行等功能,利用IO,对文件逐行进行读取,然后逐行累加,直到文件末尾,并将最后的结果返回。并且利用try...expect语句,实现对文件错误情况的处理,不至于出错直接中断程序,提供更良好的交互。
  4. 界面:该功能要实现与用户的交互,界面的设计较简单,利用filedialog函数可以实现用户选取文件。
  5. 支持通配符:实现可以利用正则表达式或者字符串的相关操作完成,先获得用户输入的文件名后缀,然后利用os库获取相对应的目录的所有文件名,最后利用正则表达式对文件进行筛选,返回符合后缀的文件,并用list存储。
  6. 单个功能都实现了,然后就是整合,编写main函数对功能的调用进行逻辑处理。

 

四. 设计过程

代码主要分为三个类,分别为文件统计类,界面类,主类。

  1. 文件统计类(Count):实现了文件统计功能,针对每个功能编写一个函数(这样以后要添加新功能就可以在这个类添加函数就行了),分别为
    get_word(实现-w功能)
    get_line(实现-l功能)
    get_char(实现-c功能)
    get_other(实现-a功能)
    get_allwj(实现通配符功能)
  2. 界面类:
    openfile(实现用户选取文件功能)
    gui(实现界面功能)
    countfile(在界面展示信息)
  3. 主类:
    main

 

 

 

五. 测试结果

测试文件说明:file.c(一个正常的源程序),file1.c(空文件),file2.c=(只有一个字符),file3.c(只有一个词),file4.c(只有一行)

 

测试结果截图:

1.测试-w,-s,-l,-c,-a功能

 

 2.输入不存在文件时:

 

3.测试-x功能:

 

 

 

 

代码覆盖率:

 

 测试时未调用图形界面,因此GUI.py覆盖率较低

 

六.项目总结:

  本次软件工程的作业使用面对对象编程,虽然面对过程也能完成任务,但是代码后期就会很难维护,并且冗余度也会很高,因此选用面对对象。选用的语言是python,使用的也都是自带的标准库。按照软件工程的方法,实现了一个小程序的开发,编码过程固然重要,但是在开发的过程,我发现其它的步骤也是尤为重要,这也是我们为什么需要学软件工程的原因。总之通过正常的作业,也算了解到软件开发所需要的过程及相关的知识。

 

转载于:https://www.cnblogs.com/zjh20/p/11568378.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值