收藏 分销(赏)

用C实现水电煤气管理系统模板.doc

上传人:丰**** 文档编号:4586537 上传时间:2024-09-30 格式:DOC 页数:44 大小:470.50KB 下载积分:12 金币
下载 相关 举报
用C实现水电煤气管理系统模板.doc_第1页
第1页 / 共44页
用C实现水电煤气管理系统模板.doc_第2页
第2页 / 共44页


点击查看更多>>
资源描述
用C实现水电煤气管理系统 44 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 课程设计报告 课程设计题目: 水电煤气管理系统 学生姓名: 专 业: 网络工程 班 级: 10211303 指导教师: 姜林 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 void add(Student &s) 将S添加到文件中 Public void display() 依次显示所有的学生的信息 Public Student *gerStudent(string id) 得到学号为id的学生的对象指针 Public ~StuFile() 析构函数, 释放资源, 并把数组中的信息存进文件 Public void wjf() 未缴费的学生的名单 Private vector<Student> *stuList; 学生信息的向量数组, 用于保存所有学生的信息 2 TeacherFile 类, 主要用于对教工信息的操作 Public TeacherFile() 构造函数 Public void add(Teacher&s) 将s添加到文件中 Public void display() 依次显示所有的教师信息 Public Teacher *getTeacher (string id) 得到编号为id的教师的对象指针 Public ~TeacherFile() 析构函数, 释放资源, 并把数组中的信息存进文件 Public void wjf() 未交费的教工人员名单 Private Vector<Teacher> *teaLisr 教工的向量数组, 用于保存所有教工的信息 (3)Main.cpp 函数 属性 注释 void init() 新建一个学生或者教工的信息 void select() 查询界面, 根据用户的输入来显示用户想查询的信息 void add() 信息的录入, 录入学生或者教工的水电煤气信息 void handed() 缴费, 有学生或者教工缴费的时候调用此函数 int mainMenu() 主菜单, 显示一个菜单, 返回用户的输入 void work() 程序开始工作 int main() 主函数, 程序的入口 (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() 返回学生应缴的费用 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, 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() 获取姓名 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 void 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():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 三. 程序代码: 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 static char* stuFlieName="s.txt"; //保存教师信息的文件 const static char* teaFileName="t.txt"; #endif Main.cpp #include<iostream> #include<iomanip> #include<string> #include<vector> #include"Student.cpp" #include"Teacher.cpp" #include"File.cpp" using namespace std; void init() { cout<<endl; cout<<"1.新建教工信息\n" <<"2.新建学生信息\n"<<endl; cout<<"请选择你要进行的操作:"<<endl; int o; cin>>o; if(o==1) { string id; string name; cout<<"请输入新教工的身份证号:"; cin>>id; cout<<"请输入新教工的姓名:"; cin>>name; Teacher t(id,name); TeacherFile tf; tf.add(t); } else if(o==2) { string id; string name; cout<<"请输入新学生的身份证号:"; cin>>id; cout<<"请输入新学生的姓名:"; cin>>name; Student s(id,name); StuFile sf; sf.add(s); } else return ; } void select() { cout<<endl; cout<<"1.学生的信息\n" <<"2.教师的信息\n" <<"3.按身份证号查询\n" <<"4.未缴费的人员名单\n" <<"5.不进行任何的操作\n"<<endl; cout<<"请输入你要进行的操作:"; int o; cin>>o; StuFile sf; TeacherFile tf; if(o==1) { cout<<"该用户的信息是:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴的费用"<<endl; sf.display(); } else if(o==2) { cout<<"该用户的信息是:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴的费用"<<endl; tf.display(); } else if(o==3) { 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<<"资料库中没有该身份证号的用户!"<<endl; return ; } cout<<"该用户的信息为:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴的费用"<<endl; user->display(); } else if(o==4) { sf.wjf(); tf.wjf(); } else return ; } void add() { cout<<"1.对教工使用的水电煤气信息的录入"<<endl <<"2.对学生使用的水电煤气信息的录入"<<endl <<"3.不进行任何操作"<<endl; cout<<"请输入你要进行的操作:"<<endl; int o; cin>>o; string id; float water; float power; float gas; if(o==1||o==2) { User*user; StuFile sf; TeacherFile tf; cout<<"请输入她的身份证号:"; cin>>id; user=sf.getStudent(id); if(user==0) user=tf.getTeacher(id); if(user==0) { cout<<"资料库中没有该身份证号的用户!"<<endl; return ; } cout<<"该用户的信息是:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴的费用"<<endl; user->display(); cout<<"请输入她的用水量:"; cin>>water; cout<<"请输入她的用电量:"; cin>>power; cout<<"请输入她的用煤气量:"; cin>>gas; user->setWater(water); user->setPower(power); user->setGas(gas); } else return ; } void handed() { cout<<"请输入要缴费的人的身份证号:"; string id; cin>>id; User*user; StuFile sf; TeacherFile tf; user=sf.getStudent(id); if(user==0) user=tf.getTeacher(id); if(user==0) { cout<<"资料库中没有该身份证号的用户!"<<endl; return ; } cout<<"该用户的信息是:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴的费用"<<endl; user->display(); cout<<"请输入她的缴费金额:"; float money; cin>>money; user->setMoney(money); cout<<"缴费成功\n"; } int mainMenu() { cout<<endl<<endl; cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl; cout<<" ☆ ☆"<<endl; cout<<" ☆ 水电煤气管理系统 ☆"<<endl; cout<<" ☆ ☆"<<endl; cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl; cout<<endl; cout<<" 1.新建用户信息"<<endl; cout<<" 2.信息查询"<<endl; cout<<" 3.信息的录入"<<endl; cout<<" 4.有人缴费"<<endl; cout<<" 0.退出系统"<<endl; int a; char c[20]; do { cout<<" 请选择相应的功能(0-4):"<<endl; cout<<endl; cin>>a; gets(c); if(a<0||a>4) { cout<<endl<<endl; cout<<"请确认您输入的数字在0~4之间!"<<endl; cout<<"请重新输入一遍!"<<endl<<endl; } } while(a<0||a>4); return a; } void work() { switch(mainMenu()) { case 1: init(); break; case 2: select(); break; case 3: add(); break; case 4: handed(); break; default: break; } } void Menu() { cout<<endl; cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl; cout<<" ☆ ☆"<<endl; cout<<" ☆ 水电煤气管理系统 ☆"<<endl; cout<<" ☆ ☆"<<endl; cout<<" ☆ 杨振坡 ☆"<<endl; cout<<" ☆ ☆"<<endl; cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl; cout<<endl; system("pause"); system("cls"); } void main() { system("color 3A"); Menu(); char a='y'; while(a=='y') { work(); cout<<"是否继续使用该系统(y/n)"<<endl; cin>>a; } } File.cpp //StuFile类, 对学生信息的操作 //TeacherFile类, 对教工信息的操作 #include<iostream> #include<iomanip> #include<fstream> #include<vector> #include<string> #include"Student.cpp" #include"Teacher.cpp" #include"User.cpp" #include"Constant.h" #ifndef StuFile_class #define StuFile_class class StuFile { vector<Student> *stuList; public : string id; string name; float useWater; float usePower; float useGas; float money; StuFile() { stuList=new vector<Student>; ifstream *is=new ifstream("StuFileName",ios_base::in); if(is==0) { cout<<"打开文件失败!"<<endl; return ; } else { while(is->good()) { Student s("",""); is->read((char*)&s,sizeof(Student)); if(s.getId() !="") { stuList->push_back(s); } } } is->close(); } void add(Student &s) { stuList->push_back(s); } void display() { for(int i=0;i<stuList->size();i++) { Student s=stuList->at(i); s.display(); } } Student *getStudent(string id) { for(int i=0;i<stuList->size();i++) { if(stuList->at(i).getId()==id) return &stuList->at(i); } return 0; } ~StuFile() { if(stuList !=NULL && !stuList->empty()) { ofstream os("stuFileName",ios_base::out); for(int i=0;i<stuList->size();i++) { if(stuList->at(i).getId() !="") os.write((char*)&stuList->at(i),sizeof(Student)); } os.close(); delete stuList; } } void wjf() { cout<<"未缴费的学生名单:"<<endl; for(int i=0;i<stuList->size();i++) { Student s=stuList->at(i); if(s.getMoney()>0) { cout<<"该学生的信息是:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴纳的费用"<<endl; s.display(); } } } } ; #endif #ifndef TeaFile_class #define TeaFile_class class TeacherFile { vector<Teacher> *teaList; public: TeacherFile() { teaList=new vector<Teacher>; ifstream*is=new ifstream(teaFileName,ios_base::in); if(is==0) { cout<<"打开文件失败!"<<endl; return ; } else { while(is->good()) { Teacher s("",""); is->read((char*)&s,sizeof(Teacher)); if(s.getId() !="") { teaList->push_back(s); } } } is->close(); } Teacher *getTeacher(string id) { for(int i=0;i<teaList->size();i++) { if(teaList->at(i).getId()==id) return &teaList->at(i); } return 0; } void wjf() { cout<<"教工未缴费的人员名单:"<<endl; for(int i=0;i<teaList->size();i++) { Teacher t=teaList->at(i); if(t.getMoney()>0) { cout<<"该教师的信息是:"<<endl; cout<<"|"<<setw(18)<<"身份证号"<<"|" <<setw(8)<<"姓名"<<"|" <<setw(8)<<"用水量"<<"|" <<setw(8)<<"用电量"<<"|" <<setw(8)<<"用煤气量"<<"|" <<setw(8)<<"要缴的费用"<<endl; t.display(); } } } void display() { for(int i=0;i<teaList->size();i++) { Teacher t=teaList->at(i); t.display(); } } void add(Teacher &s) { teaList->push_back(s); } ~TeacherFile() { if(teaList !=NULL && !teaList->empty()) { ofstream os(teaFileName,ios_base::out); for(int i=0;i<teaList->size();i++) { if(teaList->at(i).getId() !="") os.write((char*)&teaList->at(i),sizeof(Teacher)); } os.close(); delete teaList; } } }; #endif Student.cpp #ifndef STUDENT_CLASS #define STUDENT_CLASS #include<iostream> #include<iomanip> #include<string> #include"Constant.h" #include"User.cpp" using namespace std; class Student:virtual public User { private : float freeWater; float freePower; float freeGas; public : 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<<"|"<<setw(18)<<id<<"|" <<setw(8)<<name<<"|" <<setw(8)<<useWater<<"|" <<setw(8)<<usePower<<"|" <<setw(8)<<useGas<<"|" <<setw(8)<<getMoney()<<endl; } float getMoney() { float w=SwaterUnit*((useWater>freeWater)?(useWater-freeWater):0); float p=SpowerUnit*((usePower>freePower)?(usePower-freePower):0); float g=SgasUnit*((useGas>freeGas)?(useGas-freeGas):0); 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() { cout<<"|"<<setw(18)<<id<<"|" <<setw(8)<<name<<"|" <<setw(8)<<useWater<<"|" <<setw(8)<<usePower<<"|" <<setw(8)<<useGas<<"|" <<setw(8)<<getMoney()<<endl; } float getMoney() { float w=TwaterUnit* useWater; float p=TpowerUnit* usePower; float g=TgasUnit* useGas
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服