学生管理系统课程设计

  • 格式:doc
  • 大小:389.00 KB
  • 文档页数:28

下载文档原格式

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

重庆理工大学

课程设计

课程程序设计基础C 题目 C语言综合程序设计

院系名称商贸信息学院

班级计算机应用技术一班

学生姓名吴昊学号 20920310119 指导教师卢玲

评阅教师

时间 2010年6月

1 问题描述

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

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

主要功能:

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

(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表

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

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

(5)能按班级,按课程,对学生成绩进行排序。

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

2 系统分析

2.1 题目要求

本系统可以对学生的成绩信息进行简单的管理操作:

主菜单包括9个选项:

1.学生成绩浏览

如果未导入学生成绩,系统会提示导入成绩,成绩导入后,可以用本功能浏览成绩。

2.学生成绩录入

当学生成绩未导入是会自动提示对学生成绩的录入,可以按学期,按班级完成对学生成绩的录入。

3.学生成绩修改

当需要修改学生成绩时,本功能可以修改学生的成绩,可以按学期,按班级完成对学生成绩的修改。

4.按班级统计学生成绩的总分和平均分

可以对计算学生的成绩的总分和平均分,并按班级统计出来。

5.学生成绩查询

完成对学生成绩的查询,本功能是按照学号查询。

6. 学生成绩保存

可以将学生成绩存入磁盘文件,并从磁盘里读出学生成绩,信息保存在e:\\wh.dat。

7.学生成绩未存盘时导入

当磁盘文件不存在会提示导入学生的成绩。

8.按班级输出学生成绩

可以按班级输出学生的成绩单,其中包括学生的四门课的成绩不及格科目和学生的名单。

9.学生成绩排序

能按班级,按课程,对学生成绩进行排序。

按班级排序时可以对某个班级学生的成绩排序,按课程排序时是对某一门课的排序。2.2算法设计

模块一:学生成绩浏览模块

该模块实现对学生成绩的浏览功能,但前提是学生的信息已经保存,

实现算法如下:

①输出学生信息的标题

②检索信息数组

③用循环实现对学生信息的对应输出

模块二:学生成绩录入模块

该模块实现对学生成绩的录入功能,通过菜单的选择,调用两个子函数实现成绩的录入。

①输出按不同方式录入学生成绩的选择菜单,一是按学期录入,二是按班级录入

②调用按学期录入的函数

③选择学期用循环完成对学生信息的录入

④保存学生信息,并回到录入函数

⑤调用按班级录入的函数

⑥选择班级用循环完成对学生信息的录入

⑦保存学生信息,并回到录入函数

模块三:学生成绩修改模块

该模块实现对学生成绩的修改功能,通过菜单的选择,调用两个子函数实现对学生的成绩的修改。

①输出按不同方式修改学生成绩的选择菜单,一是按学期修改,二是按班级修改

②调用按学期修改的函数

③选择学期用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机

④保存学生成绩信息,并回到修改函数

⑤调用按班级修改的函数

⑥选择班级用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机

⑦保存学生成绩信息,并回到修改函数

模块四:按班级统计学生成绩的总分和平均分模块

该模块可以计算学生成绩的总分和平均分

①输出选择的班级

②通过检索数组选出某个班

③通过循环输出这个班的每个学生的总分和平均分

模块五:学生成绩查询模块

该模块能通过学生的学号查询学生的成绩

①输入要查询的学生的学号

②通过检索数组选出对应的学生

③调用输出函数输出学生相关的信息

模块六:学生成绩保存模块

该模块可以保存学生信息的导入,修改,录入

①定义文件的保存位置

②通过数组写入要保存的文件

③关闭磁盘文件

模块七:学生成绩为存盘时导入模块

该模块可以在学生成绩为存盘是完成对学生成绩的导入并存盘

①输出是否创建的提示

②选择是否创建

③提示已经导入,并关闭磁盘文件

模块八:按班级输出学生成绩模块

该模块可以从多个班级里选择某班学生的成绩并输出

①输入要选择的班级

②检索数组选出该班

③输出该班学生的相关信息

模块九:学生成绩排序模块

该模块可以对学生的成绩按不同的方式排序

①输出排序方式的菜单

②调用按班级排序的函数

③输出菜单后用冒泡法对总分进行比较,按从大到小的顺序输出

④保存并回到排序函数

⑤调用按课程对学生排序的函数

⑥通过冒泡法分别对语文,数学,英语,计算机的成绩进行对比,按从大到小输出

⑦保存并回到排序的函数

模块十:退出模块

退出系统2.3流程图

在对学生成绩的录入,修改,求平均分和总分,输出学生的成绩时都要求按不同的方式完成,比如录入,修改,输出成绩扥等。这里我写一个菜单,用一个主函数,分别调用两个子函数。

在成绩修改时注意输出的数据的对应,最后哟啊保存修改的数据,这里最容易被忽略,如果不保存的话,就白费心机啦。

注意自己定义的头文件的数据类型和源文件里面的数据类型要符合,这个函数有点大,随意这种细节一般容易出错。

在输入一个函数数据的时候,应该清空键盘区,很容易出错。

总之来说,编译的时候会有很多错,但是经过改正过后,发现很多都是不必要的或是细节问题。

3 系统实现

3.1 题目一

#include

#include

#include

#include

#include "student.h"

int number;

void view (struct student people[])

{

int i;

printf("\t\t\t\t学生成绩管理系统\n");

printf("\t\t\n");

printf("\t\t\n");

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

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

for(i=0;i<=number-1;i++)

{

printf("%s\t",people[i].sem);

printf("%s\t",people[i].num);

printf("%d\t",people[i].clas);