
C语言课程设计报告
I. 问题描述:
问题7: 学生成绩管理系统的设计
学生成绩信息包括: 学期,学生人数,班级学生成绩管理系统课程设计摘要,姓名,四门课程的等级(中文,数学,英语和计算机)等.
主要功能:
(1)能够按学期和班级完成学生分数的输入和修改
(2)可以按班级统计学生的成绩统计,并可以计算学生的总成绩和平均成绩
(3)能够检查学生分数,不及格科目和
(4)能够按班级输出学生的成绩单
要求: 使用二进制文件存储数据,系统以菜单模式工作
学生成绩信息包括: 学期,学生人数,班级,姓名,四门课程(中文,数学,英语和计算机)的等级等. 需要使用二进制文件存储数据,并且系统可以在菜单模式,实现学生成绩的录入,修改,统计,排序,查询和输出功能.
两个. 设计目的
设计“学生成绩管理系统”以使其具有以下功能:
(1)能够完成学生分数的输入
(2)可以按班级统计学生的成绩,找到学生的总成绩和平均成绩,然后进行排序
(3)可以根据班级和学期输出学生的成绩单,不及格的科目和
(4)能够检查单个学生的分数
(5)可以修改个人
三个. 要求
系统用作菜单
四个. 功能
1输入功能: 您可以一次输入无数的信息.
2输出功能: 可以根据班级输出学生的成绩单.
3修改功能: 完成对单个学生成绩的修改.
4搜索功能: 完成单个的搜索和显示.
5排序功能: 按学生成绩排序并显示.
6有一个清晰漂亮的界面可以调用各种功能
五个. 模块图
六. 详细信息
除了主要功能外,整个系统还具有五个功能,其中实现了六个功能: 输入功能,输出功能,修改功能,搜索和显示功能,分类和显示功能. 每个功能的详细设计说明如下:
信息条目
无效输入
结果统计
无效排序查询
无效搜索
名称字符名称[10]
int num分数int分数[4]
学生人数stu [i] .num,班级stu [i] .classes,姓名stu [i] .name,四门课程的分数stu [i] .score
可以按学生编号查询单个学生的成绩
根据学生的学习成绩统计,找到学生总数
得分和平均分数,排序
结果输出
无效打印
根据班级,学期可以输出学生成绩单,不及格的科目和
结构数组
结构学生
学期int学期班int班主要过程
编辑个人
修改
无效monify
1. 定义结构和宏定义
#include
#include
#include
#define NUM 100
结构学生
{int term;
int num;
int类;

字符名称[10];
int得分[4];
int sum;
浮动平均值;
} stu [NUM];
2. 主要功能main()
使用for(;;)和swithch()的无限循环进行菜单选择以实现每个功能的调用,系统根据输入的数字选项调用相应的功能. 执行完每个功能后,也可以通过此功能按任意键返回主界面!
void main()
{
zcd();
}
/ *主功能界面* /
void zcd()
{
int n = 0;
char m;
system(“ cls”); / *清除屏幕* /
printf(“按任意键进入主菜单\ n”); / *按任意键进入主菜单* /
printf(“ ******************************************** **** *************************************** \ n“);
printf(“ \ t \ t华中科技大学欢迎您\ n”);
printf(“ \ n \ t \ t \ t ---------欢迎使用学生管理系统\ n \ n \ t \ t \ t \ t \ t \ t ------ ---- \ n“);
printf(“ ************************************* MENU ****** ******************* ************** \ n“);
printf(“ \ t \ t \ t1. 输入记录\ n”); / *输入学生记录* /
printf(“ \ t \ t \ t2. 排序并进行排序以创建新文件\ n”); / *排序* /
printf(“ \ t \ t \ t3. 按类别显示成绩单打印记录\ n”); / *显示* /
printf(“ \ t \ t \ t4. 查找个人搜索结果,搜索记录在姓名上\ n”); / *查找* /
printf(“ \ t \ t \ t5. 修改记录\ n”); / *修改* /
printf(“ \ t \ t \ t6. 退出退出\ n”); / *退出* /
printf(“ ******************************************** **** *************************************** \ n“);
printf(“ \ n \ t \ t \ t输入您的选择(1〜7): ”);
fflush(stdin);
m = getchar();
做
{switch(m)
{
case'1': input(); zcd(); break;
case'2': sort(); system(“ pause”); zcd(); break;
情况'3': print(); system(“ pause”); break;
case'4': search(); zcd(); break;
case'5': modify(); system(“ pause”); zcd(); break;
情况'6': exit(0); / *如果菜单返回值为7,则程序结束* /
default: printf(“错误的命令”); getchar(); zcd();
}
} while(1);
}
3输入信息功能
void input()
{
system(“ cls”);
int i;
字符a;
for(i = 0; i
{printf(“ \ n请输入学生的学期: ”);
scanf(“%d”,&stu [i] .term);
printf(“ \ n请输入: ”);
fflush(stdin);
scanf(“%d”,&stu [i] .num);
printf(“ \ n请输入学生的课程: ”);
scanf(“%d”,&stu [i] .classes);

printf(“ \ n请输入学生姓名: ”);
scanf(“%s”,stu [i] .name);
printf(“ \ n请输入学生的语言得分: ”);
scanf(“%d”,&stu [i] .score [0]);
printf(“ \ n请输入学生的数学成绩: ”);
scanf(“%d”,&stu [i] .score [1]);
printf(“ \ n请输入学生的英语成绩: ”);
scanf(“%d”,&stu [i] .score [2]);
printf(“ \ n请输入学生的计算机成绩: ”);
scanf(“%d”,&stu [i] .score [3]);
stu [i] .sum = stu [i] .score [0] + stu [i] .score [1] + stu [i] .score [2] + stu [i] .score [3]; //计算总得分和平均stu [i] .average =(float)stu [i] .sum / 4.0;
printf(“您是否要继续添加(按N&n退出)”);
fflush(stdin);
a = getchar();
if(a =='n'|| a =='N')
休息;
}
}
4. 排序和显示功能
void sort()
{
int i,j = 0;
浮动温度;
for(i = 0; i
{
stu [i] .sum = stu [i] .score [0] + stu [i] .score [1] + stu [i] .score [2] + stu [i] .score [3];
stu [i] .average =(float)stu [i] .sum / 4.0;
}
for(i = 0; i
{
for(j = i + 1; j
{
if(stu [i] .sum
{
temp = stu [i] .sum;
stu [i] .sum = stu [j] .sum;
stu [j] .sum = temp;
}
}
}
printf(“学生人数\ tname \ tclass中国数学英语计算机平均成绩\ n”);
for(i = 0; i
printf(“%d \ t%s \ t%d%5d%5d%5d%6d%7d%8.2f \ n”,stu [i] .num,stu [i] .name,stu [i ] .classes,
stu [i] .score [0],stu [i] .score [1],stu [i] .score [2],stu [i] .score [3],stu [i] .sum, stu [i] .average);
/ *输出* /
}
}
}
system(“ pause”); system(“ cls”); print();
}
5查找并显示记录
void search()
{
system(“ cls”); / *清除屏幕* /
int number = 0,i;
printf(“ \ t \ t \ t请输入您要查找的学生的学生ID: ”);
scanf(“%d”,&number);
printf(“学生人数\ tname \ tclass中国数学英语计算机平均成绩\ n”);
for(i = 0; i

if(number == stu [i] .num)中断; / *查找判断* /
if(i
{printf(“%d \ t%s \ t%d%5d%5d%5d%6d%7d%8.2f \ n”,stu [i] .num,stu [i] .name,stu [ i] .class,stu [i] .score [0],stu [i] .score [1],stu [i] .score [2],stu [i] .score [3],stu [i]. sum,stu [i] .average);
/ *输出* /
}
其他
printf(“未找到该学生的信息\ n”);
system(“ pause”);
}
6. 学期和班级的输出成绩函数
void print()
{
system(“ cls”);
字符a;
printf(“ 1,每学期输出\ n”);
printf(“ 2. 按类输出\ n”);
printf(“ 3. Return \ n”);
fflush(stdin);
a = getchar();
切换(a)
{
情况'1': print1();
情况'2': print2();
情况'3': zcd();
default: print();
}
}
void print1()//每学期
{
int i,m;
printf(“请输入学期: \ n”);
scanf(“%d”,&m);
printf(“学生人数\ tname \ tclass中国数学英语计算机平均成绩\ n”);
for(i = 0; i
{
if(m == stu [i] .term)
printf(“%d \ t%s \ t%d%5d%5d%5d%6d%7d%8.2f \ n”,stu [i] .num,stu [i] .name,stu [i ] .classes,stu [i] .score [0],stu [i] .score [1],stu [i] .score [2],
stu [i] .score [3],stu [i] .sum,stu [i] .average); / *输出* /
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-235895-1.html
大家说对吧