华科计算机学院C语言课设源代码1.docx

上传人:b****6 文档编号:7582623 上传时间:2023-01-25 格式:DOCX 页数:103 大小:35.17KB
下载 相关 举报
华科计算机学院C语言课设源代码1.docx_第1页
第1页 / 共103页
华科计算机学院C语言课设源代码1.docx_第2页
第2页 / 共103页
华科计算机学院C语言课设源代码1.docx_第3页
第3页 / 共103页
华科计算机学院C语言课设源代码1.docx_第4页
第4页 / 共103页
华科计算机学院C语言课设源代码1.docx_第5页
第5页 / 共103页
点击查看更多>>
下载资源
资源描述

华科计算机学院C语言课设源代码1.docx

《华科计算机学院C语言课设源代码1.docx》由会员分享,可在线阅读,更多相关《华科计算机学院C语言课设源代码1.docx(103页珍藏版)》请在冰豆网上搜索。

华科计算机学院C语言课设源代码1.docx

华科计算机学院C语言课设源代码1

#include

#include

#include

#include

#include

#include

#include

#defineSUM100

/*菜单内容*/

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[]={"Provincemode","Citymode","Townmode"};

/*Help菜单*/

char*H[]={"About..."};

/*缓冲区*/

charbuf[18*10*2],buf1[17*2];

/*乡镇受灾信息链结点结构*/

typedefstructtown

{

chartown_id[4];/*乡镇编号*/

chartown_name[7];/*乡镇名称*/

charcity_id[5];/*所属地市编号*/

charprov_id[2];/*所属省自治区编号*/

floatland_area;/*耕地面积*/

floatlake_area;/*湖泊面积*/

intsum3;/*该地市输入的乡镇数*/

intvill_num;/*所辖自然村数*/

intvill_disa_num;/*受灾自然村数*/

intvill_dro_num;/*旱灾自然村数*/

intvill_flo_num;/*洪灾自然村数*/

intpopu_disa_num;/*受灾人口*/

floatdro_area;/*旱灾面积*/

floatflo_area;/*洪灾面积*/

floatprodro_area;/*抗旱面积*/

floatproflo_area;/*抗洪面积*/

floatdro_fund;/*抗旱投入资金*/

floatflo_fund;/*抗洪投入资金*/

floatrelief;/*救济金额*/

structtown*next;/*指向下一乡镇的指针*/

}town;/*定义结构名*/

/*地市受灾信息链结点结构*/

typedefstructcity

{

charcity_id[5];/*地市编号*/

charcity_name[10];/*地市名称*/

charprov_id[2];/*所属省自治区编号*/

floatland_area;/*耕地面积*/

floatlake_area;/*湖泊面积*/

intsum2;/*该省自治区输入的地市数*/

inttown_num;/*所辖乡镇数*/

inttown_disa_num;/*受灾乡镇数*/

inttown_dro_num;/*旱灾乡镇数*/

inttown_flo_num;/*洪灾乡镇数*/

intpopu_disa_num;/*受灾人口*/

floatdro_area;/*旱灾面积*/

floatflo_area;/*洪灾面积*/

floatprodro_area;/*抗旱面积*/

floatproflo_area;/*抗洪面积*/

floatdro_fund;/*抗旱投入资金*/

floatflo_fund;/*抗洪投入资金*/

floatrelief;/*救济金额*/

structtown*tnext;/*指向乡镇受灾信息的头指针*/

structcity*next;/*指向下一地市的指针*/

}city;

/*省自治区受灾信息链结点结构*/

typedefstructprov

{

charprov_id[2];/*省自治区编号*/

charprov_name[20];/*省自治区名称*/

floatland_area;/*耕地面积*/

floatlake_area;/*湖泊面积*/

intsum1;/*输入的自治区数*/

intcity_num;/*所辖市县数*/

intcity_disa_num;/*受灾市县数*/

intcity_dro_num;/*旱灾市县数*/

intcity_flo_num;/*洪灾市县数*/

intpopu_disa_num;/*受灾人口*/

floatdro_area;/*旱灾面积*/

floatflo_area;/*洪灾面积*/

floatprodro_area;/*抗旱面积*/

floatproflo_area;/*抗洪面积*/

floatdro_fund;/*抗旱投入资金*/

floatflo_fund;/*抗洪投入资金*/

floatrelief;/*救济金额*/

structcity*cnext;/*指向地市受灾信息的头指针*/

structprov*next;/*指向下一省自治区的指针*/

}prov;

charprov_id[2];/*全局变量,记录省自治区编号*/

charcity_id[5];/*全局变量,记录地市编号*/

prov*head;/*省自治区链表头指针*/

city*head2;/*地市链表头指针*/

town*head3;/*乡镇链表头指针*/

intsum1;/*存储省自治区总个数*/

intsum2;/*存储地市个数*/

intsum3;/*存储乡镇个数*/

voidframe(intstartx,intstarty,intwidth,intheight);/*画边框函数*/

voidwelcome(void);/*欢迎界面函数*/

intmainmenu(void);/*主菜单界面函数*/

intget_key(void);/*得到按键值函数*/

intShowAbout(void);/*显示帮助函数*/

voidCreateProv(prov**);/*创建省自治区链表函数*/

voidCreateCity(city**);/*创建地市链表函数*/

voidCreateTown(town**);/*创建乡镇链表函数*/

voidSave(prov*);/*保存信息函数*/

voidLoad(prov**);/*载入信息函数*/

voidQueryProv(prov**);/*显示查询省自治区信息函数*/

voidQueryCity(prov**,city**);/*显示查询地市信息函数*/

voidQueryTown(prov**,city**,town**);/*显示查询乡镇信息函数*/

voidInsertProv(prov*);/*显示插入省自治区信息函数*/

voidInsertCity(prov*,city*);/*显示插入地市信息函数*/

voidInsertTown(prov*,city*,town*);/*显示插入乡镇信息函数*/

voidDeleteProv(prov*);/*显示删除省自治区信息函数*/

voidDeleteCity(prov*,city*);/*显示删除地市信息函数*/

voidDeleteTown(prov*,city*,town*);/*显示删除乡镇信息函数*/

voidEditProv(prov**);/*显示修改省自治区信息函数*/

voidEditCity(prov**,city**);/*显示修改地市信息函数*/

voidEditTown(prov**,city**,town**);/*显示修改乡镇信息函数*/

voidStatProv(prov**,city**,town**);/*显示统计省自治区信息函数*/

voidStatCity(prov**,city**,town**);/*显示统计地市信息函数*/

voidStatTown(prov**,city**,town**);/*显示统计乡镇信息函数*/

voidmain()

{

prov*head=NULL;

inti,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;i<7;i++)

{

/*保存菜单第一个字母的位置,后面要用红色再打一次菜单的第一个字母*/

x=wherex();/*当前光标X坐标*/

y=wherey();/*当前光标Y坐标*/

cprintf("%s",menu[i]);/*打印输出菜单*/

j=strlen(menu[i]);

gotoxy(x,y);

textcolor(RED);/*用红色输出菜单的第一个字母*/

cprintf("%s",red[i]);

x=x+j+5;

gotoxy(x,y);

textcolor(BLUE);/*将文本颜色修改为蓝色*/

}

x=0;

key=0;

while(bioskey

(1)==0);/*等待键盘输入*/

key=get_key();/*取得按键*/

/*F\f显示File下拉菜单*/

if(key==33)

{

textbackground(BLACK);

textcolor(WHITE);/*设置文本属性:

黑底白字*/

window(1,1,80,1);

gotoxy(5,1);

cprintf("%s",menu[0]);/*打印输出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;i<6;i++)

{

gotoxy(2,i);

cprintf("%s",F[i-2]);

}

/*备份下拉菜单的第一项到内存bufl,然后用蓝底黄字(表示选中)打印输出第一项*/

gettext(5,3,12,3,buf1);

textbackground(BLUE);

textcolor(YELLOW);

gotoxy(2,2);

cprintf("%s",F[0]);

/*处理按键*/

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",F[y-2]);

}

key=get_key();/*等待键盘输入*/

}

/*Enter*/

if(key==28)

{/*下拉菜单处理*/

switch(y-1)

{

case1:

puttext(5,3,12,3,buf);/*恢复屏幕显示*/

puttext(5,y+1,12,y+1,buf1);/*恢复之前蓝底黄字的项到白底黑字*/

window(1,2,80,25);/*在整个屏幕上建一个窗口*/

clrscr();

CreateProv(&head);/*创建文件*/

break;

case2:

puttext(5,3,12,3,buf);/*恢复屏幕显示*/

puttext(5,y+1,12,y+1,buf1);/*恢复之前蓝底黄字的项到白底黑字*/

window(1,2,80,25);/*在整个屏幕上建一个窗口*/

clrscr();

Save(head);/*保存文件*/

break;

case3:

puttext(5,3,12,3,buf);/*恢复屏幕显示*/

puttext(5,y+1,12,y+1,buf1);/*恢复之前蓝底黄字的项到白底黑字*/

window(1,2,80,25);/*在整个屏幕上建一个窗口*/

clrscr();

Load(&head);/*读取文件*/

break;

case4:

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",menu[0]);

}

}

/*E\e显示Edit下拉菜单*/

if(key==18)

{

window(1,1,80,1);

textbackground(BLACK);

textcolor(WHITE);/*设置文本属性:

黑底白字*/

gotoxy(14,1);/*打印输出Edit*/

cprintf("%s",menu[1]);

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;i<5;i++)

{

gotoxy(2,i);

cprintf("%s",I[i-2]);

}

/*备份下拉菜单的第一项到内存bufl,然后用蓝底黄字(表示选中)打印输出第一项*/

gettext(14,3,23,3,buf1);

textbackground(BLUE);

textcolor(YELLOW);

gotoxy(2,2);

cprintf("%s",E[0]);

/*处理按键*/

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",E[y-2]);

}

key=get_key();/*等待键盘输入*/

}

/*Enter*/

if(key==28)

{

switch(y-1)/*下拉菜单处理*/

{

case1:

puttext(14,2,23,7,buf);/*恢复屏幕显示*/

/*恢复之前蓝底黄字的项到白底黑字*/

puttext(14,y+1,23,y+1,buf1);

EditProv(head);/*显示插入省自治区信息函数*/

gotomenu;

case2:

puttext(14,2,23,7,buf);/*恢复屏幕显示*/

/*恢复之前蓝底黄字的项到白底黑字*/

puttext(14,y+1,23,y+1,buf1);

EditCity(head,head2);/*显示插入地市信息函数*/

gotomenu;

case3:

puttext(14,2,23,7,buf);/*恢复屏幕显示*/

/*恢复之前蓝底黄字的项到白底黑字*/

puttext(14,y+1,23,y+1,buf1);

EditTown(head,head2,head3);/*显示插入乡镇信息函数*/

gotomenu;

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",menu[2]);

}

}

/*I\i显示Insert下拉菜单*/

if(key==23)

{

window(1,1,80,1);

textbackground(BLACK);

textcolor(WHITE);/*设置文本属性:

黑底白字*/

gotoxy(24,1);

cprintf("%s",menu[2]);/*打印输出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;i<5;i++)

{

gotoxy(2,i);

cprintf("%s",I[i-2]);

}

/*备份下拉菜单的第一项到内存bufl,然后用蓝底黄字(表示选中)打印输出第一项*/

gettext(24,3,33,3,buf1);

textbackground(BLUE);

textcolor(YELLOW);

gotoxy(2,2);

cprintf("%s",I[0]);

/*处理按键*/

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=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1