物业管理系统C语言程序实习报告材料.docx
《物业管理系统C语言程序实习报告材料.docx》由会员分享,可在线阅读,更多相关《物业管理系统C语言程序实习报告材料.docx(34页珍藏版)》请在冰豆网上搜索。
物业管理系统C语言程序实习报告材料
本科生课程论文封面
课程名称C语言程序课程设计
教师姓名
本科生姓名
本科生学号
本科生专业
所在院系
类别:
工科
日期:
摘要:
本文完成了综合练习中第20题物业管理系统的编程,程序用于小区的管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理,并用文件存储相关信息。
文中给出了需求分析、功能模块图、数据结构、详细设计、程序运行结果、总结和致谢,
课程设计评语...................................................................................................................................1
个人简介...........................................................................................................................................2
摘要...................................................................................................................................................2
目录...................................................................................................................................................3
题目及要求.......................................................................................................................................4
需求分析...........................................................................................................................................4
功能模块图.......................................................................................................................................4
数据结构...........................................................................................................................................5
源代码...............................................................................................................................................5
程序运行结果..................................................................................................................................21
总结..................................................................................................................................................25
致谢..................................................................................................................................................25
参考文献..........................................................................................................................................25
1、题目要求
用于小区的物业管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理。
要求用文件存储相关信息。
⑴可随时浏览、录入和更改小区住户、收费项目等数据。
⑵可随时增、删、改、查收费项目及其标准。
⑶生成小区住户收费报表(包括全部、已交、欠交)。
2、需求分析
住户信息、物业收费信息要用文件存储(可用一个文件,也可分成两个文件)因而提供文件的输入/输出操作;另外,还要提供键盘式选择菜单以实现功能选择。
3、功能模块图
整个管理系统可以设计为住户信息、物业收费信息的浏览、修改、增加等模块。
依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序的层次结构:
4、数据结构
可以把住户信息、物业收费信息分别放在两个结构体内。
住户信息结构体:
structyezhu{//业主结构体//
charid[100];
charname[20];
intage;
intfamily_num;
intfloor_num;
charroom_num[100];
floatlost;
intarea;
charrz_time[20];
structyezhu*next;
};
物业收费信息结构体:
structwuye{//物业信息结构体//
charID[100];
intlast_year;
intlast_month;
floatmoney;
intto_time;
structwuye*link;
};
5、源代码
程序:
#include
#include
#include
#include
#include//函数声明//
intmainmenu();//主菜单
voidxinximenu();//物业信息菜单
voidtongjimenu();//统计查询菜单
voidmychaozhao();//欠费名单
voidyezhumenu();//业主菜单
voidwuyemenu();//物业菜单
voidmyAdd1();//录入业主信息
voidmyAdd2();//录入物业信息
voidmyDelete1();//删除业主信息
voidmyDelete2();//删除物业信息
voidmyReplace1();//修改业主信息
voidmyReplace2();//修改物业信息
voidDisplay1();//浏览业主信息
voidDisplay2();//浏览物业信息
voidmyfind();//查询缴费
voidDisplay(structwuye*p);
voidRead1();
voidRead2();
voidsave1(structyezhu*p);//保存业主信息至文件
voidsave2(structwuye*p);//保存物业信息至文件
structyezhu*find1(char*id);//查找业主信息
structwuye*find2(char*id);//查找物业信息`
structyezhu*myAdd3(structyezhu*p);//添加业主信息
structwuye*myAdd4(structwuye*p);
structyezhu{//业主结构体//
charid[100];
charname[20];
intage;
intfamily_num;
intfloor_num;
charroom_num[100];
floatlost;
intarea;
charrz_time[20];
structyezhu*next;
};
structwuye{//物业信息结构体//
charID[100];
intlast_year;
intlast_month;
floatmoney;
intto_time;
structwuye*link;
};
structyezhu*phead;//业主头结点
structwuye*pHead;//物业头结点
intmainmenu()//主菜单//
{
intn;
printf("**************************欢迎进入小区物业管理系统***************************\n");
printf("-----------------------------------------------------------------------------\n");
printf("***************〓请选择〓(1~3)***************\n");
printf("**\n");printf("**\n");
printf("*⒈物业信息系统;*\n");
printf("**\n");
printf("*⒉统计查询系统;*\n");
printf("**\n");
printf("*⒊退出程序。
*\n");
printf("**\n");
printf("***************************************\n");
printf("请您输入选项★№:
");
scanf("%d",&n);
returnn;
}
voidxinximenu()//物业信息菜单显示//
{
intchoose;
do{
printf("*****************************物业信息系统************************************\n");
printf("-----------------------------------------------------------------------------\n");
printf("***************〓请选择〓(1~3)***************\n");
printf("**\n");
printf("**\n");
printf("*⒈小区业主信息管理;*\n");
printf("**\n");
printf("*⒉物业费用信息管理;*\n");
printf("**\n");
printf("*⒊返回主菜单。
*\n");
printf("***************************************\n");printf("请您输入选项★№:
");
scanf("%d",&choose);
switch(choose)
{
case1:
yezhumenu();
break;
case2:
wuyemenu();
break;
case3:
return;
default:
printf("输入错误,请重新输入:
\n");
}
}while
(1);
}
voidtongjimenu()//统计查询菜单显示//
{
intchoose;
do{
printf("******************************统计查询系统***********************************\n");
printf("-----------------------------------------------------------------------------\n");
printf("***************〓请选择〓(1~3)***************\n");
printf("**\n");
printf("**\n");
printf("*⒈查询缴费信息;*\n");
printf("**\n");
printf("*⒉欠费名单一览表;*\n");
printf("**\n");
printf("*⒊返回主菜单。
*\n");
printf("***************************************\n");
printf("请您输入选项★№:
");
scanf("%d",&choose);
switch(choose)
{
case1:
myfind();
break;
case2:
mychaozhao();
break;
case3:
return;
default:
printf("输入错误,请重新输入!
\n\n");
}
}while
(1);
}
voidyezhumenu()//业主菜单函数
{
intchoose;
do{
printf("********************************业主信息编辑系统******************************-\n");
printf("-------------------------------------------------------------------------------\n");
printf("****************〓请选择〓(1~5)***************\n");
printf("**\n");
printf("**\n");
printf("*⒈业主信息录入;*\n");
printf("**\n");
printf("*⒉业主信息修改;*\n");
printf("**\n");
printf("*⒊业主信息删除;*\n");
printf("**\n");
printf("*⒋业主信息浏览;*\n");
printf("**\n");
printf("*⒌返回上级菜单。
*\n");
printf("****************************************\n");
printf("请输入选项★№:
");
scanf("%d",&choose);
//getchar();
switch(choose)
{
case1:
myAdd1();
break;
case2:
myReplace1();
break;
case3:
myDelete1();
break;
case4:
Display1();
break;
case5:
return;
default:
printf("输入错误,请重新输入:
\n");
}
}while
(1);
}
voidmyAdd1()//录入业主信息//
{
structyezhu*p;
p=(structyezhu*)malloc(sizeof(structyezhu));
printf("请录入业主信息:
\n");
printf("ID:
");
scanf("%s",p->id);
printf("姓名:
");
scanf("%s",p->name);
printf("年龄:
");
scanf("%d",&p->age);
printf("家庭成员数:
");
scanf("%d",&p->family_num);
printf("所在楼号:
");
scanf("%d",&p->floor_num);
printf("单元房间号:
");
scanf("%s",p->room_num);
printf("住宅面积:
");
scanf("%d",&p->area);
printf("入住时间:
");
scanf("%s",p->rz_time);
myAdd3(p);
save1(p);
printf("录入成功!
\n");
}
structyezhu*myAdd3(structyezhu*p)//添加业主信息结点//
{
structyezhu*t;
if(phead==NULL)
{
phead=p;
p->next=NULL;
}
else
{
t=phead;
while(t->next!
=NULL)
t=t->next;
t->next=p;
p->next=NULL;
returnphead;
}
}
voidmyReplace1()//修改业主信息
{
structyezhu*k;
charid[100];
printf("请输入要修改的业主ID:
");
scanf("%s",id);
k=find1(id);
if(k!
=NULL)
{
printf("请输入要修改的业主信息:
\n");
printf("ID:
");
scanf("%s",k->id);
printf("姓名:
");
scanf("%s",k->name);
printf("年龄:
");
scanf("%d",&k->age);
printf("家庭成员数:
");
scanf("%d",&k->family_num);
printf("所在楼号:
");
scanf("%d",&k->floor_num);
printf("单元房间号:
");
scanf("%s",k->room_num);
printf("住宅面积:
");
scanf("%d",&k->area);
printf("入住时间:
");
scanf("%s",k->rz_time);
save1(k);
printf("修改成功!
\n");
}
else
{
printf("无此业主ID!
\n");
return;
}
}
structyezhu*find1(char*id)//通过ID查找业主信息//
{
structyezhu*p;
p=phead;
while(p!
=NULL)
{
if(strcmp(p->id,id)==0)
returnp;
p=p->next;
}
returnNULL;
}
voidDisplay1()
{
structyezhu*p;
p=phead;
while(p!
=NULL)
{
printf("\n\n");
printf("ID:
%s\n",p->id);
printf("姓名:
%s\n",p->name);
printf("年龄:
%d\n",p->age);
printf("家庭成员数:
%d\n",p->family_num);
printf("所在楼号:
%d\n",p->floor_num);
printf("单元房间号:
%s\n",p->room_num);
printf("住宅面积:
%d\n",p->area);
printf("入住时间:
%s\n",p->rz_time);
printf("\n\n");
p=p->next;
}
}
voidmyDelete1()
{
structyezhu*p,*pp;
structwuye*k,*kk;
charid[100];
pp=phead;
kk=pHead;
printf("请输入要删除人的ID:
");
scanf("%s",id);
p=find1(id);
k=find2(id);
if(p!
=NULL)
{
if(p==phead)
{
phead=p->next;
free(p);
}
else
{
while(pp->next!
=p)
pp=pp->next;
pp->next=p->next;
free(p);
}
}
else
{
printf("无此业主ID!
\n");
return;
}
printf("删除业主信息成功!
\n");
save1(p);