软件工程课程设计维修管理系统_第1页
软件工程课程设计维修管理系统_第2页
软件工程课程设计维修管理系统_第3页
软件工程课程设计维修管理系统_第4页
软件工程课程设计维修管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西华大学课程设计报告 n软件工程 课程设计任务书学院名称: 数学与计算机学院 课程代码:_8404131_专业: 软件工程 年级: 09 一、设计题目 维修管理系统二、主要内容本课程设计要求开发一个适用于家电维修行业的维修管理系统软件,以对家电维修行业实行电脑化管理,从接机到客户取机实行全电脑管理。三、具体要求及应提交材料具体要求:本课程设计要求学生运用软件工程的思想,严格按照软件生命周期各阶段的目的和任务,完成对系统的分析、设计、编码、及测试。1完成系统的需求分析2完成系统的设计: 针对分析阶段提出的软件要求,给出实现的方案和具体细节的说明。(1)导出系统的数据流程图和功能模块图。(2)设计

2、数据库。使用microsoft access创建数据库。确定数据库中数据表的组成。确定数据表中字段的构成、主键字段和有关字段的约束条件等。依靠数据表中主键字段建立数据表之间的关系,并由此建立数据表之间的参照完整性约束。(3)根据功能确定软件模块组成及调用关系。(4)确定每个模块的数据结构及算法。3编码建造模块,在可视化编程环境下,按照软件设计要求制作界面和完成对模块的编码,由此使软件设计具体化为软件作品。4. 测试编写合适的测试用例完成系统的测试工作并分析结果。5编写课程设计报告应提交材料:1上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2课程设计报告的打印

3、稿和电子稿;四、主要技术路线提示1认真阅读相关知识,完成系统的功能分析和系统设计2选用access作为dbms五、进度安排序号设计内容天数1分析设计内容,给出解决方案32创建数据库及建表33可视化界面设计34对所建数据库进行设计,整理设计思路,编码、测试,写出课程设计报告35指导老师检查设计结果并做成绩评定2总 计14六、参考资料1 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日目 录1. 前言 12.

4、 需求分析 22.1. 功能分析 22.2. 方案分析32.3 功能模块划分 33. 概要设计 43.1. 数据结构 43.2. 逻辑结构与物理结构 53.3.1结构框图53.3.2程序流程图63.3.3模块功能分析及外部设计73.3功能模块划分 83.4抽象数据类定义94. 详细设计 94.1. 数据类型定义 94.2. 主要模块内部设计 9 4.2.1录入信息模块设计 104.2.1.1模块算法 104.2.1.2流程图114.2.2. 修改信息模块设计 11 4.2.2.1 模块算法11 4.2.2.2流程图114.2.3. 查询信息模块设计 11 4.2.3.1 模块算法12 4.2.

5、3.2伪码 124.2.4. 删除信息模块设计 12 4.2.3.1 模块算法12 4.2.4.2伪码 124.2.5. 统计信息模块设计 12 4.2.5.1 模块算法12 4.2.5.2伪码 125实现与调试分析125.1实现环境125.2语言选择135.3调试分析136测试分析136.1测试用例136.2测试结果156.3性能分析157用户手册 16总结 17参考文献 18附录 源程序文件名清单: 1.前言某家电公司的维修部想更新现有的维修管理系统。下面是这个管理系统的说明。此维修管理系统是针对客户和公司的需求而创建的,大大提高了维修部的效率。针对产品的情况做相应登记,设置了,登记,查询

6、,删除,修改,统计等子系统来更好的实现对公司和客户各自需求的完成。客户可以随时查询产品维修的状态。公司可以随时对维修产品做统计从而进行质量分析。为以后的产品发展动向指明方向。此说明书按照软件工程的标准完成的,为公司节约了大量的人力资源。有良好的市场价值。- 2 - 2. 需求分析这套维修管理系统的的主要目标是完成对某公司维修部维修产品的管理。设置了录入,删除,查询,修改,分类查询,统计等子系统。需求主要在对维系的产品进行机器化管理。需要完成对产品的录录入,删除,查询,修改,分类查询,统计等功能 图图查询录入修改浏览修改维修部客户 图2.1 用例图 2.1. 功能分析 这是一个维修管理系统,在计

7、算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的家电维修管理系统,实现公司的维修产品管理的自动化的计算机系统。为公司节省大量人力资源。他有录入,删除,查询,修改,分类查询,统计等子系统,分别完成对维修产品录入,删除,查询,修改,分类查询,统计的功能。(1) 对用户的需求:用户要求随时可以查询产品所处额维修状态和完成维修的时间和提取产品的时间。还有产品大概出现问题的原因。(2) 对公司的需求:公司要求对维修产品的情况录入,根据这些数据完成对产品维修分配的工作。那些是紧急情况要立即修,哪些可以缓修一段时间。还

8、有统计目前人力的空缺产品维修情况的统计。修改,更新这个管理系统。 2.2方案分析这个维修管理系统从采取的如下方案着手。根据客户的要求条件完成对产品的录入。各模块之间的链接要好,数据在各个子系统是通用的,针对类来说是私有成员具有安全性。采取流水线的方案,客户将产品送来后,根据情况分类,然后维修人员到登记处来领取维修的产品,产品维修完成后,再由维修人员送回登记处,中间由登记人员随时记录产品的维修状态和需要维修的原因。当产品维修好之后,有登记人员通知客户来取走产品。具有可行性,节省人力和财力资源具有积极经济可行性。对社会有利无害有社会可行性。更具有操作可行性。 2.3功能模块划分分为如下模块:(1)

9、信息录入模块:根据不同的产品按照数据定义的顺序完成对产品信息的录入。以文件的形式来保存数据,以方便其他模块对数据的访问和各种处理。 (2)修改信息模块:完成对已经输入的信息的修改、 (3)查询信息模块:此模块瞒着了客户和公司对产品维修状态的查询。 (4)统计分析模块:此模块是为了方便公司统计所有产品维修的数据,对以后的生意提供信息。 (5)删除信息模块:提供删除所有指定维修产品的模块 客户登记产品信息维修产品d1存储产品信息维修产品提取证明单或者收据产品信息存储后的产品信息产品信息维修后产品信息通知单 图2.2 数据流图3.概要设计 3.1数据结构 此维修管理系统是基于开发的,用类的私有成员来

10、记录各种产品的信息,各个子系统之间都是以对象来完成连接的。对象通过调用成员函数来完成对各种功能的实现。不同的私有成员根据具体情况来定义其类型。都是以类的私有成员出现的。使用文件对各种产品的信息进行录入保存。输入输出都是以表格的形式。 状态登记时间型号联系方式名字名称产品客户登记维修公司名称联系方式地址问题提取时间图 3.1 -r图如下图: 产品名称登记日期联系方式状态产品型号户主提取时间 图3.2 数据结构 3.2逻辑结构和物理结构 3.2.1逻辑结构 此维修管理系统逻辑上先创立录入产品信息的子系统,然后根据操作人员的选择来调用子系统。他们分别是删除,修改,查询,统计等子系统。 录入信息完成后

11、,进行对信息的处理。主函数中分别调用这些系统,形成完整的 维修管理系统。 3.2.2物理结构 物理结构是录入数据后,内存将录入信息保存,需要使用数据的时候在内存里面提取。类型变量登记时间charyear,month,day产品名称charpname户主charowner产品类型charstyle提取时间charyaer1,month1,day1,状态charstate联系方式charphone 图 3.3数据物理结构图3.3功能模块划分分为如下模块(1)信息录入模块:根据不同的产品按照数据定义的顺序完成对产品信息的录入。以文件的形式来保存数据,以方便其他模块对数据的访问和各种处理。 (2)修改

12、信息模块:完成对已经输入的信息的修改、 (3)查询信息模块:此模块瞒着了客户和公司对产品维修状态的查询。 (4)统计分析模块:此模块是为了方便公司统计所有产品维修的数据,对以后的生意提供信息。 (5)删除信息模块:提供删除所有指定维修产品的模块 3.3.1结构框图 家电维修管理系统产品信息录入产品信息查询产品信息修改产品信息统计产品信息删除图3.4 结构图3.3.2程序流程图开始do case录入输入输入输入浏览存在?存在存在?修改提示选择?统计输出提示结束图 3.5 程序流3.3.3 模块功能分析及外部设计 分别有如下模块:(1)信息录入模块:根据不同的产品按照数据定义的顺序完成对产品的录入

13、。以文件的形式来保存数据,以方便其他模块对数据的访问和各种处理。此模块的人机交互的界面。首先出现提示语,提示登记人员录入产品的相关信息,按照提示的顺序和要求录入完产品的的相关信息后,提示操作人员保存,一次记录不同产品。(2)修改信息模块:完成对已经输入的信息的修改。产品完成录入后,根据实际情况选择要执行的操作,操作员会看到提示要修改产品的输入信息,按照 提示输入完后,程序查找后出现是否存在该产品的界面。提示检查是否输入错误还是不存在这件产品 (3)查询信息模块:此模块瞒着了客户和公司对产品维修状态的查询。 程序提供输入所要查询产品的界面,操作人员根据提示输入信息,程序自动判断后查看是否存在,若

14、存在则输出要查询产品的信息,若是不存在则输出提示信息 (4)统计分析模块:此模块是为了方便公司统计所有产品维修的数据,对以后的生意提供信息。出现统计的界面,操作人员根据实际具体要求输入统计条件。然后出现统计后输出产品信息的画面。 (5)删除信息模块:提供删除所有指定维修产品的模块。此模块可以输出所有维修产品的信息。在主函数出现选择的界面后,直接选择这个子系统的调用函数后,出现输出所要维修产品信息的界面并对其指定的产品进行删除。 总体来说,打开此维修管理系统后,首先出现选择的界面,操作人员根据需求选择要进去的子系统,在子系统里面根据需求输入并得到所要的信息。3.4抽象数据类定义 定义如下:adt

15、 triplet 数据对象:d= year,day,month,customer,pname,phone,state,pstyle,problem数据关系:r= 基本操作:in (year, day, month,customer,pname,phone,state,pstyle,problem) 操作结果:录入产品的信息out(&r) 操作结果:删除产品信息change(&r) 操作结果:修改产品信息;count(&) 操作结果:统计产品信息;get(&r) 操作结果:查询产品结果; adt triplet4.详细设计4.1数据类型定义定义如下: int year;int day;int m

16、onth;char owner; char pname; char phone; char state; char style;4.2. 主要模块内部设计4.2.1信息录入模块设计 模块1是对维修产品信息录入的模块,进入信息录入模块后,在提示语的提示下,操作人员按照规定的数据类型输入产品信息,通过文件的途径以表的形式保存起来。4.2.1.1模块算法 程序利用循环来控制输入信息的结束,设置一个标志语,每次循环前都要判断是否要结束信息的输入,以流的形式依次输入产品的下例信息。int year;int day;int month;char owner; char pname; char phone;

17、 char state; char style; 4.2.12流程 输入开始判断接受结束图4.1 信息录入模块流程图4.2.2. 修改信息模块设计 此模块是为了修改维修产品的信息而建立的。在程序里面输入要修改的产品信息,通过访问所有的维修产品找出要修改的维修产品,然后对其进行信息的修改。 4.2.2.1模块算法 模块主要是实现修改数据的功能,设置一个修改产品的依据选取其中一项数据。在程序开始循环查找要修改的家电维修产品。若找到则进行数据的修改,找不到输出提示语。4.2.2.1 流程图开始结束输入查找修改开始 图 4.2 修改信息模块流程图4.2.3 查询信息模块设计 此模块的主要功能是查询维修

18、产品的相关信息。 4.2.3.1模块算法 输入要查找的维修产品的信息,利用模块一中的结束语句来控制循环的结束。找到要查询的产品的时候就输出产品信息,否则输出提示语, 4.2.3.1伪码 start while q do f end do else p end;4.2.4 删除信息模块设计此模块的只要是完成对维修产品进行删除的功能。4.2.4.1 模块算法 利用while循环语句查找要删除的维修产品,若找到则删除,否则输出提示信息。 4.2.4.2伪码 start while q do f end do else gstop4.2.5统计信息模块设计 此模块主要完成对产品信息进行统计的模块。4.

19、2.5.1模块算法 指定一项属性,根据这个属性查找产品,输入指定删除的产品。利用while循环进行查找要删除的产品,找到则进行删除,否则输出提示信息。4.2.5. 伪码 start while w do fend do else estop 5实现与调试分析输入如下的数据后进行运行,数据如下;结果如下:单步追踪调试没有问题。对每个子系统进入内部调试没有问题。说明此维修管理系统可以正常运行。 5.1实现环境 windows xp vc6+5.2语言选择c+开发语言5.3调试分析 单步追踪调试没有问题。对每个子系统进入内部调试没有问题。说明此维修管理系统可以正常运行每个子系统都是正常运行。没有发现

20、错误、。6测试分析 6.1测试用例测试数据如下: (bxgchen,20110123,20110212,123,ok); (phoyan,20110912,20111001,124,un); (fbowang,20110211,20110206,125,un); (thvchen,20110123,20110212,128,ok); (kotli,20110812,20111002,124,un); (xijzhao,20110411,20

21、110806,127,ok);6.2测试结果结果如下:图 6.1测试结果图1图 6.1测试结果图2 图 6.1测试结果图3图 6.1测试结果图4 图 6.1测试结果图56.3性能分析 此维修管理系统完全实现了维修部对维修产品信息的的查询,录入,删除,修改,统计等功能,也实现了客户对维修产品的查询的功能,是基于c开发的软件,用面向对象的设计思路完成对各信息的管理,提高了数据的安全性,算法也比较简洁,运行速度较快,界面比较美观。是一款信号良好的软件。7用户手册1. 打开维修管理系统进入界面;2. 根据需求选择你要进去的下一个界面,选择有1,2,3,4,5等3. 进入界面后,根据提示信息输入信息;4

22、. 进入结果的界面。5. 关闭界面,退出维修管理系统。总结 此维修管理系统是针对某公司维修部的需求开发出来的。做这个课程设计的过程中,我对软件工程这门课有了更深刻的认识和了解,掌握了更多知识。切实理解了这门课的思想,对开发软件有了系统的认识,感谢我的指导老师陈红红老师,感谢我的科任老师唐剑梅老师,感谢数学与计算机学院给我这样的平台来了解并掌握这门课程。参考文献1 张海藩. 软件工程导论,清华大学出版社,20042 陈明. 实用软件工程基础,清华大学出版社,20033 殷人昆.实用软件工程,清华大学出版社,20034 宋波.uml面向对象技术与实践,科学出版社,2004 附录 源程序文件名清单#

23、include#include#include/using namespace std;class jdprivate:char pname10;char phone15;char owner10;char time10;char time110;char style5;char state5;public: jd(char pa=,char pn=,char o=,char t=,char t1=,char sty=,char sta=); friend ostream &operator(ostream &out,const jd &s); friend void search(char*

24、filename); friend void count(char*filename); friend void deletee(char*filename); friend void change(char*filename);d1; jd:jd(char pa,char pn,char o,char t,char t1,char sty,char sta) strcpy(pname,pa); strcpy(phone,pn); strcpy(owner,o); strcpy(time,t); strcpy(time1,t1); strcpy(style,sty); strcpy(state

25、,sta); ostream & operator(ostream &out,const jd &s) coutpname phone owner time time1 style state endl; outs.pname s.phone s.owner s.time s.time1 s.style s.stateendl;return out; const int num=sizeof(d1);void creatfile(char*filename)ofstream out(filename);jd cs1(bxgchen,20110123,20110212,

26、123,ok);jd cs2(phoyan,20110912,20111001,124,un);jd cs3(fbowang,20110211,20110206,125,un); jd cs4(thvchen,20110123,20110212,128,ok); jd cs5(kotli,20110812,20111002,124,un);jd cs6(xijzhao,20110411,20110806,127,ok); out.seekp(0,ios:beg);

27、out.write(char*)&cs1,sizeof(cs1); out.write(char*)&cs2,sizeof(cs2); out.write(char*)&cs3,sizeof(cs3); out.write(char*)&cs4,sizeof(cs4); out.write(char*)&cs5,sizeof(cs5); out.write(char*)&cs6,sizeof(cs6); out.close();void readfile(char*filename) jd gg6=; int i=0; ifstream in(filename); while(!in.eof(

28、) in.read(char*)&ggi+,sizeof(d1); for(int j=0;ji-1;j+) coutggj; in.close();void search(char*filename) char st5;jd gg6; int i=0; ifstream in(filename); while(!in.eof() in.read(char*)&ggi+,sizeof(jd); coutplease input style you want to search:st;i=0; while(strcmp(ggi.style,st)&i=6) coutno resultsendl;

29、 else coutggi; void change(char*filename) char st5; int i=0;jd gg6; ifstream in(filename); while(!in.eof() in.read(char*)&ggi+,sizeof(jd); coutplease input style you want to change:st;i=0; while(strcmp(ggi.style,st)&i=6) coutno resultsendl; else coutplease input the new infomations ppname style ownerggi.pnameggi.styleggi.owner; coutggi; void count(char*filename) char ow10; jd gg6; int i=0,j=0; ifstream in(filename); while(!in.eof() in.read(char*)&ggi+,sizeof(jd); coutplease input owner you want to cout:ow;for(i=0;i6;i+) if(!strcmp(ggi.owner,ow) j+;coutggi;coutjendl; if(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论