用C++实现水电煤气管理系统参照模板可编辑.docx

上传人:b****6 文档编号:6759481 上传时间:2023-01-10 格式:DOCX 页数:33 大小:228.85KB
下载 相关 举报
用C++实现水电煤气管理系统参照模板可编辑.docx_第1页
第1页 / 共33页
用C++实现水电煤气管理系统参照模板可编辑.docx_第2页
第2页 / 共33页
用C++实现水电煤气管理系统参照模板可编辑.docx_第3页
第3页 / 共33页
用C++实现水电煤气管理系统参照模板可编辑.docx_第4页
第4页 / 共33页
用C++实现水电煤气管理系统参照模板可编辑.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

用C++实现水电煤气管理系统参照模板可编辑.docx

《用C++实现水电煤气管理系统参照模板可编辑.docx》由会员分享,可在线阅读,更多相关《用C++实现水电煤气管理系统参照模板可编辑.docx(33页珍藏版)》请在冰豆网上搜索。

用C++实现水电煤气管理系统参照模板可编辑.docx

用C++实现水电煤气管理系统参照模板可编辑

课程设计报告

 

课程设计题目:

水电煤气管理系统

学生姓名:

专业:

网络工程

班级:

10211303

指导教师:

姜林

2011年11月25日

东华理工大学

课程设计评分表

学生姓名:

班级:

学号:

课程设计题目:

水电煤气管理系统

项目内容

满分

实评

能结合所学课程知识、有一定的能力训练。

符合选题要求

(5人一题)

10

工作量适中,难易度合理

10

能熟练应用所学知识,有一定查阅文献及运用文献资料能力

10

理论依据充分,数据准确,公式推导正确

10

能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等

10

能体现创造性思维,或有独特见解

10

总体设计正确、合理,各项技术指标符合要求。

10

说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰

10

设计说明书栏目齐全、合理,符号统一、编号齐全。

 格式、绘图、表格、插图等规范准确,符合国家标准

10

有一定篇幅,字符数不少于5000

10

总分

100

指导教师评语:

 

指导教师签名:

年月日

一.问题描述:

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

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

二.设计思路:

(一)程序功能:

1.实现对用户信息的录入

2.实现水电煤气数据的录入

3.计算并查询用户应缴费用

4.查询未缴纳费用名单

(二)程序说明:

1.在主函数中通过分支选择可以跳转不同的功能选项进而实现

2.在显示主菜单函数中,我们通过设计友好界面来与用户进行交互。

在“请选择相应功能(0-4):

”中使用者输入非0-4数字或其他字符时,系统提示“请检查您输入的数字在0~4之间!

请在输入一遍!

”的信息,以帮助用户进行正确选择。

3.首先建立了User类,用于初始化身份证号码、姓名、用水电、煤气量,又定义了缴费函数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:

姓名

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()

获取姓名

Public

voidsetId(stringi)

设置编号

Public

voidsetName(stringn)

设置姓名

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<<"请输入新教工的身份证号:

";

cin>>id;

cout<<"请输入新教工的姓名:

";

cin>>name;

Teachert(id,name);

TeacherFiletf;

tf.add(t);

}

elseif(o==2)

{

stringid;

stringname;

cout<<"请输入新学生的身份证号:

";

cin>>id;

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

";

cin>>name;

Students(id,name);

StuFilesf;

sf.add(s);

}

else

return;

}

voidselect()

{

cout<

cout<<"1.学生的信息\n"

<<"2.教师的信息\n"

<<"3.按身份证号查询\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<<"请输入他的身份证号:

";

cin>>id;

user=sf.getStudent(id);

if(user==0)

user=tf.getTeacher(id);

if(user==0)

{

cout<<"资料库中没有该身份证号的用户!

"<

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<<"请输入他的身份证号:

";

cin>>id;

user=sf.getStudent(id);

if(user==0)

user=tf.getTeacher(id);

if(user==0)

{

cout<<"资料库中没有该身份证号的用户!

"<

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<<"请输入要缴费的人的身份证号:

";

stringid;

cin>>id;

User*user;

StuFilesf;

TeacherFiletf;

user=sf.getStudent(id);

if(user==0)

user=tf.getTeacher(id);

if(user==0)

{

cout<<"资料库中没有该身份证号的用户!

"<

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*stuList;

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;isize();i

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

当前位置:首页 > 考试认证 > 其它考试

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

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