程序设计基础课程设计 —— 学生信息管理系统(上)

简介: 程序设计基础课程设计 —— 学生信息管理系统(上)

一、 设计目的

   通过本课程设计,最终达到结构化程序设计和把若干程序文件模块连接成一个完整的可执行程序的学习目的,即学会编写出具有良好结构程序的有效方法。学会这个方法十分的重要,因为如果要编写的程序规模很大,那就需要几个人合作完成,而每个人所编写的程序会保存在自己的.c文件中。当然,为了避免一个文件过长,也可以把程序分开保存为几个文件。最后,汇总后对各文件模块分别编译,然后通过连接,把编译好的文件模块再合起来,连接生成可执行程序。这样,一个大规模的程序才算完成。

二、 设计内容与要求

       本课程要求设计一个由多文件模块组成的学生信息库系统。主要包括学生信息的管理和学生在学校课程的考试成绩的管理。设计多文件模块的学生信息库系统的目的就是利用计算机的快速计算、调用函数、查询、统计、修改等功能来代替人们对数据的手工统计。

       此多文件模块组成的学生信息库系统主要内容有:

       主函数:可通过菜单选择要操作的功能:

       0.使用学生信息库系统帮助及说明

       1.新建学生信息;

       2.输出学生信息;

       3.计算并输出平均成绩;

       4.按平均成绩排序;

       5.计算并输出总分;

       6.按总分排序;

       7.各科成绩排序;

       8.修改学生成绩;

       9.查询学生信息;

       10.删除学生信息;

       11.学生科目评价;

       12.查看目录;

       13.退出系统。

三、 设计思路

       设计的多文件模块组成的学生信息库系统的主体框架如图所示:

图一:多文件模块组成的学生信息库系统的主体框架

3.1主函数

       主函数设计比较简洁,只提供了目录,输入和对于多文件模块组成的学生信息库系统中的各个函数调用。其中各功能模块的功能在目录上展示,只需要通过输入所需要进行的功能前面的序号即可运行。

主函数流程图如下图2:

图2:主函数流程图

3.2 student.h头文件

       定义了学生信息的结构,里面包括学生的学号、姓名、数学成绩、英语成绩、计算机成绩、个人平均成绩和个人的总分的定义。

3.3 输入输出模块(input_output.c模块)

       输入模块提供了录入学生信息功能,可以让程序建立新的空间去加入新的学生的信息。

输入模块流程图如图3:

图3:学生信息建立流程图

       输出模块是当用户需要查看学生信息时,只要通过主函数输入输出模块前的序号,就会将所有的学生的信息输出在屏幕上。

输出流程图如下图4:

图4:学生信息输出流程图

3.4 计算平均数并输出和对平均数排序模块(aver_sort.c模块)

       计算平均数即将每次将一位同学的数学英语和计算机三门课的成绩加在一起再除以3,直至所有同学的平均数都算完为止。

计算平均数并输出流程图如下图5:

图5:计算平均数并输出流程图

       对于平均数排序,我运用了选择法排序,最后按照从大到小的顺序排好。

对平均数排序流程图如下图6:

图6:对平均数排序流程图

3.5 计算总分并输出和对总分排序模块(sum.c模块)

       计算总分并输出功能主要是实现计算总分即将每次将一位同学的数学英语和计算机三门课的成绩加在一起,直至所有同学的总分都算完为止。

计算总分并输出流程图如下图7:

图7:计算总分并输出流程图

       对于总分的排序,我也是运用了选择法排序,最后按照从大到小的顺序排好。

总分排序流程图如下图8:

图8:对总分排序流程图

3.6 各科成绩排序模块(subject_average_sort.c模块)

       各科成绩排序是将每个同学的同一科目的成绩进行相加并最后算出每个科目的总分和平均值,接着每科按照当前科目的成绩从大到小输出。

各科成绩排序流程图如下图9:

图9:各科成绩排序流程图

3.7 修改学生成绩的函数和查询学生信息的函数(modify.c模块)

       设计的修改学生成绩的函数,每次只修改某位学生其中一项科目的成绩。

修改学生成绩流程如图10:

图10:修改学生成绩流程图

       查询学生信息的函数功能:根据输入的学生的学号来查询学生的成绩及其平均分。

查询学生信息的函数流程图如图11:

图11:查询学生信息流程图

3.8 删除学生信息功能模块(delete_information.c模块)

       删除学生信息功能主要是实现对于输入错误的单个或多个的学生信息快速删除,提高整理学生成绩的效率。

删除学生信息流程图如下图12:

图12:删除学生信息流程图

3.9 学生科目评价模块(evaluate_three.c模块)

       学生科目评价模块主要是实现学生科目的评价,让学生了解应该努力的方向。

学生科目评价流程图如下图13

图13:删除学生信息流程图

3.10 使用学生信息库系统帮助及说明模块和目录功能模块(help.c和menu.c)

帮助和目录流程图如图14:

3.11 退出系统模块(ending.c模块)

退出系统流程图如图15:

图15:退出系统流程图

四、 实现过程

1. 新建学生信息功能;

       新建学生信息功能主要是实现将新输入的学生的各科成绩保存好,而且旧的信息没有被替代。

1.1 运行结果:

输入学生信息(分两次)

2. 输出学生信息功能;

       输出学生信息功能主要是实现将所有录入学生信息库系统的学生的信息都能准确地输出。

2.2 运行结果:

输出学生信息

3. 计算并输出平均成绩功能;

       计算并输出平均成绩功能主要是实现算出所有录入学生信息库系统的学生的平均数。

3.1 运行结果:

计算每一个学生的平均成绩并输出

4. 按平均成绩排序功能(从大到小);

       按平均成绩排序功能主要是实现将所有录入学生信息库系统的学生按照平均分高到低的顺序进行排序。

4.1 运行结果:

按学生的平均成绩排序(从大到小)

程序设计基础课程设计 —— 学生信息管理系统(下)https://developer.aliyun.com/article/1507689?spm=a2c6h.13148508.setting.14.1b484f0eD2AqhJ

目录
相关文章
|
8月前
|
前端开发 NoSQL 关系型数据库
0027Java程序设计-房屋出租管理系统
0027Java程序设计-房屋出租管理系统
37 0
0027Java程序设计-房屋出租管理系统
|
8月前
|
项目管理 数据库 开发工具
0024Java程序设计-毕业论文管理系统的设计与实现
0024Java程序设计-毕业论文管理系统的设计与实现
32 0
|
10月前
|
存储 编解码 数据可视化
面向对象可视化编程课程设计
面向对象可视化编程课程设计
|
2月前
程序设计基础课程设计 —— 学生信息管理系统(下)
程序设计基础课程设计 —— 学生信息管理系统(下)
31 1
|
2月前
程序设计基础课程设计 —— 疫苗预约管理系统附录
程序设计基础课程设计 —— 疫苗预约管理系统附录
19 1
|
2月前
|
算法
程序设计基础课程设计 —— 疫苗预约管理系统
程序设计基础课程设计 —— 疫苗预约管理系统
34 1
|
8月前
|
Java 关系型数据库 MySQL
0026Java程序设计-中学走读生信息管理系统设计与实现
0026Java程序设计-中学走读生信息管理系统设计与实现
17 0
|
10月前
|
存储 C语言 C++
实战C++:如何开发一个完整的学生信息管理系统?
先简单介绍一下这篇文章,这是一篇关于C++的学生管理系统的文章,作为从C语言到C++过渡的项目。
167 0
|
11月前
|
Java 程序员 PHP
C#简单学生信息管理系统(C#课程设计)
C#简单学生信息管理系统(C#课程设计)
61 0
|
安全 Java 关系型数据库
软件工程之图书管理系统总体设计
软件工程之图书管理系统总体设计
软件工程之图书管理系统总体设计

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    27
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    27
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    27
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    28
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    25
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    31
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    22
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    20
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    21
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    20