1、C 语言水电费管理系统#include#include#include#define N 100#define w 1.8 / 水 1.8 元/吨#define e 0.5 / 电 0.5 元/struct Residentinfint number; / 住户门牌号char name20; / 户主姓名float * wanum,* elnum; / 用水(吨)、电( 度)表示数float amonney,* emoney; / 总共的水电费用,每月的水电费用 char * time; / 收费时间ReN;int num; / 数据个数Residentinf *p; / 指向结构体的指针vo
2、id AdddataFunc();void StatisdataFunc();void QuerydataFunc();void SavedataFunc();void SortdataFunc();void ModifydataFunc();void ScandataFunc();void CaldataFunc();/ 主函数void main() int sele;sele=1;while(sele)system(“cls“); / 清屏printf(“* Main *“);printf(“* *“);printf(“* 1: 住户登记 *“);printf(“* *“);printf(
3、“* 2: 统计 *“);printf(“* *“);printf(“* 3: 排序 *“);printf(“* *“);printf(“* 4: 删除 *“);printf(“* *“);printf(“* 5: 查询 *“);printf(“* *“);printf(“* 6: 修改 *“);printf(“* *“);printf(“* 7: 退出 *“);printf(“*“); printf(“Choose Function (1 - 7) bb“); scanf(“%d“,switch(sele)case 1:AdddataFunc();break;case 2:Statisdat
4、aFunc();break;case 3:SortdataFunc();break;case 4:DeletedataFunc();break;case 5: QuerydataFunc();break;case 6:ModifydataFunc();break;case 7:exit(0);printf(“nPlease press any key to continue“);getchar();getchar();void ScandataFunc()int i,j;FILE *fp;fp=fopen(“Data.txt“,“r“);for(i=0;inumber,(p+i)-name,f
5、or(j=0;jwanum,fclose(fp);void CaldataFunc()int i,j;fp=fopen(“Data.txt“,“w“);for(i=0;iemoneyj=(p+i)-wanumj-(p+i)-wanumj-1)*w+(p+i)-elnumj-(p+i)-elnumj-i)*e;(p+i)-amoney=0;(p+i)-amoney+=(p+i)-emoney;SavedataFunc()void SavedataFunc()FILE*fp;fp=fopen(“Data.txt“,“w“);int i,j;for(i=0;inumber,(p+i)-name,(p
6、+i)-amoney);for(j=0;jwanum,(p+i)-elnum,(p+i)-emoney,(p+i)-time);fclose(fp);void AdddataFunc()int n,i;Re re;printf(“请输入新用户信息“);system(“cls“);for(i=0;inumber=re.number;printf(“nttname:“);scanf(“%s“,re.name);strcpy(p+i)-name,re.name);for(j=0;jwanum=re.wanum;printf(“nttelnum:“);scanf(“%d“,(p+i)-elnum=re
7、.elnum;printf(“nttttime:“);scanf(“%s“,re.timej);strcpy(p+i)-time,re.time);printf(“n 登记完毕 !n“);break;SavedataFunc();void SortdataFunc()int i,j;Re t;for(i=0;inumbernumber)t=(p+i);(p+i)=(p+j);(p+j)=t;SavedataFunc();void QuerydataFunc()int i,n,j;Re re;system(“cls“);puts(“ttt*查询*n“);puts(“ttt* *n“);puts(
8、“ttt* 1.住户门牌号 *n“);puts(“ttt* 2.户主姓名 *n“);puts(“ttt* 3.日期 *n“);puts(“ttt*n“);printf(“您想通过第 种方式查询?bb“);scanf(“%d“,switch(n)case 1:printf(“住户门牌号:“);scanf(“%d“,for(i=0;inumber=re.number)break;printf(“nt 住户门牌号:%dnt 户主姓名:%snt 总费用:%d“,(p+i)-number,(p+i)-name,(p+i)-amoney);for(j=0;jwanumj,(p+i)-elnumj,(p+i
9、)-emoneyj);break;case 2:printf(“姓名:“);scanf(“%s“,re.name);for(i=0;iname,re.name)=0)break;printf(“nt 住户门牌号:%dnt 户主姓名:%snt 总费用:%d“,(p+i)-number,(p+i)-name,(p+i)-amoney);for(j=0;jwanumj,(p+i)-elnumj,(p+i)-emoneyj);break;case 4:printf(“日期:“);scanf(“%s“,re.time);for(i=0;itimej,re.timej)=0)break;printf(“n
10、t 住户门牌号:%dnt 户主姓名:%s“,(p+i)-number,(p+i)-name);for(j=0;jwanumj,(p+i)-elnumj,(p+i)-emoneyj);void DeleteFunc()int i,j,m;printf(“删除的住户门牌号为: bb“);scanf(“%d“,for(i=0;inumber=m)strcpy(p+i)-name,(p+j+1)-name);(p+i)-amoney=(p+i+1)-amoney;for(j=0;jwanumj=(p+i+1)-wanumj+1;(p+i)-elnumj=(p+i+1)-elnumj+1;strcpy(p+i)-timej,(p+i+1)-time(j+1);SavedataFunc();