成绩管理小项目

成绩管理
成绩记录包含:学生姓名、老师姓名、科目、分数、
可以输入入任意条成绩记录,输入以后,可以进行如下查询:
1. 输入学生姓名,输出这个人的成绩记录,最高分、最低分记录和平均分
2. 输入科目,输出该科不及格的学生姓名


示例,输入如下成绩记录:
学生1 老师1 科目1 79 
学生1 老师1 科目2 80 
学生1 老师2 科目3 81 
学生2 老师1 科目2 65 
学生3 老师2 科目3 65 
学生4 老师2 科目3 50 
学生5 老师2 科目3 55 


输入:学生1,显示
科目1    79
科目2    80
科目3    81
最高分:科目3 81   最低分:科目1 79   平均分:80


输入:科目3,显示

不及格人员:学生4,学生5

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/*************************************************************************************************************************
**  File Name:  Students.c
**  Summary:    Manage Of The Students
**  Create:     2016-04-27 
**  Author:     Shang Lu
**  Update history:
**  NO.     Author         Date              Content
**  1.      Shang Lu       2016-04-27        Finished
*************************************************************************************************************************/
#include<stdio.h>
#include<string.h>


/* ============================ Version =============================================================================== */
#define MaxNumOfStu 10
#define MaxNumOfCou 10


/* course message */
struct course{
int grades;
char CouName[10];
}course[MaxNumOfCou];


/* student message*/
struct Student{
char teacher[10];
char StuName[10];
struct course Course[MaxNumOfCou];
}Student[MaxNumOfStu];


/* =======================================================================================================================
**  Function Name    :      MesOfStu
**  Process Timing   :      In Routine
**  Summary          :      Show the Student's message
**  Arguments[Input] :      char *array1,struct Student student[],int NumOfStu;
**  Arguments[Output]:      学生课程及分数,最低分,最高分,平均分
**  Return Value     :      -
======================================================================================================================= */
void MesOfStu(char *array1,struct Student student[],int NumOfStu){
int i=0,j=0;
int Up=0,Low=100,Ave=0;
int Up1=0,Low1=0;
int t=0;
for(i=0; i<NumOfStu; i++){
j=0;
if(strcmp(array1,student[i].StuName)==0){
while(student[i].Course[j].CouName[0] != NULL){
printf("%s   %d\n",student[i].Course[j].CouName,student[i].Course[j].grades);

if(student[i].Course[j].grades<Low){
Low=student[i].Course[j].grades;
Low1=j;
}
if(student[i].Course[j].grades>Up){
Up=student[i].Course[j].grades;
Up1=j;
}
Ave+=student[i].Course[j].grades;
j++;
t++;
}
}
}
printf("最高分:%s  %d   最低分:%s  %d   平均分:%d\n",student[NumOfStu].Course[Up1].CouName,Up,student[NumOfStu].Course[Low1].CouName,Low,Ave/t);
}


/* =======================================================================================================================
**  Function Name    :      MesOfCou
**  Process Timing   :      In Routine
**  Summary          :      Show the Course's message
**  Arguments[Input] :      char *array1,struct Student student[],int NumOfStu;
**  Arguments[Output]:      课程不及格的人员
**  Return Value     :      -
======================================================================================================================= */


void MesOfCou(char *array1, struct Student student[], int NumOfStu){
int i=0,j=0;
printf("不及格人员:");
//printf("%s\n",array1);
for(i=0; i<NumOfStu; i++){
j=0;
while(student[i].Course[j].CouName[0]!=NULL){
if(strcmp(array1,student[i].Course[j].CouName)==0){
if(student[i].Course[j].grades<60){
printf("%s ",student[i].StuName);
}
}
j++;
}
}
printf("\n");
}


/* =======================================================================================================================
**  Function Name    :      main
**  Process Timing   :      program start
**  Summary          :      Manage Of The Students
**  Arguments[Input] :      所有学生的课程记录
**  Arguments[Output]:      -
**  Return Value     :      0
======================================================================================================================= */
int main(){
char ch;
char array1[10]="0";
char array2[10]="0";
int i=0,j=0;
int Cou=0;
int flag=0;
int x=0;
int NumOfStu=0;
struct Student student[MaxNumOfStu];
for(i=0; i<MaxNumOfStu; i++){
for(j=0; j<MaxNumOfCou; j++){
student[i].StuName[0]=NULL;
student[i].teacher[0]=NULL;
student[i].Course[j].CouName[0]=NULL;
student[i].Course[j].grades=0;
}
}
printf("输入成绩记录,以'#'作为结束。\n");
i=0;
ch=getchar();
do{
if(ch != ' '&&ch != '\n'){
array1[i++]=ch;
}
if(ch == ' '|| ch=='\n'){
flag++;
if(flag == 1){

for(j=0;j<i;j++){
student[NumOfStu].StuName[j]=array1[j];
}
student[NumOfStu].StuName[j]='\0';
Cou=0;
i=0;
}
if(flag == 2){
for(j=0;j<i;j++){
student[NumOfStu].teacher[j]=array1[j];
}
student[NumOfStu].teacher[j]='\0';
i=0;
}
if(flag == 3){
for(j=0;j<i;j++){
student[NumOfStu].Course[Cou].CouName[j]=array1[j];
}
student[NumOfStu].Course[Cou].CouName[j]='\0';
i=0;
}
if(flag == 4){
x=(array1[0]-'0')*10+array1[1]-'0';
student[NumOfStu].Course[Cou].grades=x;
Cou++;
NumOfStu++;
i=0;
}
}
if(ch == '\n'){
flag=0;
}

}while ((ch=getchar())!='#');


printf("输入学生查看信息:");
scanf("%s",&array1);
MesOfStu(array1,student,NumOfStu);


printf("输入科目查看信息:");
scanf("%s",&array2);
MesOfCou(array2,student,NumOfStu);


while(1);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值