ImageVerifierCode 换一换
格式:DOCX , 页数:55 ,大小:381.44KB ,
资源ID:5243333      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5243333.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高校水电费管理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高校水电费管理.docx

1、高校水电费管理青岛理工大学C+面向对象课程设计报告院(系): 计算机工程学院 专业: 软件工程 学生姓名: 班级 软件133 学号: 题目: 高校水电费管理系统设计 起迄日期: 2015.6.292015.7.10 设计地点: 计算机学院机房 指 导 教 师: 完成日期: 2015 年7月 10 日任务书题目9 “高校水电费管理系统设计”1、问题描述住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信息和行为。2、功能要求(1)

2、添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数

3、进行统计。能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。(9)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。3、问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统

4、的应用模块;(7)功能调试;(8)完成系统总结报告。课程设计报告内容一、需求分析1.选做此课题或项的目的 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次;要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。(3)在系统的设计中,要有清晰的界面设计,同时采用文件进行读写操作。2.

5、程序所实现的功能(1)添加功能:程序能够添加职工的记录和工作量,可提供选择界面供用户选择所要添加的类别,要求职工的编号要唯一,如果添加了重复职工号的职工记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据职工号、姓名等信息对已添加的职工记录进行查询。还可以按职工号对工作量进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有职工记录和工作量统计信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除和工作量进行删除。如果当前系统中没有相应

6、的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。(6)统计功能:对职工可按工作量进行统计,并排名次。(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。(9)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。二、内容设计1.根据所选题目,给出模块图 图2.1 高校水电费管理系统模块图2.画出主程序及其主要模块的流程图 图2.2 main()函数 图2.3 添加函数 图2.4

7、 菜单函数 图2.5 查找函数 图2.6 修改函数 图2.7 显示函数图2.8 删除函数3.编写程序关键代码void Add()/添加信息 Student s; cout输入新添人员信息endl; s.Input(); for(int i=0;iamount;i+) if(s.num=stui.num) cout该编号的用户已存在!endl; return; stuamount=s; cout添加成功!endl; ofstream out_file(学生.txt,ios:app); /将添加记录更新到文件 if(!out_file) cout打开失败!endl; return; out_fil

8、estuamount.num stuamount.name stuamount.sex stuamount.old stuamount.classrome stuamount.water stuamount.watermoney stuamount.power stuamount.powermoney stuamount.flagchioce; switch(chioce) case 1: string name; cinname; int k=0; for(int i=0;iamount;i+) if(stui.name=name) coutstui.numstui.name)stui.se

9、x stui.oldstui.classromestui.waterstui.watermoney stui.powerstui.powermoneystui.flagnendl; k=1; if(k=0) cout查无此人!waters; int k=0; for(int i=0;iamount;i+) if(stui.water=waters) coutstui.numstui.name)stui.sex stui.oldstui.classromestui.waterstui.watermoney stui.powerstui.powermoneystui.flagnendl; k=1;

10、 if(k=0) cout查无此用水量!powers; int k=0; for(int i=0;iamount;i+) if(stui.power=powers) coutstui.numstui.name)stui.sex stui.oldstui.classromestui.waterstui.watermoney stui.powerstui.powermoneystui.flagnendl; k=1; if(k=0) cout查无此用电量!endl; break; default:cout无此选项!请重试!endl; break; void Show() /显示信息coutstui.

11、numstui.name)stui.sexstui.oldstui.classromestui.waterstui.watermoney stui.powerstui.powermoneystui.flagnnums; int k=0; for(int i=0;iamount;i+) if(stui.num=nums) Student s; s.Inputs(); for(int t=0;tamount;t+) if(s.num=stut.num) if(t=i) continue; cout该编号的用户已存在!修改不成功!endl; return; stui=s;coutstui.numst

12、ui.name)stui.sexstui.oldstui.classromestui.waterstui.watermoneystui.powerstui.powermoneystui.flagendl; cout修改成功!endl; k=1; if(k=0) cout查无此人!chioce; switch(chioce) case 1: string nums; cinnums; int k=0; for(int i=0;ichoice; switch(choice) case 1: for(int j=i;jamount-1;j+) stuj=stuj+1; amount-; k=1; b

13、reak; case 0:k=2;break; default:cout无此项!endl;break; if(k=1) cout删除成功!endl; else if(k=2) cout查找到此学号,但未删除!endl; else cout查无此学号!endl; break; case 2: cout请输入姓名:names; int k=0; for(int i=0;ichoice; switch(choice) case 0: k=2;break; case 1: for(int j=i;jamount-1;j+) stuj=stuj+1; amount-; k=1; break; defau

14、lt:cout无此项!endl;break; if(k=1) cout删除成功!endl; else if(k=2) cout查找到此学号,但未删除!endl; if(k=1) cout查无此学号!endl; break; default: cout无此项!endl;break; void Total() /统计信息 int t=0; for(int i=0;iamount;i+) if(stui.flag=否) coutstui.numstui.name)stui.sexstui.oldstui.classromestui.waterstui.watermoneystui.powerstui

15、.powermoneystui.flagendl; t=1; if(t=0) cout无未缴费人员!endl;void Read() /读取信息 ifstream in_file(学生.txt,ios:in); if(!in_file) cout打开失败!stui.numstui.namestui.sexstui.oldstui.classrome stui.waterstui.watermoneystui.powerstui.powermoneystui.flag) coutstui.numstui.name)stui.sexstui.oldstui.classromestui.waters

16、tui.watermoneystui.powerstui.powermoneystui.flagendl; i+; in_file.close();三、调试分析1.实际完成的情况说明(完成的功能,支持的数据类型等)完成的功能:(1)添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据

17、一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。(9)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。 支持类型:编号、年龄支持int型,姓名、性别、工作部门、班级

18、、交费情况支持string型,用电量、用水量、电费、水费支持double型。2.程序的性能分析 程序主要使在类中操作,将所有记录存入对象数组和文件,采用顺序存储结构对数组进行操作,从而实现需要的操作。3.上机过程中出现的问题及其解决方案1.对类的数据成员进行定义时,起初定义为私有数据,结果继承类不能访问,这是类的访问权限出了问题,于是将其改成了公有数据成员,继承类能够对其进行访问了。2.继承类对基类的访问出现了错误。由于Student类和Teacher类都是从Person类继承的,会出现二义性,因此将其改成虚基类,这样就不会出现二义性飞的问题。3.由于要输入多组数据,因此要定义对象数组,而且要

19、定义为全局变量,否则不会得到有效的修改。4.当系统关闭以后,再打开系统进行操作,若是添加文件中已经存在的编号,还是会添加到文件中去,这是因为文件的更新和当前系统的更新不一直,因此在最开始打开系统是就应该将文件中的记录读取到当前系统中。4.程序中可以改进的地方说明1.程序应该可以实现输入信息的正确性,例如输入性别的时候,如果不是男或女,可以输出提示信息等。2.对于学生所在班级、性别,老师工作部门、性别等操作可以采用选择的模式,将信息录入文件中,这样可以使输入更方便。3.对于每一次信息的操作应该输出相应的原有信息和现有信息,以防信息出错。4.对于存在多个相同数据的记录,在删除和修改时应注意是否每个

20、都修改。5.程序中可以扩充的功能及设计实现构想功能:可以添加一个人的12月份的用水用电情况。构想:可以在类中再定义相应的对象数组,在进行操作时,除了对当前数组进行操作,还要对每个人的对象数组进行操作,然后写入文件。四、用户手册 图4.1 打开操作系统2.选择相应操作:图4.2 选0,退出系统 图4.3 选1,教师水电费管理系统 图4.4 选2,学生水电费管理系统3.教师水电费管理系统: 图4.5 选0,返回上层系统图4.6 选1,添加教师信息图4.7 选2,查询教师信息 图3.8 选3,修改教师信息 图3.9 选4,删除教师信息 图3.10 选5,显示教师信息 图3.11 选6,读取教师信息

21、图2.12 选7,统计教师信息4.学生水电费管理系统: 操作同教师水电费管理系统。五、设计总结(可谈一谈本次课程设计的经验和体会)课程设计,对于我们现在只学了些基础的知识的人来说确实是一个不小的挑战!我想对每个人都一样别人能做到的,我也能做到!从一个函数到很多函数的有机集合到多个类的使用,其中也经历了不少困惑与不知。但至少我现在做到了,终于战胜了自己对课程设计的恐惧,也收获了程序运行成功的喜悦,有付出,就有收获 通过这学期对C+的学习总结,要把知识运用于这次的课程设计,发现还是有点不足,有点困难,学到用时方恨少,自己学的还不够精,不够深。对于一门技术来说,浅尝辄止是远远不够的。还好通过去网上搜

22、索、去图书馆查找资料、请教老师同学等各种方式克服了一个又一个的困难。多样化的处理问题,才是成功之道,终于把设计给完成了! 学习的心态很关键,不懂了就要学着去用不同的方式去获取,补足自己,通过各种各样的方式,学着去请教别人和别人交流,做到不懂就问。相对来说,我的程序更简易,代码相对来说比较少,但却实现了大多数功能。简单易懂可行才是程序设计的本质,不是吗?把所学的运用于生活中,收获了那种成就感不言而喻的高兴。 至今我感慨颇多的应当是一些难以查出的错误,编译时查不出的错误,其被发现时很可能只是位置的错误,仅隔数行,这些微小的信息却极大地影响了整体的效果。这不仅存在于一个程序之中,因而我对于生活中的细

23、节也有了改观,对于整体和局部的观念也有了更多的见解。 通过这次实践,我对编程有了新的理解,编程并不是像大多数人说的那样充满单调,乏味。一件东西的乐趣在于你能去接触去理解。我接触了,我理解了。让所学的运用于生活中,做到灵活运用,学有所成的兴奋是难得的宝贵。我在其中感悟到乐趣了,相信这是我编程高手之路的一个重要转折点。六、参考文献1 李兰, 任凤华. C+面向对象程序设计. 西安: 西安电子科技大学出版社, 20102 李兰, 任凤华. C+面向对象程序设计实验指导及习题解析. 西安: 西安电子科技大学出版社, 20103 郑莉, 董渊. C+程序设计基础教程. 北京: 清华大学出版社, 2010

24、4 郑莉. C+程序设计基础教程学生用书. 北京: 清华大学出版社, 2010七、附录#include #include #include #include #include #define MAX 100using namespace std;class Personpublic: string num; /编号 string name; /姓名 string sex; /性别 int old; /年龄 double power; /用电量 double water; /用水量 double watermoney; /水费 double powermoney; /电费 string flag

25、;/缴费标志public: Person(string n=,string nm=,string s=,int d=0,double p=0,double w=0,double wm=0,double pm=0,string f=否) /构造函数 num=n; name=nm; sex=s; old=d; power=p; water=w; watermoney=wm; powermoney=pm; flag=f; ;int amount; /记录当前记录的个数class Student:virtual public Personpublic: string classrome; /班级pub

26、lic: Student(string n=,string nm=,string s=,int d=0,double p=0,double w=0,string cr=,double wm=0,double pm=0,string f=否) :Person(n,nm,s,d,p,w,wm,pm,f) /构造函数 classrome=cr; void Input(); void Inputs(); void Output(); void Add(); /添加信息 void Search(); /查询信息 void Show(); /显示信息 void Compile(); /修改信息 void Delete(); /删除信息 void Total(); /数据统计 void Save(); /保存信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1