《某科技大学c语言暑期课程设计.pdf》由会员分享,可在线阅读,更多相关《某科技大学c语言暑期课程设计.pdf(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include#include#include#include#include#include#include#define SUM 100/*菜单内容*/char*menu=File,/*文件*/“Edit”,/*修改*/“Insert”,/*插入*/“Delete”,/*删除*/“Query”,/*查询*/“Statistic”,/*统计*/“Help”;/*将首字母设为红色*/char*red=“F“JE”,T,“D,”Q“JS“JH”;/*File 菜单*/char*F=Create,/*新建*/“Save”,/*保存*/“Load”,/*载入*/“Exit”;/*删除*/*Edit
2、e 菜单*/char*E=“Province”,“City”,“Town”;/*Insert 菜单*/char*1=ProvinceVCity0,Town/*Delete 菜单*/char*D=Province”,“City”,“Town”;/*Query 菜单*/char*Q=“Province”JCityTTown;/*Statistic 菜单*/char*S=Province mode/City mode,Town mode;/*Help 菜单*/char*H=About.;/*缓冲区*/char bufl 8*10*2,buf 1 17*2;/*乡镇受灾信息链结点结构刃typedef
3、struct town(char town_id4;char town_name7;char city_id5;char prov_id2;float land_area;float lake_area;int sum3;int vill_num;int vill_disa_num;int vill_dro_num;int vill_flo_num;int popu_disa_num;float dro_area;float flo_area;float prodro_area;float proflo_area;float dro_fund;float flo_fund;float reli
4、ef;struct town*next;town;/*乡镇编号*/*乡镇名称*/*所属地市编号*/*所属省自治区编号*/*耕地面积*/*湖泊面积*/*该地市输入的乡镇数*/*所辖自然村数=7/*受灾自然村数*/*旱灾自然村数*/*洪灾自然村数*/*受灾人口*/*旱灾面积*/*洪灾面积*/*抗旱面积*/*抗洪面积*/*抗旱投入资金*/*抗洪投入资金*/*救济金额*/*指向下一乡镇的指针*/*定义结构名*/*地市受灾信息链结点结构*/typedef struct city(char city_id5;char city_name10;char prov_id2;float land_area;fl
5、oat lake_area;int sum2;int town_num;int town_disa_num;int town_dro_num;int town_flo_num;int popu_disa_num;float dro_area;/*地市编号*/*地市名称*/*所属省自治区编号*/*耕地面积*/*湖泊面积*/*该省自治区输入的地市数*/*所辖乡镇数*/*受灾乡镇数*/*旱灾乡镇数*/*洪灾乡镇数*/*受灾人口*/*旱灾面积*/float flo_area;float prodro_area;float proflo_area;float dro_fund;float flo_fti
6、nd;float relief;struct town*tnext;struct city*next;city;/*洪灾面积*/*抗旱面积*/*抗洪面积*/*抗旱投入资金*/*抗洪投入资金*/*救济金额*/*指向乡镇受灾信息的头指针*/*指向下一地市的指针*/*省自治区受灾信息链结点结构*/typedef struct provchar prov_id2;char prov_name20;float land_area;float lake_area;int suml;int city_num;int city_disa_num;int city_dro_num;int city_flo_nu
7、m;int popu_disa_num;float dro_area;float flo_area;float prodro_area;float proflo_area;float dro_fund;float flo_fund;float relief;struct city*cnext;struct prov*next;prov;/*省自治区编号*/*省自治区名称*/*耕地面积*/*湖泊面积*/*输入的自治区数*/*所辖市县数*/*受灾市县数*/*旱灾市县数*/*洪灾市县数*/*受灾人口*/*旱灾面积*/*洪灾面积*/*抗旱面积*/*抗洪面积*/*抗旱投入资金*/*抗洪投入资金*/*救济
8、金额*/*指向地市受灾信息的头指针*/*指向下一省自治区的指针*/char prov_id2;char city_id5;prov*head;city*head2;town*head3;int suml;int sum2;int sum3;/*全局变量,记录省自治区编号*/*全局变量,记录地市编号*/*省自治区链表头指针*/*地市链表头指针*/*乡镇链表头指针*/*存储省自治区总个数*/*存储地市个数*/*存储乡镇个数*/void frame(int startx,int starty.int width,int height);/*画边框函数*/void welcome(void);int
9、mainmenu(void);int get_key(void);int ShowAbout(void);/*欢迎界面函数*/*主菜单界面函数*/*得到按键值函数*/*显示帮助函数*/void CreateProv(prov*);/*创建省自治区链表函数*/void CreateCity(city*);/*创建地市链表函数*/void CreateTown(town*);/*创建乡镇链表函数*/void Save(prov*);/*保存信息函数*/void Load(prov*);/*载入信息函数*/void QueryProv(prov*);/*显示查询省自治区信息函数*/void Quer
10、yCity(prov*,city*);/*显示查询地市信息函数*/void QueryTown(prov*,city*,town*);/*显示查询乡镇信息函数*/void InsertProv(prov*);/*显示插入省自治区信息函数*/void InsertCity(prov*,city*);/*显示插入地市信息函数*/void InsertTown(prov*,city*,town*);/*显示插入乡镇信息函数*/void DeleteProv(prov*);/*显示删除省自治区信息函数*/void DeleteCity(prov*,city*);/*显示删除地市信息函数*/void D
11、eleteTown(prov*,city*,town*);/*显示删除乡镇信息函数*/void EditProv(prov*);/*显示修改省自治区信息函数*/void EditCity(prov*,city*);/*显示修改地市信息函数*/void EditTown(prov*,city*,town*);/*显示修改乡镇信息函数*/void StatProv(prov*,city*,town*);/*显示统计省自治区信息函数*/void StatCity(prov*,city*,town*);/*显示统计地市信息函数*/void StatTown(prov*,city*,town*);/*显
12、示统计乡镇信息函数*/void main()(prov*head=NULL;int i,j,key,x,y,back;welcome();clrscr();menu:dotextbackground(BLACK);/*设置屏幕背景颜色,并清除屏幕*/clrscr();window。,1,80,1);/*创建窗口用于显示菜单栏*/*设置文本属性:白底蓝字*/textbackground(WHITE);/*白色背景*/textcolor(BLUE);/*蓝色字体*/clrscr();/*清屏*/window(1,1,80,1);/*设置活动菜单窗口*/clrscr();/*清屏*/*显示菜单*/f
13、or(i=0,j=0;i7;i+)(/*保存菜单第一个字母的位置,后面要用红色再打一次菜单的第一个字母*/x=wherex();/*当前光标X 坐 标*/y=wherey();/*当前光标Y 坐 标*/cprintf(u%sH,menui);/*打印输出菜单*/j=strlen(menui);gotoxy(x,y);textcolor(RED);/*用红色输出菜单的第一个字母*/cprintf(H%s,redi);X=X 4 j+5;gotoxy(x,y);textcolor(BLUE);/*将文本颜色修改为蓝色*/)x=0;key=0;while(bioskey(l)=0);/*等待键盘输入
14、*/key=get_key();/*取得按键*/*F f显示File下拉菜单*/if(key=33)(textbackground(BLACK);lextcolor(WHITE);/*设置文本属性:黑底白字*/window。,1,80,1);gotoxy(5,l);cprintf(%s”,menuO);/*打印输出 File*/gettext(5,2,12,8,buf);/*备份将要被F ile下拉菜单窗口覆盖的区域到内存bufwindow(5,2,12,8);/*创建 File 下拉菜单窗口*/*设置文本属性:白底黑字*/textbackground(WHITE);textcolor(BLA
15、CK);clrscr();window(5,2,12,8);/*画边框*/frame。,1,8,6);/*打印输出下拉菜单*/fbr(i=2;i6;i+)(gotoxy(2,i);cprintf(s”,Fi-2);)/*备份下拉菜单的第一项到内存b u fl,然后用蓝底黄字(表示选中)打印输出第一项*/gettext(5,3,12,3,buf 1);te xtbackgrou nd(BLUE);textcolor(YELLOW);gotoxy(2,2);cprintf(”s”,FOD;/*处理按键*/y=2;key=get_key();while(key!=28&key!=1)/*上 下 键*
16、1/*用内存bufl恢复当前菜单项,并备份将要被选中的菜单项到b u fl,然后用蓝底黄字打印输出将要被选中的菜单项*/if(key=72llkey=80)(puttext(5,y+l,12,y+l,bufl);/*恢复之前蓝底黄字的项至U 白底黑字*/if(key=72)y=y=2?5:y-l;/*如果往上,到了最上面跳到最下面*/if(key=80)y=y=5?2:y+l;/*如果往下,到了最下面跳到最上面*/gettext(5,y+l,12,y+l,bufl);/*备份当前项(黄底蓝字)*/*以下4 行,用 蓝 底 黄 字(表 示 选 中)打印 输 出 当 前 项*/textbackgr
17、ound(BLUE);textcolor(YELLOW);gotoxy(2,y);cprintf(%s”,Fy2);)key=get_key();/*等待键盘输入*/*Enter*/if(key=28)/*下拉菜单处理*/switch(y-l)(case l:puttext(5,3J 2,3,buf);/*恢复屏幕显示*/puttext(5,y+l,12,y+l,bufl);/*恢复之前 蓝底黄字的项 到白底黑字*/window(1,2,80,25);/*在整个屏幕上建一个窗口*/clrscr();CreateProv(&head);/*创建文件*/break;case 2:puttext(5
18、,3/2,3,bu。;/*恢复屏幕显示*/puttext(5,y+1,12,y+1 ,buf 1);/*恢复之前蓝底黄字的项到白底黑字*/window(1,2,80,25);/*在整个屏幕上建一个窗口*/clrscr();Save(head);/*保存文件*/break;case 3:puttext(5,3,12,3,buf);/*恢复屏幕显示*/puttext(5,y+l,12,y+l,bufl);/*恢复之前蓝底黄字的项到白底黑字*/window(1,2,80,25);/*在整个屏幕上建一个窗口*/clrscr();Load(&head);/*读取文件*/break;case 4:putt
19、ext(5,3/2,3,buf);/*恢复屏幕显示*/puttext(5,y+l,12,y+l,bufl);/*恢复之前 蓝底黄字的项到白底黑字*/window(1,2,80,25);/*在整个屏幕上建一个窗口*/textbackgiound(BLACK);clrscr();gotoxy(30,10);/*询问是否退出程序,若 y 则退出,若其他则跳出这一层*/printf(nExit,sure?y/n H);if(getchar()=121)exit(-l);/*终止程序*/elsebreak;default:break;/*ESC.关闭下拉菜单,恢复屏幕显示*/if(key=l)windo
20、w(1,1,80,2);puttext(5,2,l 2,8,buf);textbackground(WHITE);te xtcolor(B LAC K);gotoxy(5,l);cprintf(%smenuO);/*Ee显示Edit下拉菜单*/if(key=18)(window(1,1,80,1);te xtbackground(BLACK);textcolor(WHlTE);/*设置文本属性:黑底白字*/gotoxy(14,l);/*打印输出 Edit*/cprintf(%sH,menul);gettext(14,2,23,7,buf);/*备份将要被下拉菜单窗口覆盖的区域到内存buf*/w
21、indow(14,2,23,7);/*创建下拉菜单窗口*/*设置文本属性:白底黑字*/textbackground(WHITE);te xtcolor(B LAC K);clrscr();window(14,2,23,7);frame(l,1,10,5);/*画边框*/*打印输出下拉菜单*/for(i=2;i5;i+)(gotoxy(2,i);)/*备份下拉菜单的第一项到内存b u n,然后用 蓝底黄字(表示选中)打印输出第一项*/gettext(14,3,23,3,bufl);te xtbackgrou nd(BLUE);te xtcol or(YELLOW);gotoxy(2,2);cpr
22、intf(%sH,EO);/*处理按键*/y=2;key=get_key();/*读取键入的值*/while(key!=28&key!=1)/*上下键*/*用内存bufl恢复当前菜单项,并备份将要被选中的菜单项到b u fl,然后用蓝底黄字打印输出将要被选中的菜单项*/if(key=72llkey=80)(puttext(14,y+l,23,y+l,bufl);/*恢复之前蓝底黄字的项到白底黑字*/if(key=72)y=y=2?4:y-l;Z*如果往上,到了最上面跳到最下面*/if(key=80)y=y=4?2:y+l;/*如果往下,到了最下面跳到最上面*/gettextd4,y+l,23,
23、y+l,bufl);/*备份当前项(白底黑字)*/*以下3 行,用 蓝 底 黄 字(表 示 选 中)打 印 输 出 当 前 项*/textbackground(BLUE);textcolor(YELLOW);gotoxy(2,y);cprintf(H%sH,Ey-2);)key=get_key();/*等待键盘输入*/)/*Enter*/if(key=28)(switch(y-l)/*下拉菜单处理*/(case 1:puttext(14,2,23,7,buf);/*恢复屏幕显示*/*恢复之前 蓝底黄字的项 到白底黑字*/puttext(14,y+1,23,y+l,bufl);EditProv(
24、head);/*显示插入省自治区信息函数*/goto menu;case 2:puttext(14,2,23,7,bu。;/*恢复屏幕显示*/*恢复之前蓝底黄字的项到白底黑字*/puttext(14,y+l,23,y+l,bufl);EditCily(head,head2);/*显示插入地市信息函数*/goto menu;case 3:puttext(14,2,23,7,buf);/*恢复屏幕显示*/*恢复之前蓝底黄字的项到白底黑字*/puttext(14,y+l,23,y+l,bufl);EditTown(head,head2,head3);/*显示插入乡镇信息函数*/goto menu;d
25、efaulcbreak;/*ESC 关闭下拉菜单,恢复屏幕显示*/if(key=l)window。,1,80,2);puttext(14,2,23,8,buf);textbackground(WHITE);te xtcolor(B LAC K);gotoxy(14J);cprintf(,%s,menu2);/*Ii显示Insert下拉菜单*/if(key=23)(window(l,1,80,1);te xtbackgrou nd(B LAC K);textcolor(WHITE);/*设置文本属性:黑底白字*/gotoxy(24,l);cprintf(%s,menu2);/*打印输出 Inse
26、rt*/gettext(24,2,33,7,bu。;/*备份将要被下拉菜单窗口覆盖的区域到内存buf*/window(24,2,33,7);/*创建下拉菜单窗口*/te xtbackgrou nd(WHITE);textcolor(BLACK);/*设置文本属性:白底 黑 字*/clrscr();window(24,2,337);frame(l,l,10,5);/*画边框*/*打印输出下拉菜单*/fbr(i=2;i5;i+)(gotoxy(2,i);cprintf(H%su,Ii-2);)/*备份下拉菜单的第一项到内存b u fl,然后用 蓝底黄字(表示选中)打印输出第一项*/gettext(
27、24,3,33,3,buf 1);textbackground(BLUE);textcolor(YELLOW);gotoxy(2,2);cprintf(u%sM,IO);/*处理按键*/y=2;key=get_key();/*读取键入的值*/while(key!=28&key!=1)/*上下键*/*用内存bufl恢复当前菜单项,并备份将要被选中的菜单项到b u fl,然后用蓝底黄字打印输出将要被选中的菜单项*/i f(ke y=721 Ike y=80)(puttext(24,y+l,33,y+1,bufl);/*恢复之前蓝底黄字的项至白底黑字*/if(key=72)y=y=2?4:y-l;/
28、*如果往上,到了最上面跳到最下面*/if(key=80)y=y=4?2:y+l;/*如果往下,到了最下面跳到最上面*/gettext(24,y+l,33,y+l,bufl);/*备份当前项(白底黑字)/*以下3 行,用 蓝 底 黄 字(表 示 选 中)打 印 输 出 当 前 项*/textbackground(B LUE);textcolor(YELLOW);gotoxy(2,y);cprintf(”s”,Iy-2);)key=get_key();/*等待键盘输入*/)/*Enter*/if(key=28)(switch(y-l)/*下拉菜单处理*/(case 1:puttext(24,2,3
29、3,7,bu。;/*恢复屏幕显示*/*恢复之前 蓝 底 黄 字 的 项 到 白底黑字*/puttext(24,y+I,33,y+l,bufl);I nsertProv(head);/*显示插入省自治区信息函数*/goto menu;case 2:puttext(24,2,33,7,buf);/*恢复屏幕显示*/*恢复之前 蓝底黄字的项 到白底黑字号puttext(24,y+l,33,y+l,bufl);I nsertCity(head,head2);/*显示插入地市信息函数*/goto menu;case 3:puttext(24,2,33,7,buf);/*恢复屏幕显示*/*恢复之前 蓝底黄
30、字的项到白底黑字*/puttext(24,y+1,33,y+1 ,bufl);InsertTown(head,head2,head3);/*显示插入乡镇信息函数*/goto menu;defaultibreak;)/*ESC.关闭下拉菜单,恢复屏幕显示*/if(key=l)(window(1,1,80,2);puttext(24,2,33,8,buf);textbackground(WHITE);textcoior(BLACK);gotoxy(24,l);cpri ntf(n%s n,menu 2);)/*Dd显示Delete下拉菜单*/if(key=32)(window(1,1,80,1);
31、te xtbackground(B LAC K);textcolor(WHITE);/*设置文本属性:黑底白字*/gotoxy(35,l);cprintf(%s”,menu3);/*打印输出 Delete*/gettext(35,2,44,7,buf);/*备份将要被下拉菜单窗口覆盖的区域到内存buf*/window(35,2,44,7);/*创建下拉菜单窗口*/te xtbackground(WHITE);textcolor(BLACK);/*设置文本属性:白底黑字*/clrscr();window(35,2,44,7);frame(1,1,10,5);/*画边框*/1*打印输出下拉 菜 单
32、*/fbr(i=2;i5;i+)(gotoxy(2,i);cprintf(M%sn,Di-2);)/*备份下拉菜单的第一项到内存b u fl,然后用蓝底黄字(表示选中)打印输出第一项*/gettext(35,3,44,3,bufl);textbackground(BLUE);textcolor(YELLOW);gotoxy(2,2);cprintf(%s,DO);/*处理按键*/y=2;key=get_key();/*读取键入的值*/while(key!=28&key!=1)(/*上下键*/*用内存bufl恢复当前菜单项,并备份将要被选中的菜单项到b u fl,然后 用 蓝 底 黄 字 打印输
33、出将要被选中的菜单项*/if(key=72llkey=80)(/*恢复之前蓝底黄字的项到白底黑字*/puttext(35,y+l,44,y+l,bufl);if(key=72)y=y=2?4:y l;/*如果往上,到了最上面跳到最下面*/if(key=80)y=y=4?2:y+l;/*如果往下,到了最下面跳到最上面*/gettext(35,y+l,44,y+l,bufl);/*备份当前项(白底黑字)*/*以下3 行,用 蓝 底 黄 字(表 示 选 中)打印输出当 前 项*/textbackground(B LUE);textcolor(YELLOW);gotoxy(2,y);cprintf(0
34、%sH,Dy-2);)key=get_key();/*等待键盘输入*/)/*Enter*/if(key=28)(switch(y-l)/*下拉菜单处理*/(case 1:puttext(35,2,44,7,buf);/*恢复屏幕显示*/*恢复 之 前 蓝底黄字的项到白底黑字*/puttext(35,y+1,44,y+1 ,buf 1);DeleteProv(head);/*删除省自治区信息函数*/goto menu;case 2:puttext(35,2,44,7,buf);/*恢复屏幕显示*/*恢 复 之 前 蓝 底 黄 字 的 项 到 白底黑字*/puttext(35,y+l,44,y+l
35、,bufl);DeleteCity(head,head2);/*删除地市信息函数*/goto menu;case 3:puttext(35,2,44,7,buf);/*恢复屏幕显示*/*恢复之前蓝底黄字的项到白底黑字*/puttext(35,y+I,44,y+l,bufl);De1eteTown(head,head2,head3);/*删除乡镇信息函数*/goto menu;default:break;)/*ESC-关闭下拉菜单,恢复屏幕显示*/if(key=l)(window(1,1,80,2);puttext(35,2,44,8,buf);textbackground(WHITE);te
36、xtcolor(B LAC K);gotoxy(35,l);cprintf(M%sn,menu 3);/*Qq显示Query下拉菜单*/if(key=16)(window。,80,1);textbackground(BLACK);textcolor(WHITE);/*设置文本属性:黑底白字*1gotoxy(46,1);cprintf(M%s,menu 4);/*打印输出 Query*/*备份将要被下拉菜单窗口覆盖的区域到内存buf*/gettext(46,2,55,7,buD;window(46,2,55,7);/*创建下拉菜单窗 口 */textbackground(WHITE);textc
37、olor(BLACK);/*设置文本属性:白底黑字*/clrscr();window(46,2,55,7);frame(l,1,10,5);/*画边框*/1*打印输出下拉菜单*/fbr(i=2;i5;i+)(gotoxy(2,i);cprintf(n%sH,Qi-2);/*备份下拉菜单的第一项到 内 存 b u fl,然后用 蓝底黄字(表示选中)打印输出第一项*/gettext(46,3,55,3,buf 1);te xtbackground(BLUE);textcolor(YELLOW);gotoxy(2,2);cprintf(%su,QO);/*处理按键*/y=2;key=get_key(
38、);/*读取键入的值*/while(key!=28&key!=l)/*上 下 键*/*用内存bufl恢复当前菜单项,并备份将要被选中的菜单项到b u fl,然后用 蓝底黄字 打印输出将要被选中的菜单项*/if(key=72llkey=80)(puttext(46,y+l,55,y+l,bufl);/*恢复之前蓝底黄字的项至l j 白底黑字*/if(key=72)y=y=2?4:y-l;/*如果往上,到了最上面跳到最下面*/if(key=80)y=y=4?2:y+l;/*如果往下,到了最下面跳到最上面*/gettext(46,y+l,55,y+l,bufl);/*备份当前项(白底黑字)*/tex
39、tbackground(BLUE);/*以 下 3 行,用 蓝 底 黄 字(表 示 选 中)打印 输 出 当 前 项*/textcolor(YELLOW);gotoxy(2,y);cprintf(s”,Qy2);)key=get_key();/*等待键盘输入*/)/*Enter*/if(key=28)(switch(y-l)/*下拉菜单处理*/case 1:puttext(46,2,55,7,buf);/*恢复屏幕显示*/*恢复之前 蓝底黄字的项到白底黑字*/puttext(46,y+l,55,y+l,bufl);QueryProv(head);/*显示查询省自治区信息函数*/goto men
40、u;case 2:puttext(46,2,55,7,buf);/*恢复屏幕显示*/*恢复之前蓝底黄字的项到白底黑字*/puttext(46,y+l,55,y+l,bufl);QueryCity(head,head2);/*显示查询地市信息函数*/goto menu;case 3:puttext(46,2,55,7,buf);/*恢复屏幕显示*/*恢复之前 蓝底黄字的项到白底黑字*/puttext(46,y+1,55,y+1 ,bufl);QueryTown(head,head2,head3);/*显示查询乡镇信息函数*/goto menu;default:break;)/*ESC.关闭下拉菜
41、单,恢复屏幕显示*/if(key=l)window(1,1,80,2);puttext(46,2,55,8,buf);textbackground(WHITE);textcolor(B LAC K);gotoxy(46,l);cprintf(%s,menu4J);/*Ss显示Statistic下拉菜单*/if(key=31)(window(l,1,80,1);textbackground(B LAC K);textcolor(WHITE);/*设置文本属性:黑底白字*/gotoxy(56,l);cprintf(%s,menu5);/*打印输出 Statistic*/gettext(56,2,7
42、0,7,buf);Z*备份*/window(56,2,70,7);/*创建下拉菜单窗 口 */te xtbackground(WHITE);textcolor(BLACK);/*设置文本属性:白底 黑 字*/clrscr();window(56,2,70,7);/*画边框*/frame(l,1,15,5);for(i=2;iv5;i+)/*打印输出下拉菜单*/(gotoxy(2,i);cprintf(H%s,Si-2J);/*备份下拉菜单的第一项到内存b u fl,然后用 蓝底黄字(表示选中)打印输出第一项*/gettext(56,3,70,3,bufl);te xtbackgrou nd(B
43、LUE);textcoIor(YELLOW);gotoxy(2,2);cprintf(s”,SO);/*处理按键*/y=2;key=get_key();/*读取键入的值*/while(key!=28&key!=1)/*上 下 键*/*用内存bufl恢复当前菜单项,并备份将要被选中的菜单项到b u fL 然后 用 蓝 底 黄 字 打印输出将要被选中的菜单项*/if(key=72llkey=80)(puttext(56,y+l,70,y+l,bufl);/*恢复之前蓝底黄字的项到 黄底蓝字刃if(key=72)y=y=2?4:y-l;/*如果往上,到了最上面跳到最下面*/if(key=80)y=y
44、=4?2:y+l;/*如果往下,到了最下面跳到最上面*/gettext(56,y+l,70,y+l,bufl);/*备份当前项(白底黑字)*/*以下3 行,用 蓝 底 黄 字(表 示 选 中)打印输出当 前 项*/textbackground(BLUE);textcolor(YELLOW);gotoxy(2,y);cprintf(%sH,Sy-2);)key=get_key();/*等待键盘输入*/)/*Enter*/if(key=28)/*下拉菜单处理*/switch(y-l)(case 1:puttext(56,2,70,7,buf);/*恢复屏幕显示*/*恢复之前蓝底黄字的项到白底黑字*
45、/puttext(56,y+l,70,y+l,bufl);window(1,2,80,25);clrscr();StatProv(head,head2,head3);/*执行省自治区统计函数*/goto menu;break;case 2:puttext(56,2,70,7,buf);/*恢复屏幕显示*/*恢复之前蓝底黄字的项到黄底蓝字号puttext(56,y+l,70,y+l,bufl);window(1,2,80,25);clrscr();StatCity(head,head2,head3);/*执行地市统计函数*/goto menu;break;case 3:puttext(56,2,
46、70,7,buf);/*恢复屏幕显示*/*恢复之前蓝底黄字的项到黄底蓝字*/puttext(56,y+1,70,y+l,bufl);window(1,2,80,25);clrscr();StatTown(head,head2,head3);/*执行乡镇统计函数*/goto menu;break;default:break;)1/*ESC-关闭下拉菜单,恢复屏幕显示*/if(key=l)(window(1,1,80,2);puttext(56,2,70,7,buf);textbackground(WHITE);te xtcolor(BLAC K);gotoxy(56,l);cprintf(n%s
47、M,menu|5);)/*Hh显示帮助信息*/if(key=35)(window。,1,80,1);te xtbackground(BLAC K);textcolor(WHITE);/*设置文本属性:黑底白字*/gotoxy(70,l);cprintf(%s,menu6);/*备份将要被operation卜拉菜单窗口覆盖的区域到内存buf*/gettext(70,2,79,5,buf);window(70,2,79,5);/*创建 Help 下拉菜单窗口*/textbackground(WHITE);textcolor(BLACK);/*设置文本属性:白底黑字*/clrscr();window
48、(70,2,79,5);frame(1,1,10,3);/*画边框*/*打印输出下拉菜单*/for(i=2;i3;i+)/*打印输出下拉菜单*/(gotoxy(2,i);cprintf(M%sn,Hi-2);)/*备份下拉菜单的第一项到内存b u fl,然后用 蓝底黄字(表示选中)打印输出第一项*/gettext(70,3,79,5bufl);textbackground(BLUE);textcolor(YELLOW);gotoxy(2,2);cprintf(M%sn,HO);/*处理按键*/y=2;key=get_key();/*读取键入的值*/*Enter*/if(key=28)/*下拉菜
49、单处理*/puttext(70,2,79,5,buf);/*恢复屏幕显示*/puttext(70,3,79,3,bufl);/*恢复之前蓝底黄字的项至I 黄底蓝字*/window(1,2,80,25);/*创建一个占据整个屏幕的 窗口*/clrscr();if(ShowAbout()=1)goto menu;)/*ESC关闭下拉菜单,恢复屏幕显示*/if(key=l)(window(1,1,80,2);pullext(70279,5,buf);textbackground(WHITE);te xtcolor(B LAC K);gotoxy(70,l);cpri ntf(n%sn,me nu 6
50、);)while(I);)/*欢迎界面函数*/void welcome(void)(struct date d;/*定义日期结构体*/struct time t;/*定义时间结构体*/getdate(&d);/*读取系统日期并把它放到结构体d中*/gettime(&t);/*读取系统时间并把它放到结构体t中*/clrscr();te xtbackground(B LAC K);/*黑屏*/clrscr();/*清屏*/te xtcolor(M AGENTA);gotoxy(3,8);cprintf(#+#”);gotoxy(3,9);cprintf(n+”);gotoxy(3,ll);cpri