简单成绩管理

/*

简单成绩管理,最终成绩=30%平时成绩+20%期中成绩+50%期末成绩

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char name[100][10];
char code[100][20];       //学号
double usual[100];        //平时成绩
double mid[100];          //期中成绩
double final[100];        //期末成绩
void print(int j)重生之大文豪
{
printf("\n%s\t%s", name[j], code[j]);
printf("\n该生成绩为:\t\t平时\t期中\t期末\t最终\n");
    printf("\t\t\t%g\t%g\t%g", usual[j], mid[j], final[j]);
    printf("\t%g\n",  0.3*usual[j]+0.2*mid[j]+0.5*final[j]);
}
void inquire()
{
int choice;
char y;
    printf("\n\t\t\t成绩信息查询菜单\n\n");
    for(;;){
   printf("\t\t\t1.按姓名查询\n");
   printf("\t\t\t2.按学号查询\n");
printf("\n\t输入序号:");
scanf(" %d", &choice);
switch (choice)
{
case 1:
{
int j, b=0;
        char a[10];
         printf("\t\t请输入学生姓名:");
        getchar();
            scanf("%s", a);
        for(j=0; j<100; j++)
   if(strcmp(a,name[j])==0) {b++;break;}
        if(b == 1)
    print(j);
        else   printf("\n未找到该生\n");
    break;
}
case 2: 
{
int i=0, j;
char a[20];
printf("\t\t输入学生学号:");
scanf("%s", a);
for(j=0; j<100; j++)
if(strcmp(a, code[j])==0) {i++;break;}
if(i == 1)
     print(j);
else printf("\n未找到该生\n");
break;
}
default : printf("输入错误!\n"), getchar();break;
}
printf("\t\t是否继续查询?  y/n\t");
scanf(" %c", &y);
if(y != 'y') break;
    }
}
void typein()
{
int i;
char y;
printf("\t\t\t成绩信息录入\n");
for(;;){
for(i=0; i<100; i++)
if(usual[i] == 0) break;
printf("输入学生姓名:");
scanf("%s", name[i]);
printf("\n输入学号:");
scanf("%s", code[i]);
printf("\n输入平时成绩:");
scanf("%lf", &usual[i]);
printf("\n输入期中成绩:");
scanf("%lf", &mid[i]);
printf("\n输入期末成绩:");
scanf("%lf", &final[i]);
printf("\n\t\t录入完毕,是否继续录入?   y/n\t");
scanf(" %c", &y);
if(y != 'y') 
break;
}
}
void modif()
{
int i, b=0;
char a[10];
char y;
for(;;){
printf("输入学生姓名:");
scanf("%s", a);
for(i=0; i<100; i++)
if(strcmp(a, name[i])==0)
{b++;
break;
}
if(b != 0)
{
printf("\n学生 %s 的成绩为:\n", name[i]);
printf("\t\t平时\t期中\t期末\n");
printf("\t\t%g\t%g\t%g\n", usual[i], mid[i], final[i]);
    printf("更改成绩:\n");
    printf("输入平时成绩:");
    scanf("%lf", &usual[i]);
    printf("\n输入期中成绩:");
    scanf("%lf", &mid[i]);
    printf("\n输入期末成绩:");
      scanf("%lf", &final[i]);
    printf("\n修改完成");
}
else printf("未找到该生");
printf("\t\t是否继续修改?  y/n\t");
scanf(" %c", &y);
if(y != 'y') break;
}
}
void output()
{
int j;
printf("\n\t\t打印成绩单:\n\t姓名\t学号\t\t\t平时\t期中\t期末\t最终\n");
for(j=0; j<100; j++)
if(usual[j] != 0)
{
printf("\n\t%s\t%s\t", name[j], code[j]);
    printf("\t%g\t%g\t%g", usual[j], mid[j], final[j]);
            printf("\t%g\n",  0.3*usual[j]+0.2*mid[j]+0.5*final[j]);
}
printf("\n");
system("pause");
}
main()
{
int choice;
char y[10]; 
memset(name, 0, sizeof(char)*1000);
memset(code, 0, sizeof(char)*2000);
memset(usual, 0, sizeof(double)*100);
memset(mid, 0, sizeof(double)*100);
memset(final, 0, sizeof(double)*100);
for(;;)
{
    printf("\t\t********************************\n");
    printf("\t\t*       学生成绩管理系统       *\n");
        printf("\t\t********************************\n\n");
        printf("\t\t\t     主菜单\n\n");
    printf("\t\t\t1. 成绩信息查询\n");
    printf("\t\t\t2. 成绩信息录入\n");
     printf("\t\t\t3. 成绩信息修改\n");
    printf("\t\t\t4. 打印成绩单\n\n");
    printf("\t输入序号:");
    scanf("%d", &choice);
    switch (choice)
{
    case 1: system("cls");inquire();break;
   case 2: typein();break;
   case 3: modif();break;
case 4: system("cls");output();break;
   default :printf("输入错误!\n"); gets(y);
   system("pause");break;
}
system("cls");
}
}

posted @ 2014-01-03 16:58  刘俊鹏123  阅读(176)  评论(0编辑  收藏  举报
重生之大文豪