⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 学生管理.c.txt

📁 一个简单的turbo c的学生管理的源程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#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 + -