C小区物业管理系统课程设计
C小区物业管理系统课
程设计
Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
华科学院信息管理与信息系统专业
《程序设计综合课程设计》报告
(2011/2012学年第一学期)
学生姓名:王奥辉
学生班级:信息管理102202H
学生学号:17
指导教师:薛颂东
20011年12月30日
小
区
物
业
管
理
目录
1、课程设计的目的及要求 (4)
2、课程设计任务 (5)
3、设计内容 (6)
4、程序的编码与实现 (25)
5、课程设计心得与体会 (28)
6、程序源代码 (29)
第一章课程设计的目的及要求
课程设计目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C++)》课程后进行的一次全面的综合设计。本课程设计的目的和任务:
1. 巩固和加深学生对C++语言课程的基本知识的理解和掌握。
2. 掌握C++语言编程和程序调试的基本技能。
3. 利用C++语言进行基本的软件设计。
4. 掌握书写程序设计说明文档的能力。
5. 提高运用C++语言解决实际问题的能力。
课程设计要求
进一步巩固《C++程序设计》所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C++ 语言解决实际问题的能力,为以后后续课程的学习打好基础。
第二章课程设计任务
课程设计题目
小区物业管理系统
课程设计实现
可以通过操作输入、增加、修改、浏览、查询、删除小区内住户信息,来实现对小区内物业的管理。
第三章设计内容
需求分析
小区物业信息管理系统是针对当代社会,住宅小区越来越成为居住的主流这一市场需要而应运而生的,是为小区管理着和小区用户更好的维护小区各项物业管理业务处理工作而开发的管理软件。
小区管理系统包括小区成员的所住单元、住户号、工作单位、姓名、电话号码等信息;
——小区管理系统主要提供以下功能:
1.系统的登录界面(主要包括用户名、密码的设置、新用户的创建、密码
的修改等);
2.系统以菜单方式工作
3.住户信息录入功能——输入
4.住户信息增加、修改、查询功能
(1)按住户名(2)按房间号
5.住户信息浏览功能——显示
6.住户信息删除功能
总体设计
图3-2-1 开始登录界面
整个系统除了主函数外,另外还有6个函数,实现六大功能:增加数据功能、修改数据功能、信息查询功能、信息浏览功能、信息删除功能、退出系统功能。各个函数的详细设计说明分别如下:
1. 增加数据功能:基本原理是用指针*P来创建一个存储单元,来存储住户的信息:住户的姓名、性别、电话号码、身份证号码。然后再和链变相连,有结构体链表来存储所有住户的信息。*MP指针只想最后一个结构体链表的最后一个结构体。
2.修改数据功能:与增加数据功能输入方式一样
3.信息浏览功能:用printf来显示住户的信息,并且用for循环来实现所有的住户信息都能显示出。
void Display(people people[],int n) /*显示所有记录*/
{ int i;
printf("\t\t\t-----------------------------------\n"); /*格式头*/
printf("\t\t\tnumber name tel\n");
printf("\t\t\t-----------------------------------\n");
for(i=1;i { printf("\t\t\t%-16s%-15s%d\n",people[i-1].num,people[i- 1].name,people[i-21].tel); if(i>1&&i%10==0) /*每十个暂停*/ {printf("\t\t\t-----------------------------------\n"); /*格式*/ printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); } } printf("\t\t\t"); system("pause"); } 4.信息删除功能:首先用指针找到此住户的前驱和后续,然后让前驱的NEXT指向后续,就删除所要删除的信息了。 首先用指针找到此住户的前驱和后续,然后让前驱的NEXT指向后续,就删除所要删除的信息了。 int Delete_a_record(people people [],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i=0,j; printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(people[i].name,s)!=0&&i if(i==n) { printf("\t\t\tnot find!\n"); /*返回失败信息*/ return(n); } for(j=i;j { strcpy(stud[j].num, people [j+1].num); strcpy(stud[j].name, people stud[j+1].name); people [j].tel= people [j+1].tel; } printf("\t\t\tDelete Successed!\n"); /*返回成功信息*/ return(n-1); } void Query_a_record(people people[],int n) /*查找并显示一个记录*/ { char s[20]; int i=0; printf("\t\t\tinput his(her) name:"); /*交互式输入*/ scanf("\t\t\t%s",s); while(strcmp(people[i].name,s)!=0&&i if(i==n) { printf("\t\t\tnot find!\n"); /*输入失败信息*/ return; } printf("\t\t\this(her) number:%s\n",people[i].num); /*输出该学生信息*/ printf("\t\t\this(her) tel:%d\n",people[i].tel); } int AddfromText(people people[],int n) /*从文件中读入数据*/ { int i=0,num; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\t\t\tInput the filename:"); scanf("\t\t\t%s",filename); /*输入文件名*/ if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/ { printf("\t\t\tcann't open the file\n"); /*打开失败信息*/ printf("\t\t\t"); system("pause"); return(n); } fscanf(fp,"%d",&num); /*读入总记录量*/ while(i { fscanf(fp,"%s%s%d",peole[n+i].num,people[n+i].name,&people[n+i].tel); i++; } n+=num; fclose(fp); /*关闭文件*/ printf("\t\t\tSuccessed!\n"); printf("\t\t\t"); system("pause"); return(n); } void WritetoText(Student people[],int n) /*将所有记录写入文件*/ { int i=0; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\t\t\tWrite Records to a Text File\n"); /*输入文件名*/ printf("\t\t\tInput the filename:"); scanf("\t\t\t%s",filename); if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ { printf("\t\t\tcann't open the file\n"); system("pause"); return; } fprintf(fp,"%d\n",n); /*循环写入数据*/ while(i { fprintf(fp,"%-16s%-15s%d\n",people[i].num,people[i].name,people[i].tel); i++; } fclose(fp); /*关闭文件*/ printf("Successed!\n"); /*返回成功信息*/ } 6.退出系统功能。 详细设计 do { cout<<"请输入您要增加的住户的姓名:"< cin>>name; cout< cin>>sex; cout< cin>>room_num; cout< cin>>parking; cout< cin>>phone_num; cout< cin>>ID_num; cout< out< rking< "< int k; cin>>k; switch(k) case 1: ame,na)==0) {flag=1;k=i;} } if(flag==1) {("E:\\",ios::out); (0,ios::beg); if(n>1) { for(i=0;i out< for(i=k+1;i out< cout<<" 信息删除成功"< } if(n=1){} (); } else cout<<" 您要删除的住户不存在!"< cout<<" 您想继续删除吗 y / n :"< cin>>c; cout< if(c=='n')break; if(c!='y'&&c!='n') {cout<<" 指令错误!请重新输入!"< cin>>c;} }while(c=='y'); break; } 6)退出系统 {cout<<"Bye bye! See you next time."< cout<<" 冯勇制作 "< }住户名查询"< int k; cin>>k; switch(k) case 1: ame,na)==0) {flag=1;k=i;} } if(flag==1) {("E:\\",ios::out); (0,ios::beg); if(n>1) { for(i=0;i out< < for(i=k+1;i out< cout<<" 信息删除成功"< } if(n=1){} (); } else cout<<" 您要删除的住户不存在!"< cout<<" 您想继续删除吗 y / n :"< cin>>c; cout< if(c=='n')break; if(c!='y'&&c!='n') {cout<<" 指令错误!请重新输入!"< cin>>c;} }while(c=='y'); break; } case'7': < cout<<" 冯勇制作 "< }//以上为menu菜单中switch控制语句 cout<<" 您想继续进行其他操作吗 y / n :"< do{cin>>w; cout< if(w=='n')exit(0); if(w!='y'&&w!='n') cout<<" 指令错误!请重新输入!"< flag=1; }while(flag==0); if(w=='y') {cout<<" 请输入操作代码: 1 输入数据"< }while(w=='y');//最外层的do-while循环 }//menu函数结束 int main() {key(); return 0; }