简易水电费管理系统源程序代码
C++:水费管理系统

C++ 课程设计报告题目:水费管理系统——水费基本信息管理、查询、统计、存盘和收费管理学生姓名:学号:专业班级:同组姓名:指导教师:设计时间: 2008年下学期第15~16周指导老师意见:评定成绩: 签名: 日期:1 系统(项目)设计1.1 系统功能模块图通过查阅相关资料和仔细分析,得出系统功能模块图如图1所示。
系统主要由用户信息管理、收费管理、查询与统计、存盘等几个功能模块组成,我负责的是收费管理、查询与统计、存盘功能。
其中收费管理包括用户本月用水量、本月所收水费、收费时间,查询与统计包括用户信息查询与收费查询与统计,存盘包括用户信息和收费信息存盘。
1.2 系统登陆模块系统登陆模块主要完成系统登陆和系统退出功能。
其详细流程图如图2所示。
1、密码输入;2、判断密码的正确与否,即当前用户是否具有进入系统运行的权限;3、主菜单中选择1、2、3、4,分别进入用户基本信息管理、收费管理、查询与统计、存盘操作;4、密码错误或主菜单中选择0,退出程序;1.3 收费管理收费管理模块主要完成对用户进行收费的功能,该模块包含用户本月所收水费、存盘等功能。
其流程图如图3所示。
1.3.1 子菜单2模块1、从子菜单2中选择1、2分别进入本月所收水费、存盘操作;2、选择0,返回主菜单。
1.3.2 本月所收水费模块该模块主要完成对用户本月收取水费的功能,其流程图如图 4所示。
1. 进入子菜单 2中选择 1,进行用户信息的添加;2. 键盘输入要收水费用户的编、名称、收费时间和本月用水量,计算对该用户所收水费;3. 一次用户信息输入完成,系统回到上一级菜单,提示存盘;4. 输入2,进行存盘。
1.3.3 存盘模块该模块主要完成用户收费信息的存盘,详情见流程图5.所示。
1、子菜单2中选择2,进行添加用户信息和所收水费存盘;2、继续输入用户信息或返回上级菜单。
1.4 查询与统计模块查询、统计模块主要完成对用户基本信息的和收费信息的查询和统计的功能,详情见流程图6所示。
水电费充缴费系统(C语言设计)

项目报告——水电气费查询及充值系统谢培伟本系统是是面向学生及管理员而开发的,也就是说,本系统共有两个大端口:学生端、管理端。
学生端:学生端是针对学生生活查询及充值缴费而设计的,内分为原用户登录及新用户注册两块,学生的数据是利用文件操作储存在xstdate.dat文件。
管理端:管理端的设计则方便了管路员对学生账户数据的修改与查询。
程序流程图:本人主要负责学生端的学生登录密码的判断、水电气费的查询及充值,其中变量t是用来读取用户是进入学生端还是管理端,变量xs是判断用户是登录还是注册,用jm=strcmp(xsdbmm,xsdlmm)来判断密码的正确性,变量xstzh是登陆后用来读取用户进哪个服务的。
为了能使用户能返回到上一层,我们后来使用了goto语句,这也给我们带来不必要的麻烦,例如,用户修改了自己的数据后使用goto返回上一层时,系统它不会储存修改后的数据,后来,我们只能在每个goto执行前就用文件操作先储存起来,则加上xstdate=fopen("xstdate.dat","w");/*修改后把学生账号信息写入xstdate.dat*/for(i=0;i<50;i++){fwrite(&xsd[i],sizeof(xsd[i]),1,xstdate);}fclose(xstdate);这样就使程序更加繁琐了。
源代码中的xpw()为{printf("\n");/*系统初始界面*/printf("**************************\n");printf(" **欢迎使用水电气管理系统**\n");printf("**************************\n");printf("\n");}是为了修饰整个执行局面。
代码中的xstczs、xstczd、xstczq分别为水、电、气充值的量,将充值的量加上原先的量再赋值储存,就完成了水电气费的充值。
课程设计报告用C实现水电煤气管理系统毕业论文

课程设计报告课程设计题目:水电煤气管理系统一.问题描述:设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以与住户信息管理等。
在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。
二.设计思路:(一)程序功能: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(stringid) 得到学号为id的学生的对象指针Public ~StuFile() 析构函数,释放资源,并把数组中的信息存进文件Public void wjf() 未缴费的学生的Private vector<Student>*stuList;学生信息的向量数组,用于保存所有学生的信息2 TeacherFile 类,主要用于对教工信息的操作Public TeacherFile() 构造函数Public voidadd(Teacher&s)将s添加到文件中Public void display() 依次显示所有的教师信息Public Teacher*getTeacher(string id) 得到编号为id的教师的对象指针Public ~TeacherFile() 析构函数,释放资源,并把数组中的信息存进文件Public v oid wjf() 未交费的教工人员Private Vector<Teacher>*teaLisr 教工的向量数组,用于保存所有教工的信息(3)Main.cpp函数属性注释void init() 新建一个学生或者教工的信息void select() 查询界面,根据用户的输入来显示用户想查询的信息void add() 信息的录入,录入学生或者教工的水电煤气信息void handed() 缴费,有学生或者教工缴费的时候调用此函数int mainMenu() 主菜单,显示一个菜单,返回用户的输入void work() 程序开始工作int main() 主函数,程序的入口(4)Student.cppClass Student:virtual public User函数属性注释Public Student():User(“”,””,0,0,0) 构造函数Public Student(string i,string n,Float w=0,float p=0,floatg=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.cppClass Teacher:virtual public User函数属性注释Public Teacher(string构造函数i,string n,float w=0,floatp=0,floatg=0):User(I,n,w,p,g)Public void display() 依次显示所有的教工信息Public float getMoney() 返回教工应缴的费用(6)User.cpp函数属性注释构造函数Public User(string i,stringn,floatw=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():voidStudent-freeWater:float-freePower:float-freeGas:float+display():void+getMoney():voidUser+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";#endifMain.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);}elsereturn ;}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();}elsereturn ;}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);}elsereturn ;}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_classclass 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_classclass 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;}}};#endifStudent.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;}};#endifTeacher.cpp#include"User.cpp"#include"Constant.h"#ifndef Teacher_class#define Teacher_classclass 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;return w+p+g-money;}};#endifUser.cpp#include<iostream>#include<iomanip>#include<string>using namespace std;#ifndef USER_CLASS#define USER_CLASSclass User{protected :string id;string name;float useWater;float usePower;float useGas;float money;public :User(string i,string n,float w=0,float p=0,float g=0) {id=i;name=n;useWater=w;usePower=p;useGas=g;money=0;}string getId(){return id;}string getName(){return name;}void setId(string i){id=i;}void setName(string n){name=n;}void setWater(float w){useWater=w;}void setPower(float p){usePower=p;}void setGas(float g){useGas=g;}float getWater(){return useWater;}virtual void display(){cout<<"|"<<setw(18)<<id<<"|"<<setw(8)<<name<<"|"<<setw(8)<<useWater<<"|"<<setw(8)<<usePower<<"|"<<setw(8)<<useGas<<"|"<<setw(8)<<getMoney()<<endl;}virtual void setMoney(float m){money +=m;}virtual float getMoney()=0;};#endif四.测试结果:界面一:欢迎界面界面二:程序功能表界面三:新建用户信界面四:信息查询界面五:信息的录入界面六:缴费五.实验心得:课程设计的过程中遇到了很多麻烦,虽然我早有心理准备,但还是令我伤透了脑筋,只怪自己平时看书太少,其实有很多东西在书上都可以找到答案的,可是还是有一些问题我实在没有办法解决,最终通过老师和同学们的努力解决了一个又一个的问题。
水电气费用管理系统c语言课程设计技术报告

课 程 设 计课程名称______________________ 题目名称______________________ 学生学院______________________ 专业班级______________________学 号______________________ 学生姓名______________________ 指导教师______________________2012 年 6月 6日C 语言程序设计课程设计水电气费用管理系统 自动化学院 电子信息科学与技术需求分析:设计题目:水电气费用管理系统设计内容:编程成立一个水电气费用管理系统,使其能对每一个月的水电气进行系统管理。
包括删除,增加用户,查询,缴费功能。
整个系统分为二个软件:主机和客户端。
主机负责计算,客户端面向用户。
系统功能:主机:接收每一个月的数据并处置。
把每一个月的数据写到文件等待客户端操作。
客户端:打开时初始化用户数据。
接收主机输送的数据,整合给用户。
提供删除用户功能。
增加用户。
查询最近三个月数据和缴费情形。
缴费。
退出时保留用户数据。
目录:客户端 (4)主函数 (4)总结 (8)流程图:源程序:客户端:主函数:#include ""#include ""#include ""#include "" ccount=0;strcpy(inittable[time].name,"0");inittable[time].pay=0;}write(head,inittable);/*--------------------------------分割线3------------------------------------------*/ name1(inittable);add(tableaccount);/*--------------------------------分割线3------------------------------------------*/ ame);fscanf(fp,"%2d",&inittable[i].account);fscanf(fp,"%13f",&inittable[i].pay);}fclose(fp);}void del(int tableaccount[MAX]){FILE *fp=NULL;fp=fopen("","r");ame);fprintf(fp,"%2d",table[i].account);fprintf(fp,"%",table[i].pay);fprintf(fp,"\n");}fclose(fp);}void add(int tableaccount[MAX]){int i;FILE *fp=NULL;fp=fopen("","w");//#include ""#include <>#include <>#include <>void main(){int n=0;int i;int ii;int j;int k;int rank;int sign;int del_flag;float num=-1;int num1=1;float sum;float cash[20]={0};char flag=65;sum=0;float x[20][4]={0};FILE *fp=NULL;FILE *fp1=NULL;FILE *fp2=NULL;system("color 04");printf("\n\t关闭主机为非法操作\n");while (1){fp1=fopen("","r+");if(fp1==NULL){printf("打开错误!");}rewind(fp1);fscanf(fp1,"%2d",&n);fclose(fp1);//srand((unsigned)time(NULL));x[0][0] = rand() % 100 +350;for (i=0;i<n;i++){Lab: x[i][0] = rand() % 100 +350;for (j=0;j<i;j++){// 比较一下,相同数则不要if (x[i][0] == x[j][0]) goto Lab;}}x[0][1] = rand() % 20 +30;for (i=0;i<n;i++){cab: x[i][1] = rand() % 20 +30;for (j=0;j<i;j++){// 比较一下,相同数则不要if (x[i][1] == x[j][1]) goto cab;}//printf("%", x[i][1]);}//printf("\n");x[0][2] = rand() % 20 +20;for (i=0;i<n;i++){Lcab: x[i][2] = rand() % 20 +20;for (j=0;j<i;j++){// 比较一下,相同数则不要if (x[i][2] == x[j][2]) goto Lcab;}//printf("%", x[i][2]);}//printf("\n");for (i=0;i<n;i++){sum=0;sum=sum+x[i][0]*+x[i][1]*+x[i][2]*;x[i][3]=sum;cash[i]=cash[i]+sum;}for(i=0;i<n;i++){printf("%",cash[i]);}printf("\n");for(i=0;i<20;i++)//time{Sleep (2000);fp1=fopen("","r+");if(fp1==NULL){printf("打开错误!");}rewind(fp1);fseek(fp1,-4L,SEEK_END);fscanf(fp1,"%2d",&rank);if(rank!=-1){for(j=rank;j<20;j++){cash[j-1]=cash[j];}fseek(fp1,-4L,SEEK_END);fprintf(fp1,"%2d",-1);}fp2=fopen("","w");if(fp2==NULL){printf("打开错误!");}for(ii=0;ii<n;ii++){fprintf(fp2,"%",cash[ii]);fprintf(fp2,"\n");}fclose(fp2);//fseek(fp1,-2L,SEEK_END);fscanf(fp1,"%2d",&sign);if(sign==-1){for(j=0;j<20;j++){cash[j]=0;}fseek(fp1,-2L,SEEK_END);fprintf(fp1,"%2d",1);}//fclose(fp1);}fp=fopen("","a");if(fp==NULL){printf("打开错误!");}fprintf(fp,"%",num);for (i=0;i<n;i++){for (j=0; j<4;j++){fprintf(fp,"%", x[i][j]);}fprintf(fp,"\n");}fprintf(fp,"%c",flag);flag++;if(flag==77){flag=65;}fclose(fp);}}总结:刚开始同意任务时,我还没学指针,结构体,文件操作。
简易水电费管理系统源程序代码

简易水电费管理系统源程序代码法一:#include<stdio.h>#include<string.h>#include<stdlib.h>struct member{char no[100];char name[20];char password[20];float wfee;float efee;}memb;void newadd(int n){ int t,i;fseek(fp,0,SEEK_END);printf(">>新添人数:");scanf("%d",&t);for(i=0;i<t;i++){ printf("新添第%d个成员:");scanf("%s %s %s %f %f",memb.no,,memb.password,memb.wfee,memb.efee); fwrite(&memb,sizeof(struct member),1,fp);}}void look(int n){ char a[100];printf(">>输入卡号:");scanf("%s",a);int i=0;rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)||memb.no==a) break;i++;}if(!feof(fp)){ printf(">>卡号:");printf("%s\n",memb.no);printf(">>姓名:");printf("%s\n",");printf(">>水费:");printf("%f\n",memb.wfee);printf(">>电费:");printf("%f\n",memb.efee);}elseprintf(">>查无此人\n");};void delete(int n){ char c[100];printf(">>删除的卡号:");scanf("%s," c);if((fp1=fopen("temp.bin","wb"))==NULL){printf(">>不能建立临时文件,无法删除\n");}rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)) break;if(memb.no!=c)fwrite(&memb,sizeof(struct member),1,fp1);}fclose(fp1);fclose(fp);remove("member.bin");rename("temp.bin","member.bin");fp=fopen("member.bin","rb++");};main(){ char a[100]; char b[20];FILE *fp;printf("欢迎进入水电费管理系统\n")int i=0,sel=1;if((fp=fopen("member.bin","wb++"))==NULL){ printf(">>不能建立member.bin文件\n");return(0);}while(sel!=0){ printf("| 1 | 2 | 3 | 4 |\n"); printf("| ------------------------------------------------------------ |\n"); printf("|新添成员|查找个人信息|删除成员|退出|\n); fseek(fp,0,SEEK_END);scanf("%d",&sel);switch(sel){ case 1:newadd(sel); break;clscr(); exit(0);case 2:printf("请输入您的卡号:");printf("%s",a);printf("请输入您的密码:");puts(b);while(strcmp(a,memb.no)==0&&strcmp(b,memb.password)==0)look(sel);printf("您的输入有误\n"); break;clscr();exit(0);case 3:delete(sel); break;clscr();exit(0);}法二:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<windows.h>#include<conio.h>struct member{char no[100];char name[20];char password[20];float wfee;float efee;}memb;void newadd(int n){ int t,i;FILE *fp;fp=fopen("e:\\member.bin","a");fseek(fp,0,SEEK_END);printf(">>新添人数:");scanf("%d",&t);for(i=0;i<t;i++){ printf("新添第%d个成员:",i+1);scanf("%s %s %s %f %f",memb.no,,memb.password,&memb.wfee,&memb.efee); fwrite(&memb,sizeof(struct member),1,fp);}fclose(fp);}void look(int n){ char a[100],b[20]; FILE *fp;int i;fp=fopen("e:\\member.bin","rb");if(fp==NULL) printf("****");printf(">>输入卡号:");scanf("%s",a);i=0;rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)||strcmp(memb.no,a)==0) break;i++;}if(!feof(fp)){ printf(">>卡号:");printf("%s\n",memb.no);printf(">>姓名:");printf("%s\n",);printf(">>水费:");printf("%f\n",memb.wfee);printf(">>电费:");printf("%f\n",memb.efee);}elseprintf(">>查无此人\n");getch();fclose(fp);}void dele(int n){ char c[100];FILE *fp,*fp1;fp=fopen("e:\\member.bin","rb");printf(">>删除的卡号:");scanf("%s" ,c);if((fp1=fopen("temp.bin","wb"))==NULL){printf(">>不能建立临时文件,无法删除\n");}rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)) break;if(strcmp(memb.no,c)!=0)fwrite(&memb,sizeof(struct member),1,fp1);} fclose(fp1);fclose(fp);remove("member.bin");rename("temp.bin","member.bin");fp=fopen("member.bin","rb+");}main(){ char a[100]; char b[20];int i=0,sel=1;FILE *fp;printf("欢迎进入水电费管理系统\n");if((fp=fopen("e:\\member.bin","wb"))==NULL){ printf(">>不能建立member.bin文件\n");return(0);}while(sel!=0){ printf("| 1 | 2 | 3 | 4 |\n"); printf("| ------------------------------------------------------------ |\n"); printf("|新添成员|查找个人信息|删除成员|退出|\n"); fseek(fp,0,SEEK_END);scanf("%d",&sel);printf("sel=%d\n",sel);switch(sel){ case 1:newadd(sel);system("cls"); break;case 2:look(sel);system("cls"); break;case 3:dele(sel);system("cls");break;}}}。
小区水电费管理系统

#include〈stdio。
h〉#include<string。
h〉#include<stdlib。
h>#define w 1.8/*水1。
8元/吨*/#define e 0.5/*电0。
5元/度*/struct user{char name[10],ID[20];/*用户的姓名和身份证号码*/double water,electricity;/*用水(吨)、电(度)量*/double monney;/*总共的水电费用*/}u[100];/*用户最大容量为100*/void main(){int choice=0;GOTO7:system(”cls”);printf("\t\t\t—--————-——————-—-——-—---——-———----—\n”);printf(”\t\t\t|欢迎进入水电费管理系统^_^ |\n");printf(”\t\t\t--—-——-——--—--—-——--—-———-——-—--———\n\n\n”);printf("\n\t\t\t1。
住户管理\n\t\t\t2.单价设置\n\t\t\t3。
费用收取\n\t\t\t4。
费用查询统计及单据显示\n\t\t\t5。
退出\n”);printf(”\n\t\t\t请输入您的选择:”);GOTO8:scanf(”%d”,&choice);switch(choice){case 1:m_user();system(”pause”);goto GOTO7;case 2:p_she();system(”pause");goto GOTO7;case 3:p_shou();system(”pause”);goto GOTO7;case 4:p_cha();system(”pause”);goto GOTO7;case 5:break;default:printf(”\n您的输入有误,请重新输入:");goto GOTO8;}/*住户管理*/void m_user(){int choice=0;GOTO3:system(”cls”);printf(”\t\t\t-———-——-——--——--—————\n”);printf(”\t\t\t|住户管理^_^ |\n");printf("\t\t\t——————-—---—---————-—\n\n\n");printf(”\n\t\t\t1.住户基本数据管理\n\t\t\t2.缴费状态查询\n\t\t\t3。
住户水电费管理程序设计综合实验设计

xx大学【实验目的和要求】:1、利用所学过的C语言编程的基本知识如综合顺序、分支、循环结构和函数,以及数组、指针、结构体和共用体、文件等进行编程,较全面的掌握C语言的知识。
2、初步掌握输入、输出、查找、排序的编程方法。
3、逐步掌握C语言编程基本方法和技能。
【实验内容】:编写程序,从键盘输入某宿舍楼6家用户某月的水电消耗量及水费和电费标准,计算各户应缴纳的水费和电费。
(1)水费标准为:1.5元/吨,电费标准为:0.5元/度.。
将信息组织在文件input.dat中:1.5 0.5101 5 150102 4 90103 4 120104 3 78105 5 60106 6 105(2)分别计算各户应缴纳的水费和电费及应缴纳的水费和电费的总和。
(3)汇总全部住户水费电费的总和。
(4)将结果写入文件charge.dat中。
【源程序】//王灵艳0900820305#include<stdio.h>#define NULL 0FILE *fp1,*fp2;struct yong_hu{float price[2];int addr[5];int water[6];int elect[6];}yonghu[6];struct fei_yong{int addr[5];int water[6];float water_1[6];int elect[6];float elect_1[6];float sum[6];float total[5];}fei_yong [6];void main(){void input();void output();int i,j;float a,b,c[5]={0.0};input();fp1=fopen("input.dat","rb");for(i=0;i<6;i++){fread(&yonghu[i],sizeof(struct yong_hu),1,fp1);*fei_yong[i].water_1=(*yonghu[0].price)*(*yonghu[i].water);a=*fei_yong[i].water_1;*fei_yong[i].elect_1=(*yonghu[1].price)*(*yonghu[i].elect);b=*fei_yong[i].elect_1;*fei_yong[i].sum=a+b;c[0]+=*yonghu[i].water;c[1]+=a;c[2]+=*yonghu[i].elect;c[3]+=b;c[4]+=*fei_yong[i].sum;for(j=0;j<5;j++)*fei_yong[j].total=c[j];*fei_yong[i].addr=*yonghu[i].addr;*fei_yong[i].water=*yonghu[i].water;*fei_yong[i].elect=*yonghu[i].elect;}output();printf("住户地址水耗(吨) 水费(元) 电耗(度) 电费(元) 合计(元)\n");for(i=0;i<6;i++)printf("%3d %8d %8.1f %5d %7.1f %7.1f\n",*yonghu[i].addr,*fei_yong [i].water,*fei_yong [i].water_1,*fei_yong [i].elect,*fei_yong [i].elect_1,*fei_yong [i].sum);printf("Total");for(i=0;i<5;i++)printf("%9.1f",*fei_yong[i].total);printf("\n");}void input(){int i;printf("Please enter the number:\n");scanf("%f%f",&yonghu[0].price,&yonghu[1].price);for(i=0;i<6;i++){scanf("%d%d%d",yonghu[i].addr,yonghu[i].water,yonghu[i].elect);}if((fp1=fopen("input.dat","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<6;i++)if(fwrite(&yonghu[i],sizeof(struct yong_hu),1,fp1));elseprintf("file write error\n");fclose(fp1);}void output(){int i;if((fp2=fopen("charge.dat","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<6;i++)if(fwrite(&fei_yong [i],sizeof(struct fei_yong ),1,fp2));elseprintf("file write error\n");fclose(fp2);}【运行结果贴图】。
C课程设计高校水电费管理系统

i n c l u d e<i o s t r e a m>include<string>include<fstream>include<iomanip>const int TMAX=50;using namespace std;class Person{public:int num;//编号string name;//姓名string sex;//性别int age;//年龄double water;//用水量double power;//用电量public:Personint n=0,string nm=" ",string s=" ",int a=0,double w=0.0,double p=0.0//初始化{num = n;name = nm;sex = s;age = a;water = w;power = p;};virtual void Input{};virtual void Output{};int GetNum{return num;}//获取编号string GetName{return name;}//获取姓名double GetWater{return water;}//获取用水量double GetPower{return power;}//获取用电量};class Teacher:virtual public Person //教师{public:string depart;//工作部门double watermoney;//教师水费double powermoney;//教师电费int choice1;int choice2;public:Teacherint n=0,string nm=" ",string s="男",int a=0,string d="普通教师",double w=0.0, double p=0.0, double wm=0.0, double pm=0.0:Personn,nm,s,a,w,p,departd//构造函数{watermoney=wm;powermoney=pm;};void Input{cout<<"请输入编号:"<<endl;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请选择性别:";cout<<"1.男 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入年龄:"<<endl;cin>>age;cout<<"请选择工作部门:"<<endl;cout<<setw10<<"1.普通教师"<<setw10<<"2.教务处"<<setw10<<"3.财政处"<<setw10<<"4.创业办公室"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice1;switchchoice1{case 1:depart="普通教师";break;case 2:depart="教务处";break;case 3:depart="财政处";break;case 4:depart="创业办公室";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入本月的用水量"<<endl;cin>>water;cout<<"请输入本月的用电量"<<endl;cin>>power;watermoney=0.5water;powermoney=0.5power;}void Output{cout<<" "<<num<<" "<<name<<" "<<sex<<" "<<age<<" "<<depart<<" "<<water<<setw10<<power<<" "<<setw10<<watermoney<<setw10<<powermoney<<endl;}};class Student:virtual public Person //学生{public:string bj;//学生班级double watermoney;//学生水费double powermoney;//学生电费int choice2;public:Studentint n=0,string nm=" ",string s="男",int a=0,string z=" ",double w=0.0, double p=0.0, double wm=0.0, double pm=0.0:Personn,nm,s,a,w,p,bjz//构造函数{watermoney=wm;powermoney=pm;};void Input{cout<<"请输入学号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请选择性别:";cout<<"1.男 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入年龄:"<<endl;cin>>age;cout<<"请选择所在班级:"<<endl;cout<<setw10<<"1.计科1班"<<setw10<<"2.计科2班"<<setw10<<"3.计科3班"<<setw10<<"4.计科4班"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice1;switchchoice1{case 1:bj="计科1班";break;case 2:bj="计科2班";break;case 3:bj="计科3班";break;case 4:bj="计科4班";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入本月的用水量"<<endl;cin>>water;cout<<"请输入本月的用电量"<<endl;cin>>power;watermoney=0.5water-10;powermoney=0.5power-10;}void Output{cout<<" "<<num<<" "<<name<<" "<<sex<<" "<<age<<" "<<bj<<setw10<<power<<" "<<setw10<<watermoney<<setw10<<powermoney<<endl;}};class Stu_Manage{Student StuTMAX; //TMAX为常量,为数组中可存储的学生记录的最大数;int top; //top表示当前系统中存储的记录个数;public:Stu_Manage{top=0;} //初始时记录的个数为0,所以设置top=0;void Add; //实现该类记录的添加;void Show; //实现该类所有记录的显示;void Search; //实现该类记录的查询;void Edit; //实现该类记录的修改;void Delete; //实现该类记录的删除;void Total; //实现该类记录的统计;void Save; //将该类记录保存到文件;void Read; //可从文件中将记录读取到该类的数组中;};void Stu_Manage::Add//添加成员{iftop>=TMAX{cout<<"用户已满"<<endl;return;}Student s;cout<<"输入新添加的人员的信息"<<endl;s.Input;forint i=0;i<top;i++if s.GetNum==Stui.GetNum{cout<<"该编号的人员已存在"<<endl;return;}Stutop=s;top=top+1;cout<<"添加成功"<<endl;}void Stu_Manage::Show//显示所有记录{iftop==0{cout<<"无数据"<<endl;return;}cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++Stui.Output;}void Stu_Manage::Search//查询{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int choice;cout<<"请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询"<<endl;cin>>choice;switchchoice{case 1:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifStui.GetName==name{Stui.Output;}}return;cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的水量:"<<endl;double water;cin>>water;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<endl;forint i=0;i<top;i++{ifStui.GetWater==water{Stui.Output;}}return;cout<<"查无此人"<<endl;}break;case 3:{cout<<"请输入要查找的电量:"<<endl;double power;cin>>power;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifStui.GetPower==power{Stui.Output;}}return;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void Stu_Manage::Edit//更改信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int num;cout<<"请输入要查找的教编号:"<<endl;cin>>num;forint i=0;i<top;i++{ifStui.GetNum==num{cout<<"请对这位学生的信息进行修改:"<<endl;Stui.Input;}}cout<<"查无此人"<<endl;}void Stu_Manage::Delete//删除信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;int choice;cin>>choice;switchchoice{case 1:{cout<<"请输入编号:";int num;cin>>num;forint i=0;i<top;i++{ifnum==Stui.num{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++Stuj=Stuj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++Stuj=Stuj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;}; break;default:cout<<"没有此项,失败:"<<endl;break;}}void Stu_Manage::Total//数据统计{cout<<"1 学生所用水电量的总量 2 学生总的水电费 "<<endl;int choice;cout<<"请输入你的选择"<<endl;cin>>choice;switchchoice{case 1:{double zwater=0.0, zpower=0.0;forint i=0; i<top; i++{zwater+=Stui.water;zpower+=Stui.power;}cout<<"学生的总用水量为"<<zwater<<endl;cout<<"学生的总用电量为"<<zpower<<endl;}break;case 2:{double zwatermoney=0.0, zpowermoney=0.0;forint i=0; i<top; i++{zpowermoney+=Stui.powermoney;zwatermoney+=Stui.watermoney;}cout<<"教师的总水费为"<<zwatermoney<<endl;cout<<"教师的总电费为"<<zpowermoney<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void Stu_Manage::Save//保存学生信息ofstream out"学生.txt",ios::out;ifout{cout<<"打开失败"<<endl;return;}cout<<"打开成功"<<endl;forint i=0;i<top;i++{out<<Stui.num<<" "<<<<" "<<Stui.sex<<" "<<Stui.age<<" "<<Stui.bj<<" "<<Stui.water<<" "<<Stui.power<<" "<<Stui.watermoney<<" "<<Stui.powermoney<<" "<<endl;}cout<<"写入成功"<<endl;out.close;}void Stu_Manage::Read//读取学生文件{ifstream in"学生.txt",ios::in;ifin{cout<<"打开失败"<<endl;return;}int i=0;whilein>>Stui.num>>>>Stui.sex>>Stui.age>>Stui.bj>>Stui.water>>Stui.power>>Stui.watermoney>>Stui.powermoney{i++;top++;}cout<<"打开成功"<<endl;in.close;}class Tea_Manage{Teacher TeaTMAX; //TMAX为常量,为数组中可存储的教师记录的最大数;int top; //top表示当前系统中存储的记录个数;public:Tea_Manage{top=0;} //初始时记录的个数为0,所以设置top=0;void Show; //实现该类所有记录的显示;void Search; //实现该类记录的查询;void Edit; //实现该类记录的修改;void Delete; //实现该类记录的删除;void Total; //实现该类记录的统计;void Save; //将该类记录保存到文件;void Read; //可从文件中将记录读取到该类的数组中;};void Tea_Manage::Add//添加成员{iftop>=TMAX{cout<<"用户已满"<<endl;return;}Teacher t;cout<<"输入新添加的人员的信息"<<endl;t.Input;forint i=0;i<top;i++if t.GetNum==Teai.GetNum{cout<<"该编号的人员已存在"<<endl;return;}Teatop=t;top=top+1;cout<<"添加成功"<<endl;}void Tea_Manage::Show//显示所有记录{iftop==0{cout<<"无数据"<<endl;return;}cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++Teai.Output;}void Tea_Manage::Search//查询{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;int choice;cout<<"请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询"<<endl;cin>>choice;switchchoice{case 1:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifTeai.GetName==name{Teai.Output;}}return;cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的水量:"<<endl;double water;cin>>water;cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifTeai.GetWater==water{Teai.Output;}}return;cout<<"查无此人"<<endl;}break;case 3:{cout<<"请输入要查找的电量:"<<endl;double power;cin>>power;cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifTeai.GetPower==power{Teai.Output;}}return;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void Tea_Manage::Edit//更改信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int num;cout<<"请输入要查找的教编号:"<<endl;cin>>num;forint i=0;i<top;i++{ifTeai.GetNum==num{cout<<"请对这位教师的信息进行修改:"<<endl;Teai.Input;cout<<"修改成功"<<endl;return;}}cout<<"查无此人"<<endl;}void Tea_Manage::Delete//删除信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;int choice;cin>>choice;switchchoice{case 1:{cout<<"请输入编号:";int num;cin>>num;forint i=0;i<top;i++{ifnum==Teai.num{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++Teaj=Teaj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++Teaj=Teaj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;}; break;default:cout<<"没有此项,失败:"<<endl;break;}}void Tea_Manage::Total//数据统计{cout<<"1 教师所用水电量的总量 2 教师总的水电费 "<<endl;int choice;cout<<"请输入你的选择"<<endl;cin>>choice;switchchoice{case 1:{double zwater=0.0, zpower=0.0;forint i=0; i<top; i++{zwater+=Teai.water;zpower+=Teai.power;}cout<<"教师的总用水量为"<<zwater<<endl;cout<<"教师的总用电量为"<<zpower<<endl;}break;case 2:{double zwatermoney=0.0, zpowermoney=0.0;forint i=0;i<top;i++{zwatermoney+=Teai.watermoney;zpowermoney+=Teai.powermoney;}cout<<"教师的总水费为"<<zwatermoney<<endl;cout<<"教师的总电费为"<<zpowermoney<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void Tea_Manage::Save//保存教师信息{ofstream out"教师.txt",ios::out;ifout{cout<<"打开失败"<<endl;return;}cout<<"打开成功"<<endl;forint i=0;i<top;i++{out<<Teai.num<<" "<<<<" "<<Teai.sex<<" "<<Teai.age<<" "<<Teai.depart<<" "<<Teai.water<<" "<<Teai.power<<" "<<Teai.watermoney<<" "<<Teai.powermoney<<" "<<endl;}cout<<"写入成功"<<endl;out.close;}void Tea_Manage::Read//读取教师文件{ifstream in"教师.txt",ios::in;ifin{cout<<"打开失败"<<endl;return;}int i=0;whilein>>Teai.num>>>>Teai.sex>>Teai.age>>Teai.depart>>Teai.water>>Teai.power>>Teai.watermoney>>Teai.powermoney{i++;top++;}cout<<"打开成功"<<endl;in.close;}void TeaMenu;void StuMenu;int main{int choice;do{cout<<"\n============================================================================= ===\n"<<endl;cout<<" 高校水电费管理系统 \n"<<endl;cout<<"\n"<<endl;cout<<" \t1=>教师水电费管理 \t2=>学生水电费管理 \t0=>退出系统 "<<endl;cout<<"\n"<<endl;cout<<"\n请输入您的选择:";cin>>choice;switchchoice{case 1:TeaMenu;break;case 2:StuMenu;break;case 0:cout<<"\n您已安全退出系统."<<endl;break;default:cout<<"\n没有此选项.请重选."<<endl;break;}}whilechoice=0;cout<<"\n------------------------------欢迎您下次再使用---------------------------------"<<endl;return 0;}void TeaMenu{Tea_Manage t;int choice;whilechoice=0{cout<<"\n============================================================================= ===\n"<<endl;cout<< " \n 教师水电费管理"<<endl;cout<<"\n"<<endl;cout<<" 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出 "<<endl;cout<<"\n"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{case 1:t.Add;break;case 2:t.Search;break;case 3:t.Edit;break;case 4:t.Delete;break;case 5:t.Show;break;case 6:t.Save;break;case 7:t.Read;break;case 8:t.Total;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}void StuMenu{Stu_Manage s;int choice;whilechoice=0{cout<<"\n============================================================================= ===\n"<<endl;cout<<" \n 学生水电费管理"<<endl;cout<<"\n"<<endl;cout<<" 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出 "<<endl;cout<<"\n"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{case 1:s.Add;break;case 2:s.Search;break;case 3:s.Edit;break;case 4:s.Delete;break;case 5:s.Show;break;case 6:s.Save;break;case 7:s.Read;break;case 8:s.Total;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易水电费管理系统源程序代码法一:#include<stdio.h>#include<string.h>#include<stdlib.h>struct member{char no[100];char name[20];char password[20];float wfee;float efee;}memb;void newadd(int n){ int t,i;fseek(fp,0,SEEK_END);printf(">>新添人数:");scanf("%d",&t);for(i=0;i<t;i++){ printf("新添第%d个成员:");scanf("%s %s %s %f %f",memb.no,,memb.password,memb.wfee,memb.efee); fwrite(&memb,sizeof(struct member),1,fp);}}void look(int n){ char a[100];printf(">>输入卡号:");scanf("%s",a);int i=0;rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)||memb.no==a) break;i++;}if(!feof(fp)){ printf(">>卡号:");printf("%s\n",memb.no);printf(">>姓名:");printf("%s\n",");printf(">>水费:");printf("%f\n",memb.wfee);printf(">>电费:");printf("%f\n",memb.efee);}elseprintf(">>查无此人\n");};void delete(int n){ char c[100];printf(">>删除的卡号:");scanf("%s," c);if((fp1=fopen("temp.bin","wb"))==NULL){printf(">>不能建立临时文件,无法删除\n");}rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)) break;if(memb.no!=c)fwrite(&memb,sizeof(struct member),1,fp1);}fclose(fp1);fclose(fp);remove("member.bin");rename("temp.bin","member.bin");fp=fopen("member.bin","rb++");};main(){ char a[100]; char b[20];FILE *fp;printf("欢迎进入水电费管理系统\n")int i=0,sel=1;if((fp=fopen("member.bin","wb++"))==NULL){ printf(">>不能建立member.bin文件\n");return(0);}while(sel!=0){ printf("| 1 | 2 | 3 | 4 |\n"); printf("| ------------------------------------------------------------ |\n"); printf("|新添成员|查找个人信息|删除成员|退出|\n); fseek(fp,0,SEEK_END);scanf("%d",&sel);switch(sel){ case 1:newadd(sel); break;clscr(); exit(0);case 2:printf("请输入您的卡号:");printf("%s",a);printf("请输入您的密码:");puts(b);while(strcmp(a,memb.no)==0&&strcmp(b,memb.password)==0)look(sel);printf("您的输入有误\n"); break;clscr();exit(0);case 3:delete(sel); break;clscr();exit(0);}法二:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<windows.h>#include<conio.h>struct member{char no[100];char name[20];char password[20];float wfee;float efee;}memb;void newadd(int n){ int t,i;FILE *fp;fp=fopen("e:\\member.bin","a");fseek(fp,0,SEEK_END);printf(">>新添人数:");scanf("%d",&t);for(i=0;i<t;i++){ printf("新添第%d个成员:",i+1);scanf("%s %s %s %f %f",memb.no,,memb.password,&memb.wfee,&memb.efee); fwrite(&memb,sizeof(struct member),1,fp);}fclose(fp);}void look(int n){ char a[100],b[20]; FILE *fp;int i;fp=fopen("e:\\member.bin","rb");if(fp==NULL) printf("****");printf(">>输入卡号:");scanf("%s",a);i=0;rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)||strcmp(memb.no,a)==0) break;i++;}if(!feof(fp)){ printf(">>卡号:");printf("%s\n",memb.no);printf(">>姓名:");printf("%s\n",);printf(">>水费:");printf("%f\n",memb.wfee);printf(">>电费:");printf("%f\n",memb.efee);}elseprintf(">>查无此人\n");getch();fclose(fp);}void dele(int n){ char c[100];FILE *fp,*fp1;fp=fopen("e:\\member.bin","rb");printf(">>删除的卡号:");scanf("%s" ,c);if((fp1=fopen("temp.bin","wb"))==NULL){printf(">>不能建立临时文件,无法删除\n");}rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)) break;if(strcmp(memb.no,c)!=0)fwrite(&memb,sizeof(struct member),1,fp1);} fclose(fp1);fclose(fp);remove("member.bin");rename("temp.bin","member.bin");fp=fopen("member.bin","rb+");}main(){ char a[100]; char b[20];int i=0,sel=1;FILE *fp;printf("欢迎进入水电费管理系统\n");if((fp=fopen("e:\\member.bin","wb"))==NULL){ printf(">>不能建立member.bin文件\n");return(0);}while(sel!=0){ printf("| 1 | 2 | 3 | 4 |\n"); printf("| ------------------------------------------------------------ |\n"); printf("|新添成员|查找个人信息|删除成员|退出|\n"); fseek(fp,0,SEEK_END);scanf("%d",&sel);printf("sel=%d\n",sel);switch(sel){ case 1:newadd(sel);system("cls"); break;case 2:look(sel);system("cls"); break;case 3:dele(sel);system("cls");break;}}}。