#include <stdio.h>
#include <conio.h>
#define maxsize1 100 /*maxsize1为学生名字的最大字符数 */
#define maxsize2 10 /*maxsize2为学生的最大个数 */
typedef struct
{
int number; /*学号域 */
char name[maxsize1]; /*姓名域*/
int pro[5]; /*pro[1]为math成绩 pro[2]为english成绩 pro[3]为computer成绩 pro[4]为average成绩 */
}node;
typedef struct
{
node stu[maxsize2];
int num;
}md;
md creat()
{
md a;
int i;
printf("enter student ON.:");
scanf("%d",&a.num);
for(i=1;i<=a.num;i++)
{
printf("enter %d number,name:",i);
scanf("%d%s", &a.stu[i].number, a.stu[i].name);
printf("enter %d math, english, computer:", i);
scanf("%d%d%d", &a.stu[i].pro[1], &a.stu[i].pro[2], &a.stu[i].pro[3]);
}
return a;
}
void disp(md a)
{
int i;
for(i=1;i<=a.num;i++)
printf("number:%d, name:%s, math:%d, english:%d, computer:%d, average:%d\n",
a.stu[i].number, a.stu[i].name,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3],
a.stu[i].pro[4]);
}
void sort(md a, int m)
{
int i,j,max;
node temp;
for(i=1;i<a.num;i++)
{
max=i;
for(j=i+1;j<=a.num;j++)
if(a.stu[j].pro[m]>a.stu[max].pro[m])
max=j;
if(max!=i)
{
temp=a.stu[max];
a.stu[max]=a.stu[i];
a.stu[i]=temp;
}
}
disp(a);
}
void fun1(md a)
{
int select,i;
for(i=1;i<=a.num;i++)
a.stu[i].pro[4]=(a.stu[i].pro[1]+a.stu[i].pro[2]+a.stu[i].pro[3])/3;
do
{
printf("1.math sort\n");
printf("2.english sort\n");
printf("3.computer sort\n");
printf("4.average\n");
printf("5.return\n");
printf("enter select(1--5):");
scanf("%d", &select);
if(select!=5)
sort(a, select);
else return;
}while(1);
}
void fun2(md a)
{
int select,i, total;
do
{
printf("1.math_class\n");
printf("2.english_class\n");
printf("3.computer_class\n");
printf("4.return\n");
printf("enter select(1--4):");
scanf("%d", &select);
if(select==4) return;
else
{
total=0;
for(i=1;i<=a.num;i++)
total+=a.stu[i].pro[select];
printf("class_average:%d\n",total/a.num);
}
}while(1);
}
void find_nu(md a, int b)
{
int i;
for(i=1;i<=a.num;i++)
if(a.stu[i].number==b)
{
printf("name:%s,math:%d,english:%d,computer:%d\n",a.stu[i].name,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3]);
return;
}
}
void find_na(md a, char ch[])
{
int i;
for(i=1;i<=a.num;i++)
if(!strcmp(a.stu[i].name, ch))
{
printf("number:%d, math:%d, english:%d, computer:%d\n",a.stu[i].number,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3]);
return;
}
}
void fun3(md a)
{
int x, select;
char ch[maxsize1];
do
{
printf("1.find by number\n");
printf("2.find by name\n");
printf("3.return\n");
printf("enter select(1--3):");
scanf("%d", &select);
if(select==3) return;
else if(select==1)
{
printf("enter number:");
scanf("%d", &x);
find_nu(a, x);
}
else
{
printf("enter name:");
gets(ch);
find_na(a, ch);
}
}while(1);
}
main()
{
md h;
int select;
h=creat();
do
{
printf("1.sort\n");
printf("2.class_average\n");
printf("3.find\n");
printf("4.exit\n");
printf("enter select(1--4):");
scanf("%d", &select);
if(select==4)
{
printf("OK!\n");
exit(0);
}
if(select==1) fun1(h);
else if(select==2) fun2(h);
else if(select==3) fun3(h);
}while(1);
}
没有合适的资源?快使用搜索试试~ 我知道了~
数据结构学生成绩问题的实现
共14个文件
pdb:2个
plg:1个
obj:1个
需积分: 10 12 下载量 176 浏览量
2008-10-30
11:23:48
上传
评论
收藏 244KB RAR 举报
温馨提示
数据结构学生成绩问题的实现 用C源代码来实现的
资源推荐
资源详情
资源评论
收起资源包目录
cytestms16score.rar (14个子文件)
cytestms16score
cyscore.c 4KB
cytestmsscore.opt 48KB
cytestmsscore.ncb 33KB
sortresult.doc 109KB
cytestmsscore.plg 917B
cytestmsscore.dsw 551B
cytestmsscore.dsp 4KB
Debug
cyscore.obj 15KB
vc60.idb 33KB
cytestmsscore.pdb 361KB
cytestmsscore.exe 180KB
cytestmsscore.pch 173KB
vc60.pdb 52KB
cytestmsscore.ilk 185KB
共 14 条
- 1
资源评论
lenny0519cyy
- 粉丝: 0
- 资源: 26
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功