# 学生程序管理系统
# 一、学生程序管理系统程序设计报告
团队成员:
黄继升
朱伯翰
完成时间 2019 年 12 月
# 二、学生成绩管理系统设计报告
## 2.1 人员组成及分工
### 2.1.1 人员组成及分工
| 学号 | 姓名 | 任务 | 完成工作量 |
| -------- | ------ | ---------------------------- | ---------- |
| 16041321 | 黄继生 | 设计程序算法及程序主体 | 50% |
| 16042046 | 朱伯翰 | 功能测试、界面优化及文案负责 | 50% |
## 2.2 开发背景
为了更好的了解学生的学习情况,以对学生进行更详细的了解,对未来的教学有相应的规划,同时为了便于期末总结,我们设计了一套学生成绩管理系统。
在本次课程设计中,操作者根据清单上的提示对于不同的学生进行分数的录入、修改、查询以及获取相应的统计结果,并支持数据的输出。
## 2.3 系统功能设计
### 2.3.1 系统功能模块图
![](https://www.writebug.com/myres/static/uploads/2022/6/19/38d182b4e7287a2e6f7083e0920a440d.writebug)
图 3-1 系统功能模块图
### 2.3.2 系统业务流程图
![](https://www.writebug.com/myres/static/uploads/2022/6/19/d89ecbe0717eccb06c6ed144f67bcbd8.writebug)
图 3-2 业务流程图
## 2.4 项目创建
### 2.4.1 系统开发环境要求
本项目的开发及运行环境要求:
- 操作系统:windows 7, windows 10
- 开发工具:Code Blocks 17.12, Visual Studio Code
- 开发语言:C 语言
### 2.4.2 项目创建过程
打开 Code Block
![](https://www.writebug.com/myres/static/uploads/2022/6/19/983424a7bf0cb0dea9190669afa18052.writebug)
图 4-1 Code Block 使用界面
#### 2.4.2 点击“open an existing project”,并选中“Console application”
![](https://www.writebug.com/myres/static/uploads/2022/6/19/78b3516048539834f84a56c34d0fce2c.writebug)
图 4-2 工程创建界面
选择 C,并点击 next
![](https://www.writebug.com/myres/static/uploads/2022/6/19/a77fdf13bab842ad09ec76b60150b796.writebug)
图 4-3 创建 C 工程
填写项目名称以及路径。
![](https://www.writebug.com/myres/static/uploads/2022/6/19/7e06a388ee0d716ed2f191b900b6ffbf.writebug)
图 4-4 填写项目名称和工程路径
直点击 next 默认配置,最后点击 Finish 完成工程创建。
![](https://www.writebug.com/myres/static/uploads/2022/6/19/f5e1fc5f2a41b82c8a812b5ebba53d92.writebug)
图 4-4 完成工程创建
点击 File->Empty file,创建并命名第一个 C 文件并编写代码
![](https://www.writebug.com/myres/static/uploads/2022/6/19/85c2b3dd1056d436afea443d3245cf24.writebug)
图 4-4 创建 C 文件
## 2.5 预处理模块设计
### 2.5.1 文件引用
```c++
# include <stdio.h>
# include <string.h>
# include <math.h>
# include <malloc.h>
# include <stdlib.h>
```
### 2.5.2 宏定义
```python
# define true 1
# define false 0
# define MAX_LEN 12 /* 字符串最大长度 */
# define STU_NUM 30 /* 最大的学生人数 */
# define COURSE_NUM 6 /* 最大的考试科目数 */
# define LEN sizeof(struct Student) /* 学生结构体所占的字节大小*/
```
### 2.5.3 定义全局变量
```c++
int n, m; //输入的学生人数以及考试科目数
int i; //输入菜单选项编号
STU *head; //定义内存中的学生链表头节点
```
### 2.5.4 函数声明
- void Print(STU *head, int n, int m)
- 输入参数:学生链表,学生数,考试科目数量
- 输出参数:null
- 实现功能:输出链表中所有节点
- void AverSumofEveryStudent(STU *head)
- 输入参数:学生链表
- 输出参数:null
- 实现功能:计算每门课程的总分和平均分
- void AverSumofEveryCourse(STU *head)
- 输入参数:学生链表
- 输出参数:null
- 实现功能:计算每个学生的总分和平均分
- void StatisticAnalysis(STU *head, int n, int m)
- 输入参数:学生链表,学生数,考试科目数量
- 输出参数:null
- 实现功能:按类别及比例输出
- STU *SortbyScore(STU *head, int n)
输入参数:学生链表,学生数
输出参数:学生链表头结点
- 实现功能:按每个学生的总分由高到低排出名次表
- STU *SortbyScore1(STU *head, int n)
- 输入参数:学生链表,学生数
- 输出参数:学生链表头结点
- 实现功能:按每个学生的总分由低到高排出名次表
- STU *SortbyNum(STU *head)
输入参数:学生链表
输出参数:学生链表头结点
- 实现功能:按学号由小到大排出成绩表
- STU *SortbyName(STU *head, int n)
输入参数:学生链表,学生数,考试科目数量
输出参数:学生链表头结点
- 实现功能:按姓名的字典顺序排出成绩表
- STU *Create(int n, int m)
- 输入参数:学生数,考试科目数量
- 输出参数:学生链表头结点
- 实现功能:创建链表并录入信息
- void SearchbyNum(STU *head, int n, int m)
输入参数:学生链表,学生数,考试科目数量
输出参数:null
- 实现功能:按学号查询学生排名及其考试成绩
- void SearchbyName(STU *head, int n, int m)
输入参数:学生链表,学生数,考试科目数量
输出参数:null
- 实现功能:按姓名查询学生排名及其考试成绩
- void WritetoFile(STU *head, int n, int m)
输入参数:学生链表,学生数,考试科目数量
输出参数:null
- 实现功能:将每个学生的纪录信息写入文件
- STU *ReadfromFile(STU *head, int *n, int *m)
输入参数:学生链表,学生数,考试科目数量
输出参数:学生链表头结点
- 实现功能:从文件中读出每个学生的纪录信息并显示
- int DeleteFromFile(STU *head, int *n, int *m);
输入参数:学生链表,学生数,考试科目数量
输出参数:不存在数据或没有数据返回 0,成功删除返回 1
- 实现功能:物理删除(删除在文件中的数据)
- STU *getAllMessageFromFile(STU *head, int count0[], int count1[], int *count2)
输入参数:学生链表,学生数,考试科目数量
输出参数:学生链表头结点
- 实现功能:获取文件中所有的学生成绩数据,并组成单链表
- STU *ModifyScore(STU *head)
输入参数:学生链表,学生数,考试科目数量
输出参数:学生链表头结点
- 实现功能:用于修改学生某个科目的成绩信息
## 2.6 模块详细设计
### 2.6.1 成绩录入模块
### 2.6.2 录入新的学生成绩记录(临时区)
- 功能描述:用户在系统主界面输入数字 “1” ,进入录入成绩功能,根据提示依次输入学生数量、考试科目数量,并依次输入每个学生的学号、姓名和各科成绩,最后按下回车将成绩提交到临时区。
- 算法流程:
![](https://www.writebug.com/myres/static/uploads/2022/6/19/a92dbda3f41dd27247fe03c67c998e01.writebug)
- 相关函数:
```c++
int Menu(void); //函数1:创建菜单函数
STU *Create(int n, int m); //函数10:创建链表并录入信息
```
- 测试结果:
![](https://www.writebug.com/myres/static/uploads/2022/6/19/64c67ed62db781b1f34b3a69aba71e42.writebug)
### 2.6.3 将临时区数据保存到文件中
- 功能描述:用户在系统主界面输入数字 “12” ,即可将临时区的学生成绩信息保存到 student.txt 文件中
- 算法流程:
![](https://www.writebug.com/myres/static/uploads/2022/6/19/8090ee70775e21bd7ee505c41eff7803.writebug)
- 相关函数
```c++
void WritetoFile(STU *head, int n, int m); //函数13:将每个学生的纪录信息写入文件
```
- 测试结果
![](https://www.writebug.com/myres/static/uploads/
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++实现(控制台)学生程序管理系统【100010764】
共9个文件
txt:1个
o:1个
license:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2023-02-09
09:56:38
上传
评论
收藏 49KB ZIP 举报
温馨提示
在本次课程设计中,操作者根据清单上的提示对于不同的学生进行分数的录入、修改、查询以及获取相应的统计结果,并支持数据的输出。
资源推荐
资源详情
资源评论
收起资源包目录
100010764-基于C++实现(控制台)学生程序管理系统.zip (9个子文件)
codeblock
StudentGradeManagementSystem.depend 189B
obj
Debug
main.o 31KB
LICENSE 1KB
StudentGradeManagementSystem.cbp 1KB
StudentGradeManagementSystem.layout 361B
bin
Debug
StudentGradeManagementSystem.exe 54KB
student.txt 675B
main.c 40KB
README.md 64KB
共 9 条
- 1
资源评论
神仙别闹
- 粉丝: 2674
- 资源: 7640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功