C++小区物业管理系统课程设计Word文件下载.docx
《C++小区物业管理系统课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++小区物业管理系统课程设计Word文件下载.docx(38页珍藏版)》请在冰豆网上搜索。
小区物业管理系统
2.2课程设计实现
可以通过操作输入、增加、修改、浏览、查询、删除小区内住户信息,来实现对小区内物业的管理。
第三章设计内容
3.1需求分析
3.1.1系统分析
小区物业信息管理系统是针对当代社会,住宅小区越来越成为居住的主流这一市场需要而应运而生的,是为小区管理着和小区用户更好的维护小区各项物业管理业务处理工作而开发的管理软件。
3.1.2功能分析
小区管理系统包括小区成员的所住单元、住户号、工作单位、姓名、电话号码等信息;
——小区管理系统主要提供以下功能:
1.系统的登录界面(主要包括用户名、密码的设置、新用户的创建、密码的修改等);
2.系统以菜单方式工作
3.住户信息录入功能——输入
4.住户信息增加、修改、查询功能
(1)按住户名
(2)按房间号
5.住户信息浏览功能——显示
6.住户信息删除功能
3.2总体设计
3.2.1开始登录界面
图3-2-1开始登录界面
3.2.2各部分函数功能
整个系统除了主函数外,另外还有6个函数,实现六大功能:
增加数据功能、修改数据功能、信息查询功能、信息浏览功能、信息删除功能、退出系统功能。
各个函数的详细设计说明分别如下:
1.增加数据功能:
基本原理是用指针*P来创建一个存储单元,来存储住户的信息:
住户的姓名、性别、电话号码、身份证号码。
然后再和链变相连,有结构体链表来存储所有住户的信息。
*MP指针只想最后一个结构体链表的最后一个结构体。
2.修改数据功能:
与增加数据功能输入方式一样
3.信息浏览功能:
用printf来显示住户的信息,并且用for循环来实现所有的住户信息都能显示出。
voidDisplay(peoplepeople[],intn)/*显示所有记录*/
{inti;
printf("
\t\t\t-----------------------------------\n"
);
/*格式头*/
\t\t\tnumbernametel\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"
system("
pause"
}}
}
4.信息删除功能:
首先用指针找到此住户的前驱和后续,然后让前驱的NEXT指向后续,就删除所要删除的信息了。
首先用指针找到此住户的前驱和后续,然后让前驱的NEXT指向后续,就删除所要删除的信息了。
intDelete_a_record(peoplepeople[],intn)/*按姓名查找,删除一条记录*/
{chars[20];
inti=0,j;
\t\t\ttellmehis(her)name:
"
/*交互式问寻*/
scanf("
%s"
s);
while(strcmp(people[i].name,s)!
=0&
n)i++;
/*查找判断*/
if(i==n)
\t\t\tnotfind!
\n"
/*返回失败信息*/
return(n);
}
for(j=i;
j<
n-1;
j++)/*删除操作*/
{strcpy(stud[j].num,people[j+1].num);
strcpy(stud[j].name,peoplestud[j+1].name);
people[j].tel=people[j+1].tel;
\t\t\tDeleteSuccessed!
/*返回成功信息*/
return(n-1);
voidQuery_a_record(peoplepeople[],intn)/*查找并显示一个记录*/
inti=0;
\t\t\tinputhis(her)name:
/*交互式输入*/
\t\t\t%s"
/*输入失败信息*/
return;
\t\t\this(her)number:
%s\n"
people[i].num);
/*输出该学生信息*/
\t\t\this(her)tel:
%d\n"
people[i].tel);
intAddfromText(peoplepeople[],intn)/*从文件中读入数据*/
{inti=0,num;
FILE*fp;
/*定义文件指针*/
charfilename[20];
/*定义文件名*/
\t\t\tInputthefilename:
filename);
/*输入文件名*/
if((fp=fopen(filename,"
rb"
))==NULL)/*打开文件*/
\t\t\tcann'
topenthefile\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);
/*关闭文件*/
\t\t\tSuccessed!
voidWritetoText(Studentpeople[],intn)/*将所有记录写入文件*/
{inti=0;
\t\t\tWriteRecordstoaTextFile\n"
w"
fprintf(fp,"
n);
/*循环写入数据*/
n)
{fprintf(fp,"
%-16s%-15s%d\n"
people[i].num,people[i].name,people[i].tel);
Successed!
/*返回成功信息*/}
6.退出系统功能。
3.3详细设计
3.3.1系统功能模块
图3-3-1系统功能模块图
3.3.2系统设计
1.系统操作流程图
N Y Y
N
图3-3-2系统操作流程图
2.各部分详细流程
1)增加数据
{charname[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;
out.open("
E:
\\a.dat"
ios:
:
app);
do
{
cout<
<
请输入您要增加的住户的姓名:
endl;
cin>
>
name;
endl<
请输入住户性别:
;
sex;
请输入其房间号:
room_num;
请输入其车库号:
parking;
请输入联系电话:
phone_num;
请输入身份证号:
ID_num;
out<
setw(20)<
name<
setw(5)<
sex<
setw(10)<
room_num<
parking<
phone_num<
//文件输入
数据添加成功,想继续添加吗?
y/n:
c;
if(c=='
n'
)break;
if(c!
='
y'
c!
)
{cout<
指令错误!
请重新输入!
"
}
}while(c=='
out.close();
break;
}
2)修改数据
charna[20],s,room[10],park[10],phone[20],ID[20];
{intflag=0;
请输入您要修改的住户的姓名:
na;
f.open("
in|ios:
out);
f.seekg(0,ios:
beg);
f.clear();
while(!
f.eof())
{f>
if(strcmp(name,na)==0)
{flag=1;
请输入您要修改的住户的姓名:
请输入新房间号:
room;
s;
park;
phone;
ID;
sex=s;
strcpy(room_num,room);
strcpy(parking,park);
strcpy(ID_num,ID);
strcpy(phone_num,phone);
f.seekp(-20l,ios:
cur);
f<
na<
s<
room<
park<
phone<
修改成功!
break;
f.close();
if(flag==0)
您要修改的住户不存在!
您想继续修改吗?
3)信息查询
{charname[20],sex,room_num[10],room[10],parking[10],phone_num[20],ID_num[20];
请选择您要进行查询的方式:
1.按住户名查询"
2.按房间号查询"
intk;
k;
switch(k)
case1:
//按住户名查询
{charna[20];
charc;
do{
in.open("
in);
in.seekg(0,ios:
in.clear();
intflag=0;
请输入你要查询的住户姓名:
in.eof())
{in>
name>
sex>
room_num>
parking>
phone_num>
您要查询的住户:
的信息是:
姓名性别房间号车库号电话号码身份证号"
cout<
setw
(2)<
ID_num<
}
in.close();
对不起!
您要查询的住户不存在!
您想继续查询吗?
case2:
//按房间号查询
请输入你要查询的房间号:
if(strcmp(room_num,room)==0)
您要查询的住户:
的信息是:
charc;
{cout<
default:
cout<
对不起,您输入的指令有误:
}break;
}break;
4)信息浏览
{charname[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20];
if(in.get()==EOF){cout<
文件中已无数据"
in.close();
本系统所有学生数据如下:
{in>
5)信息删除
{charname[20],na[20],sex,room_num[10],parking[10],phone_num[20],ID_num[20],c;
{intn=0;
intflag=0;
请输入您要删除的住户的姓名:
s[n]=newlivers(name,sex,room_num,parking,phone_num,ID_num);
liv[n]=*s[n];
deletes[n];
n++;
for(i=0;
n;
i++)
{if(strcmp(liv[i].name,na)==0)
k=i;
if(flag==1)
{out.open("
out.seekp(0,ios:
if(n>
1)
liv[i].name<
liv[i].sex<
liv[i].room_num<
liv[i].parking<
liv[i].phone_num<
liv[i].ID_num;
for(i=k+1;
信息删除成功"
if(n=1){}
else
您要删除的住户不存在!
您想继续删除吗?
)break