高校水电费管理系统课程毕业设计.docx
- 文档编号:29991605
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:26
- 大小:340.32KB
高校水电费管理系统课程毕业设计.docx
《高校水电费管理系统课程毕业设计.docx》由会员分享,可在线阅读,更多相关《高校水电费管理系统课程毕业设计.docx(26页珍藏版)》请在冰豆网上搜索。
高校水电费管理系统课程毕业设计
重庆科技学院
《面向对象程序设计》
课程设计报告
学院:
_电气与信息工程学院_专业班级:
计科12-5班
学生姓名:
郑鹏学号:
**********
设计地点(单位)________计算机自主学习中心__________
设计题目:
________高校水电费管理系统________________
完成日期:
2014年1月10日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
重庆科技学院
课程设计任务书
设计题目:
高校水电费管理系统设计
学生姓名
郑鹏
课程名称
面向对象课程设计
专业班级
计科12
地点
I313
起止时间
12月30日~1月10日
设计内容及要求
1)问题描述
住宿学生信息包括:
学号、姓名、性别、年龄、班级、用电量、用水量等信息。
教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。
能计算出学生和教工每月所要交的电费和水费。
定义一个人员类,实现学生和教工共同的信息和行为。
2)功能要求
(1)添加功能:
程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有学生和教工的记录,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:
主要实现对已添加的学生或教工记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”并返回操作。
(6)统计功能:
能根据多种参数进行统计。
能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。
(7)计算电费和水费。
学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。
3)问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
周一:
明确设计任务,学习相关基础知识
周二:
熟悉各知识点,进行基础练习
周三:
根据题目要求,进行设计和实现
周四:
根据题目要求,进行设计和实现
周五:
程序测试
参考资料
[1]RichardJohnsonbaugh.MartinKalin.《面向对象程序设计—C++语言描述》.机械工业出版社.2009年
[2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
教研室主任:
指导教师:
裴仰军/伍建全/黄永文2013年12月12日
摘要
本设计是用编译器VC++完成的一个高校水电费管理系统,该高校水电费管理系统主要是实现对住宿学生和教职工的信息进行统计和对他们的各项数据进行处理。
用户可以根据选择界面进行选择进行不同的工作,有添加、查询、显示、编辑、删除、统计,计算功能。
每个功能的实现都用到链表。
在每一个功能的实现上,都运用到文件的读取或写入,这样保证了信息的实时更新。
关键字:
类键表水电费管理系统文件
第一章软件需求分析说明书
1.1软件功能
(1)添加功能:
程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,由于编号的唯一性,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
界面提示按任意键继续,然后选择添加项,也可以放弃退出添加工作。
对于添加的时候对输入的数据的要求是string、string、string、int、string、int、int的顺序。
(2)查询功能:
可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,界面会给出相应的提示信息。
(3)显示功能:
可显示当前系统中所有学生和教工的记录,每条记录占据一行。
在显示的时候用户可以选择显示的对象学生或员工。
(4)编辑功能:
可根据查询结果对相应的学生记录或教工记录进行修改,修改时由于编号的唯一性。
修改时需要对一个对象学生或员工的信息重新录入,类似添加过程,注意要修改的项的输入。
(5)删除功能:
主要实现对已添加的学生或教工记录进行删除,可以通过姓名和学号或教工号进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”界面会有相应的提示并返回操作。
(6)统计功能:
能根据多种参数进行统计。
能统计学生和教工的用水用电量、所要交纳的电费和水费等。
。
(7)计算电费和水费。
学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。
在计算所要缴纳的电费或水费的时候界面上会提示要输入学校免费提供的水量或电量。
然后就会计算得到并在屏幕上显示出需要缴纳的学生或教工的信息和需缴纳的费用。
1.2界面要求
主界面上显示所有的功能选择,选择进入每一个功能后,界面上显示该功能选项和退出选项。
1.3数据结构要求
该软件主要借助类实现数据存储,传输,修改并写入文件。
stu为基类,student为学生类,stuff为教工类都继承了stu类,person类里面有链表list
第二章系统分析与设计
2.1软件界面设计
图2-1首界面
该主界面的功能主要是提供给用户选择自己所要实现的功能,输入功能前面的序号,则选择成功。
如:
输入“1”,进入到添加功能。
图2-2添加功能界面
该添加界面主要功能是提供给用户选择所要添加的对象或退出添加功能,如输入“1”,进入到添加学生项,输入“3”,回到主界面及退出添加项。
图2-3学生信息录入界面
该学生信息录入界面的主要功能是供给用户一个提示信息,以便添加学生的时候出现信息录入错误。
图2-4教工信息录入界面
该教工信息录入界面的主要功能是供给用户一个提示信息,以便添加教工的时候出现信息录入错误。
图2-5添加结果反馈界面一
该反馈界面的主要功能是对用户添加完毕后的结果的一种反馈,提示添加失败,添加人员已经存在。
图2-6添加结果反馈界面二
该反馈界面的主要功能是对用户添加完毕后的结果的一种反馈,提示添加成功。
图2-7查询功能界面
该查询界面主要功能是提供给用户选择所要查询的对象或退出查询功能,如输入“1”,进入到查询学生项,输入“3”,回到主界面及退出添加项。
图2-8查询学生方式选择界面
该界面的主要功能是提供给用户一个查询方式选择提示,如输入“1”,进入到姓名查找项,输入“3”,回到查询界面。
图2-9姓名查询学生结果信息反馈界面一
该界面的主要功能是将用户查询到学生的结果反馈给用户。
如输入的为:
xiafusen,存在名字为xiafusen的学生,所以输入,如果出现同名,将都会输出。
图2-10姓名查询学生结果信息反馈界面二
该界面的主要功能是将用户查询到学生的结果反馈给用户。
如输入为:
jjjj,不存在名为jjjj的学生,提示没有。
图2-11学号查询学生结果信息反馈界面一
该界面的主要功能是将用户查询到学生的结果反馈给用户。
如输入的学号为:
2011442043,存在学号为2011442043的学生,所以输入。
图2-12学号查询学生结果信息反馈界面二
该界面的主要功能是将用户查询到学生的结果反馈给用户。
如输入学号为2000,不存在学号为2000的学生,提示没有。
图2-13查询教工方式选择界面
该界面的主要功能是提供给用户一个查询方式选择提示,如输入“1”进入到姓名查找项,输入“3”,回到查询界面。
图2-14名字查询教工结果信息反馈界面一
该界面的主要功能是将用户查询到教工的结果反馈给用户。
如输入的教工名为:
xiafusen,存在名字为xiafusen的教工,所以输入,如果出现同名,将都会输出。
图2.1-15名字查询教工结果信息反馈界面二
该界面的主要功能是将用户查询到教工的结果反馈给用户。
如输入的教工名为:
jjjj,不存在名字为jjjj的教工,提示无。
图2-16教工号查询教工结果信息反馈界面一
该界面的主要功能是将用户查询到教工的结果反馈给用户。
如输入的教工号为:
2011442043,存在学号为2011442043的教工,所以输入。
图2-17教工号查询教工结果信息反馈界面二
该界面的主要功能是将用户查询到教工的结果反馈给用户。
如输入教工号为2000,不存在教工号为2000的教工,提示没有。
图2-18编辑功能界面
该界面主要功能是给用户提供选择编辑对象,如输入“1”,进入到编辑学生项,输入“3”,回到主界面。
图2-19提示输入需编辑学生学号界面
该界面主要功能是提示用户输入要编辑的学生的学号,学号具有唯一性。
图2-20编辑结果信息反馈界面
该界面主要功能是给用户返回编辑完成后的提示和编辑教工完成后的提示界面相同。
图2-21提示输入需编辑的教工的教工号界面
该界面主要功能是提示用户输入要编辑的教工的教工号,教工号具有唯一性。
图2-22显示功能界面
该添加界面主要功能是提供给用户选择所要显示的对象或退出显示功能,如输入“1”,进入到显示学生项,输入“3”,回到主界面及退出显示功能项。
图2-23学生信息展示界面
该界面的主要功能是把所有的学生的信息,展现给用户。
图2-24教工信息展示界面
该界面的主要功能是把所有的教工的信息,展现给用户。
图2-25删除功能界面
该界面主要功能是给用户提供选择删除对象,如输入“1”,进入到删除学生项,输入“3”,回到主界面及退出删除功能项。
图2-26删除学生成功提示界面
该界面主要功能就是向用户反馈删除的对象(学生)成功。
图2-27删除学生不存在提示界面
该界面主要功能就是向用户反馈删除对象(学生)不存在,删除失败。
需要重新输入。
图2-28删除教工成功提示界面
该界面主要功能就是向用户反馈删除的对象(教工)成功。
图2-29删除教工不存在提示界面
该界面主要功能就是向用户反馈删除对象(教工)不存在,删除失败。
需要重新输入。
图2-30统计功能界面
该界面主要功能是给用户提供选择统计对象,如输入“1”,进入到统计学生项,输入“3”,回到主界面及退出统计功能项。
图2-31统计学生类别选择界面
该界面主要是为用户提供选择统计水费(水量)或电费(电量)。
如输入“1”,进入统计水费(水量)统计(水三元一吨)。
图2-32统计教工类别选择界面
该界面主要是为用户提供选择统计水费(水量)或电费(电量)。
如输入“2”,进入统计电费(电量)统计(电一元一度)。
图2-33计算功能界面
该界面主要功能是给用户提供选择计算对象,如输入“1”,进入到计算学生项,输入“3”,回到主界面及退出计算功能项。
图2-34选择统计对象界面
该界面主要是为用户提示选择输入要计算的对象,如输入“1”,进入计算水费项(计算学生和计算教工该界面相同)。
图2-35计算学生结果显示界面
该界面主要是为用户展示出需缴纳水费的学生的某一部分信息。
计算电费时界面相同,文字提示有小小变化。
这里需要用户自定义最大免费水量(或电量)。
图2-36计算教工结果显示界面
该界面主要是为用户展示出需缴纳电费的教工的某一部分信息。
计算水费时界面相同,文字提示有小小变化。
这里需要用户自定义最大免费电量(或水量)。
2.2软件的数据(结构)设计
该软件使用的文件有xia01.txt,和xia02.txt两个,文件xia01.txt是用来存储所有学生信息,xi02.txt是用来存储所有的教工的信息,两个文件里面的存储的数据类型都是一样的,每一行存储一个人(学生或教工)的信息,分别为名字,性别,学号(教工号),年龄,用水量,用电量。
数据类型分别为string,string,string,int,string,int,int。
2.3软件的算法设计
图2-37总设计流程图
图2-38添加功能流程图图2-39查询功能流程图
图2-40编辑功能流程图图2-41显示功能流程图
图2-42删除功能流程图图2-43统计功能流程图
图2-45计算功能流程图
第三章软件的实现
对于该软件的实现,最为核心的部分就是关于文件的读取与写入,以下是对该两部分的详细分析:
3.1文件读取
ifstreamfin01("xia01.txt");
//读取方式打开存储学生信息的文件xia01.txt
ifstreamfin02("xia02.txt");
//读取方式打开存储教工信息的文件xia02.txt
stringxue;stringyuan;
list
list
peopleH;//定义一个管理学生和教工的对象
while(getline(fin01,xue))//将一个学生的信息读入到一个字符串当中
{
istringstreamstrin(xue);
strings1,s2,s3,s4;intn1,n2,n3;
strin>>s1;strin>>s2;strin>>s3;strin>>n1;strin>>s4;strin>>n2;strin>>n3;
//分解字符串,得到每一条具体信息
studentstu1;//定义一个学生对象
stu1.set_name(s1);stu1.set_sex(s2);
stu1.set_studentnumber(s3);stu1.set_age(n1);
stu1.set_studentadd(s4);stu1.set_ele(n2);stu1.set_water(n3);
stu1.set_elefee(n3*1);stu1.set_waterfee(n2*3);//完成学生对象信息存储
arr1.push_back(stu1);//将一个学生对象整体压入链表}
//循环结束完成所有学生信息提取
H.set_arr1(arr1);//将所有的学生信息存入管理对象中
fin01.close();//关闭文件
while(getline(fin02,yuan))//将一个学教工的信息读入到一个字符串当中
{istringstreamstrin(yuan);strings1,s2,s3,s4;intn1,n2,n3;
strin>>s1;strin>>s2;strin>>s3;strin>>n1;strin>>s4;strin>>n2;strin>>n3;
//分解字符串,得到每一条具体信息
stuffstu2;//定义一个教工对象
stu2.set_name(s1);stu2.set_sex(s2);
stu2.set_stuffnumber(s3);stu2.set_age(n1);
stu2.set_stuffadd(s4);stu2.set_ele(n2);stu2.set_water(n3);
stu2.set_elefee(n3*1);stu2.set_waterfee(n2*3);//完成教工对象信息存储
arr2.push_back(stu2);//将一个教工对象整体压入链表
}
//循环结束完成所有教工信息提取
H.set_arr2(arr2);//将所有的教工信息存入管理对象中fin02.close();//关闭文件
3.2文件写入
ofstreamfin01("Xia01.txt");
//以写入的方式打开存储学生信息文件xia01.txt
list
:
const_iteratoriter;
//定义一个指向学生链表的指针
for(iter=ss1.begin();iter!
=ss1.end();++iter)
{fin01< //将信息存储在链表中的第一个学生开始到最后一个学生,将每一个学生信息写入文件 fin01.close();//关闭文件 ofstreamfin02("Xia02.txt"); //以写入的方式打开存储教工信息文件xia02.txt list : const_iteratoriter1; //定义一个指向教工链表的指针 for(iter1=ss2.begin();iter1! =ss2.end();++iter1) {fin01< //将信息存储在链表中的第一个教工开始到最后一个教工,将每一个教工信息写入文件 fin02.close();//关闭文件 第四章软件测试 本软件能实现的功能有添加,查询,编辑,显示、删除、统计。 计算等功能。 其核心是几个函数,其测试如下: 4.1添加功能测试 用例1: input: 1output: 请输入添加学生信息 用例2: input: 2output: 请输入添加教工信息 用例3: input: 3output: 返回主界面 用例4: input: 2011442043(学号) output: 添加失败,已存在,按任意键继续 用例5: input: 2011442044(学号) output: 添加成功,请按任意键继续 用例6: input: 2012442043(教工号) output: 添加失败,已存在,按任意键继续 用例7: input: 2012442044教工号) output: 添加成功,按任意键继续 4.2查询功能测试 用例1: input: 1output: 请输入查找方式 用例2: input: 2output: 请输入查找方式 用例3: input: 3output: 返回主界面 用例4: input: 1output: 请输入学生姓名 用例5: input: 2output: 请输入学生学号 用例6: input: 1output: 请输入教工姓名 用例7: input: 1output: 请输入教工教工号 用例8: input: 3output: 返回查询对象界面 用例9: input: xia output: 显示该名字学生(教工)信息,按任意键继续 用例10: input: 2011442043 output: 显示学号为2011442043的学生的所有信息按任意键继续。 用例11: input: love output: 没有你查询的这个人,按任意键继续请输入添加学生信息 4.3显示功能测试 用例1: input: 1output: 显示所有学生信息,按任意键继续 用例2: input: 2output: 显示所有教工信息,按任意键继续 用例3: input: 3output: 返回主界面 4.4编辑功能测试 用例1: input: 1output: 显示所有学生信息,提示输入学号 用例2: input: 2output: 显示所有教工信息,提示输入教工号 用例3: input: 3output: 返回主界面 用例4: input: 2011442043(学号/教工号) output: 按任意键继续 用例5: input: 一个学生的所有信息 output: 编辑成功,按任意键继续 用例6: input: 2012442043output: 按任意键继续 用例7: input: 任意键output: 无该学生记录 4.5删除功能测试 用例1: input: 1 output: 显示所有学生信息,提示输入要删除学生学号 用例2: input: 2 output: 显示所有教工信息,提示输入要删除教工教工号 用例3: input: 3output: 返回主界面 用例4: input: 2012442043 output: 没有你输入的学号的学生,提示重新输入 用例5: input: 2011442043 output: 删除成功,按任意键继续 用例6: input: 3output: 返回选择删除对象界面 4.6统计功能测试 用例1: input: 1output: 选择统计水量(水费)或电量(电费) 用例2: input: 2output: 选择统计水量(水费)或电量(电费) 用例3: input: 3output: 返回主界面 用例4: input: 1output: 学生总的用水用电量,任意键继续 用例5: input: 2output: 教工总的用水用电量,任意键继续 4.7计算功能测试 用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 水电费 管理 系统 课程 毕业设计