C语言实验报告之成绩管理Word文档格式.docx
- 文档编号:20095364
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:11
- 大小:16.61KB
C语言实验报告之成绩管理Word文档格式.docx
《C语言实验报告之成绩管理Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实验报告之成绩管理Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
S7:
定义实现删除学生功能的子函数
S8:
定义实现按学号查询功能的子函数
S9:
开始主函数,设计一个友好的中文界面
S10:
调用各个先前定义的子函数来实现各功能
三、程序清单;
#include<
stdio.h>
string.h>
stdlib.h>
#defineN50
structstudent
{
intnum;
//学号
charname[15];
//姓名
doublescore[3];
//3门成绩
doubleave;
//平均成绩
};
voidmenu();
//显示主菜单
structstudentinput();
//输入函数
voiddisplay(structstudents[],inttotal);
//显示学生信息
voidsort(structstudents[],inttotal);
//冒泡排序
voidinsert(structstudents[],inttotal);
//插入学生(自动排序)
intdel(structstudents[],inttotal);
//删除学生
voidsearchNum(structstudents[],inttotal);
//按学号查询
voidmain()
structstudentstu[N];
charch;
inttotal=0,select;
//total为学生总数,select为选择
do{
system("
cls"
);
menu();
printf("
请输入你的选择:
"
fflush(stdin);
scanf("
%d"
&
select);
switch(select)
case1:
do
stu[total]=input();
total++;
//人数+1
是否继续(Y/N):
ch=getchar();
}while(ch=='
Y'
||ch=='
y'
\n"
break;
case2:
display(stu,total);
//显示
case3:
sort(stu,total);
//排序
case4:
searchNum(stu,total);
case5:
insert(stu,total);
//插入
是否继续插入学员(Y/N):
case6:
if(del(stu,total))//删除
total--;
//人数-1
}
else
该学号不存在\n"
pause"
是否继续删除学员(Y/N):
case7:
此操作将删除所有记录,是否继续(Y/N):
"
if(ch=='
)
total=0;
default:
真的要退出吗(Y/N):
\n\n\t\t"
exit(0);
}while
(1);
structstudentinput()//输入函数
inti;
doublesum=0;
structstudenttemp;
\n请输入学号:
temp.num);
\n请输入姓名:
gets(temp.name);
\n请输入数学成绩:
%lf"
temp.score[0]);
\n请输入语文成绩:
temp.score[1]);
\n请输入英语成绩:
temp.score[2]);
for(i=0;
i<
3;
i++)
sum+=temp.score[i];
temp.ave=sum/3;
returntemp;
voiddisplay(structstudents[],inttotal)//输出函数
学号姓名语文数学英语平均\n\n"
total;
%d%s%.2f%.2f%.2f%.2f\n"
s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].ave);
voidsort(structstudents[],inttotal)//排序
inti,j;
total-1;
for(j=0;
j<
total-1-i;
j++)
if(s[j].ave<
s[j+1].ave)
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
voidinsert(structstudents[],inttotal)//插入
inti,k;
temp=input();
if(temp.ave>
s[i].ave)
k=i;
for(i=total;
i>
k;
i--)
s[i]=s[i-1];
s[k]=temp;
intdel(structstudents[],inttotal)//删除
inttemp,i,j;
请输入要删除的学号:
temp);
if(temp==s[i].num)
if(i<
total)
for(j=i;
return1;
return0;
voidmenu()
学生管理系统\n"
1.输入学生信息\n"
2.显示学生信息\n"
3.排序学生信息\n"
4.查询学生信息\n"
5.插入学生信息\n"
6.删除学生信息\n"
7.清除记录\n"
8.退出\n"
voidsearchNum(structstudents[],inttotal)//查询
intnum,i;
请输入要查询的学号:
num);
if(num==s[i].num)
%d%s%.2f%.2f%.2f%.2f\n\n"
\t该学号不存在\n"
四、运行结果:
原始界面:
学生管理系统
1.输入学生信息
2.显示学生信息
3排序学生信息
4.查询学生信息
5.插入学生信息
6.删除学生信息
7.清除记录
8.退出
输入:
1回车,输出请输入学号:
请输入姓名:
请输入数学成绩:
请输入语文成绩:
请输入英语成绩:
是否继续(Y/N):
若输入Y,则进行下一个学生的记录,输入N,按任意键返回主菜单
2回车,输出学号姓名语文数学英语平均
(下面分别是输入的学生的学生信息的显示)
按任意键返回主菜单
3回车,输出学号姓名语文数学英语平均
(下面分别是输入的学生的学生信息的排序)
4回车,输出请输入要查询的学号:
输入正确学号显示该学生信息,若输入的学号不在第一步输入的学生信息中,则显示“该学号不存在”
5回车,输出学号姓名语文数学英语平均
请输入学号:
学号姓名语文数学英语平均
(下面是插入的学生的学生信息的显示)
是否继续插入学员(Y/N):
若输入Y,则进行下一个学生信息的插入,输入N,按任意键返回主菜单
6回车,输出学号姓名语文数学英语平均
(下面是所有输入的学生的学生信息的显示)
请输入要删除的学号:
(输入要删除的学号后,该学号的学生信息将不在此列表显示)
是否继续删除学员(Y/N):
若输入Y,则进行下一个学生信息的删除,输入N,按任意键返回主菜单
7回车,输出此操作将删除所有记录,是否继续(Y/N):
若输入Y,则删除所有学生信息的记录,并按任意键返回主菜单,输入N,按任意键返回主菜单
8回车,输出真的要退出吗(Y/N):
若输入Y,按任意键退出主菜单,输入N,按任意键返回主菜单
五、分析与思考:
这个程序的设计参考了大量的网上资料并结合自己所学的知识修改完善,多次调试后基本上完成了题目所要求的功能,因自己有关文件方面知识的不足,故学生信息的储存选择为逐项输入。
希望下次可以在这方面得到提高。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告 成绩 管理
![提示](https://static.bdocx.com/images/bang_tan.gif)