?? 學(xué)生管理.c.txt
字號:
#include "math.h" /*數(shù)學(xué)庫函數(shù)*/
#include "graphics.h"/*圖形功能函數(shù)*/
#include "conio.h" /*調(diào)用DOS控制臺I/O 子函數(shù)*/
#include "bios.h" /*調(diào)用ROM-BIOS 子程序函數(shù)*/
#include "process.h" /*進程管理函數(shù)*/
#include "string.h" /*串操作函數(shù)*/
#include "stdio.h" /*輸入輸出函數(shù)*/
#include "stdlib.h" /*轉(zhuǎn)換子程序函數(shù)*/
#include "alloc.h" /*內(nèi)存管理函數(shù)*/
#define LEFT 331
#define RIGHT 333
#define UPPER 328
#define DOWN 336
#define ALT_X 301
#define ESC 27
#define ENTER 13
#define ALL 100
struct days
{ int year;
int month;
int date;} ;
struct mark
{ int score1[5];
float ave1;
int xf ;
};
struct student
{ char name[10];
int num;
char sex[6];
char class[10];
struct days birth;
char pol[10];
char addr[10];
struct mark score;
struct mark xf;
}stu[ALL],MID;
void into();
void out();
void quit();
void insert();
void sort();
void delete();
void fromname();
void fromnum();
void pass();
void best();
void sars();
void fengm();
void load();
void WrtMnMenu();
void WrtSbMenu();
void SlctMenu();
void SlctMnMenu();
void SlctSbMenu();
int GetKey();
void SbFunGo();
void Screen();
void Wind(int ,int ,int, int ,int ,int ,int,int,int);
void Quit();
int Mm=0;
int Smm[4];
int SbNum[4]={3,3,2,2};
int SbWid[4]={10,10,10,10};
int SbX[4]={5,20,33,47};
int Key=0;
char Buf[1000]; int x1=5,y1=3,x2=76,y2=23;
char *Main[4]={"學(xué)生檔案","檔案修改","檔案查找","成績統(tǒng)計"};
char *Sub[4][6]={
{"輸入檔案",
"輸出檔案", "退出"},
{"插入",
"排序",
"刪除"
},
{"由姓名",
"由學(xué)號"
},
{"及格人數(shù)",
"優(yōu)秀人數(shù)",
"平均分"
}};
main()
{sars();
load();
fengm();
Screen();
WrtMnMenu();
WrtSbMenu();
SlctMenu();
Quit();
return(0);}
void sars()
{
int gd=DETECT,gm,i,n;
float t,x[6],y[6],a[5],b[5];
initgraph(&gd,&gm,"d:\\tc");
bar(45,49,50,440);
setfillstyle(1,RED);
bar(50,50,590,430);
t=6.28/5;
/*大五角星*/
for(i=0;i<6;i++)
{
x[i]=140+45*cos(.1*3.14+i*t-3.14);
y[i]=145+45*sin(.1*3.14+i*t-3.14);
}
for(i=0;i<5;i++)
{
a[i]=140+17*cos(.1*3.14+i*t+3.77);
b[i]=145+17*sin(.1*3.14+i*t+3.77);
}
setcolor(YELLOW);
for(i=0;i<5;i++)
{
line(x[i],y[i],a[i],b[i]);
line(a[i],b[i],x[i+1],y[i+1]);
}
setfillstyle(1,YELLOW);
floodfill(140,145,YELLOW);
/*小五角星1*/
for(i=0;i<6;i++)
{
x[i]=240+15*cos(.314+i*t-3.14-.8);
y[i]=80+15*sin(.314+i*t-3.14-.8);
}
for(i=0;i<5;i++)
{
a[i]=240+6*cos(.314+i*t+3.77-.8);
b[i]=80+6*sin(.314+i*t+3.77-.8);
}
setcolor(YELLOW);
for(i=0;i<5;i++)
{
line(x[i],y[i],a[i],b[i]);
line(a[i],b[i],x[i+1],y[i+1]);
}
floodfill(240,80,YELLOW);
/*小五角星2*/
for(i=0;i<6;i++)
{
x[i]=270+15*cos(.314+i*t-3.14-.5);
y[i]=120+15*sin(.314+i*t-3.14-.5);
}
for(i=0;i<5;i++)
{
a[i]=270+6*cos(.314+i*t+3.77-.5);
b[i]=120+6*sin(.314+i*t+3.77-.5);
}
setcolor(YELLOW);
for(i=0;i<5;i++)
{
line(x[i],y[i],a[i],b[i]);
line(a[i],b[i],x[i+1],y[i+1]);
}
floodfill(270,120,YELLOW);
/*小五角星3*/
for(i=0;i<6;i++)
{
x[i]=270+15*cos(.314+i*t-3.14+.05);
y[i]=170+15*sin(.314+i*t-3.14+.05);
}
for(i=0;i<5;i++)
{
a[i]=270+6*cos(.314+i*t+3.77+.05);
b[i]=170+6*sin(.314+i*t+3.77+.05);
}
setcolor(YELLOW);
for(i=0;i<5;i++)
{
line(x[i],y[i],a[i],b[i]);
line(a[i],b[i],x[i+1],y[i+1]);
}
floodfill(270,170,YELLOW);
/*小五角星4*/
for(i=0;i<6;i++)
{
x[i]=240+15*cos(.314+i*t-3.14+.2);
y[i]=210+15*sin(.314+i*t-3.14+.2);
}
for(i=0;i<5;i++)
{
a[i]=240+6*cos(.314+i*t+3.77+.2);
b[i]=210+6*sin(.314+i*t+3.77+.2);
}
setcolor(YELLOW);
for(i=0;i<5;i++)
{
line(x[i],y[i],a[i],b[i]);
line(a[i],b[i],x[i+1],y[i+1]);
}
floodfill(240,210,YELLOW);
settextstyle(0, 0, 3);
outtextxy( 74,432,"我們中國人不怕SARS!");
getch();
};
void load()
{int driver=DETECT,mode;
initgraph(&driver,&mode,"");
setbkcolor(0);
settextstyle(0,0,0);
outtextxy(264,300,"Loading......");
setfillstyle(SOLID_FILL,GREEN);
bar(184,320,449,328);
sleep(1);
setfillstyle(SOLID_FILL,LIGHTGREEN);
bar(184,320,214,328);
sleep(1);
bar(214,320,261,328);
sleep(1);
bar(261,320,308,328);
sleep(1);
bar(308,320,355,328);
sleep(1);
bar(355,320,402,328);
sleep(1);
bar(402,320,449,328);
sleep(1);
closegraph();
}
void fengm()
{int gdrive=DETECT,gmode;
initgraph(&gdrive,&gmode,"");
setbkcolor(0);
setfillstyle(SOLID_FILL,LIGHTBLUE);
bar(20,15,620,295);
setfillstyle(SOLID_FILL,BLACK);
bar(100,70,580,250);
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(80,55,560,235);
setfillstyle(SOLID_FILL,BLACK);
bar(160,110,520,190);
setfillstyle(SOLID_FILL,RED);
bar(140,95,500,175);
rectangle(23,18,617,292);
rectangle(83,58,557,232);
settextstyle(0,0,2);
outtextxy(190,125,"學(xué)生信息管理系統(tǒng)"); /*一個漢字8*8點陣?*/
settextstyle(0,0,1);
outtextxy(320,204,"擺渡人工作組制作");
outtextxy(410,264,"2003年5月");
line(0,450,640,450);
settextstyle(0,0,1);
outtextxy(260,456,"按任意鍵繼續(xù)......");
getch();
closegraph();
}
void WrtMnMenu() /*寫主菜單*/
{ int i;
window(1,1,80,25);
textattr(0x3e);
for(i=0;i<4;i++)
{ gotoxy(SbX[i],1);
cputs(Main[i]);
} gotoxy(SbX[Mm],1);
textattr(0x4e);
cputs(Main[Mm]);
if(Key==ESC||Key==ALT_X) exit(0);}
void WrtSbMenu() /*寫下拉式菜單*/
{ int i;
gettext(SbX[Mm]-2,2,SbX[Mm]+SbWid[Mm]+1,SbNum[Mm]+4,Buf);
Wind(SbX[Mm]-2,2,SbX[Mm]+SbWid[Mm],SbNum[Mm]+3,1,1,3,15,1);
textattr(0x3f);
for(i=0;i<SbNum[Mm];i++)
{ gotoxy(2,1+i);
cputs(Sub[Mm][i]);}
textattr(0x1e);
gotoxy(2,Smm[Mm]+1);
cputs(Sub[Mm][Smm[Mm]]);
}
void SlctMenu() /*選擇菜單*/
{ while (Key!=ALT_X&&Key!=ESC)
{ Key=GetKey();
if(Key==LEFT||Key==RIGHT) SlctMnMenu();
if(Key==UPPER||Key==DOWN) SlctSbMenu();
if(Key==ENTER) SbFunGo();}
return;}
void SlctMnMenu() /*選擇主菜單*/
{window(1,1,80,25);
textattr(0x3e);
gotoxy(SbX[Mm],1);
cputs(Main[Mm]);
textattr(0x31);
puttext(SbX[Mm]-2,2,SbX[Mm]+SbWid[Mm]+1,SbNum[Mm]+4,Buf);
if(Key==LEFT) Mm=Mm==0?3:Mm-1;
if(Key==RIGHT) Mm=Mm==3?0:Mm+1;
textattr(0x4e);
gotoxy(SbX[Mm],1);
cputs(Main[Mm]);
WrtSbMenu();}
void SlctSbMenu() /*選擇下拉式菜單*/
{textattr(0x3f);
gotoxy(2,1+Smm[Mm]);
cputs(Sub[Mm][Smm[Mm]]);
if(Key==UPPER) Smm[Mm]=Smm[Mm]==0?SbNum[Mm]-1:Smm[Mm-1];
if(Key==DOWN) Smm[Mm]=Smm[Mm]==SbNum[Mm]-1?0:Smm[Mm]+1;
textattr(0x1e);
gotoxy(2,Smm[Mm]+1);
cputs(Sub[Mm][Smm[Mm]]);}
int GetKey()
{int Ch,Low,Hig;
Ch=bioskey(0);
Low=Ch&0x00ff;
Hig=(Ch&0xff00)>>8;
return(Low==0?Hig+256:Low);}
void SbFunGo() /*執(zhí)行菜單命令*/
{ void *buffer;
/*buffer=(void *)calloc(100);*/
switch(Mm)
{case 0:
switch(Smm[0]) /*輸入檔案*/
{ case 0:
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
into();
puttext(1,1,80,25,buffer);
free(buffer);
break;
case 1: /*輸出檔案*/
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
out();
puttext(1,1,80,25,buffer);
free(buffer);
break;
case 2: /*退出*/
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
quit();
puttext(1,1,80,25,buffer); free(buffer);
break;
}
break;
case 1: /*插入檔案*/
switch(Smm[1])
{ case 0:
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
insert();
puttext(1,1,80,25,buffer);
free(buffer);
break;
case 1: /*排序*/
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
sort();
puttext(1,1,80,25,buffer);
free(buffer);
break;
case 2: /*刪除檔案*/
delete();
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
puttext(1,1,80,25,buffer);
free(buffer);
break;
}
break;
case 2: /*按名字查詢*/
switch(Smm[2])
{ case 0:
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
fromname();
puttext(1,1,80,25,buffer);
free(buffer);
break;
case 1: /*按學(xué)號查詢*/
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
fromnum();
puttext(1,1,80,25,buffer);
free(buffer);
break;
}
break;
case 3:
switch(Smm[3])
{ case 0:
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
pass();
puttext(1,1,80,25,buffer);
free(buffer); break;
case 1:
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
best();
puttext(1,1,80,25,buffer);
free(buffer);break;
}
break;
}
}
void Screen()
{ window(1,1,80,25);
textattr(0x17);
clrscr();
window(1,1,80,1);
textattr(0x3e);
clrscr();
window(1,24,80,24);
textattr(0x74);
clrscr();
cputs("\x18"); putchar(' ');
cputs("\x19"); putchar(' ');
cputs("\x1a"); putchar(' ');
cputs("\x1b"); putchar(' ');
textattr(0x7e);cputs(" ");
textattr(0x74);cputs(" Enter");
textattr(0x7e);cputs(" 選擇菜單");
textattr(0x74);cputs(" Alt_X");
textattr(0x7e);cputs("或者");
textattr(0x74);cputs(" ESC");
textattr(0x7e);cputs(" 退出");
window(1,25,80,25);
textattr(0x3e);
clrscr();
cputs(" 西 安 郵 電 學(xué) 院");
Wind(1,2,80,23,2,0,1,15,1);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -