任务2 学生成绩信息管理系统
系列文章
任务2 学生成绩信息管理系统
某班级学生C语言第一次正考的成绩存于数据文件score.txt中,记录了学生学号、姓名和考试成绩,bk.txt文件中记录了补考学生的学号、姓名和补考成绩,编写程序实现以下要求:
(1)具有对学生成绩数据的的增、删(按学号)、查(按学号)、改(按学号)功能。
(2)对该班级按成绩降序排序并统计成绩平均分及每个分数段(90-100、80-90、70-80、60-70、60分以下)的人数,结果写入到result.dat中。
(3)再根据补考成绩修改原成绩,修改成绩后仍按成绩降序写在result.dat的后面。成绩修改原则:
①补考成绩大于等于60,原成绩以60分记;②补考成绩小于60,取两次成绩中最高值记。
文章目录
- 系列文章
- 一、实践目的与要求
- 1、目的
- 2、要求
- 二、课题任务
- 三、总体设计
- 1.存储结构及数据类型定义
- 2.程序结构
- 3.所实现的功能函数
- 4、程序流程图
- 四、小组成员及分工
- 五、 测试
- score.txt
- bk.txt
- 界面展示
- 显示所有学生信息
- 添加学生信息
- 删除学生信息
- 查找学生信息
- 修改学生信息
- 统计学生成绩并排名
- result.dat
- 修改学生补考成绩
- 退出系统
- 六、源代码获取
一、实践目的与要求
1、目的
通过此次实践环节主要达到以下目的:
(1)进一步理解和运用结构化程序设计的思想和方法,学会根据具体问题选择合理的计算机存储结构实现数据的存储,构造较有效率的算法;
(2)学会算法描述的方法,并编制具有结构清晰、合理和易读性的小型实用程序;
(3)并会设计测试方案,完成程序的测试,能撰写出该程序的技术报告,为文档整理工作打下一个初步的基础;
(4)培养小组成员间互相学习,取长补短,协同工作的能力。
2、要求
(1)模块化程序设计,锯齿型书写格式,代码要有足够的注释;
(2)根据课题中规定的要求实现既定目标;
(3)撰写格式排版规范、结构完整的技术文档。
二、课题任务
(题目、内容及主要功能描述)
学生成绩信息管理系统
某班级学生C语言第一次正考的成绩存于数据文件score.txt中,记录了学生学号、姓名和考试成绩,bk.txt文件中记录了补考学生的学号、姓名和补考成绩,编写程序实现以下要求:
(1)具有对学生成绩数据的的增、删(按学号)、查(按学号)、改(按学号)功能。
(2)对该班级按成绩降序排序并统计成绩平均分及每个分数段(90-100、80-90、70-80、60-70、60分以下)的人数,结果写入到result.dat中。
(3)再根据补考成绩修改原成绩,修改成绩后仍按成绩降序写在result.dat的后面。成绩修改原则:
①补考成绩大于等于60,原成绩以60分记;②补考成绩小于60,取两次成绩中最高值记。
三、总体设计
1.存储结构及数据类型定义
(采用了什么存储结构、被处理数据定义的数据类型,数据类型定义中要有注释说明)
typedef struct {int id; //学生学号char name[20];//学生姓名float score;//学生考试成绩
} Student; //学生结构体
2.程序结构
(程序整体的模块结构图)
3.所实现的功能函数
(每个功能对应的函数名、函数形参及返回值说明)
void show_menu(); //显示菜单 函数名称是 show_menu 函数形参是空 函数返回值是void
int read_students(char* file_name, Student students[]);// 读取文件中的学生成绩信息到students数组 函数名称是 read_students 函数形参是char* file_name, Student students[] 函数返回值是int
void write_students(char* file_name, Student students[], int count);// 把学生信息写入文件 函数名称是 write_students 函数形参是char* file_name, Student students[], int count 函数返回值是void
void sort_and_output_result(char* result_file, Student students[], int count);// 统计学生成绩并排名 函数名称是 sort_and_output_result 函数形参是char* result_file, Student students[], int count 函数返回值是void
void add_student(Student students[], int* count);// 添加学生信息 函数名称是add_student 函数形参是Student students[], int* count 函数返回值是void
void delete_student(Student students[], int* count);// 删除学生信息 函数名称是
delete_student 函数形参是Student students[], int* count 函数返回值是void
Student* find_student_by_id(Student students[], int count, int id);// 根据学生学号查找学生 函数名称是find_student_by_id函数形参是Student students[], int count, int id 函数返回值是Student*
void modify_student_score(Student students[], int count, char* file_name);// /修改学生补考成绩 函数名称是modify_student_score 函数形参是Student students[], int count, char* file_name 函数返回值是void
void modify_student_info(Student students[], int count);// 修改学生信息(姓名或成绩) 函数名称是modify_student_info 函数形参是Student students[], int count 函数返回值是void
void show_all_students(Student students[], int count);// 显示所有学生信息 函数名称是
show_all_students 函数形参是Student students[], int count 函数返回值是void
4、程序流程图
四、小组成员及分工
(组长、组员及每人承担的具体模块任务或其他)
组长:完成显示菜单、读取文件中的学生成绩信息到students数组、把学生信息写入文件
统计学生成绩并排名模块。
void show_menu(); //显示菜单
int read_students(char* file_name, Student students[]);// 读取文件中的学生成绩信息到students数组
void write_students(char* file_name, Student students[], int count);// 把学生信息写入文件
void sort_and_output_result(char* result_file, Student students[], int count);// 统计学生成绩并排名
组员1:完成添加学生信息、删除学生信息、根据学生学号查找学生模块
void add_student(Student students[], int* count);// 添加学生信息
void delete_student(Student students[], int* count);// 删除学生信息
Student* find_student_by_id(Student students[], int count, int id);// 根据学生学号查找学生
组员2:完成修改学生补考成绩、修改学生信息(姓名或成绩)、显示所有学生信息模块
void modify_student_score(Student students[], int count, char* file_name);// 修改学生补考成绩
void modify_student_info(Student students[], int count);// 修改学生信息(姓名或成绩)
void show_all_students(Student students[], int count);// 显示所有学生信息
五、 测试
(整合各功能模块后的测试结果截图及说明)
score.txt
bk.txt
界面展示
显示所有学生信息
添加学生信息
删除学生信息
查找学生信息
修改学生信息
统计学生成绩并排名
result.dat
修改学生补考成绩
退出系统
六、源代码获取
本次的分享就到这里啦,创作不易,感谢点赞收藏
任务2 学生成绩信息管理系统相关推荐
- 基于JavaWeb学生成绩信息管理系统(附源码资料)-毕业设计
1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计.或者是需要实战项目的Java开发学习者. 2. 你将收获 提供:项目源码.项目文档.数据库脚本.软件工具等所有资料(在平台的课程附件中进行 ...
- C语言编写学生成绩信息管理系统
用C语言设计简单的学生成绩信息管理系统 介绍 代码 结构体数组的定义 home_page() 函数 add_infor() 函数 browse_infor() 函数 find_infor() 函数 m ...
- 【基于SSM+MySQL+Jsp的高校学生成绩信息管理系统的设计与实现 ---(效果+源代码+数据库+获取 ~ ~】
快速阅读目录 写在前面: (一)效果展示 (1)数据库表一览 (2)部分运行截图 (二)代码展示 (三)说明 写在前面: tips:这是一个基于SSM+MySQL+Jsp等技术的高校学生成绩信息管理系 ...
- C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)
目录 一.创建数据库表和配置SQL数据库连接信息 1.创建数据库表 2.配置数据库连接信息 二.配置程序代码 1.StudentAccount类 2.Student类 3.TeacherAccount ...
- 基于python+tkinter的学生成绩信息管理系统
基于python+tkinter的学生成绩信息管理系统 系统设计 2.开发工具 开发语言:python3.6.8 开发工具:JetBrains PyCharm 2019.1.2 x64 使用三方模块: ...
- 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
1.项目开发背景和意义 随着科学技术的快速发展和不断提高,尤其是计算机科学技术的日渐普及,其功能的强大以及运行速度已经被人们深刻地了解.近几年来高校的办学模式多元化和学校规模的扩大,为了实现对学生信息 ...
- C语言学生成绩信息管理系统课程设计报告
C语言课程设计报告 一 .设计目的 学生成绩管理系统 主要功能: (1)能按学期.按班级完成对学生成绩的录入. 修改,删除 (2)能按班级统计学生的成绩,求学生的总分及 平均分,并能根据学生的平均成绩 ...
- JAVA大作业 | 学生成绩信息管理系统
> * *JAVA大作业 | 学生成绩管理系统(含有用户界面)*** ----- ps :多个包写在一起---– package test; import java.awt.*; import ...
- C++文件读写的学生成绩信息管理系统
编译环境:Windows VS2019 由于程序内部实现原因,由程序操作的文件的第一行,不可以被占用.必须空出来. 且文件最后一行不可以有多余的空行. 建议不要直接操作txt文件. #include ...
最新文章
- docker错误:Error response from daemon: Cannot start container
- 吉林大学计算机科学与技术学院推免,2017吉林大学计算机科学与技术大学生推免夏令营...
- linux 下 nginx phpcgi 的安装及配置
- Scrapy实战篇(一)之爬取链家网成交房源数据(上)
- python 字典取值加引号创建一个对象_Python在添加到字典时从列表项中删除单引号...
- 最新.NET MAUI有什么惊喜?
- 洛谷——P2018 消息传递
- Java中Timer的用法
- 3d激光雷达开发(从halcon看点云pcl库)
- 硬盘数据恢复的神器有哪些
- ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)
- 智能浪潮:增强时代来临
- 流固耦合仿真案例及教学
- 四年级计算机上册课程标准,新课程标准人教版四年级上册数学全册教案设计
- 【软件资源】VS2013软件安装全教程!(附VS各版本下载地址)
- 计算机的硬盘消失,电脑硬盘突然消失不见
- 山东菏泽家乡网页代码 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
- LTspice基础教程-001.软件简介与安装
- C++最后一次实验及实验总结
- Java 8新特性:Optional类
热门文章
- CSU 1803 2016 (数学)【2016年湖南省第十二届大学生计算机程序设计竞赛 - A】
- 对于畸变较小的相机,如何简易计算相机参数
- 网络原理 --- 传输层Ⅱ TCP协议中的确认应答,超时重传和连接管理
- 11111111111111111
- VisualStudio 制作Dynamic Link Library动态链接库文件
- 在金融行业做数据产品经理是什么体验
- 企业qq邮箱,网易邮箱账号注册,企业邮箱哪个好,多少钱?
- pip3 报错:pip is being invoked by an old script wrapper.
- SQL创建日历 包含年月日/周/星期几
- 线上代码不符合预期?不妨试一下反编译