| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3132 人关注过本帖
标题:用 C语言编写一个程序实现学员成绩管理
取消只看楼主 加入收藏
ayx1984
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:4 
用 C语言编写一个程序实现学员成绩管理

题目是:
用 C语言编写一个程序实现学员成绩管理,每个学员包括3门课的成绩.从键盘输入学员信息,包括学号 姓名 三门课的成绩
计算出学员的平均成绩,按学院平均成绩由大到小排序 另外需要增加下面的管理功能
1.插入功能,在排序后学员成绩表中插入一个学员的信息,要求、插入后仍然保持成绩表有排序,
2.删除功能.要求输入指定的学号.从学员信息表中删除该学员,删除后仍然保持成绩表有排序,

需要用到的知识点
1 数组
2 带参数的函数
3 字符串
4 结构

我做的是这样的~
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[20];
int cj1,cj2,cj3;
int pingjun;
}stu[50],temp;
int n=0;//学员个数
///////////////////////函数声明
void tianjia();
void shanchu();
void charu();
void chakan();
/////////////////////////////////
void main()
{
int i;
char c;
do
{
printf("学员信息管理系统v1.0\n");
printf(" 1.添加\n");
printf(" 2.插入\n");
printf(" 3.删除\n");
printf(" 4.查看\n");
printf(" 5.退出\n");
printf("请选择:\n");
scanf("%d",&i);
switch (i)
{
case 1: tianjia();break;
case 2: charu();break;
case 3: shanchu();break;
case 4: chakan();break;
default :exit(0);
}
printf("继续吗?Y.N\n");
fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
}
void tianjia()//录入。
{
char a;
printf("请输入学号:");
scanf("%d",&stu[n].num);
fflush(stdin);
printf("请输入姓名:");
gets(stu[n].name);
printf("输入成绩1:");
scanf("%d",&stu[n].cj1);
printf("输入成绩2:");
scanf("%d",&stu[n].cj2);
printf("输入成绩3:");
scanf("%d",&stu[n].cj3);
stu[n].pingjun=(stu[n].cj1+stu[n].cj2+stu[n].cj3)/3;
n++;
// printf("%d",n);
}
void shanchu()//删除
{
int i,j,j1;
printf("请输入需要删除的学号:");
scanf("%d",&i);
for (j=0;j<n;j++)
{
if ((i)==stu[j].num)
j1=j;
}
/* printf("%d",j1);*/
for (j=j1;j<n;j++)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
n--;
chakan();
}
void charu()//插入
{
tianjia();
}
void chakan()//查看,按平均值排序(大到小)
{
int j,j1;
for (j=0;j<n;j++)
{
for (j1=j+1;j1<n;j1++)
{
if (stu[j].pingjun<stu[j1].pingjun)
{
temp=stu[j];
stu[j]=stu[j1];
stu[j1]=temp;
}
}
}
for (j=0;j<n;j++)
{
printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[j].num,stu[j].name,stu[j].cj1,
stu[j].cj2,stu[j].cj3,stu[j].pingjun);
}
}

大家看看怎么能用这样的起头写完这个程序~!这个也写了一半了哦
#include <stdio.h>
#define N 3
#define M 50

struct student
{
int num;
char name[20];
float score[N],avr;
}s1[M];

struct student input();
void main()
{
int i=0;
char ch='y';
while(ch=='y'||ch=='Y')
{
stu[i] = input();
i++;
printf("是否继续输入:(y or n)");
fflush(stdin);
ch = getchar();
}
}
struct student input()
{
struct student s1;

printf("请输入学员信息:");
printf("学号:");
scanf("%d",&s1.num);
fflush(stdin);
printf("姓名:");
gets(s1.name);
printf("成绩:\n");
for(int i=0;i<N;i++)
{
printf("第%d门成绩:",i+1);
scanf("%f",&s1.score[i]);
}
s1.avr = (s1.score[0]+s1.score[1]+s1.score[2])/3;

return s1;
}

也就是说 第一种 成绩是没用数组 第二种是成绩是用数组的 但是第二种后面不会写了 大家帮帮忙 谢谢 了

搜索更多相关主题的帖子: C语言 学员 编写 管理 
2006-05-09 20:27
ayx1984
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-4-7
收藏
得分:0 

怎么没人来帮忙呀~~!!!我急着需要啊


2006-05-09 20:42
ayx1984
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-4-7
收藏
得分:0 
4楼的 对了 就是你那样了谢谢哈
5楼的 你似乎没看明白我说的意思哦!

2006-05-09 21:12
ayx1984
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-4-7
收藏
得分:0 
随便问句  4楼  是学生 还是做什么的呀?

2006-05-09 21:19
ayx1984
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-4-7
收藏
得分:0 

其实都是一样的意思 就是表达方式不同


2006-05-10 07:21
快速回复:用 C语言编写一个程序实现学员成绩管理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023458 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved