📄 学生管理.c.txt
字号:
#include "math.h" /*数学库函数*/
#include "graphics.h"/*图形功能函数*/
#include "conio.h" /*调用DOS控制台I/O 子函数*/
#include "bios.h" /*调用ROM-BIOS 子程序函数*/
#include "process.h" /*进程管理函数*/
#include "string.h" /*串操作函数*/
#include "stdio.h" /*输入输出函数*/
#include "stdlib.h" /*转换子程序函数*/
#include "alloc.h" /*内存管理函数*/
#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]={"学生档案","档案修改","档案查找","成绩统计"};
char *Sub[4][6]={
{"输入档案",
"输出档案", "退出"},
{"插入",
"排序",
"删除"
},
{"由姓名",
"由学号"
},
{"及格人数",
"优秀人数",
"平均分"
}};
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,"学生信息管理系统"); /*一个汉字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,"按任意键继续......");
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() /*执行菜单命令*/
{ 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: /*按学号查询*/
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(" 西 安 邮 电 学 院");
Wind(1,2,80,23,2,0,1,15,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -