|

- 发帖数
- 16
- 在线时间
- 4 小时
|
沙发
发表于 2010-3-9 14:01
| 只看该作者
给你一个参考,还是要自己去改下,自己研究下!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 40
struct x
{
int code;
char name[20];
int score[5];
int sum;
};
void menu();
void scan(struct x st[],int n);
void print(struct x st[],int n);
void add(struct x st[],int n);
void del(struct x st[],int n);
void checkcode(struct x st[],int n);
void checkname(struct x st[],int n);
void range(struct x st[],int n);
void show(struct x st[],int n);
void main()
{
char choose;
int flag=1,i,m;
struct x st[N+1];
for(i=0;i<N;i++)
{
st.code=0;
st.sum=0;
}
while(flag)
{
menu();
printf("请选择:\n");
choose=getchar();
switch(choose)
{
case '1': printf("请输入人数:");
scanf("%d",&m);
scan(st,m);
getchar();getchar();
break;
case '2': print(st,N);
getchar();getchar();
break;
case '3': add(st,N);
print(st,N);
getchar();getchar();
break;
case '4': del(st,N);
getchar();getchar();
break;
case '5': checkcode(st,N);
getchar();getchar();
break;
case '6': checkname(st,N);
getchar();getchar();
break;
case '7': range(st,N);
getchar();getchar();
break;
case '8': show(st,N);
getchar();getchar();
break;
case '0': flag=0;
printf("\n ********* The End ********** \n");
break;
default: printf("\n Wrong Selection! \n");
getchar();
getchar();
}
}
}
void menu()
{
system("cls");
printf("\n 学生成绩统计与分析系统 \n");
printf("\n 菜单\n\n");
printf("\n 1、输入学生基本信息 \n");
printf("\n 2、显示学生基本信息 \n");
printf("\n 3、增加学生基本信息 \n");
printf("\n 4、删除学生基本信息 \n");
printf("\n 5、按学号查找学生基本信息 \n");
printf("\n 6、按姓名查找学生基本信息 \n");
printf("\n 7、统计 \n");
printf("\n 8、按总分排序 \n");
printf("\n 0、结束 \n");
}
void scan(struct x st[],int n)
{
int i,j;
printf("学号 姓名 高数 听说 读写 导论 C程\n");
for(i=0;i<n;i++)
{
scanf("%d%s",&st.code,&st.name);
for(j=0;j<5;j++)
{ scanf("%d",&st.score[j]);
st.sum+=st.score[j];
}
}
}
void print(struct x st[],int n)
{
int i,j;
printf("学号 姓名 高数 听说 读写 导论 C程\n");
for(i=0;i<n;i++)
if(st.code!=0)
{ printf("%d %5s",st.code,st.name);
for(j=0;j<5;j++)
printf("%6d",st.score[j]);
printf("\n");
}
}
void add(struct x st[],int n)
{
int i,j;
printf("请输入要加学生信息:\n");
for(i=0;i<n;i++)
if(st.code==0)
{
scanf("%d%s",&st.code,st.name);
for(j=0;j<5;j++)
{
scanf("%d",&st.score[j]);
st.sum+=st.score[j];
}
break;
}
}
void del(struct x st[],int n)
{
int co,i;
printf("请输入要删学生学号:\n");
scanf("%d",&co);
for(i=0;i<n;i++)
if(st.code==co) st.code=0;
print(st,N);
}
void checkcode(struct x st[],int n)
{
int co,i,j;
printf("请输入要查学生学号:\n");
scanf("%d",&co);
for(i=0;i<n;i++)
if(st.code==co)
{
printf("学号 姓名 高数 听说 读写 导论 C程\n");
printf("%d %5s",st.code,st.name);
for(j=0;j<5;j++)
printf("%6d",st.score[j]);
printf("\n");
break;
}
else
{
printf("NO information!!!");
break;
}
}
void checkname(struct x st[],int n)
{
int i,j;
char na[20];
printf("请输入要查学生姓名:\n");
scanf("%s",na);
for(i=0;i<n;i++)
if(!(strcmp(st.name,na)) && st.code)
{
printf("学号 姓名 高数 听说 读写 导论 C程\n");
printf("%d %5s",st.code,st.name);
for(j=0;j<5;j++)
printf("%6d",st.score[j]);
printf("\n");
break;
}
else
{
printf("NO information!!!");
break;
}
}
void range(struct x st[],int n)
{
int i,j,a[5]={0};
printf("请输入要统计的科目(0.高数,1.听说,2.读写,3.导论,4.C程):\n");
scanf("%d",&j);
for(i=0;i<n;i++)
if(st.score[j]>=90 && st.score[j]<=100 && st.code!=0) a[0]++;
else if(st.score[j]>=80 && st.score[j]<=89 && st.code!=0) a[1]++;
else if(st.score[j]>=70 && st.score[j]<=79 && st.code!=0) a[2]++;
else if(st.score[j]>=60 && st.score[j]<=69 && st.code!=0) a[3]++;
else if(st.score[j]<=60 && st.code!=0)a[4]++;
printf("成绩在90~100、80~89、70~79、60~69、<=60的人数分别为\n");
for(i=0;i<5;i++)
printf("%d ",a);
printf("\n");
}
void show(struct x st[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(st[j].sum<st[j+1].sum)
{
st[N]=st[j];
st[j]=st[j+1];
st[j+1]=st[N];
}
print(st,N);
} |
|