python个人项目-个人项目 python实现

二 . PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

10

10

Estimate

估计这个任务需要多少时间

10

10

Development

开发

510

590

Analysis

需求分析

10

20

Design Spec

生成设计文档

30

30

Design Review

设计复审

10

10

Coding Standard

代码规范

40

50

Design

具体设计

20

40

Coding

具体编码

350

400

Code Review

代码复审

30

20

Test

测试(自我测试,修改代码,提交修改)

20

20

Reporting

报告

100

120

Test Report

测试报告

40

60

Size Measurement

计算工作量

10

20

Postmortem & Process Improvement Plan

事后总结,并提出过程改进计划

50

60

Total

总计

620

720

三. 解题思路

分析需求:这个作业要求的是根据用户输入的参数,文件名,从而对文件进行相应的统计。因此主要功能可分解为:命令行参数读取(包括参数,文件名),文件统计功能,界面,支持统配符。针对这些要实现的功能,我们可以一一分析解决。

命令行参数读取:该功能可以利用内置库sys实现,对用户输入的参数进行读取分析,并且用list储存。

文件统计功能:实现统计字符,单词,行数,注释行,空白行等功能,利用IO,对文件逐行进行读取,然后逐行累加,直到文件末尾,并将最后的结果返回。并且利用try...expect语句,实现对文件错误情况的处理,不至于出错直接中断程序,提供更良好的交互。

界面:该功能要实现与用户的交互,界面的设计较简单,利用filedialog函数可以实现用户选取文件。

支持通配符:实现可以利用正则表达式或者字符串的相关操作完成,先获得用户输入的文件名后缀,然后利用os库获取相对应的目录的所有文件名,最后利用正则表达式对文件进行筛选,返回符合后缀的文件,并用list存储。

单个功能都实现了,然后就是整合,编写main函数对功能的调用进行逻辑处理。

四. 设计过程

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

文件统计类(Count):实现了文件统计功能,针对每个功能编写一个函数(这样以后要添加新功能就可以在这个类添加函数就行了),分别为

get_word(实现-w功能)

get_line(实现-l功能)

get_char(实现-c功能)

get_other(实现-a功能)

get_allwj(实现通配符功能)

界面类:

openfile(实现用户选取文件功能)

gui(实现界面功能)

countfile(在界面展示信息)

主类:

main

1800085-20190922171852892-1325851358.png

五. 测试结果

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

1800085-20190922172554599-2072404027.png

测试结果截图:

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

1800085-20190922172903791-286629366.png

2.输入不存在文件时:

1800085-20190922173109628-1545623527.png

3.测试-x功能:

1800085-20190922173313184-521855191.png

1800085-20190922173349641-1426827842.png

代码覆盖率:

1800085-20190922173551654-1562628200.png

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

六.项目总结:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值