




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <conio.h>#include <string.h>#include <stddef.h>#include <dos.h>#define SUM 100/*菜單內容*/char *menu="File", /*文件*/ "Edit ", /*修改*/ "Insert", /*插入*/ "Delete",
2、 /*刪除*/ "Query", /*查詢*/ "Statistic", /*統(tǒng)計*/ "Help"/*將首字母設為紅色*/char *red="F","E","I","D","Q","S","H"/*File菜單*/char *F="Create", /*新建*/ "Save", /*保存*/ "Load", /*載入*/ "
3、Exit" /*刪除*/*Edite菜單*/char *E="Province","City","Town"/*Insert菜單*/char *I="Province","City","Town"/*Delete菜單*/char *D="Province","City","Town"/*Query菜單*/char *Q="Province","City","
4、Town"/*Statistic菜單*/char *S="Province mode","City mode","Town mode"/*Help菜單*/char *H="About."/*緩沖區(qū)*/char buf18*10*2,buf117*2;/*鄉(xiāng)鎮(zhèn)受災信息鏈結點結構*/typedef struct town char town_id4; /*鄉(xiāng)鎮(zhèn)編號*/ char town_name7; /*鄉(xiāng)鎮(zhèn)名稱*/ char city_id5; /*所屬地市編號*/ char prov_id2; /*所屬
5、省自治區(qū)編號*/ float land_area; /*耕地面積*/ float lake_area; /*湖泊面積*/ int sum3; /*該地市輸入的鄉(xiāng)鎮(zhèn)數*/ 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; /*抗旱面
6、積*/ float proflo_area; /*抗洪面積*/ float dro_fund; /*抗旱投入資金*/ float flo_fund; /*抗洪投入資金*/ float relief; /*救濟金額*/ struct town *next; /*指向下一鄉(xiāng)鎮(zhèn)的指針*/ town; /*定義結構名*/*地市受災信息鏈結點結構*/typedef struct city char city_id5; /*地市編號*/ char city_name10; /*地市名稱*/ char prov_id2; /*所屬省自治區(qū)編號*/ float land_area; /*耕地面積*/ floa
7、t lake_area; /*湖泊面積*/ int sum2; /*該省自治區(qū)輸入的地市數*/ int town_num; /*所轄鄉(xiāng)鎮(zhèn)數*/ int town_disa_num; /*受災鄉(xiāng)鎮(zhèn)數*/ int town_dro_num; /*旱災鄉(xiāng)鎮(zhèn)數*/ int town_flo_num; /*洪災鄉(xiāng)鎮(zhèn)數*/ int popu_disa_num; /*受災人口*/ float dro_area; /*旱災面積*/ float flo_area; /*洪災面積*/ float prodro_area; /*抗旱面積*/ float proflo_area; /*抗洪面積*/ float dro
8、_fund; /*抗旱投入資金*/ float flo_fund; /*抗洪投入資金*/ float relief; /*救濟金額*/ struct town *tnext; /*指向鄉(xiāng)鎮(zhèn)受災信息的頭指針*/ struct city *next; /*指向下一地市的指針*/ city;/*省自治區(qū)受災信息鏈結點結構*/typedef struct prov char prov_id2; /*省自治區(qū)編號*/ char prov_name20; /*省自治區(qū)名稱*/ float land_area; /*耕地面積*/ float lake_area; /*湖泊面積*/ int sum1; /*輸
9、入的自治區(qū)數*/ 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; /*抗洪投
10、入資金*/ float relief; /*救濟金額*/ struct city *cnext; /* 指向地市受災信息的頭指針*/ struct prov *next; /* 指向下一省自治區(qū)的指針*/ prov;char prov_id2; /*全局變量,記錄省自治區(qū)編號*/char city_id5; /*全局變量,記錄地市編號*/prov * head; /*省自治區(qū)鏈表頭指針*/city * head2; /*地市鏈表頭指針*/town * head3; /*鄉(xiāng)鎮(zhèn)鏈表頭指針*/int sum1; /*存儲省自治區(qū)總個數*/int sum2; /*存儲地市個數*/int sum3; /
11、*存儲鄉(xiāng)鎮(zhèn)個數*/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 * ); /*創(chuàng)建省自治區(qū)鏈表函數*/void CreateCity(city * ); /*創(chuàng)建地市鏈表函數*/void CreateTown(town
12、 * ); /*創(chuàng)建鄉(xiāng)鎮(zhèn)鏈表函數*/void Save(prov*); /*保存信息函數*/void Load(prov *); /*載入信息函數*/void QueryProv(prov *); /*顯示查詢省自治區(qū)信息函數*/void QueryCity(prov *,city *); /*顯示查詢地市信息函數*/void QueryTown(prov *,city *,town *); /*顯示查詢鄉(xiāng)鎮(zhèn)信息函數*/void InsertProv(prov *); /*顯示插入省自治區(qū)信息函數*/void InsertCity(prov *,city *); /*顯示插入地市信息函數*/v
13、oid InsertTown(prov *,city *,town *);/*顯示插入鄉(xiāng)鎮(zhèn)信息函數*/void DeleteProv(prov *); /*顯示刪除省自治區(qū)信息函數*/void DeleteCity(prov *,city *); /*顯示刪除地市信息函數*/void DeleteTown(prov *,city *,town *);/*顯示刪除鄉(xiāng)鎮(zhèn)信息函數*/void EditProv(prov *); /*顯示修改省自治區(qū)信息函數*/void EditCity(prov *,city *); /*顯示修改地市信息函數*/void EditTown(prov *,city *
14、,town *);/*顯示修改鄉(xiāng)鎮(zhèn)信息函數*/void StatProv(prov *,city *,town *); /*顯示統(tǒng)計省自治區(qū)信息函數*/void StatCity(prov *,city *,town *); /*顯示統(tǒng)計地市信息函數*/void StatTown(prov *,city *,town *); /*顯示統(tǒng)計鄉(xiāng)鎮(zhèn)信息函數*/void main() prov *head=NULL; int i,j,key,x,y,back; welcome(); clrscr(); menu: do textbackground(BLACK);/* 設置屏幕背景顏色,并清除屏幕 *
15、/ clrscr(); window(1,1,80,1);/* 創(chuàng)建窗口用于顯示菜單欄 */ /* 設置文本屬性:白底藍字 */ textbackground(WHITE); /* 白色背景 */ textcolor(BLUE); /* 藍色字體 */ clrscr(); /* 清屏 */ window(1,1,80,1); /*設置活動菜單窗口*/ clrscr(); /* 清屏 */ /* 顯示菜單 */ for(i=0,j=0;i<7;i+) /* 保存菜單第一個字母的位置,后面要用紅色再打一次菜單的第一個字母 */ x=wherex(); /* 當前光標 X坐標 */ y=whe
16、rey(); /* 當前光標 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 顯示F
17、ile下拉菜單*/ 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下拉菜單窗口覆蓋的區(qū)域到內存buf */ window(5,2,12,8); /*創(chuàng)建File下拉菜單窗口 */ /*設置文本屬性:白底黑字 */ textbackground(WHITE); textcolor(BLAC
18、K); clrscr(); window(5,2,12,8); /* 畫邊框 */ frame(1,1,8,6); /* 打印輸出下拉菜單 */ for(i=2; i<6;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); /* 處理按鍵 */
19、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,
20、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); /*恢復之前
21、藍底黃字的項 到白底黑字*/ window(1,2,80,25); /*在整個屏幕上建一個窗口*/ clrscr(); CreateProv(&head); /*創(chuàng)建文件*/ 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);/*恢復屏幕顯示
22、*/ 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
23、,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); /*E
24、e顯示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); /*備份將要被下拉菜單窗口覆蓋的區(qū)域到內存buf */ window(14,2,23,7); /*創(chuàng)建下拉菜單窗口 */ /*設置文本屬性:白底黑字 */ textbackground(WHITE); textcolor(BLAC
25、K); clrscr(); window(14,2,23,7); frame(1,1,10,5); /* 畫邊框 */ /* 打印輸出下拉菜單 */ for(i=2; i<5;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); /* 處理按鍵 *
26、/ 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; /* 如果往下,到了最下面跳到最上面 */ ge
27、ttext(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);/*恢復屏幕顯示*/ /* 恢復之前 藍底黃字的項 到 白底黑字
28、*/ puttext(14,y+1,23,y+1,buf1); EditProv(head);/*顯示插入省自治區(qū)信息函數*/ 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
29、,y+1,buf1); EditTown(head,head2,head3);/*顯示插入鄉(xiāng)鎮(zhèn)信息函數*/ 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); textbackg
30、round(BLACK); textcolor(WHITE);/*設置文本屬性:黑底白字 */ gotoxy(24,1); cprintf("%s",menu2); /*打印輸出 Insert */ gettext(24,2,33,7,buf);/*備份將要被下拉菜單窗口覆蓋的區(qū)域到內存buf */ window(24,2,33,7);/*創(chuàng)建下拉菜單窗口 */ textbackground(WHITE); textcolor(BLACK); /*設置文本屬性:白底黑字 */ clrscr(); window(24,2,33,7); frame(1,1,10,5); /*
31、畫邊框 */ /* 打印輸出下拉菜單 */ for(i=2; i<5;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&&
32、amp;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行
33、,用 藍底黃字(表示選中) 打印輸出 當前項 */ 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);/*
34、顯示插入省自治區(qū)信息函數*/ 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);/*顯示插入
35、鄉(xiāng)鎮(zhèn)信息函數*/ 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); /*設置文本屬性:黑底白字
36、 */ gotoxy(35,1); cprintf("%s",menu3); /*打印輸出 Delete */ gettext(35,2,44,7,buf); /*備份將要被下拉菜單窗口覆蓋的區(qū)域到內存buf */ window(35,2,44,7); /*創(chuàng)建下拉菜單窗口 */ textbackground(WHITE); textcolor(BLACK); /*設置文本屬性:白底黑字 */ clrscr(); window(35,2,44,7); frame(1,1,10,5); /* 畫邊框 */ /* 打印輸出下拉菜單 */ for(i=2; i<5;i+) gotoxy(2,i); cprintf("%s",Di-2); /* 備份下拉菜單的第一項到內存bufl,然后用 藍底黃字(表示選中) 打印輸出第一項 */ gettext(35,3,44,3,buf1); textbackground(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五一假期后校長在教師收心會上講話:教育是一項靜待花開的事業(yè)更是一份沉甸甸的責任
- 2025辦公家具定制采購合同
- 2025租賃場地轉租合同協(xié)議書范本
- 2025裝修合同及預算表解析
- 2025肉雞養(yǎng)殖合同范本
- 2025短期勞動合同的規(guī)定與要求
- 2025屆吉林省吉林地區(qū)高三三??荚囄锢碓囶}及答案
- 2025奶茶店轉讓合同
- 《三國時期歷史背景分析初一歷史教案》
- 特級教師常用的十大教育原理
- 供貨保證措施以及應急保障措施
- 任務6-2 機場安檢崗位的設置課件講解
- 倫理與社會責任智慧樹知到期末考試答案章節(jié)答案2024年浙江大學
- (高清版)JTGT 3610-2019 公路路基施工技術規(guī)范
- 物聯網技術概論智慧樹知到期末考試答案章節(jié)答案2024年西安交通大學
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 幼兒園大班語言《睡睡鎮(zhèn)》課件
- 2024年山東省濟南市市中區(qū)中考二模地理試卷
- 人教版一年級《天地人你我他》課件
- 新車入戶代辦委托書
- 第10課 鴉片戰(zhàn)爭【人教版】
評論
0/150
提交評論