C语言 小区物业管理 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一. 设计目的
1.熟悉结构体类型的定义;
2.练习对数据的储存和读写:对文件的操作;
3.实现函数的定义及对函数的调用;
4.学习链表的建立,使用链表实现对数据的改动;
5.掌握调试程序的方法,熟练单步跟踪等。
二. 设计内容
主要实现以下几个功能:
1.管理员及业主账号的创建及核对,管理员密码的修改;2.录入业主信息;
3.修改,增加,删除信息;
4.信息的查询,打印,统计;
5.信息的文件储存;
6.文件的读写;
7.密码的加密。
三.概要设计
1.功能模块图;
2.各个模块详细的功能描述。 1.创建住户信息:
键盘输入住户信息,有姓名,联系方式,房屋号码,房产所有,车位拥有情况,收费项目,家庭人口等。并储存在文件中。 2.添加:
选择进行添加,添加住户信息。并储存进指定文件中。添加完毕后返回主界面。 3.修改:
选择进行修改,进入后可选择修改的内容(包括联系方式,住户姓名,房间号等)。根据修改的内容查找用户,继续进行修改,输入新的信息,完成后打印新信息,存入指定文件。不再修改时返回主界面。
4.删除:
选择要删除的人的信息(姓名或者房号),根据此信息查找该用户并删除相应信息,并存入指定文件中。
5.打印:
利用读文件及链表打印存入的信息。
6.查询:
打开文件,根据姓名或房间号查询此业主的全部信息。7.统计:
打开文件,每个住户的车位信息与no比较,不是则进行加
加操作,统计出已用车位总数。
8.修改密码:
核对修改的账号,输入新密码,存入文件,并进行加密。
9.查询2:
打开文件,根据姓名或房间号查询此业主的姓名,联系方式,房间号信息
四.详细设计
2.各功能函数的数据流程图;(1)添加:
(2)创建住户信息
(3).修改
(4).删除
(5).打印
(6).查询
(7).统计
(8)密码修改
3.重点设计及编码。
(1)登陆时密码存入文件及加密
开辟两个文件,一个存密码,另一个存加密文件,当void deng() //登录{
FILE *fp;
FILE *k;
char name[30],code[30]; //用户名,选择登录(注册),密码
struct mima *r,*s,*h,*s1; //密码链接的创建
int i,p,j; //控制密码重输循环次数
int m;
char a[6];
fp=fopen("mima.txt","a+");
k=fopen("temp.txt","a+");
if(fp==NULL)
{
printf("此文件不存在,请检查输入");
getch();
exit (1);
}
system("cls");
{
printf("------------------------------------\n");
printf("\n*******************************请输入账号:\n");
scanf("%s",name);
h=(struct mima*)malloc(sizeof(struct mima));
h->next=NULL;
r=h;
while(!feof(fp))
{
s=(struct mima*)malloc(sizeof(struct mima));
fscanf(fp,"%s\t%s\n",s->z,s->m);
if(strcmp(name,s->z)==0)
break;
r->next=s;
r=s;
}
r->next=NULL;
if(strcmp(name,s->z)!=0)
{
printf("无效账号!\n\n");
printf("是否现在进行注册?(按1继续,按其它任意键退
出)\n\n");
scanf("%d",&m);
system("cls");
if(m==1)
{
printf("\n------------------------------------\n");
printf("\n*************************用户名:\n");
scanf("%s",name);
fprintf(fp,"%s ",name);
printf("\n**************************密码:\n");
scanf("%s",code);
fprintf(fp,"%s\n",code);
printf("\n注册成功!正在跳转登录····\n\n");
Sleep(1500);
getch();
deng(fp);
}
else
{
printf("\n\n\n\n 已成功退出!\n\n\n");
exit (0);
}
}
printf(" \n******************************请输入密码:\n");
for(j=0;j<6;j++)
{
a[j]=getch();
printf("*");
}
a[j]='\0';
for(i=0,p=3;i<3;i++,p--)
{
if(strcmp(s->m,a)!=0)
{
printf("\n密码错误!请检查!\n\n");
printf("\n您还有%d次输入密码的机会\n\n",p);