




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计报告 题目1:房产信息管理系统用链表实现数据的处理题目2:纸牌游戏采用数组的方法 班 级姓 名: 指导教师:成 绩:_ 2011 年 6 月 19 日摘要题目:房产信息管理要求:自己建立数据文件的方式对房产信息进行如下管理:查询修改排序关键词:数据结构,链表目录1. 引言 .42. 需求分析43. 概要设计.43.1 查询模块 .43.2 修改模块 43.3 删除模块 43.4 添加模块 .43.5 排序模块 53.6 系统层次图.54.详细设计.54.1 查询模块流程图54.2修改模块流程图64.3删除模块流程图.74.4添加模块流程图85.测试结果.95.1初始界面.95.2房子信息查询界面.95.3面积升序显示房子信息界面.95.4房子信息编辑界面.106.调试分析 .107.设计体会 .118.结束语 .11参考文献. 12附录 .121. 引言 随着人类社会的进步和科学技术的发展,人们生活水平也在不断提高,房地产已经成为当今社会比较热门的行业。由于房地产销售形式复杂,业务种类繁多,信息的管理就显得由为重要。早期的手工管理方式已经不能适应现代房地产的销售的需求,在这种情况下,房地产销售管理系统应运而生。在房地产信息管理系统的系统设计中,对系统流程从功能流程和数据流程进行了分析,对系统功能模块进行了设计,详细说明了数据库的设计过程,并且设计了基础信息、房屋销售、统计报表、系统设置等功能模块,并对系统的界面进行了设计。房地产信息管理系统主要开发了楼盘信息、楼房信息、客户信息、员工信息等模块,这些模块实现了信息录入、修改、管理、查询、统计等功能。其中,统计报表模块具有对信息的分类、汇总打印、报表等功能。系统设置模块可以进行用户权限、密码的设定。关键词:信息管理系统;房地产2. 需求分析 系统要实现:客户在公司网页上可以查询相关房产信息;公司可以在网页上展示相关房产信息;公司可以即时发布最新动态;公司可以通过该系统实现内部管理;公司和客户可以通过该平台进行交流,互动。系统的实现将提高客户和房地产公司之间高效的沟通和交流,有助于房地产公司的经营和客户的购房。3. 概要设计在这一部分要求对程序功能进行细化,确定算法的主要流程(如程序流程图),再进行编程(Coding)。在编程过程中注意程序结构的清晰性,避免出现很多明显的程序逻辑错误和语法错误,提高后面程序调试效率。同时,对存在数据(库)设计的需要提供数据(库)设计说明书。房产信息程序流程图:3.1查询模块查询模块主要是为了方便用户按照不同的查找方式对信息进行查找并在浏览框中输出。3.2修改模块修改模块主要是对房产信息的修改,便于及时更新信息。3.3删除模块删除模块主要是用来删除系统中的一个房产对象的所有信息的。3.4添加模块添加模块主要是为了对房产进行添加新信息。3.5排序模块排序模块主要是为了按房子面积从小到大排序。3.6系统层次图:房产信息管理程序查询修改删除添加排序 图1-1系统层次图 4.详细设计4.1查询模块流程图在本函数中,首先定义了一些结点,将相应编辑框中的数据放到链表,再定义链表的长度。以二进制读方式打开文件,通过房主名和地址进行查询。如果没有该房源号和地址名,则查询失败,则显示出现错误。具体实现流程图如图2-1所示。开始输出该房子全部信息选择要查找的数据输入查找的信息Y满足查询条件?没有要查询的信息N Y结束 4.2修改模块流程图在修改模块中,首先定义一些结点,将修改后的编辑框中的数据放到结点中,再将结点内的数据复制给对应的链表。以二进制写方式打开文件,然后用链表将修改后的信息写入文件中,最后后关闭文件。具体的实现过程如图3-1所示。开始选择要修改的房子覆盖原有数据,将新数据写入文件中关闭文件结束图3-1 修改模块流程图4.3删除模块流程图在删除模块中,打开txt文件后,用链表指针找到要删除的信息的结点,将该结点的前驱结点指向其后继节点,即删除了该结点。具体的实现如图4-1所示开始选择要删除的房子删除代表该房子的结点关闭文件结束图4-1 删除模块流程图4.4添加模块流程图在本函数中,首先定义了一些结点,将相应编辑框中的数据放到结点中,再定义结点的长度,然后将结点里的数据复制到相应的链表中。以二进制读方式打开文件,逐一读出系统已有的信息,与新添加的信息进行比较,判断房源号是否重复,如有重复,则结束,重新添加。当循环结束后,关闭文件。如果房源号没有重复,则再以二进制写方式打开.txt文件,将添加的信息写入其中,最后关闭文件。具体实现流程图如图5-1所示。开始输入添加的房子信息房主名是否重复YN进行添加结束图5-1 添加模块流程图5.测试结果5.1初始界面:5.2房子信息查询界面: 5.3面积升序显示房子信息界面:5.4房子信息编辑界面:6.调试分析编制房产信息管理程序时,用到了很多语句,如结构体数组,字符串,字符数组,还有for循环语句,if判断语句。文件的二进制读写打开,读出写入,关闭等。在编写删除函数时,对如何删除文件中的一个房产信息,不太明白,使之调试时出错,后来在同学的帮助下,利用了单链表删除时的方法,让所要删除的信息后面的数组均前移一位,也就是将它们的数组数由cii+1变成cii,使之覆盖cii原有的数据,这样就删除了原来在该数组内的全部信息。其次,在按面积或价格范围查询时,对如何选出在某范围内的数据,及如何用for循环语句对系统的所有信息进行判断,判断是否在所要查询的范围之内,不能很好的联系在一起,这是感觉缺少语句,所以系统提示有错误,在看了编程类的书之后,找到了解决的方法。房产信息管理程序,在编译的时候,由于对话框之间的衔接不太懂,所以在按浏览全部房产信息的时候,没有弹出显示了全部房产信息的对话框,后来在同学的帮助下,找出了原因,原因是由于没有对所要弹出的对话框新建一个类,也没有将这个对话框的类与“浏览全部房产信息”的按钮衔接。其次,在户型查询的时候,输入一个系统没有的关键字,按下查询后,系统没有提示“没有所要查询的信息”,找到了解决的方法,很容易的加了进去,改完后的程序,在输入系统没有的信息时便能提示“没有所要查询的信息”的对话框。可要输入系统有的信息时,虽然查询出满足条件的信息,可还是会弹出此对话框,后来在仔细查看了程序代码的执行顺序后,找到了原因,使之运行正确了。7.设计体会本实验,对于我来说是一个学习的过程,使我从一个对软件工程只有初步了解到现在可以熟练的掌握其中的一些控件,并合理的利用它们编写题目的要求。对于如何建立类向导,如何建立成员函数,如何衔接对话框与对话框,以及学会如何在遇到问题的时候,有方向的查看错误,解决错误。我觉得这次的课设让我收获了很多,通过编制房产信息管理程序,让我查阅了很多相关的书籍,把自己的不足弥补了很多。这个房产信息管理系统中,我用到了结构体数组,字符串之间的传值,文件的二进制读写打开,关闭等等。这些都是我以前不太了解的,对他们的了解也只是初步的,可要是想把它们联系在一起,合理的结合,就被难倒了,可通过这个实验,通过老师同学的帮助,和查阅相关的书籍,将它们合理的结合在一起了,并实现了添加,修改等功能。通过本次实验,使我基本操作有了一定的思路,知道该从哪里着手去完成一项功能编译,也让我学会了如何通过书籍查阅到自己想要的信息,并有一个思维方向去解决编译时出现的问题,提高了我的编程效率,我想这对我以后的学习会有很大的帮助,会让我有信心去完成下一个实验。8.结束语通过这次数据结构课程设计,使我对软件的界面设计有了一个比较深刻的了解,使我感觉到到,一个优秀的软件,不仅仅是可以运行的,更应该具有人性化的界面,协调的布局,合理的结构,良好的性能和一定的容错性。一个人要完成所有的工作是非常困难和耗时的。在以后的学习中我会更加注意各个方面的能力的协调发展,选择一两门技术进行深入研究,成为一个既可以统筹全局,又有一定技术专长的优秀的程序开发人员。参考文献1严蔚敏 吴伟名 编著,数据结构,清华大学出版社,2007年9月2谭浩强 编著,c语言程序设计,清华大学出版社。附录完整代码:#include#include#include#include #define OK 1#define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW -2#define PR printf#define SIZE 10#define MAXSIZE 10#define maxint 32767typedef struct house/*定义房子类型*/char house_name8;char place9;int fare;struct house *next_house;house;house *init_house()/初始化链表house *l;l=(house*)malloc(sizeof(house);if(l=NULL)exit(OVERFLOW);l-next_house =NULL;return l;int input(char *a,house *l)/*判断房主名是否输入正确*/ house *p=l; for(p=p-next_house ;p!=NULL;p=p-next_house)if(strcmp(a,p-house_name)=0)return 1;return 0;int input1(char *a,house *l)/*判断地址是否输入正确*/ house *p=l; for(p=p-next_house ;p!=NULL;p=p-next_house)if(strcmp(a,p-place)=0)return 1;return 0;int deleteList(house *l,char *name)/*删除结点*/house *p;p=l-next_house; if(strcmp(name,p-house_name )=0) l-next_house=p-next_house; free(p); return OK; while (p) if(strcmp(name,p-next_house-house_name )=0) p-next_house=p-next_house-next_house; free(p-next_house); return OK; p=p-next_house; return ERROR;int insert_house(house *l, char *house_name,char *start_place,int fare)/*插入结点*/house *p;p=(house*)malloc(sizeof(house);strcpy(p-house_name ,house_name);strcpy(p-place ,start_place);p-fare =fare;p-next_house =l-next_house ;l-next_house =p;return OK;int find_house_name(house *l,char *name)/*通过户主名查找*/int i=0;house *p;p=l-next_house;for(;p!=NULL;p=p-next_house )if(strcmp(name,p-house_name )=0)PR( 户主 地址 面积n);PR(%8s%8s%8d平米nn,p-house_name ,p-place ,p-fare );+i;if(i0)return OK;elsePR(对不起,无 %s 的房子!n,name);return ERROR;int find_place(house *l,char *temp_place)/*通过地址查找*/house *p;int i=0;p=l-next_house;for(;p!=NULL;p=p-next_house )if(strcmp(temp_place,p-place)=0)PR( 户主 地址 面积n);PR(%8s%8s%8d平米nn,p-house_name ,p-place ,p-fare );+i;if(i0)return OK;elsePR(对不起,无 %s 的房子!n,temp_place);return ERROR;int creat_house(house *l)/*读取文件创建房子链表*/int i,num;char house_name9;char place9;int fare;char name9;FILE *f;char filename=.house.txt;if(f=fopen(filename,r)=NULL)printf(can not open file to read(fscanf):%sn,filename);return ERROR;fscanf(f,%d,&num);for(i=0;inext_house ;p!=NULL;p=p-next_house,i+);return i;int find(house *l)/*将链表中数据写入文件中*/house *p;FILE *fw;char tempname=.Temp.txt;char filename=.house.txt;if(fw=fopen(tempname,w+)=NULL)printf(can not open file to read(fscanf):%sn,tempname);return ERROR;fprintf(fw,%dn,out_length(l);for(p=l-next_house;p!=NULL;p=p-next_house)fprintf(fw,%-8s%-8s%-5dn,p-house_name,p-place,p-fare);fclose(fw);if(remove(filename) != 0) printf(删除文件%s失败n,filename);return ERROR;if (rename(tempname, filename)!=0) printf(重命名文件 %s 失败n, tempname, filename); return ERROR;return OK;int addhouse(house *l)/*添加房子*/ char temp_num9;char temp_place9;int temp_fare; PR(请输入户主名,没有户主请输入NULL:);scanf(%s,temp_num);getchar();PR(请输入地址:);scanf(%s,temp_place);getchar();PR(请输入面积:);scanf(%d,&temp_fare);getchar();if(insert_house(l,temp_num,temp_place,temp_fare) find(l); return OK; return ERROR;int cuthouse(house *l)/*删除房子*/ char house_name9; PR(请输入户主名:);scanf(%s,house_name);getchar();if(!input(house_name,l)return ERROR;if(deleteList(l,house_name) find(l); return OK;return ERROR;int xiugai(house *l)/*修改房子*/char ch;house *p; char temp_num9; char temp_place9; int temp_fare; PR(请输入户主名:);scanf(%s,temp_num);getchar();if(!input(temp_num,l)return ERROR;PR(1.房主名 2.地址 3.面积n);PR(请输入要修改的信息:);ch=getchar(); p=l-next_house; while (p) if(strcmp(temp_num,p-house_name )=0)break; p=p-next_house; switch(ch)case 1:PR(请输入新的户主名:);scanf(%s,temp_num);getchar();strcpy(temp_place,p-place);temp_fare=p-fare;break;case 2:PR(请输入新的地址:);scanf(%s,temp_place);getchar();strcpy(temp_num,p-house_name);temp_fare=p-fare;break;case3:PR(请输入新的面积:);scanf(%d,&temp_fare);getchar();strcpy(temp_num,p-house_name);strcpy(temp_place,p-place);break; strcpy(p-house_name ,temp_num);strcpy(p-place ,temp_place);p-fare=temp_fare;find(l);return OK;house *paixu(house *l)house *p,*q,*temp;house *link=init_house();p=l-next_house;q=link;for(p=l-next_house;p!=NULL;p=p-next_house)if(link-next_house=NULL)/*链表为空,直接插入*/ temp=(house*)malloc(sizeof(house); if(temp=NULL)exit(OVERFLOW); strcpy(temp-house_name,p-house_name); strcpy(temp-place,p-place);/*写入数据*/ temp-fare=p-fare; temp-next_house=NULL; link-next_house=temp; else /*插到第一个大于它的后面*/ q=link; while(q-next_house!=NULL) if(p-fare)next_house-fare) temp=(house*)malloc(sizeof(house); if(temp=NULL)exit(OVERFLOW); strcpy(temp-house_name,p-house_name); strcpy(temp-place,p-place);/*写入数据*/ temp-fare=p-fare; temp-next_house=q-next_house; q-next_house=temp; break; /end if else q=q-next_house; /*向后移动指针*/ if(q-next_house=NULL) temp=(house*)malloc(sizeof(house); if(temp=NULL)exit(OVERFLOW);strcpy(temp-house_name,p-house_name);strcpy(temp-place,p-place);/*写入数据*/temp-fare=p-fare;temp-next_house=NULL;q-next_house=temp;q=q-next_house;/eng if /end while /end elsereturn link;int print_house(house *l)/*将房子信息全部输出*/house *p=l; PR( 户主 地址 面积n);for(p=p-next_house ;p!=NULL;p=p-next_house ) if(strcmp(p-house_name,NULL)=0)strcpy(p-house_name, ); PR(%8s%8s%8d平米n,p-house_name ,p-place,p-fare );PR(*n);return OK;void TOP1() PR( *n); PR( *-房产管理系统选择菜单-*n); PR( *-清除屏幕-Q *n); PR( *-房子信息查询-1 *n); PR( *-面积升序显示房子信息-2 *n); PR( *-房子信息编辑-3 *n); PR( *-退出-4 *n); PR( *n);int main()char ch,place9,name8;int t=1;house *tr=init_house();creat_house(tr);while(t=1)int t1=1,t3=1;TOP1();PR(请选择: );scanf(%c,&ch);getchar();switch(ch)case Q:system(cls);continue; /*-清除屏幕-Q*/case 1:/*房子信息查询-1*/char ch2,choic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道砟购买合同范本
- 科技助力高效办公环境建设
- 科技推动下的移动营业厅转型升级
- 科技产业园区中的绿色物流规划实践
- 建筑材批发商市场渠道拓展策略优化考核试卷
- 科技企业如何通过设计提升品牌形象
- 东莞拆迁合同范本
- 承办会议合同范本
- 制定清晰的工作优先级计划
- 电信业务在智能家居中的推广与应用策略
- 施工作业申请表
- 浸出液的净化与沉积
- 银行间本币市场交易员资格考试真题模拟汇编(共586题)
- 苯乙酸安全技术说明书(msds)
- 幼儿园大班《防欺凌》教案5篇,幼儿园大班防欺凌活动教案
- 卫生管理初中级职称大纲
- 《当代网络文学作品发展研究6300字(论文)》
- 孟氏骨折与盖氏骨折讲解学习
- GB/T 9386-2008计算机软件测试文档编制规范
- GB/T 25137-2010钛及钛合金锻件
- 第2课《说和做》课件(共30张ppt) 部编版语文七年级下册
评论
0/150
提交评论