华科学院信息管理与信息系统专业《程序设计综合课程设计》报告<(2011/2012学年第一学期)学生姓名:王奥辉学生班级:信息管理102202H学生学号:0217指导教师:薛颂东—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<n+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<n) i++; /*查找判断*/if(i==n){ printf("\t\t\tnot find!\n"); /*返回失败信息*/return(n); }for(j=i;j<n-1;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<n) 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<num) /*循环读入数据*/{ 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<n)*{ fprintf(fp,"%-16s%-15s%d\n",people[i].num,people[i].name,people[i].tel); i++; }fclose(fp); /*关闭文件*/printf("Successed!\n"); /*返回成功信息*/ }6.退出系统功能。
~详细设计系统功能模块图3-3-1 系统功能模块图~系统设计1.系统操作流程图图3-3-2 系统操作流程图%2.各部分详细流程1)增加数据{charname[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;("E:\\",ios::app);-do{cout<<"请输入您要增加的住户的姓名:"<<endl;cin>>name;cout<<endl<<" 请输入住户性别:";cin>>sex;cout<<endl<<" 请输入其房间号:";cin>>room_num;%cout<<endl<<" 请输入其车库号:";cin>>parking;cout<<endl<<" 请输入联系电话:";cin>>phone_num;cout<<endl<<" 请输入身份证号:";cin>>ID_num;cout<<endl;>out<<setw(20)<<name<<setw(5)<<sex<<setw(10)<<room_num<<setw(10)<<parkin g<<setw(20)<<phone_num<<setw(20)<<ID_num; 住户名查询"<<endl<<endl<<"2.按房间号查询"<<endl<<endl;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<k;i++)out<<setw(2)<<liv[i].name<<setw(5)<<liv[i].sex<<setw(10)<<liv[i].room_num<<set w(10)<<liv[i].parking<<setw(20)<<liv[i].phone_num<<setw(20)<<liv[i].ID_num;{for(i=k+1;i<n;i++)out<<setw(2)<<liv[i].name<<setw(5)<<liv[i].sex<<setw(10)<<liv[i].room_num<<set w(10)<<liv[i].parking<<setw(20)<<liv[i].phone_num<<setw(20)<<liv[i].ID_num;cout<<" 信息删除成功"<<endl<<endl;}if(n=1){}();}[elsecout<<" 您要删除的住户不存在!"<<endl<<endl;cout<<" 您想继续删除吗y / n :"<<endl;cin>>c;cout<<endl;if(c=='n')break;if(c!='y'&&c!='n')—{cout<<" 指令错误!请重新输入!"<<endl<<" ";cin>>c;}}while(c=='y');break;}》6)退出系统{cout<<"Bye bye! See you next time."<<endl<<endl;cout<<" 冯勇制作"<<endl<<endl<<endl;exit(0); }break; }}住户名查询"<<endl<<endl<<" 2.按房间号查询"<<endl<<endl;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<k;i++)out<<setw(2)<<liv[i].name<<setw(5)<<liv[i].sex<<setw(10)<<liv[i].room_num<<setw(10)< <liv[i].parking<<setw(20)<<liv[i].phone_num<<setw(20)<<liv[i].ID_num;for(i=k+1;i<n;i++)out<<setw(2)<<liv[i].name<<setw(5)<<liv[i].sex<<setw(10)<<liv[i].room_num<<setw(10)< <liv[i].parking<<setw(20)<<liv[i].phone_num<<setw(20)<<liv[i].ID_num;cout<<" 信息删除成功"<<endl<<endl;!}if(n=1){}();}elsecout<<" 您要删除的住户不存在!"<<endl<<endl;…cout<<" 您想继续删除吗y / n :"<<endl;cin>>c;cout<<endl;if(c=='n')break;if(c!='y'&&c!='n'){cout<<" 指令错误!请重新输入!"<<endl<<" ";cin>>c;}!}while(c=='y');break;}case'7': <<endl<<endl;cout<<" 冯勇制作"<<endl<<endl<<endl;exit(0); }break; } }//以上为menu菜单中switch控制语句cout<<" 您想继续进行其他操作吗y / n :"<<endl<<" ";//以下控制循环语句int flag=0;do{cin>>w;cout<<endl;if(w=='n')exit(0);if(w!='y'&&w!='n')cout<<" 指令错误!请重新输入!"<<endl;elseflag=1;}while(flag==0);if(w=='y'){cout<<" 请输入操作代码: 1 输入数据"<<endl; cout<<" 2 增加数据"<<endl; cout<<" 3 修改数据"<<endl; cout<<" 4 信息查询"<<endl; cout<<" 5 信息浏览"<<endl; cout<<" 6 信息删除"<<endl; cout<<" 7 退出系统"<<endl;}cin>>p;}while(w=='y');//最外层的do-while循环}//menu函数结束int main(){key();return 0;}。