1. 程式人生 > >成績資訊系統c語言

成績資訊系統c語言

#include<stdio.h>

#define N 100

int Count=0;

struct stu

{

int num;

char name[20];

int computer;

int math;

int english;

float average;

};

void input(struct stu s[N]);

void output(struct stu s[N]);

void modify(struct stu s[N]);

void average(struct stu s[N]);

void sort(struct stu s[N]);

void search(struct stu s[N],int num);

 

 

void average(struct stu s[N])

{

int i;

for(i=0;i<Count;i++)

s[i].average=(s[i].computer+s[i].math+s[i].english)/3.0;

}

 

void sort(struct stu s[N])

{

int i,j,index;

struct stu temp;

for(i=0;i<Count-1;i++)

{

index=i;

for(j=i+1;j<Count;j++)

if(s[j].average>s[index].average)

index=j;

temp=s[index];

s[index]=s[i];

s[i]=temp;

}

 output(s);

}

 

void input(struct stu s[N])

{

int i,n;

printf("學生數量n(<=%d):",N);

scanf("%d",&n);

for(i=0;i<n;i++)

{

printf("1.學號:");

scanf("%d",&s[i].num);

printf("2.姓名:");

scanf("%s",&s[i].name);

printf("3.計算機成績:");

scanf("%d",&s[i].computer);

printf("4.數學成績:");

scanf("%d",&s[i].math);

printf("5.英語成績:");

scanf("%d",&s[i].english);

Count++;

}

}

void output(struct stu s[N])

{

int i;

printf("成績如下:\n");

printf("num\tname\tcomputer  math\tenglish\taverage\t\n");

for(i=0;i<Count;i++)

{

printf("%d\t",s[i].num);

printf("%s\t",s[i].name);

printf("%d\t",s[i].computer);

printf("%d\t",s[i].math);

printf("%d\t",s[i].english);

printf("%.2f\n",s[i].average);

}

}

 

void modify(struct stu s[N])

{

int num,course,score,i;

printf("1.學號:\n");

scanf("%d",&num);

printf("2.課程(1:計算機,2:數學,3:英語):\n");

scanf("%d",&course);

printf("3.新的分數:\n");

scanf("%d",&score);

for(i=0;i<Count;i++)

if(s[i].num==num)

break;

switch(course)

{

case 1:s[i].computer=score;break;

case 2:s[i].math=score;break;

case 3:s[i].english=score;break;

}

s[i].average=(s[i].computer+s[i].math+s[i].english)/3.0;

printf("更改後該學生的成績如下:\n");

printf("num\tname\tcomputer  math\tenglish\taverage\t\n");

printf("%d\t",s[i].num);

printf("%s\t",s[i].name);

printf("%d  ",s[i].computer);

printf("%d\t",s[i].math);

printf("%d\t",s[i].english);

printf("%.2f\n",s[i].average);

}

 

void search(struct stu s[N],int num)

{

int i,flag=0;

if(Count==0)

{

printf("學生數量不能為零!\n");

return 0;

}

for(i=0;i<Count;i++)

if(s[i].num==num)

{

flag=1;

break;

}

if(flag)

{

printf("您所查詢的學生成績如下:\n");

printf("num\tname\tcomputer  math\tenglish\taverage\t\n");

printf("%d\t",s[i].num);

printf("%s\t",s[i].name);

printf("%d\t",s[i].computer);

printf("%d\t",s[i].math);

printf("%d\t",s[i].english);

printf("%.2f\n",s[i].average);

}

else printf("學號錯誤!\n");

}

 

int main()

{

struct stu stu[N];

int num;

        int n;

        printf("您好,歡迎使用成績資訊系統!\n");

        printf("請輸入學生資訊:\n");

        input(stu);average(stu);

         printf("成績查詢請輸1,成績更改請輸2\n成績排序請輸3,退出系統請輸0.\n");

        scanf("%d",&n);

        for(;;)

        {

        if(n==0) 

        {

        printf("謝謝您的使用!");

        return 0;

        }

       switch(n)

       {

        case 1:

        {

        printf("請輸入您要查詢的學生學號:\n");

      scanf("%d",&num);

        search(stu,num);

        break;

        }

        case 2:modify(stu);break;

        case 3:sort(stu);break;

        default :printf("輸入錯誤!\n");break;

       }

       printf("成績查詢請輸1,成績更改請輸2\n成績排序請輸3,退出系統請輸0.\n");

       scanf("%d",&n);

   }

return 0;

}