C语言课程设计报告房产销售信息管理系统_第1页
C语言课程设计报告房产销售信息管理系统_第2页
C语言课程设计报告房产销售信息管理系统_第3页
C语言课程设计报告房产销售信息管理系统_第4页
免费预览已结束,剩余133页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学计算机科学与技术学院C语言课程设计报告题目:房产销售信息管理系统 专业:计算机科学与技术班级:计算机卓越工程师!301班学号: U201314939 姓名:许矶法成绩:指导教师:李开完成日期:2014年2月7日目录TOC\o"1-5"\h\zー、系统需求分析 1二、总体设计 2三、数据结构设计 5四、详细设计 10五、系统实现 10六、运行测试与结果分析 95七、总结 120ハ、参考文献 121九、指导教师评语 122ー、系统需求分析对所要解决的问题进行详细的分析,将题目要求实现的功能阐述清楚,包括对输入数据的描述,对输出结果的描述,系统应满足的功能要求和性能要求。通俗地说,就是讲明本课程设计要“做什么”、“做到什么程度”。房产销售信息管理系统,提供开发商信息,楼盘信息,房产销售信息三类信息的录入修改删除操作。提供查询与统计功能:查询功能:1)开发商基本信息查询实现两个功能。①以开发商名称为条件,查找并显示满足条件的开发商基本信息,要求提供模糊査询功能。例如,查找并显示开发商名称中包含“国际”的所有开发商基本信息。②以房屋总套数为条件,查找并显示满足条件的开发商基本信息。例如,查找并显示房屋总套数大于等于1000套且小于等于5000套的所有开发商基本信息。2)楼盘基本信息查询实现两个功能。①以楼盘名称为条件,查找并显示满足条件的楼盘基本信息。例如,查找并显示名称为“海联时代广场”的楼盘基本信息。②以开盘日期和每平米均价为条件,查找并显示满足条件的楼盘基本信息。例如,查找并显示开盘日期在yl年ml月dl日至y2年m2月d2日之间,每平米均价大于等于5000元且小于等于8000元的所有楼盘基本信息。3)房产销售信息查询实现两个功能。①以身份证号为条件,查找并显示满足条件的房产销售信息。例如,查找并显示身份证号为的房产销售信息。②以客户姓名和购房日期为条件,查找并显示满足条件的所有房产销售信息。例如,查找并显示客户姓名中包含“建国”且购房日期在“2012年5月”和“2013年2月”之间的所有房产销售信息。统计功能:

①统计各开发商房产开发总建筑面积和销售总额,按销售总额从高到低排序后输出。排名开发商名称房屋总套数总建筑面积销售总额12 ②输入年份,统计该年度十二个月份房产销售的套数和销售金额。年份:2011月份销售总套数总建筑面积销售总金额12 12③统计各楼盘房屋套数、售出套数、销售金额,按销售金额从高到低排序后输出。排名楼盘名称房屋套数售出套数销售金额12 ④分别统计出售率最高的5个楼盘,从高到低排序后输出楼盘名称、楼盘房屋套数、售出套数。排名楼盘名称房屋套数售出套数出售率12 5二、总体设计对有关系统全局问题给出总体的解决方案,也就是从全局的角度考虑“怎么做”。主体数据结构由三向链表组成。录入信息时都采用后进先出式。录入楼盘时,根据开发商名称确定开发商结点。录入购房信息时,由于购房信息不包括开发商名称,故采取遍历楼盘结点的方式根据楼盘名搜索楼盘结点。修改及删除开发商时根据开发商名称查找。修改及删除楼盘结点时先根据开发商名称确定开发商结点,再根据楼盘名称在此结点下搜寻楼盘结点。删除及修改房产销售信息时先根据楼盘名称确定楼盘结点,在根据身份证号确定购房信息结点。•数据查询功能:.开发商信息查询:a)按名称查找,遍历开发商链表,找到就输出b)按房屋套数:遍历输出.楼盘信息查询:a)按楼盘名称:遍历开发商链表,没到ー个开发商结点,遍历该结点下的楼盘链,输出符合条件的楼盘信息b)按开盘日期和平米均价:遍历开发商链表,没到ー个开发商结点,遍历该结点下的楼盘链,输出符合条件的楼盘信息.房产销售信息查询:a)按身份证:遍历链表,找到符合条件的销售信息就输出并退出遍历。b)按客户姓名与购房日期:遍历链表,输出所有符合条件的销售信息。•数据统计:.统计开发商总建筑面积和销售额:在录入楼盘及购房者信息的同时就进行开发商信息的统计,输出前进行排序后输出,输出时ー页输出五个开发商信息.输入年份,统计该年度十二个月份房产销售的套数和销售金额。定义ー个结构,该结构的内容包括月份,销售套数和销售金额遍历购房信息链表,根据购房信息中的日期判断是否属于这一年,如果属于这一年的购房日期,则根据日期中的月份进行选择。待遍历完全,输出数据。.统计各楼盘房屋套数、售出套数、销售金额,按销售金额从高到低排序后输出。各楼盘的房屋套数在插入楼盘是已确定,售出套数与销售金额在插入购房信息时确定,之后再调用该统计函数时先使所有楼盘信息连成一条新链,之后排序输出。.分别统计出售率最高的5个楼盘,从高到低排序后输出楼盘名称、楼盘房屋套数、售出套数。先将所有楼盘形成一条链,同时计算出售率,之后进行排序,最后输出。三、数据结构设计对实现系统主体功能的算法所涉及的数据结构进行设计,要求用图或表进行准确、具体地描述,同时需说明数据结构的用法。开发商信息typedefstructbuilder_nodecharbuilder_name[30];charCEO[30];intall_housenum;floatall_area;floatmoney;structbuilder_node*next;structhouses_node*hnext;}BUILDER_NODE;中文字段名代码类型及长度举例开发商名称builder_namechar[30]海天房产CEOCEOchar[30]张:.房屋总套数all_housenumint300总建筑面积all_areafloat340.234总销售额moneyfloat345.23开发商链表指针*nextstructbuilder_node楼盘指针*hnextstructhouses_node功能:用来存储开发商信息楼盘信息/*・楼盘信息链结点结构**/typedefstructhouses_node(charhou_name[30];charbuilder_name[30];chardate[12];charaddress[20];floatarea;inthou_num;floatbuild_area;floatpresqm_price;charlinkman[20];charlinkphone[20];inthou_sell;floatmoney_sell;floatsell_per;structhouses_node*next;structclient*cnext;}H0U_N0DE;中文字段名代码类型及长度举例楼盘名称hou_namechar[30]开发商builder_namechar[30]开盘日期datechar[12]楼盘地址addresschar[20]占地面积areafloat房屋套数hou_numint720建筑面积build_areafloat每平米均价presqm_pricefloat联系人linkmanchar[20]“chenguoqing”联系电话linkphonechar[20]12345678901售出套数hou_sellint销售额money_sellfloat销售率sell_perfloat楼盘指针*nextstructhouses_node购房信息指针*cnextstructclient作用:存储楼盘信息购房信息结构:typedefstructclientcharclientname[20];charid[20];chardate[12];charhousetype[12];charhou_name[30];charbuild_num[10];floatbuild_area;floatpresqm_price;floatdiscount;floatactualprice;charsaleman[20];structclient*next;}CLIENT_N0DE;中文字段名代码类型及长度举例客户姓名clientnamechar[20]身份证号idchar[20]购房日期datechar[12]房型housetypechar[12]“3s2tle2w” 三室两厅ー厨二卫所属楼盘hou_namechar[30]楼栋号build_numchar[10]“03-2-1205”3栋2单元1205号建筑面积build_areafloat每平米单价presqm_pricefloat折扣discountfloat实际交易金额actualpricefloat销售员salemanchar[20]“wangwu”购房信息指针*nextstructclient作用:存储购房信息年度销售typedefstructMONTHSELL(shortmonth;inthouse_num;floatbuilder_area;floatmoney;structmonth_num_money*next;}MONTH_SELL;中文名称代码类型及长度实例月份monthshort12售出套数house_numint234销售面积builder_areafloat234.43销售额moneyfloat453.345指针structmonth_num_money*next功能:统计年度每月销售情况时用以存储信息楼盘销售情况结构typedefstructhou_sellcharhouname[20];intallnum;intsellnum;floatsellmoney;floatsellrate;structhou_sell*next;}HOU_SELL;中文名称代码类型及长度实例楼盘名称hounamechar[20]房屋食数allnumint售出套数sellnumint销售金额sellmoneyfloat销售率sellratefloat指针*nextstructhou_sell功能:在进行楼盘数据统计时,形成长链,用以临时存储楼盘信息四、详细设计结束2.数据维护开发商信息查询第11页共122页房产销售信息查询五、系统实现亘dorm.h#include<gtk/gtk.h>#include<gtk/glkclist.h>#include<stdio.h>#includc<stdlib.h>#include<windows.h>#include<wincon.h>#include<conio.h>#include<string.h>#include<io.h>#include<fcntl.h>#includc<sys\stat.h>#include<ctype.h>#include<time.h>#defineM(x)g_locale_to_utfB(x,-1,NULL,NULL,NULL)typedefstructclient{charclientname[20];charid[20];chardate[12];charhousetype[12J;charhou_name[30];charbuild_num[10];tloatbuild_area;floatpresqm_price;floatdiscount;floatactualprice;charsaleman[20];亘structclient*next;}CLIENT_NODE;/**楼盘信息链结点结构**/typedefstructhouses_node{charhou_name[30];charbuilder_name|30];chardate[12];charaddress[20];floatarea;inthou_num;floatbuild_area;inthou_sell;floatpresqm_price;charlinkman[20];charlinkphone[20];floatmoney_sell;floatsell_per;structhouses_node*next;structclient*cnext;)HOU_NODE;/**开发商信息链结点结构**/typedefstructbuilder_nodecharbuilder_name|30];亘charCEO|30];intall_housenum;floatall_area;floatmoney;structbuilder_node*next;structhouses_node*hnext;}BUILDER_NODE;typedefstructgtk_input//构造输入框时用(GtkWidget"window;〃主窗体GtkWidget*label_tips;〃用于信息提示的标签GtkWidget*button」ogin;〃两个按钮,ー个点击后登录,ー个点击后退出GtkWidget*button_exit;GtkWidget*entry[ll];〃两个文本框,用于输入开发商名和CEO名GtkWidget*label[l1];〃两个标签用于显示username文本框和password文本框提示GtkWidget*vbox;〃垂直布局盒子,包含以卜三个水平布局盒子GtkWidget*hbox[ll];〃包含用户名提示标签和用户名文本框,下面的HBOX作用类似GtkWidget*hbox_button;)GJN;GJNwgt;〃定义为外部变量方便使用/**年度毎月房产销售的套数和销售金额信息链结点结构**/typedefstructmonth_sell{shortmonth;inthouse_num;floatbuilder_area;floatmoney;structmonth_sell"next;}MONTH_SELL;/*・楼盘房屋套数、售出套数、销售金额信息链结点结构**/typedefstructhou_sell{charhouname[20];intallnum;intsellnum;floatsellmoney;floatsellrate;structhou_sell*next;}HOU_SELL;BUILDER.NODE*gp_head=NULL; 主链头指针ッHOU_SELL*hou_sell_head;charbhc[12][30];char*x(12];GtkWidget*clist;gintrow,column;char*gp_bulider_info_filename="builder.dat"; /・开发商基本信息数据文件・/char*gp_houses_info_filename="houses.dat";/・楼盘信息数据文件・/char*gp_client_info_filename="client.daビ; /・买房者信息数据文件・/char*gp_bulider_infoback_filename="builderback.dat"; /・开发商基本信息数据文件・/char*gp_houses_infoback_filename="housesback.dat";/・楼盘信息数据文件・/char*gp_client_infoback_filename="clientback.dat"; /・买房者信息数据文件・/voidon_menu_activate(GtkMenuItem*item,gpointerdata);BOOLLoadDataO;intCreatList(BUILDER_NODE**phead);BOOLSaveData(void);BOOLBackupData(void);BOOLRestoreData(void);voidhelptopic(void);voidshow_about(GtkWidget*widget);voidshow_help(GtkWidget*widget);voidshow_box_builderQ(GtkWidget*widget,gpointerdata);voidquery_builder_name(GtkWidget*widget,gpointerdata);voidshow_box_houQ(GtkWidget*widget,gpointerdata);voidshow_box_clientQ(GtkWidget*widget,gpointerdata);voidinsert_builder(void);voidinsert_hou(GtkWidget*widget,gpointerdata);voidinsert_client(GtkWidget*widget,gpointerdata);voidinsert_builder_(GtkWidget*widget,gpointerdata);voidinsert_hou_(GtkWidget*widget,gpointerdata);voidinsert_client_(GtkWidget*widget,gpointerdata);voidInsertBuilderNode(BUILDER_NODE**gp_head,BUILDER_NODE*hd_insert);BOOLInsertHouNode(BUILDER_NODE*gp_head,HOU.NODE*hou_insert);BOOLInsertClientNode(BUILDER_NODE*hd,CLIENT_NODE*pclient_node);voidModifBuilderNode(GtkWidget*widget,gpointerdata);voidModifBuilderNode_();voidModifBuilderNode_2(GtkWidget*widget.gpointerdata);voidModifHouNode(GtkWidget*widget,gpointerdata);voidModifHouNode_();voidModifHouNode_2(GtkWidget*widget,gpointerdata);voidModifClientNode_2(GtkWidget*widget,gpointerdata);voidModifClientNode_();voidModifClientN(xle(GtkWidget*widget,gpointerdata);voidDelBuilderNode_();voidDelBuilderNodeO;voidDelHouNode_();voidDelHouNode();BU1LDER_NODE*SeekBuilderNode(BUlLDER_NODE*hd,constchar*name);voidSeckBuiIderNode_(GtkWidget*widget.gpointerdata);HOU_NODE*SeekHouNode(HOU_NODE*phou_node,constchar*name);HOU_NODE*SeekHouNodeM(BUILDER_NODE*hd,constchar*hou_name);CLIENT-NODE*SeekClientNode(HOU_NODE*hou_node,constchar*id);CLIENT-NODE*SeekClientN(xleM(BUlLDER_NODE*hd,char*hou_name,char*id);voidDclHouNodeM(BUILDER_NODE*hd);voidDelClientNodeM(HOU_NODE*hou);voidcancel_button(GtkWidget*widget,gpointerwin);voidshow_info(char*x);voidshow_list_build(GtkWidget*widget,gpointerdata);voidshow_list_hou(GtkWidget*widget,gpointerdata);voidshow_Iist_client(GtkWidget*widget,gpointerdata);voidbutton_add_build(gpointerdata);voidb_to_c(BUILDER_NODE*xl);voidh_to_c(HOU_NODE*xl);voidc_to_c(CLIENT_NODE*xl);voidm_to_c(MONTH_SELL*xl);voidhs_to_c(HOU_SELL*xl);voidDelCIientNode();voidDclClientNode_();voidinput_box(char**x,intn);voidQueryBuilderInfoN();voidQueryBuilderInfoH();voidfresh_clist_b();voidfresh_clist_h();voidfresh_clist_c();voidquery_builder_num(GtkWidget*widget,gpointerdata);voidQueryHouInfoN();voidquery_hou_name(GtkWidget*widget,gpointerdata);voidquery_hou_date(GtkWidget*widget,gpointerdata);voidQueryHouInfoTO;voidquery_client_id(GtkWidget*widget,gpointerdata);voidQueryClientInfoI();voidquery_client_name(GtkWidget*widget,gpointerdata);voidQueryClientlnfoNO;voidSortBuilderSellO;voidStatMonthSell();voidStatMonthSellNO;HOU.SELL*HouCont(BUILDER_NODE*hd);voidshow_list_housell(GtkWidget*widget,gpointerdata);main.c#include',dorml.hHintmain(intargc,char*argv[J)(intfa;for(fa=0;fa<12;fa++)(x[fa]=bhc[fa];}LoadData();GtkWidget"window;GtkWidget*box;GtkWidget"file;GtkWidget"save;GtkWidget"backup;GtkWidget"restore;GtkWidget*quit;GtkWidget*info;GtkWidget*builderl;GtkWidget*houl;GtkWidget*clientl;GtkWidget*stat;GtkWidget*clientS;GtkWidget*houSl;GtkWidget*help;GtkWidget*topic;GtkWidget*about;GtkWidget*menubar;GtkWidget"rootmenu;GtkWidget*menuitem;GtkAccelGroup*accel_group;gtk_init(&argc,&argv);window=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window),M("房产信息管理”));gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window),1000,500);accel_group=gtk_accel_group_new();gtk_window_add_accel_group(GTK_WINDOW(window),accel_group);box=gtk_vbox_new(FALSE,0);gtk_container_add(GTK_CONTAINER(window),box);menubar=gtk_menu_bar_new();file=gtk_menu_new();info=gtk_menu_new();stat=gtk_menu_new();help=gtk_menu_new();save=gtk_image_menu_item_new_from_stock(GTK_STOCK_SAVE,accel_group);gtk_menu_shell_append(GTK_MENU_SHELL(file),save);g_signal_connect(G_OBJECT(save),"activate",G_CALLBACK(SaveData),NULL);backup二gtk_menu_ilem_new_with」abel(M("备份”));gtk_menu_shell_append(GTK_MENU_SHELL(file),backup);g_signal_connect(G_OBJECT(backup),'Activate',,G_CALLBACK(BackupData),NULL);restore=gtk_menu_item_new_with」abel(M("恢复"));gtk_menu_shell_append(GTK_MENU_SHELL(file),restore);g_signal_connect(G_OBJECT(restore),"activate'1,G_CALLBACK(RestoreData),NULL);menuitem=gtk_separator_menu_item_new();gtk_menu_shell_append(GTK_MENU_SHELL(file),menuitem);quit=gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT,accel_group);gtk_menu_shell_append(GTK_MENU_SHELL(file),quit);g_signal_connect(G_OBJECT(quit),"activate",G_CALLBACK(gtk_main_quit),NULL);rootmenu=gtk_menu_item_new_with_mnemonic("_File");gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),file);gtk_menu_shell_append(GTK_MENU_SHELL(menubar),rootmenu);builderI=gtk_menu_item_new_with」abel(M("开发商信息维护"));gtk_menu_shelLappend(GTK_MENU_SHELL(info),builderl);g_signal_connect(G_OBJECT(builderl),"activate",G_CALLBACK(show」ist_build),NULL);houl二gtk_menu_item_new_with」abel(M("楼盘信息维护"));gtk_menu_shell_append(GTK_MENU_SHELL(info),houl);g_signal_connect(G_OBJECT(houI),"activate",G_CALLBACK(show_list_hou),NULL);clientl二gtk_menu_item_new_with」abel(M("购房信息信息维护”));gtk_menu_shell_append(GTK_MENU_SHELL(info),clientl);g_signal_connect(G_OBJECT(clientI),"activate",G_CALLBACK(show_list_client),NULL);rootmenu=gtk_menu_item_new_with_mnemonic(,,_InfoH);gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),info);gtk_menu_shell_append(GTK_MENU_SHELL(menubar),rootmenu);clientS=gtk_menu_ilem_new_with」abel(M("年度车肖售套数与金额”));gtk_menu_shell_append(GTK_MENU_SHELL(stat),clients);g_signaLconnect(G_OBJECT(clientS),"activate0,G_CALLBACK(StatMonthSeU),NULL);houS1=gtk_menu_item_new_with」abel(M("各楼盘销售情况”));gtk_menu_shelLappend(GTK_MENU_SHELL(stat),houS1);g_signal_connect(G_OBJECT(houS1), "activate",G_CALLBACK(show_list_housell),NULL);rootmenu=gtk_menu_item_new_with_mnemonic("_Stat");gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),stat);gtk_menu_shell_append(GTK_MENU_SHELL(menubar),rootmenu);topic=gtk_image_menu_item_new__from_stock(GTK_STOCK_HELP,accel_group);gtk_menu_shell_append(GTK_MENU_SHELL(help),topic);g_signal_connect(G_OBJECT(topic),"activate",G_CALLBACK(show_help),(gpointer)window);about=gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT,accel_group);gtk_menu_shelLappend(GTK_MENU_SHELL(help),about);g_signal_connect(G_OBJECT(about),"activate", G_CALLBACK(show_about),(gpointer)window);rootmenu=gtk_menu_item_new_with_mnemonic("_Help");gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),help);gtk_menu_shell_append(GTK_MENU_SHELL(menubar),rootmenu);gtk_box_pack_start(GTK_BOX(box),menubar,FALSE,FALSE,0);亘g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);gtk_widget_show_all(window);show_info(M("在本系统中所有时间请按2013-02-01格式输入”));gtk_main();returnFALSE;BOOLLoadData()(intre;re=CreatList(&gp_head);if(re!=28)printf("基础数据不完整\n");printf("加载完成,按任意键继续。。。、n");getch();returnTRUE;函数名称:CreatList函数功能:从数据文件读取基础数据,并存放到所创建的十字链中输入参数:无返回值: int型数值,表示链表的创建情况0,空链,无数据4,已加载宿舍楼信息数据,无学生基本信息和缴费信息数据12I已加载宿舍楼信息和学生基本信息数据,无缴费信息数据28,三类数据都已加载intCreatList(BUILDER_NODE**phead)(BUILDER_NODE*hd=NULL,*pBuilderNode;HOU_NODE*pHouNode;CLIENT_NODE*pClientNode;FILE*pFile;intfind=O;intre=O;pFile=fopen(gp_bulider_info_filename,''rb',);if(pFile==NULL){printf("开发商信息数据文件打开失败!\n”);returnre;Iprintf("开发商信息数据文件打开成功!'n)while(!feof(pFile)){pBuilderNode=(BUILDER_NODE*)malloc(sizeof(BUILDER_NODE));fread(pBuilderNode,sizeof(BUILDER_NODE),LpFile);if(!feof(pFile)){pBuilderNode->hnext=NULL;pBuilderNode->next=hd;hd=pBuilderNode;1Ifclose(pFile);if(hd==NULL)printf("开发商信息数据文件加载失败!\バ);returnre;)prinlf("开发商信息数据文件加载成功!、ガ);*phead=hd;re+=4;if((pFile=fopen(gp_houses_info_filename,nrb,,))==NULL)(printf("楼盘基本信息数据文件打开失败!\n");returnre;)printf("楼盘基本信息数据文件打开成功!'n”);re+=8;while(!feof(pFile)){pHouNode=(HOU_NODE*)malloc(sizeof(HOU_NODE));fread(pHouNode,sizeof(HOU_NODE),l,pFile);if(feof(pFile))break;pHouNode->cnext=NULL;pBuilderNode=hd;while(pBuilderNode!=NULL&&strcmp(pBuilderNode->builder_name,pHouNode->builder_name))(pBuilderNode=pBuilderNode->next;)if(pBuilderNode!=NULL)(pHouNode->next=pBuilderNode->hnext;亘pBuilderNode->hnext=pHouNode;)else(free(pHouNode);)1fclose(pFile);if((pFile=fopen(gp_client_info_filename,"rb"))==NULL)(printf("购房者信息数据文件打开失败)returnre;}printf("购房者信息数据文件打开成功!、バ);re+=16;HOU_NODE*HouNode;HouNode=(HOU_NODE*)malloc(sizeof(HOU_NODE));while(!feof(pFile)){pClientNode=(CLIENT_NODE*)malloc(sizeof(CLIENT_NODE));fread(pClientNode,sizeof(CLIENT_NODE),1,pFile);if(feof(pFile))break;pBuilderNode=hd;while(pBuilderNode!=NULL&&find==0)(HouNode=pBuilderNode->hnext;while(HouNode!=NULL&&find==0){if(!strcmp(HouNode->hou_name,pCiientNode->hou_name))find=l;gotoin;}HouNode=HouNode->next;)pBuilderNode=pBuilderNode->next;1in:if(find)(pClientNode->next=HouNode->cnext;HouNode->cnext=pClientNode;)else(free(pClientNode);}}fclose(pFile);returnre;BOOLSaveData(void)亘BOOLbRet=TRUE;BUILDER_NODE*hd=gp_head;HOU_NODE*phou_node;CLIENT_NODE*pclient_node;FILE*fpl,*fp2,*fp3;fpl=fopen(gp_bulider_info_filename,"wb");fp2=fopen(gp_houses_info_filename,uwbH);fp3=fopen(gp_client_info_filename,uwbn);for(;hd!=NULL;hd=hd->next){for(phou_node=hd->hnexl;phou_node!=NULL;phou_node=phou_node->next)(for(pclient_node=phou_node->cnext; pclient_node!=NULL;pclienl_node=pclient_node->next){fwrite(pclient_node,sizeof(CLIENT_NODE),l,fp3);}fwrite(phou_node,sizeof(HOU_NODE),1,fp2);}fwrite(hd,sizeof(BUILDER_NODE),1,fpl);fclose(fpl);fclose(fp2);fclose(fp3);show_info(M("数据保存成功”));returnbRet;BOOLBackupData(void)(BOOLbRet=TRUE;BUILDER_NODE*hd=gp_head;HOU_NODE*phou_node;CLIENT_NODE*pclient__node;FILE*fpl,*fp2,*fp3;fp1=fopen(gp_bulider_infoback_filename,"wb'1);fp2=fopen(gp_houses_infoback_filename,"wbu);fp3=fopen(gp_client_infoback_filename,"wbn);for(;hd!=NULL;hd=hd->next){for(phou_node=hd->hnext;phou_node!=NULL;phou_node=phou_node->next)(for(pclient_node=phou_node->cnext; pclient_node!=NULL;pclient_node=pclient_node->next)(fwrite(pclient_node,sizeof(CLIENT_NODE),l,fp3);}fwrite(phou_node,sizeof(HOU_NODE),1,fp2);}fwrite(hd,sizeof(BUILDER_NODE),1,fpl);fclose(fpl);fclose(fp2);亘fclose(fp3);show_info(M("数据备份成功”));returnbRet;)BOOLRestoreData(void)(BOOLbRet=TRUE;BUILDER_NODE*hd=NULL,*pBuilderNode;HOU_NODE*pHouNode;CLIENT_NODE*pClientNode;FILE*pFile;intfind=0;intre=O;pFile=fopen(gp_bulider_infoback_fi!ename,nrbH);if(pFile==NULL)(gotoX;}while(!feof(pFile))(pBuilderNode=(BUILDER_NODE*)malloc(sizeof(BUILDER_NODE));fread(pBuilderNode,sizeof(BUILDER_NODE),1,pFile);if(!feof(pFile)){pBuilderNode->hnext=NULL;pBuilderNode->next=hd;hd=pBuilderNode;fclose(pFile);if(hd==NULL)(gotoX;Igp_head=hd;re+=4;if((pFile=fopen(gp__houses_infoback_filename,,,rb,,))==NULL)(gotoX;}re+=8;while(!feof(pFile)){pHouNode=(HOU_NODE*)malloc(sizeof(HOU_NODE));fread(pHouNode,sizeof(HOU_NODE),hpFile);if(feof(pFile))break;pHouNode->cnext=NULL;pBuilderNode=hd;while(pBuilderNode!=NULL&&!strcmp(pBuilderNode->builder_name,pHouNode->builder_name)){pBuilderNode=pBuilderNode->next;)if(pBuilderNode!=NULL)pHouNode->next=pBuilderNode->hnext;pBuilderNode->hnext=pHouNode;)else{free(pHouNode);)!fclose(pFile);if((pFile=fopen(gp_client_infoback_filename,,,rb,,))==NULL)(gotoX;}re+=16;HOU_NODE*HouNode;HouNode=(HOU_NODE*)malloc(sizeof(HOU_NODE));while(!feof(pFile)){pClientNode=(CLIENT_NODE*)malloc(sizeof(CLIENT_NODE));fread(pClientNode,sizeof(CLIENT_NODE),1,pFile);if(feof(pFile))break;pBuilderNode=hd;while(pBuilderNode!=NULL&&find==0)(HouNode=pBuilderNode->hnext;while(pBuilderNode!=NULL&&find==0)if(!strcmp(HouNode->hou_name,pClientNode->hou_name)){find=l;break;)HouNode=HouNode->next;)pBuilderNode=pBuilderNode->next;1if(find)(pClientNode->next=HouNode->cnext;HouNode->cnext=pClientNode;}else(free(pClientNode);fclose(pFile);SaveData();show_info(M("数据成功恢复至链表"));returnbRet;函数名称:show_about函数功能:输出提示信息水*/voidshow_about(GtkWidget*widget)(GtkWidget*dialog=gtk_about_dialog_new();gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog),"PropertySalesInformationManagementSystem");gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog),"1.0");gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),M("制作者:许矶法”));gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog),M(“邮箱:530389782@"));gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog),"thisisasimplesystemofPropertySalesInformationManagementSystem");gtk_dialog_run(GTK_DIALOG(dialog));gtk_widget_destroy(dialog);}/**函数名:helptopic函数功能:输出提示信息**/voidshow_help(GtkWidget*widget)(GtkWidget*dialog=gtk_about_dialog_new();gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog),M("帮助信息"));gtk一about_dialog_set_copyright(GTK一ABOUT一DIALOG(dialog),”如有问题,请联系530389782@");gtk_dialog_run(GTK_DIALOG(dialog));gtk_widget_destroy(dialog);函数名:show_box_builderQ函数功能:弹出开发商查询窗口**/voidshow_box_builderQ(Gtk\Vidget*widget,gpointerdata)(GtkWidget*window;GtkWidget*vbox;GtkWidget*name;GtkWidget*num;GtkWidget*quit;window=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window),230,250);gtk_window_set_title(GTK_WINDOW(window),M("开发商信息查询”));gtk_container_set_border_width(GTK_CONTAINER(window),5);vbox=gtk_vbox_new(TRUE,1);gtk_container_add(GTK_CONTAINER(window),vbox);name=gtk_button_new_with」abel(M("按名称查找"));num=gtk_button_new_with」abel(M("按房屋套数查找”));quit=gtk_butlon_new_with」abel(M("退出"));gtk_box_pack_start(GTK_BOX(vbox),name,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),num,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),quit,TRUE,TRUE,0);g_signal_connect_swapped(G_OBJECT(quit), "clicked",G_CALLBACK(gtk_widget_destroy),(gpointer)window);g_signal_connect_swapped(G_OBJECT(name), "clicked",G_CALLBACK(query_builder_name),(gpointer)window);g_signal_connect_swapped(G_OBJECT(num), "clicked”,G_CALLBACK(query_builder_num),(gpointer)window);g_signal_connect_swapped(G_OBJECT(window), "destroy”,G_CALLBACK(gtk_main_quit),NULL);gtk_widget_show_all(window);gtk_main();return;)voidquery_builder_name(GtkWidget*widget,gpointerdata)(char*a[]={"开发商名"};input_box(a,l);g_signal_connect(GTK_OBJECT(wgt.button_login),nclickedn,GTK_SIGNAL_FUNC(QueryBuilderInfoN),NULL);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);)voidquery_builder_num(GtkWidget*widget,gpointerdata)(char*a[]={”房屋数目下限”,”房屋数目上限”};input_box(a,2);g_signa1_connect(GTK_OBJECT(wgt.button」ogin),”clicked”,GTK_SIGNAL_FUNC(QueryBuilderInfoH),NULL);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);voidshow_box_houQ(GtkWidget*widget,gpointerdata)GtkWidget"window;GtkWidget*vbox;GtkWidget"name;GtkWidget"num;GtkWidget"quit;window=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window),230,250);gtk_window_set_title(GTK_WINDOW(window),M("楼盘信息查询”));gtk_container_set_border_width(GTK_CONTAINER(window),5);vbox=gtk__vbox_new(TRUE,1);gtk_container_add(GTK_CONTAINER(window),vbox);name二gtk_button_new_with」abel(M("按名称查找”));num=gtk_button_new_with」abel(M("按开盘日期和平米均价查找”));quit=gtk_button_new_with」abel(M("退出"));gtk_box_pack_start(GTK_BOX(vbox),name,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),num,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),quit,TRUE,TRUE,0);g_signal_connect_sw叩ped(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit),NULL);g_signal_connect_swapped(G_OBJECT(quit), "clicked",G_CALLBACK(gtk_widget_destroy),(gpointer)window);g_signal_connect_swapped(G_OBJECT(name), "clicked",G_CALLBACK(query_hou_name),NULL);g_signal_connect_swapped(G_OBJECT(num), "clicked",G_CALLBACK(query_hou_date),NULL);gtk_widget_show_all(window);gtk_main();亘return;}voidquery_hou_name(GtkWidget"widget,gpointerdata)(char*a[]={"楼盘名"};input_box(a,l);g_signal_connect(GTK_OBJECT(wgt.buttonJogin),"clicked",GTK_SIGNAL_FUNC(QueryHouInfoN),NULL);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);)voidquery_hou_date(GtkWidget"widget,gpointerdata){char*a[仁{“日期下限"「日期上限”,"均价下限","均价上限"};input_box(a,4);g_signal_connect(GTK_OBJECT(wgt.buttonJogin),"clicked",GTK_SIGNAL_FUNC(QueryHouInfoT),NULL);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);}voidshow_box_clientQ(Gtk\Vidget*widget,gpointerdata)(GtkWidget"window;GtkWidget"vbox;GtkWidget"id;GtkWidget"name;GtkWidget"quit;window=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window),230,250);gtk_window_set_litle(GTK_WINDOW(window)tM(”销售信息查询”));gtk_container_set_border_width(GTK_CONTAINER(window),5);vbox=gtk_vbox_new(TRUE,1);gtk_container_add(GTK_CONTAINER(window),vbox);id=gtk_button_new_with」abel(M(”按身份证查找"));name二gtk_button_new_with」abel(M("按姓名和日期查找”));quit=gtk_button_new_with_label(M(ni&出"));gtk_box_pack_start(GTK_BOX(vbox),name,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),id,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),quit,TRUE,TRUE,0);g_signal_connect_swapped(G_OBJECT(window), "destroy”,G_CALLBACK(gtk_main_quit),NULL);g_signal_connect_swapped(G_OBJECT(quit), "clicked",G_CALLBACK(gtk_widget_destroy),(gpointer)window);g_signal_connect_swapped(G_OBJECT(id),"clicked11,G_CALLBACK(query_client_id),(gpointer)window);g_signal_connect_swapped(G_OBJECT(name), "clicked",G_CALLBACK(query_client_name),(gpointer)window);gtk_widget_show_all(window);gtk_main();return;)voidquery_client_id(GtkWidget*widget,gpointerdata)(char*a[]={"身份证ッ;input_box(a,l);g_signal_connect(GTK_OBJECT(wgt.button」ogin)Jclicked”,GTK_SlGNAL_FUNC(QueryClientInfoI),NULL);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);}voidquery_client_name(GtkWidget*widget,gpointerdata)(char*a口ア“姓名”,“日期下限”,“日期上限"};input_box(a,3);g_signal_connect(GTK_OBJECT(wgt.buttonJogin),"clicked';GTK.SIGNAL.FUNCCQueryClientInfoN),NULL);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);函数名称:insertJniilder函数功能:弹出开发商信息输入框,并处理输入信息**/voidinsert_builder(void)(char*x[]={”开发商名:「CEO:”};input_box(x,2);g_signal_connect(GTK_OBJECT(wgt.buttonJogin),'•clicked0,GTK_SIGNAL_FUNC(insert_builder_),&wgt);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);}voidinsert_hou(GtkWidget*widget,gpointerdata)(char*x[]={”楼盘名:”,”开发商名:“,”开盘日期:”,”地址:”,”占地面积:”「房屋数目:","建筑面积:","每平米均价","联系人:ヽ"联系电话つ;input_box(x,10);g_signal_connect(GTK_OBJECT(wgt.button_login),,'clicked,,,GTK_SIGNAL_FUNC(insert_houJ,&wgt);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);)voidinsert_client(GtkWidget*widget,gpointerdata)(char*x[]={"购房者姓名",“身份证,“购房日期”,“房型“,“楼盘名”,“楼栋号”,“建筑面积:“,“每平米均价",“折扣”,”销售员ッ;input_box(x,10);g_signal_connect(GTK_OBJECT(wgt.buttonJogin),nclicked",GTK_SIGNAL_FUNC(insert_client_),&wgt);gtk_container_add(GTK_CONTAINER(wgt.window),wgt.vbox);gtk_widget_show_all(wgt.window);}/**函数名称:insertJ)uilder_函数功能:处理输入框中的信息,并插入链表**/voidinsert_builder_(GtkWidget*widget,gpointerdata)(BUILDER_NODE*insert;insert=(BUILDER_NODE*)malloc(sizeof(BUILDER_NODE));〃获取输入的信息strcpy(insert->builder_name,gtk_entry_get_text(GTK_ENTRY(wgt.entry[OJ)));strcpy(insert->CEO,gtk_entry_getJext(GTK_ENTRY(wgt.entry[l])));insert->hnext=NULL;insert->money=0;insert->all_area=O;insert->all_housenum=0;InsertBuilderNode(&gp_head,insert);b_to_c(insert);gtk_clist_prepend(GTK_CLIST(clist),x);gtk_widget_destroy(wgt.window);show_info(M("开发商信息插入成功”));)voidinsert_hou_(GtkWidget*widget,gpointerdata)(HOU_NODE*insert;insert=(HOU_NODE*)malloc(sizeof(HOU_NODE));〃获取输入的信息strcpy(insert->hou_name,gtk_entry_gel_lext(GTK_ENTRY(wgt.entry[0])));strcpy(insert->builder_name,gtk_entry_get_text(GTK_ENTRY(wgt.entry[1])));strcpy(insert->date,gtk_entry_get_text(GTK_ENTRY(wgt.entry[2])));strcpy(insert->address,gtk_entry_get_text(GTK_ENTRY(wgt.entry[3])));insert->area=atof(gtk_entry_get_text(GTK_ENTRY(wgt.ent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论