课程设计报告4019566.docx
- 文档编号:8489870
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:28
- 大小:150.93KB
课程设计报告4019566.docx
《课程设计报告4019566.docx》由会员分享,可在线阅读,更多相关《课程设计报告4019566.docx(28页珍藏版)》请在冰豆网上搜索。
课程设计报告4019566
(此文档为word格式,下载后您可任意编辑修改!
)
仲恺农业工程学院
课程设计报告
(居民水电费用管理系统)
课程面向对象课程设计
姓名袁家富
院(系)计算机科学与工程学院
专业年级计算机科学与技术083班
学号
指导教师陈勇
日期2010年8月30日-2010年9月12日
仲恺农业工程学院教务处制
目录
1、需求与功能分析1
2、系统总体框架XX
3、模块设计与分析XX
4、类的设计与分析XX
5、特色算法分析XX
6、功能测试XX
7、存在的不足与对策XX
8、程序源代码XX
9、使用说明XX
10、参考文献XX
1、需求与功能分析
1.1需求分析
水电管理系统为水电收费管理人员日常工作的抄表,报表生成,费用计算等提供充足的信息和快捷的查询手段。
利用VisualC++6.0软件及其提供的各种面向对象的开发工具,开发出功能完备,易使用的应用程序。
经过调试、编译与实现,该程序界面友好、程序设计风格朴素,使用起来美观大方、方便易用。
尤其是系统的“报表生成模块”的功能极大的减轻工作人员的工作量,并以快速、准确等优点取代人工操作,提高了水电管理工作效率。
1.2功能分析
本系统是面向普通的输人人员,所以系统使用必须尽可能简单。
根据对水电管理的具体要求及需要本软件实现的功能,将本软件分为7个大的模块,分别是:
第一部分:
住户信息录入;第二部分:
修改住户信息;第三部分:
删除住户信息;第四部分:
修改水电费用单价;第五部分:
住户水电费情况查询;第六部分:
报表生成程序;第七部分:
退出系统。
2、系统总体框架
3、模块设计与分析
1.住户信息录入
系统:
居民水电费用管理系统
模块:
住户信息录入
输入:
住户基本信息
输出:
提示信息
设计与分析:
1.进入系统时要设定住户数量。
2.然后进入此功能模块时,系统提示你输入你设定数量的住户的信息。
3.按提示输入住户的基本信息,包括姓名,编号,本月水用量和本月点用量。
4.全部信息输入后,退出模块,返回主菜单。
备注:
1.操作应简单。
2.按提示输入,否则可能会产生错误。
2.修改住户信息
系统:
居民水电费用管理系统
模块:
修改住户信息
输入:
住户的编号和修改后的信息
输出:
提示信息
设计与分析:
1.进入此功能模块时,系统提示你输入你想修改住户的编号。
2.然后系统会查找该住户。
3.如果找到该住户,按系统提示,修改住户的信息。
4.如果没有该住户,系统会提示“没有该住户的信息”。
3.执行完后,系统提示你是否继续修改。
4.输入Y继续进行修改操作。
5.按任意键,退出模块,返回主菜单。
备注:
1.操作应简单。
2.按提示输入,否则可能会产生错误。
3.删除住户信息
系统:
居民水电费用管理系统
模块:
删除住户信息
输入:
住户的编号
输出:
提示信息
设计与分析:
1.进入此功能模块时,系统提示你输入你想删除住户的编号。
2.如果删除成功,系统会提示“删除成功”。
3.如果没有该住户的信息,系统会提示“没有该住户的信息”。
4.执行完后,系统提示你是否继续修改。
5.输入Y继续进行删除操作。
6.按任意键,退出模块,返回主菜单。
备注:
1.操作应简单。
2.按提示输入,否则可能会产生错误。
4.修改水电费用单价
系统:
居民水电费用管理系统
模块:
修改水电费用单价
输入:
更改后的水电费单价
输出:
原来的水电费单价以及提示信息
设计与分析:
1.进入此功能模块时,系统提示你原来的水电费单价。
2.按照提示,修改水电费单价。
3.修改成功后,退出模块,返回主菜单。
备注:
1.操作应简单。
2.按提示输入,否则可能会产生错误。
5.住户水电费情况查询
系统:
居民水电费用管理系统
模块:
住户水电费情况查询
输入:
住户的编号
输出:
该住户水电费情况
设计与分析:
1.进入此功能模块时,系统提示你输入你想查询住户的编号。
2.若查找到该住户,系统会输出该用户的基本信息和水电费用情况。
3.如果没有该住户的信息,系统会提示“没有该住户的信息”。
4.执行完以后,系统会提示你是否继续查询。
5.输入Y继续进行查询操作。
6.按任意键,退出模块,返回主菜单。
备注:
1.操作应简单。
2.按提示输入,否则可能会产生错误。
6.报表生成
系统:
居民水电费用管理系统
模块:
报表生成
输入:
无
输出:
列出全部住户水电费情况
设计与分析:
1.进入此功能模块后,系统会输出所有住户的基本信息和水电费用情况。
2.退出模块,返回主菜单。
备注:
1.操作应简单。
7.退出系统
系统:
居民水电费用管理系统
模块:
退出系统
输入:
按提示输入
输出:
设计者信息以及提示信息
设计与分析:
1.进入此功能模块后,系统会输出设计者的信息。
2.系统提示信息,输入Y则退出系统;按任意键,退出模块,返回主菜单。
备注:
1.操作应简单。
4、类的设计与分析
1.Date类
classDate//日期
{
public:
voidSetvalue(inty,intm,intd)//初始化
{
year=y;
month=m;
date=d;
}
voidDisplay()//输出日期
{
cout< } private: intyear;//年 intmonth;//月 intdate;//日 }; 表1Date类说明表 名称 属性 说明 year 数据成员 记录日期对象的年份 month 数据成员 记录日期对象的月份 date 数据成员 记录日期对象的日期 Setvalue 成员函数 对日期对象初始化 Display 成员函数 输出日期 2.information类 classinformation { public: information(); ~information(); voidinput(); intgetid(); voidprice(); voidchangeprice(doublew,doublee); voidaccount(); voidinput_time(inty,intm,intd); voidoutput_time(); voiddisplay(); protected: stringname;//姓名 intid;//编号 doublewater;//用水量 doubleelec;//用电量 doublew_1;//水费单价 doublee_1;//电费单价 Datetime;//日期 }; 表2information类说明表 名称 属性 说明 name 数据成员 记录住户的姓名 id 数据成员 记录住户的编号 water 数据成员 记录住户的本月用水量 elec 数据成员 记录住户的本月用电量 w_1 数据成员 记录当前水费单价 e_1 数据成员 记录当前电费单价 time 数据成员 记录日期 information 成员函数 构造函数 ~information 成员函数 析构函数 input 成员函数 输入住户的信息 getid 成员函数 返回住户的编号 price 成员函数 输出当前水电费单价 changeprice 成员函数 改变水电费单价 account 成员函数 计算住户水电费用 input_time 成员函数 初始化日期 output_time 成员函数 输出日期 display 成员函数 输出用户水电费情况 5、特色算法分析 功能: 1.进入住户水电费情况查询选项后,首先执行“清屏”,然后在显示提示信息,按提示信息输入要查询的住户的编号。 然后逐个查找,当找到该编号的住户时,输出该住户的水电费情况的信息;若找不到该编号的住户,系统会输出提示语言: “没有该住户信息”。 2.查找完成后(找到或找不到),系统会提示你是否继续查找,若选择继续,则重复1的步骤;若选择退出,则返回上一层菜单。 算法思路: 1.要实现查找功能,用For语句,从第一个对象开始查找,用if语句来判断当前的对象是否为要查找的对象。 当找到该对象,输出该对象的内容;若找不到该对象,测输出提示信息,表明没有该对象的信息。 2.要实现多次查找,用do循环语句,算法一开始时,先进行一次查找,然后查找完成后,判断终止条件,终止条件由用户输入,若不满足终止条件,则继续执行循环体的内容,即继续进行查找;若满足终止条件,则退出循环体,然后进行其他相应的操作,最后返回主菜单。 代码: do { system("cls"); cout<<"|**************住户水电费情况查询***************|"< cout<<"请输入要查询的住户的编号: "; enternum(c); for(m=0;m { if(c==p[m].getid()) { menu6(p[m]); p[m].display(); cout< } elseif(p[m].getid()==0) cout<<"没有该住户信息"< } } while(jixu()); system("pause"); system("cls"); break; 流程图: 6、功能测试 图6-1住户基本信息录入功能测试图 图6-2报表生成功能测试图 图6-3修改住户信息功能测试图 图6-4住户水电费情况查询功能测试图 图6-5删除住户信息功能测试图 7、存在的不足与对策 由于设计者水平有限以及时间等方面的原因,本系统的功能比较简单,基本实现住户信息录入、修改、删除、查询等功能。 由于进入系统的时候已经设定好住户的数量,所以不能添加住户,到目前为止,还没找到合适的方法来解决迟问题。 此外,系统的查错能力也不强,对于一些不正确的输入可能会造成一些难以预料的结果,因此要按照系统提示信息输入数据,不要故意输入错误的信息。 还有的就是由于《数据库原理》的课程还没学完,对数据库的开发及应用还没有掌握好,因此,本系统没有用到数据库来管理系统的数据,导致本系统很多的功能不能实现。 在今后的学习当中,本人会更多地学习各种的编程技巧和扩充知识面,并且加强对数据库开发方面的学习,从而开发出功能更强大,更完善的数据管理系统。 8、程序源代码 /***********************"head.h"***********************/ #include #include #include #include usingnamespacestd; /***********************Date.h***********************/ #if! defined(DATE) #defineDATE #include"head.h" classDate//日期 { public: voidSetvalue(inty,intm,intd)//初始化 { year=y; month=m; date=d; } voidDisplay()//输出日期 { cout< } private: intyear;//年 intmonth;//月 intdate;//日 }; #endif /***********************"information.h"***********************/ #if! defined(INFORMATION) #defineINFORMATION #include"Date.h" //信息类的定义 classinformation { public: information(); ~information(); voidinput(); voidoutput(); intgetid(); voidprice(); voidchangeprice(doublew,doublee); voidaccount(); voidinput_time(inty,intm,intd); voidoutput_time(); voiddisplay(); protected: stringname;//姓名 intid;//编号 doublewater;//用水量 doubleelec;//用电量 doublew_1;//水费单价 doublee_1;//电费单价 Datetime;//日期 }; #endif /***********************"information.cpp"***********************/ #include"information.h" //成员函数的实现 information: : information()//构造函数 { name="\0"; id=0; water=0; elec=0; w_1=1.32; e_1=0.75; } information: : ~information()//析构函数 { name="\0"; id=0; water=0; elec=0; } voidinformation: : input()//输入住户信息 { cin>>name; cin>>id; cin>>water; cin>>elec; } voidinformation: : output()//输出住户信息 { cout<<""< } intinformation: : getid()//返回住户编号 { returnid; } voidinformation: : price()//输出当前水电费单价 { cout<<""<<"水费单价: "< cout<<"电费单价: "< } voidinformation: : changeprice(doublew,doublee)//改变水电费单价 { w_1=w; e_1=e; } voidinformation: : account()//计算水电费用 { doublew,e,we; w=water*w_1; e=elec*e_1; we=w+e; cout<<""< } voidinformation: : display()//输出住户水电费情况 { cout<<""< account(); } voidinformation: : input_time(inty,intm,intd)//输入日期 { time.Setvalue(y,m,d); } voidinformation: : output_time()//输出日期 { time.Display(); } /***********************"main.cpp"***********************/ #include"information.h" voidenternum(int&num)//清除流的错误 { charstr[80]; cin>>num; while(! cin) { cin.clear(); cin.getline(str,80); cout<<"你的输入有误,请重新输入: "; cin>>num; } } intjixu()//继续则返回1.退出返回0 { charc; cout<<"继续请按Y,退出请按任意键: "; cin>>c; if(c=='Y'||c=='y') return1; else return0; } intconfirm()//确定则返回1,取消返回0 { charc; cout<<"确定请按Y,取消请按任意键: "; cin>>c; if(c=='Y'||c=='y') return1; else return0; } voidmenu4() { cout<<"|--|"< cout<<"|姓名|编号|本月用水量|本月用电量|"< cout<<"|--|"< } voidmenu1(intn) { cout<<"|-|"< cout<<"|****************住户基本信息录入*****************|"< cout<<"|---输入"< ----|"< cout<<"|请按以下方式输入住户信息,不同数据之间以空格分割|"< cout<<"|-|"< menu4(); } voidmenu2() { cout<<"|----修改住户信息如下: ----|"< cout<<"|-|"< cout<<"|请按以下方式输入住户信息,不同数据之间以空格分割|"< cout<<"|-|"< menu4(); } voidmenu6(informationp) { cout<<"日期: "; p.output_time(); cout<<"||"< cout<<"|姓名|编号|本月用水量|本月用电量|水费金额|电费金额|总金额|"< cout<<"||"< } voidmenu0() { cout<<"|------|"< cout<<"|*****************面向对象课程设计******************|"< cout<<"|------|"< cout<<"|班级: 计机083姓名: 袁家富学号: |"< cout<<"|------|"< cout<<"|题目: 居民水电费用管理系统|"< cout<<"|------|"< cout<<"|确定退出请按Y|返回系统请按任意键|"< cout<<"|------|"< } intmenu() { inti; cout<<"|------|"< cout<<"|**************居民水电费用管理系统**************|"< cout<<"|------|"< cout<<"|||"< cout<<"|1住户信息录入|2修改住户信息|"< cout<<"|||"< cout<<"|3删除住户信息|4修改水电费用单价|"< cout<<"|||"< cout<<"|5住户水电费情况查询|6报表生成|"< cout<<"|||"< cout<<"|------|"< cout<<"|**************0退出系统**************|"< cout<<"|------|"< cout<<"请输入序号: "; enternum(i); while(i>6) { cout<<"你的输入有误,请重新输入: "; cin>>i; } returni; } /*主函数*/ intmain() { intn,m,k; doublew,e; chari; inta,b,c; intY,M,D; information*p; cout<<"|------|"< cout<<"|**********欢迎进入居民水电费用管理系统**********|"< cout<<"|------|"< cout<<"请输入住户数量: "; enternum(n); p=newinformation[n]; cout<<"设置日期: "< cout<<"年: "; cin>>Y; cout<<"月: "; cin>>M; cout<<"日: "; cin>>D; for(k=0;k { p[k].input_time(Y,M,D); } system("cls"); for(;;) { switch(menu()) { case1: system("cls"); menu1(n); for(m=0;m p[m].input(); system("pause"); system("cls"); break; case2: do { system("cls"); cout<<"|*****************修改住户信息*******************|"< cout<<"请输入要修改的住户的编号: "; enternum(a); for(m=0;m { if(a==p[m].getid()) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 4019566