物业管理系统C语言程序实习报告.pdf

上传人:白大夫 文档编号:5592447 上传时间:2020-06-21 格式:PDF 页数:26 大小:420.07KB
返回 下载 相关 举报
物业管理系统C语言程序实习报告.pdf_第1页
第1页 / 共26页
物业管理系统C语言程序实习报告.pdf_第2页
第2页 / 共26页
物业管理系统C语言程序实习报告.pdf_第3页
第3页 / 共26页
物业管理系统C语言程序实习报告.pdf_第4页
第4页 / 共26页
物业管理系统C语言程序实习报告.pdf_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《物业管理系统C语言程序实习报告.pdf》由会员分享,可在线阅读,更多相关《物业管理系统C语言程序实习报告.pdf(26页珍藏版)》请在三一文库上搜索。

1、. . 本科生课程论文封面 课 程 名 称 C 语言程序课程设计 教 师 姓 名 本科生姓名 本科生学号 本科生专业 所 在 院 系 类别: 工科 日期: 摘要: 本文完成了综合练习中第20 题物业管理系统的编程,程序用于小区的管理,管 理的项目包括小区住户管理、 物业收费项目管理、 物业收费管理, 并用文件存储 相关信息。文中给出了需求分析、功能模块图、数据结构、详细设计、程序运行 结果、总结和致谢, 目录 课程设计评 语. 1 个人简 介. 2 摘 要. 2 目 录. 3 题目及要 求. 4 需求分 析. 4 功能模块 图. 4 数据结 构. 5 源代 码. 5 程序运行结 果. .21

2、总 结. .25 致 谢. .25 参考文 献. .25 1、题目要求 用于小区的物业管理,管理的项目包括小区住户管理、物业收费项目管理、 物业收费管理。要求用文件存储相关信息。 可随时浏览、录入和更改小区住户、收费项目等数据。 可随时增、删、改、查收费项目及其标准。 生成小区住户收费报表(包括全部、已交、欠交)。 2、需求分析 住户信息、物业收费信息要用文件存储 (可用一个文件, 也可分成两个文件) 因而提供文件的输入 / 输出操作;另外,还要提供键盘式选择菜单以实现功能选 择。 3、功能模块图 整个管理系统可以设计为住户信息、物业收费信息的浏览、修改、增加等模块。 依据程序的数据结构和功能

3、,遵照“自顶向下”原则,采用基于函数的逐步 求精法,描述该程序的层次结构: 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; 主函数 物业信息系统 统计查询系统 业主信息管理收费信息管理 信 息 录 入 信 息 修 改 信 息 浏 览 信 息 删 除 查 询 缴 费 信 息 查

4、询 欠 费 名 单 struct yezhu *next; ; 物业收费信息结构体: struct wuye /物业信息结构体 / char ID100; int last_year; int last_month; float money; int to_time; struct wuye *link; ; 5、源代码 程序: #include #include #include #include #include /函数声明 / int mainmenu(); /主菜单 void xinximenu(); /物业信息菜单 void tongjimenu();/统计查询菜单 void myc

5、haozhao(); /欠费名单 void yezhumenu();/业主菜单 void wuyemenu();/物业菜单 void myAdd1();/录入业主信息 void myAdd2(); /录入物业信息 void myDelete1();/删除业主信息 void myDelete2();/删除物业信息 void myReplace1();/修改业主信息 void myReplace2();/修改物业信息 void Display1();/浏览业主信息 void Display2();/浏览物业信息 void myfind();/查询缴费 void Display(struct wuy

6、e *p); void Read1(); void Read2(); void save1(struct yezhu *p);/保存业主信息至文件 void save2(struct wuye *p);/保存物业信息至文件 struct yezhu *find1(char *id); /查找业主信息 struct wuye *find2(char *id);/查找物业信息 struct yezhu *myAdd3(struct yezhu *p);/添加业主信息 struct wuye *myAdd4(struct wuye *p); struct yezhu /业主结构体 / char id

7、100; 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_time; struct wuye *link; ; struct yezhu *phead; /业主头结点 struct wuye *pHead; /物业

8、头结点 int mainmenu()/主菜单 / int n; printf(“*欢 迎 进 入 小 区 物 业 管 理 系 统 *n“); printf(“- -n“); printf(“* * * * * * * * * * * * * * * 请选择( 13)* * * * * * * * * * * * * * *n“); printf(“* *n“); printf(“* *n“); printf(“* 物业信息系统; *n“); printf(“* *n“); printf(“* 统计查询系统; *n“); printf(“* *n“); printf(“* 退出程序。 *n“);

9、 printf(“* *n“); printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n“); printf(“请您输入选项 :“); scanf(“%d“, return n; void xinximenu()/物业信息菜单显示 / 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“, switch(choose) case 1:yezhume

11、nu(); break; case 2:wuyemenu(); break; case 3:return; default:printf(“输入错误,请重新输入:n“); while(1); void tongjimenu() / 统计查询菜单显示 / int choose; do printf(“*统计查询系统 *n“); printf(“- -n“); printf(“* * * * * * * * * * * * * * * 请选择( 13)* * * * * * * * * * * * * * *n“); printf(“* *n“); printf(“* *n“); printf(“

12、* 查询缴费信息; *n“); printf(“* *n“); printf(“* 欠费名单一览表; *n“); printf(“* *n“); printf(“* 返回主菜单。 *n“); printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n“); printf(“请您输入选项 :“); scanf(“%d“, switch(choose) case 1 : myfind(); break; case 2 : mychaozhao(); break; case 3 : re

13、turn; default: printf(“输入错误,请重新输入 !nn“); while(1); void yezhumenu()/业主菜单函数 int choose; do printf(“*业 主 信 息 编 辑 系 统 *-n“); printf(“- -n“); printf(“* * * * * * * * * * * * * * * *请选择( 15)* * * * * * * * * * * * * * *n“); printf(“* *n“); printf(“* *n“); printf(“* 业主信息录入; *n“); printf(“* *n“); printf(“*

14、 业主信息修改; *n“); printf(“* *n“); printf(“* 业主信息删除; *n“); printf(“* *n“); printf(“* 业主信息浏览; *n“); printf(“* *n“); printf(“* 返回上级菜单。 *n“); printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n“); printf(“请输入选项: “); scanf(“%d“, /getchar(); switch(choose) case 1 :myAdd1(

15、); 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); pri

16、ntf(“姓名:“); scanf(“%s“,p-name); printf(“年龄: “); scanf(“%d“, printf(“家庭成员数: “); scanf(“%d“, printf(“所在楼号: “); scanf(“%d“, printf(“单元房间号 :“); scanf(“%s“,p-room_num); printf(“住宅面积 :“); scanf(“%d“, printf(“入住时间: “); scanf(“%s“,p-rz_time); myAdd3(p); save1(p); printf(“录入成功 !n“); struct yezhu *myAdd3(stru

17、ct 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“

18、); printf(“ID:“); scanf(“%s“,k-id); printf(“姓名:“); scanf(“%s“,k-name); printf(“年龄: “); scanf(“%d“, printf(“家庭成员数: “); scanf(“%d“, printf(“所在楼号: “); scanf(“%d“, printf(“单元房间号 :“); scanf(“%s“,k-room_num); printf(“住宅面积 :“); scanf(“%d“, printf(“入住时间: “); scanf(“%s“,k-rz_time); save1(k); printf(“修改成功 !n“

19、); 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); pri

20、ntf(“年龄: %dn“,p-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; prin

21、tf(“请输入要删除人的ID:“); scanf(“%s“,id); p=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

22、!=k) kk=kk-link; kk-link=k-link; free(k); else printf(“无此业主 ID!n“); return; printf(“删除物业信息成功 !n“); save2(k); void save1(struct yezhu *p) FILE *fp; fp=fopen(“yezhu.dat“,“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

23、=fopen(“yezhu.dat“,“rb“); while(1) p=(struct yezhu *)malloc(sizeof(struct yezhu); 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)* * * * * * * * * *

24、 * * *n“); printf(“* * n“); printf(“* *n“); printf(“* 物业信息录入; *n“); printf(“* *n“); printf(“* 物业信息修改; *n“); printf(“* *n“); printf(“* 物业信息删除; *n“); printf(“* *n“); printf(“* 物业信息浏览; *n“); printf(“* *n“); printf(“* 返回上级菜单。 *n“); printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

25、* * * * *n“); printf(“请输入选项: “); scanf(“%d“, switch(choose) case 1: myAdd2(); break; case 2: myReplace2(); 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

26、 wuye *)malloc(sizeof(struct wuye); printf(“请录入物业信息: n“); printf(“ID:“); scanf(“%s“,p-ID); t=find1(p-ID); if(t!=NULL) printf(“上一次缴费年份: “); scanf(“%d“, printf(“月份: “); scanf(“%d“, printf(“缴费金额: “); scanf(“%f“, x=p-money/(0.4*t-area); p-to_time=(int)x; myAdd4(p); save2(p); printf(“录入成功 !n“); else prin

27、tf(“无此业主 ID!n“); return; struct wuye *myAdd4(struct wuye *p)/添加物业信息结点 / struct wuye *t; if(pHead=NULL) pHead=p; p-link=NULL; else t=pHead; while(t-link!=NULL) t=t-link; t-link=p; p-link=NULL; return pHead; struct wuye *find2(char *id)/通过姓名查找缴费信息 / struct wuye *p; p=pHead; while(p!=NULL) if(strcmp(p-

28、ID,id)=0) return p; p=p-link; return NULL; void myfind() struct wuye *p; char a100; printf(“请输入要查找的业主id :“); scanf(“%s“,a); p=find2(a); if(p!=NULL) printf(“业主已经存缴 !n“); else printf(“业主尚没存缴信息 !n“); return; Display(p); void myReplace2()/ char id20; int x; struct wuye *k; struct yezhu *t; printf(“请输入要修

29、改的业主ID:“); scanf(“%s“,id); if(k!=NULL) printf(“您要修改的信息为: n“); printf(“请输入新的信息: n“); printf(“ID:“); scanf(“%s“,k-ID); printf(“上一次缴费年份: “); scanf(“%d“, printf(“月份: “); scanf(“%d“, printf(“缴费金额: “); scanf(“%f“, t=find1(k-ID); x=(int)k-money/(0.4*t-area); k-to_time=(int)x; myAdd4(k); save2(k); printf(“修

30、改成功 !n“); else printf(“无此业主 ID!n“); return; void myDelete2()/ struct wuye *p,*pp; char id100; pp=pHead; printf(“请输入要删除人的ID:“); scanf(“%s“,id); p=find2(id); if(p!=NULL) if(p=pHead) pHead=p-link; free(p); else while(pp-link!=p) pp=pp-link; pp-link=p-link; free(p); else printf(“无此业主 ID!n“); return; sav

31、e2(p); printf(“删除成功 !n“); void Display2() struct wuye *p; p=pHead; while(p!=NULL) printf(“ID:%sn“,p-ID); printf(“最后一次缴费日期:%d年%d月 n“,p-last_year,p-last_month); printf(“缴费金额 :%f 元n“,p-money); printf(“费用有效期: %d个月n“,p-to_time); printf(“nnn“); p=p-link; void Display(struct wuye *p) printf(“业主 ID:%sn“,p-I

32、D); printf(“最后一次缴费日期:%d年%d月 n“,p-last_year,p-last_month); printf(“最后一次缴费金额: %fn“,p-money); printf(“费用有效期: %d个月n“,p-to_time); void Read2()/ FILE *fp; struct wuye *p; fp=fopen(“wuye.dat“,“rb“); while(1) p=(struct wuye *)malloc(sizeof(struct wuye); if(feof(fp) break; if(fread(p,sizeof(struct wuye),1,fp

33、) myAdd4(p); fclose(fp); void save2(struct wuye *p)/ FILE *fp; fp=fopen(“wuye.dat“,“wb“); p=pHead; while(p!=NULL) fwrite(p,sizeof(struct wuye),1,fp); p=p-link; fclose(fp); void mychaozhao()/ int year,month; struct wuye *k; struct yezhu *l; k=pHead; l=phead; printf(“请输入当前年份: “); scanf(“%d“, printf(“请

34、输入当前月份: “); scanf(“%d“, while(k!=NULL) if(yeark-last_year) l=find1(k-ID); l-lost=(float)(month+12-k-to_time-k-last_month)*(0.4*l-area); if(l-lost0) printf(“业主 ID*:%sn“,l-id); printf(“业主姓名 *:%sn“,l-name); printf(“最 后 一 次 缴 费 日 期 : %d 年 %d 月 n“,k-last_year,k-last_month); printf(“欠费金额 *:%fn“,l-lost); p

35、rintf(“nn“); if(year=k-last_year) l=find1(k-ID); l-lost=(float)(month-k-to_time-k-last_month)*(0.4*l-area); if(l-lost0) printf(“业主 ID:%sn“,l-id); printf(“业主姓名: %sn“,l-name); printf(“最 后 一 次 缴 费 日 期 : %d 年 %d 月 n“,k-last_year,k-last_month); printf(“欠 费 金额: %fn“,l-lost); printf(“nn“); k=k-link; void m

36、ain()/ int m; /Read1();/第一次没有信息,不可用! ! ! /Read2();/第一次没有信息,不可用! ! ! do m=mainmenu(); switch(m) case 1: xinximenu(); break; case 2: tongjimenu(); break; case 3:printf(“*谢 谢 使 用,再见 !*n“); exit(0); while(1); 6、程序运行结果 输入信息模块 信息浏览模块 信息修改模块 查询模块 信息删除模块 7、总结 这次课程设计为期八天,时间不长,却感受很深。无论是在学习知识还是在 解决问题的能力上,都有深刻的

37、认识。 首先就是对理论知识的进一步巩固,再一次接触C语言的数据类型、语句、 、 数组、指针结构等等一系列与c 语言有关的东西,通过“庖丁解牛” ,我开始懂 得不管一个程序多么复杂, 其实它都是由最基本的函数组成, 只要我们弄清结构、 一切都会迎刃而解。 与之前不同的是: 这次是体会理论结合实际的过程。编程是 一项考验综合能力的事情, 仅仅有课本知识还不够, 必须要有自己的知识框架才 能通过所学理论解决实际问题。尽管只有八天, 但我却碰到许多问题, 诸如无法 抽象出问题模型, 不知道用哪一个或哪几个知识点来解决问题等等,并且一开始 设计的程序冗长复杂, 效率低,通过与同学的交流和在老师的帮助下,让程序成 功地运行,虽然不是自己全部编写的。 (说实话,我还没达到完全靠自己编写的 能力。通过在网上找答案并进行修改调试,还是坚持了下来并取得了成功。) 此次实习很有意义,它将教会我不断的提高自己的时间能力,挖掘自己解决 问题的能力。 单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1