小区物业管理系统软件设计报告.doc
《小区物业管理系统软件设计报告.doc》由会员分享,可在线阅读,更多相关《小区物业管理系统软件设计报告.doc(27页珍藏版)》请在沃文网上搜索。
1、 小区物业管理系统1、 实验目的 学会用C语言编程实现小区管理系统; 能熟练的掌握各个功能函数的熟练编写和理解;2、 实验内容小区管理系统设计:小区管理系统包括小区成员的所住单元、住户号、工作单位 姓名、电话号码等信息;小区管理系统主要提供以下功能: 1.系统的登录界面(主要包括用户名、密码的设置、新用户的创建、密码的修改等);2.系统以菜单方式工作3.住户信息录入功能输入4.住户信息浏览功能显示5.住户信息查询、修改、增加功能(1) 按姓名 (2)按电话号码6.住户信息删除功能7.住户信息以文件方式保存、读取8.住户信息的统计3、 数据结构及算法思想本程序将住户信息用结构体存放,然后通过链表
2、将所有信息连接起来,这就是主要的数据结构。struct personchar num10; /* 住户单元号 */long num1; /* 住户户号 */char name20; /* 住户姓名*/char sex10; /* 性别*/char com20; /* 工作单位*/char tel20; /* 电话号码*/struct person *next;以下为函数调用关系图:Main()Print1()Menu()Repassword()Login()Usercreat()head=creat()print(head)find(head)re(head)delete(head)add(h
3、ead)sort(head)save_inf()read_inf()count(head)4、 模块化分1. 功能模块图依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序的层次结构: main()主函数菜单(登录界面、主菜单)输入显示查询修改添加删除退出按姓名按号码信息保存信息读取排序 2各个模块功能的详细描述l 主函数: main();l 登录菜单: . 进入主菜单:menu();.修改密码函数: repassword();.登录界面函数: print1();创建用户函数: usercreat();l 主菜单:输入函数:head=create();输出函数:
4、print(head);住户信息文件的保存函数:save_inf(head);住户信息文件的读取函数:head=read_inf();住户信息的查找函数:find(head);住户信息的修改函数:re(head);住户信息的删除函数:delete(head);住户信息的添加函数:add(head);信息的排序:sort(head);住户信息的统计:count(head);5、 详细设计及运行结果1、重点设计及编码1) 密码输入函数(实现密码能够再输错的情况下修改);编码:printf(nn*-请输入密码(6位)login in: );for(i=0;inum,&p1-num1,p1-name,
5、p1-sex,p1-com,p1-tel);while(p1-num1!=0)p2-next=p1;/* 将新结点连接到表尾*/p2=p1; /* p2指向新的表尾*/p1=(struct person *)malloc(N);/* p1指向新申请的结点*/scanf(%s%ld%s%s%s%s,p1-num,&p1-num1,p1-name,p1-sex,p1-com,p1-tel); p2-next=NULL;/* 表尾结点next域置空*/ free(p1); /* 释放无效空间*/ return head; 5) 文件的保存函数与读取函数要保持一致:编码:for(stu=h-next;
6、stu!=NULL;stu=stu-next) fprintf(fp,%s %ld %s %s %s %sn,stu-num,stu-num1,stu-name,stu-sex,stu-com,stu-tel); /*格式化字符串写函数*/ printf(n文件已成功保存,按任意键返回!n); getch(); /* 从键盘上输入一个字符但不会现在屏幕上*/ fclose(fp); /* 将文件所指的指针FP关闭*/fscanf(fp,%s %ld %s %s %s %sn,stu-num,&stu-num1,stu-name,stu-sex,stu-com,stu-tel);/*格式化字符读
7、函数*/r-next=stu;r=stu;r-next=NULL; /*尾指针置空*/fclose(fp);6) 排序函数关键在找最大节点的位置时能记录前一节点的位置:编码:struct person *p,*pre1,*pre2,*r,*s;int count=0,i; for(s=h;s-next!=NULL;s=s-next) /*统计节点数*/count+;for(s=h;s-next!=NULL;s=s-next); /*循环体语句为空,找尾节点*/for(i=1;inext; /*pre2指向p前的一个节点*/r=pre1-next;p=pre2-next;while(p!=s)/
8、不等于尾节点if(p-num1r-num1) pre1=pre2; /*指针r始终指向数据较大的节点*/r=p;pre2=pre2-next;/依次往下查找p=p-next;pre1-next=r-next; /释放最大的节点 r-next=s-next;/给s节点附上新的节点s-next=r;for(p=s-next,pre1=s;s-num1p-num1;pre1=pre1-next,p=p-next);/给s节点后的进行排序h-next=s-next;/找到插入的位置s-next=p; pre1-next=s;printf(按任意键继续n);getch();7)修改函数中要实现能对修改选
9、项的选择:编码:while(p-next!=NULL) p=p-next; /* 继续查找*/ if(strcmp(p-name,name)=0) while(choice!=0)/* 进行选择修改信息*/ printf(请输入要修改的选项:1.单位号 2.房户号 3.工作单位 4.电话号码 0:退出 n); printf(请选择(0-4):);scanf(%d,&choice); if(choice=1) printf(请输入新的单位号: ); scanf(%s,p-num); if(choice=2) printf(请输入新的房户号: ); scanf(%ld,&p-num1); if(c
10、hoice=3) printf(请输入新的工作单位: ); scanf(%s,p-com); if(choice=4) printf(请输入新的电话号码: ); scanf(%s,p-tel); return 1; return 0;8) 删除函数关键在找要删除节点的位置:编码: while(p!=NULL) if(strcmp(p-name,name)=0) /* 找到要删除的节点*/ p0-next=p-next; /*后续结点链接到前驱结点之后*/ free(p); return 1; p0=p; /* 移向指针继续查找*/ p=p-next;9)添加函数关键在找到要添加的位置:编码:w
11、hile(p0-next!=NULL& p0-next-name=p-name) p0=p0-next; /* 继续查找添加的位置*/ if(p0-next!=NULL& p0-next-name=p-name) free(p);/* 释放新结点的存储空间*/ return 0; /* 不添加就返回0*/ p-next=p0-next;/*后续结点连接到新结点之后*/ p0-next=p; /* 新节点连接到前驱接点之后*/10)统计函数在于实现住户单元号相同与不同的情况下的记录:编码:struct person *p; sort(h); i=0,j=0,dcount=0;drcountj=0
12、; for(p=h-next,di=p-num,dcount=1;p!=NULL;p=p-next)count+; /统计总人数if(di!=p-num)/楼号不相等则继续查找i+;di=p-num;dcount+;j+;drcountj=1;/该栋楼人数加为1elsedrcountj+; /统计每栋住户楼的人数2、(1).正常数据及运行结果1登录界面2主菜单3从文件中读取信息4从键盘中输入信息5住户信息的查找6住户信息的删除7住户信息的修改8住户信息的添加(2)异常测试数据及运行结果6、 调试情况,设计技巧及体会本程序能顺利完成各个功能模块,实现数据的输入,存储,读取,删除,修改等。调试情况
13、良好,基本实现预期规定的功能。但是也有一些小的瑕疵,例如以非管理员身份进入,密码的修改比较繁琐,界面不是很人性化。设计技巧主要是正确熟练使用结构体和链表,从而对数据各种操作,当然指针的使用使得程序更方便运行。本次软件设计的体会总要是学C语言关键在操作,即使知识学习再好没有实际动手编写也用处不大,在编写过程中才能体会到算法设计,程序编写,函数调用等各种问题和解决办法。总之,以后的C语言学习,还要多动手编写,努力提高动手编程能力!7、源程序清单(电子版)源代码:#include#include#include#include#define N sizeof(struct person)login(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小区 物业管理 系统软件 设计 报告