华科计算机学院C语言课设源代码.doc_第1页
华科计算机学院C语言课设源代码.doc_第2页
华科计算机学院C语言课设源代码.doc_第3页
华科计算机学院C语言课设源代码.doc_第4页
华科计算机学院C语言课设源代码.doc_第5页
免费预览已结束,剩余72页可下载查看

下载本文档

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

文档简介

#include #include #include #include #include #include #include #define SUM 100/*菜单内容*/char *menu=File, /*文件*/ Edit , /*修改*/ Insert, /*插入*/ Delete, /*删除*/ Query, /*查询*/ Statistic, /*统计*/ Help;/*将首字母设为红色*/char *red=F,E,I,D,Q,S,H;/*File菜单*/char *F=Create, /*新建*/ Save, /*保存*/ Load, /*载入*/ Exit; /*删除*/*Edite菜单*/char *E=Province,City,Town;/*Insert菜单*/char *I=Province,City,Town;/*Delete菜单*/char *D=Province,City,Town;/*Query菜单*/char *Q=Province,City,Town;/*Statistic菜单*/char *S=Province mode,City mode,Town mode;/*Help菜单*/char *H=About.;/*缓冲区*/char buf18*10*2,buf117*2;/*乡镇受灾信息链结点结构*/typedef 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 relief; /*救济金额*/ struct town *next; /*指向下一乡镇的指针*/ town; /*定义结构名*/*地市受灾信息链结点结构*/typedef struct city char city_id5; /*地市编号*/ char city_name10; /*地市名称*/ char prov_id2; /*所属省自治区编号*/ float land_area; /*耕地面积*/ float 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_fund; /*抗洪投入资金*/ float relief; /*救济金额*/ struct town *tnext; /*指向乡镇受灾信息的头指针*/ struct city *next; /*指向下一地市的指针*/ city;/*省自治区受灾信息链结点结构*/typedef struct prov char prov_id2; /*省自治区编号*/ char prov_name20; /*省自治区名称*/ float land_area; /*耕地面积*/ float lake_area; /*湖泊面积*/ int sum1; /*输入的自治区数*/ int city_num; /*所辖市县数*/ int city_disa_num; /*受灾市县数*/ int city_dro_num; /*旱灾市县数*/ int city_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 relief; /*救济金额*/ struct city *cnext; /* 指向地市受灾信息的头指针*/ struct prov *next; /* 指向下一省自治区的指针*/ prov;char prov_id2; /*全局变量,记录省自治区编号*/char city_id5; /*全局变量,记录地市编号*/prov * head; /*省自治区链表头指针*/city * head2; /*地市链表头指针*/town * head3; /*乡镇链表头指针*/int sum1; /*存储省自治区总个数*/int sum2; /*存储地市个数*/int sum3; /*存储乡镇个数*/void frame(int startx,int starty,int width,int height) ; /* 画边框函数 */void welcome(void) ; /*欢迎界面函数*/int 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 QueryCity(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 DeleteTown(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 *); /*显示统计乡镇信息函数*/void main() prov *head=NULL; int i,j,key,x,y,back; welcome(); clrscr(); menu: do textbackground(BLACK);/* 设置屏幕背景颜色,并清除屏幕 */ clrscr(); window(1,1,80,1);/* 创建窗口用于显示菜单栏 */ /* 设置文本属性:白底蓝字 */ textbackground(WHITE); /* 白色背景 */ textcolor(BLUE); /* 蓝色字体 */ clrscr(); /* 清屏 */ window(1,1,80,1); /*设置活动菜单窗口*/ clrscr(); /* 清屏 */ /* 显示菜单 */ for(i=0,j=0;i7;i+) /* 保存菜单第一个字母的位置,后面要用红色再打一次菜单的第一个字母 */ x=wherex(); /* 当前光标 X坐标 */ y=wherey(); /* 当前光标 Y坐标 */ cprintf( %s,menui); /* 打印输出菜单 */ j=strlen(menui); gotoxy(x,y); textcolor(RED); /* 用红色输出菜单的第一个字母 */ cprintf( %s,redi); x=x+j+5; gotoxy(x,y); textcolor(BLUE); /* 将文本颜色修改为蓝色 */ x=0; key=0; while (bioskey(1)=0); /* 等待键盘输入*/ key=get_key(); /* 取得按键 */ /*Ff 显示File下拉菜单*/ if(key=33) textbackground(BLACK); textcolor(WHITE); /*设置文本属性:黑底白字 */ window(1,1,80,1); gotoxy(5,1); cprintf(%s,menu0);/*打印输出 File */ gettext(5,2,12,8,buf); /*备份将要被File下拉菜单窗口覆盖的区域到内存buf */ window(5,2,12,8); /*创建File下拉菜单窗口 */ /*设置文本属性:白底黑字 */ textbackground(WHITE); textcolor(BLACK); clrscr(); window(5,2,12,8); /* 画边框 */ frame(1,1,8,6); /* 打印输出下拉菜单 */ for(i=2; i6;i+) gotoxy(2,i); cprintf(%s,Fi-2); /* 备份下拉菜单的第一项到内存bufl,然后用 蓝底黄字(表示选中) 打印输出第一项 */ gettext(5,3,12,3,buf1); textbackground(BLUE); textcolor(YELLOW); gotoxy(2,2); cprintf(%s,F0); /* 处理按键 */ y=2; key=get_key(); while(key!=28&key!=1) /* 上下键 */ /* 用内存buf1恢复当前菜单项,并备份将要被选中的菜单项到buf1,然后用 蓝底黄字 打印输出将要被选中的菜单项 */ if(key=72|key=80) puttext(5,y+1,12,y+1,buf1); /* 恢复之前蓝底黄字的项 到 白底黑字*/ if(key=72) y=y=2? 5:y-1; /* 如果往上,到了最上面跳到最下面 */ if(key=80) y=y=5? 2:y+1; /* 如果往下,到了最下面跳到最上面 */ gettext(5,y+1,12,y+1,buf1); /* 备份当前项(黄底蓝字) */ /* 以下4行,用 蓝底黄字(表示选中) 打印输出 当前项 */ textbackground(BLUE); textcolor(YELLOW); gotoxy(2,y); cprintf(%s,Fy-2); key=get_key(); /* 等待键盘输入 */ /* Enter */ if(key=28) /* 下拉菜单处理 */ switch(y-1) case 1:puttext(5,3,12,3,buf);/*恢复屏幕显示*/ puttext(5,y+1,12,y+1,buf1); /*恢复之前 蓝底黄字的项 到白底黑字*/ window(1,2,80,25); /*在整个屏幕上建一个窗口*/ clrscr(); CreateProv(&head); /*创建文件*/ break; case 2:puttext(5,3,12,3,buf);/*恢复屏幕显示*/ puttext(5,y+1,12,y+1,buf1); /* 恢复之前 蓝底黄字的项 到白底黑字*/ window(1,2,80,25); /*在整个屏幕上建一个窗口*/ clrscr(); Save(head); /*保存文件*/ break; case 3:puttext(5,3,12,3,buf);/*恢复屏幕显示*/ puttext(5,y+1,12,y+1,buf1); /* 恢复之前 蓝底黄字的项 到白底黑字*/ window(1,2,80,25); /*在整个屏幕上建一个窗口*/ clrscr(); Load(&head); /*读取文件*/ break; case 4:puttext(5,3,12,3,buf);/*恢复屏幕显示*/ puttext(5,y+1,12,y+1,buf1); /* 恢复之前 蓝底黄字的项 到白底黑字*/ window(1,2,80,25); /*在整个屏幕上建一个窗口*/ textbackground(BLACK); clrscr(); gotoxy(30,10); /*询问是否退出程序,若y则退出,若其他则跳出这一层*/ printf(Exit,sure?y/n ); if(getchar()=121) exit(-1); /*终止程序*/ else break; default: break; /* ESC -关闭下拉菜单,恢复屏幕显示 */ if(key=1) window(1,1,80,2); puttext(5,2,12,8,buf); textbackground(WHITE); textcolor(BLACK); gotoxy(5,1); cprintf(%s,menu0); /*Ee显示Edit下拉菜单*/ if(key=18) window(1,1,80,1); textbackground(BLACK); textcolor(WHITE); /*设置文本属性:黑底白字 */ gotoxy(14,1); /*打印输出 Edit */ cprintf(%s,menu1); gettext(14,2,23,7,buf); /*备份将要被下拉菜单窗口覆盖的区域到内存buf */ window(14,2,23,7); /*创建下拉菜单窗口 */ /*设置文本属性:白底黑字 */ textbackground(WHITE); textcolor(BLACK); clrscr(); window(14,2,23,7); frame(1,1,10,5); /* 画边框 */ /* 打印输出下拉菜单 */ for(i=2; i5;i+) gotoxy(2,i); cprintf(%s,Ii-2); /* 备份下拉菜单的第一项到内存bufl,然后用 蓝底黄字(表示选中)打印输出第一项 */ gettext(14,3,23,3,buf1); textbackground(BLUE); textcolor(YELLOW); gotoxy(2,2); cprintf(%s,E0); /* 处理按键 */ y=2; key=get_key(); /*读取键入的值*/ while(key!=28&key!=1) /*上下键*/ /* 用内存buf1恢复当前菜单项,并备份将要被选中的菜单项到buf1,然后用 蓝底黄字 打印输出将要被选中的菜单项 */ if(key=72|key=80) puttext(14,y+1,23,y+1,buf1); /* 恢复之前蓝底黄字的项 到 白底黑字*/ if(key=72) y=y=2? 4:y-1; /* 如果往上,到了最上面跳到最下面 */ if(key=80) y=y=4? 2:y+1; /* 如果往下,到了最下面跳到最上面 */ gettext(14,y+1,23,y+1,buf1); /* 备份当前项(白底黑字) */ /* 以下3行,用 蓝底黄字(表示选中) 打印输出当前项 */ textbackground(BLUE); textcolor(YELLOW); gotoxy(2,y); cprintf(%s,Ey-2); key=get_key(); /* 等待键盘输入 */ /* Enter */ if(key=28) switch(y-1) /* 下拉菜单处理 */ case 1: puttext(14,2,23,7,buf);/*恢复屏幕显示*/ /* 恢复之前 蓝底黄字的项 到 白底黑字*/ puttext(14,y+1,23,y+1,buf1); EditProv(head);/*显示插入省自治区信息函数*/ goto menu; case 2: puttext(14,2,23,7,buf);/*恢复屏幕显示*/ /* 恢复之前 蓝底黄字的项 到 白底黑字*/ puttext(14,y+1,23,y+1,buf1); EditCity(head,head2);/*显示插入地市信息函数*/ goto menu; case 3: puttext(14,2,23,7,buf);/*恢复屏幕显示*/ /* 恢复之前 蓝底黄字的项 到 白底黑字*/ puttext(14,y+1,23,y+1,buf1); EditTown(head,head2,head3);/*显示插入乡镇信息函数*/ goto menu; default:break; /* ESC -关闭下拉菜单,恢复屏幕显示 */ if(key=1) window(1,1,80,2); puttext(14,2,23,8,buf); textbackground(WHITE); textcolor(BLACK); gotoxy(14,1); cprintf(%s,menu2); /*Ii显示Insert下拉菜单*/ if(key=23) window(1,1,80,1); textbackground(BLACK); textcolor(WHITE);/*设置文本属性:黑底白字 */ gotoxy(24,1); cprintf(%s,menu2); /*打印输出 Insert */ gettext(24,2,33,7,buf);/*备份将要被下拉菜单窗口覆盖的区域到内存buf */ window(24,2,33,7);/*创建下拉菜单窗口 */ textbackground(WHITE); textcolor(BLACK); /*设置文本属性:白底黑字 */ clrscr(); window(24,2,33,7); frame(1,1,10,5); /* 画边框 */ /* 打印输出下拉菜单 */ for(i=2; i5;i+) gotoxy(2,i); cprintf(%s,Ii-2); /* 备份下拉菜单的第一项到内存bufl,然后用 蓝底黄字(表示选中) 打印输出第一项 */ gettext(24,3,33,3,buf1); textbackground(BLUE); textcolor(YELLOW); gotoxy(2,2); cprintf(%s,I0); /* 处理按键 */ y=2; key=get_key(); /*读取键入的值*/ while(key!=28&key!=1) /*上下键*/ /* 用内存buf1恢复当前菜单项,并备份将要被选中的菜单项到buf1,然后用 蓝底黄字 打印输出将要被选中的菜单项 */ if(key=72|key=80) puttext(24,y+1,33,y+1,buf1); /* 恢复之前蓝底黄字的项 到 白底黑字*/ if(key=72) y=y=2? 4:y-1; /* 如果往上,到了最上面跳到最下面 */ if(key=80) y=y=4? 2:y+1; /* 如果往下,到了最下面跳到最上面 */ gettext(24,y+1,33,y+1,buf1); /* 备份当前项(白底黑字) */ /* 以下3行,用 蓝底黄字(表示选中) 打印输出 当前项 */ textbackground(BLUE); textcolor(YELLOW); gotoxy(2,y); cprintf(%s,Iy-2); key=get_key(); /* 等待键盘输入 */ /* Enter */ if(key=28) switch(y-1) /* 下拉菜单处理 */ case 1: puttext(24,2,33,7,buf);/*恢复屏幕显示*/ /* 恢复之前 蓝底黄字的项 到 白底黑字*/ puttext(24,y+1,33,y+1,buf1); InsertProv(head);/*显示插入省自治区信息函数*/ goto menu; case 2: puttext(24,2,33,7,buf);/*恢复屏幕显示*/ /* 恢复之前 蓝底黄字的项 到 白底黑字*/ puttext(24,y+1,33,y+1,buf1); InsertCity(head,head2);/*显示插入地市信息函数*/ goto menu; case 3: puttext(24,2,33,7,buf);/*恢复屏幕显示*/ /* 恢复之前 蓝底黄字的项 到 白底黑字*/ puttext(24,y+1,33,y+1,buf1); InsertTown(head,head2,head3);/*显示插入乡镇信息函数*/ goto menu; default:break; /* ESC -关闭下拉菜单,恢复屏幕显示 */ if(key=1) window(1,1,80,2); puttext(24,2,33,8,buf); textbackground(WHITE); textcolor(BLACK); gotoxy(24,1); cprintf(%s,menu2); /*Dd显示Delete下拉菜单*/ if(key=32) window(1,1,80,1); textbackground(BLACK); textcolor(WHITE); /*设置文本属性:黑底白字 */ gotoxy(35,1); cprintf(%s,menu3); /*打印输出 Delete */ gettext(35,2,44,7,buf); /*备份将要被下拉菜单窗口覆盖的区域到内存buf */ window(35,2,44,7); /*创建下拉菜单窗口 */ textbackground(WHITE); textcolor(BLACK); /*设置文本属性:白底黑字 */ clrscr(); window(35,2,44,7); frame(1,1,10,5); /* 画边框 */ /* 打印输出下拉菜单 */ for(i=2; i5;i+) gotoxy(2,i); cprintf(%s,Di-2); /* 备份下拉菜单的第一项到内存bufl,然后用 蓝底黄字(表示选中) 打印输出第一项 */ gettext(35,3,44,3,buf1); textbackground(BLUE); textcolor(YELLOW); gotoxy(2,2); c

温馨提示

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

评论

0/150

提交评论