C语言学生成绩管理系统课程设计报告

时间:2024.4.21

C语言课程设计报告

一 .问题描述:

题目七:学生成绩管理系统设计

学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。

主要功能:

(1) 能按学期、按班级完成对学生成绩的录入、修改

(2) 能按班级统计学生的成绩,求学生的总分及平均分

(3) 能查询学生成绩,不及格科目及学生名单

(4) 能按班级输出学生的成绩单

要求:使用二进制文件方式存储数据,系统以菜单方式工作

学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。要求使用二进制文件方式存储数据,系统以菜单方式工作,实现对学生成绩的录入,修改,统计,排序,查询,输出等功能。

二 .设计目的

设计“学生成绩管理系统”使其具有以下功能:

(1) 能完成对学生成绩的录入

(2) 能按班级统计学生的成绩,求学生的总分及平均分,排序

(3) 能按班级,学期输出学生的成绩单和不及格科目及学生名单

(4) 能查询单个学生成绩

(5) 能修改单个学生信息

三 . 要求

系统以菜单方式工作

四 . 功能

1 输入功能:可以一次完成无数条信息的输入。

2 输出功能:能按班级输出学生的成绩单。

3 修改功能:完成对单个学生成绩的修改。

4 查找功能:完成对单个学生信息查找,并显示。

5 排序功能:按学生成绩进行排序,并显示。

6 有一个清晰美观界面来调用各个功能

五.模块图

C语言学生成绩管理系统课程设计报告

六 . 详细内容

整个系统除了主函数外,另外还有5个函数,实现六大功能:输入功能、输出功能、修改功能,查找并显示功能、排序并显示功能。各个函数的详细设计说明分别如下:

1 . 定义结构体及宏定义

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

#define NUM 100

struct student

{ 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("cls");/*清屏*/

printf("按任一键进入主菜单\n "); /*按任一键进入主菜单*/

printf("********************************************************************************\n");

printf("\t\t华中科技大学文华学院欢迎您\n");

printf("\n\t\t\t--------- 欢迎使用学生管理系统\n\n\t\t\t\t\t-----------\n");

printf("*************************************MENU***************************************\n");

printf("\t\t\t1. 输入学生成绩记录 Input the record\n"); /*输入学生成绩记录*/

printf("\t\t\t2. 排序并显示 Sort to make new a file\n"); /*排序*/

printf("\t\t\t3. 按班级显示成绩单 Print the record\n"); /*显示*/

printf("\t\t\t4. 查找个人成绩 Search record on name\n"); /*查找*/

printf("\t\t\t5. 修改 Modify a record\n"); /*修改*/

printf("\t\t\t6. 退出 Quit\n"); /*退出*/

printf("********************************************************************************\n");

printf("\n\t\t\t输入你的选择Enter your choice(1~7):");

fflush(stdin);

m=getchar();

do

{switch(m)

{

case '1':input();zcd();break;

case '2':sort();system("pause");zcd();break;

case '3':print();system("pause");break;

case '4':search();zcd();break;

case '5':modify();system("pause");zcd();break;

case '6':exit(0); /*如菜单返回值为7则程序结束*/

default:printf("错误命令"); getchar();zcd();

}

} while(1);

}

3输入信息函数

void input()

{

system("cls");

int i;

char a;

for(i=0;i<NUM;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')

break;

}

}

4、排序并显示函数

void sort()

{

int i,j=0;

float temp;

for(i=0;i<NUM;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<NUM-1;i++)

{

for(j=i+1;j<NUM;j++)

{

if(stu[i].sum<stu[j].sum)

{

temp=stu[i].sum;

stu[i].sum=stu[j].sum;

stu[j].sum=temp;

}

}

  }

printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n");

for(i=0;i<NUM;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 请输入要查找学生的学号:");

scanf("%d",&number);

printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n");

for(i=0;i<NUM;i++)

if(number==stu[i].num) break;/*查找判断*/

if(i<NUM)

{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); /*输出学生信息*/

}

else

printf("没找到该学生的信息\n");

system("pause");

}

6.按学期、按班级输出成绩函数

void print()

{

system("cls");

char a;

printf("1、按学期输出\n");

printf("2、按班级输出\n");

printf("3、返回\n");

fflush(stdin);

a=getchar();

switch(a)

{

case '1':print1();

case '2':print2();

case '3':zcd();

default:print();

}

}

void print1()//按学期

{

int i,m;

printf("请输入学期:\n");

scanf("%d",&m);

printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n");

for(i=0;i<NUM;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); /*输出学生信息*/

}

system("pause");system("cls");print();

}

void print2()//按班级

{

int i,j,k;

printf("请输入班级:\n");

scanf("%d",&k);

printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n");

for(i=0;i<NUM;i++)

{

if(k==stu[i].classes)

{

stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];

stu[i].average=stu[i].sum/4.0;

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); /*输出学生信息*/

}

}

printf("输出不及格学生名单及成绩:\n");

printf("学号\t姓名\t班级 语文 数学 英语 计算机 \n");

for(i=0;i<NUM;i++)

{for(j=0;j<4;j++)

{

if(stu[i].score[j]<60&&k==stu[i].classes) /*输出不及格学生名单及成绩*/

printf("%d\t%s\t%d%5d%5d%5d%6d\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]);

break;

}

}

system("pause");system("cls");print();

}

7修改成绩函数

void modify()

{

system("cls");

int number,i;

printf("\t\t\t请输入要修改信息的学生学号:");

scanf("\t\t\t%d",&number);

for(i=0;i<NUM;i++)

if(number=stu[i].num) break;/*查找判断*/

if(i<NUM)/*查找判断*/

{

printf("请输入修改后的学生的信息:");

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]);

}

else

printf("没找到该学生的信息\n");

system("paues");system("cls");zcd();

}

七.运行过程

主菜单

成绩录入

统计排序

C语言学生成绩管理系统课程设计报告

按学期输出成绩

按班级输出成绩

查找个人成绩

修改单个学生信息

C语言学生成绩管理系统课程设计报告

八.设计总结

经过几周的课程设计,我学到了很多东西:

①巩固和加深了对编程的理解,提高综合运用本课程所学知识的能力。

②培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

③经过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

④能够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。

课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。

在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。在此对老师和同学们表示感谢!

(后附完整程序)

更多相关推荐:
c语言程序设计报告 学生成绩管理系统

学生成绩管理系统课程设计报告书学生成绩管理系统单位分院班级学号姓名指导老师完成日期20xx年7月14日1学生成绩管理系统内容摘要摘要本次课程设计的课题是学生成绩管理系统本文介绍课程设计课题的选题意义说明了本系统...

C语言课程设计报告学生成绩管理系统

数据结构课程设计报告学号0820xx106姓名付振华日期20xx年7月9日一课程设计题目学生成绩管理二需求分析给出n个学生的m门考试的成绩表每个学生的信息由学号姓名性别以及各科成绩组成对学生的考试成绩进行有关统...

C语言课程设计 学生成绩管理系统 源代码

学生成绩管理系统用户名xdxy密码700619includeltstdiohgtincludeltconiohgt清屏includeltstdlibhgt显示目录includeltstringhgtdefine...

C语言课程设计报告 --学生成绩管理系统

内蒙古科技大学课程设计论文内蒙古科技大学本科生课程设计论文题目学生成绩管理系统学生姓名胡书培学号1067111106专业计算机科学与技术班级10级计算机1班指导教师周李涌20xx年12月30日1内蒙古科技大学课...

C语言学生成绩管理系统课程设计报告

目录摘要11需求分析22详细设计说明221功能模块图222数据结构设计3221学生成绩信息结构体3222单链表node结构体323功能模块设计4231主函数main执行流程4232输入学生信息模块4233查询学...

c语言课程设计报告学生成绩管理系统

C语言课程设计报告题目:学生成绩管理系统设计者:专业班级:计算机应用技术101班学号:指导教师:20##年12月23日学生成绩管理系统课程设计报告目录一.系统软件环境(3)二.课程设计目的(3)三.内容与要求(…

C语言课程设计报告 学生成绩管理系统

C语言课程设计报告题目学生成绩管理系统学院计算机与信息工程学院专业信息管理与信息系统班级09级1班学号094631105姓名阿布都许克尔尔肯指导老师达新民成绩20xx年5月18日C语言程序设计课程设计报告一课程...

C语言程序设计学生成绩管理系统实验报告

移通学院C语言程序设计报告书设计名称学生成绩管理系统专业指导老师班级姓名学号座号时间一实验目的1在编辑应用程序过程中逐步加深对C语言编程的理解2加强实践的能力动手能力同时进一步对所学的知识进行巩固3培养初步编程...

C语言程序设计学生成绩管理系统实验报告

计算机学院C语言程序设计报告书设计名称学生成绩管理系统专业软件工程指导老师班级姓名学号座号20xx615一实验目的1在编辑应用程序过程中逐步加深对C语言编程的理解2加强实践的能力动手能力同时进一步对所学的知识进...

C语言程序设计实习报告---学生信息管理系统

C程序设计报告C语言课程设计题目学生信息管理系统设计者XXX专业机械设计制造及其自动化班级学号所属院系机电学院指导教师吴湘宁20xx年7月17日C程序设计报告1题目和要求11问题提出与要求学生成绩管理系统要求设...

C语言课程设计报告之学生基本信息管理系统

C语言课程设计报告之学生基本信息管理系统一需求分析学生成绩管理问题描述每个学生的信息包括学号姓名性别年龄电话成绩系统能够完成学生信息的查输入查询修改等功能基本要求1查询按特定条件查找学生2输入加入新学生的信息3...

C语言程序设计学生成绩管理系统实验报告

移通学院C语言程序设计报告书设计名称学生成绩管理系统专业指导老师班级姓名学号座号时间一实验目的1在编辑应用程序过程中逐步加深对C语言编程的理解2加强实践的能力动手能力同时进一步对所学的知识进行巩固3培养初步编程...

c语言课程设计报告学生成绩管理系统(40篇)