学生作业完成情况管理程序文件.docx
《学生作业完成情况管理程序文件.docx》由会员分享,可在线阅读,更多相关《学生作业完成情况管理程序文件.docx(11页珍藏版)》请在冰豆网上搜索。
学生作业完成情况管理程序文件
东莞理工学院
课程设计
课程数据结构
题目学生作业完成情况管理程序
1问题要求及任务描述
1.1题目要求
学生作业完成情况管理程序(2人)
1)问题描述
请设计一个学生作业完成情况管理程序。
假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。
学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。
作业登记
信息应该包含:
学号、姓名、10次作业的完成情况。
2)基本要求
该程序应该具有下列功能:
(1)通过键盘输入某位学生某次作业的分数;
(2)给定学号,显示某位学生作业完成情况;
(3)给定某位学生的学号,修改该学生的作业完成信息;
(4)给定某位学生的学号,删除该学生的信息;
(5)按学生的最终平时成绩进行排序;
(6)输出平均分数。
1.2主要任务
1、学生信息和成绩的输入
2、学生信息的查询
3、学生信息的修改
4、学生信息的删除
2解决问题的主要思路和方法
2.1关键问题
学生信息的输入
2.2拟采用解决问题的方法
我使用了循环语句进行输入,先输入人数,然后输入学生信息,再输入学生成绩
2.3主要算法和处理流程图
开始
3程序实现
3.1程序实现时应考虑的问题
main函数里面有switch开关语句
main函数调用main函数调用main函数调用main函数调用main函数调用main函数调用
H1函数
H2函数
H3函数
H4函数
H5函数
H6函数
3.2主要源代码及说明
#include
#include
//
#include
//
这个与exit()有关
这与字符串处理函数有关
#include
//
这与getch()有关
#definemax10structstudent
charname[15];intnumber;intzuoye[10];intzongfen;
}stu[max];
staticintn;
voidH1()
{
inti,j;
printf("请问你要输入几位学生:
");
scanf("%d",&n);
for(i=0;i{
printf("\n第%4位学生的名字:
",i+1);
scanf("%s",stu[i].name);
printf("学号:
");
scanf("%d",&stu[i].number);
for(j=0;j<10;j++)
{
printf("第%£次作业:
",j+1);
scanf("%d",&stu[i].zuoye[j]);
stu[i].zongfen+=stu[i].zuoye[j];
}
printf("\n\n输入完毕!
按任意键返回主菜单!
");
有停顿作用
getch();//getch
}
voidH2()
{
inti,k,j;
for(i=0;i{
printf(”名字:
%s学号:
%d\n",stu[i].name,stu[i].number);
}
printf("请输入你要查看学生的学号:
");
scanf("%d",&k);
printf("注:
0分表示没做作业\n");
for(i=0;i{
if(k==stu[i].number)
{
printf("名字:
%s学号%d\n",stu[i].name,stu[i].number);for(j=0;j<10;j++)
{
printf("第%£次作业:
%d\n",j+1,stu[i].zuoye[j]);
}
}
}
printf("\n\n查看完毕!
按任意键返回主菜单!
");
有停顿作用
getch();//getch
}
voidH3()
{
inti,k,j;
for(i=0;i{
printf(”名字:
%s学号:
%d\n",stu[i].name,stu[i].number);
}
printf("请输入你要修改学生的学号:
");
scanf("%d",&k);
printf("修改他的第几次作业:
");
scanf("%d",&j);
for(i=0;i{
if(k==stu[i].number)
{
printf("修改为:
");
scanf("%d",&stu[i].zuoye[j-1]);
}
}
有停顿作用
printf("\n\n修改完毕!
按任意键返回主菜单!
");
getch();//getch
}
voidH4()
{
inti,k,j;
for(i=0;i{
printf("名字:
%s学号:
%d\n",stu[i].name,stu[i].number);
}
printf("请输入你要删除学生的学号:
");
scanf("%d",&k);
for(i=0;i{
if(k==stu[i].number)
{
for(j=i;j{
stu[j]=stu[j+1];
}
n=n-1;
}
}
printf("\n\n删除完毕!
按任意键返回主菜单!
");
getch();//getch有停顿
作用
}
voidH5()
{
inti,j;
structstudenttemp;
printf("从高到低排序:
\n");
for(i=0;i{
for(j=i+1;j{
if(stu[j].zongfen>stu[i].zongfen)
{
temp=stu[j];
stu[j]=stu[i];
stu[i]=temp;
}
}
}
for(i=0;i{
printf("%d姓名:
%s总分:
%d\n",i+1,stu[i].name,stu[i].zongfen);
}
printf("\n\n排序完毕!
按任意键返回主菜单!
");
getch();//getch有停顿作用
}
voidH6()
inti;
for(i=0;i{
printf("姓名:
%s平均分:
%d\n",stu[i].name,stu[i].zongfen/10);
}
有停顿作用
printf("\n\n显示完毕!
按任意键返回主菜单!
");
getch();//getchmain(){
intm;
while
(1)
{
学生作业完成情况管理");
输入作业分数");
学生作业情况");
修改作业分数");
删除作业信息");
平时成绩排序");
输出平均分数");
退出系统");
请选择:
");
system("cls");printf("\n\t\t\tprintf("\n\t\t\t1printf("\n\t\t\t2printf("\n\t\t\t3printf("\n\t\t\t4printf("\n\t\t\t5printf("\n\t\t\t6printf("\n\t\t\t7printf("\n\t\t\tscanf("%d",&m);
switch(m)
{
case1:
system("cls");
H1();
break;
case2:
system("cls");
H2();
break;
case3:
system("cls");
H3();
break;
case4:
system("cls");
H4();
break;
case5:
system("cls");
H5();
break;
case6:
system("cls");
H6();
case7:
exit(0);
default:
;
}
}
}
4测试
4.1测试结果及分析
程序菜单:
■I口Ix|
nr二
管
況
霸藝息專成律汗信專完业业业业绩均统业系:
善陈吋岀出拯辭予1234567^
成绩录入:
G-1E476B44124豊■■一二二■■■■■■41n业业业业业业业业业Is口嚴卄
47DM62■_■鼻S■■-V止止止止止在4glL4JLL乍乍仝CLht-r*F\-歩庚庚欢次
234s6.』
J1刍0一-nJ
p'u—-n",1二
-..FIJI
1ET123456
第学第隼
¥比的宁号u
P56212H97--寿晩业业业业业业业业业㈣车牙空一甲一宦崔S味聲弟第
看完毕I枝任意犍返回主亲昌-!
信息修改:
生业
8
ffl
0S
修改気毕i按任意键返回主菜单
删除信息:
信息排序:
平均分:
5小结
5.1本问题解决方法及程序实现小结
1、system函数直接引用#include
2、exit(O)函数引用#include和#include
3、getch()函数引用#include
4、printf和scanf弓丨用#include
5.2尚未解决的问题及下一步工作思路
系统很多地方对输入错误的数据没有进一步的判断和申明,导致系统不怎么完善.
6参考文献
《C语言》苏小红电子工业出版社2010年5月出版