学生作业完成情况管理程序--C语言--数据结构--顺序表实现

学生作业完成情况管理程序

【题目描述】
请设计一个学生作业完成情况管理程序。
假设某门课程一学期要完成10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。
该程序应该具有下列功能:
(1) 通过键盘输入某位学生某次作业的分数;
(2) 给定学号,显示某位学生作业完成情况;
(3) 给定某个班级的班号,显示该班所有学生的作业完成情况;
(4) 给定某位学生的学号,修改该学生的作业完成信息;
(5) 给定某位学生的学号,删除该学生的信息;
(6) 提供一些统计各类信息的功能或排序功能。

代码

#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
#include 
#include 
#define max 100 typedef struct student
{char name[15];int number;int zuoye[10];int zongfen;int bh;
}elemtype;typedef  struct
{elemtype elem[max];int  length;
}slt;void createlist(slt *l){int i, j, n;printf("请问你要输入几位学生\n");scanf("%d", &n);for (i = 1; i <= n; i++){l->elem[i].zongfen = 0;printf("\n 第%d 位学生的名字 :", i);scanf("%s", l->elem[i].name);printf("学号:");scanf("%d", &l->elem[i].number);printf("班号:");scanf("%d", &l->elem[i].bh);for (j = 0; j < 10; j++){printf(" 第%d 次作业 :", j + 1);scanf("%d", &l->elem[i].zuoye[j]);l->elem[i].zongfen += l->elem[i].zuoye[j];}}l->length = n;printf("%d\n", l->length);printf("\n\n 输入完毕!按任意键返回主菜单! ");getch();  // getch有停顿作用
}void printlist(slt *l)
{int i, j;for (i = 1; i <= l->length; i++){printf(" 名字:%s 学号:%d 班号%d\n", l->elem[i].name, l->elem[i].number, l->elem[i].bh);for (j = 0; j < 10; j++){printf("第%d 次作业 :%d\n", j + 1, l->elem[i].zuoye[j]);}printf(" 总分 :%d\n", l->elem[i].zongfen);}getch();
}int locatelist(slt *l, int x)    //查找
{int i, k, j;i = 1;while (((l->elem[i].number) != x) && (i <= 100))++i;if (l->elem[i].number == x){}//printf("\n\n 查看完毕!按任意键返回主菜单! ");	else{return(0);printf("不存在%d\n");}getch();
}int deletelist(slt *l, int i)
{int j, x;if (i < 1 || i >l->length)printf("no insert position!\n");else{for (j = i; j <= l->length - 1; j++){l->elem[j] = l->elem[j + 1];}l->length--;}return ;
}void H3(slt *l)			//修改成绩
{int  i, j, x;printf("请输入修改学生的学号\n");scanf("%d", &x);i = 1;while (((l->elem[i].number) != x) && (i <= 100))++i;if (l->elem[i].number == x){printf(" 名字:%s 学号%d\n", l->elem[i].name, l->elem[i].number);for (j = 0; j < 10; j++){printf("第%d 次作业 :%d\n", j + 1, l->elem[i].zuoye[j]);printf(" 修改为 :");scanf("%d", &l->elem[i].zuoye[j]);}getch();}else{printf("不存在%d\n");getch();}}void H4(slt *l)         //查找学号,显示成绩      
{int k, i, j, x;printf("请输入你要查找学生的学号 :");scanf("%d", &x);i = 1;while (((l->elem[i].number) != x) && (i <= 100))++i;if (l->elem[i].number == x){printf(" 名字:%s 学号%d\n", l->elem[i].name, l->elem[i].number);for (j = 0; j < 10; j++){printf("第%d 次作业 :%d\n", j + 1, l->elem[i].zuoye[j]);}getch();}else{printf("不存在%d\n");getch();}}void H5(slt *l)			//删除
{int i, x;printf("输入学号");scanf("%d", &x);for (i = 1; i <= l->length; i++){if (l->elem[i].number == x);{deletelist(l, i);printlist(l);}}
}void H8(slt *l)  //班号显示成绩
{int i, a, s = 0, j;printf("输出班号显示各班级成绩\n");scanf("%d", &a);for (i = 1; i <= l->length; i++){if (l->elem[i].bh == a){printf(" 名字:%s 学号%d\n", l->elem[i].name, l->elem[i].number);for (j = 0; j < 10; j++){printf("第%d 次作业 :%d\n", j + 1, l->elem[i].zuoye[j]);}printf("总分;%d ", l->elem[i].zongfen); getch();}}printf("/n");printf("\n\n 显示完毕!按任意键返回主菜单! ");getch();
}void H6(slt *l)
{int i, j;struct student temp;printf(" 从高到低排序 :\n");for (i = 1; i <= l->length - 1; i++){for (j = 1; j <= l->length - 1 - i; j++){if (l->elem[j].zongfen > l->elem[i].zongfen){temp.zongfen = l->elem[j].zongfen;l->elem[j].zongfen = l->elem[j + 1].zongfen;l->elem[j + 1].zongfen = temp.zongfen;}}}for (i = 1; i <= l->length; i++){printf("%d 姓名:%s 总分:%d\n", i + 1, l->elem[i].name, l->elem[i].zongfen);} printf("\n\n 排序完毕!按任意键返回主菜单! "); getch(); //getch有停顿作用
}intmain()
{slt l;//struct  l[1] = { "c",123,{1,2,3,4,5,6,7,8,9,0},99,1,0};l.length = 0;/*createlist(&l);printlist(&l);*/int m;while (1){system("cls");printf("\n\t\t\t 学生作业完成情况管理 ");printf("\n\t\t\t1 输入作业分数 ");printf("\n\t\t\t2 学生作业情况 ");printf("\n\t\t\t3 修改作业分数 ");printf("\n\t\t\t4 查找学生作业 ");printf("\n\t\t\t5 删除学生成绩 ");printf("\n\t\t\t6 学生分数排序 ");printf("\n\t\t\t8 班级的班号,显示该班所有学生的作业完成情况 ");printf("\n\t\t\t7 退出系统 ");printf("\n\t\t\t 请选择 :");scanf("%d", &m);switch (m){case 1:						//录入信息system("cls");createlist(&l);break;case 2:						//显示system("cls");printlist(&l);break;case 3:						//修改作业system("cls");H3(&l);break;case 4:						//查找system("cls");H4(&l);break;case 5:system("cls");H5(&l);break;case 8:						//班级成绩system("cls");H8(&l);break;case 6:system("cls");H6(&l); break;case 7: exit(0);default:;}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部