高校水电费管理系统设计.docx
《高校水电费管理系统设计.docx》由会员分享,可在线阅读,更多相关《高校水电费管理系统设计.docx(47页珍藏版)》请在冰豆网上搜索。
高校水电费管理系统设计
实验报告
课程名称程序设计实践(C++)
实验题目高校水电费管理系统
实验仪器计算机
系别计算机学院
专业计算机科学与技术
班级/学号
学生姓名
实验日期2015-6-15
成绩
指导教师
实验题目高校水电费管理系统
一 、实验目的(10分)
面向对象程序设计实践课程设计是该课程集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习和实践。
要求学生能够熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基础知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力,达到课程学习的目的和要求。
2、 需求分析(20分)
2.1环境分析
随着科学技术的发展,不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
而面对现今社会的发展,水电费管理系统是每一个高校管理机构对学校资源进行有效管理的不可或缺的一个管理信息系统,它的内容对于学校资源管理机构的管理者来说是至关重要的,该系统应该能够为资源管理机构的管理者提供有效的帮助,使之能够对有效信息进行快捷的整理和查询,大大的方便了管理机构的管理者的合理有效管理。
2.2要求
具体要求:
(1)添加功能:
程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询如果未找到,给出相应的提示信息;如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有学生或教工的记录,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:
主要实现对已添加的学生或教工记录进行删除。
如果当前
系统中没有相应的记录则提示“记录为空”并返回操作。
(6)统计功能:
能统计学生和教工的用水用电量、所要交
纳的电费和水费信息等。
(7)保存功能:
可将当前系统中各类记录存入文件中,存入方式位“学生.txt”和“教师.txt”。
(8)读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用。
2.3运行环境
(1)WindowsXP/Windows7/Windows8等系统
(2)VisualC++6.0编译环境或VS2013编译环境等
2.4开发工具
C++语言
三、实验课时
24课时
4、实验步骤(20分)
4.1系统功能分析:
系统通过调用函数来实现教师、学生信息地录入、修改、删除、查询以及数据保存文件等功能。
input()函数用于录入信息;output()函数用来输出信息;statistics()函数用来统计信息;compile()函数用来修改教师和学生的信息;add()函数用来添加新增信息;reading()函数用来读取已有的文件;show()函数用于显示所有已有的记录;deletes()函数用来删除教师和学生的信息;search()函数用来查询信息;saving()函数用于将输入的信息存入文件内;主函数main()用于调用这些函数。
4.2系统功能模块划分与设计:
本系统定义了College类、Teacher类、Student类、Student_message类以及Teacher_message这五个类,定义了input()、output()、statistics()、compile()、add()、reading()、show()、deletes()、search()、saving()等函数来实现系统所需功能。
4.3详细设计
1.基类College的设计:
classCollege//声明基类大学类
{
public:
//公有数据成员
College(stringnam="",strings="",inta=0,intnum=0,doublewat=0.0,
doubleele=0.0,doublepowerf=0.0,doublewaterf=0.0):
name(nam),sex(s),age(a),number(num),water(wat),
electric(ele),powerfare(powerf),waterfee(waterf){};//定义构造函数
voidinput();//声明输入函数
voidoutput();//声明输出函数
stringgetname(){returnname;}//获取姓名
intgetage(){returnage;}//获取年龄
doublegetwater(){returnwater;}//获取用水量
doublegeteletric(){returnelectric;}//获取用电量
doublegetpowerfare(){returnpowerfare;}//获取电费
doublegetwaterfee(){returnwaterfee;}//获取水费
intgetnumber(){returnnumber;}//获取编号
public:
//公有类数据成员
stringname;//姓名
stringsex;//性别
intage;//年龄
intnumber;//编号
doublewater;//用水量
doubleelectric;//用电量
doublepowerfare;//电费
doublewaterfee;//水费
};
2.派生类Student类的设计
classStudent:
publicCollege//公有继承基类
{
public:
//公有数据成员
Student(stringnam="",strings="",inta=0,intnum=0,
doublewat=0.0,doubleele=0.0,doublepowerf=0.0,doublewaterf=0.0,stringgrad=""):
College(nam,s,a,num,wat,ele,powerf,waterf),grade(grad){}//定义学生类构造函数
voidinput();//声明学生类输入函数
voidoutput();//声明学生类输出函数
public:
//公有数据成员
stringgrade;
};
3.派生类Teacher类的设计
classTeacher:
publicCollege//公有继承基类
{
public:
//公用数据成员
Teacher(stringnam="",strings="",inta=0,
intnum=0,doublewat=0.0,doubleele=0.0,
doublepowerf=0.0,doublewaterf=0.0,stringdepart=""):
College(nam,s,a,num,wat,ele,powerf,waterf),department(depart){}//定义教师类构造函数
voidinput();//声明教师类输入函数
voidoutput();//声明教师类输出函数
public:
stringdepartment;
};
4.Student_message类的设计
classStudent_message//声明学生信息类
{
Studentstu[capacity];//学生数组
intamount;//当前的数据量
public:
Student_message(){amount=0;}//定义当前学生信息容量为0
voidadd();//声明学生信息添加函数
voidsearch();//声明学生信息查询函数
voidshow();//声明学生信息显示函数
voidcompile();//声明学生信息编辑函数
voiddeletes();//声明学生信息删除函数
voidstatistics();//声明学生信息统计函数
voidsaving();//声明学生信息保存函数
voidreading();//声明学生信息读取函数
};
5.Teacher_message类的设计
classTeacher_message//声明教师信息类
{
Teacherteach[capacity];
intamount;//定义当前数据数
public:
Teacher_message(){amount=0;}//初始记录数据数为0
voidadd();//声明教师信息添加函数
voidsearch();//声明教师信息查询函数
voidshow();//声明教师信息显示函数
voidcompile();//声明教师信息编辑函数
voiddeletes();//声明教师信息删除函数
voidstatistics();//声明统计函数
voidsaving();//声明教师信息保存函数
voidreading();//声明教师信息读取函数
};
五、实验心得(10分)
在课程设计刚开始时,我不清楚到底需要做什么,无从下手,因为这不是平时的实验,平时的实验都是有目的,有内容的,而此次的设计是需要自己去设计去实践的,没有什么东西,需要自己去一步一步实现,一步一步的写。
后来,回想老师所讲的方法和技巧,开始有了目的,也有了思路。
首先,在确定我的设计题目之后,并且在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。
其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。
经过三个星期的设计和实践,虽然有些疲劳和困倦,但带给我很多的收获。
C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,后来这种现象通过实际的上机操作和实验,以及老师的讲解,同学的帮助,已经减少了许多。
对这些知识也有了更深的理解和很好的掌握。
同时也有很多理论上可以说得过去的代码,但到了实际操作的时候,却是行不通的。
这种困惑,有许多已经通过实际
地操作解决了,并能够深刻地认识,但也有很多不是很清楚。
后来,只能避过这些方法,转换策略实现。
在课程设计之前,因为有了多次的综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。
于是在课程设计的时候,我先花了几天的时间来规划要写的代码,