華科計算機學(xué)院C語言課設(shè)源代碼_第1頁
華科計算機學(xué)院C語言課設(shè)源代碼_第2頁
華科計算機學(xué)院C語言課設(shè)源代碼_第3頁
華科計算機學(xué)院C語言課設(shè)源代碼_第4頁
華科計算機學(xué)院C語言課設(shè)源代碼_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

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/*菜單內(nèi)容*/char *menu="File", /*文件*/ "Edit ", /*修改*/ "Insert", /*插入*/ "Delete",

2、 /*刪除*/ "Query", /*查詢*/ "Statistic", /*統(tǒng)計*/ "Help"/*將首字母設(shè)為紅色*/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)受災(zāi)信息鏈結(jié)點結(jié)構(gòu)*/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)數(shù)*/ int vill_num; /*所轄自然村數(shù)*/ int vill_disa_num; /*受災(zāi)自然村數(shù)*/ int vill_dro_num; /*旱災(zāi)自然村數(shù)*/ int vill_flo_num; /*洪災(zāi)自然村數(shù)*/ int popu_disa_num; /*受災(zāi)人口*/ float dro_area; /*旱災(zāi)面積*/ float flo_area; /*洪災(zāi)面積*/ float prodro_area; /*抗旱面

6、積*/ float proflo_area; /*抗洪面積*/ float dro_fund; /*抗旱投入資金*/ float flo_fund; /*抗洪投入資金*/ float relief; /*救濟金額*/ struct town *next; /*指向下一鄉(xiāng)鎮(zhèn)的指針*/ town; /*定義結(jié)構(gòu)名*/*地市受災(zāi)信息鏈結(jié)點結(jié)構(gòu)*/typedef struct city char city_id5; /*地市編號*/ char city_name10; /*地市名稱*/ char prov_id2; /*所屬省自治區(qū)編號*/ float land_area; /*耕地面積*/ floa

7、t lake_area; /*湖泊面積*/ int sum2; /*該省自治區(qū)輸入的地市數(shù)*/ int town_num; /*所轄鄉(xiāng)鎮(zhèn)數(shù)*/ int town_disa_num; /*受災(zāi)鄉(xiāng)鎮(zhèn)數(shù)*/ int town_dro_num; /*旱災(zāi)鄉(xiāng)鎮(zhèn)數(shù)*/ int town_flo_num; /*洪災(zāi)鄉(xiāng)鎮(zhèn)數(shù)*/ int popu_disa_num; /*受災(zāi)人口*/ float dro_area; /*旱災(zāi)面積*/ float flo_area; /*洪災(zāi)面積*/ float prodro_area; /*抗旱面積*/ float proflo_area; /*抗洪面積*/ float dro

8、_fund; /*抗旱投入資金*/ float flo_fund; /*抗洪投入資金*/ float relief; /*救濟金額*/ struct town *tnext; /*指向鄉(xiāng)鎮(zhèn)受災(zāi)信息的頭指針*/ struct city *next; /*指向下一地市的指針*/ city;/*省自治區(qū)受災(zāi)信息鏈結(jié)點結(jié)構(gòu)*/typedef struct prov char prov_id2; /*省自治區(qū)編號*/ char prov_name20; /*省自治區(qū)名稱*/ float land_area; /*耕地面積*/ float lake_area; /*湖泊面積*/ int sum1; /*輸

9、入的自治區(qū)數(shù)*/ int city_num; /*所轄市縣數(shù)*/ int city_disa_num; /*受災(zāi)市縣數(shù)*/ int city_dro_num; /*旱災(zāi)市縣數(shù)*/ int city_flo_num; /*洪災(zāi)市縣數(shù)*/ int popu_disa_num; /*受災(zāi)人口*/ float dro_area; /*旱災(zāi)面積*/ float flo_area; /*洪災(zāi)面積*/ float prodro_area; /*抗旱面積*/ float proflo_area; /*抗洪面積*/ float dro_fund; /*抗旱投入資金*/ float flo_fund; /*抗洪投

10、入資金*/ float relief; /*救濟金額*/ struct city *cnext; /* 指向地市受災(zāi)信息的頭指針*/ 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ū)總個數(shù)*/int sum2; /*存儲地市個數(shù)*/int sum3; /

11、*存儲鄉(xiāng)鎮(zhèn)個數(shù)*/void frame(int startx,int starty,int width,int height) ; /* 畫邊框函數(shù) */void welcome(void) ; /*歡迎界面函數(shù)*/int mainmenu(void); /*主菜單界面函數(shù)*/int get_key(void); /* 得到按鍵值函數(shù) */int ShowAbout(void); /*顯示幫助函數(shù)*/void CreateProv(prov * ); /*創(chuàng)建省自治區(qū)鏈表函數(shù)*/void CreateCity(city * ); /*創(chuàng)建地市鏈表函數(shù)*/void CreateTown(town

12、 * ); /*創(chuàng)建鄉(xiāng)鎮(zhèn)鏈表函數(shù)*/void Save(prov*); /*保存信息函數(shù)*/void Load(prov *); /*載入信息函數(shù)*/void QueryProv(prov *); /*顯示查詢省自治區(qū)信息函數(shù)*/void QueryCity(prov *,city *); /*顯示查詢地市信息函數(shù)*/void QueryTown(prov *,city *,town *); /*顯示查詢鄉(xiāng)鎮(zhèn)信息函數(shù)*/void InsertProv(prov *); /*顯示插入省自治區(qū)信息函數(shù)*/void InsertCity(prov *,city *); /*顯示插入地市信息函數(shù)*/v

13、oid InsertTown(prov *,city *,town *);/*顯示插入鄉(xiāng)鎮(zhèn)信息函數(shù)*/void DeleteProv(prov *); /*顯示刪除省自治區(qū)信息函數(shù)*/void DeleteCity(prov *,city *); /*顯示刪除地市信息函數(shù)*/void DeleteTown(prov *,city *,town *);/*顯示刪除鄉(xiāng)鎮(zhèn)信息函數(shù)*/void EditProv(prov *); /*顯示修改省自治區(qū)信息函數(shù)*/void EditCity(prov *,city *); /*顯示修改地市信息函數(shù)*/void EditTown(prov *,city *

14、,town *);/*顯示修改鄉(xiāng)鎮(zhèn)信息函數(shù)*/void StatProv(prov *,city *,town *); /*顯示統(tǒng)計省自治區(qū)信息函數(shù)*/void StatCity(prov *,city *,town *); /*顯示統(tǒng)計地市信息函數(shù)*/void StatTown(prov *,city *,town *); /*顯示統(tǒng)計鄉(xiāng)鎮(zhèn)信息函數(shù)*/void main() prov *head=NULL; int i,j,key,x,y,back; welcome(); clrscr(); menu: do textbackground(BLACK);/* 設(shè)置屏幕背景顏色,并清除屏幕 *

15、/ clrscr(); window(1,1,80,1);/* 創(chuàng)建窗口用于顯示菜單欄 */ /* 設(shè)置文本屬性:白底藍(lán)字 */ textbackground(WHITE); /* 白色背景 */ textcolor(BLUE); /* 藍(lán)色字體 */ clrscr(); /* 清屏 */ window(1,1,80,1); /*設(shè)置活動菜單窗口*/ clrscr(); /* 清屏 */ /* 顯示菜單 */ for(i=0,j=0;i<7;i+) /* 保存菜單第一個字母的位置,后面要用紅色再打一次菜單的第一個字母 */ x=wherex(); /* 當(dāng)前光標(biāo) X坐標(biāo) */ y=whe

16、rey(); /* 當(dāng)前光標(biāo) Y坐標(biāo) */ cprintf(" %s",menui); /* 打印輸出菜單 */ j=strlen(menui); gotoxy(x,y); textcolor(RED); /* 用紅色輸出菜單的第一個字母 */ cprintf(" %s",redi); x=x+j+5; gotoxy(x,y); textcolor(BLUE); /* 將文本顏色修改為藍(lán)色 */ x=0; key=0; while (bioskey(1)=0); /* 等待鍵盤輸入*/ key=get_key(); /* 取得按鍵 */ /*Ff 顯示F

17、ile下拉菜單*/ if(key=33) textbackground(BLACK); textcolor(WHITE); /*設(shè)置文本屬性:黑底白字 */ window(1,1,80,1); gotoxy(5,1); cprintf("%s",menu0);/*打印輸出 File */ gettext(5,2,12,8,buf); /*備份將要被File下拉菜單窗口覆蓋的區(qū)域到內(nèi)存buf */ window(5,2,12,8); /*創(chuàng)建File下拉菜單窗口 */ /*設(shè)置文本屬性:白底黑字 */ 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); /* 備份下拉菜單的第一項到內(nèi)存bufl,然后用 藍(lán)底黃字(表示選中) 打印輸出第一項 */ 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) /* 上下鍵 */ /* 用內(nèi)存buf1恢復(fù)當(dāng)前菜單項,并備份將要被選中的菜單項到buf1,然后用 藍(lán)底黃字 打印輸出將要被選中的菜單項 */ if(key=72|key=80) puttext(5,y+1,12,y+1,buf1); /* 恢復(fù)之前藍(lán)底黃字的項 到 白底黑字*/ 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); /* 備份當(dāng)前項(黃底藍(lán)字) */ /* 以下4行,用 藍(lán)底黃字(表示選中) 打印輸出 當(dāng)前項 */ 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);/*恢復(fù)屏幕顯示*/ puttext(5,y+1,12,y+1,buf1); /*恢復(fù)之前

21、藍(lán)底黃字的項 到白底黑字*/ window(1,2,80,25); /*在整個屏幕上建一個窗口*/ clrscr(); CreateProv(&head); /*創(chuàng)建文件*/ break; case 2:puttext(5,3,12,3,buf);/*恢復(fù)屏幕顯示*/ puttext(5,y+1,12,y+1,buf1); /* 恢復(fù)之前 藍(lán)底黃字的項 到白底黑字*/ window(1,2,80,25); /*在整個屏幕上建一個窗口*/ clrscr(); Save(head); /*保存文件*/ break; case 3:puttext(5,3,12,3,buf);/*恢復(fù)屏幕顯示

22、*/ puttext(5,y+1,12,y+1,buf1); /* 恢復(fù)之前 藍(lán)底黃字的項 到白底黑字*/ window(1,2,80,25); /*在整個屏幕上建一個窗口*/ clrscr(); Load(&head); /*讀取文件*/ break; case 4:puttext(5,3,12,3,buf);/*恢復(fù)屏幕顯示*/ puttext(5,y+1,12,y+1,buf1); /* 恢復(fù)之前 藍(lán)底黃字的項 到白底黑字*/ 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 -關(guān)閉下拉菜單,恢復(fù)屏幕顯示 */ 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); /*設(shè)置文本屬性:黑底白字 */ gotoxy(14,1); /*打印輸出 Edit */ cprintf("%s",menu1); gettext(14,2,23,7,buf); /*備份將要被下拉菜單窗口覆蓋的區(qū)域到內(nèi)存buf */ window(14,2,23,7); /*創(chuàng)建下拉菜單窗口 */ /*設(shè)置文本屬性:白底黑字 */ 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); /* 備份下拉菜單的第一項到內(nèi)存bufl,然后用 藍(lán)底黃字(表示選中)打印輸出第一項 */ 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) /*上下鍵*/ /* 用內(nèi)存buf1恢復(fù)當(dāng)前菜單項,并備份將要被選中的菜單項到buf1,然后用 藍(lán)底黃字 打印輸出將要被選中的菜單項 */ if(key=72|key=80) puttext(14,y+1,23,y+1,buf1); /* 恢復(fù)之前藍(lán)底黃字的項 到 白底黑字*/ 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); /* 備份當(dāng)前項(白底黑字) */ /* 以下3行,用 藍(lán)底黃字(表示選中) 打印輸出當(dāng)前項 */ 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);/*恢復(fù)屏幕顯示*/ /* 恢復(fù)之前 藍(lán)底黃字的項 到 白底黑字

28、*/ puttext(14,y+1,23,y+1,buf1); EditProv(head);/*顯示插入省自治區(qū)信息函數(shù)*/ goto menu; case 2: puttext(14,2,23,7,buf);/*恢復(fù)屏幕顯示*/ /* 恢復(fù)之前 藍(lán)底黃字的項 到 白底黑字*/ puttext(14,y+1,23,y+1,buf1); EditCity(head,head2);/*顯示插入地市信息函數(shù)*/ goto menu; case 3: puttext(14,2,23,7,buf);/*恢復(fù)屏幕顯示*/ /* 恢復(fù)之前 藍(lán)底黃字的項 到 白底黑字*/ puttext(14,y+1,23

29、,y+1,buf1); EditTown(head,head2,head3);/*顯示插入鄉(xiāng)鎮(zhèn)信息函數(shù)*/ goto menu; default:break; /* ESC -關(guān)閉下拉菜單,恢復(fù)屏幕顯示 */ 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);/*設(shè)置文本屬性:黑底白字 */ gotoxy(24,1); cprintf("%s",menu2); /*打印輸出 Insert */ gettext(24,2,33,7,buf);/*備份將要被下拉菜單窗口覆蓋的區(qū)域到內(nèi)存buf */ window(24,2,33,7);/*創(chuàng)建下拉菜單窗口 */ textbackground(WHITE); textcolor(BLACK); /*設(shè)置文本屬性:白底黑字 */ 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); /* 備份下拉菜單的第一項到內(nèi)存bufl,然后用 藍(lán)底黃字(表示選中) 打印輸出第一項 */ 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) /*上下鍵*/ /* 用內(nèi)存buf1恢復(fù)當(dāng)前菜單項,并備份將要被選中的菜單項到buf1,然后用 藍(lán)底黃字 打印輸出將要被選中的菜單項 */ if(key=72|key=80) puttext(24,y+1,33,y+1,buf1); /* 恢復(fù)之前藍(lán)底黃字的項 到 白底黑字*/ 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); /* 備份當(dāng)前項(白底黑字) */ /* 以下3行

33、,用 藍(lán)底黃字(表示選中) 打印輸出 當(dāng)前項 */ 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);/*恢復(fù)屏幕顯示*/ /* 恢復(fù)之前 藍(lán)底黃字的項 到 白底黑字*/ puttext(24,y+1,33,y+1,buf1); InsertProv(head);/*

34、顯示插入省自治區(qū)信息函數(shù)*/ goto menu; case 2: puttext(24,2,33,7,buf);/*恢復(fù)屏幕顯示*/ /* 恢復(fù)之前 藍(lán)底黃字的項 到 白底黑字*/ puttext(24,y+1,33,y+1,buf1); InsertCity(head,head2);/*顯示插入地市信息函數(shù)*/ goto menu; case 3: puttext(24,2,33,7,buf);/*恢復(fù)屏幕顯示*/ /* 恢復(fù)之前 藍(lán)底黃字的項 到 白底黑字*/ puttext(24,y+1,33,y+1,buf1); InsertTown(head,head2,head3);/*顯示插入

35、鄉(xiāng)鎮(zhèn)信息函數(shù)*/ goto menu; default:break; /* ESC -關(guān)閉下拉菜單,恢復(fù)屏幕顯示 */ 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); /*設(shè)置文本屬性:黑底白字

36、 */ gotoxy(35,1); cprintf("%s",menu3); /*打印輸出 Delete */ gettext(35,2,44,7,buf); /*備份將要被下拉菜單窗口覆蓋的區(qū)域到內(nèi)存buf */ window(35,2,44,7); /*創(chuàng)建下拉菜單窗口 */ textbackground(WHITE); textcolor(BLACK); /*設(shè)置文本屬性:白底黑字 */ clrscr(); window(35,2,44,7); frame(1,1,10,5); /* 畫邊框 */ /* 打印輸出下拉菜單 */ for(i=2; i<5;i+) gotoxy(2,i); cprintf("%s",Di-2); /* 備份下拉菜單的第一項到內(nèi)存bufl,然后用 藍(lán)底黃字(表示選中) 打印輸出第一項 */ gettext(35,3,44,3,buf1); textbackground(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論