教务信息管理系统(C语言)

我是刚学C语言的新手,对C语言了解尚浅,最近我遇到了一个编程问题,我编不出来,希望各位高手帮我一把,小弟我不胜感激,我的问题:我要用C语言编个教务信息管理系统,要求教师对... 我是刚学C语言的新手,对C语言了解尚浅,最近我遇到了一个编程问题,我编不出来,希望各位高手帮我一把,小弟我不胜感激,我的问题:我要用C语言编个教务信息管理系统,要求教师对教师们的个人信息、学生的学期、学时、课程以及对学生成绩的管理。
我着问题需要补充一下,教务信息管理系统要求实现对教师的基本信息和所教课程(包括学期、学时、上课时间)、所教班级、学生人数等的管理,不包括学生成绩,程序力求简单,谢谢各位高手帮助。
展开
 我来答
百度网友37bdc142c
2007-11-29 · TA获得超过812个赞
知道小有建树答主
回答量:1229
采纳率:0%
帮助的人:495万
展开全部
#include <stdio.h>

struct Student
{
int num;
char name[20];
float score[3];
float avg;
}stus[30];

void Add();//填加学员
void List();//学员详细列表
void Asc();//显示后三名学员
void Desc();//显示前三名学员
void Display();

void main()
{
int s;

while(1)
{
printf("学员管理系统:\n");
printf("1、增加学员\n");
printf("2、学员详细列表\n");
printf("3、显示前三名\n");
printf("4、显示后三名\n");
printf("5、显示平均成绩\n");
printf("6、退出\n");
printf("请选择:");
scanf("%d",&s);

switch(s)
{
case 1:
Add();
break;
case 2:
List();
break;
case 3:
Desc();
Display();
break;
case 4:
Asc();
Display();
break;
case 5:
Display();
break;
case 6:
return;
break;
default:
printf("选择错误!\n");
break;
}
}
}

void Add()
{
int i,k;
float sum;
char c;

for(i=0;i<30;i++)
{
printf("请输入第%d个学员信息:\n",i+1);
printf("学号:");
scanf("%d",&stus[i].num);
printf("姓名:");
fflush(stdin);
scanf("%s",stus[i].name);
printf("请输入三门课的成绩:\n");

sum=0;
for(k=0;k<3;k++)
{
printf("%d:",k+1);
scanf("%f",&stus[i].score[k]);
sum+=stus[i].score[k];
}
stus[i].avg=sum/3;

printf("是否继续?");
fflush(stdin);
scanf("%c",&c);

if(c=='n' || c=='N')
return;
}

}

void List()
{
int i,j=0;
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stus[i].num,stus[i].name,stus[i].score[0],stus[i].score[1],stus[i].score[2],stus[i].avg);

}
}

}

void Asc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg<stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Desc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg>stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Display()
{
int i,d=0;
printf("学号\t姓名\t平均\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\n",stus[i].num,stus[i].name,stus[i].avg);
d++;
}
if(d==3)
break;
}

}

看看我写的这个!
tyjy05
2007-12-01 · 超过37用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:119万
展开全部
/* Note:Your choice is C IDE */
#include <stdio.h>

struct Student
{
int num;
char name[20];
float score[3];
float avg;
}stus[30];

void Add(float*);/*填加学员*/
void List();/*/学员详细列表 */
void Asc();/*/显示后三名学员 */
void Desc();/*/显示前三名学员*/
void Display();

void main()
{
int s;
float xxx;

while(1)
{
printf("Students System:\n");
printf("1. Add Student\n");
printf("2. Student list\n");
printf("3. Display the before Three\n");
printf("4. Display the last three NUm\n");
printf("5. Display the average\n");
printf("6. Exit\n");
printf("Please input select:\t");
scanf("%d",&s);

switch(s)
{
case 1:
Add(&xxx);
break;
case 2:
List();
break;
case 3:
Desc();
Display();
break;
case 4:
Asc();
Display();
break;
case 5:
Display();
break;
case 6:
return;
break;
default:
printf("Select Wrong!\n");
break;
}
}
}

void Add(float* p)
{
int i,k;
float sum;
char c;

for(i=0;i<30;i++)
{
printf("Input the num %d student Information:\n",i+1);
printf("Num:");
scanf("%d",&stus[i].num);
printf("Name:");
fflush(stdin);
scanf("%s",stus[i].name);
printf("Please the before three chenji:\n");

sum=0;
for(k=0;k<3;k++)
{
printf("%d:",k+1);
scanf("%f",p);
stus[i].score[k]=*p;
sum+=stus[i].score[k];
}
stus[i].avg=sum/3;

printf("Is go on?");
fflush(stdin);
scanf("%c",&c);

if(c=='n' || c=='N')
return;
}

}

void List()
{
int i,j=0;
printf("Num\tName\tChenji1\tChenji2\tChenji3\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stus[i].num,stus[i].name,stus[i].score[0],stus[i].score[1],stus[i].score[2],stus[i].avg);

}
}

}

void Asc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg<stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Desc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg>stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Display()
{
int i,d=0;
printf("Num\tName\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\n",stus[i].num,stus[i].name,stus[i].avg);
d++;
}
if(d==3)
break;
}

}
在楼上的这位基础上稍候修改了一下,因为其在TC中不能正常编译.......
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巧略端木语柳
2019-05-02 · TA获得超过3879个赞
知道小有建树答主
回答量:3103
采纳率:27%
帮助的人:231万
展开全部
/*
Note:Your
choice
is
C
IDE
*/
#include
<stdio.h>
struct
Student
{
int
num;
char
name[20];
float
score[3];
float
avg;
}stus[30];
void
Add(float*);/*填加学员*/
void
List();/*/学员详细列表
*/
void
Asc();/*/显示后三名学员
*/
void
Desc();/*/显示前三名学员*/
void
Display();
void
main()
{
int
s;
float
xxx;
while(1)
{
printf("Students
System:\n");
printf("1.
Add
Student\n");
printf("2.
Student
list\n");
printf("3.
Display
the
before
Three\n");
printf("4.
Display
the
last
three
NUm\n");
printf("5.
Display
the
average\n");
printf("6.
Exit\n");
printf("Please
input
select:\t");
scanf("%d",&s);
switch(s)
{
case
1:
Add(&xxx);
break;
case
2:
List();
break;
case
3:
Desc();
Display();
break;
case
4:
Asc();
Display();
break;
case
5:
Display();
break;
case
6:
return;
break;
default:
printf("Select
Wrong!\n");
break;
}
}
}
void
Add(float*
p)
{
int
i,k;
float
sum;
char
c;
for(i=0;i<30;i++)
{
printf("Input
the
num
%d
student
Information:\n",i+1);
printf("Num:");
scanf("%d",&stus[i].num);
printf("Name:");
fflush(stdin);
scanf("%s",stus[i].name);
printf("Please
the
before
three
chenji:\n");
sum=0;
for(k=0;k<3;k++)
{
printf("%d:",k+1);
scanf("%f",p);
stus[i].score[k]=*p;
sum+=stus[i].score[k];
}
stus[i].avg=sum/3;
printf("Is
go
on?");
fflush(stdin);
scanf("%c",&c);
if(c=='n'
||
c=='N')
return;
}
}
void
List()
{
int
i,j=0;
printf("Num\tName\tChenji1\tChenji2\tChenji3\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stus[i].num,stus[i].name,stus[i].score[0],stus[i].score[1],stus[i].score[2],stus[i].avg);
}
}
}
void
Asc()
{
int
i,j;
struct
Student
c;
for(i=0;i<30;i++)
{
for(j=0;j<29-i;j++)
if(stus[j].avg<stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}
void
Desc()
{
int
i,j;
struct
Student
c;
for(i=0;i<30;i++)
{
for(j=0;j<29-i;j++)
if(stus[j].avg>stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}
void
Display()
{
int
i,d=0;
printf("Num\tName\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\n",stus[i].num,stus[i].name,stus[i].avg);
d++;
}
if(d==3)
break;
}
}
在楼上的这位基础上稍候修改了一下,因为其在TC中不能正常编译.......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式