软件工程课程设计自来水收费管理系统_第1页
软件工程课程设计自来水收费管理系统_第2页
软件工程课程设计自来水收费管理系统_第3页
软件工程课程设计自来水收费管理系统_第4页
软件工程课程设计自来水收费管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、西华大学课程设计报告 数学与计算机学院课程设计说明书课 程 名 称: 软件工程课程设计 课 程 代 码: 8404131 题 目: 自来水收费管理系统 年级/专业/班: 09级软件工程四班 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 05 月 27 日完 成 时 间: 2011 年 06 月 12 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日软 件 工 程 课 程 设 计 任 务 书学院名称: 数学与计算机学院 课程代码:_8404131_专 业: 软件工

2、程 年 级: 09级 一、设计题目自来水收费管理二、主要内容用户管理、抄表数据录入、用户缴费、各项信息统计查询等多个方面。三、具体要求及应提交的材料1、完成系统的需求分析通过需求分析确定系统需要处理的数据的需求,要求使用数据库的辅助设计工具(powerdesigner等),建立业务处理模型2、完成系统概念结构设计概念数据模型(cdm)用于完成数据库的设计,与人和数据库平台和具体数据存储结构和工具无关。首先选择局部应用画出分e-r图,最终形成系统的e-r图3、完成系统逻辑结构设计按照e-r图转换成关系模式的规则,将cdm转换成逻辑数据模型,并为每个关系模式实际主键、外键。分析关系模式中的依赖关系

3、,对关系模式规范化处理4、完成系统物理结构设计为每个关系分配存储长度,建立数据库的索引和视图,定义关系中的主码和外码,写出关系创建和查询的sql语句。5、编码选择你自己熟悉的开发工具完成一个dbs系统的编码工作。应上交的材料:1、课程设计报告2、程序源代码清单四、主要技术路线提示1、面向对象分析方法,认真阅读相关知识,完成系统的功能分析和系统设计2 选用access作为dbms,3 选用你熟悉的语言完成数据库的读写操作如java通过odbc jdbc桥完成数据库的操作简单代码:class.forname(sun.jdbc.odbc.jdbcodbcdriver);connection con

4、= drivermanager.getconnection (jdbc:odbc:student, , );statement stmt = con.createstatement();resultset rs = stmt.executequery(select * from stu);while(rs.next() system.out.println(rs.getstring(name); rs.close(); stmt.close(); con.close();五、进度安排1、第一周 完成系统分析和设计,并进行程序开发2、第二周 完成程序开发,进行测试并分析结果,最后撰写课程设计报告

5、六、推荐参考资料(不少于3篇)1 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日目 录1 前言72 需求分析7需求概要72.1 功能分析7用户管理7抄表管理7水费管理7统计查询8系统维护82.2 方案分析8各角色的用例图8用户用例图8管理员用例图8操作示意图9用户操作示意图9管理员操作示意图103 概要设计103.1 数据结构103.2 逻辑结构与物理结构133.3 功能模块划分133.4抽象数据类定义

6、154 详细设计154.1 数据类型定义154.2 主要模块内部设计174.2.1模块1设计(实际写时用本题目对应的模块名称)174.2.2 模块2设计(实际写时用本题目对应的模块名称)204.2.3 模块3设计(实际写时用本题目对应的模块名称)23源代码:245 实现与调试分析255.1 实现环境255.2 语言选择255.3 调试分析256 测试分析256.3 性能分析277用户手册28总 结28参考文献281 前言随着科学技术的发展,社会进步,计算机迅速的发展,自来水收费的方法也日新月异,以前全是由人管理的方法现存在很多的缺点:管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满

7、意。为了提高自来水收费管理效率,减轻劳动强度提高,信息处理速度和准确性;为自来水公司提供更方便、科学的服务项目。为他们提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个自来水收费管理系统的方案。让计算机对自来水收费进行自动管理,自来水公司可以直接在计算机上实现关于自来水的一些信息管理,并能在一定程度上实现自动化。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。2 需求分析需求概要针对在收费过程中出现的各类问题,我对该自来水公司从自身特点出发设计一个自来水收费管理系统,系统主要包含用户管理,抄表管理,水费管理,统计查

8、询和系统维护。2.1 功能分析 用户管理用户管理模块是系统的基本功能模块,管理员能够实现对用户的基本信息档案及用户表计的设置和管理,能够添加或删除用户。抄表管理抄表管理模块提供了对手工抄表数据的采集录入功能。水费管理水费管理模块是该收费系统的核心模块,它主要是对抄表数据进行加工处理,并根据用户用水性质计算水量和水费,打印水费通知单。并能提供用户上月用水和本月用水情况的查询。统计查询可进行损漏统计分析,生成统计分析图;能进行日供水、周供水、月供水统计分析及查询用户任何一个月的用水情况;从而支持领导办公。实现办公的现代化。系统维护该模块提供了操作员的权限管理,并提供系统备份、恢复、修复、报告等功能

9、,以确保系统稳定安全。通过以上几个模块从而实现自来水收费过程的自动化管理。满足了当前该县供水收费的需要,使供水企业能够合理、及时、准确的收费,保证供水业务正常进行2.2 方案分析各角色的用例图用户用例图 图 01 用户用例图管理员用例图 图 02 管理员用例图操作示意图用户操作示意图图 03 用户操作示意图管理员操作示意图图 04 管理员操作示意图3 概要设计 3.1 数据结构 分析画出自来水收费的数据流图,根据数据流图可以知道自来水公司和各个终端用户,其中可以查询用户信息和关于自来水使用和缴费的一些信息。 图3.1总体系统流程图说明:自水公司可根据自来水收费管理软件完成自来水信息的录入、并且

10、完成缴费清单,自来水管理系统可以根据自来水价格和水表度数打印水费单,发放清单给用户。e-r图相关设计: 公司公司名称公司地址联系电话 图3.2公司实体 用户用户登录帐号用户消费信息用户电话用户地址用户名 图3.3用户实体图 公司管理员管理员联系方式管理员编号管理员登录帐号 图3.4公司管理员实体密码帐号地址电话编号事务管理员公司 1 n m名称管理系统 用户 n帐号地址用户名消费电话 图3.5实体联系图3.2 逻辑结构与物理结构通过上述e-r图的相关分析,现在将e-r图转换成实体关系模型:公司实体(公司名称,公司地址,公司联系电话)用户实体(用户名称,用户地址,用户电话,用户消费情况,用户登录

11、帐号)公司管理员实体(管理员帐号,管理员编号,管理员联系电话)3.3 功能模块划分3.3.1结构框图系统结构框图:自来水收费系统信息查询水费管理抄表管理用户管理 图3.5自来水管理系统结构框图各个模块描述:用户管理:管理用户,增加用户或者删除用户。抄表管理:记录水表度数录入系统。水费管理:记录用户消费信息。信息查询:查询用户消费信息。3.3.2程序流图开始管理员? n y输入用户名和密码输入用户名和密码查询消费信息打印缴费单删除用户增加用户 图3.6系统流程图 3.3.3模块功能分析及外部设计自来水收费管理系统: 用于记录智能增加、删除自来水公司用户,并且记录用户每个月的消费信息和缴纳水费,管

12、理员可以增删用户,打印用户水费单,用户可以登录系统查询用户消费信息。用户管理功能: 管理员可以通过此功能增加或者删除用户,管理自来水公司的各个用户。抄表功能:抄表员抄表之后,管理员将数据录入系统,记录用户当月消费情况。水费管理功能:管理员根据水费价格和录入的抄表数据,系统自动得出用户所需缴纳的水费。系统查询功能:用户可以根据此功能查询抄表数据和所需缴纳水费。3.4抽象数据类定义class user public: user *next; public: string addr;/用户地址 long num;/用户编号 ;4 详细设计4.1 数据类型定义class user public: us

13、er *next; public: string addr;/用户地址 long num;/用户编号 void play()cout用户的地址是addr用户的编号是numnext; delete s; s=p; s=0; void sadd(); /添加 void sremove(); /删除 void samend(); /修改void management();/水费管理 void ssearch(); /查询 void ssave(); /保存 void sload(); /读取 private: user *s; /头接点 ;4.2 主要模块内部设计4.2.1模块1设计(实际写时用本题

14、目对应的模块名称)4.2.1.1 模块算法管理员登录自来水管理系统之后,可以增加、删除用户,并且可以根据自来水管理系统查询用户的详细信息。并且将用户的一系列详细信息保存在文件之中。4.2.1.2 流程图开始输入用户名、密码 no yes查看用户信息删除用户增加用户结束 图4.1管理员管理流程图源代码:void cla:sadd()/添加 user *q; string addr1; long num1; system(cls); coutn *增加的用户* nendl; cout请输入用户的(中间用空格间隔) endl; cout用户地址 用户编号:addr1num1; q=new user(

15、addr1,num1); q-next=0; if(s) user *t; t=s; if(t-num=num1) cout用户编号已存在,请重新输入next) if(t-num=num1) cout用户编号已存在,请重新输入next; t-next=q; else s=q; cout输入完毕endl; void cla:sremove()/删除 system(cls); int num1; coutn* 删除用户信息 *n; coutnum1; /查找要删除的结点 user *p1,*p2; p1=s; while(p1) if(p1-num=num1) break; else p2=p1;

16、 p1=p1-next; /删除结点 if(p1!=null)/若找到结点,则删除 p1-play(); cout确定删除吗?y/nc; if(toupper(c)!=y) return; if(p1=s) /若要删除的结点是第一个结点 s=p1-next; delete p1; else /若要删除的结点是后续结点 p2-next=p1-next; delete p1; cout找到用户编号为num1的用户,并删除n; else /未找到结点 cout未找到想要删除用户!n; 4.2.2 模块2设计(实际写时用本题目对应的模块名称)模块算法:管理员通过抄表员的抄表数据和自来水单价,可以得出用

17、户本月应该缴纳的自来水水费,并且可以打印缴费单,用户可以根据此缴费单查询用户本月消费情况并且缴费。 开始正确登录? no yes输入单价和抄表数据得出用户当月应缴水费打印缴费单 结束 图4.2水费管理模块流程图源代码:void cla:management()system(cls);long price,read,sum;cout请输入自来水价格price;cout请输入抄表度数read;sum=price*read;cout应缴纳水费sum;4.2.3 模块3设计(实际写时用本题目对应的模块名称)开始正确登录? no yes录入用户信息保存吗? no yes保存用户信息结束源代码:void

18、cla:ssave() /保存到文件 system(cls); char c; coutc; if(toupper(c)!=y) return; ofstream tfile(date.txt,ios_base:binary); user *p=s; while(p)/ 写入文件 tfileaddrtnumtsum; tfilenext; tfile.close(); cout保存完毕.num=num1) cout用户编号已存在,请重新输入next) if(t-num=num1) cout用户编号已存在,请重新输入endl; return; 6 测试分析6.1测试用例以及测试结果:功能模块正确

19、输入预期结果错误输入预期结果测试结果添加新用户管理员帐号:输入管理员身份证号管理员密码:输入管理员预设密码正确登陆管理员帐号:错误输入(正确输入)管理员密码:正确输入(错误输入)对不起!输入错误,请重新输入!性能正常删除用户管理员帐号输入管理员身份证号管理员密码:输入管理员预设密码正确登陆管理员帐号错误输入(正确输入)管理员密码:正确输入(错误输入)对不起!输入错误,请重新输入!性能正常修改用户信息管理员帐号输入管理员身份证号管理员密码:输入管理员预设密码正确登陆管理员帐号错误输入(正确输入)管理员密码:正确输入(错误输入)对不起!输入错误,请重新输入!性能正常用户水费管理管理员帐号输入管理员

20、身份证号管理员密码:输入管理员预设密码用户帐号:123456用户密码:123正确输入管理员帐号错误输入(正确输入)管理员密码:正确输入(错误输入)用户帐号:其它帐号用户密码:其它密码对不起!输入错误,请重新输入!输入错误,请重新输入!性能正常查询用户信息管理员帐号输入管理员身份证号管理员密码:输入管理员预设密码正确输入管理员帐号错误输入(正确输入)管理员密码:正确输入(错误输入)对不起!输入错误,请重新输入!性能正常保存至文档管理员帐号:123456用户密码:123正确输入管理员帐号其它帐号用户密码:其它密码对不起!输入错误,请重新输入!性能正常6.3 性能分析采用黑盒测试分析方法,黑盒测试法

21、用于测试软件功能,经测试之后,性能如下:添加新用户:管理员通过此功能完成新用户的添加工作。删除用户:管理员通过此功能可以完成删除已经不存在的用户。修改用户信息:管理员通过此功能完成对已经存在的用户信息的修改工作。用户水费管理:管理员通过此功能可以录入抄表数据,计算用户本月消费信息并且可以打印报表,用户通过此功能可以查询本月消费等方面的信息。查询用户信息:管理员通过此功能可以查询用户的信息,用户编号、住址等。保存至文档:管理员通过此功能可以保存用户信息至文档。由于技术上的限制,只能做出如此简单的系统,系统虽简单,但是基本能完成自来水管理方面的信息,还无法设计登录界面的问题,但是通过此次实训,了解

22、了很多制作软件的流程,希望以后能够制作出更加精致的系统。7用户手册管理员方面:管理员需注意,登录系统的时候,管理员帐号需采用管理员身份证号码,管理员密码由管理员设置。正确登录之后方可进入管理员管理界面。用户方面:用户需注意,用户帐号乃系统自动设置,帐号是123456,用户密码是123三位数,其它帐号和密码均不能登录此系统。总 结 本系统是自来水收费管理系统,能智能实现自来水收费方面的功能,自来水公司管理员可以实现管理用户功能,用户申报许可之后,管理员可以添加用户,当用户不存在的时候,管理员可以通过此系统删除用户,还可以查询用户方面的信息,并且将用户的一些信息保存之文档之中。此系统可以在装有wi

23、ndowsxp的微型计算机上实现。采用的语言是visualc+面向对象语言。通过本次课程设计,了解了很多软件设计的流程。虽然运用的时候还是有一些生疏,但是还是能大致完成。希望通过本次课程设计能为自来水管理方面出一份力。在这次实训中,获得了很多制作经验 ,但是需要知道,系统还是不完善了,由于能力有限,因此还有待完善。参考文献 1 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003#include #include #include #include using name

24、space std; class user public: user *next; public: string add;/地址 long num;/编号 int x,y,z;/月份,用水量,自来水价格 void play()coutadd编号是numnext; delete stu; stu=p; stu=0; void sadd(); /添加 void sremove(); /删除 void samend(); /修改 void ssearch(); /查询 void ssave(); /保存void sload(); void smoney();/用户水费计算 private: user

25、 *stu; /头接点 ;void cla:smoney()/用户水费计算user *p1,*p2; p1=stu; long num1; int x1;/消费月份 system(cls); cout请输入用户编号num1; cout请输入用户用水月份x1; while(p1) if(p1-num=num1&p1-x=x1) break; else p2=p1; p1=p1-next; if(p1!=null&p1-num=num1&p1-x=x1) p1=p1-next; cout此月用户缴纳水费是:y*p1-zendl; cout计算完毕endl; void cla:sadd()/添加 u

26、ser *q; string add1; long num1; int x1,y1,z1; system(cls); coutn *增加的用户* nendl; cout请输入用户的(中间用空格间隔) endl; cout地址 编号 月份 用水量 自来水价格:add1num1x1y1z1; q=new user(add1,num1,x1,y1,z1); q-next=0; if(stu) user *t; t=stu; if(t-x=x1&t-num=num1) cout该用户该月份已存在,请重新输入next) if(t-x=x1&t-num=num1) cout该用户该月份已存在,请重新输入n

27、ext; t-next=q; else stu=q; cout输入完毕endl; void cla:sremove()/删除 system(cls); int num1;int x1; coutn* 删除用户信息 *n; coutnum1;cout请输入需要删除的该用户月份x1; /查找要删除的结点 user *p1,*p2; p1=stu; while(p1) if(p1-num=num1&p1-x=x1) break; else p2=p1; p1=p1-next; /删除结点 if(p1!=null&p1-num=num1&p1-x=x1)/若找到结点,则删除 p1-play(); co

28、ut确定删除吗?y/nc; if(toupper(c)!=y) return; if(p1=stu) /若要删除的结点是第一个结点 stu=p1-next; delete p1; else /若要删除的结点是后续结点 p2-next=p1-next; delete p1; cout找到编号为num1的用户,并删除该月份的信息n; else /未找到结点 cout未找到想要删除的用户!n; void cla:samend()/修改 system(cls); long num1;int x1; coutn* 修改用户信息 *n; coutnum1;cout请输入该用户月份x1; /查找要修改的结点

29、 user *p1,*p2; p1=stu; while(p1) if(p1-num=num1&p1-x=x1) break; else p2=p1; p1=p1-next; if(p1!=null&p1-num=num1&p1-x=x1) cout编号是num1月份是x的用户的信息endl; cout地址 add用水量y水价zendl; cout请输入修改后的信息:用户地址 月份 用水量 水价p1-addp1-xp1-yp1-z; cout修改成功endl; else /未找到接点 cout未找到!n; void cla:ssearch()/查询 system(cls); coutn* 查询

30、用户信息 *nendl; cout请输入查询方式:endl; cout1.按编号查询endl; cout2.按用户地址查询endl; cout3.返回c; switch (c) case 1: long num1;int x1; cout要查询的用户编号num1;cout要查询的用户月份x1; /查找要查询的结点 user *p1,*p2; p1=stu; while(p1) if(p1-num=num1&p1-x=x1) break; else p2=p1; p1=p1-next; if(p1!=null&p1-num=num1&p1-x=x1) cout编号是num1的用户,月份是x月。该

31、用户的消费的信息endl; cout地址是:add 用水量是:y吨 缴纳的水费是 :z*p1-y元next;cout查询完毕endl;else /未找到接点 cout未找到!n; break; case 2: string add1;int x1; cout要查询的用户地址add1;cout请输入你需要查询的月份x1; /查找要查询的结点 user *p1,*p2; p1=stu; while(p1) if(p1-add=add1&p1-x=x1) break; else p2=p1; p1=p1-next; if(p1!=null&p1-add=add1&p1-x=x1) coutadd1的用户x月的消费信息是endl; cout编号:num 用水量:y吨 缴纳的水费是:z*p1-y元next;cout查询完毕.; else /未找到接点 cout未找到!n; break; case 3: ret

温馨提示

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

评论

0/150

提交评论