1、物业管理系统C语言程序实习报告1、题目要求用于小区的物业管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理。要求用文件存储相关信息。可随时浏览、录入和更改小区住户、收费项目等数据。可随时增、删、改、查收费项目及其标准。生成小区住户收费报表(包括全部、已交、欠交)。2、需求分析住户信息、物业收费信息要用文件存储(可用一个文件,也可分成两个文件)因而提供文件的输入/输出操作;另外,还要提供键盘式选择菜单以实现功能选择。3、功能模块图整个管理系统可以设计为住户信息、物业收费信息的浏览、修改、增加等模块。依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序
2、的层次结构:4、数据结构可以把住户信息、物业收费信息分别放在两个结构体内。住户信息结构体:struct yezhu /业主结构体/ char id100; char name20; int age; int family_num; int floor_num; char room_num100; float lost; int area; char rz_time20; struct yezhu *next;物业收费信息结构体:struct wuye /物业信息结构体/ char ID100; int last_year; int last_month; float money; int to
3、_time; struct wuye *link; ;5、源代码程序:#include #include #include #include#include /函数声明/ int mainmenu(); /主菜单void xinximenu(); /物业信息菜单void tongjimenu();/统计查询菜单void mychaozhao(); /欠费名单void yezhumenu();/业主菜单void wuyemenu();/物业菜单void myAdd1();/录入业主信息void myAdd2(); /录入物业信息void myDelete1();/删除业主信息void myDel
4、ete2();/删除物业信息void myReplace1();/修改业主信息void myReplace2();/修改物业信息void Display1();/浏览业主信息void Display2();/浏览物业信息void myfind();/查询缴费void Display(struct wuye *p);void Read1();void Read2();void save1(struct yezhu *p);/保存业主信息至文件void save2(struct wuye *p);/保存物业信息至文件struct yezhu *find1(char *id); /查找业主信息str
5、uct wuye *find2(char *id);/查找物业信息struct yezhu *myAdd3(struct yezhu *p);/添加业主信息struct wuye *myAdd4(struct wuye *p);struct yezhu /业主结构体/ char id100; char name20; int age; int family_num; int floor_num; char room_num100; float lost; int area; char rz_time20; struct yezhu *next;struct wuye /物业信息结构体/ cha
6、r ID100; int last_year; int last_month; float money; int to_time; struct wuye *link; ;struct yezhu *phead; /业主头结点struct wuye *pHead; /物业头结点int mainmenu()/主菜单/ int n; printf(*欢迎进入小区物业管理系统*n); printf(-n); printf(* * * * * * * * * * * * * * * 请选择(13)* * * * * * * * * * * * * * *n); printf(* *n); printf
7、(* *n); printf(* 物业信息系统; *n); printf(* *n); printf(* 统计查询系统; *n); printf(* *n); printf(* 退出程序。 *n); printf(* *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(请您输入选项:); scanf(%d,&n); return n; void xinximenu()/物业信息菜单显示/ int choose; do printf(*物业信息系统*
8、n); printf(-n); printf(* * * * * * * * * * * * * * * 请选择(13)* * * * * * * * * * * * * * *n); printf(* *n); printf(* *n); printf(* 小区业主信息管理; *n); printf(* *n); printf(* 物业费用信息管理; *n); printf(* *n); printf(* 返回主菜单。 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
9、 *n); printf(请您输入选项:); scanf(%d,&choose); switch(choose) case 1:yezhumenu(); break; case 2:wuyemenu(); break; case 3:return; default:printf(输入错误,请重新输入:n); while(1);void tongjimenu() /统计查询菜单显示/ int choose; do printf(*统计查询系统*n); printf(-n); printf(* * * * * * * * * * * * * * * 请选择(13)* * * * * * * * *
10、 * * * * * *n); printf(* *n); printf(* *n); printf(* 查询缴费信息; *n); printf(* *n); printf(* 欠费名单一览表; *n); printf(* *n); printf(* 返回主菜单。 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(请您输入选项:); scanf(%d,&choose); switch(choose) case 1 : myfind(); brea
11、k; case 2 : mychaozhao(); break; case 3 : return; default: printf(输入错误,请重新输入!nn); while(1); void yezhumenu()/业主菜单函数 int choose; do printf(*业主信息编辑系统*-n); printf(-n); printf(* * * * * * * * * * * * * * * *请选择(15)* * * * * * * * * * * * * * *n); printf(* *n); printf(* *n); printf(* 业主信息录入; *n); printf(
12、* *n); printf(* 业主信息修改; *n); printf(* *n); printf(* 业主信息删除; *n); printf(* *n); printf(* 业主信息浏览; *n); printf(* *n); printf(* 返回上级菜单。 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(请输入选项:); scanf(%d,&choose); /getchar(); switch(choose) case 1 :myA
13、dd1(); break; case 2 :myReplace1(); break; case 3 :myDelete1(); break; case 4 :Display1(); break; case 5 : return; default: printf(输入错误,请重新输入:n); while(1); void myAdd1()/录入业主信息/ struct yezhu *p; p=(struct yezhu *)malloc(sizeof(struct yezhu); printf(请录入业主信息:n); printf(ID:); scanf(%s,p-id); printf(姓名:
14、); scanf(%s,p-name); printf(年龄:); scanf(%d,&p-age); printf(家庭成员数:); scanf(%d,&p-family_num); printf(所在楼号:); scanf(%d,&p-floor_num); printf(单元房间号:); scanf(%s,p-room_num); printf(住宅面积:); scanf(%d,&p-area); printf(入住时间:); scanf(%s,p-rz_time); myAdd3(p); save1(p); printf(录入成功!n); struct yezhu *myAdd3(st
15、ruct yezhu *p)/添加业主信息结点/ struct yezhu *t; if(phead=NULL) phead=p; p-next=NULL; else t=phead; while(t-next!=NULL) t=t-next; t-next=p; p-next=NULL; return phead; void myReplace1()/修改业主信息 struct yezhu *k; char id100; printf(请输入要修改的业主ID:); scanf(%s,id); k=find1(id); if(k!=NULL) printf(请输入要修改的业主信息:n); pr
16、intf(ID:); scanf(%s,k-id); printf(姓名:); scanf(%s,k-name); printf(年龄:); scanf(%d,&k-age); printf(家庭成员数:); scanf(%d,&k-family_num); printf(所在楼号:); scanf(%d,&k-floor_num); printf(单元房间号:); scanf(%s,k-room_num); printf(住宅面积:); scanf(%d,&k-area); printf(入住时间:); scanf(%s,k-rz_time); save1(k); printf(修改成功!n
17、); else printf(无此业主ID!n); return; struct yezhu *find1(char *id)/通过ID查找业主信息/ struct yezhu *p; p=phead; while(p!=NULL) if(strcmp(p-id,id)=0) return p; p=p-next; return NULL;void Display1() struct yezhu *p; p=phead; while(p!=NULL) printf(nn); printf(ID:%sn,p-id); printf(姓名:%sn,p-name); printf(年龄:%dn,p-
18、age); printf(家庭成员数:%dn,p-family_num); printf(所在楼号:%dn,p-floor_num); printf(单元房间号:%sn,p-room_num); printf(住宅面积:%dn,p-area); printf(入住时间:%sn,p-rz_time); printf(nn); p=p-next; void myDelete1() struct yezhu *p,*pp; struct wuye *k,*kk; char id100; pp=phead; kk=pHead; printf(请输入要删除人的ID:); scanf(%s,id); p=
19、find1(id); k=find2(id); if(p!=NULL) if(p=phead) phead=p-next; free(p); else while(pp-next!=p) pp=pp-next; pp-next=p-next; free(p); else printf(无此业主ID!n); return; printf(删除业主信息成功!n); save1(p); if(k!=NULL) if(k=pHead) pHead=k-link; free(k); else while(kk-link!=k) kk=kk-link; kk-link=k-link; free(k); e
20、lse printf(无此业主ID!n); return; printf(删除物业信息成功!n); save2(k); void save1(struct yezhu *p) FILE *fp; fp=fopen(,wb); p=phead; while(p!=NULL) fwrite(p,sizeof(struct yezhu),1,fp); p=p-next; fclose(fp);void Read1() FILE *fp; struct yezhu *p; fp=fopen(,rb); while(1) p=(struct yezhu *)malloc(sizeof(struct ye
21、zhu); if(feof(fp) break; if(fread(p,sizeof(struct yezhu),1,fp) myAdd3(p); fclose(fp);void wuyemenu() int choose=0; do printf(*物业费用管理系统*n); printf(-n); printf(* * * * * * * * * * * * * * * 请选择(15)* * * * * * * * * * * * *n); printf(* * n); printf(* *n); printf(* 物业信息录入; *n); printf(* *n); printf(* 物业
22、信息修改; *n); printf(* *n); printf(* 物业信息删除; *n); printf(* *n); printf(* 物业信息浏览; *n); printf(* *n); printf(* 返回上级菜单。 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(请输入选项:); scanf(%d,&choose); switch(choose) case 1: myAdd2(); break; case 2: myReplace2();
23、break; case 3: myDelete2(); break; case 4: Display2(); break; case 5: return; default:printf(输入错误,请重新输入:n); while(1); void myAdd2()/录入物业信息/ struct wuye *p; struct yezhu *t; int x; p=(struct wuye *)malloc(sizeof(struct wuye); printf(请录入物业信息:n); printf(ID:); scanf(%s,p-ID); t=find1(p-ID); if(t!=NULL) printf(上一次缴费年份:); scanf(%d,&p-last_year); printf(月份:); scanf(%d,&p-last_month); printf(缴费金额:); scanf(%f,&p-money); x=p-money/*t-area); p-to_time=(int)x; myAdd4(p); save2(p); printf(录入成功!n); else
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1