C语言课程设计报告
一 . 问题描述:
题目七:学生成绩管理系统设计
学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩 算机) 等。
主要功能:
(1) 能按学期、按班级完成对学生成绩的录入、修改 (2) 能按班级统计学生的成绩,求学生的总分及平均分 (3) 能查询学生成绩,不及格科目及学生名单 (4) 能按班级输出学生的成绩单
要求:使用二进制文件方式存储数据,系统以菜单方式工作 学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩 入,修改,统计,排序,查询,输出等功能。
( 语文、数学、英语和计
算机) 等。要求使用二进制文件方式存储数据,系统以菜单方式工作,实现对学生成绩的录
( 语文、数学、英语和计
二 . 设计目的
设计“学生成绩管理系统”使其具有以下功能: (1) 能完成对学生成绩的录入
(2) 能按班级统计学生的成绩,求学生的总分及平均分,排序 (3) 能按班级,学期输出学生的成绩单和不及格科目及学生名单 (4) 能查询单个学生成绩 (5) 能修改单个学生信息
三 . 要求
系统以菜单方式工作
四 . 功能
1 输入功能:可以一次完成无数条信息的输入。 2 输出功能:能按班级输出学生的成绩单。 3 修改功能:完成对单个学生成绩的修改。 4 查找功能:完成对单个学生信息查找,并显示。 5 排序功能:按学生成绩进行排序,并显示。
学期int term
6 有一个清晰美观界面来调用各个功能
五.模块图
班级 int classes
结构数组
姓名char name[10] struct student
学号int num
成绩int score[4]
学号 stu[i].num 、班级 stu[i].classes
主
void input
,姓名 信息录入
stu[i].name
程
、四门课成绩 stu[i].score 流
按班级统计学生的成绩, 求学生的总
成绩统计
void sort
分及平均分, 排序
能 按班级 , 学期 输出学生成绩单和不及格 科目及学生名单
成绩输出
void print
查询
能 按学号 查询单个学生成绩
void
search
修 改
修改 单个学生 信息
void
monify
六 . 详细内容
整个系统除了主函数外, 另外还有 5 个函数, 实现六大功能: 输入功能、 输出功能、 修改功能,查找并显示功能、排序并显示功能。各个函数的详细设计说明分别如下:
1 . 定义结构体及宏定义
#include
int term; int num; int classes; char name[10]; int score[4]; int sum; float average; }stu[NUM];
2.主函数 main()
利用无限次循环 for(;;) 和 swithch() 进行菜单选择来实现各函数的调用,系统根据输入 的数字选项来调用相应的函数。等执行完每一个函数功能后,按任一键回到主界面也 要通过这个函数来实现! void main() {
zcd(); }
/* 主函数界面 */ void zcd() {
int n=0; char m;
system(\清屏*/
printf(\按任一键进入主菜单 \\n \按任一键进入主菜单 */
printf(\*******\\n\
printf(\华中科技大学文华学院欢迎您 printf(\
\\n\
欢迎使用学生管理系统 \\n\\n\\t\\t\\t\\t\\t-----------\\n\
printf(\**************\\n\
printf(\输入学生成绩记录 printf(\按班级显示成绩单
Input the record\\n\输入学生成绩记录 */ Print the record\\n\显示*/
printf(\排序并显示 Sort to make new a file\\n\排序 */
printf(\查找个人成绩 Search record on name\\n\查找*/ printf(\修改 Modify a record\\n\修改*/ printf(\退出 Quit\\n\退出 */
printf(\*******\\n\
printf(\输入你的选择 Enter your choice(1~7):\fflush(stdin); m=getchar(); do {switch(m)
{
case '1':input();zcd();break;
case '2':sort();system(\case '3':print();system(\case '4':search();zcd();break;
case '5':modify();system(\case '6':exit(0); /* 如菜单返回值为 7 则程序结束default:printf(\错误命令 \} } while(1); }
3 输入信息函数
void input() {
system(\int i; char a;
for(i=0;i { printf(\请输入学生的学期: \scanf(\ printf(\请输入学生的学号: \fflush(stdin); scanf(\ printf(\请输入学生的班级: \scanf(\printf(\请输入学生的姓名: \ */ scanf(\ printf(\请输入学生的语文成绩: \scanf(\ printf(\请输入学生的数学成绩: \scanf(\ printf(\请输入学生的英语成绩: \scanf(\ printf(\请输入学生的计算机成绩: \ scanf(\ 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') break; } } 4、排序并显示函数 void sort() { int i,j=0; float temp; 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; 算总分和平均
C语言学生成绩管理系统课程设计报告 - 图文



