高校水电费管理系统设计(C++面向对象课程设计报告).docx
《高校水电费管理系统设计(C++面向对象课程设计报告).docx》由会员分享,可在线阅读,更多相关《高校水电费管理系统设计(C++面向对象课程设计报告).docx(46页珍藏版)》请在冰豆网上搜索。
![高校水电费管理系统设计(C++面向对象课程设计报告).docx](https://file1.bdocx.com/fileroot1/2022-10/5/9374bd2d-88c1-449c-97d7-5d1803436ace/9374bd2d-88c1-449c-97d7-5d1803436ace1.gif)
青岛理工大学
C++面向对象课程设计报告
院(系):
计算机工程学院
专业:
软件工程
学生姓名:
沈芳
班级 软件133 学号:
201307246
题目:
高校水电费管理系统设计_______
起迄日期:
_
设计地点:
计算机学院机房
指导教师:
王成钢 周全强
完成日期:
任务书
题目9 “高校水电费管理系统设计”
1、问题描述
住宿学生信息包括:
学号、姓名、性别、年龄、班级、用电量、用水量等信息。
教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。
能计算出学生和教工每月所要交的电费和水费。
定义一个人员类,实现学生和教工共同的信息和行为。
2、功能要求
(1)添加功能:
程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有学生和教工的记录,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:
主要实现对已添加的学生或教工记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”并返回操作。
(6)统计功能:
能根据多种参数进行统计。
能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。
(7)保存功能:
可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用。
(9)计算电费和水费。
学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。
3、问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
课程设计报告内容
一、需求分析
1.选做此课题或项的目的
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。
(3)在系统的设计中,要有清晰的界面设计,同时采用文件进行读写操作。
2.程序所实现的功能
(1)添加功能:
程序能够添加职工的记录和工作量,可提供选择界面供用户选择所要添加的类别,要求职工的编号要唯一,如果添加了重复职工号的职工记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据职工号、姓名等信息对已添加的职工记录进行查询。
还可以按职工号对工作量进行查询。
如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有职工记录和工作量统计信息,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:
主要实现对已添加的人员记录进行删除和工作量进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作;否则,输入要删除的人员的编号,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。
(6)统计功能:
对职工可按工作量进行统计,并排名次。
(7)保存功能:
可将当前系统中各类人员记录存入文件中,存入方式任意。
(8)读取功能:
可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
(9)计算电费和水费。
学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。
□上
□上上上
□上上上
studentMenu()上上
Total()
Show()
Compile()
Add()
Read()
Delete()
Search()
main上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
二、内容设计
1.根据所选题目,给出模块图
□上上上上上上上上
main上上上上
Read()
teacherMenu()上上
Total()
Show()
Compile()
Add()
Delete()
Search()
main上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
上上上上上上
□上
图2.1 高校水电费管理系统模块图
□上
□上上
2.画出主程序及其主要模块的流程图
□上choice上上
choice=0?
NO
YES
choice=1?
NO
YES
NO
choice=2?
YES
□上上上上上上上上上上
studentMenu()上上
teacherMenu()上上
□上上上
图2.2 main()函数
□上上
amount>=100?
YES
NO
□上上上
□上"上上上上上"
□上上上上上上
YES
NO
□上"上上上上上上"
□上
□上上上上上上
□上choice上上
choice=1上
NO
choice=2上
NO
choice=3上
NO
choice=4上
NO
choice=5上
NO
choice=6上
NO
choice=7上
NO
choice=0上NO
□上“上上上上
□上上上上上上”
□上
□上
图2.3 添加函数
□上上
□上上上上上上上上
YES
Add()上上
YES
Search()上上
YES
Compile()上上
YES
Delete()上上
YES
Show()上上
YES
Read()上上
YES
Total()上上
YES
main()上上
iYES
□上上上上
□上上上
i++
i=0
图2.4 菜单函数
□上上
YES
amount=0?
□上"上上上上上上上上上上"
NO
□上chioce上上
NO
chioce=1?
YES
chioce=2?
NO
□上上上
YES
NO
chioce=3?
□上上上上
YES
□上上上上
□上上上上上上上
iYES
i□上上上上上
YES
□上上上上上
□上上上
□上上上
□上
□上
□上
i++
i++
i=0
i=0
图2.5 查找函数
□上上
amount=0?
YES
□上"上上上上上上上上上上"
NO
□上上上
i=0
iNO
□上"上上上上上
YES
□上上上上
NO
YES
□上上上上
i++
□上
□上上上上上上上上
□上上
amount=0?
YES
□上"上上上上上上上上上上"
NO
图2.6 修改函数
iYES
□上上上
NO
□上
i++
i=0
图2.7 显示函数
□上上
YES 上上"上上上上
amount=0?
上上上上上上"
NO
□上chioce上上
chioce=1?
NO
YES
NO
□上上上
chioce=2?
YES
□上"上上上上"
□上上上
□上
iNO
YES
iNO
□上上上上
□上"上上
□上上上上"
NO
YES
YES
□上
□上"上上上上上上"
□上上上上上
□上上上上
NO
YES
□上
□上choice上上
□上上上上上
choice=1上
□上choice上上
NO
YES
□上"上上上上上"
□上"上上上上上上上上"
choice=1上
NO
YES
□上
□上"上上上上上"
□上"上上上上上上上上"
□上
i++
i++
i=0
i=0
图2.8 删除函数
3.编写程序关键代码
void Add()//添加信息
{
Students;
cout<<"输入新添人员信息"<for(inti=0;i{
cout<<"该编号的用户已存在!
"<}
stu[amount]=s;
cout<<"添加成功!
"<ofstreamout_file("学生.txt",ios:
:
app);//将添加记录更新到文件if(!
out_file)
{
cout<<"打开失败!
"<}
out_file<out