课程设计报告Word文档下载推荐.docx
- 文档编号:17279998
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:43
- 大小:299.46KB
课程设计报告Word文档下载推荐.docx
《课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计报告Word文档下载推荐.docx(43页珍藏版)》请在冰豆网上搜索。
在子函数的函数体中为了使程序的功能和细节更加的完善,在子函数中设置菜单,这样不仅使得程序更加完善还有利于用户的操作。
使得程序更加简洁明了。
2.设计表示:
在这个电煤气管理系统中,共用到了四个类,一个是Feebz类,它起的作用是把水电煤气的用量和每个人的缴费信息结合在一起,还有<
<
的重载,最重要的就是那些对象都有共同的属性,通过这个类把学号、姓名、水用量、电用量、气用量集中到一起,所以才能设计一个类;
另一个类就是StuMan类,这个类的作用主要就是一些功能的实现,有主菜单voidMainMenu()、交费菜单voidFeeMenu()、交费功能voidNumFee()和voidNameFee()、查询菜单voidCheckMenu()、查询功能voidNumCheck()voidNameCheck()、增加功能voidAdd()、删除菜单voidDeleteMenu()、删除功能voidNumDelete()和voidNameDelete()、查看功能voidChakan()。
具体的见下的图标所表示的关系:
类
函数或数据
类型
功能
Feebz和StuMan
函数成员
MainMenu()
void
主要是选择各种不同的功能
FeeMenu()
主要是选择用学号交费还是用姓名交费
NumFee
使用学号交费
NameFee()
输入姓名交费
CheckMenu()
主要是选择用学号查询还是用姓名查询
NumCheck()
输入学号查询
Add()
使用增加功能
NumDelete()
输入学号删除
NameDelete()
输入姓名删除
数据成员
stringnumber,name;
intflag;
doublewater,power,gas;
doubleWaterprice,Powerprice,Gasprice;
3.实现注释:
在本程序中各项功能的基本都能实现,除了基本的要求能实现之外,如实现对用户信息的录入,实现水电煤气数据的录入,计算并查询用户应缴费用,查询未缴纳费用名单,还能实现对人员的删除和添加。
只要能根据要求填写信息,一般都不会出现特别严重的错误。
4.主要实现代码:
计算学生水、电、气的费用,学生每月有一定额度的水电气所以需要对学生使用水电气进行判断看是否在给定的额度之内,在这之内则不需要再付费用,如果超过则超过本分自己付费。
这里设计的电气额度都为6,价格也为0.6。
doubleFeebz:
:
GetP()
{if((power2-power1)<
=6)
Powerprice=0;
else
Powerprice=0.6*(power2-power1-6);
returnPowerprice;
}
GetG()
{if((gas2-gas1)<
=6)
Powerprice=0.6*(gas2-gas1-6);
}
读出txt文件里的内容,需要注意的是txt里面的内容要对应程序段,不然会导致错误
ifstreamtfile("
Student.txt"
);
while(tfile.good())
{
tfile>
>
St[i].number;
St[i].name;
St[i].water1;
St[i].water2;
St[i].power1;
St[i].power2;
St[i].gas1;
St[i].gas2;
i++;
一下程序段主要实现的功能是删除,添加,查询
voidTeaMan:
NameDelete()//输入姓名删除
{stringname;
intitem=1,i,j;
cout<
"
欢迎使用删除功能"
endl;
请输入要删除教师的姓名:
;
cin>
name;
for(i=0;
i<
nt;
i++)
if((name==Te[i].name))
{item=0;
j=i;
break;
}
if(!
item)
for(j=i;
j<
nt-1;
j++)
Te[j]=Te[j+1];
该教师的信息已被删除!
if(item)
{system("
cls"
该教师的姓名输入错误,请重新使用该功能!
NameDelete();
Add()//增加教师功能
{intn,i,j=1;
请输入你要增加的教师数:
n;
i=nt;
for(;
nt<
i+n;
nt++)
{cout<
请输入第"
个教师的编号、姓名、上水用量、本用水量、上用电量、本用电量、上用气量、本用气量:
Te[nt].number;
Te[nt].name;
Te[nt].water1;
Te[nt].water2;
Te[nt].power1;
Te[nt].power2;
Te[nt].gas1;
Te[nt].gas2;
j++;
Chakan()//教师查看功能
{inti;
已交费教师信息"
编号"
姓名"
上用水量"
本用水量"
上用电量"
本用电量"
上用煤气量"
本用煤气量"
水费"
电费"
煤气费"
总额"
交费否"
for(i=0;
if(Te[i].flag)
Te[i];
未交费教师信息"
Te[i].flag)
注:
老师与学生的基本相似不同之处是收费的条件与价格不同;
本程序里面所说的上用水量是指上次查看时的用水量,本用水量是指本次查看时的用水量,其他的也是以此类推。
三、系统的运行结果与分析
系统运行的主界面
学生电煤气管理系统
查询所有学生的缴费情况
老师电煤气管理系统的主界面
查询所有教师的缴费情况
分析与总结
电煤气管理系统主要用于管理高校的人员使用的电煤气信息。
写该程序的首要目标就是要让它能顺利运行,运行之后再根据运行结果来找出该程序的弊端,以更好的改进这个管理系统。
可总是事与愿违,刚一写完时就一下子把我给惊懵了,几十个错误,而且各个错误看上去痘很难改。
但我并没有气馁,而是认真的去对待这些错误。
首先我是将一些简单而易见的错误给改正了,这并没有花费我多少时间。
后面都是一些比较难的错误,如Feebz(stringNum,stringName,doubleWater,doublePower,doubleGas);
应该改为Feebz(stringNum=“0904032011”,stringName=“任家双”,doubleWater=0,doublePower=0,doubleGas=0);
也就是后面必须得赋值。
还有一个令我比较头疼的就是“>
”的重载,我开始没有用友元函数来写,后来想到了可还是不对,得必须把这个友元函数写在类里面,其正确答案就是:
friendostream&
operator<
(ostream&
out,Feebz&
r)//运算符重载
out<
setw(13)<
left<
r.number;
setw(12)<
r.name;
r.water1;
r.water2;
r.power1;
setw(14)<
r.power2;
r.gas1;
setw(11)<
r.gas2;
setw(7)<
r.GetW();
setw(9)<
r.GetP();
r.GetG();
setw(10)<
r.GetTotal();
if(r.flag)
已交"
else
未交"
returnout;
接下来的另一个问题就是如何读文件里的内容,这对我来说绝对是个头疼的问题,因为当时在上课时我这部分内容学的就不是很好,于是就自己看课本,将书上的第十一章全看了一遍,终于对这个知识点有了一个大概的理解,写出了这段程序,如下:
student.txt"
while(tfile.good())
ttfile>
tfile.close();
最后一个难解的问题就是errorC2668:
'
StuMan:
StuMan'
:
ambiguouscalltooverloadedfunction这段提示,然后经过在网上的了解,终于将它给改正过来了。
这时我感觉自己越来越接近胜利了,可始终还是有一个错误,而且错误是在主函数中,最后经过仔细的思考,原来是没有创立对象,直接写了StuMan.MainMenu(),可事实上应该是StuManxuesheng;
xueshengMainMenu();
在解决这些问题期间,对我来说最难解决的就是在文件的读取方面,在没有写这个程序之前我对磁盘文件可谓是一无所知,但这个程序必须要用到磁盘文件,在运用这个知识点时错误就不停的出现,就像文件的读入,本来应是ofile<
,但由于对问题的不深,我总是写成ofile>
,虽然这些都是些小问题,可写程序本身就是件很严谨的事情,一个小错误都不能错误,否则这程序还是不能运行,所以我们不可以忽略它们,我们在平时多注意点就会很容易的避免这些错误,同时也就会节省很多的时间。
在写这个程序花的时间很长,可能是由于在家的缘故,没有集中的时间去做这个工作,通常是集中花几天时间先写一点,然后就停了几天,结果再到写的时候,就又忘记了当时的思路,结果就做了很多的无用功。
所以写程序时一定不能三心二意,要集中一段时间将它写完,这样不仅能节省许多时间,而且还能提高程序的准确性。
我觉得该系统的不足就是不能够实现查看某个人的用水量、用电量或者用气量中的一种,对于解决这个问题,我觉得应该定义子函数来提取每个人的信息。
还有一个不足就是程序感觉不够简练,有点罗嗦,这需要自己有扎实的基本功,能都用最简短的源程序代码去解决一个相同的问题。
总体来说,这次对自己的程序还是不够满意,因为由于上学期的课程很紧,不能很好的温习老师的课堂内容,但我认为这并不是主要原因,主要原因还是因为自己没有好好的学,虽然每堂课都认真的在听讲,可课后自己很少去上机练习,这就导致虽然懂了很多理论知识,可总是不能熟练的运用到实际(写程序)上来。
通过这次课程设计的教训,我并没有到无比的气馁,而是更有信心去迎接以后的学习,因为我今天认识到了自己的最本质的错误。
在这,我希望自己在接下来的一年多时间里能好好的学习,争取能学到一些对将来有用的东西,从而不会在社会的残酷竞争下落伍了。
当我们对社会的认识加深时,我们的某些观念就会更加有进步意义,更有助于我们立足社会,发展自身。
大学的四年中我肯定要具备一定的交际能力,因为交际能力在以后的发展中也起者举足轻重的作用,现在的我可以说交际能力特别的差,连和陌生人说话的勇气都没有,这是极其可悲的。
我想通过大学这个大的舞台提高自己的交际的能力。
所以我会尽量多参加学校的一些活动,提高自己的综合素养和能力。
大学四年毕业后,我希望自己能全面发展,在各方面都有极大的提高,争取做一个对社会有用的人。
附录:
系统的源程序
#include"
iostream"
string"
cstdlib"
iomanip"
fstream"
usingnamespacestd;
intns,nt;
classFeebz//学生的信息类
public:
Feebz(stringNum="
24102601795"
stringName="
李佳文"
doublewater1=1,doublewater2=5,doublepower1=0,doublepower2=6,doublegas1=10,doublegas2=18);
//构造函数
voidoperator=(Feebzr);
//运算符重载
doubleGetW();
//计算学生水费
doubleGetP();
//计算学生电费
doubleGetG();
//计算学生气费
doubleGetTotal(){returnGetW()+GetP()+GetG();
}//计算学生总费用
stringnumber,name;
doublewater1,water2,power1,power2,gas1,gas2,Waterprice,Powerprice,Gasprice;
};
Feebz:
Feebz(stringNum,stringName,doubleWater1,doubleWater2,doublePower1,doublePower2,doubleGas1,doubleGas2)//构造函数
number=Num;
name=Name;
water1=Water1;
water2=Water2;
power1=Power1;
power2=Power2;
gas1=Gas1;
gas2=Gas2;
flag=0;
voidFeebz:
operator=(Feebzr)//赋值运算符重载
name=r.name;
number=r.number;
water1=r.water1;
water2=r.water2;
power1=r.power1;
power2=r.power2;
gas1=r.gas1;
gas2=r.gas2;
GetW()//计算学生水费
if((water2-water1)<
Waterprice=0;
else
Waterprice=0.6*(water2-water1-6);
returnWaterprice;
GetP()//计算学生电费
GetG()//计算学生气费
classStuMan//学生管理类
{public:
StuMan(intsz=50){size=sz;
St=newFeebz[size];
}//构造函数
~StuMan(){delete[]St;
}//析构函数
voidMainMenu();
//主菜单
voidFeeMenu();
//学生交费菜单
voidNumFee();
//输入学号交费
voidNameFee();
//输入姓名交费
voidCheckMenu();
//学生查询菜单
voidNumCheck();
//输入学号查询
voidNameCheck();
//输入姓名查询
voidAdd();
//增加学生功能
voidDeleteMenu();
//学生删除菜单
voidNumDelete();
//输入学号删除
voidNameDelete();
//输入姓名删除
voidRegist();
voidChakan();
//学生查看作用
private:
intsize;
Feebz*St;
voidStuMan:
MainMenu()//主菜单
intchoice;
*************************************"
*欢迎使用学生水电气费管理系统*"
*1.缴纳水电气费*"
*2.查询一个同学水电气费用量*"
*3.查看所有同学的缴费情况*"
*4.增加学生信息*"
*5.删除学生信息*"
*6.退出系统*"
while
(1)
{
请选择:
choice;
switch(choice)
{case1:
FeeMenu();
case2:
CheckMenu();
case3:
Chakan();
case4:
Add();
case5:
DeleteMenu();
default:
}if(choice==6)break;
Regist()
{inti=0;
ifstreamtfile("
while(tf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告