c语言物业管理系统.docx
- 文档编号:25327878
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:27
- 大小:18.50KB
c语言物业管理系统.docx
《c语言物业管理系统.docx》由会员分享,可在线阅读,更多相关《c语言物业管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
c语言物业管理系统
#include
#include
#include
#ifdef__GNUC__
#include
#include
#defineclearclear
#defineSleep(x)usleep(x##000)
#endif
#ifdef_MSC_VER
#include
#include
#defineclearsystem("cls")
#endif
#defineTRUE1
#defineFAUSE0
typedefstructper
{
charname[20];
intsex;
charIDcard[19];
charphone[12];
intbuild_num;
intunit_num;
inthouse_num;
floatarea;
floatarea_price;
floatcharge;
charremarks[200];
structper*next;
}PERSON;
voidzhuce();
intlogin();
PERSON*Getdata(FILE*fp);
voidadd_person();
voiddel(PERSON*L);
voidchange(PERSON*L);
voidsort_All(PERSON*L);
voidpay(PERSON*L);
voidsort_B_num(PERSON*L);
voidmenu_1();
voidmenu_2();
intmain()
{
intcheck,a;
printf("\t**************************Wele!
***********************");
printf("\n\t\t1.注册");
printf("\n\t\t2.登录");
printf("\n\t\t0.退出");
printf("\n\t--请输入--:
");
scanf("%d",&a);
clear;
switch(a)
{
case0:
{
printf("\t\t--感谢使用本系统!
--");
Sleep(2000);
exit(0);
}
case1:
{
zhuce();
clear;
check=login();
while(check==FAUSE)
{
printf("\n用户名或密码错误。
");
Sleep(2000);
clear;
check=login();
}
clear;
menu_1();
break;
}
case2:
{
check=login();
while(check==FAUSE)
{
printf("\n用户名或密码错误。
");
Sleep(2000);
clear;
check=login();
}
clear;
menu_1();
break;
}
}
return0;
}
voidmenu_1()
{
FILE*fp;
inta;
PERSON*head=NULL;
printf("\t\t*************************欢送使用***************************");
printf("\n\t\t1.用户添加");
printf("\n\t\t2.用户修改");
printf("\n\t\t3.用户删除");
printf("\n\t\t4.用户费用信息查看");
printf("\n\t\t5.用户缴费");
printf("\n\t\t0.退出");
printf("\n\t--请输入--:
");
scanf("%d",&a);
clear;
switch(a)
{
case0:
{
printf("--感谢使用!
--");
Sleep(3000);
exit(0);
}
case1:
{
add_person();
menu_1();
break;
}
case2:
{
fp=fopen("data.dat","r");
head=Getdata(fp);
printf("%s",head->name);
if(head==NULL)
{
printf("没有任何数据");
Sleep(3000);
exit
(1);
}
else
{
change(head);
menu_1();
}
break;
}
case3:
{
if((fp=fopen("data.dat","rb"))==NULL)
{
printf("没有任何数据");
exit
(1);
}
else
{
head=Getdata(fp);
del(head);
menu_1();
}
break;
}
case4:
{
menu_2();
break;
}
case5:
{
fp=fopen("data.dat","rb");
head=Getdata(fp);
if(head==NULL)
{
printf("没有任何数据");
Sleep(3000);
exit
(1);
}
else
{
pay(head);
menu_1();
}
break;
}
}
}
voidmenu_2()
{
FILE*fp;
inta;
PERSON*head=NULL;
printf("\t\t*******用户信息查看**********");
printf("\n\t\t1.按楼号查看用户物业费情况");
printf("\n\t\t2.按费用信息查看用户物业费情况");
printf("\n\t\t0.退出");
printf("\n\t--请输入--:
");
scanf("%d",&a);
clear;
switch(a)
{
case0:
{
printf("感谢使用");
Sleep(3000);
exit(0);
}
case1:
{
fp=fopen("data.dat","rb");
head=Getdata(fp);
if(head==NULL)
{
printf("没有任何数据");
Sleep(3000);
exit
(1);
}
else
{
sort_B_num(head);
menu_2();
}
break;
}
case2:
{
fp=fopen("data.dat","rb");
head=Getdata(fp);
if(head==NULL)
{
printf("没有任何数据");
Sleep(3000);
exit
(1);
}
else
{
printf("\t\t--所有用户物业费情况--\n");
sort_All(head);
menu_2();
}
break;
}
}
}
voidzhuce()
{
FILE*fp;
charad[50],key0[50],key1[50];
charch;
inti,j;
printf("\t\t************用户注册*********");
printf("\n\t--请输入用户名:
");
scanf("%s",ad);
while
(1)
{
i=0;
j=0;
printf("\n\t--请输入密码:
");
//initscr();
//noecho();
while((ch=getch())!
='\r')
{
if(ch==8)
{
printf("\b");
putchar('\b');
if(i>0)
i--;
}
else
{
putchar('*');
//fflush(stdout);
key0[i++]=ch;
}
}
//endwin();
key0[i]='\0';
printf("\n\t--请再次输入密码:
");
//initscr();
//noecho();
while((ch=getch())!
='\r')
{
if(ch==8)
{
printf("\b");
putchar('\b');
if(j>0)
j--;
}
else
{
putchar('*');
key1[j++]=ch;
}
}
//endwin();
key1[j]='\0';
if(strcmp(key0,key1)!
=0)
{
clear;
printf("%d",strcmp(key0,key1));
printf("\t--两次输入密码不符,请重新输入--");
Sleep(2000);
clear;
}
else
{
printf("\n--用户%s注册成功!
--",ad);
Sleep(3000);
fp=fopen("admin.txt","a");
fprintf(fp,"%s\n",ad);
fclose(fp);
fp=fopen("key.txt","a");
fprintf(fp,"%s\n",key0);
fclose(fp);
break;
}
}
}
intlogin()
{
FILE*fp1,*fp2;
charad[50],key[50];
charch_1[50],ch_2[50],ch_0;
inti=0,check=0;
printf("\t\t*******************用户登录*********************");
printf("\n\t\t--[用户名]--");
scanf("%s",ad);
printf("\n\t\t--[密码]--");
//initscr();
while((ch_0=getch())!
='\r')
{
if(ch_0==8)
{
printf("\b");
putchar('\b');
if(i>0)
i--;
}
else
{
putchar('*');
key[i++]=ch_0;
}
}
key[i]='\0';
//endwin();
fp1=fopen("admin.txt","r");
fp2=fopen("key.txt","r");
while(!
feof(fp1))
{
fscanf(fp1,"%s",ch_1);
fscanf(fp2,"%s",ch_2);
//printf("%s",ch_1);
//printf("%s",ch_2);
if(strcmp(ad,ch_1)==0)
{
if(strcmp(key,ch_2)==0)
{
check=TRUE;
break;
}
}
}
fclose(fp1);
fclose(fp2);
returncheck;
}
PERSON*Getdata(FILE*fp)
{
PERSON*head=NULL;
PERSON*p1,*p2;
p1=(PERSON*)malloc(sizeof(structper));
while(fread(p1,sizeof(structper),1,fp)==1)
{
//printf("%s",p1->name);
if(head=NULL)
{
head=p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
p1=p1->next;
p1=(PERSON*)malloc(sizeof(structper));
}
p2->next=NULL;
free(p1);
returnhead;
}
voidsave(PERSON*head)
{
FILE*fp;
PERSON*p;
fp=fopen("data.dat","wb+");
p=head;
while(p!
=NULL)
{
fwrite(p,sizeof(structper),1,fp);
p=p->next;
}
fclose(fp);
}
voidadd_person()
{
PERSON*p1,*p2;
PERSON*head=NULL;
intn;
printf("\n\t\t************用户添加**********");
while
(1)
{
p1=(PERSON*)malloc(sizeof(structper));
printf("\n\n请输入用户信息:
XX性别(0.女性;1.男性)XX联系方式楼号单元号房号平米数每平米价格备注\n\n");
scanf("%s",(*p1).name);
scanf("%d",&(*p1).sex);
scanf("%s",(*p1).IDcard);
scanf("%s",(*p1).phone);
scanf("%d",&(*p1).build_num);
scanf("%d",&(*p1).unit_num);
scanf("%d",&(*p1).house_num);
scanf("%f",&(*p1).area);
scanf("%f",&(*p1).area_price);
scanf("%s",(*p1).remarks);
(*p1).charge=(*p1).area*(*p1).area_price*(-1);
if(head=NULL)
head=p2=p1;
else
{
p2->next=p1;
p2=p1;
}
printf("\n\t--用户添加成功!
--");
printf("\n是否继续添加(1.是;0.否)");
scanf("%d",&n);
if(n==0)
break;
p1=p1->next;
}
p2->next=NULL;
save(head);
}
voiddel(PERSON*L)
{
PERSON*head,*p1,*p2;
PERSON*p;
charname[20],ID[19];
intk=0;
intn;
p=(PERSON*)malloc(sizeof(structper));
p->next=head=L;
while
(1)
{
p1=p;
printf("请输入所要删除的用户XX及XX号\n--");
scanf("%s%s",name,ID);
while(p1->next!
=NULL)
{
if(strcmp(name,p1->next->name)==0&&strcmp(ID,p1->next->IDcard)==0)
{
p2=p1->next;
p1->next=p2->next;
free(p2);
k=1;
break;
}
p1=p1->next;
}
head=p->next;
if(k==0)
printf("\n\t--没有相关用户!
--");
else
{
printf("\n\t删除用户-%s-成功!
",name);
printf("\n是否继续删除(1.是;0否)");
scanf("%d",&n);
if(n==0)
break;
}
}
save(head);
}
voidchange(PERSON*L)
{
charname[20],ID[19];
PERSON*p;
intn,k=0;
while
(1)
{
p=L;
printf("--请输入所需修改用户的XX及XX--\n--");
scanf("%s",name);
scanf("%s",ID);
while(p->next!
=NULL)
{
if(strcmp(p->name,name)==0&&strcmp(p->IDcard,ID)==0)
{
k=1;
break;
}
p=p->next;
}
if(k==0)
{
printf("没有查找到该用户,是否重新输入(1.是;0.否)\n--");
scanf("%d",&n);
if(n!
=1)
break;
}
else
{
clear;
printf("\t--请输入用户-%s-修改后信息--",p->name);
printf("XX性别XX联系方式楼号单元号房号平米数每平米价格备注");
scanf("%s",(*p).name);
scanf("%d",&(*p).sex);
scanf("%s",(*p).IDcard);
scanf("%s",(*p).phone);
scanf("%d",&(*p).build_num);
scanf("%d",&(*p).unit_num);
scanf("%d",&(*p).house_num);
scanf("%f",&(*p).area);
scanf("%f",&(*p).area_price);
scanf("%s",(*p).remarks);
(*p).charge=(*p).area*(*p).area_price;
printf("修改用户成功\n是否继续修改(1.是;0.否)");
scanf("%d",&n);
if(n!
=1)
break;
}
}
save(L);
}
voidpay(PERSON*L)
{
charname[20],ID[19];
PERSON*head,*p;
intn,k=0;
floatmoney;
head=L;
while
(1)
{
printf("--请输入所需缴费的用户及XX--\n--");
scanf("%s%s",name,ID);
p=head;
while(p->next!
=NULL)
{
if(strcmp(p->name,name)==0&&strcmp(p->IDcard,ID)==0)
{
k=1;
break;
}
p=p->next;
}
if(k==0)
{
printf("没有查找到该用户,是否重新输入(1.是;0.否)\n--");
scanf("%d",&n);
if(n!
=1)
break;
}
else
{
printf("请输入缴费金额:
\n--");
scanf("%f",&money);
p->charge+=money;
printf("是否继续缴费(1.是;0.否)");
scanf("%d",&n);
if(n!
=1)
break;
}
}
save(head);
}
voidsort_All(PERSON*L)
{
PERSON*p;
PERSONs[20],a;
intn=0;
inti,j;
p=L;
while(p->next!
=NULL)
{
strcpy(s[n].name,p->name);
s[n].sex=p->sex;
strcpy(s[n].IDcard,p->IDcard);
strcpy(s[n].phone,p->phone);
s[n].build_num=p->build_num;
s[n].unit_num=p->unit_num;
s[n].house_num=p->house_num;
s[n].area=p->area;
s[n].area_price=p->are
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 物业管理 系统