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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

物理与电子信息学院

C语言课程设计(科创实验)报告

学生成绩管理系统专业年级

学生姓名

学号

指导教师

2021年 1 月 4 日

目录

1 设计任务 (1)

2 需求分析 (1)

2.1基础功能 (1)

2.2扩展功能 (2)

3系统设计概要 (2)

3.1开发与运行环境 (2)

3.2数据结构设计 (2)

3.2总体设计 (3)

4系统详细设计 (3)

5 系统测试 (4)

6 总结与反思 (8)

参考文献 (8)

附录 (9)

1.设计任务

设计一个系统,使其能够记录学生的学号、姓名、专业和5门课程的成绩。该系

统能够实现添加、删除、修改功能。并且能够计算某学生的总分和平均成绩,能够按照总分排序输出。

2.需求分析

学生成绩管理系统主要是提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息。教师可以通过成绩管理系统查阅学生成绩信息。系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改。

根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。目前,学校工作繁杂、资料重多。目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。

2.1基础功能

该系统所具有的基础功能有能够记录学生的学号、姓名、专业和5门课程的成绩。该系统能够实现添加、删除、修改功能。并且能够计算某学生的总分和平均成绩,能够按照总分排序输出。

2.2扩展功能

该系统在原有的基础功能上还增加了查询不及格学生的记录、按照单科成绩排序、添加学生信息后可以写进文件。

3.系统概要设计

3.1开发与运行环境

3.1.1开发环境

1.开发语言为C语言。

2.开发平台为VC++6.0.

3.1.2运行环境

本次运行环境为Win10系统。

3.2数据结构设计

为学生成绩的存储定义如下结构体类型:

struct student

{

int num; /* 定义学号*/

char name[20]; /* 定义姓名*/

char major[20]; //专业

float score[5]; /* 定义存贮五门课成绩的数组*/

float total; //总成绩

float avg; //平均分

};

为了存储学生信息定义结构体数组全局变量

struct student stu[N]; /* 定义结构体数组,存贮多个学生的记录*/

int num=0;//记录学生个数

3.3总体设计

图表 1 系统总体设计

4.系统详细设计

void add(); //添加学生成绩,记录学生的学号,学生的姓名,学生的成绩

void void queryUnpass(); //查询并输出所有有不及格成绩记录的学生的成绩信息void sortBytotal();//按照学生的总成绩,对学生的成绩记录进行排序

void sortByScore();//按照学生的单科成绩,对学生的成绩记录进行排序

void query(); //查询学生信息,可根据学号和姓名查询

void delet(); //删除学生信息

void change(); //修改学生信息

void writeIn(); //将学生信息保存到磁盘5.系统测试

6.总结与反思

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在此次课程设计中,我首先对系统的整体功能进行了构思,然后结构化分析,将整个系统清楚地划分几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后再进行函数调用。在函数编写中,我不仅用到了for循环、while 循环和switch语句,还用到了函数之间的调用。终于功夫不有心人,在不断的调试和完善后,程序成功的运行了。

参考文献

[1]谭浩强.C程序设计[M].(第四版).北京:清华大学出版社,2010.

附录源代码

#include

#include

#include

#define N 30

struct student

{

int num; /* 定义学号*/

char name[20]; /* 定义姓名*/

char major[20]; //专业

float score[5]; /* 定义存贮五门课成绩的数组*/

float total; //总成绩

float avg; //平均分

};

struct student stu[N]; /* 定义结构体数组,存贮多个学生的记录*/

int num=0;//记录学生个数

void init()//定义函数save,向文件输出N个学生数据

{

FILE *fp;//fp为FILE类型指针

if((fp=fopen("text.txt","r"))==NULL)//打开输出文件text.txt,并使fp指向此文件

{

printf("打开文件失败!\n");//如果打开时出现错误,就输出"打开文件失败"

}

int i=0,j;

while(!feof(fp))//当fp没有指向文件结束位置时,重复执行后面循环

{

fscanf(fp,"%d%s%s",&stu[i].num,stu[i].name,stu[i].major);//在文件中读取学生数据

for(j=0;j<5;j++)

fscanf(fp,"%f",&stu[i].score[j]);

相关文档
最新文档