1、 用C实现水电煤气管理系统 44 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 课程设计报告 课程设计题目: 水电煤气管理系统 学生姓名: 专 业: 网络工程 班 级: 10211303 指导教师: 姜林 11 月 25 日 东华理工大学 课程设计评分表 学生姓名: 班级: 学号: 课程设计题目: 水电煤气管理系统 项目内容 满分 实 评
2、 选 题 能结合所学课程知识、 有一定的能力训练。符合选题要求 ( 5人一题) 10 工作量适中, 难易度合理 10 能 力 水 平 能熟练应用所学知识, 有一定查阅文献及运用文献资料能力 10 理论依据充分, 数据准确, 公式推导正确 10 能应用计算机软件进行编程、 资料搜集录入、 加工、 排版、 制图等 10 能体现创造性思维, 或有独特看法 10 成 果 质 量 总体设计正确、 合理, 各项技术指标符合要求。 10 说明书综述简练完整, 概念清楚、 立论正确、 技术用语准确、 结论严谨合理; 分析处理科学、
3、 条理分明、 语言流畅、 结构严谨、 版面清晰 10 设计说明书栏目齐全、 合理, 符号统一、 编号齐全。 格式、 绘图、 表格、 插图等规范准确, 符合国家标准 10 有一定篇幅, 字符数不少于5000 10 总 分 100 指导教师评语: 指导教师签名: 年 月 日 一. 问题描述: 设计一个水电管理信息系统, 能够对高
4、校的水电费用进行管理,包括了登记费用, 查询费用, 以及住户信息管理等。在设计时要考虑到学生和教工在用水电时的不同, 学生能够免费使用一定额度的水电, 超过这个额度的随便以后必须自费使用, 且自费部分水电费的价格标准要高于教工的收费标准( 主要是节约资源) 。 二. 设计思路: (一)程序功能: 1.实现对用户信息的录入 2.实现水电煤气数据的录入 3.计算并查询用户应缴费用 4.查询未缴纳费用名单 (二)程序说明: 1.在主函数中经过分支选择能够跳转不同的功能选项进而实现 2.在显示主菜单函数中, 我们经过设计友好界面来与用户进行交互。在”请选择相应功能(0-4)
5、 ”中使用者输入非0-4数字或其它字符时, 系统提示”请检查您输入的数字在0~4之间! 请在输入一遍! ”的信息, 以帮助用户进行正确选择。 3.首先建立了User类, 用于初始化身份证号码、 姓名、 用水电、 煤气量, 又定义了缴费函数setMonery(), 用在有人缴费的函数体中, 从键盘输入缴的费用, 一开始我们在setMoney(), 中没有对缴的费用进行累加, 在查询信息时现实的应缴费用不正确, 经过我们的努力, 检查出错误并加以改正, 让程序更加完善。 4.用User类派生出Student和|Teacher类, 其中有计算应该缴的费用, Student类比Teacher
6、类多了免费。 5.在保存文件的处理中, 需考虑到”创立保存文件失败! ”和”已成功保存文件! ”等诸多内容。 (三)文件类型: (1) Constant.h 用于存放收费标准。 (2) File.cpp 该文件中有两个类: 1. StuFile类, 主要用于对学生信息的操作 函数 属性 注释 Public StuFile() 构造函数 Public void add(Student &s) 将S添加到文件中 Publi
7、c
void display()
依次显示所有的学生的信息
Public
Student
*gerStudent(string id)
得到学号为id的学生的对象指针
Public
~StuFile()
析构函数, 释放资源, 并把数组中的信息存进文件
Public
void wjf()
未缴费的学生的名单
Private
vector
8、造函数
Public
void add(Teacher&s)
将s添加到文件中
Public
void display()
依次显示所有的教师信息
Public
Teacher *getTeacher
(string id)
得到编号为id的教师的对象指针
Public
~TeacherFile()
析构函数, 释放资源, 并把数组中的信息存进文件
Public
void wjf()
未交费的教工人员名单
Private
Vector
9、 (3)Main.cpp 函数 属性 注释 void init() 新建一个学生或者教工的信息 void select() 查询界面, 根据用户的输入来显示用户想查询的信息 void add() 信息的录入, 录入学生或者教工的水电煤气信息 void handed() 缴费, 有学生或者教工缴费的时候调用此函数 int mainMenu() 主菜单, 显示一个菜单, 返回用户的输入 void work() 程序开始工作 int main() 主函数, 程序的入口
10、 (4)Student.cpp Class Student:virtual public User 函数 属性 注释 Public Student():User(””,””,0,0,0) 构造函数 Public Student(string i,string n, Float w=0,float p=0,float g=0):User(i,n,w,p,g) 构造函数 i:学号n:姓名 Public void display() 依次显示所有的学生的信息 Public float display(
11、) 返回学生应缴的费用 Private float freeWater; 学生免费使用的水量 Private float freePower; 学生免费使用的电量 Private float freeGas; 学生免费使用的煤气量 Private float money; 缴费 (5)Teacher.cpp Class Teacher:virtual public User 函数 属性 注释 Public Teacher(string i,string n,
12、 float w=0,float p=0,float g=0):User(I,n,w,p,g) 构造函数 Public void display() 依次显示所有的教工信息 Public float getMoney() 返回教工应缴的费用 (6)User.cpp 函数 属性 注释 Public User(string i,string n,float w=0,float p=0,float g=0) 构造函数 Public string getId() 获取编号 Public string getName(
13、) 获取姓名 Public void setId(string i) 设置编号 Public void setName(string n) 设置姓名 Public void setWater(float w) 设置水量 Public void setPower(float p) 设置电量 Public void setGas(float g) 设置煤气量 Public float getWater() 使用水量 Public virtual void display()=0; 依次显示所有信息 Public voi
14、d setMoney(float m) 缴费 Public virtual float getMoney()=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(
15、):void +getMoney():void User +i:string +n:string +w:float +p:float +g:float +getId():string +getName():string +setId(string i) :string +setName(string n) :string +setWater(float w) :float +setPower(float p) :float +setGas(float g) :float +getWater():float 三.
16、程序代码: Constant.h //收费标准 #ifndef Constant #define Constant //教师 const static float TwaterUnit=1; const static float TpowerUnit=1; const static float TgasUnit=1; //学生 const static float SwaterUnit=1; const static float SpowerUnit=1; const static float SgasUnit=1; //保存学生信息的文件 const sta
17、tic char* stuFlieName="s.txt";
//保存教师信息的文件
const static char* teaFileName="t.txt";
#endif
Main.cpp
#include 18、
cout<<"1.新建教工信息\n"
<<"2.新建学生信息\n"< 19、ng id;
string name;
cout<<"请输入新学生的身份证号:";
cin>>id;
cout<<"请输入新学生的姓名:";
cin>>name;
Student s(id,name);
StuFile sf;
sf.add(s);
}
else
return ;
}
void select()
{
cout< 20、n"< 21、"< 22、
User *user;
StuFile sf;
TeacherFile tf;
string id;
cout<<"请输入她的身份证号:";
cin>>id;
user=sf.getStudent(id);
if(user==0)
user=tf.getTeacher(id);
if(user==0)
{
cout<<"资料库中没有该身份证号的用户!"< 23、<"|"
< 24、<<"2.对学生使用的水电煤气信息的录入"< 25、)
user=tf.getTeacher(id);
if(user==0)
{
cout<<"资料库中没有该身份证号的用户!"< 26、缴的费用"< 27、
cin>>id;
User*user;
StuFile sf;
TeacherFile tf;
user=sf.getStudent(id);
if(user==0)
user=tf.getTeacher(id);
if(user==0)
{
cout<<"资料库中没有该身份证号的用户!"< 28、<"用水量"<<"|"
< 29、☆☆☆☆☆☆☆"< 30、 1.新建用户信息"< 31、
cin>>a;
gets(c);
if(a<0||a>4)
{
cout< 32、 add();
break;
case 4:
handed();
break;
default:
break;
}
}
void Menu()
{
cout< 33、 ☆"< 34、endl;
system("pause");
system("cls");
}
void main()
{
system("color 3A");
Menu();
char a='y';
while(a=='y')
{
work();
cout<<"是否继续使用该系统(y/n)"< 35、fstream>
#include 36、
float useGas;
float money;
StuFile()
{
stuList=new vector 37、nt));
if(s.getId() !="")
{
stuList->push_back(s);
}
}
}
is->close();
}
void add(Student &s)
{
stuList->push_back(s);
}
void display()
{
for(int i=0;i 38、nt(string id)
{
for(int i=0;i 39、 {
if(stuList->at(i).getId() !="")
os.write((char*)&stuList->at(i),sizeof(Student));
}
os.close();
delete stuList;
}
}
void wjf()
{
cout<<"未缴费的学生名单:"< 40、out<<"该学生的信息是:"< 41、le_class
class TeacherFile
{
vector 42、
is->read((char*)&s,sizeof(Teacher));
if(s.getId() !="")
{
teaList->push_back(s);
}
}
}
is->close();
}
Teacher *getTeacher(string id)
{
for(int i=0;i 43、 0;
}
void wjf()
{
cout<<"教工未缴费的人员名单:"< 44、<<"用电量"<<"|"
< 45、le()
{
if(teaList !=NULL && !teaList->empty())
{
ofstream os(teaFileName,ios_base::out);
for(int i=0;i 46、f
Student.cpp
#ifndef STUDENT_CLASS
#define STUDENT_CLASS
#include 47、
Student():User("","",0,0,0)
{
freeWater=1;
freePower=2;
freeGas=3;
}
Student(string i,string n,
float w=0,float p=0,float g=0):User(i,n,w,p,g)
{}
void display()
{
cout<<"|"< 48、ower<<"|"
< 49、 return w+p+g-money;
}
};
#endif
Teacher.cpp
#include"User.cpp"
#include"Constant.h"
#ifndef Teacher_class
#define Teacher_class
class Teacher:virtual public User
{
public :
Teacher(string i,string n,
float w=0,float p=0,float g=0):User(i,n,w,p,g)
{}
void display()
{
co 50、ut<<"|"<






