c++课程设计报告电煤气管理系统Word文档格式.docx
《c++课程设计报告电煤气管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《c++课程设计报告电煤气管理系统Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
由于函数繁多,故程序代码显得稍长一点。
3.实现注释:
在本程序中各项功能的基本都能实现,基本能实现的要求是能实现对用户信息的录入,实现水电煤气数据的录入,计算并查询用户应缴费用,查询未缴纳费用名单,还能实现对人员的删除和添加。
另外,在此还在缴费的程序代码中,加入了计算的功能,如若所缴纳的费用不够,系统会提示不够,提示补交,并显示补交多少,这里是超出任务要求的功能,使得更人性化。
在运行程序的过程中,只要能根据要求填写信息,一般不会出现严重的错误。
(三)用户手册:
程序运行时,首先提示是选择学生电煤气管理系统还是选择教师电煤气管理系统,输入代码选择功能后,会继续出来一个主菜单让用户选择。
选项包括用户的注册、用户信息的修改(如增加和删除)、费用的查询和缴纳(其中学生还包括是输入姓名查询还是学号查询的选择)、还包括是否缴纳费用的查询、还有对用户信息修改后的保存,其中每一项选项进入后都还有一个子程序,提示用户进行操作,注意的是每次对用户信息的修改后还需要退出后保存,否则磁盘文件里信息没有进行修改。
操作程序,只要按照指示操作,程序功能就不会出错。
(四)调试及测试:
电煤气管理系统主要用于管理高校的人员使用的电煤气信息。
写该程序的首要目标就是要让它能顺利运行,运行之后再根据运行结果来找出该程序的弊端,以更好的改进这个管理系统。
在程序编写开端,有种无处下手的感觉,后来先看书,在找一些相似的系统代码进行研究,积累一部分经验,再下手编写,但事与愿违,刚写完时一编译有许多错误,于是又投入了枯燥的改错误的任务中,有些还挺好修改,但有些错误总是找不出来,无奈只好问同学,上网搜,才好歹将问题修改完,可是程序并不完美,依然有许多的瑕疵,比如有些任务操作不了,运行界面显示的过于凌乱等问题。
所有问题中最令我烦恼的是重载的运用,由于个人能力不是很好,所以刚开始有许多地方不懂,问了同学后,听过解释我才能够运用。
虽然过程中遇到许多困难,但是学到了很多,对c++的编程理解的更加深刻了。
程序的运行实例如下:
进入程序后的主界面如下:
选择<
1>
,进入教工用户管理系统:
因为是第一进入,所以需注册:
现在选择不同选项选择功能,输入<
2>
选择:
输入选择后:
此后,退出到教工用户主界面时,还需保存。
若选择删除,则如下:
若没有该教工,则显示没有,若有,则删除该教工,退出到主界面后,进行其他选项的处理:
3>
,进行费用的缴纳:
输入<
4>
,查询费用:
5>
,显示交费情况:
6>
,将教工信息保存到磁盘文件中:
0>
,返回上一层:
进入学生用户管理系统后,操作基本相同,只有选择是用学号处理还是姓名处理:
此外,大部分操作都与教工管理系统相同。
(五)系统不足及进一步改进:
我觉得该系统的不足之处在于有时候进入子程序后,若想返回主程序,需要一步一步退出,不能一次性退出到主界面。
还有一个不足就是程序感觉不够简练,有点罗嗦,这需要自己有扎实的基本功,能都用最简短的源程序代码去解决一个相同的问题,在教工和学生的两个文件中,有不少相似之处,可以删减,以达到程序简练的目的,可是我的水平还不足以达到这种程度,所以需要更多的历练和学习。
(六)小结:
经历这次的课程设计,对自己的学习有很多帮助,在平时的很少有那么多的时间去学习C++,而且不可能有这次这样集中精力来练习编程,这次的课程设计使我有了一个相对比较集中的时间去练习我的编程,特别是我的动手能力有了极大的提高,因为这次的课程设计几乎涉及到了C++语言程序设计的整本书的重要内容,让我从中受益,有了一次巩固知识的机会。
同时还让自己平时不怎么注意的问题得到了自己足够的关注,为以后写程序奠定下了坚实的基础,让自己对这门课的课程有了更深刻的认识。
这次写完程序后,等到自己能顺利运行时,我觉得自己的任务才刚刚开始,我的目标是在没有我的讲解下,还能够顺利的运行我的程序。
因为我觉得自己写程序就是给别人用的,自己运行的再好也没有什么用,只有别人运行的舒服,才能够说明你的程序取得了一定的成功。
另外一项感触是,编程时一件严谨的事情,容不得一丝的懈怠和纰漏,往往一个细节就决定了整个程序的成败,在此,我还学到了一些编程的小技巧,受益匪浅,比如写程序时可以写一段代码就编译一次,这样就避免了在所以程序都写完后才编译导致的错误很多并且不好找到错误并修改的弊端。
总体来说,这次对自己的程序还是不够满意,因为由于上学期的课程很紧,不能很好的温习老师的课堂内容,但我认为这并不是主要原因,主要原因还是因为自己没有好好的学,虽然每堂课都认真的在听讲,可课后自己很少去上机练习,这就导致虽然懂了很多理论知识,可总是不能熟练的运用到实际(写程序)上来。
通过这次课程设计的教训,我并没有到无比的气馁,而是更有信心去迎接以后的学习,因为我今天认识到了自己的最本质的错误。
在这,我希望自己在接下来的三年中能好好的学习,争取能学到一些对将来有用的东西,从而不会在社会的残酷竞争下落伍了。
当我们对社会的认识加深时,我们的某些观念就会更加有进步意义,更有助于我们立足社会,发展自身。
大学的四年中我肯定要具备一定的交际能力,因为交际能力在以后的发展中也起者举足轻重的作用,现在的我可以说交际能力特别的差,连和陌生人说话的勇气都没有,这是极其可悲的。
我想通过大学这个大的舞台提高自己的交际的能力。
所以我会尽量多参加学校的一些活动,提高自己的综合素养和能力。
大学四年毕业后,我希望自己能全面发展,在各方面都有极大的提高,为自己打好专业知识的基础。
(七)参考资料
[1]郑莉等编著《C++语言程序设计(第三版)》北京:
清华大学出版社
[2]郑莉等编著《C++语言程序设计(第三版)学生用书》北京:
[3]刘振安等编著《C++程序设计课程设计》机械工业出版社
[4]吴乃陵等编著《C++程序设计》北京:
高等教育出版社
[5]李春葆等编著《C++程序设计学习与上机实验指导》北京:
[6]范辉等编著《VisualC++6.0程序设计简明教程》高等教育出版社
[7]李龙澍《C++程序设计实训教程》北京:
清华大学出版社
[8]洪国胜等编著《C++Builder程序设计轻松上手》北京:
[9]宁正元《数据结构(c语言)》南京:
东南大学出版社。
2000年6月第1版
[10]严蔚敏等《数据结构(c语言版)》北京:
清华大学出版社,1997年4月第1版
[11]胡学钢等《数据结构算法设计指导》北京:
清华大学出版社,1999年第1版
(八)程序代码:
电煤气管理系统.cpp
#include"
teacher.h"
student.h"
voidmain()
{
arrayofStustudent(200);
arrayofTeacherteacher(200);
cout<
<
"
提示:
输入选项代号实现相应的功能!
endl<
endl;
intchoice;
for(;
;
)
{
cout<
\t\t欢迎使用高校电煤气管理系统\a"
endl;
<
教工用户管理系统"
学生用户管理系统"
退出系统"
********************************************************************************\n"
请输入你的选择"
cin>
>
choice;
switch(choice)
case1:
teacher.jiaogong();
break;
case2:
student.xuesheng();
case0:
break;
}
if(choice==0)
}
}
Teacher.h
#include"
iostream"
string"
fstream"
iomanip"
usingnamespacestd;
intcount2=0,count22=0;
classTeacher
{
public:
Teacher(doublexwater=0,doublexpower=0,doublexgas=0,stringxname="
a"
{water=xwater;
power=xpower;
gas=xgas;
name=xname;
flag=0;
voidoperator=(TeacherS);
//赋值运算符重载
friendostream&
operator<
(ostream&
a,Teacher&
S)//插入运算符重载
{
a<
setw(10)<
left<
S.name;
a<
setw(8)<
S.water;
S.power;
setw(9)<
S.gas;
setw(6)<
S.TGetW();
S.TGetC();
setw(11)<
S.TGetG();
S.Ttotal();
if(S.flag)
a<
已交"
elsea<
未交"
returna;
}
doubleTGetW();
//水费计算
doubleTGetC();
//电费计算
doubleTGetG();
//煤气费计算
doubleTtotal();
//计算总的钱
stringname;
doublewater,power,gas,water_rate,circuit,gas_rate,total;
intflag;
};
voidTeacher:
:
operator=(TeacherS)//赋值运算符重载
name=S.name;
water=S.water;
power=S.power;
gas=S.gas;
doubleTeacher:
TGetW()//计算教师水费
water_rate=2.3*water;
returnwater_rate;
TGetC()//计算教师电费
circuit=0.4*power;
returncircuit;
TGetG()//计算教师煤气费
gas_rate=0.9*gas;
returngas_rate;
Ttotal()//计算教师应该付的的钱
total=TGetW()+TGetC()+TGetG();
returntotal;
//*************************************************************************************************************************
classarrayofTeacher//老师类数组计算
arrayofTeacher(intsz=1)
{size=sz;
teacher=newTeacher[size];
~arrayofTeacher(){delete[]teacher;
voidregist();
//注册教工
voidjiaogong();
//教工主菜单
voidamend();
//修改用户菜单
voidadd();
//增加用户
voiddelet();
//删除用户
voidcheck();
//查询是否交费
voidjiaofei();
//交水电煤气费
voiddisplay();
//查看交费情况
voidsave();
private:
intsize;
Teacher*teacher;
voidarrayofTeacher:
regist()//教工用户注册
{inti=0;
ifstreamf("
Teacher.txt"
);
while(f.good())
f>
teacher[i].name;
teacher[i].water;
teacher[i].power;
teacher[i].gas;
i++;
f.close();
count2=i;
cout<
\t\t注册成功!
jiaofei()//教师交费
charch;
stringna;
请输入您的姓名:
cin>
na;
intfl=0;
doublemoney,money2;
for(inti=0;
i<
count2;
i++)
if(na==teacher[i].name)
{fl=1;
if(teacher[i].flag)
{cout<
该教工已缴纳过费用"
else
{cout<
你应该交"
teacher[i].Ttotal()<
元钱"
确定是否真的现在交费(Y/N)"
cin>
ch;
if(ch=='
Y'
||ch=='
y'
{teacher[i].flag=1;
cout<
你实际交的钱是:
cin>
money;
if(money>
teacher[i].Ttotal())cout<
找零"
money-teacher[i].Ttotal()<
if(teacher[i].Ttotal()>
money){cout<
交的钱不够,还应交"
teacher[i].Ttotal()-money<
补交:
money2;
交费成功"
count22++;
jiaogong();
elsejiaogong();
if(!
fl)
没有这个教工"
add()//增加教工
请输入教工的姓名"
teacher[count2].name;
请输入教工的用水量"
teacher[count2].water;
请输入教工的用电量"
teacher[count2].power;
请输入教工的用煤气量"
teacher[count2].gas;
count2++;
\t\t\t教工已被成功增加!
delet()//删除教工
inti,j;
stringname;
请输入要删除教工的姓名"
name;
for(i=0;
if(name==teacher[i].name)
{fl=1;
if(fl)
{for(j=i;
j<
count2-1;
j++)
teacher[j]=teacher[j+1];
count2--;
你已成功删除教工信息"
elsecout<
check()//查找交费情况
{cout<
\t\t\t欢迎使用查费功能"
inti=0,fl=0;
请你输入姓名"
for(i=0;
if(fl){
姓名"
用水量"
用电量"
用煤气量"
水费"
电费"
煤气费"
总额"
是否交费"
teacher[i]<
else
voidarrayofTeacher:
display()//查看交费情况
{inti;
if(count22==0)cout<
暂时还无教工交钱"
else{cout<
已交费人员信息"
for(i=0;
if(teacher[i].flag)
teacher[i];
if(count22==count2)cout<
所有的教工均以交钱"
else{cout<
未交费人员信息"
for(i=0;
if(!
teacher[i].flag)
}
save()//保存教工信息
ofstreamf("
Teacher2.txt"
f<
for(i