#include #include #define N 100 #define w 1.8 #define e 0.5 struct Residentinf { int number; char name[20]; float * wanum,* elnum; float amonney,* emoney; char * time; // 水1.8元/吨 // 电0.5元/ // 住户门牌号 // 户主姓名 // 用水(吨)、电(度)表示数 // 总共的水电费用,每月的水电费用// 收费时间 }Re[N]; int num; // 数据个数 Residentinf *p; // 指向结构体的指针 void 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(\"* printf(\"* printf(\"* printf(\"* printf(\"* printf(\"* printf(\"* printf(\"* printf(\"* printf(\"* 1: 住户登记 2: 统计 3: 排序 4: 删除 5: 查询 *\"); *\"); *\"); *\"); *\"); *\"); *\"); *\"); *\"); *\"); printf(\"* 6: 修改 *\"); printf(\"* *\"); printf(\"* 7: 退出 *\"); printf(\"****************************\"); printf(\"Choose Function (1 - 7) [ ]\\b\\b\"); scanf(\"%d\ switch(sele) { case 1: AdddataFunc();break; case 2: StatisdataFunc();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\ for(i=0;i fscanf(fp,\"%d%s%d\ for(j=0;j<100;j++) fscanf(fp,\"%d%d%d%s\+i)->time); } fclose(fp); } void CaldataFunc() { int i,j; fp=fopen(\"Data.txt\ for(i=0;i { (p+i)->emoney[j]=((p+i)->wanum[j]-(p+i)->wanum[j-1])*w+((p+i)->elnum[j]-(p+i)->elnum[j-i])*e; (p+i)->amoney=0; (p+i)->amoney+=(p+i)->emoney; } SavedataFunc() } void SavedataFunc() { FILE*fp; fp=fopen(\"Data.txt\ int i,j; for(i=0;i fprintf(fp,\"%d %s %d\ for(j=0;j<100;j++) fprintf(fp,\"%d %d %d %s\>time); } fclose(fp); } void AdddataFunc() { int n,i; Re re; printf(\"请输入新用户信息\"); system(\"cls\"); for(i=0;i printf(\"\\n\\number:\"); scanf(\"%d\ (p+i)->number=re.number; printf(\"\\n\\name:\"); scanf(\"%s\ strcpy((p+i)->name,re.name); for(j=0;j<100;j++) { printf(\"\\n\\wanum:\"); scanf(\"%d\j]); (p+i)->wanum=re.wanum; printf(\"\\n\\elnum:\"); scanf(\"%d\j]); (p+i)->elnum=re.elnum; printf(\"\\n\\\time:\"); scanf(\"%s\ strcpy((p+i)->time,re.time); } printf(\"\\n登记完毕!\\n\");break; } SavedataFunc(); } void SortdataFunc() { int i,j; Re t; for(i=0;i { t=(p+i);(p+i)=(p+j);(p+j)=t; } SavedataFunc(); } void QuerydataFunc() { int i,n,j; Re re; system(\"cls\"); puts(\"\\\***************查询***************\\n\"); puts(\"\\\* *\\n\"); puts(\"\\\* 1.住户门牌号 *\\n\"); puts(\"\\\* 2.户主姓名 *\\n\"); puts(\"\\\* 3.日期 *\\n\"); puts(\"\\\**********************************\\n\"); printf(\"您想通过第[ ]种方式查询?\\b\\b\"); scanf(\"%d\ switch(n) { case 1: { printf(\"住户门牌号:\"); scanf(\"%d\ for(i=0;i printf(\"\\n\住户门牌号:%d\\n\户主姓名:%s\\n\总费 用:%d\ for(j=0;j<100;j++) printf(\"\\n\月用水量:%d\\n\月用电量:%d\\n\月费 用:%d\j],(p+i)->elnum[j],(p+i)->emoney[j]); }break; case 2: { printf(\"姓名:\"); scanf(\"%s\ for(i=0;i printf(\"\\n\住户门牌号:%d\\n\户主姓名:%s\\n\用:%d\ for(j=0;j<100;j++) 总费 printf(\"\\n\月用水量:%d\\n\月用电量:%d\\n\月用:%d\j],(p+i)->elnum[j],(p+i)->emoney[j]); }break; case 4: { printf(\"日期:\"); scanf(\"%s\ for(i=0;i if(strcmp((p+i)->time[j],re.time[j])==0)break; printf(\"\\n\住户门牌号:%d\\n\户主姓名:%s\ for(j=0;j<100;j++) printf(\"\\n\月用水量:%d\\n\月用电量:%d\\n\月用:%d\j],(p+i)->elnum[j],(p+i)->emoney[j]); 费 费 } } } void DeleteFunc() { int i,j,m; printf(\"删除的住户门牌号为:[ ]\\b\\b\"); scanf(\"%d\ for(i=0;i { strcpy((p+i)->name,(p+j+1)->name); (p+i)->amoney=(p+i+1)->amoney; for(j=0;j<100;j++) { (p+i)->wanum[j]=(p+i+1)->wanum[j+1]; (p+i)->elnum[j]=(p+i+1)->elnum[j+1]; strcpy((p+i)->time[j],(p+i+1)->time(j+1)); } SavedataFunc(); } 因篇幅问题不能全部显示,请点此查看更多更全内容