用C++实现水电煤气管理系统.docx
- 文档编号:12950020
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:36
- 大小:228.69KB
用C++实现水电煤气管理系统.docx
《用C++实现水电煤气管理系统.docx》由会员分享,可在线阅读,更多相关《用C++实现水电煤气管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
用C++实现水电煤气管理系统
课程设计报告
课程设计题目:
水电煤气管理系统
学生XX:
专业:
网络工程
班级:
10211303
指导教师:
姜林
2011年11月25日
东华理工大学
课程设计评分表
学生XX:
班级:
学号:
课程设计题目:
水电煤气管理系统
项目内容
满分
实评
选
题
能结合所学课程知识、有一定的能力训练。
符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文献及运用文献资料能力
10
理论依据充分,数据准确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能体现创造性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规X准确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总分
100
指导教师评语:
指导教师签名:
年月日
一.问题描述:
设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理等。
在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。
二.设计思路:
(一)程序功能:
1.实现对用户信息的录入
2.实现水电煤气数据的录入
3.计算并查询用户应缴费用
4.查询未缴纳费用
(二)程序说明:
1.在主函数中通过分支选择可以跳转不同的功能选项进而实现
2.在显示主菜单函数中,我们通过设计友好界面来与用户进行交互。
在“请选择相应功能(0-4):
”中使用者输入非0-4数字或其他字符时,系统提示“请检查您输入的数字在0~4之间!
请在输入一遍!
”的信息,以帮助用户进行正确选择。
3.首先建立了User类,用于初始化XX、XX、用水电、煤气量,又定义了缴费函数setMonery(),用在有人缴费的函数体中,从键盘输入缴的费用,一开始我们在setMoney(),中没有对缴的费用进行累加,在查询信息时现实的应缴费用不正确,经过我们的努力,检查出错误并加以改正,让程序更加完善。
4.用User类派生出Student和|Teacher类,其中有计算应该缴的费用,Student类比Teacher类多了免费。
5.在保存文件的处理中,需考虑到“创建保存文件失败!
”和“已成功保存文件!
”等诸多内容。
(三)文件类型:
(1)Constant.h
用于存放收费标准。
(2)File.cpp
该文件中有两个类:
1.StuFile类,主要用于对学生信息的操作
函数
属性
注释
Public
StuFile()
构造函数
Public
voidadd(Student&s)
将S添加到文件中
Public
voiddisplay()
依次显示所有的学生的信息
Public
Student
*gerStudent(stringid)
得到学号为id的学生的对象指针
Public
~StuFile()
析构函数,释放资源,并把数组中的信息存进文件
Public
voidwjf()
未缴费的学生的
Private
vector
*stuList;
学生信息的向量数组,用于保存所有学生的信息
2TeacherFile类,主要用于对教工信息的操作
Public
TeacherFile()
构造函数
Public
voidadd(Teacher&s)
将s添加到文件中
Public
voiddisplay()
依次显示所有的教师信息
Public
Teacher*getTeacher
(stringid)
得到编号为id的教师的对象指针
Public
~TeacherFile()
析构函数,释放资源,并把数组中的信息存进文件
Public
voidwjf()
未交费的教工人员
Private
Vector
*teaLisr
教工的向量数组,用于保存所有教工的信息
(3)Main.cpp
函数
属性
注释
voidinit()
新建一个学生或者教工的信息
voidselect()
查询界面,根据用户的输入来显示用户想查询的信息
voidadd()
信息的录入,录入学生或者教工的水电煤气信息
voidhanded()
缴费,有学生或者教工缴费的时候调用此函数
intmainMenu()
主菜单,显示一个菜单,返回用户的输入
voidwork()
程序开始工作
intmain()
主函数,程序的入口
(4)Student.cpp
ClassStudent:
virtualpublicUser
函数
属性
注释
Public
Student():
User(“”,””,0,0,0)
构造函数
Public
Student(stringi,stringn,
Floatw=0,floatp=0,float
g=0):
User(i,n,w,p,g)
构造函数i:
学号n:
XX
Public
voiddisplay()
依次显示所有的学生的信息
Public
floatdisplay()
返回学生应缴的费用
Private
floatfreeWater;
学生免费使用的水量
Private
floatfreePower;
学生免费使用的电量
Private
floatfreeGas;
学生免费使用的煤气量
Private
floatmoney;
缴费
(5)Teacher.cpp
ClassTeacher:
virtualpublicUser
函数
属性
注释
Public
Teacher(stringi,stringn,
floatw=0,floatp=0,float
g=0):
User(I,n,w,p,g)
构造函数
Public
voiddisplay()
依次显示所有的教工信息
Public
floatgetMoney()
返回教工应缴的费用
(6)User.cpp
函数
属性
注释
Public
User(stringi,stringn,float
w=0,floatp=0,floatg=0)
构造函数
Public
stringgetId()
获取编号
Public
stringgetName()
获取XX
Public
voidsetId(stringi)
设置编号
Public
voidsetName(stringn)
设置XX
Public
voidsetWater(floatw)
设置水量
Public
voidsetPower(floatp)
设置电量
Public
voidsetGas(floatg)
设置煤气量
Public
floatgetWater()
使用水量
Public
virtualvoiddisplay()=0;
依次显示所有信息
Public
voidsetMoney(floatm)
缴费
Public
virtualfloatgetMoney()=0;
应缴费用
(四)UML图:
StuFile
+id:
string
+name:
string
+useWater:
float
+usePower:
float
+useGas:
float
+money:
float
+add():
void
+display():
void
+wjf():
void
Student
-freeWater:
float
-freePower:
float
-freeGas:
float
+display():
void
+getMoney():
void
User
+i:
string
+n:
string
+w:
float
+p:
float
+g:
float
+getId():
string
+getName():
string
+setId(stringi):
string
+setName(stringn):
string
+setWater(floatw):
float
+setPower(floatp):
float
+setGas(floatg):
float
+getWater():
float
三.程序代码:
Constant.h
//收费标准
#ifndefConstant
#defineConstant
//教师
conststaticfloatTwaterUnit=1;
conststaticfloatTpowerUnit=1;
conststaticfloatTgasUnit=1;
//学生
conststaticfloatSwaterUnit=1;
conststaticfloatSpowerUnit=1;
conststaticfloatSgasUnit=1;
//保存学生信息的文件
conststaticchar*stuFlieName="s.txt";
//保存教师信息的文件
conststaticchar*teaFileName="t.txt";
#endif
Main.cpp
#include
#include
#include
#include
#include"Student.cpp"
#include"Teacher.cpp"
#include"File.cpp"
usingnamespacestd;
voidinit()
{
cout< cout<<"1.新建教工信息\n" <<"2.新建学生信息\n"< cout<<"请选择你要进行的操作: "< into; cin>>o; if(o==1) { stringid; stringname; cout<<"请输入新教工的XX号: "; cin>>id; cout<<"请输入新教工的XX: "; cin>>name; Teachert(id,name); TeacherFiletf; tf.add(t); } elseif(o==2) { stringid; stringname; cout<<"请输入新学生的XX号: "; cin>>id; cout<<"请输入新学生的XX: "; cin>>name; Students(id,name); StuFilesf; sf.add(s); } else return; } voidselect() { cout< cout<<"1.学生的信息\n" <<"2.教师的信息\n" <<"3.按XX号查询\n" <<"4.未缴费的人员\n" <<"5.不进行任何的操作\n"< cout<<"请输入你要进行的操作: "; into; cin>>o; StuFilesf; TeacherFiletf; if(o==1) { cout<<"该用户的信息是: "< cout<<"|"< < < < < < sf.display(); } elseif(o==2) { cout<<"该用户的信息是: "< cout<<"|"< < < < < < tf.display(); } elseif(o==3) { User*user; StuFilesf; TeacherFiletf; stringid; cout<<"请输入他的XX号: "; cin>>id; user=sf.getStudent(id); if(user==0) user=tf.getTeacher(id); if(user==0) { cout<<"资料库中没有该XX号的用户! "< return; } cout<<"该用户的信息为: "< cout<<"|"< < < < < < user->display(); } elseif(o==4) { sf.wjf(); tf.wjf(); } else return; } voidadd() { cout<<"1.对教工使用的水电煤气信息的录入"< <<"2.对学生使用的水电煤气信息的录入"< <<"3.不进行任何操作"< cout<<"请输入你要进行的操作: "< into; cin>>o; stringid; floatwater; floatpower; floatgas; if(o==1||o==2) { User*user; StuFilesf; TeacherFiletf; cout<<"请输入他的XX号: "; cin>>id; user=sf.getStudent(id); if(user==0) user=tf.getTeacher(id); if(user==0) { cout<<"资料库中没有该XX号的用户! "< return; } cout<<"该用户的信息是: "< cout<<"|"< < < < < < user->display(); cout<<"请输入他的用水量: "; cin>>water; cout<<"请输入他的用电量: "; cin>>power; cout<<"请输入他的用煤气量: "; cin>>gas; user->setWater(water); user->setPower(power); user->setGas(gas); } else return; } voidhanded() { cout<<"请输入要缴费的人的XX号: "; stringid; cin>>id; User*user; StuFilesf; TeacherFiletf; user=sf.getStudent(id); if(user==0) user=tf.getTeacher(id); if(user==0) { cout<<"资料库中没有该XX号的用户! "< return; } cout<<"该用户的信息是: "< cout<<"|"< < < < < < user->display(); cout<<"请输入他的缴费金额: "; floatmoney; cin>>money; user->setMoney(money); cout<<"缴费成功\n"; } intmainMenu() { cout< cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< cout<<"☆☆"< cout<<"☆水电煤气管理系统☆"< cout<<"☆☆"< cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< cout< cout<<"1.新建用户信息"< cout<<"2.信息查询"< cout<<"3.信息的录入"< cout<<"4.有人缴费"< cout<<"0.退出系统"< inta; charc[20]; do { cout<<"请选择相应的功能(0-4): "< cout< cin>>a; gets(c); if(a<0||a>4) { cout< cout<<"请确认您输入的数字在0~4之间! "< cout<<"请重新输入一遍! "< } } while(a<0||a>4); returna; } voidwork() { switch(mainMenu()) { case1: init(); break; case2: select(); break; case3: add(); break; case4: handed(); break; default: break; } } voidMenu() { cout< cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< cout<<"☆☆"< cout<<"☆水电煤气管理系统☆"< cout<<"☆☆"< cout<<"☆杨振坡☆"< cout<<"☆☆"< cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< cout< system("pause"); system("cls"); } voidmain() { system("color3A"); Menu(); chara='y'; while(a=='y') { work(); cout<<"是否继续使用该系统(y/n)"< cin>>a; } } File.cpp //StuFile类,对学生信息的操作 //TeacherFile类,对教工信息的操作 #include #include #include #include #include #include"Student.cpp" #include"Teacher.cpp" #include"User.cpp" #include"Constant.h" #ifndefStuFile_class #defineStuFile_class classStuFile { vector public: stringid; stringname; floatuseWater; floatusePower; floatuseGas; floatmoney; StuFile() { stuList=newvector ifstream*is=newifstream("StuFileName",ios_base: : in); if(is==0) { cout<<"打开文件失败! "< return; } else { while(is->good()) { Students("",""); is->read((char*)&s,sizeof(Student)); if(s.getId()! ="") { stuList->push_back(s); } } } is->close(); } voidadd(Student&s) { stuList->push_back(s); } voiddisplay() { for(inti=0;i { Students=stuList->at(i); s.display(); } } Student*getSt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实现 水电 煤气 管理 系统