高校水电费管理系统c--实验报告--本科毕业设计论文

上传人:痛*** 文档编号:204687817 上传时间:2023-04-27 格式:DOC 页数:58 大小:478.50KB
收藏 版权申诉 举报 下载
高校水电费管理系统c--实验报告--本科毕业设计论文_第1页
第1页 / 共58页
高校水电费管理系统c--实验报告--本科毕业设计论文_第2页
第2页 / 共58页
高校水电费管理系统c--实验报告--本科毕业设计论文_第3页
第3页 / 共58页
资源描述:

《高校水电费管理系统c--实验报告--本科毕业设计论文》由会员分享,可在线阅读,更多相关《高校水电费管理系统c--实验报告--本科毕业设计论文(58页珍藏版)》请在装配图网上搜索。

1、 实 验 报 告课程名称 程序设计实践(C+) 实验题目 高校水电费管理系统 实验仪器 计算机 系 别 计算机学院 专 业 计算机科学与技术 班级/学号 计类1401 学生姓名 杨浩 实验日期 2015-6-15 成 绩 指导教师 实验题目 高校水电费管理系统 一、实验目的(10分)面向对象程序设计实践课程设计是该课程集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习和实践。要求学生能够熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基础知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力,达到课程学习的目

2、的和要求。二、 需求分析 (20分)2.1环境分析随着科学技术的发展,不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。而面对现今社会的发展,水电费管理系统是每一个高校管理机构对学校资源进行有效管理的不可或缺的一个管理信息系统,它的内容对于学校资源管理机构的管理者来说是至关重要的,该系统应该能够为资源管理机构的管理者提供有效的帮助,使之能够对有效信息进行快捷的整理和查询,大大的方便了管理机构的管理者的合理有效管理。2.2要求具体要求:(1)添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号

3、要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询如果未找到,给出相应的提示信息;如果找到,则显示相应的记录信息。 (3)显示功能:可显示当前系统中所有学生或教工的记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录则提示“记录为空”并返回操作。 (6)统计功能:能统计学生和教工的用水用电量、所要交纳的电费和水费信息等。 (7)保存功能:可将当前系统中各类记录存入文

4、件中,存入方式位“学生.txt”和“教师.txt”。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。2.3运行环境(1)Windows XP/Windows 7/Windows 8 等系统(2)Visual C+ 6.0编译环境或VS 2013编译环境等2.4开发工具C+语言三、实验课时24课时四、 实验步骤(20分)4.1 系统功能分析:系统通过调用函数来实现教师、学生信息地录入、修改、删除、查询以及数据保存文件等功能。input()函数用于录入信息;output()函数用来输出信息;statistics()函数用来统计信息;compile()函数用来修改教师和学生

5、的信息;add()函数用来添加新增信息;reading()函数用来读取已有的文件;show()函数用于显示所有已有的记录;deletes()函数用来删除教师和学生的信息;search()函数用来查询信息;saving()函数用于将输入的信息存入文件内;主函数main()用于调用这些函数。 4.2系统功能模块划分与设计:本系统定义了College类、Teacher类、Student类、Student_message类以及Teacher_message这五个类,定义了input()、output()、statistics()、compile()、add()、reading()、show()、del

6、etes()、search()、saving()等函数来实现系统所需功能。4.3详细设计1.基类College的设计:class College /声明基类大学类public: /公有数据成员College(string nam = , string s = , int a = 0, int num = 0, double wat = 0.0,double ele = 0.0, double powerf = 0.0, double waterf = 0.0) :name(nam), sex(s), age(a), number(num), water(wat),electric(ele),

7、powerfare(powerf), waterfee(waterf); /定义构造函数void input(); /声明输入函数void output(); /声明输出函数string getname() return name; /获取姓名int getage() return age; /获取年龄double getwater() return water; /获取用水量double geteletric() return electric; /获取用电量double getpowerfare() return powerfare; /获取电费double getwaterfee() r

8、eturn waterfee; /获取水费int getnumber() return number; /获取编号public: /公有类数据成员string name; /姓名string sex; /性别int age; /年龄int number; /编号double water; /用水量double electric; /用电量double powerfare; /电费double waterfee; /水费;2. 派生类Student类的设计class Student : public College /公有继承基类public:/公有数据成员Student(string nam

9、= , string s = , int a = 0, int num = 0,double wat = 0.0, double ele = 0.0, double powerf = 0.0, double waterf = 0.0, string grad = ) :College(nam, s, a, num, wat, ele, powerf, waterf), grade(grad)/定义学生类构造函数void input();/声明学生类输入函数void output();/声明学生类输出函数public:/公有数据成员string grade;3. 派生类Teacher类的设计cl

10、ass Teacher : public College /公有继承基类public:/公用数据成员Teacher(string nam = , string s = , int a = 0,int num = 0, double wat = 0.0, double ele = 0.0,double powerf = 0.0, double waterf = 0.0, string depart = ) :College(nam, s, a, num, wat, ele, powerf, waterf), department(depart)/定义教师类构造函数void input();/声明

11、教师类输入函数void output();/声明教师类输出函数public:string department;4.Student_message类的设计class Student_message/声明学生信息类Student stucapacity;/学生数组int amount;/当前的数据量public:Student_message() amount = 0; /定义当前学生信息容量为0void add();/声明学生信息添加函数void search();/声明学生信息查询函数void show();/声明学生信息显示函数void compile();/声明学生信息编辑函数void

12、deletes();/声明学生信息删除函数void statistics();/声明学生信息统计函数void saving();/声明学生信息保存函数void reading();/声明学生信息读取函数;5. Teacher_message类的设计class Teacher_message/声明教师信息类Teacher teachcapacity;int amount; /定义当前数据数public:Teacher_message() amount = 0; /初始记录数据数为0void add();/声明教师信息添加函数void search();/声明教师信息查询函数void show()

13、;/声明教师信息显示函数void compile();/声明教师信息编辑函数void deletes();/声明教师信息删除函数void statistics();/声明统计函数void saving();/声明教师信息保存函数void reading();/声明教师信息读取函数;五、实验心得(10分)在课程设计刚开始时,我不清楚到底需要做什么,无从下手,因为这不是平时的实验,平时的实验都是有目的,有内容的,而此次的设计是需要自己去设计去实践的,没有什么东西,需要自己去一步一步实现,一步一步的写。后来,回想老师所讲的方法和技巧,开始有了目的,也有了思路。首先,在确定我的设计题目之后,并且在对本

14、题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。经过三个星期的设计和实践,虽然有些疲劳和困倦,但带给我很多的收获。C+已经学了一个学期了,有许多知识都存在似懂非懂的现象,后来这种现象通过实际的上机操作和实验,以及老师的讲解,同学的帮助,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。同时也有很多理论上可以说得过去的代码,但到了实际操作的时候,却是行不通的。这种困惑,有许多已经通过实际地操作解决了,并能够深刻地认识,但也有很多不是很清楚。后来

15、,只能避过这些方法,转换策略实现。在课程设计之前,因为有了多次的综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我先花了几天的时间来规划要写的代码,将要实现的内容分析清楚,才把代码输入电脑。这样就能够有效地降低了错误的几率,提高了写代码的效率,并且也减少了设计时的盲目性,无序性。同时,这次的课程设计,让我充分的感觉到了自己要设计一个好的程序是多么的难和不容易,以及学习好C+是多么的重要。在这个程序的设计过程中,我清楚的意识到了自己的编程水平有多么的薄弱,

16、课程的知识学得有多么的不扎实。在程序调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候因为少了一个大括号或是分号,要找很久很久。在完成课程设计的过程中,我发现运行后的界面非常的不好看,效果不是很好,有些数据之间没有分开,格式较拥挤,分辨不清各个数据所代表的含义。后来,对程序进行了修改和添补,有了一定的好转,加了一些必要的空格和符号,以及一些标识,使得程序的界面更加的友好、美观,更佳的适用。尽管系统后来可以正常地运行,也具有了一些基本的功能,但我还是意识到了自己有太多的不足。但是呢,好在以后还会有很多的课程设计,我则一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用

17、,这样走上社会我才能真正的发挥所长。六、 程序运行结果截图以及C+程序源代码(40分)程序运行结果截图1.开始运行界面截图:2.退出主界面:3.进入教师水电费管理系统:4.添加功能:5.查找功能:6.修改功能:7.读取显示功能:8.添加、保存功能:9.统计功能:10.删除功能:11.退出教师水电费管理系统: 注:学生水电费管理系统运行原理与教师水电费管理系统运行与原理一样。程序源代码:#include#include#include#includeconst int capacity = 1500; /定义常变量数据容量为1500using namespace std;class Colleg

18、e /声明基类大学类public: /公有数据成员College(string nam = , string s = , int a = 0, int num = 0, double wat = 0.0,double ele = 0.0, double powerf = 0.0, double waterf = 0.0) :name(nam), sex(s), age(a), number(num), water(wat),electric(ele), powerfare(powerf), waterfee(waterf); /定义构造函数void input(); /声明输入函数void o

19、utput(); /声明输出函数string getname() return name; /获取姓名int getage() return age; /获取年龄double getwater() return water; /获取用水量double geteletric() return electric; /获取用电量double getpowerfare() return powerfare; /获取电费double getwaterfee() return waterfee; /获取水费int getnumber() return number; /获取编号public: /公有类数据

20、成员string name; /姓名string sex; /性别int age; /年龄int number; /编号double water; /用水量double electric; /用电量double powerfare; /电费double waterfee; /水费;/class Student : public College /公有继承基类public:/公有数据成员Student(string nam = , string s = , int a = 0, int num = 0,double wat = 0.0, double ele = 0.0, double powe

21、rf = 0.0, double waterf = 0.0, string grad = ) :College(nam, s, a, num, wat, ele, powerf, waterf), grade(grad)/定义学生类构造函数void input();/声明学生类输入函数void output();/声明学生类输出函数public:/公有数据成员string grade;class Student_message/声明学生信息类Student stucapacity;/学生数组int amount;/当前的数据量public:Student_message() amount =

22、0; /定义当前学生信息容量为0void add();/声明学生信息添加函数void search();/声明学生信息查询函数void show();/声明学生信息显示函数void compile();/声明学生信息编辑函数void deletes();/声明学生信息删除函数void statistics();/声明学生信息统计函数void saving();/声明学生信息保存函数void reading();/声明学生信息读取函数;/void Student:input()/学生信息输入函数cout 请输入姓名: name;int choice;cout 请选择性别(1.男,2.女): ch

23、oice;switch (choice)case 1:sex = 男; break;case 2:sex = 女; break;default:cout 输入错误! endl; break;cout 请输入年龄: age;cout 请输入班级: grade;cout 请输入学号: number;cout 请输入本月用水量: water;cout 请输入本月用电量: electric;cout 请输入水费: waterfee;cout 请输入电费: powerfare;void Student:output()/学生信息输出函数cout 姓名: name 性别: sex 年龄: age endl

24、;cout 班级: grade 学号: number 用水量: water endl;cout 用电量: electric 水费: waterfee 电费: powerfare endl= capacity)cout 警告!用户已满! endl;return;Student stud;cout 请输入添加人员的信息 endl;stud.input();for (int i = 0; i amount; i+)if (stud.getnumber() = stui.getnumber()cout 该编号人员已存在! endl;return;stuamount = stud;amount = am

25、ount + 1;cout 添加成功! endl;void Student_message:search()/学生信息查询函数if (amount = 0)cout 当前没有人员记录! endl;return;int choice;cout 请选择查询方式:1.编号查找 2.姓名查找 3.用水量查找 4.用电量查找 choice;switch (choice)case 1:cout 请输入要查询的编号: number;cout 姓名 性别 年龄 班级 学号 setw(10) 用水量 setw(10) 用电量 setw(10) 水费 setw(10) 电费 endl endl;for (int

26、i = 0; i amount; i+)if (stui.getnumber() = number)stui.output();return;cout 此人不存在! endl;break;case 2:cout 请输入要查询的姓名: name;cout 姓名 性别 年龄 班级 学号 setw(10) 用水量 setw(10) 用电量 setw(10) 水费 setw(10) 电费 endl endl;for (int i = 0; i amount; i+)if (stui.getname() = name)stui.output();return;cout 此人不存在! endl;break

27、;case 3:cout 请输入要查询的用水量: water;cout 姓名 性别 年龄 班级 学号 setw(10) 用水量 setw(10) 用电量 setw(10) 水费 setw(10) 电费 endl endl;for (int i = 0; i amount; i+)if (stui.getwater() = water)stui.output();return;cout 此人不存在! endl;break;case 4:cout 请输入要查询的用电量: electric;cout 姓名 性别 年龄 班级 学号 setw(10) 用水量 setw(10) 用电量 setw(10)

28、水费 setw(10) 电费 endl endl;for (int i = 0; i amount; i+)if (stui.geteletric() = electric)stui.output();return;cout 此人不存在! endl;break;default:cout 无此选项,请重试! endl; break;void Student_message:show()/学生信息显示函数if (amount = 0)cout 没有数据! endl;return;cout 姓名 性别 年龄 班级 学号 setw(10) 用水量 setw(10) 用电量 setw(10) 水费 se

29、tw(10) 电费 endl endl;for (int i = 0; i amount; i+)stui.output();void Student_message:compile()/学生信息编辑函数if (amount = 0)cout 当前没有人员记录! endl;return;int num;cout 请输入要查找的编号: num;for (int i = 0; i amount; i+)if (stui.getnumber() = num)cout 请输入修改的信息 endl;stui.input();cout 修改成功! endl;return;cout 查无此人! endl;v

30、oid Student_message:deletes()/学生信息删除函数if (amount = 0)cout 当前没有人员记录! endl;return;cout 请输入您的选择: endl;cout 1.编号查找删除2.姓名查找删除 choice;switch (choice)case 1:cout 请输入编号: num;for (int i = 0; i amount; i+)if (num = stui.number)cout 是否删除? endl;cout 1.是 2.否 choice1;switch (choice1)case 1:for (int k = i; k amoun

31、t - 1; k+)stuk = stuk + 1;cout 删除成功! endl;amount-; break;case 2:return;default:cout 不存在此选项! endl; break;return;cout 不存在此人! endl; break;case 2:cout 请输入姓名: name;for (int i = 0; i amount; i+)if (name = stui.name)cout 是否删除? endl;cout 1.是2.否 choice2;switch (choice2)case 1:for (int k = i; k amount - 1; k+

32、)stuk = stuk + 1;cout 删除成功! endl;amount-; break;case 2:return;default:cout 无此项,失败! endl; break;return;cout 无此人! endl; break;default:cout 没有此选项,失败! endl; break;void Student_message:statistics()/统计函数cout 1.学生用水总量和用电总量2.学生总的水电费 endl;int choice;cout 请选择您的选项: choice;switch (choice)case 1:double all_water

33、 = 0.0, all_electric = 0.0;for (int i = 0; i amount; i+)all_water += stui.water;all_electric += stui.electric;cout 学生总用水量为: all_water endl;cout 学生总用电量为: all_electric endl;break;case 2:double all_waterfare = 0.0, all_powerfee = 0.0;for (int i = 0; i amount; i+)all_waterfare += stui.waterfee;all_power

34、fee += stui.powerfare;cout 学生总水费为: all_waterfare endl;cout 学生总电费为: all_powerfee endl;break;default: cout 输入错误!请重新输入! endl; break;void Student_message:saving()/学生信息保存函数ofstream out(学生.txt, ios:out);if (!out)cout 打开失败! endl;return;cout 打开成功! endl;for (int i = 0; i amount; i+)out stui.name stui.sex stu

35、i.age stui.grade stui.number stui.water stui.electric stui.waterfee stui.powerfare endl;cout 写入成功! endl;out.close();void Student_message:reading()/学生信息读取函数ifstream in(学生.txt, ios:in);if (!in)cout 打开失败! stuj.name stuj.sex stuj.age stuj.grade stuj.number stuj.water stuj.electric stuj.waterfee stuj.pow

36、erfare)j+;amount+;cout 打开成功! endl;in.close();/class Teacher : public College /公有继承基类public:/公用数据成员Teacher(string nam = , string s = , int a = 0,int num = 0, double wat = 0.0, double ele = 0.0,double powerf = 0.0, double waterf = 0.0, string depart = ) :College(nam, s, a, num, wat, ele, powerf, water

37、f), department(depart)/定义教师类构造函数void input();/声明教师类输入函数void output();/声明教师类输出函数public:string department;class Teacher_message/声明教师信息类Teacher teachcapacity;int amount; /定义当前数据数public:Teacher_message() amount = 0; /初始记录数据数为0void add();/声明教师信息添加函数void search();/声明教师信息查询函数void show();/声明教师信息显示函数void com

38、pile();/声明教师信息编辑函数void deletes();/声明教师信息删除函数void statistics();/声明统计函数void saving();/声明教师信息保存函数void reading();/声明教师信息读取函数;/void Teacher:input()/教师信息输入函数int choice3;int choice4;cout 请输入姓名: name;cout 请选择性别(1.男,2.女): choice3;switch (choice3)case 1:sex = 男; break;case 2:sex = 女; break;default:cout 输入错误!

39、endl; break;cout 请输入年龄: age;cout 请选择工作部门: endl;cout 1.教务处,2.财务处,3.人事处,4.学生处,5.后勤管理处,6.普通教师 choice4;switch (choice4)case 1:department = 教务处; break;case 2:department = 财务处; break;case 3:department = 人事处; break;case 4:department = 学生处; break;case 5:department = 后勤管理处; break;case 6:department = 普通教师; br

40、eak;default:cout 输入错误! endl; break;cout 请输入职工号: number;cout 请输入该月老师用水量: water;cout 请输入该月老师用电量: electric;cout 请输入水费: waterfee;cout 请输入电费: powerfare;void Teacher:output()/教师信息输出函数cout 姓名: name 性别: sex 年龄: age endl;cout 工作部门: department 职工号: number 老师用水量: water endl;cout 用电量: electric 水费: waterfee 电费:

41、powerfare endl= capacity)cout 警告!用户已满! endl;return;Teacher teachers;cout 请输入添加人员的信息 endl;teachers.input();for (int i = 0; i amount; i+)if (teachers.getnumber() = teachi.getnumber()cout 该编号人员已存在! endl;return;teachamount = teachers;amount = amount + 1;cout 添加成功! endl;void Teacher_message:search()/教师信息查询函数if (amount = 0)cout 当前没有人员记录! endl;return;int choice;cout 请选择查询方式:1.编号查找 2.姓名查找 3.用水量查找 4.用电量查找 choice;switch (choice)case 1:cout 请输入要查询的编号: number;cout 姓名 性别 年龄 工作部门 职工号 setw(10) 用水量 setw(10) 用电量 setw(10) 水费 setw(10) 电费 endl endl;for (int i = 0; i amoun

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!