C语言程序设计 网络调查信息管理系统_第1页
C语言程序设计 网络调查信息管理系统_第2页
C语言程序设计 网络调查信息管理系统_第3页
C语言程序设计 网络调查信息管理系统_第4页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

《C语言程序设计》课程设计

实验报告题目:网络调查信息管理系统专业:计算机科学与技术 班级: 学号: 姓名: 成绩: 指导教师: 完成日期:2009年10月20日ー、系统功能模块结构图二、数据结构设计及用法说明该系统的数据结构是采用十字交叉链表。十字交叉链表的模型如下:十字交叉链表使用说明:大多数操作要对十字交叉链表进行遍历。本系统的所有功能的核心就是对十字链表的各种操作信息输入处理即为以后进先出的方式创建十字链表查询和统计功能实质是分别遍历ー级二级三级链表,或遍历十字交叉链表信息插入处理即为在十字交叉链表中插入结点相关操作还包括删除十字链表中的结点,用交换指针的方法对十字交叉链表进行排序三、程序结构(画流程图)1,在已有的分类结点中,将一个已有的分类结点改变位置,插到另一个指定的分类结点之后,即改变十字链表中已有的ー・级链表的位置。(是源程序十二种插入方式中最简单的一种)省略文本输入的流程图,只保留关于十字链表的操作2,删除某网调数据信息该处删除网调信息采用的是新增结点的方法,与源代码中先讨论要删的网调是否是链头不同新增结点的方法写流程图相对简单

开始结束四、各模块功能1、首先是欢迎菜单显示了当前时间;文件导入处理:每次导入即将该信息系统的分类、网调、会员三个数据文件中的内容全部读入到静态存储区中,便于对他们进行各种操作,若文件已经被导入,只有将申请的存储释放以后才能再次导入该文件(屏幕右上角出现・提示文件的导入2、文件存盘处理:将静态存储区中的数据按三个级别链表的关系分别存入对应的文件,保存后释放存储(屏幕右上角・消失,提示文件已保存),若在保存钱文件已被导入则以创建并更新的方式打开文件,清楚原来数据,若保存是文件没有导入,则打开未见并在文件未添加新的数据。其中网调和会员数据文件有排序的功能。3、分类文件的读取处理:与文件导入不同,该功能只打开分类文件,并且只需要一个结构变量的存储循环使用就能将分类文件中的内容全部显在屏幕上,节约了内存,在程序运行的过程中作为背景,给其他操作以参考4、网调文件读取处理:与分类文件的处理模式相同,只是针对的是网调文件数据。5、会员文件读取处理:与分类文件的处理模式相同,只是针对的是会员文件数据。6、清空十字链表:由于程序过长建立了该功能,该功能主要是为了方便两个可执行文件同时运行时,方便导入更新后的文件。7、更新文件处理:可以选择同时更新分类、网调、会员三个文件或更新网调、会员两个文件获知更新会员文件。8、退出系统处理:由于程序的中个过程都是用get_key函数逐个读入字符,故在每次读入后进行推快捷键退出系统判断,即在程序运行到任何时刻只要按下Alt+x便能退出系统。9、分类数据输入处理:自己写了文本编辑程序,简单易懂,对不同项目的数据做了要求。10、网调数据输入处理:与分类数据输入模式相同。11、会员数据输入处理:与分类数据输入模式相同。12、分类数据修改处理:先选择要修改的数据项目,再输入要修改的分类类别,将显示修改前的信息,输入修改后的信息,其中网调次数不能被修改。13、网调数据修改处理:与分类数据修改模式相同,只是不能修改上级数据(网调类别)和回收次数。14、会员数据修改处理:与分类数据修改模式相同,也不能修改上级数据(网调编号)15、数据插入处理:插入结点类型3种即分类,网调和会员,数据来源输入新数据,插入位置有插入某指定结点之后。已经讨论了链头是数据来源或指定插入位置的情况,但换了围着的原来结点的关键字没修正过来,要到“修改”功能中修改。16、数据排序处理:难点在于十字链表的排序,流程是先遍历ー级链表,再遍历所有二级链表,最后给三级链表排序。用新增ー个头指针,然后用冒泡法交换结点指针方法来进行排序。。17、数据删除处理:先输入查找要删除对象的关键字,找到该结点的前继指针再进行删除,并且删除ー级链表的结点先要删除下属的三级链表和二级链表,删除二级链表结点就耍删除下属的三级链表。18、查询网调的基本数据:结果以表格的形式显示,有四项即网调类别、样本回收率,有效样本回收率,花费时间,在数据较多的情况下,要多页显示,表底部会显示总的页数,使用者可自行输入相处看的页面即可。19、按年和按月统计:主要功能分为三部分即框架设计、文本输入、遍历链表记录数据,功能极为在模块图中所列出的。23、帮助系统:帮助用户了解如何使用该系统,包括介绍个模块功能、介绍快捷键。五、试验结果1、初始界面

G0C:\c\CG0C:\c\C语言〜1\main.exe-Inlxlpressanykeytoenterthemenu 2,欢迎界面-|D|x||»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»|WeIcometoTheinternetinformationinuestgiatesystem»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»Uersion1.0

Copyright<c>2009

ByXiaJi»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»2009ヽ10ヽ211£youarefirsttimetoenterthissystem

afterenteringyoucanpressAlttogethelp?Pressanykeytoenter?该界面显示了当前的时间,作者和完成时间和系统名称,以及获得帮助的提示。3.整体主菜单界面该界面上面为相关功能选项,下面为系统名称5,edit下拉菜单4.file下拉菜单EditModify>Insert>Delete>6,search下拉菜单7,view下拉菜单8,help下拉菜单9,读取文件当读取后左上角会出现“*"号标志,读取第二遍时会显示警告信息10,更新文件选中要执行的命令,然后会跳出提示框,选择yes或者no11,输入数据该图显示输入网调数据的界面,其他类似,将数据一次输入表格内,其中savetimes决定了会员数目12,修改数据

改图显示修改网调信息时的界面,先按提示输入要修改的会员编号,如改图显示修改网调信息时的界面,先按提示输入要修改的会员编号,如,如果没有找到也会有提示。出现对,如果没有找到也会有提示。出现对话框右边显示了修改前的信息,选择要修改的项目,然后按回车会出现对话框,输入新的数据,输完后会显示successfullymodify?,据,输完后会显示successfullymodify?,当然若不能修改则会显示can'tbemodified? Esc 13,插入节点如图输入所插节点的数据,最后会提示插入成功14,删除节点

删除时会出现提示对话框,选择执行或不执行15,查询信息按照提示输入编号后变可得到如图的显示结果16,查看所有信息

这里显示了所有网调信息,显示了总共的数目5和当前为1,2项,按下pgup和pgdn可以换页,其他的类似。17.查看前十会员的基本信息按照积分高低进行排列,同样可以换页。18,显示基本数据统计19,按年统计和按月统计20,帮助菜单

介绍系统介绍各个功能介绍快捷键国C:\c\C语言〜ハmain,exe 一|P|XPileFditSearchUJLewHelpSHORT_CUTKEVSF10Openthenainnenufilt*FOpenthemenuofFileAlt+EOpenthemenuofEditAlt*SOpenthemenuofSearchAlt*UOpenthemenuofUiewAlt*HOpenthemenuofHelpF2SauePgdnPgupnextpageAlt*XExit六、体会从整体上审视这份课程设计,我发现了几点较为明显的优点和缺点。优点:从界面上看、整体显得十分正规,结构清晰,层次明显,对使用则来说非常容易看懂,在最短的时间内熟练使用。从功能上看,在文件处理方面,尽可能多的尝试不同的对文件的读取,写入方法。在数据结构方面,充分的利用了十字交叉链表的特点,实现了十字交叉链表的创建、遍历、各级链表结点信息的修改、结点的删除、结点插入、排序。灵活的运用遍历实现查询、统计等功能。文件输入输出的正确处理及十字交叉链表性质的从分利用,是这个信息处理系统有较完善的功能。在此基础上,我也不断发散自己的思维,有一些比较好的想法,并努力使之实现。比如说,为避免ー些库函数的副作用,在排序和插入上也花了一些心思,借鉴Word组合的思想。另外比较突出的优点应该是细节处理很到位,基本上对操作过程中的各种意外情况都有报错功能。缺点:当看到源代码时,缺点一眼就能看破,那就是代码不够简洁,函数的通用性差。导致这些不利点的主要原因是,在写程序之前没有整体概念,想ー步写ー步,只想如何实现当前想实现的功能,没留意到让它具有通用性,比如说文本编辑程序,与其说我程序的输入环境多样、不如说它十分杂乱,由于每次输入设定了很多限制和利用的参数个数、类型不统一,导致每次输入时都要重新写文本编辑。同样由于没有预先想好统ー划齐的输入框架,过于追求外观界面的的变化而导致不能设计出十分统ー的画框架的函数(当然,还是有两个有一定适用范围的画框架的函数)。感受很深的是在写大型程序之前一定要宏观把握好整体构架。不能为了一些小花样改动整个大局。在写程序的过程中对课本也更加熟悉,相信对C掌握得更好了。七、参考文献《C语言程序设计》曹计昌,卢萍,李开编著.科学出版社《实用高级C语言程序设计》清华大学出版社ハ,源代码/start.h/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<process.h>#include<dos.h>#include<math.h>#defineMAX20 /・将会员人数最大值设为100*/#defineDOWN80 /・定义按键ッ#defineUP72#defineESC01#defineF10 68#defineF260#defineALT_X45

defineENTER28defineLEFT75defineRIGHT77defineAET_F33defineAET_E18#defineALT_S31defineAET_V47defineALT_H35defineY21defineN49definePgUp73definePgDn81typedefstructhuiyuan_information{charwangdiaonum[l0];typedefstructhuiyuan_information{charwangdiaonum[l0];charhuiyuannum[3];charidnum[15];charhuiyuanname[15];charemail[15];charcanyuday[12];intresult;floatjifen;structhuiyuan_information*next3;Jhuiyuan;typedefstructwangdiao_information{/・会员信息结构・//・网调编号・//・会员编号・//・身份证号・//・会员姓名・//・邮箱・//・参与日期・//・样本是否有效・//・积分・//・指向后一会员的指针・//・网调信息・/charleibie;charwangdiaonum|1charleibie;charwangdiaonum|10];charwangdiaoname[10];charsday[12];chareday[12];intsetimes;intsatimes;inthscore;charpman[10];/・类别・//・网调编号・//・网调名称*//・开始时间・//*结束时间・//・发出邀请数・//・回收样本数・//・最高积分・//・负责人人structwangdiao_information斗next2; /・指向下ー网调指针号huiyuan*mhead_inform;Jwangdiao;typedefstructfenlei_information{/・分类信息・/charleibie; /*类别*/inttimes; パ次数・/structfenlei_information*nextl;/・指向下一分类指针・/wangdiao*ihead_inform;}fenlei;enumS{LOAD=1,UNLOAD=0); /・枚举类型・/enumSstate;intkeyO,keyl,y;charbufl[40*2],buf2[2O*10*2],buf3[60*12*2];enumSstate;intkeyO,keyl,y;charbufl[40*2],buf2[2O*10*2],buf3[60*12*2];fenlei*hpl=NULL,*pl,*head=NULL;wangdiao*p2;huiyuan*p3;intget_key();/・读取键盘・/voidbox(intstartxjntstarty,inthigh,intwidth);voidfbrm_menu(inta,intb,intc,intd,char*v[]);voidmove(inta,intb,intc,intd,char*v[]);intwam(char*s);intwarn1(char*s);fenlei*search_point1(fenlei*head);wangdiao*search_point2(fenlei*head);huiyuan*search_point3(fenlei*head);voidshow_fenlei(void);voidshow_wangdiao(void);voidshow_huiyuan(void);intmystrcmp(char*s,char*t);voidload_list(fenlei**head);voidinput(void);voidview_huiyuan(fenlei*head);voidview_fenlei(fenlei*head);voidview_wangdiao(fenlei*head);voidsave_list(fenlei*head);voidmodify(void);voiddelete_(void);voidinsert_(void);voidcaculate(void);voidFunction(void);voidsearchi(void);voidsearch2(void);voidsearch3(void);/main.c//・定义保存区・//*定义指针・//・画线框・//・建子菜单・//・移动光标・//・显示提示信息・/六查找分类信息・//・查找网调信息・//・查找会员信息・//・显示分类信息・//・显示网调信息・//・显示会员信息・//・比较数字字符串・//・读取链表・//・输入数据・//・査看会员信息・//・查看分类信息・//・査看网调信息・//・保存数据*//・修改数据・//・删除数据・//・插入数据・//・计算数据・//・功能介绍・//*查找分类指针・//・查找网调指针・//・査找会员指针・/#include"start.h" /・头文件・/#/・自己编写的函数・/#include"file.c"#include#include"file.c"#includeHedit.cH#includeuview.cM#include,,search.c,,#includenhelp.c"/・文件菜单的文件・//・编辑菜单的文件*//・查看菜单的文件・//・查询菜单的文件・//・帮助菜单的文件・/voidwelcome(void);/*voidwelcome(void);/*欢迎界面函数・/"); /・主菜单项目・//"); /・主菜单项目・//・主菜单各项头/*文件菜单选项・//・编辑菜单项目・//・删除菜单项目・//・查询菜单项char*iedロ={F,“E„7H”};字母・/char*f[]={"Load ヽ”Clear>ヽ"Save ヽ”Quit *');char*e[]={'Input>ヽ”Modify>>,,"Insert>ヽ”Delete>"};char*d[]={"Fenlein,"Wangdiao","Huiyuan"};char*s[]={"Fenleiヽ”Wangdiaoヽ”Huiyuan"};目・//・査看菜单项/・帮助菜单项目・/char*p[]={”Fenleiヽ”wangdiaoヽ”/・査看菜单项/・帮助菜单项目・/目・/char*h[]={"Introduce","Function","key");voidmain()(inti,key,keyO,keyl,x,y,l,dx; /・主函数中的整型变量・/charbufl[30*2*2],buf[40*1l*2],buf4[50*18*2]; /*申请内存区・/key0=keyl=0;welcome(); /・欢迎界面・/textbackground(l5);textcolor(0);clrscrQ;box(l,3,24,80);window(1,1,80,2);textbackground(2);textcolor(0);clrscr();gotoxy(l,2);for(i=0;i<5;i++){x=wherex(); /*找到横纵坐标・/y=wherey();

cprintf('* %sM,menu(i]);/・/・把首字母变为红色・/gotoxy(x,y);textcolor(4);cprintf(H %sn,red[i]);x=x+l+8;gotoxy(x,y);textcolor(O);}/・/・输出底部内容・/InformationofInternetinvestgiate");/・返回执行・//・退出系统・//*选择主菜单・/clrscr();printf(Hx=0;while(l){key=0;if(keyO==OllkeyO==ESC){while(bioskey(1)==0);key=get_key();if(key=ALT_X)exit(O);}if(key=F10)(dx=15;gettext(9,2,l4,2,bufl);window(9,2,14,2);textbackground(0);textcolor(15);clrscr();printf(H%sn,menu|0]);while(l){while(bioskey(1)==0);keyO=key1=get_key();if(keyO==ALT_X)exit(O);if(keyO==ESC)break;if(key1==LEFTIIkey1==RIGHT){ /・左右移动光标ッputtext(9+dx*x,2,l4+dx*x,2,bufl);if(keyO==LEFT)x=x==0?4:x-l;if(keyO==RIGHT)x=x==4?0:x+l;gettext(9+dx*x,2,l4+dx*x,2,bufl);window(9+dx*x,2,14+dx*x,2);textbackground(O);textcolor(15);clrscr();printf(',%s,',menu[x]); /*显示光标・/if(keyO==ENTERIIkeyO==DOWN)/・选择菜单ッswitch(x){caseO:key=33;break;casel:key=18;break;case2:key=31;break;case3:key=47;break;case4:key=35;break;default:break;)if(key=33llkey==18llkey==31llkey==47llkey==35)break;)puttext(9+dx*x,2,l4+dx*x,2,buf1);x=0;)if(key=33llkeyO==ALT_F){ /・选择file菜单ッy=3,keyO=keyl=O;gettext(6,1,17,7,buf);window(6,l,17,7);textbackground(2);textcolor(0);clrscr();window(6,l,17,8);box(l,l,7,12);gotoxy(3,2);cprintf(,'%s,',menu[O]);for(i=3;i<7;i++){gotoxy(3,i);cprintf(H%sH,f[i-3]);)gettext(7,3J6,3»buf1);window(7,3,16,3);textbackground(O);textcolor(15);clrscr();cprintf(H%s",f[〇]);while(l){while(bioskey(l)==0);keyO=keyl=get_key();if(keyO==ALT_X)exit(O);if(keyl==UPIIkey1==DOWN){

puttext(7,y,16,y,bufl);/・上下移动光标・/if(keyI==UP)y=y==3?6:y-l;if(keyl=DOWN)y=y==6?3:y+l;gettext(7,y,l6,y,bufl);window(7,y,16,y);textbackground(O);textcolor(15);clrscr();cprintf(M%s,,,f[y-3]);}if(keyO==ENTER){switch(y){case3:load_list(&head);break;case4:new_menu(head);break;case5:save_list(head);break;case6:exit(O);break;default:break;)if(keyO==ALT_F)break;)if(keyl==LEFT)keyO=ALT_H;if(keyl==RIGHT)keyO=ALT_E;/・读取函数・//・清楚子菜单刃/・保存数据・/选择下一菜单・/if(keyO==ESCIIkeyO==ALT_HllkeyO==ALT_EllkeyO==ALT_SllkeyO=ALT_V){puttext(6,1,17,7,buf);break;)if(keyl=F2)save_list(head);})if(key==18llkeyO==ALT_E){y=3,keyO=key1=0;gettext(2l,l,32,7,buf);window(21,1,32,7);textbackground(2);/・选择编辑菜单・/textcolor(O);clrscr();window(21,1,32,8);box(l,l,7,12);gotoxy(3,2);cprintf(,'%s,,,menu[1]);fbr(i=3;i<7;i++){gotoxy(3,i);cprintf(n%sM,e[i-3]); /・显示第一个光标・/)gettext(22,3,3l,3,bufl);window(22,3,31,3);textbackground(O);textcolor(15);clrscr();cprintf(M%s",e[0]);while(l){while(bioskey(1)=0);keyO=key1=get_key();if(keyl=ALT_X)exit(O);if(keyl=UPIIkeyl=DOWN){ /・上下移动光标刃puttext(22,y,3l,y,bufl);if(keyl==UP)y=y==3?6:y-l;if(keyl=DOWN)y=y==6?3:y+l;gettext(22,y,31,y,bufl);window(22,y,31,y);textbackground(0);textcolor(15);clrscr();cprintf(M%sM,e[y-3]);)if(keyO=ENTER){switch(y){case3:input(); /・输入数据・/break;case4:modify(); /・修改数据・/break;case5:insert_(); /*插入数据・/break;case6:delete_(); /*删除数据・/break;default:break;}if(keyO==ALT_E)break;)if(keyl=LEFT)keyO=ALT_F;if(keyl=RIGHT)keyO=ALT_S;if(keyO==ESCIIkeyO==ALT_FllkeyO==ALT_SllkeyO=ALT_VllkeyO==ALT_H){puttext(21,1,32,7,buf);break;}if(keyl=F2)save_list(head);})if(key==31llkeyO==ALT_S){ /・选择查询菜单ウloop:y=3,keyO=key1=0;gettext(36,1,48,6,buf);window(36,1,47,6);textbackground(2);lexlcolor(0);clrscr();window(36,1,47,8);box(1,1,6,12);gotoxy(3,2);cprintf("%s”,menu[2]);/・显示光标・/for(i=3;i<6;i++){gotoxy(3,i);cprintf("%s",s[i-3]);)gettext(37,y,46,y,buf1);window(37,y,46,y);textbackground(O);textcolor(15);clrscr();printf(M%sM,s[O]);while(l){while(bioskey(1)==0);keyO=key1=get_key();if(keyl==ALT_X)exit(O);if(keyl==UPIIkeyl=DOWN){puttext(37,y,46,y,bufl); /*上下移动光标・/if(keyl=UP)y=y==3?5:y-l;

if(key1==DOWN)y=y=5?3:y+l;gettext(37,y,46,y,buf1);window(37,y,46,y);textbackground(O);textcolor(15);clrscr();printf(H%sH,s[y-3]);)/・/・进入执行・//*查询分类信息・//・查询网调信息・//・査询会员信息・/puttext(36,l,48,6,buf);gettext(15,5,65,23,buf4);switch(y){case3:searchl();break;case4:search2();break;case5:search3();break;default:break;)puttext(l5,5,65,23,bu「4);if(keyO=ALT_S)break;gotoloop; /・回到执行处リ)if(keyl=LEFT)keyO=ALT_E;if(keyl=RIGHT)keyO=ALT_V;if(keyO==ESCIIkeyO==ALT_FllkeyO==ALT_EllkeyO==ALT_VllkeyO=ALT_H){puttext(36,1,48,6,buf);break;)if(keyl=F2)save」ist(head);}}if(key==47llkeyO==ALT_V){ /・查看菜单・/loopl:y=3;key0=keyl=0;gettext(52,1,63,8,buf);window(52,1,63,8);textbackground(2);textcoIor(O);clrscr();window(52,1,64,8);box(l,l,8,12);gotoxy(3,2);cprintf(,,%s'\menu[3]);for(i=3;i<8;i++){ /・显示菜单项目・/gotoxy(3,i);cprintf(”%s”,p[i-3]);)gettext(53,3,62,3,bufl);window(53,3,62,3);textbackground(O);textcolor(15);clrscr();printf("%s",p[0]);while(l){while(bioskey(1)=0);keyO=key1=get_key();if(keyl=AET_X)exit(O);if(keyl=UPIIkeyl=DOWN){ /・上下移动光标サputtext(53,y,62,y,buf1);if(key1==UP)y=y==3?7:y-1;/・到达最上断时回到下端・/if(key1==DOWN)y=y==7?3:y+l;gettext(53,y,62,y,bufl);window(53,y,62,y);textbackground(O);textcolor(15);clrscr();printf(n%s,\p[y-3]);/*显示菜单项目・/)if(keyO=ENTER){switch(y){case3:puttext(52J,63,8,buf);view_fenlei(head);/*查看分类信息y=3;break;case4:puttext(52,1,63,8,buf);view_wangdiao(head);/*查看网调信息・/y=4;break;case5:puttext(52,1,63,8,buf);view_huiyuan(head); /・査看会员信息东/y=5break;case6:puttext(52,1,63,8,buf);topten(head); /・前十会员リy=6;break;case7:caculate();puttext(52,l,63,8,buf);y=7;break;default:break;}if(keyO==AI_T_V)break;gotoloopl; /・跳到菜单初始处・/)if(keyl=LEFT)keyO=ALT_S;if(keyl=RIGHT)keyO=ALT_H;if(keyO==ESCIIkeyO==ALT_EllkeyO==ALT_FllkeyO==ALT_SllkeyO==ALT_H){puttext(52,l,63,8,buf);break;}if(keyl=F2)save_list(head);)}if(key==35llkeyO==ALT_H){ /・选择帮助菜单ッloop2:y=3;key0=key1=0;gettext(67,1,78,6,buf);window(67,1,78,6);textbackground(2);textcolor(O);clrscrQ;window(67,1,78,7);box(1,1,6,12);gotoxy(3,2);cprintf("%s",menu[4]);/*显示主菜单・/for(i=3;i<6;i++){ /・显示子菜单・/gotoxy(3,i);cprintf(n%sMi[i-3]);}gettext(68,3,77,3,buf1);window(68,3,77,3);textbackground(O);textcolor(15);clrscr();printf(u%s';h[O]);while(l){while(bioskey(l)==0);keyO=keyl=get_key();if(key1=AI_T_X)exit(O);if(key1=UPIIkey1=DOWN){ /・上下移动菜单ッputtext(68,y,77,y,buf1);if(keyl==UP)y=y==3?5:y-l;if(keyl==DOWN)y=y==5?3:y+l;gettext(68,y,77,yybufl);window(68,y,77,y);textbackground(O);textcolor(15);clrscr();printf(n%s,',h[y-3]); /・显示帮助菜单项目・/)if(keyO=ENTER){puttext(67J,78,6,buf);switch(y){case3:introduce();/*介绍函数・/break;case4:Function();/*介绍功能函数・/break;case5:short_cut(); /*介绍快捷键函数字/break;default:break;)if(keyO=ALT_H)break;gotoloop2;)if(keyl=RIGHT)keyO=ALT_F;if(keyl=LEFT)keyO=ALT_V; /・选择下一子菜单・/if(keyO==ESCIIkeyO==ALT_FllkeyO==ALT_EllkeyO==ALT_SllkeyO==AUr_V){

puttext(67,l,78,6,buf);break;if(keyl==F2)save」ist(head); /*保存数据・/

voidwelcome(void)/・欢迎界面・/structdated;getdate(&d); /*获取当前时间・/clrscr(); /・读取ー个字符・/textbackground⑵;textcolor(YELLOW);clrscr();printf("pressanykeytoenterthemenu M);getchar();clrscrQ;»»»»»»»»\nM»»»»»»»»\nM);printf('\n\t\t Welcometo\n”);printf(''n\tTheinternetinformationinvestgiatesystem'n");»»»»»»»»\nM); /・显示欢迎基本信息・/printf(''n\t\t Version1.0”);printf('\n\t\t Copyright(c)2009");printf(”\n\l\t ByXiaJi");printf(M\nM);printf(”\n");»»»»»»»»\nn);printf(”\t\t %d\\%d\\%d\n'\d.da_year,d.da_mon,d.da_day);/・显示当前时间・/printf(”\t\tIfyouarefirsttimetoenterthissystem\n\t\tafterenteringyoucanpressAlt+Htogethelp!,1);printf("\n\t Pressanykeytoenter!'1);getchar();fflush(stdin);/file.c//・/・读取文件*/FILE*inl,*in2,*in3;if(state==LOAD){wam("Fileshavebeenloaded*'); /・警告已被读取・/return;1if((inl=fopen("c:\\c\\fenlei.dat","rb"))==NULL){ /・警告无法找到分类文件・/wam(MCan'tfindfenlei.dat");return;)if((in2=fopen("c:\\c\\wangdiao.dat","rb"))==NULL){ /・警告无法找到网调文件・/warn("Can'tfindwangdiao.dat");return;)if((in3=fopen(nc:\\c\\huiyuan.dat","rb"))==NULL){ /・警告无法找到会员文件・/wam("Can'tfindhuiyuan.dat");return;)while(!feof(inl)){pl=(fenlei*)malloc(sizeof(fenlei)); /・读取分类文件・/fread(p1,sizeof(fenlei),1,in1);if(!feof(inl)){p1->ihead_inform=NULL;pl->nextl=hpl;hpl=pl;))*head=hpl;while(!feof(in2)){pl=(*head);p2=(wangdiao*)malloc(sizeof(wangdiao)); /*读取网调文件・/fread(p2,sizeof(wangdiao),1,in2);

if(!feof(in2)){while(pl!=NULL){if(p1->leibie==p2->leibie){p2->mhead_inform=NULL;p2->next2=pl->ihead_infbrm;p1->ihead_infbrm=p2;

break;)

elsepl=pl->nextl;}}}while(!feof(in3)) /・载入会员的信息・/p3=(huiyuan*)malloc(sizeof(huiyuan));fread(p3,sizeof(huiyuan),1,in3); /・读入一条会员记录ッif(!feof(in3))(pl=(*head); /*从整个链表的头部开始遍历・/while(pl)(p2=pl->ihead_inform;while(p2)(if(!strcmp(p2->wangdiaonum,p3->wangdiaonum)){p3->next3=p2->mhead_infbrm;p2->mhead_inform=p3; /・会员链表的头指针指向新建的节点・/gotoout;}elsep2=p2->next2;)pl=pl->nextl;))out:;/・/・头指针为空・/window(78,2,80,2);textbackground(2);textcolor(4);clrscr();putch(,*r);}fclose(inl);fclose(in2);fclose(in3);}voidsave_list(fenlei*head)(FILE*outl,*out2,*out3;if(state==UNLOAD){if((outl=fopen(,'c:\\c\\fenlei.dat,,;'ab+,'))==NULL){warn(HCan'tfindfiles!Newn);return;)if((out2=fopen("c:\\c\\wangdiao.dat,,;,ab+"))==NULL){warn("Can'tfindfiles!New'*);return;)if((out3=fopen("c:\\c\\huiyuan.dat'\"ab4-"))==NULL){文件・/warn("Can'tfindfiles!New'*);return;}pl=head;while(pl!=NULL){fwrite(p1,sizeof(fenlei),1,out1);到分类文件・/p2=pl->ihead_inform;while(p2!=NULL){fwrite(p2,sizeof(wangdiao),1,out2);网调文件・/p3=p2->mhead_inform;while(p3!=NULL){/・保存文件・//・打开分分类文件・//・打开网调文件・//・将分类信息写将网调信息写到fwrite(p3,sizeof(huiyuan),1,out3);会员文件・/p3=p3->next3;p2=p2->next2;pl=pl->nextl;}}if(state==LOAD){件已被读取・/if((outl=fopen("c:\\c\\fenlei.dat","wb"))==NULL){到分类文件・/warn("Can'tfindfiles!NewH);return;)if((out2=fopen("c:\\c\\wangdiao.dat,,,',wb"))=NULL){调文件・/warn("Can'tfindfiles!Newn);return;)if((out3=fopen("c:\\c\\huiyuan.dat",,'wb',))==NULL){找到会员文件・/warn("Can'tfindfiles!M);return;}pl=head;while(pl!=NULL){fwrite(p1,sizeof(fenlei),1,out1);类文件*/p2=pl->ihead_inform;while(p2!=NULL){fwrite(p2,sizeof(wangdiao),1,out2);到网调文件*/p3=p2->mhead_inform;while(p3!=NULL){fwrite(p3,sizeof(huiyuan),1,out3);会员文件・/p3=p3->next3;)p2=p2->next2;)pl=pl->nextl;/・文/・警告不能找/・警告不能找到网/・警告不能/・将信息写到分/・将数据写/・将数据写到fclose(outl);/・关闭文件・/fclose(out2);fclose(out3);voidnew_menu(fenlei*head) /・建立新子菜单・/{FILE*outl,*out2,*out3;intdx=18;char*ps[]={MClearthethreefiles,1,**clearwangdiaoandhuiyuanfiles**,"Clearhuiyuanfile**,**Clearthelist**}; /*子菜单项目・/y=6,key0=key1=0;gettext(0+dx,5,38+dx,10,buf3);while(l){form_menu(0+dx,5,37+dx,!0,ps); /・移动光标・/move(1+dx,6,36+dx,9,ps);if(keyO==ESC){ /・退出执行・/puttext(0+dx,5,37+dx,10,buf3);return;)if(keyO==ENTER){if(y==6){key0=warn("Clearthethreefiles?(Y/N)"); /*提示清空文件・/if(keyO==Y){if((outl=fopen("c:\\c\\fenlei.dat","wb"))=NULL){ /・依次打开文件・/warn("Can'topenfenlei.dat");continue;)if((out2=fopen("c:\\c\\wangdiao.dat","wb"))=NULL){warn("Can'topenwangdiao.dat*');continue;}if((out3=fopen("c:\\c\\huiyuan.dat**,"wb"))==NULL){wam(**Can'topenhuiyuan.dat");continue;if(y=7){keyO=warn("Clearwangdiaoandhuiyuanfiles?(Y/N)H);if(keyO==Y){if((outl=fopen(,,c:\\c\\fenlei.dat,,;,ab,,))==NULL){ /・依次打开网调文件*/wam("Can'topenfenlei.dat");continue;}if((out2=fopen("c:\\c\\wangdiao.dat","wb"))=NULL){warn("Can'topenwangdiao.dat");continue;)if((out3=fopen("c:\\c\\huiyuan.dat",nwb"))==NULL){wam("Can'topenhuiyuan.dat");continue;)))if(y==8){keyO=wam("Clearhuiyuanfile?(Y/N)"); /・提示清空会员信息・/if(keyO==Y){if((outl=fopen('^:\\c\\fenlei.dat";'ab"))==NULL){warn("Can'topenfienlei.dat");continue;}if((out2=fopen("c:\\c\\wangdiao.dat","ab"))=NULL){warn('* Can'topenwangdiao.dat");continue;)if((out3=fopen("c:\\c\\huiyuan.dat",,,wb"))==NULL){wam("Can'topenhuiyuan.dat");continue;)))if(y==9){keyO=wam("clearthelist?(Y/N)"); /・提示清空链表・/if(keyO=Y){pl=head;while(head!=NULL){p2=pl->ihead_inform;while(p1->ihead_inform!=NULL){p3=p2->mhead_inform;while(p2->mhead_inform!=NULL){p2->mhead_inform=p3->next3;free(p3);点・/p3=p2->mhead_inform;)pl->ihead_inform=p2->next2;free(p2);p2=pl->ihead_inform;}head=pl->nextl;free(pl);サpl=head;)if(head==NULL)warn(Complete1');state=UNLOAD;window(78,2,80,2);textbackground(2);clrscr();)/・指向子链・//・释放会员结/・释放分类结点息・/pl=head;while(head!=NULL){/・清空链表信p2=pl->ihead_inform;while(p1->ihead_inform!=NULL){p3=p2->mhead_inform;while(p2->mhead_inform!=NULL){p2->mhead_inform=p3->next3;free(p3);p3=p2->mhead_inform;)pl->ihead_inform=p2->next2;free(p2);p2=pl->ihead_inform;}head=pl->nextl;/・关闭文件・/・关闭文件・//・释放分类结点voidmodify!(void);voidmodify2(void);voidmodify3(void);voiddelete1(fenlei*head);voiddelete2(fenlei*head);voiddelete3(fenlei*head);voidinsert!(fenlei*head);voidinsert2(fenlei*head);voidinsert3(fenlei*head);voidinput(void)/・修改分类信息・//・修改网调信息・//・修改会员信息・//*删除分类信息・//*删除网调信息・//・删除会员信息・//*插入分类信息・//*插入网调信息・//・插入会员信息*/free(pl);*/pl=head;)state=UNLOAD;window。8,2,80,2);textbackground(2);clrscrO;fclose(outl);fclose(out2);fclose(out3);})/edit.h/voidereat_fenlei(fenlei**head);/*输入分类信息*/voidcreat_wangdiao(fenlei*head);/*输入网调信息亭/voidcreat_huiyuan(fenlei*head);/*输入会员信息*/char*dロ={"Fenlei","Wangdiao","Huiyuan"}; 定义子菜单项目・/intdx=33;y=4,key0=key1=0;gettext(0+dx,3,32+dx,7,buf2); /*保存窗口・/while(l){key0=keyl=0;form_menu(()+dx,3,32+dx,7,d);move(l+dx,4,3l+dx,6,d);if(keyO==ESC){ 返回上级菜单ッputtext(0+dx,3,32+dx,7,bu⑵;return;if(keyO==ENTER){puttext(0+dx,3,32+dx,7,buf2); /・输出窗口・/gettext(l2,13,71,24,buf3);switch(y){creat_fenlei(&head);y=4;break;createwangdiao(head);y=5;break;case6:creat_huiyuan(head);y=6;break;}puttext(12,13,71,24,buf3);wam("complete!M); /・显示完成・/voidcreat_fenlei(fenlei**head) /・仓リ建分类信息・/inti,n;char*s[]={"Leibie:(Tshuma/2'car,'3jiadian):n=waml(nHowmanytoput?:0);form_menu(12,13,71,16,s);window(50,14,70,15);textbackground(2);textcolor(O);clrscr();/'wangdiaotimes:',};/・创建光标・//・子菜单・/for(i=0;i<n;i-H-){pl=(fenlei*)malloc(sizeof(fenlei));scanf(M%c\&p1->leibie);gotoxy(3,l);fflush(stdin);gotoxy(2,2);scanf(,'%d,',&pl->times);fflush(stdin);pl->nextl=hpl;p1->ihead_inform=NULL;hpl=pl;clrscr();/・创建分类链表・//・申请内存・//・子链赋值为空・/*head=hpl; /・创建头指针・/return;/・/・创建网调信息・/inti;char *s[]={"wangdiaoleibie:^/Wangdiaonum:"Wangdiaoname:M,MStartday:M,nEndday:"Settimes:H,MSavetimes:M,nHighscore:"Principal:"}; /・网调子菜单・/form_menu(12,13,7l,23,s); /・创建光标・/window(40,14,70,22); /・子菜单窗口・/textbackground(2);textcolor(0);clrscr();pl=head;if(pl==NULL){warn("loadthedata!");puttext(12,13,71,24,buf1);return;} /・异常退出・/while(pl!=NULL){for(i=0;i<(pl->times);i++){gotoxy(l,l);cprintf("%c",pl->leibie);p2=(wangdiao*)malloc(sizeof(wangdiao)); /・动态分配存储空间・/p2->mhead_inform=NULL;p2->leibie=pl->leibie;p2->next2=pl->ihead_inform;pl->ihead_infonn=p2;/*输入相应信息・/gotoxy(l,2);scanf("%s",p2->wangdiaonum);fflush(stdin);gotoxy(l,3);scanf("%s",p2->wangdiaoname);fflush(stdin);gotoxy(l,4);scanf("%s",p2->sday);fflush(stdin);gotoxy(l,5);scanf("%s",p2->eday);fflush(stdin);gotoxy(l,6);scanf("%d,',&p2->setimes);fflush(stdin);gotoxy(l,7);scanf("%dn,&p2->satimes);fflush(stdin);gotoxy(l,8);scanf(,'%d,',&p2->hscore);fflush(stdin);gotoxy(l,9);scanf("%s,,,p2->pman);fflush(stdin);clrscr();)pl=p1->nextl;)return;}voidcreat_huiyuan(fenlei*head) /・创建会员信息・/{inti;char*s[]={"Wangdiaonum:","Huiyuannum:","Idnum:","Huiyuanname:"「'Email:"JJoinday:","Result:","Jifen:"); /・会员子菜单・/form_menu(12,14,71,23,s); /・子菜单光标・/window(40,15,70,22); /・子菜单窗口・/textbackground(2);textcolor(O);clrscr();pl=head;if(pl==NULL){wam("loadthedata!");puttext(12,13,71,24,buf1);return;} /・异常退出・/while(p1!=NULL){ /・创建会员链表*/p2=p1->ihead_infbrm;while(p2!=NULL){for(i=0;i<(p2->satimes);i-H-){ /・输入会员信息・/gotoxy(l,l);cprintf("%s",p2->wangdiaonum);p3=(huiyuan*)malloc(sizeof(huiyuan)); /・动态分配存储空间・/strcpy(p3->wangdiaonum,p2->wangdiannum);p3->next3=p2->mhead_infbrm; /・指向下ー结点*/p2->mhead_inform=p3;gotoxy(l,2);/・输入会员信息・/scanf("%s",p3->huiyuannum);fflush(stdin);

gotoxy(l,3);scanf("%s”,p3->idnum);fflush(stdin);gotoxy(l,4);scanf("%s”,p3・>huiyuanname);fflush(stdin);gotoxy(l,5);scanf(,'%s,\p3->email);fflush(stdin);gotoxy(l,6);scanf("%s”,p3つcanyuday);fflush(stdin);gotoxy(l,7);scanf(*'%d'\&p3->result);fflush(stdin);gotoxy(l,8);scanf(n%f'\&p3->jifen);fflush(stdin);clrscr();)p2=p2->next2;)pl=pl->nextl;}voidmodify(void)(char*d1[]={Mvoidmodify(void)(char*d1[]={MFenlei*',MWangdiaoH,,,HuiyuanM};charbufI52*6*2],buf3[52*5*2];intdx=33;y=5,keyO=keyl=O;gettext(O+dx,4,32+dx,8,buf3);while(l){keyO=keyl=O;form_menu(0+dx,4,32+dx,8,d1);move(l+dx,5,3l+dx,7,d1);if(keyO==ESC){puttext(O+dx,4,32+dx,8,buf3);return;/・指向下ー结点・//・显示修改菜单;7/・修改子菜单项目・//・申请存储区・//・保存菜单区・//・移动光标・//・退出执行・/if(keyO==ENTER){puttexl(0+dx,4,32+dx,8,buf3);gettext(45,4,75,l4,buf);switch(y){modify1();y=5;break;modify2();y=6;break;modify3();y=7;break;}/・进入执行・/・进入执行・//・修改分类信息・//・修改网调信息・//*修改会员信息・//・输出保存区・/voidmodifyl(void)(char*ps[]={Hwangdiaoleibie:'^^Wangdiaotimes:char*et[]={"NEWWDleibie:M};charf;y=5;p1=search_point1(head);if(pl==NULL)return;form_menu(45,4,73,7,ps);window(63,5,70,6);textbackground(2);textcolor(0);clrscr();gotoxy(2,l);printf(,,%c,\pl->leibie);gotoxy(2,2);printf(**%dn,pl->times);while(l){keyO=key1=0;move(46,5,60,6,ps);if(keyO==ESC)return;if(keyl==ALT_X)exit(O);if(keyO==ENTER){gettext(18,17,49,20,buf2);switch(y-4){case1:form); /・类别子菜单;7/*查询分类结点・//・创建子菜单・//・设置背景色和字体色・//・输入类别和次数・//・读取指令・//・退出・/,menu(18,17,49,19,et); /・显示子菜单・/window(33,l8,48,18);textbackground(2);textcolor(0);clrscr();f=getchar();pl->leibie=f;for(p2=p1->ihead__inform;p2!=NULL;p2=p2・>nex⑵p2->leibie=f;break;case2:warn("can'tbemodified0); /・显示警告信息・/continue;default:break;)puttext(18,17,49,20,buf2);warn("successfullymodify!"); /・显示修改成功・/}continue;)voidmodify2(void)(inti;char *ps[]={"wangdiaoleibie:","Wangdiaonum:","Wangdiaoname:","Startday:","Endday:","Settimes:","Savetimes:","Highscore:"/'Principal:");char*et[]={"NEWWDnumber:"},*etl[]={"NEWWDname:"},*et2[]={"NEWstartday:"},*et3[]={"NEWendday:"},*et4[]={"NEWsettimes:"},*et5[]={"NEWhscore:"},*et6[]={"NEWprincipal:"}; /・子菜单项目・/chars[30];intt;y=5;p2=search_point2(head); /・查询网调结点・/if(p2==NULL)return;form_menu(45,4,75,14,ps); /・显示子菜单*/window(65,5,72,l3);textbackground(2);textcolor(0);clrscr(); /・输入网调信息・/gotoxy(l,l);printf("%c",p2->leibie);gotoxy(l,2);printf(,,%s',,p2->wangdiaonum);gotoxy(l,3);printf(n%sn,p2->wangdiaoname);gotoxy(l,4);printf(,,%s,,,p2->sday);gotoxy(l,5);printf(M%s'\p2->eday);gotoxy(l,6);printf(,'%d',,p2->setimes);gotoxy(l,7);printf(M%dM,p2->satimes);fflush(stdin);gotoxy(l,8);printf(,,%dM,p2->hscore);gotoxy(l,9);printf(',%s,,,p2->pman);while(l){keyO=keyl=O;move(46,5,64,13,ps);if(keyO==ESC)return;if(keyl==ALT_X)exit(O); /・退出函数・/if(keyO==ENTER){for(i=0;i<30;i++)*(s+i)=\0';gettext(18,17,49,20,buf2);switch(y-4){ /・选择要修改的项目进行修改・/wam("can'tbemodifiedM); /・显示不能修改*/continue;form_menu(l8,17,49,19,et);window(33,18,48,18);textbackground(2);textcolor(0);clrscr();cscanf(H%sH,s);strcpy(p2->wangdiaonum,s); /・修改信息・/for(p3=p2->mhead_inform;p3!=NULL;p3=p3->next3)strcpy(p3->wangdiaonum,s);break;form_menu(l8,17,49,19,etl);

window(33,l8,48,18);textbackground(2);textcolor(〇);clrscr();cscanf("%s",s);strcpy(p2->wangdiaoname,s);芦修改网调名称*/break;case4:form_menu(18,l7,4919,et2);window(33,l8,48,18);textbackground(2);textcolor(O);clrscr();cscanf(n%s",s);strcpy(p2->sday,s);/・修改参与时间到break;case5:form_menu(18,l7,49,19,et3);window(33,18,48,18);textbackground(2);textcolor(O);clrscr();cscanf('f%s",s);strcpy(p2->eday,s);/・修改结束时间・/break;case6:form_menu(l8,17,49,19,et4);window(33,18,48,18);textbackground(2);textcolor(O

温馨提示

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

评论

0/150

提交评论