| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1180 人关注过本帖
标题:[求助]关于一个学生成绩管理系统。。闷啊!
只看楼主 加入收藏
锋影残雪
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-19
收藏
 问题点数:0 回复次数:6 
[求助]关于一个学生成绩管理系统。。闷啊!

问题是:、
用C语言编写一 个程序实现成员成绩管理,每个学员包括3门课的成绩。
从键盘输入学员信息,包括学号、姓名、三门课成绩,计算出成员的平均成绩,按照学员平均成绩由大到小排序。另外需增加下面的管理功能。

◆插入功能:在排序后的学员成绩表中插入一个学员的信息,要求插入后仍然保持成绩表原有排序。
◆删除功能:要求输入指定的学号,从学院信息标中删除该学员,删除后的成绩表保持原有排序。

//要使用结构保存每个学员的信息,包括学号,姓名,三门课的成绩、平均成绩。
//使用函数实现单个学员信息的录入功能
//主函数中调用单个学员信息录入函数,要求录入的学员信息不超过50个。
//

#include<stdio.h>
#include<math.h>
#include<string.h>
struct student
{
int a;
char b[4];

float c,d,e;
};
void main()
{
struct student stu[10]; /* § ± á11± á */
int i;
for(i=0;i<10;i++)
{
printf("\n%d :\n",i+1);
printf("\n :");
scanf("%d",&stu[i].a);
printf("\n :");
fflush(stdin);
gets(stu[i].b);
printf("y 3 ¨:");
printf("\n ¨1:");
scanf("3 ¨1:%3.2f",&stu[i].c);
printf("\n3 ¨2:");
scanf("3 ¨2:%3.2f",&stu[i].d);
printf("\n3 ¨3:");
scanf("3é ¨3:%3.2f",&stu[i].e);
}


这是我写的
但是问题都多的自己不知道叻`
有高手帮写出来吗!谢谢啊~~

搜索更多相关主题的帖子: 学员 系统 学号 学生 管理 
2006-11-04 11:05
Ruibi
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-9-13
收藏
得分:0 

帮你一下,这个是现成的~!

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define N 20

struct student
{
char name[10]; //里面存放学员的姓名
char num[10]; //里面存放学员的学号
float score[4]; //score[0]里面放的是平均成绩,score[1]里面放的是第一课的成绩,score[2]里面放的是第二课的成绩,score[3]里面放的是第三课的成绩。
}stu[N];

int cnt=0;/*学生总人数*/

void newstudent();/*新添加新学生*/
void dele_info();/*删除学生*/
void insert_info();/*插入到已排序的学生中*/
void sort();/*对未排序的学生进行排序按照平均成绩按大到小排*/
void find();/*查找某个学生的信息*/
void display();/*显示所有信息*/
///////////////////////////////////////////////////////////
void main()
{
char a;
char b;
do
{
printf("\t\t=================================================\n");
printf("\t\t====== ======\n");
printf("\t\t====== 学员管理系统 ======\n");
printf("\t\t====== ======\n");
printf("\t\t=================================================\n");
printf("\n\n");
printf("\t\t1.新添加学生\t\t\t2.删除学生\n\t\t3.插入学员\t\t\t4.对学生进行排序\n\t\t5.查找学生信息\t\t\t6.显示所有信息\n\t\t0.退出\n");
printf("请选择功能:");
scanf("%c",&a);
fflush(stdin);
switch(a)
{
case '1':newstudent();
break;
case '2':dele_info();
break;
case '3':insert_info();
break;
case '4':sort();
break;
case '5':find();
break;
case '6':display();
break;
case '0':
exit(0);
break;
default:printf("输入有误!请输入0~6的数!");
}
fflush(stdin);
printf("\n是否回到主菜单(y/n):");
scanf("%c",&b);
fflush(stdin);
if(b=='y'||b=='Y')
{
system("cls");
}
else
{
break;
}
}while(b=='y'||b=='Y');
}
///////////////////////////////////////////////////////////
//////录入学员///////
void newstudent()
{
int i=0,j;
float end;
char ch;//ch是选择是否继续的一个变量
do
{

fflush(stdin);
printf("请输入学生学号:");
gets(stu[cnt].num);
fflush(stdin);
printf("请输入学生姓名");
gets(stu[cnt].name);
fflush(stdin);
stu[cnt].score[0]=0;
for(j=1;j<4;j++)
{
printf("请输入第%d门科目的成绩:",j);
scanf("%f",&stu[cnt].score[j]);
fflush(stdin);
}
cnt++;
fflush(stdin);
printf("是否要继续输入?(y/n):");
ch=getchar();
fflush(stdin);
}while(ch=='y'||ch=='Y');
system("cls");
printf("您刚输入的内容为:\n");
for(i=0;i<cnt;i++)
{
end=0;
printf("学号为%s的学员的姓名为:%8s\n",stu[i].num,stu[i].name);
for(j=1;j<4;j++)
{
printf("成绩分别为:%8.2f\n",stu[i].score[j]);
end=end+stu[i].score[j];
}
printf("平均成绩为:%8.2f\n",stu[i].score[0]=end/3);
}
printf("\n");
}
////////////////////////////////////////////////////
///////删除学员////////
void dele_info()
{
int i,j,m; //a是输入的学号
char n,a[10];
fflush(stdin);
printf("请输入要删除的学生学号:");
gets(a);
fflush(stdin);
for(i=0;i<=cnt;i++)
{
if(strcmp(a,stu[i].num)==0)
{
printf("已经找到!\n");
m=0;
printf("是否确认删除?(y/n):");
scanf("%c",&n);
fflush(stdin);
break;
}
else
{
m=1;
}
}
if(m==1)
{
printf("未找到该学员!\n");
}
else
{
if(n=='y'||n=='Y')
{
for(j=i;j<cnt;j++)
{
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j].name,stu[j+1].name);
stu[j].score[0]=stu[j+1].score[0];
}
cnt--;
}
system("cls");
for(m=0;m<cnt;m++)
{

printf("学号为%s的学员的姓名为:%8s\n平均成绩为:%8.2f\n",stu[m].num,stu[m].name,stu[m].score[0]);
}
}
}
///////////////////////////////////////////////////////
/////////插入学员//////////
void insert_info()
{
int j,i;
float end=0;
char a,ch;
fflush(stdin);
printf("是否确定插入学员信息:(y/n)");
a=getchar();
fflush(stdin);
do
{
if(a=='y'||a=='Y')
{
printf("请输入要插入的信息:\n");
printf("请输入学生姓名");
gets(stu[cnt].name);
fflush(stdin);
printf("请输入学生学号:");
gets(stu[cnt].num);
fflush(stdin);
stu[cnt].score[0]=0;
for(j=1;j<4;j++)
{
printf("请输入第%d门科目的成绩:",j);
scanf("%f",&stu[cnt].score[j]);
end=end+stu[cnt].score[j];
stu[cnt].score[0]=end/3;
fflush(stdin);
}
cnt++;
fflush(stdin);
printf("是否要继续输入?(y/n):");
ch=getchar();
fflush(stdin);
}
}while(ch=='y'||ch=='Y');
system("cls");
for(i=0;i<cnt;i++)
{
printf("学号为%s的学员的姓名为:%8s\n",stu[i].num,stu[i].name);
for(j=1;j<4;j++)
{
printf("成绩分别为:%8.2f\n",stu[i].score[j]);
}
printf("平均成绩为:%8.2f\n",stu[i].score[0]);
}
}
///////////////////////////////////////////
/////排序////
void sort()
{
int i,j;
struct student stt;
for(i=0;i<cnt-1;i++) //排序
{
for(j=0;j<cnt-i-1;j++)
{
if(strcmp(stu[j].num,stu[j+1].num)>0)
{
stt=stu[j];
stu[j]=stu[j+1];
stu[j+1]=stt;
}
}
}
system("cls");
printf("排序后的结果是:\n");
for(i=0;i<cnt;i++)
{
printf("学号为:%8s的学生姓名为:%8s\n平均成绩为:%8.2f\n",stu[i].num,stu[i].name,stu[i].score[0]);
}
printf("\n");
}
///////////////////////////////////////////
//////////查找///////////////
void find()
{
int i;
char a[10];
printf("请输入要查找的学生学号:");
scanf("%s",a);
system("cls");
for(i=0;i<cnt;i++)
{
if(strcmp(a,stu[i].num)==0)
{
printf("学号为:%8s的学生姓名为:%8s\n平均成绩为:%8.2f\n",stu[i].num,stu[i].name,stu[i].score[0]);
}
}
if(i==cnt)
{
printf("未找到该学员!");
}
printf("\n");
}
////////////////////////////////////////////
/////////////显示所有信息/////////////
void display()
{
int i,j;
struct student stt;
for(i=0;i<cnt-1;i++) //排序
{
for(j=0;j<cnt-i-1;j++)
{
if(strcmp(stu[j].num,stu[j+1].num)>0)
{
stt=stu[j];
stu[j]=stu[j+1];
stu[j+1]=stt;
}
}
}
system("cls");
for(i=0;i<cnt;i++)
{
printf("学号为:%8s的学生姓名为:%8s\n平均成绩为:%8.2f\n",stu[i].num,stu[i].name,stu[i].score[0]);
}
printf("\n");
}

2006-11-04 11:08
锋影残雪
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-19
收藏
得分:0 
啊``好多!!先谢过!~拿回去研究
2006-11-04 11:14
zhurijun00
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-4
收藏
得分:0 
那个排序你是按照学号排的,而不是按照平均成绩排的吧。
2006-11-04 12:02
longerhe
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-10-10
收藏
得分:0 
为什么它第一个学生的学号显示不出来呢?
2006-11-04 14:15
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 
我头都看晕了

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2006-11-04 17:46
xinxue
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2006-2-28
收藏
得分:0 

告诉你一下网址吧。可能会对你有帮助
www.waterpub.com.cn
在这里面查c语言案例精编那本书

2006-11-04 19:14
快速回复:[求助]关于一个学生成绩管理系统。。闷啊!
数据加载中...
 
   



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

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