完整版C语言毕业课程设计 学生成绩管理系统.docx
《完整版C语言毕业课程设计 学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《完整版C语言毕业课程设计 学生成绩管理系统.docx(13页珍藏版)》请在冰豆网上搜索。
完整版C语言毕业课程设计学生成绩管理系统
课程设计报告
课程名称C语言课程设计
课题名称成绩管理系统
专业
班级
学号
姓名
指导教师
20``年``月``日
湖南工程学院
课程设计任务书
课程名称C语言课程设计
课题成绩管理系统
专业班级
学生姓名
学号
指导老师
任务书下达日期0000年0月0日
任务完成日期0000年0月00日
C语言课程设计任务书
设计课题1:
成绩管理系统
问题描述:
成绩管理系统主要管理学生考试成绩的基本信息。
在系统中,每个学生是一条记录,包括姓名、学号、所选课程,而每个学生对应课程有相应成绩。
系统要对一个有N个学生的班级所选课程成绩统一进行管理。
包括了学生成绩的录入、显示、修改、排序、保存等操作。
1、功能设计要求:
1)本系统采用两个结构体数组进行数据存储。
学生结构体应该包括学生的基本信息(学号、姓名、所选课程),课程结构包括各项课程的基本信息(所选的各门课程对应的成绩)
2)设计主菜单界面,确定函数个数。
设计菜单应包含以下功能:
Ø录入信息(学生基本信息录入、课程成绩基本信息录入)
Ø显示(显示学生基本情况和所选课程成绩)
Ø修改信息(学生基本信息修改、成绩基本信息修改)
Ø成绩统计(各科成绩最高分,平均分)
Ø退出系统
3)要求:
建立两个结构体数组(或链表、文件),包括至少3门课程成绩和5个学生的必要信息,能对数据进行补充、修改。
执行一个具体的功能之后,程序将重新显示菜单。
3、要求:
1)用C语言实现系统;
2)函数功能要划分好(结构化程序设计);
3)界面友好(良好的人机交互),加必要的注释;
4)提供程序测试方案。
目录
一、系统介绍1
二、总体设计1
2.1程序模块1
2.2.函数分析1
2.3.总体结构2
三.主要模块的实现3
四.程序调试6
五.总结与体会13
六.源程序清单14
一、系统介绍
成绩管理系统主要管理学生考试成绩的基本信息。
在系统中,每个学生是一条记录,包括姓名、学号、所选课程,而每个学生对应课程有相应成绩。
系统要对一个有N个学生的班级所选课程成绩统一进行管理。
包括了学生成绩的录入、显示、修改、排序、保存等操作。
二、总体设计
2.1程序模块
主界面void)
通过对函数的调用实现录入、显示、修改、排序、保存等功能,有机的联系了所有的模块,是整个系统正常完整的运行。
主页面函数void()
{
inti,k=0;
charusername[15],pwd[6];
system("colorED");
printf("\n\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t★★★★★★★★★\n");
printf("\t★★★★欢迎使用学生成绩管理系统★★★★★\n");
printf("\t★★★★★★★★★\n");
printf("\t★★★★★★★★★\n");
printf("\t★★★★XXXXX★★★★★\n");
printf("\t★★★★★★★★★\n");
printf("\t★★★★XXXXXX★★★★★\n");
printf("\t★★★★★★★★★\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\n\t\t\t请按回车键继续!
\n");
getchar();
system("cls");
;
printf("\n\n");
printf("\t\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\n");
printf("\t1.显示成绩\n");
printf("\t\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\n");
printf("\t2.录入成绩\n");
printf("\t\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\n");
printf("\t3.删除记录\n");
printf("\t\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\n");
printf("\t4.排序\n");
printf("\t\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\n");
printf("\t0.退出程序\n");
printf("\t\n");
printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\n");
while((n!
='1')&&(n!
='2')&&(n!
='3')&&(n!
='4')&&(n!
='0'))
{
printf("\n请选择:
");
fflush(stdin);函数清空
scanf("%c",&n);
switch(n)
{
case'1':
display();
break;
case'2':
if(count<10)
input();
else
{
printf("记录数已满\n");
Sleep(2000);
system("cls");
");
}
}
}
voiddisplay()显示全部成绩函数
{
inti;
charc;
system("cls");
switch(sort_type)
{
case0:
printf("\t\t未排序:
\n\n");
break;
case1:
printf("\t\t按学号排序:
\n\n");
break;
case2:
printf("\t\t按成绩1排序:
\n\n");
break;
case3:
printf("\t\t按成绩2排序:
\n\n");
break;
case4:
printf("\t\t按成绩3排序:
\n\n");
break;
case5:
printf("\t\t按平均成绩排序:
\n\n");
break;
}
printf("\t学号\t姓名\t英语\t数学\t物理\t平均成绩\n");
for(i=0;i{
printf("\t%d\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg);
}
printf("\n\n按任意键返回\n");
c=getch();
system("cls");
");
scanf("%d",&stu[count].num);
numcheck=1;
if(stu[count].num<0)
printf("请输入正整数:
\n");
for(i=0;i{
if(stu[count].num==stu[i].num)
{
numcheck=0;
printf("学号重复,重新输入:
\n");
}
}
}while(!
numcheck);
printf("姓名:
\n");
fflush(stdin);
gets(stu[count].name);
for(i=0;i<3;i++)
{
printf("第%d门课成绩:
\n",i+1);
scanf("%f",&stu[count].score[i]);
}
stu[count].avg=(stu[count].score[0]+stu[count].score[1]+stu[count].score[2])3;
printf("是否继续输入(yn):
\n");
do
{
c=getchar();
if(c=='y'||c=='Y')
{
count++;
if(count<10)
input();
else
{
printf("记录数已满\n");
Sleep(2000);
system("cls");
");
scanf("%d",&del_num);
waiting();等待函数
for(i=0;i{
if(stu[i].num==del_num)匹配输出
{
match=1;
for(j=i;jstu[j]=stu[j+1];
}
}
if(!
match)
printf("没有要找的学号.\n");
printf("是否继续删除?
(yn)");
fflush(stdin);
do
{
c=getchar();
if(c=='y'||c=='Y')
{
count--;
del();删除记录
}
elseif(c=='n'||c=='N')
{
count--;
system("cls");
");
printf("\t1.按学号排序\n");
printf("\t2.按成绩1排序\n");
printf("\t3.按成绩2排序\n");
printf("\t4.按成绩3排序\n");
printf("\t5.按平均成绩排序\n");
do
{
scanf("%d",&choice);
}while((choice!
=1)&&(choice!
=2)&&(choice!
=3)&&(choice!
=4)&&(choice!
=5));
switch(choice)
{
case1:
按学号
{
for(i=0;i{
for(j=0;j{
if(stu[j].num>stu[j+1].num)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
sort_type=1;
break;
}
case2:
{
for(i=0;i{
for(j=0;j{
if(stu[j].score[0]