C语言课程研究设计学生成绩管理系统.docx
- 文档编号:1802616
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:12
- 大小:19.87KB
C语言课程研究设计学生成绩管理系统.docx
《C语言课程研究设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程研究设计学生成绩管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
C语言课程研究设计学生成绩管理系统
封面
作者:
PanHongliang
仅供个人学习
《C语言》
课程设计报告
标题:
学生成绩管理系统
学号:
姓名:
年级专业:
09电子信息工程
指导老师:
完成日期:
2010/6/28
目录
一、课题要求
二、课题分析与设计
三、程序介绍
四、源程序代码与调试
五、设计NS图
六、心得与体会
七、参考书目
一、课题要求
有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:
(1)主菜单
学生成绩管理系统
1、成绩录入
2、成绩查询
3、成绩统计
4、成绩排名
5、退出
(2)各菜单项功能
①成绩录入:
输入学生的学号、姓名及三门课的成绩;
②成绩查询:
查询不及格学生的记录。
③成绩统计:
l计算学生的平均分;
2根据学生的平均分高低,对学生的数据进行排序后输出;
(3)设计要求
1、用C语言实现系统;
2、利用结构体数组实现学生成绩统计管理的数据结构设计;
3、系统具有增加,查询,排序等基本功能;
4、系统的各个功能模块要求用函数的形式实现;
二、课题分析与设计
程序是数值计算型算法设计,设计出了学生成绩管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是结构体的相关操作,包括结构体数组的输入、输出、查找、删除、修改、计算等。
这个学生成绩管理系统也初步实现了学生成绩信息的显示、删除、查找、添加、修改等必要的功能。
三、程序介绍
学生成绩管理系统由8个函数组成,包括main函数、input函数、display函数、look函数、delete函数,其中change函数又包括一个sumandave子函数,paixu函数。
main函数主要是打印选择界面,选择并调用其他几个函数。
input函数是输入学生信息函数(包括姓名、学号、性别、5门学科的成绩)。
完成后调用display函数并返回界面选择。
。
display函数的功能是对输入学生的信息进行界面输出。
完成后返回main函数进行下一个功能的选择。
并返回界面选择。
look函数的功能是查找。
按提示信息输入学号和姓名两种方式可实现查找。
完成后调用display函数输出结果。
并返回界面选择。
delete函数的功能是删除学生的信息,根据想删除的学号进行删除功能,删除的结果会显示在屏幕上。
然后再调用display函数显示结果。
并返回界面选择。
Change函数功能是实现学生成绩的修改,其中对于每个想修改的工程(学号、性别、名字、分数)都有是否修改的提示。
选择并完成后再调用display函数输出修改后的结果。
Sumandave函数是计算每个学生成绩的总分、平均分。
完成后调用display函数输出所求结果。
并返回界面选择。
Paixu函数是将所有学生成绩的总分降序排列,再是调用display函数。
并返回界面选择。
四、源程序代码与调试
1.程序代码
#include
#include
#include
structstudent
{charnum[10]。
charname[20]。
charsex[5]。
intgrade[5]。
floatv。
intsum。
}stu[50]。
intk=0。
voidinput()。
voiddisplay()。
voidlook()。
voidchange()。
voiddelete()。
voidsumandave()。
voidpaixu()。
voidmain()
{
inta。
do
{
printf("\n\n******************************************************************\n")。
printf("*")。
printf("\t\twelcomeenterthestudentmanagementsystem")。
printf("\t*")。
printf("\n******************************************************************\n")。
printf("*")。
printf("\t1.Accessstudentinformation")。
printf("\t\t\t\t*\n")。
printf("*")。
printf("\t2.lookstudentinformation")。
printf("\t\t\t\t*\n")。
printf("*")。
printf("\t3.Changestudentinformation")。
printf("\t\t\t\t*\n")。
printf("*")。
printf("\t4.deletestudentinformation")。
printf("\t\t\t\t*\n")。
printf("*")。
printf("\t5.BysumSortstudentinformationandoutput")。
printf("\t\t*\n")。
printf("*")。
printf("\t6.exit")。
printf("\t\t\t\t\t\t*\n")。
printf("******************************************************************\n")。
printf("Enteryouchoice:
")。
scanf("%d",&a)。
switch(a)
{
case1:
printf("\n")。
input()。
break。
case2:
printf("\n")。
look()。
break。
case3:
printf("\n")。
change()。
break。
case4:
printf("\n")。
delete()。
break。
case5:
printf("\n")。
paixu()。
break。
case6:
printf("\n")。
exit(0)。
break。
default:
printf("\nThechoiceisbetween1to6.\n")。
}
}while(a!
=0)。
}
voidinput()
{intj。
charch[20]。
printf("\nenterstudentinformation:
\n")。
do
{printf("\nnum:
")。
scanf("%s",stu[k].num)。
printf("\nname:
")。
scanf("%s",stu[k].name)。
printf("\nsex:
")。
scanf("%s",stu[k].sex)。
for(j=0。
j<5。
j++)
{printf("\ngrade%d:
",j+1)。
scanf("%d",&stu[k].grade[j])。
}
k++。
printf("\nifwantcontinueinputstudentinformation(y/n):
")。
scanf("%s",ch)。
}while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)。
sumandave()。
display()。
}
voiddisplay()
{inti。
printf("thestudentinformationis:
\n")。
for(i=0。
i i++) {printf("%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v)。 printf("\n")。 } } voidsumandave() {inti,j。 for(i=0。 i i++) {stu[i].sum=0。 for(j=0。 j<5。 j++) stu[i].sum=stu[i].sum+stu[i].grade[j]。 stu[i].v=stu[i].sum/5.0。 } } voidlook() {{inti。 chara[20]。 printf("\nenteryouwantlookstudentnum: ")。 scanf("%s",a)。 for(i=0。 i i++) if(strcmp(stu[i].num,a)==0)printf("%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v)。 printf("\nenteryouwantlookstudentname: ")。 scanf("%s",a)。 for(i=0。 i i++) if(strcmp(stu[i].name,a)==0)printf("%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v)。 } display()。 } voidchange() {inti,j。 chara[20],ch[10]。 printf("\nenteryouwantchangestudentnum: ")。 scanf("%s",a)。 for(i=0。 i i++) { if(strcmp(stu[i].num,a)==0) {printf("\nyousurewantchangestudentnum(y/n): ")。 scanf("%s",ch)。 if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nnum: ")。 scanf("%s",stu[i].num)。 } printf("\nyousurewantchangestudentname(y/n): ")。 scanf("%s",ch)。 if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nname: ")。 scanf("%s",stu[i].name)。 } printf("\nyousurewantchangestudentsex(y/n): ")。 scanf("%s",ch)。 if(strcmp(ch,"y")==0||strcmp(ch,"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程 研究 设计 学生 成绩管理系统