- 243.00 KB
- 58页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
...实验报告课程名称程序设计实践(C++)实验题目高校水电费管理系统实验仪器计算机系别计算机学院专业计算机科学与技术班级/学号计类1401学生浩实验日期2015-6-15成绩指导教师....
...实验题目高校水电费管理系统一 、实验目的(10分)面向对象程序设计实践课程设计是该课程集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习和实践。要求学生能够熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基础知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力,达到课程学习的目的和要求。二、 需求分析(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课时四、实验步骤(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;}//定义当前学生信息容量为0voidadd();//声明学生信息添加函数voidsearch();//声明学生信息查询函数voidshow();//声明学生信息显示函数voidcompile();//声明学生信息编辑函数voiddeletes();//声明学生信息删除函数voidstatistics();//声明学生信息统计函数voidsaving();//声明学生信息保存函数voidreading();//声明学生信息读取函数};5.Teacher_message类的设计classTeacher_message//声明教师信息类{Teacherteach[capacity];intamount;//定义当前数据数public:....
...Teacher_message(){amount=0;}//初始记录数据数为0voidadd();//声明教师信息添加函数voidsearch();//声明教师信息查询函数voidshow();//声明教师信息显示函数voidcompile();//声明教师信息编辑函数voiddeletes();//声明教师信息删除函数voidstatistics();//声明统计函数voidsaving();//声明教师信息保存函数voidreading();//声明教师信息读取函数};五、实验心得(10分)在课程设计刚开始时,我不清楚到底需要做什么,无从下手,因为这不是平时的实验,平时的实验都是有目的,有容的,而此次的设计是需要自己去设计去实践的,没有什么东西,需要自己去一步一步实现,一步一步的写。后来,回想老师所讲的方法和技巧,开始有了目的,也有了思路。首先,在确定我的设计题目之后,并且在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。经过三个星期的设计和实践,虽然有些疲劳和困倦,但带给我很多的收获。C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,后来这种现象通过实际的上机操作和实验,以及老师的讲解,同学的帮助,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。同时也有很多理论上可以说得过去的代码,但到了实际操作的时候,却是行不通的。这种困惑,有许多已经通过实际....
...地操作解决了,并能够深刻地认识,但也有很多不是很清楚。后来,只能避过这些方法,转换策略实现。在课程设计之前,因为有了多次的综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我先花了几天的时间来规划要写的代码,将要实现的容分析清楚,才把代码输入电脑。这样就能够有效地降低了错误的几率,提高了写代码的效率,并且也减少了设计时的盲目性,无序性。同时,这次的课程设计,让我充分的感觉到了自己要设计一个好的程序是多么的难和不容易,以及学习好C++是多么的重要。在这个程序的设计过程中,我清楚的意识到了自己的编程水平有多么的薄弱,课程的知识学得有多么的不扎实。在程序调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候因为少了一个大括号或是分号,要找很久很久。在完成课程设计的过程中,我发现运行后的界面非常的不好看,效果不是很好,有些数据之间没有分开,格式较拥挤,分辨不清各个数据所代表的含义。后来,对程序进行了修改和添补,有了一定的好转,加了一些必要的空格和符号,以及一些标识,使得程序的界面更加的友好、美观,更佳的适用。尽管系统后来可以正常地运行,也具有了一些基本的功能,但我还是意识到了自己有太多的不足。但是呢,好在以后还会有很多的课程设计,我则一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。六、程序运行结果截图以及C++程序源代码(40分)程序运行结果截图1.开始运行界面截图:2.退出主界面:....
...3.进入教师水电费管理系统:4.添加功能:....
...5.查找功能:....
...6.修改功能:7.读取显示功能:....
...8.添加、保存功能:....
...9.统计功能:....
...10.删除功能:....
.......
...11.退出教师水电费管理系统:注:学生水电费管理系统运行原理与教师水电费管理系统运行与原理一样。程序源代码:#include#include#include#includeconstintcapacity=1500;//定义常变量数据容量为1500usingnamespacestd;....
...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;//水费};////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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;};classStudent_message//声明学生信息类....
...{Studentstu[capacity];//学生数组intamount;//当前的数据量public:Student_message(){amount=0;}//定义当前学生信息容量为0voidadd();//声明学生信息添加函数voidsearch();//声明学生信息查询函数voidshow();//声明学生信息显示函数voidcompile();//声明学生信息编辑函数voiddeletes();//声明学生信息删除函数voidstatistics();//声明学生信息统计函数voidsaving();//声明学生信息保存函数voidreading();//声明学生信息读取函数};////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////voidStudent::input()//学生信息输入函数{cout<<"请输入:"<>name;....
...intchoice;cout<<"请选择性别(1.男,2.女):"<>choice;switch(choice){case1:sex="男";break;case2:sex="女";break;default:cout<<"输入错误!"<>age;cout<<"请输入班级:"<>grade;cout<<"请输入学号:"<>number;cout<<"请输入本月用水量:"<>water;cout<<"请输入本月用电量:"<>electric;cout<<"请输入水费:"<>waterfee;cout<<"请输入电费:"<>powerfare;}....
...voidStudent::output()//学生信息输出函数{cout<<":"<=capacity){cout<<"警告!用户已满!"<>choice;switch(choice){case1:{....
...cout<<"请输入要查询的编号:"<>number;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"班级"<<""<<"学号"<>name;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"班级"<<""<<"学号"<>water;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"班级"<<""<<"学号"<>electric;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"班级"<<""<<"学号"<>num;for(inti=0;i>choice;switch(choice){case1:{cout<<"请输入编号:"<>num;for(inti=0;i>choice1;switch(choice1){case1:{for(intk=i;k>name;for(inti=0;i>choice2;switch(choice2){case1:{for(intk=i;k>choice;switch(choice){case1:{doubleall_water=0.0,all_electric=0.0;for(inti=0;i>stu[j].name>>stu[j].sex>>stu[j].age>>stu[j].grade>>stu[j].number>>stu[j].water>>stu[j].electric>>stu[j].waterfee>>stu[j].powerfare){j++;amount++;}cout<<"打开成功!"<>name;cout<<"请选择性别(1.男,2.女):"<>choice3;switch(choice3){....
...case1:sex="男";break;case2:sex="女";break;default:cout<<"输入错误!"<>age;cout<<"请选择工作部门:"<>choice4;switch(choice4){case1:department="教务处";break;case2:department="财务处";break;case3:department="人事处";break;case4:department="学生处";break;case5:department="后勤管理处";break;case6:department="普通教师";break;default:cout<<"输入错误!"<>number;cout<<"请输入该月老师用水量:"<>water;cout<<"请输入该月老师用电量:"<>electric;....
...cout<<"请输入水费:"<>waterfee;cout<<"请输入电费:"<>powerfare;}voidTeacher::output()//教师信息输出函数{cout<<":"<=capacity){....
...cout<<"警告!用户已满!"<>choice;switch(choice){case1:{cout<<"请输入要查询的编号:"<>number;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"工作部门"<<""<<"职工号"<>name;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"工作部门"<<""<<"职工号"<>water;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"工作部门"<<""<<"职工号"<>electric;cout<<""<<""<<"性别"<<""<<"年龄"<<""<<"工作部门"<<""<<"职工号"<>num;for(inti=0;i>choice;....
...switch(choice){case1:{cout<<"请输入编号:"<>num;for(inti=0;i>choice1;switch(choice1){case1:{for(intk=i;k>name;for(inti=0;i>choice2;switch(choice2){case1:{....
...for(intk=i;k>choice;switch(choice){case1:....
...{doubleall_water=0.0,all_electric=0.0;for(inti=0;i>teach[j].name>>teach[j].sex>>teach[j].age>>teach[j].department>>teach[j].number>>teach[j].water>>teach[j].electric>>teach[j].waterfee>>teach[j].powerfare){j++;amount++;}cout<<"打开成功!"<>choice;switch(choice){case1:teacherMenu();break;case2:studentMenu();break;case0:cout<<"您已退出系统!"<>choice;switch(choice){case1:students.add();break;case2:students.search();break;case3:students.compile();break;case4:students.deletes();break;case5:students.show();break;....
...case6:students.saving();break;case7:students.reading();break;case8:students.statistics();break;case0:cout<<"已退出系统!"<>choice;switch(choice){....
...case1:teachers.add();break;case2:teachers.search();break;case3:teachers.compile();break;case4:teachers.deletes();break;case5:teachers.show();break;case6:teachers.saving();break;case7:teachers.reading();break;case8:teachers.statistics();break;case0:cout<<"已退出系统!"<