C语言程序设计课程设计水电煤气管理系统.docx

上传人:b****7 文档编号:10138726 上传时间:2023-02-08 格式:DOCX 页数:37 大小:312.84KB
下载 相关 举报
C语言程序设计课程设计水电煤气管理系统.docx_第1页
第1页 / 共37页
C语言程序设计课程设计水电煤气管理系统.docx_第2页
第2页 / 共37页
C语言程序设计课程设计水电煤气管理系统.docx_第3页
第3页 / 共37页
C语言程序设计课程设计水电煤气管理系统.docx_第4页
第4页 / 共37页
C语言程序设计课程设计水电煤气管理系统.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C语言程序设计课程设计水电煤气管理系统.docx

《C语言程序设计课程设计水电煤气管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计水电煤气管理系统.docx(37页珍藏版)》请在冰豆网上搜索。

C语言程序设计课程设计水电煤气管理系统.docx

C语言程序设计课程设计水电煤气管理系统

JINGCHUUNIVERSITYOFTECHNOLOGY

 

课程设计成果

学院:

_计算机工程学院_____

班级:

_计算机科学与技术

(一)

学生姓名:

学号:

设计地点(单位)___A5-101_______________________

设计题目:

___电煤气管理系统___________________________

完成日期:

2012年1月5日

指导教师评语:

_______________________________________

____________________________________________________________________________________________________________________________________________________________________________________________________________________

成绩(五级记分制):

________________

教师签名:

_________________________

 

一.课程设计目的和要求……………………………………2

二.课题分析……………………………………2

三.设计……………………………………2-3

1.设计思想

2.设计分析

四.主程序……………………………………3-19

五.结果显示及分析…………………………………19-21

六.感想、收获及体会……………………………………21

七.参考文献……………………………………22

附录……………………………………22

 

一.课程设计目的和要求

问题描述:

设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理等。

在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。

基本要求:

实现对用户信息的录入

实现水电煤气数据的录入

计算并查询用户应缴费用

查询未缴纳费用名单

测试数据:

可选用小区物业管理部门的数据,也可采用手工输入不少于10个用户信息的数据。

实现提示:

用户基本信息类,教工用户信息类,学生用户信息类,收费标准类,该类存储水电煤气标准单位的收费标准,如:

煤气,1.0元/立方米;

不同类型人员水、电、煤气信息类,这些类可以包括水表,电表,煤气表ID,抄表时间,上次抄表时间,本次抄表时间,上次抄表度数,本次抄表度数,本次使用度数,费用,是否缴费标记等信息。

在实现的时候考虑继承和多态技术的合理使用。

二.课题分析:

本程序是一个水电气管理信息系统,能够对高校的水电气费用进行管理,包括了成员基本信息,如学号、编号、姓名、成员水电气的用量;程序的用途包括缴纳水电气费、查询一个同学水电气费用量"、查看所有同学的缴费情况、增加学生信息、删除学生信息、退出系统等。

在设计时也考虑到学生和教师在用水电气时的不同,学生可以免费使用一定额度的水电气,超过这个额度的以后必须付费,且付费部分水电气费的价格要高于教工的收费标准,该措施的实行是为了鼓励同学们节约用水,以免造成不必要的资源浪费。

该软件主要是为了学校的管理人员提供便捷,以更快的完成水电气费用的收缴。

三.设计

1.设计思想:

设计面向对象的程序设计语言,首先考虑的肯定是要设计类。

程序设计了四个类,两个是学生类,两个是教师类。

在主函数中用动态数组,机动的分配类存,以至于不造成类存的浪费。

在本程序中涉及用户的选择,用户要根据自己的实际需要选择不同的功能,由于选择的多样性,程序中必须要有switch结构控制各个功能的选择,如果需要多次进行操作,则要在switch结构的外部,通过循环来实现。

首先该程序的第一目的是要读附录里的内容,然后再根据用户的选项来实现各种不同的功能,当正确按照要求就可进行更进一步进行操作,直到你达到自己的目的为止。

本程序通过调用不同的函数来实现不同的功能,通过用户自己的选择可以自己进行操作,在主函数中申明的函数分别起到不同的作用,在本程序中所有的子函数都是在主函数外实现的。

在子函数的函数体中为了使程序的功能和细节更加的完善,在子函数中设置菜单,这样不仅使得程序更加完善还有利于用户的操作。

使得程序更加简洁明了。

2.设计分析:

在这个电煤气管理系统中,共用到了四个类,一个是stut类,它起的作用是把水电煤气的用量和每个人的缴费信息结合在一起,还有赋值运算符重载、插入运算符重载,最重要的就是那些对象都有共同的属性,通过这个类把学号、姓名、水用量、电用量、气用量集中到一起,所以才能设计一个类;另一个类就是arrayofStu学生类计算类,这个类的作用主要就是一些功能的实现,有主菜单、交费菜单、交费功能和、查询菜单、查询功能、增加功能、删除菜单、删除功能、查看功能。

同样定义一个teacher它起的作用是把水电煤气的用量和每个人的缴费信息结合在一起,还有赋值运算符重载、插入运算符重载,最重要的就是那些对象都有共同的属性,通过这个类把姓名、水用量、电用量、气用量集中到一起,所以才能设计一个类;其另一个类就是arrayofTeacher老师类数组计算,这个类的作用主要就是一些功能的实现,有主菜单、交费菜单、交费功能和、查询菜单、查询功能、增加功能、删除菜单、删除功能、查看功能

四.主程序

#include"iostream"

#include"string"

#include"fstream"

#include"iomanip"

usingnamespacestd;

intcount1=0,count11=0;//学生总数和交钱的人数

intcount2=0,count22=0;

classStu

{

public:

Stu(doublexwater=0,doublexpower=0,doublexgas=0,stringxnum="a",stringxna="a");//学生类构造函数

voidoperator=(StuS);//赋值运算符重载

friendostream&operator<<(ostream&a,Stu&S)//插入运算符重载

{a<

a<

a<

a<

a<

a<

a<

a<

a<

if(S.flag)

a<<"已交";

elsea<<"未交";

cout<

returna;

}

doubleSGetW();//计算水费

doubleSGetC();//计算电费

doubleSGetG();//计算煤气费

doubleStotal();//计算总费用

doublewater,power,gas,water_rate,circuit,gas_rate,total;

intflag;

stringnumber,name;

};

Stu:

:

Stu(doublexwater,doublexpower,doublexgas,stringxnum,stringxna)//学生类构造函数

{

water=xwater;

power=xpower;

gas=xgas;

number=xnum;

name=xna;

flag=0;

}

voidStu:

:

operator=(StuS)//赋值运算符重载

{

name=S.name;

number=S.number;

water=S.water;

power=S.power;

gas=S.gas;

}

doubleStu:

:

SGetW()//计算水费

{

if(water<10)

water_rate=0;

else

water_rate=4.2*(water-10);

returnwater_rate;

}

doubleStu:

:

SGetC()//计算电费

{

if(power<10)

circuit=0;

else

circuit=0.6*(power-10);

returncircuit;

}

doubleStu:

:

SGetG()//计算煤气费

{

if(gas<10)

gas_rate=0;

else

gas_rate=2.3*(gas-10);

returngas_rate;

}

doubleStu:

:

Stotal()//计算总的钱

{

total=SGetG()+SGetW()+SGetC();

returntotal;

}

classarrayofStu//学生类计算

{

public:

arrayofStu(intsz=1){size=sz;student=newStu[size];}//构造函数

~arrayofStu(){delete[]student;}

voidxuesheng();//学生用户主菜单

voidjiaofei();//学生交费菜单

voidregist();//登记学生

voidamend();//修改用户菜单

voidadd();//增加用户

voiddelet();//删除用户菜单

voidnad();//姓名删除

voidnumd();//学号删除

voidcheck();//查询菜单

voidnacheck();//姓名查询

voidnumcheck();//学号查询

voidnaj();//输入姓名交费

voidnumj();//输入学号交费

voiddisplay();//查看交费情况

voidsave();

private:

intsize;

Stu*student;

};

voidarrayofStu:

:

regist()//学生用户注册

{

inti=0;

ifstreamf("Stu.txt");

while(f.good())//!

f.eof()

{

f>>student[i].number;

f>>student[i].name;

f>>student[i].water;

f>>student[i].power;

f>>student[i].gas;

i++;

}

f.close();

count1=i;

cout<<"\t\t注册成功"<

}

voidarrayofStu:

:

naj()//输入姓名交费

{charch;

doublemoney,money2;

cout<<"\t\t\t欢迎使用姓名交费功能"<

stringna;

cout<<"请输入学生姓名:

"<

cin>>na;

intfl=0;

for(inti=0;i

if(na==student[i].name)

{fl=1;

if(student[i].flag)

cout<<"该学生已缴纳过费用"<

else

{cout<<"你应该交"<

cout<<"确定是否真的现在交费(Y/N)"<

cin>>ch;

if(ch=='Y'||ch=='y')

{student[i].flag=1;

cout<<"你实际交的钱是:

"<

cin>>money;

if(money>student[i].Stotal())

cout<<"找零"<

if(student[i].Stotal()>money)

{cout<<"交的钱不够,还应交"<

cout<<"补交:

";

cin>>money2;}

cout<<"交费成功"<

count11++;

xuesheng();

}

elsexuesheng();

}

}

if(!

fl)

cout<<"没有这个学生"<

}

voidarrayofStu:

:

numj()//输入学号交费

{cout<<"\t\t\t欢迎使用学号交费功能"<

stringnum;doublemoney,money2;charch;

cout<<"请输入学生学号:

"<

cin>>num;

intfl=0;

for(inti=0;i

if(num==student[i].number)

{

if(student[i].flag)

{fl=1;cout<<"该学生已缴纳过费用"<

else

{cout<<"你应该交"<

cout<<"确定是否真的现在交费(Y/N)"<

cin>>ch;

if(ch=='Y'||ch=='y')

{student[i].flag=1;

cout<<"你实际交的钱是:

"<

cin>>money;

if(money>student[i].Stotal())

cout<<"找零"<

if(student[i].Stotal()>money)

{cout<<"交的钱不够,还应交"<

cout<<"补交:

";cin>>money2;}

cout<<"交费成功"<

count11++;

xuesheng();

}

elsexuesheng();

}

}

if(!

fl)

cout<<"没有这个学生"<

}

voidarrayofStu:

:

add()//增加学生

{cout<<"\t\t\t欢迎使用增加学生功能"<

cout<<"请输入学生的姓名:

"<

cin>>student[count1].name;

cout<<"请输入学生的学号:

"<

cin>>student[count1].number;

cout<<"请输入学生的用水量:

"<

cin>>student[count1].water;

cout<<"请输入学生的用电量:

"<

cin>>student[count1].power;

cout<<"请输入学生的用煤气量:

"<

cin>>student[count1].gas;

count1++;

cout<<"\t\t\t学生信息已被成功的增加!

"<

}

voidarrayofStu:

:

nad()//按姓名删除

{cout<<"\t\t\t欢迎使用姓名删除学生功能"<

/*cout<

cout<

intfl=0;

inti,j;

stringna;

cout<<"请输入要删除学生的姓名"<

cin>>na;

for(i=0;i

if(na==student[i].name)

{fl=1;break;}

if(fl)

{for(j=i;j

student[j]=student[j+1];

count1--;

cout<<"你已成功删除学生信息"<

}

else

cout<<"没有这个学生"<

}

voidarrayofStu:

:

display()

{inti;

if(count11==0)

cout<<"暂时还无学生交费"<

else

{cout<<"已交费人员信息"<

cout<<"学号"<<"姓名"<<"用水量"<<"用电量"<<"用煤气量"<<"水费"<<"电费"<<"煤气费"<<"总额"<<"是否交费"<

for(i=0;i

if(student[i].flag)

cout<

}

if(count11==count1)cout<<"所有学生均以交费"<

else

{cout<<"未交费人员信息"<

cout<<"学号"<<"姓名"<<"用水量"<<"用电量"<<"用煤气量"<<"水费"<<"电费"<<"煤气费"<<"总额"<<"是否交费"<

for(i=0;i

if(!

student[i].flag)

cout<

}

}

voidarrayofStu:

:

numd()//按学号删除

{cout<<"\t\t\t欢迎使用学号删除学生功能"<

intfl=0;

inti,j;

stringnum;

cout<<"请输入要删除学生的学号"<

cin>>num;

for(i=0;i

if(num==student[i].number)

{fl=1;break;}

if(fl)

{for(j=i;j

student[j]=student[j+1];

count1--;

cout<<"你已成功删除学生信息"<

}

else

cout<<"没有这个学生"<

}

voidarrayofStu:

:

nacheck()//姓名查询

{cout<<"\t\t\t欢迎使用姓名查询学生功能"<

inti,fl=0;

stringna;

cout<<"请输入要查找的姓名"<

cin>>na;

for(i=0;i

if(na==student[i].name)

{fl=1;break;}

if(fl)

{

cout<<"学号"<<"姓名"<<"用水量"<<"用电量"<<"用煤气量"<<"水费"<<"电费"<<"煤气费"<<"总额"<<"是否交费"<

cout<

else

cout<<"没有这个学生"<

}

voidarrayofStu:

:

numcheck()//学号查询

{cout<<"\t\t\t欢迎使用学号查询学生功能"<

inti,fl=0;

stringnum;

cout<<"请输入要查找的学号"<

cin>>num;

for(i=0;i

if(num==student[i].number)

{fl=1;break;}

if(fl)

{

cout<<"学号"<<"姓名"<<"用水量"<<"用电量"<<"用煤气量"<<"水费"<<"电费"<<"煤气费"<<"总额"<<"是否交费"<

cout<

}

else

cout<<"没有这个学生"<

}

voidarrayofStu:

:

save()

{ofstreamf("Stu2.txt");

f<<"学号"<<"姓名"<<"用水量"<<"用电量"<<"用煤气量"<<"水费"<<"电费"<<"煤气费"<<"总额"<<"是否交费"<

for(inti=0;i

f<

f.close();

cout<<"恭喜你,文件已成功保存"<

}

voidarrayofStu:

:

delet()//删除学生菜单

{

intchoice;

cout<<"\t\t\t\t**************"<

cout<<"\t\t\t\t删除信息"<

cout<<"\t\t\t\t1,按学号删除"<

cout<<"\t\t\t\t2,按姓名删除"<

cout<<"\t\t\t\t3,返回主菜单"<

cout<<"\t\t\t\t0,返回上一层"<

cout<<"\t\t\t\t**************"<

while

(1)

{

cout<<"请输入你的选择"<

cin>>choice;

switch(choice)

{

case1:

numd();break;//学号删除

case2:

nad();break;//姓名删除

case3:

xuesheng();break;//返回学生管理主菜单

case0:

amend();break;//返回上一层

}

if(choice==0)

break;

}

}

voidarrayofStu:

:

jiaofei()//学生缴费菜单

{

intchoice;

cout<<"\t\t\t\t****************"<

cout<<"\t\t\t\t*---学生缴费---*"<

cout<<"\t\t\t\t*1,输入学号交费*"<

cout<<"\t\t\t\t*2,输入姓名交费*"<

cout<<"\t\t\t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1