房屋租赁管理报告书.docx

上传人:b****6 文档编号:3233121 上传时间:2022-11-20 格式:DOCX 页数:12 大小:67.46KB
下载 相关 举报
房屋租赁管理报告书.docx_第1页
第1页 / 共12页
房屋租赁管理报告书.docx_第2页
第2页 / 共12页
房屋租赁管理报告书.docx_第3页
第3页 / 共12页
房屋租赁管理报告书.docx_第4页
第4页 / 共12页
房屋租赁管理报告书.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

房屋租赁管理报告书.docx

《房屋租赁管理报告书.docx》由会员分享,可在线阅读,更多相关《房屋租赁管理报告书.docx(12页珍藏版)》请在冰豆网上搜索。

房屋租赁管理报告书.docx

房屋租赁管理报告书

合肥学院C语言课程设计报告

一、需求分析

编写一个简单的房屋租赁管理程序,帮助管理房屋租赁管理事物。

要求具有备忘录房屋项目管理和租赁信息管理的功能。

其中房屋项目管理包括房屋项目增加、删除、和修改等功能。

租赁信息管理包括房租租售登记表输入和房屋出租查询。

本题程序应提供的基本管理功能有:

1)添加:

即增加一条房屋信息到房屋项目中;

2)显示:

即在屏幕上显示所有房屋项目中的信息。

3)存储:

即将房屋项目信息保存在一个文件中。

4)装入:

即将文件中的信息读入程序。

5)查询:

可根据房屋编号查找房屋项目信息,若找到,显示在屏幕上。

6)修改:

可修改某编号的房屋项目信息。

二、算法设计:

1:

设计思想:

主流程图:

子菜单流程图

子菜单流程图

算法思想:

创建房屋结构体类型,每条房屋项目信息都用该结构体来实现,包含地点,面积,户主,租金,租赁人等。

用一个单向链表来管理房屋项目信息,通过链表的遍历可以操作这些数据。

本程序共使用了两个级的菜单。

主菜单,子菜单。

共使用了五个子函数,他们的功能分别是:

插入、删除、输出、修改、和查找,通过主函数的调用实现程序的要求。

主函数使用两个switch语句,得到两个次级菜单。

再在switch语句的case中调用子函数。

本系统用到了以下得知识点:

1:

面向过程程序设计方法

2:

界面制作,switch的应用。

3:

动态数组(链表)。

4:

文件的读写。

2:

设计表示:

输出子函数:

{voidoutput(house*head,intflag)

{

while(head!

=NULL)

{

printf("户主名:

%s\n",head->house[0]);

printf("租户名:

%s\n",head->house[1]);

printf("地点:

%s\n",head->house[2]);

printf("面积:

%s\n",head->house[3]);

printf("租金:

%s\n",head->house[4]);

printf("\n");

head=head->next;

if(flag)

{

printf("按任意键结束\n");

getchar();

getchar();

return;

}

}

printf("按任意键结束\n");

getchar();

getchar();

}

}

该部分是输出子函数,功能是将数据库中的数据输出,前提是数据库中必须要有数据,否则就会出现错误。

在没有错误的情况下,它将会按如下例子输出:

:

户主名:

bob

租户名:

tom

地点:

anhui

面积:

80

"租金:

900

按任意键结束

查找子函数

voidSearch(intn,house*head)

{

charst[100];

intt,flag=0;

system("cls");

t=n-1;

if(n==1)printf("\t请输入待查找户主姓名:

");

if(n==3)printf("\t请输入待查找租主姓名:

");

if(n==5)printf("\t请输入待查找房子地点:

");

if(n==2)printf("\t请输入待查找房子面积:

");

if(n==4)printf("\t请输入待查找房子租金:

");

getchar();

gets(st);

while(head!

=NULL)

{

if(strcmp(head->house[t],st)==0)

{

output(head,1);

flag++;

}

head=head->next;

}

if(flag!

=0)printf("查找到%d位满足条件\n",flag);

elseprintf("未找到满足条件房子信息\n");

getchar();

}

该部分是查找子函数,其主要功能是按照操作的要求查找数据库中的数据,并输出到显示器上。

如果数据库中没有要找的数据,将会提示,没有符合要求的数据。

若有数据将会像如下例子那样的输出:

请输入待查找的户主姓名:

户主名:

bob

租户名:

tom

地点:

anhui

面积:

80

"租金:

900

修改子函数

voidChange(house*head,intn)

{

charch[5][100];

FILE*fp;

house*p=head;

inti;

system("cls");

getchar();

printf("请输入要修改房屋户主名:

");

gets(ch[0]);

printf("请输入要修改房屋租主名:

");

gets(ch[1]);

printf("请输入要修改房屋地点:

");

gets(ch[2]);

printf("请输入要修改房屋面积:

");

gets(ch[3]);

printf("请输入要修改面积租金:

");

gets(ch[4]);

while(p!

=NULL)

{

if(strcmp(p->house[n],ch[n])==0)

{

for(i=0;i<=4;i++)

strcpy(p->house[i],ch[i]);

fp=fopen("xinxi.txt","w");

while(head!

=NULL)

{

fprintf(fp,"%s",head->house[0]);

fprintf(fp,"%s",head->house[1]);

fprintf(fp,"%s",head->house[2]);

fprintf(fp,"%s",head->house[3]);

fprintf(fp,"%s",head->house[4]);

fprintf(fp,"\n");

head=head->next;

}

fclose(fp);

return;

}

head=head->next;

}

printf("没有找到符合条件信息,按任意键结束\n");

getchar();

}

该部分是修改子函数,首先查找要修改的数据,然后在说明要修改哪个信息,该子函数就会在数据库中将原有的数据修改,如果找不到要修改的数据,将会提示,没有找到符合条件的信息,按任意键结束。

添加子函数

voidInsert()

{

intn,i;

house*q,*p;

FILE*fp;

fp=fopen("shujvku.txt","a+");

if(fp==NULL)

{

printf("原文件损坏,请检查后重新运行\n");

getchar();

return;

}

printf("请输入需要添加的个数:

");

scanf("%d",&n);

getchar();

for(i=0;i

{

p=(house*)malloc(sizeof(house));

printf("请输入需添加户主名:

");

gets(p->house[0]);

printf("请输入需添加租主名:

");

gets(p->house[1]);

printf("请输入需添加房屋地点:

");

gets(p->house[2]);

printf("请输入需添加房屋面积:

");

gets(p->house[3]);

printf("请输入需添加房屋租金:

");

gets(p->house[4]);

fprintf(fp,"\n");

fprintf(fp,"%s",p->house[0]);

fprintf(fp,"%s",p->house[1]);

fprintf(fp,"%s",p->house[2]);

fprintf(fp,"%s",p->house[3]);

fprintf(fp,"%s",p->house[4]);

if(i==0)tail->next=p;

elseq->next=p;

q=p;

}

q->next=NULL;

tail=q;

fclose(fp);

}

该部分是添加子函数,将要增加的数据添加到数据库中。

格式是,户主名、租赁人名、地点、面积、租金。

首先该子函数会提示增加几条信息。

然后将会将你输入的信息输入到数据库中。

删除子函数

house*Del(intn,house*head)

{

charst[100];

intt,flag=0,judge;

house*p,*q;

system("cls");

t=n-1;

if(n==1)printf("\t请输入需删除户主名:

");

if(n==2)printf("\t请输入需删除租主名:

");

getchar();

gets(st);

while(strcmp(head->house[t],st)==0)

{

head=head->next;

flag++;

}

q=p=head;

while(p!

=NULL)

{

judge=1;

if(strcmp(p->house[t],st)==0)

{

q->next=p->next;

judge=0;

flag++;

}

if(judge==1)q=q->next;

p=q->next;

}

if(flag!

=0)

{

WritenFile(head);

printf("删除%d位满足条件\n",flag);

}

elseprintf("未找到满足条件房屋信息\n");

getchar();

returnhead;

}

该部分是删除子函数,将会按操作删除数据库中的数据信息。

如果数据库中有要删除的数据信息,该数据信息将会被删除,如果没有,将会提示,未找到符合条件的房屋信息。

3:

设计注释:

本程序共使用了两个级的菜单。

主菜单,子菜单。

共使用了五个子函数,他们的功能分别是:

插入、删除、输出、修改、和查找。

其中输出查找插入和修改的子函数都已调试通过。

部分的子函数性能不稳定,比如删除和插入。

由于自己的知识有限,暂时不能解决这些问题,也没有完成在任务之外的任何功能。

本程序基本上都是用户自己选择使用的功能,然后由主函数调用子函数实现。

我创建了房屋结构体类型,每条房屋项目信息都用该结构体来实现,包含地点,面积,户主,租金,租赁人等。

用一个单向链表来管理房屋项目信息,通过链表的遍历可以操作这些数据。

 

4:

算法设计的新思想:

除了照着老师给我的任务书,写自己的程序,自己也是照着自己的思想写的。

比如主函数,我只用了switch语句来写,没有任何其他的东西了。

这样就觉得很简单明了。

而且看起来也很舒服。

子函数的都使用一开始的结构体完成的,紫蝶结构体并不是定义同类型的多种变量,而是定义了一个二维的数组,因为我们输入的都是字符,所以这样操作起来会很简单。

还有就是本程序都是使用简单的一看就能明了的语句书写,在一些语句块都加了注释,这样不管是修改还是调试,都很容易。

除此之外,没有其他的新方法,或者新的应用。

三、用户手册:

用户在使用时先要在桌面建立一个文件(shujvku.txt)。

输入的信息最长字符为100。

先要输入户主名字,再是租赁人的名字,接下来是地点、面积和租金。

例如(bobtombeijing10010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1