C语言水电费管理系统
C课程设计高校水电费管理系统

# i n c l u d e < iostream>#include<string>#include<fstream>#include<iomanip>constintTMAX=50;usingnamespacestd;classPerson{public:intn um;2.女)"<<e ndl;cout«"请输入你的选择"<<endl;cin>>choice2;switch(choice2){case1:sex='男”;break;case2:sex='女”;break;default:cout<<"输入错误。
"<<endl;break;}coutvv"请输入年龄:"<<e ndl;cin>>age;cout«"请选择工作部门:"<<e ndl;cout<vsetw(10)vv"1.普通教师"<<setw(10)vv"2.教务处"<<setw(10)vv"3. 财政处"<<setw(10)<<"4. 创业办公室"<<endl;cout«"请输入你的选择"<<endl;cin>>choice1;switch(choice1){case1:depart=普通教师";break;case2:depart=教务处";break;case3:depart=财政处";break; case4:depart二创业办公室";break;default:cout<<"输入错误。
水电费充缴费系统(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语言课程设计技术报告

课 程 设 计课程名称______________________ 题目名称______________________ 学生学院______________________ 专业班级______________________学 号______________________ 学生姓名______________________ 指导教师______________________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;}}}。
住户水电费管理程序设计综合实验设计

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;}}}。
c语言编亏一个月度收费系统,功能包括计算电费、水费、燃气费。

c语言编亏一个月度收费系统,功能包括计算电费、水费、燃气费。
1. 首先确定需要输入的数据。
根据收费系统的功能,输入数据应该包括电费、水费、燃气费的使用量。
这些信息可以通过键盘输入,或者从文件中读取。
2. 定义变量。
根据上一步确定的需要输入的数据,定义相关的变量,如电费、水费、燃气费的使用量变量。
还需要定义一些常量,如电费、水费、燃气费的单价。
3. 计算费用。
根据上一步定义的变量和常量,计算出电费、水费、燃气费的总量和总费用。
需要注意的是,在计算时需要判断输入的数据是否合法(如使用量是否为正数,是否超出了合理范围等),避免出现计算错误。
4. 输出结果。
将计算出来的费用输出到屏幕上,或者写入文件中。
5. 完善用户交互界面。
可以加入菜单、选择功能等,使用户操作更加方便。
下面是一份简单的代码示例,仅供参考:#include <stdio.h>// 定义电费、水费、燃气费的单价常量#define ELECTRIC_PRICE 0.5#define WATER_PRICE 1.2#define GAS_PRICE 2.0int main() {// 定义电费、水费、燃气费的使用量变量float electric, water, gas;// 输入电费、水费、燃气费的使用量printf("请输入电费使用量(度):");scanf("%f", &electric);printf("请输入水费使用量(吨):");scanf("%f", &water);printf("请输入燃气费使用量(立方米):");scanf("%f", &gas);// 计算费用float electricFee = electric * ELECTRIC_PRICE;float waterFee = water * WATER_PRICE;float gasFee = gas * GAS_PRICE;float totalFee = electricFee + waterFee + gasFee;// 输出费用printf("电费:%f 元\n", electricFee);printf("水费:%f 元\n", waterFee);printf("燃气费:%f 元\n", gasFee);printf("总费用:%f 元\n", totalFee);return 0;}当然,这只是一个简单示例,如果实际使用时还需要加入其他功能或优化代码,可以根据实际需要进行修改。
C++课程设计报告高校水电费管理系统

青岛理工大学C ++面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名:* * *班级* * * * 学号:20 13 0 7 * * * 题目:高校水电费管理系统设计起迄日期:_ 2 0 1 5 . 6 . 2 9 ~ 2 0 1 5 . 7 . 10设计地点:计算机学院机房指导教师:完成日期 : 2 01 5 年 7 月 1 0 日《C++面向对象课程设计》任务书题目9“高校水电费管理系统设计”1、问题描述住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。
教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。
能计算出学生和教工每月所要交的电费和水费。
定义一个人员类,实现学生和教工共同的信息和行为。
2、功能要求( 1 )添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
( 2 )查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
( 3 )显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据一行。
( 4 )编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
( 5 )删除功能:主要实现对已添加的学生或教工记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。
( 6 )统计功能:能根据多种参数进行统计。
能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。
( 7 )保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
( 8 )读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
( 9 )计算电费和水费。
学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。
3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:( 1 )应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;( 2 )分析系统中的各个实体及它们之间的关系;( 3 )根据问题描述,设计系统的类层次;( 4 )完成类层次中各个类的描述;( 5 )完成类中各个成员函数的定义;( 6 )完成系统的应用模块;( 7 )功能调试;( 8 )完成系统总结报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言水电费管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
#define w 1.8 // 水1.8元/吨
#define e 0.5 // 电0.5元/
struct Residentinf
printf("*********** Main ***********");
printf("* *");
printf("* 1: 住户登记*");
printf("* *");
printf("* 2: 统计*");
printf("* *");
printf("* 3: 排序*");
printf("* *");
printf("* 4: 删除*");
printf("* *");
printf("* 5: 查询*");
printf("* *");
printf("* 6: 修改*");
printf("* *");
printf("* 7: 退出*");
printf("****************************");
printf("Choose Function (1 - 7) [ ]\b\b");
scanf("%d",&sele);
switch(sele)
{
int i,j;
FILE *fp;
fp=fopen("Data.txt","r");
for(i=0;i<N;i++)
{
fscanf(fp,"%d%s%d",&(p+i)->number,(p+i)->name,&(p+i)->amoney);
for(j=0;j<100;j++)
fscanf(fp,"%d%d%d%s",&(p+i)->wanum,&(p+i)->elnum,&(p+i)->emoney,(p+i)->time);
}
fclose(fp);
}
void CaldataFunc()
{
int i,j;
fp=fopen("Data.txt","w");
for(i=0;i<N;i++)
for(j=1;j<100;j++)
{
void AdddataFunc()
{
int n,i;
Re re;
printf("请输入新用户信息");
system("cls");
for(i=0;i<N;i++)
{
printf("\n\t\tnumber:");
scanf("%d",&re.number);
(p+i)->number=re.number;
printf("\n\t\tname:");
scanf("%s",);
strcpy((p+i)->name,);
for(j=0;j<100;j++)
{
printf("\n\t\twanum:");
scanf("%d",&re.wanum[j]);
(p+i)->wanum=re.wanum;
printf("\n\t\telnum:");
void QuerydataFunc()
{
int i,n,j;
Re re;
system("cls");
puts("\t\t\t***************查询***************\n");
puts("\t\t\t* *\n");
puts("\t\t\t* 1.住户门牌号*\n");
puts("\t\t\t* 2.户主姓名*\n");
puts("\t\t\t* 3.日期*\n");
puts("\t\t\t**********************************\n");
printf("您想通过第[ ]种方式查询?\b\b");
scanf("%d",&n);
switch(n)
{
case 1:
{
printf("住户门牌号:");
scanf("%d",&re.number);
for(i=0;i<N;i++)
费
费
费
费
for(i=0;i<N;i++)
for(j=0;j<100;j++)
if(strcmp((p+i)->time[j],re.time[j])==0)break;
printf("\n\t住户门牌号:%d\n\t户主姓名:%s",(p+i)->number,(p+i)->name);
for(j=0;j<100;j++)
printf("\n\t月用水量:%d\n\t月用电量:%d\n\t月费用:%d",(p+i)->wanum[j],(p+i)->elnum[j],(p+i)->emoney[j]);
}
}
}
void DeleteFunc()
{
int i,j,m;
printf("删除的住户门牌号为:[ ]\b\b");
scanf("%d",&m);
for(i=0;i<N;i++)
if((p+i)->number==m)
{
strcpy((p+i)->name,(p+j+1)->name);
(p+i)->amoney=(p+i+1)->amoney;。