正文

学生系统编程2006-07-22 15:46:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ajax/16745.html

分享到:

/*本学生成绩管理系统适合在win-TC 下运行*/ #include "stdio.h"    /*I/O函数*/ #include "stdlib.h"   /*其它说明*/ #include "string.h"   /*字符串函数*/ #include "conio.h"   /*屏幕操作函数*/ #include "mem.h"   /*内存操作函数*/ #include "ctype.h"   /*字符操作函数*/ #include "alloc.h"   /*动态地址分配函数*/ struct student  /*使用结构体定义学生系统成员*/ { long num;      /*输入学生的学号,但不能多于8个数字且开头不能为0*/ char name[20];    /*输入学生的名字,但不能多于20个字符并且姓名之间不能有空格*/ int s[5];       /*输入学生的5科成绩,用数组表示*/ int as;         /*算学生的5科成绩总和*/ int qs;         /*算学生的5科加权成绩总和*/ }stu[100]; struct student t;  /*将t定义为结构题*/ main() {char ch;  int i,j,N;  int yw,sx,yy,hx,wl;/*这是语文 数学 英语 化学 物理各科占有的权重*/  printf("\nInput How many student:");  scanf("%d",&N); /*输入有多少个学生*/  printf("\nInput quanzhong(yuwen,shuxue,yingyu,huaxue,wuli):");  /*输入各科所战的权重*/  scanf("%d,%d,%d,%d,%d",&yw,&sx,&yy,&hx,&wl);/*注意输出的格式为(3,4,5,6,7),括号内为输出格式*/  for(i=0;i<N;i++)   /*输入每个学生的资料*/     {printf("\nInput scores of student %d\n",i+1);      printf("Name:");      scanf("%s",stu[i].name);      printf("No:");      scanf("%ld",&stu[i].num);        for(j=0;j<5;j++)           { printf("score %d:",j+1);             scanf("%d",&stu[i].s[j]);            }      }      clrscr();  for(i=0;i<N;i++)     {stu[i].qs=stu[i].s[0]*yw+stu[i].s[1]*sx +stu[i].s[2]*yy+stu[i].s[3]*hx+stu[i].s[4]*wl; /*计算每个学生的加权总成绩*/      stu[i].as=stu[i].s[0]+stu[i].s[1]+stu[i].s[2]+stu[i].s[3]+stu[i].s[4];       /*计算每个学生的总成绩*/     }   while(1) {   clrscr();                     /*清屏幕*/    gotoxy(1,1);             /*移动光标*/    textcolor(YELLOW);   /*设置文本显示颜色为黄色*/    textbackground(BLUE);   /*设置背景颜色为蓝色*/    window(1,1,99,99);       /* 制作显示菜单的窗口,大小根据菜单条数设计*/     clrscr();   printf("*************************welcome to use student manage**************************\n");   printf("*************************************menu***************************************\n");   printf("* =============================================================================*\n");   printf("*               1>yuwen paiming         2>shuxue paiming                       *\n");   printf("*               3>yingyu paiming        4>huaxue paiming                       *\n");   printf("*               5>wuli paiming          6>xuehao shuchu                        *\n");   printf("*               7>xuehao chaxun         8>xingming chaxun                      *\n");   printf("*               9>zongfen               0>jiaquan zongfen                      *\n");   printf("*               e>exit                                                         *\n");   printf("*                                                                              *\n");   printf("* -----------------------------------------------------------------------------*\n");     printf("     Please input which you want(0-9):"); /*输入数字,查询你所需要的信息*/     ch=getch();  /*吸收空格键*/     switch(ch)  /*进行菜单操作*/     {     case '1' : ywpm(N,stu);  break;     case '2' : sxpm(N,stu);  break;     case '3' : yypm(N,stu);  break;     case '4' : hxpm(N,stu);  break;     case '5' : wlpm(N,stu);  break;     case '6' : xhsc(N,stu);  break;     case '7' : xhcx(N,stu);  break;     case '8' : xmcx(N,stu);  break;     case '9' : zf(N,stu);    break;     case '0' : jqzf(N,stu);  break;     case 'e' : exit(0);     default: continue;     } }  }   ywpm(int m,struct student stu[])   /*语文排名的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].s[0]<stu[i+1].s[0])            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\nshu chu yuwen paiming\n");   printf("           Name         No      yuwenpaiming\n");   for(i=0;i<m;i++)       printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].s[0]);       printf("press any key continue ......\n");/*按任意键重新开始选择*/ getch(); }   sxpm(int m,struct student stu[])  /*数学排名的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].s[1]<stu[i+1].s[1])            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\nshu chu shuxue paiming\n");   printf("           Name         No      shuxuepaiming\n");   for(i=0;i<m;i++)       printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].s[1]);       printf("press any key continue ......\n");/*按任意键重新开始选择*/  getch();  }   yypm(int m,struct student stu[])  /*英语排名的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].s[2]<stu[i+1].s[2])            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\nshu chu yingyu paiming\n");   printf("           Name         No      yingyupaiming\n");   for(i=0;i<m;i++)       printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].s[2]);       printf("press any key continue ......\n");/*按任意键重新开始选择*/  getch();  }   hxpm(int m,struct student stu[])  /*化学排名的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].s[3]<stu[i+1].s[3])            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\nshu chu huaxue paiming\n");   printf("           Name         No      huaxuepaiming\n");   for(i=0;i<m;i++)       printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].s[3]);        printf("press any key continue ......\n");/*按任意键重新开始选择*/  getch();  }   wlpm(int m,struct student stu[])    /*物理排名的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].s[4]<stu[i+1].s[4])            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\nshu chu wuli paiming\n");   printf("           Name         No     wulipaiming\n");   for(i=0;i<m;i++)       printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].s[4]);       printf("press any key continue ......\n");/*按任意键重新开始选择*/  getch();  }   xhsc(int m,struct student stu[])    /*按学号从大到小的顺序输出的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].num<stu[i+1].num)            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\n an xuehao cong da dao xiao shuchu:\n");   printf("           Name         No  yw   sx   yy   hx   wl\n");   for(i=0;i<m;i++)       printf("%14s%11ld%5d%5d%5d%5d%5d\n",stu[i].name,stu[i].num,stu[i].s[0],stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].s[4]);       printf("press any key continue ......\n");/*按任意键重新开始选择*/       getch(); }   xhcx(int m,struct student stu[])    /*输入学号查询学生成绩的操作*/ {long search1; int i;  printf("\nQing shuru chazhao xuehao:");  scanf("%ld",&search1);  clrscr();  for(i=0;i<m;i++)    {  if(search1==stu[i].num)       {        printf("\n           Name         No  yw   sx   yy   hx   wl\n");        printf("%14s%11ld%5d%5d%5d%5d%5d\n",stu[i].name,stu[i].num,stu[i].s[0],stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].s[4]);        }    }    printf("press any key continue ......\n");/*按任意键重新开始选择*/    getch(); }   xmcx(int m,struct student stu[])     /*输入姓名查询学生成绩的操作*/ {char search1; int i;  printf("\nQing shuru chazhao xingming:");  scanf("%s",search1); clrscr(); for(i=0;i<m;i++)    {  if(strcmp(search1,stu[i].name)==0)       {        printf("\n           Name         No  yw   sx   yy   hx   wl\n");        printf("%14s%11ld%5d%5d%5d%5d%5d\n",stu[i].name,stu[i].num,stu[i].s[0],stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].s[4]);        }    }    printf("press any key continue ......\n");/*按任意键重新开始选择*/    getch();}   zf(int m,struct student stu[])   /*总分从大到小显示的操作*/ {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].as<stu[i+1].as)            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\n           Name         No   zongfen       \n");   for(i=0;i<m;i++)   {   printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].as); /*输出每个学生的姓名,学号,总成绩*/   }    printf("press any key continue ......\n");/*按任意键重新开始选择*/   getch(); }   jqzf(int m,struct student stu[])   /*加权总分从大到小显示的操作*/  {int i,j;   for(j=0;j<m;j++)      for(i=0;i<m-j;i++)         if(stu[i].qs<stu[i+1].qs)            {t=stu[i];             stu[i]=stu[i+1];             stu[i+1]=t;             }   printf("\n           Name         No   jiaquanzongfen       \n");   for(i=0;i<m;i++)   {   printf("%14s%11ld%10.2d\n",stu[i].name,stu[i].num,stu[i].qs); /*输出每个学生的姓名,学号,加权总成绩*/   }   printf("press any key continue ......\n");/*按任意键重新开始选择*/   getch();   }  

阅读(3852) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册