《C语言程序设计》课程设计报告2_第1页
《C语言程序设计》课程设计报告2_第2页
《C语言程序设计》课程设计报告2_第3页
《C语言程序设计》课程设计报告2_第4页
已阅读5页,还剩198页未读 继续免费阅读

下载本文档

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

文档简介

學中科技大學课程设计报告题目: 旅游景点查询系统 课程名称:C语言课程设计 专业班级:信息安全1302 学号: 姓名: 指导教师: 报告日期:2014.10.10 计算机科学与技术学院任务书题目㈢景点査询系统ー、主要内容建立国内景点信息系统,提供创建、编辑和综合查询等基本业务管理和服务。一任务要求收集与阅读相关文献资料,确定系统目标与范围,分析系统需求,确定系统功能;设计系统方案,完成系统实现;提交《课程设计报告》。三、参考文献[1]曹计昌,卢萍,李开.C语言程序设计,北京:科学出版社,2013[2]李开,卢萍,曹计昌.C语言实验与课程设计,北京:科学出版社,2011目录TOC\o"1-5"\h\z目录 I1引言 1\o"CurrentDocument"1.!课题背景和意义 1\o"CurrentDocument"国内外研究现状 1课程设计的主要研究工作 错误!未定义书签。\o"CurrentDocument"2系统需求分析与总体设计 2\o"CurrentDocument"系统需求分析 2\o"CurrentDocument"系统总体设计 2\o"CurrentDocument"3系统详细设计 5\o"CurrentDocument"有关数据结构的定义 5\o"CurrentDocument"主要算法设计 7主函数 7主函数负责主界面的构造以及对程序的各个功能函数的调用。 7\o"CurrentDocument"文件 13\o"CurrentDocument"文件菜单下的保存<save>功能的函数: 13\o"CurrentDocument"数据维护 16\o"CurrentDocument"数据查询 24清屏 31\o"CurrentDocument"帮助 324.系统实现与测试 32系统测试 32\o"CurrentDocument"初始界面 32文件 34\o"CurrentDocument"6.3.信息查询 48\o"CurrentDocument"5・总结 57\o"CurrentDocument"全文总结 57\o"CurrentDocument"工作展望 58\o"CurrentDocument"体会 59\o"CurrentDocument"参考文献 62\o"CurrentDocument"附录程序清单 62main.c 68课题背景和意义在当今网络化、信息化、数字化的社会中,大多数人们都会使用网络电脑查询自己想要的信息,上网查找资料已经成为人们获取信息的主要方式,而随着人们生活水平的提高,外出旅游已经成为人们休闲娱乐的ー种主要方式。然而,全国上下的旅游的景点景区五花八门,咨询ー些相关景点的信息更为复杂,人们经常因为查询旅游景点过程繁琐而打消了外出游玩的念头,为了能够方便人们查询外出游玩的相关信息,我们制作了这个旅游景点查询系统,景点查询系统。这个系统是面向游客的,所以我得从游客的角度思考,我的系统应该具备哪些信息,当然,我也上网搜了一些资料,比如:湖北旅游查询系统。这个系统能够是个很好的例子,所以在任务数的基础上,我对城市景区和景点的信息都做了些调整和修改,是信息更全面更有用。并且确定了信息查询功能,包括精确查询和模糊查询。该系统可以在短时间内筛选繁杂的旅游景点相关数据,在第一时间帮助用户查找至U自口木艮要杳询的信户制作这个课题,就是将计算机编程技术与人们的实际生活相连接,体现了现代化技术的先进和优越,从很大方面反映了计算机技术对人们生活的重要作用和意义。国内外研究现状如今随着人们生活水平的提高,ー些为了方便人们生活的先进科技日益发达,国内国外对于这些方面的研究也如日中天,为了能够设计出令用户满意的系统,人们不断地改进界面,优化算法,这些方面的发展十分迅速,现在,类似的查询系统五花八门,各式各样,如果想做到脱颖面出,必须制作出人性化的界面,并设计出高效率的算法,使得系统能用最短的时间在大量的数据中筛选出用户想要的信息,面这方面的研究仍然是当下的热门话题,由于本人水平方面的限制,我只能做出这个简陋的查询系统,通过这个系统,我希望加深对C程序设计的认识,为以后的研究奠定基础。2系统需求分析与总体设计系统需求分析根据旅游景点的相关基本信息以及大多数用户的基本需求,我们给该系统配备了以下功能:.帮助游客根据城市编号查询城市的特色,邮编。根据景区编号查询景区电话,以及景区的景点和景区开放时间,根据景点编号查询景点风景,景点电话以及该景点人均消费水平。.帮助游客根据城市,景区和景点的相关信息查询该城市,景区和景点的详细信息。.帮助管理员修改,插入和删除城市,景区和景点的信息。.帮助管理员备份恢复数据和保存数据,防止用户丢失重要数据。.帮助游客统计出了所有城市,景点,景区的总信息。该系统的这几个功能基本满足了用户的需求。系统总体设计整个程序分为以下五个大块:每ー块的功能:

3系统详细设计3.1有关数据结构的定义系统所操作的数据分三类,使用三级的十字交叉链表,链表使用单向链表,其数据结构图是如下:在程序中对数据结构的定义如下:structscespo{charsp_sr_num[NUM];charsp_c_num[NUM];charscespo[NUM];charsp_num[NUM];charsp_location[NUM];charsp_time[NUM];structscespo*next;};structscearea{/・/・景点・//・景区编号・//・城市编号・//・景点名称・//・景点编号・//・景点地址・//・花费时间・//・指向下ー个景点节点・/广景区・//・城市编号・/charscearea[NUM]; /・景区名称ッcharsr_num[NUM]; /・景区编号・/charsr_level[NUM]; /・景区级别・/charsr_location[NUM];/・景区地址・/charsr_ticket[NUM]; /・景区分类ッcharsr_time[NUM]; /*开放时间・/charsr_connum[NUM]; /*查询电话ッstructscearea*next;/・指向下一个景区节点・/structscespo*sp_head;//景点链表的头指针ッstructcity /・城市・/(charcity[NUM]; /*城市名称・/charc_num[NUM]; /*城市编号ッcharcJnspnum[NUM],c__consnum[NUM]; /・城市邮编、城市特色・/structcity*next; /・指向下ー个城市节点ッstructscearea*sr_head; /・景区链表的头指针ッ};其中城市、景区的每ー个节点都有两个指针,城市的节点的ー个指针(structcity*p->sr_head)指向在该城市的景区链表,另ー个指针(structcity*pー〉next)指向该节点的下ー结点;景区的节点的ー个指针(structscearea*psr->sp_head)指向该景区的景点信息链表,另ー个指针(struct*psr->next)指向该节点的下ー结点;景点的节点的ー个指针(struct*psp->next)指向该节点的下ー结点;另外在内存中是以链表的形式储存的。其数据结构图是如下:

3.2主要算法设计主函数主函数负责主界面的构造以及对程序的各个功能函数的调用。其主要调用了以下函数:LoadData();InitInterface();RunSys(&gp_head);其主要调用了以下函数:LoadData();InitInterface();RunSys(&gp_head);CloseSys(gp_head);/・数据加载・//・界面初始化・//・系统功能模块的选择及运行・//・退出系统・/主函数中加载<LoadData>功能的函数函数原型:BOOLLoadData();函数功能:从三个文件中加载城市、景区、景点信息形成链表。该程序流程图如下:BOOLRe=FALSEgc_sys_state|=1;gc_sys_state|=2;Re=createlist(&gp_head)gc_sys_state|=Re;gc_sys__state&=~(4+8+16-Re);printf(°\n系统基础数据不完整!\n");printf(H\n按任意键继续getch();N关闭文件prinlf("城市信息数据加载失败!\n');returnre;printf("城市信息数据加载成printf("城市信息数据加载成功!\n");(*head)=hp;/指向链头/primf(”景区基本信息数据文件打开败!\n");returnre;printf("景区基本信息数据文件打成功!、バ);re+=8;!feof(pFi!e)(pFile=fopen(gp_sr_infb_

filename,"r+H))==NULLpsr=(structscearea*)malloc(sizeof(structscearea));〃创建结点,存放从数据文件中读出的景区基本信息fscanf(pFile,M%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\nn,psr->sr_c_num,psr->sr_num,psr->scearea,psr->sr_level,psr->sr_location,psr->sr_ticket,psr->sr_time,psr->sr_connum);psr->sp_head=NULL;p=hp;psr->sp_head=NULL;p=hp;ノ先进后出/p!=NULL&&strcmp(psr->

sr_c_num,p->c_num)!=Op=p->next;psp=(structscespo*)malloc(sizeof(structscesp〇));〃创建结点,存放从数据文件中读出的景点信息fscanf(pFile,"%s\t\t%s\t\t%s\t\t%s\t\(%s\t\t%s\n",psp->sp_c_num,psp->sp_sr_num.psp->sp_num.psp->scespo,psp->sp_location,psp->sp_time);尸查找景区信息支链上对应的景点结点*/P=hp;p!=NULL&&find==O&find==Opsr=psr->next;line=psr=p->sr_head:psr!=NULL&strcmp(psr->sr_num,psp->sp_sr_num)==Ofind=1;break;p=p->next;文件文件菜单下的保存<save>功能的函数:函数原型:BOOLsave(void);函数功能:调用createlist函数,将城市、景区、景点三级链表分别存在三个文件中,分别是c.txt、sr.txtxsp.txt〇该程序的流程图如下:打开gp_sp_info_filename关闭文件p!=NULL''屮psr=p->sr_headN读一条景点信息存到gp_sp_info_filename中psp=psp->next文件菜单下的备份VBackupData>功能的函数:函数原型:BOOLBackupData(void)函数功能:备份数据,将三类基础数据备份到ー个数据文件backup.txt中文件菜单下的恢复vRestoreData>功能的函数:函数原型:BOOLRestoreData(void)函数功能:恢复数据,备份数据后,文件被修改,可以通过回复函数,是三个文件的内容恢复到和备份文件里的数据相同。文件菜单下的退出VExitSys>功能的函数:函数原型:BOOLExitSys(void)

函数功能:退出系统。数据维护城市信息维护数据维护菜单下的城市信息维护<Maintainc』nfo>功能的函数函数原型:BOOLMaintainc_lnfo(void)函数功能:维护城市信息,包括删除、插入以及修改。调用了以下函数:BOOLdelc(structdty**hp,char*c_num);/・删除城市信息结点・/BOOLins_city(structcity**hp,structcity*p);/*插入城市信息结点・/BOOLmodifc(structcity*hp,char*cnum,structcity,p);/・修改城市信息结点・/景区信息维护数据维护菜单下的景区信息维护<Maintainsrjnfo>功能的函数函数原型:BOOLMaintainsr_lnfo(void)函数功能:维护景区信息,包括删除、插入以及修改。/・插入景点信息结点/・插入景点信息结点・/BOOLdelsp(structcity*hp,char*sr_num,char,sp_num);/・删除景点信息结点・/BOOLmodifsp(structcity*hp,char*sr_num,char*sp_num,structscespo*psp);/・修改景点信息结点・/景点信息维护数据维护菜单下的景点信息维护<Maintainspjnfo>功能的函数函数原型:BOOLMaintainspjnfo(void)函数功能:维护景点信息,包括删除、插入以及修改。调用了以下函数:BOOLdelsr(structcity*hp,char*sr_num);/・删除景区信息结点・/BOOLins_scearea(structcity*hp,structscearea*psr);/•插入景区信息结点ッBOOLmodifsr(structcity*hp,char*sr_num,structscearea*psr);/・修改景区信息结点・/.现就城市链表给出Maintainc_lnfo的流程图:(见p)结束

申请:指向城市节点指针p,用来遍历链表整型变量find,用来标识是否找到,置初值为〇p=hp:使遍历指针指向链表开头、、^表尾部YVstrcmp(p・>c_num,c_num)= ヽY一Find=l,找到Y(结束) p=p->next一 指针往下移ー数据查询城市信息查询数据查询菜单下的城市信息查询<Querycjnfo>功能的函数函数原型:BOOLQueryc_lnfo(void))函数功能:查询城市信息,包括精确查找(城市编号)和精确查找(所有信息)调用了以下函数:structcity*seekc(structcity*hp,char*c_num);/・查找城市信息结点・/structcity*seek_c(structcity*ph,intcond_num,...);景区信息査询数据查询菜单下的景区信息查询<Querysrjnfo>功能的函数函数原型:BOOLQuerysr_lnfo(void)函数功能:查询景区信息,包括精确查找(城市编号)和精确查找(所有信息)调用了以下函数:structscearea*seeksr(structcity*hp,char*sr_num);/・査找景区信息结点・/structscearea*seek_sr(structcity*hp,intcond_num,...);/・模糊査询城市信息结点・/景点信息查询数据查询菜单下的景区信息查询vQuerysjlnfo>功能的函数函数原型:BOOLQuerysr_lnfo(void)函数功能:查询景区信息,包括精确查找(城市编号)和精确查找(所有信息)调用J以下函数:structscespo*seeksp(structcity*hp,char*sr_num,char*sp_num);/・查找景点信息结点・/structscespo*seek_sp(structcity*hp,intcond_num,...);/・模糊查询景点信意结点・/现就城市链表给出Querysjlnfo的流程图:

调用函数

strcmp(psr->sr_num,major)»返回值

为result;定义所需变量:structcity*p;structscearea*psr;structscearea*psr_net==NULL;structscearea*psr_temp;sr_c_num;sr_num;/・城市编号、景区编号・/ihot;/*用户选择操作・/1=0;/・循环控制变量・/ result;/・函数操作结果*/

其原型声明如下:voidClearScreen(void);该函数在文件main.c中。其主要调用了以下函数:voidClearScreen(void);函数功能:清屏负责清除界面文字帮助帮助菜单下的帮助VHelpTopio功能的函数:函数原型:BOOLBackupData(void)函数功能:使用说明帮助菜单下的关于vAboutDorm〉功能的函数:函数原型:BOOLAboutDorm(void)函数功能:制作人、指导老师、完成时间帮助菜单下的帮助くinformation>功能的函数:函数原型:BOOLinformation(void)函数功能:调用voidtravers(structcity*head)函数,打出表中所有的的城市景区和景点信息,其中实参为链表的头粕针gp_head.4.系统实现与测试系统测试测试ー个系统的优良是程序设计中必不可少的环节,测试ー个系统的好坏要尽量做到测试数据全面,测试方面全面,在测试系统是否有漏洞的同时也要检测该系统是否方便用户使用。测试本系统,我们采取的方法是测试该系统的每ー个功能,测试每一个功能函数是否起到作用,同时我们输入了大量数据,测试了这个系统筛选信息的能力和效率,下面附上截图:初始界面:A.加载成功B.加载失败C.下拉菜单文件:A.城市信息维护ー累,—£系定 〔=1回!gfiWl①城市信息删除输入:027删除成功: 删除失败:②城市信息插入输入:040西藏440000风景优美的地方

输入:enter插入成功输入:027武汉440000风景优美的地方输入:enter插入失败(城市编号已经存在)操作无效颯③城市信息修改输入:027厦门470000海边城市027输入:enter输入:050厦门470000海边城市050

输入:enter修改失败(城市编号不存在)操作无效甌B.景区信息维护①景区信息删除

输入:01输入:enter删除成功输入:15请输入।景区编号输入:enter删除失败(景区编号不存在)操作无效蜩②景区信息插入输入:02710户部巷4A武昌区司门口人文美食四季87654321输入:enter输入:09011户部巷4A武昌区司门口人文美食四季987654321输入:enter插入失败(城市编号不存在)操作无效输入:0272某某5A武昌区自然景观四季87654321输入:enter插入失败(景区编号已经存在)操作无效③景区信息修改

输入:02701户部巷4A武昌区司门口美食人文全天8765432101输入:enter修改成功输入:04001户部巷4A武昌区司门口美食人文全天8765432101输入:enter修改失败(城市彪悍或景区编号不存在)操作无效歯C.景点信息维护点击数据维护下拉菜单的景区信息维护选项跳出窗ロ:①景点信息删除输入:06061输入:enter删除成功当景区编号或景点标号不存在时删除失败②景点信息插入输入:02703东湖武昌区珞瑜路80元/人输入:enter插入成功当城市编号、景区编号或景点编号不存在时插入失败。当景点编号已经存在是插入失败。③景点信息修改输入:02702021黄鹤楼武昌区大东门70元/人输入:ener修改成功

当城市编号、景区编号和景点编号不存在或不匹配时修改失败。6.3.信息查询:A.城市信息查询点击数据查询下拉菜单下的城市信息查询跳出窗口:①.城市精确查询

输入:0571输入:enter<湖05杭以へ04西,帀帀帀“区区霍勒ー•千気-熟区区2区区*¢721I0・<s>名<<<雙者へ31之<<..蓼市邦”城之イ物。71州文・详情青查询景区及景点信息!〜。くn_n>0〜②.城市组合查询输入:101二武汉输入:enter<<池1天02武长”01东编本”编名1编名1编名IG4Heへ区区臘鹤03黄菰兰-02木i謝書<<邮支单イ中"7汉江”区区一区区-情マー*R*比・•V・**ハイ洋一B.景区信息查询①.景区精确查询输入:09»累.弗・电董W案统一L1LL.」丄」…」二冋~-IHIIIII■・リII谓输入,景区端号09输入:enter•累点值ワ"系统数据査询<Q>f.卷]滞,景泊池湖景泊池湖9强02华湿Oss度区别间级时09区放1*#5A 景区地址,西安东约3a公里的临漬骊山北麓8:90 16:03咨询电话:029-876301661蓉09芙*点点急点点ビ會-093唐御汤遗址熬

点点样情清查询景点信息!〜。<n_n>。②.景区组合查询输入:21@池2>3A输入:输入:enter维护くH)数据查询”>■F理屏幕《S》 帮助くい[〇囘・—a芙蓉园029景区编号:09华清迫 景区级别,湿通湖泊 开版时间:文件维护くH)数据查询”>■F理屏幕《S》 帮助くい[〇囘・—a芙蓉园029景区编号:09华清迫 景区级别,湿通湖泊 开版时间:文件《F>5A 景区地址,西安东约3。公里的临潰丽山北麓8,9B 16:0a 咨询电话S点点苧:,;2泉09温蒸点点唐御汤遗址景費天风ュ一然^0类区儲02肾,4A 景区地址,武汉市黄陂区长轩岭镇石门山:7130-18:00咨询电话5027-65653285OR点点£7木兰外婆文化园点占い畫テ3草02滑详情膏査询景点信息!〜。<n_n>o~ C.景点信息查询①.景点精确查询输入:05051输入:enter②,景点组合查询输入:11@岛输入:enter<H><s>F<F>人均消费:免费里ー公06城罵年・编区景龙02神S一為名ー喜二一人均消费,8。元/人区2湖06心,中号湖f点千景,址06R1.一景岛光02月OS.ユ舞岛量点地址,距千岛辐9公里 人均消费,69元/人1.帮助点击帮助下拉菜单的帮助选项跳出窗口:岑夕范酎字符,1…9Wガ〜2,分别表示被査询信息记录中参与比较的字段编码!-35<F>血表示第一个字段中包含字符串"20,1”・累点信号。案院。串2Hく、.部码三编1分字;值.甚结球囊南剧{表.比用询定一票合..*..串符符字字S3S3含包不:貫<§<¥笙苗的・该費番丕不15^表表表.,表S3S3所效效3:^^53有有所S3H^H*IH王子与・^!的的型型他±土土子・始<r不<Fホみ表表ハ只2.所有信息点击帮助下拉菜单的所有信息选项跳出窗U:[〇!〇loaaalる部喧息-5R«ESB2武长<<el苫車<<中<<フ汉江<<B0他<<称<<东湖公园然B:§?も(上营区土加,武汉市武昌主遡キ柳村特1号30一下午5,30咨询电话点地址,洪山区沿湖大道人均消费,78元Z人夏"点筆号,012常点苕你,东湖海洋世界景点地址,洪山区东湖梨园 人均消费,全票R元,人I车票35先z人*番皇底,东湖(ク、港浴场景点地址,洪山区东阁风步区湖心亭 人均壻費,49元蓮区多廓キ龍部 支星级别,水 景区地址L里务市黄陂区长轩岭/石门山臺区要别:自然凤景 并版“同:フ》30-18H0咨询电诏名祐,森林大帙谷 景点地址,木拦天池园内,ee米 人均消费,《«»元,人雪称,ゴ当卜警文化园_一景点地址,木兰大池寺3。も △均壻且,免费编号,023茗就滑草景点地址:K兰天池园内“米 人均灣费।エ•元メ人 等号:03再你黄鹤楼 景ビ级别,5a 景区地址,武邕匹蛇山西山坡特一号类别」寺庙观堂 开放时间:7538-18:30咨询电话:B27-«7124,78G软器:名胜区 景点地址I貫创桢公园西区 人均消费I8。元Z人SS重氟ヌ化区 景点地址,百鹳楼公园南区 人均消费,免费5.总结全文总结主要工作如下:(1)根据用户需要设计了这个旅游景点查询系统。设计了这个系统的各个功能函数,并且制作了这个人机交互界面。(2)录入了众多城市,景区,景点数据,完善了这个系统。(3)测试了系统的各个功能,改良了一些漏洞。(4)将旅游景点查询系统的功能和算法写成了实验报告,方便阅读和交流心得体会。工作展望在今后的研究中,围绕着如下几个方面开展工作(1)界面的美观和人性化,美观和人性的界面会方便用户的操作,界面的制作是ー个可待研究的课题。(2)算法的高效性,高效的算法可以减少计算机的运算量,节约大量的时间。设计出高效的算法是ー门重要的学问,需要良好的逻辑思维能力,希望在以后的エ作中,能开发出更加简便的算法来实现数据的查询和筛选。体会接到这个课设题目的时候其实我心里是没底的,因为对这样ー个系统,没有整体的认识,也不知道应该从哪里下手。后来在和同学讨论之后又来大概的了解和明确的目的,于是在暑假刚开始我就开始着手写课设。充分了解供需关系景点查询系统,是面向游客的,所以我得从游客的角度思考,我的系统应该具备哪些信息,当然,我也上网搜了一些资料,比如:湖北旅游查询系统。这个系统能够是个很好的例子,所以在任务数的基础上,我对城市景区和景点的信息都做了些调整和修改,是信息更全面更有用。并且确定了信息查询功能,包括精确查询和模糊查询。在这,针对管理员,此系统应该有基本的文件保存,备份,恢复,以及信息的删除,插入和修改功能。链表的创建最开始我就定义了三个动态链表,分别是城市,景区和景点,但是明显这样做是不够的,必须把这三个链表连起来,于是我通过两个指针,ー个下ー级另ー个则指向下一个链表的头。于是链表就创建出来了。功能函数的编写测试前面做的都是些准备工作,到功能函数时就遇到了麻烦。创建链表例:while(!feof(pFile))(p=(structcity*)malloc(sizeof(structcity));fecanf(pFile,n%s\t\t%s\t\t%s\t\t%s\nn,p->c_num,p->city,p->c_inspnum,p->c_consnum);—rhead=NULL:p->next=hp;hp=p;}fclose(pFile);a.刚开始我是用fread函数从文件中读取信息,但是在这种情况下,判断是否为空功能的函数(feof)在读取最后ー个信息后不会立刻跳出while循环,而是又走了一次,这样导致我读取的信息都是乱码,或者干脆停止工作.b.在修改了这个问题后,我发现我的系统只能读取第一级的全部信息,但是读第二级也就是景区信息的时候会无法读入。在经过断点调试后最终发现是因为p->sr_head没有置空,导致指针失效。保存保存的函数比较简单,但是和创建链表ー起用时却会停止工作,我起先以为是创建链表哪里出问题了,但是在debug无果后,原来是save和createlist两个函数创建链表的方式不同,我ー个写的是先进后出,ー个是先进先出,导致出错,在改正后,就可以正常运行了。数据维护a.写删除函数时,忽略了被删除链表下的其他链表,导致,这些链表依然存在文件中却已经没有用处,反而会干扰程序的正常运行例:if(p_prior==NULL)〃如果是链头(*hp=pcurrent->next;}else(pprior->next=pcurrent->next;b.做这些处理时,因为忽略了头指针和其他指针的区别,也出了错,还好立马发现并且改了过来。界面这个是最让我头疼的,刚开始看资料时根本看不懂,太多的变量名让我头昏眼花,后来是问的同学,外加通过不断使实验,了解这些变量的作用,做出了现在的界面。收获通过这次的课程设计,我对链表和链表的操作都有了更深的理解和运用,初步了解了人机交换界面,最重要的是,通过不断地debug,掌握了找出bug的经验,比如断点调试等多种方法。参考文献ロ]曹计昌,卢萍,李开.C语言程序设计,北京:科学出版社,2013[2]李开,卢萍,曹计昌.C语言实验与课程设计,北京:科学出版社,2011附录程序清单System,h#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<wincon.h>#include<conio.h>#include<string.h>#include<io.h>#include<fcntl.h>#include<sys\stat.h>#include<ctype.h>#include<time.h>#defineNUM100#ifndefTYPE_HJNCLUDED#defineTYPE_HJNCLUDED#defineSCR_ROW9999 /・屏幕行数・/#defineSCR_COL80 /・屏幕列数・/structscespo /・景点・/(charsp_sr_num[NUM]; /・景区编号・/charsp_c_num[NUM]; /・城市编号・/charscespo[NUM];/*景点名称・/charsp_num[NUM]; /・景点编号・/charsp」ocation[NUM]; /・景点地址・/charsp_time[NUM]; /・花费时间・/structscespo*next;/・指向下ー个景点节点・/);structscearea /・景区キ/{charsr_c_num[NUM]; /・城市编号・/charscearea[NUM]; /・景区名称・/charsr_num[NUM]; /・景区编号・/charsr」evel[NUM]; /・景区级别・/charsr_location[NUM];/・景区地址・/charsr_ticket[NUM]; /・景区分类・/charsr_time[NUM]; /*开放时间・/charsr_connumlNUMJ; /*查询电话・/structscearea"next; /・指向下一个景区节点・/structscespo*sp_head;/・景点链表的头指针・/);structcity /・城市・/(charcity[NUM]; /*城市名称・/charc_num[NUM]; /・城市编号・/charc_inspnum[NUM],c_consnum[NUM]; /・城市邮编、城市特色・/structcity*next; /・指向下ー个城市节点・/structscearea*sr_head; /*景区链表的头指针・/・屏幕窗口信息链结点结点结构*/typedefstructlayer_node(charLayerNo; /**<弹出窗口层数*/SMALL_RECTrcArea; グ・<弹出窗口区域坐标ッCHAR.INFO"pContent;/**<弹出窗口区域字符单元原信息存储缓冲区・/char*PScrAtt; /**<弹岀窗口区域字符单元原属性值存储缓冲区・/structlayer_node*next;/**<指向下ー结点的指针・/}LAYER_NODE;・标签束结构typedefstructlabel_bundlechar**ppLabel;COORD*pLoc;intnum;char**ppLabel;COORD*pLoc;intnum;}LABEL_BUNDLE;/**<标签字符串数组首地址・//**<标签定位数组首地址・//**<标签个数・//**/**・热区结构サtypedefstructhot_areaSMALL.RECT*pArea;char*pSort;char*pTag;intnum;}HOT_AREA;/**<热区定位数组首地址・//**<SMALL.RECT*pArea;char*pSort;char*pTag;intnum;}HOT_AREA;/**<热区定位数组首地址・//**<热区类别(按键、文本框、选项框)数组首地址・//**<热区序号数组首地址・//**<热区个数・/LAYER_NODE*gp_top_layer=NULL;structcity*gp_head=NULL;/・弹出窗口信息链链头・/char*gp_sys_name="景点信息查询系统”; /・系统名称*/char*gp_c_infb_filename="c.txt”;char*gp_sr_infb_filename="sr.txt”;char*gp_sp_info_filename="sp.txt";char*gp_filename="backupdata.txt";/*城市信息数据文件*//*景区信息数据文件*//・景点信息数据文件*//・备份数据文件・/char*ga_main_menu[]={"文件(F)”,"数据维护(M)”,"数据查询(Q)”,"清理屏幕(S)","帮助(H)”/・系统主菜单名・/char*ga_sub_menu[]=,[S]数据保存", /*系统子菜单名・/,[B]数据备份",'[R]数据恢复",'[X]退出Alt+X",,", /・空串用来在弹岀菜单中分隔子菜单项,下同・/,[D]城市信息维护",1P!景区信息维护",i[C!景点信息维护",,[D]城市信息查询",,[P!景区信息查询",i[C!景点信息查询",,[T]清理屏幕”,,[A!帮助",1B!关于…",'[Y]所有信息"intga_sub_menu_count[]={5,4,4,2,4);/・各主菜单项下子菜单的个数・/intgi_sel_menu=I; /*被选中的主菜单项号,初始为1*/intgi_sel_sub_menu=0; /・被选中的子菜单项号,初始为〇,表示未选中・/CHAR_INFO*gp_buff_menubar_info=NULL; /・存放菜单条屏幕区字符信息的缓冲区・/CHARJNFO*gp_buff_stateBar_info=NULL; /・存放状态条屏幕区字符信息的缓冲区・/char*gp_scr_att=NULL;chargc_sys_state=ヘ0';/char*gp_scr_att=NULL;chargc_sys_state=ヘ0';/・用来保存系统状态的字符・/HANDLEgh_std_out;HANDLEgh_std_in;/・标准输出设备句柄・//・标准输入设备句柄・//*/*数/r/

温馨提示

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

评论

0/150

提交评论