系列文章

任务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 学生成绩信息管理系统相关推荐

  1. 基于JavaWeb学生成绩信息管理系统(附源码资料)-毕业设计

    1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计.或者是需要实战项目的Java开发学习者. 2. 你将收获 提供:项目源码.项目文档.数据库脚本.软件工具等所有资料(在平台的课程附件中进行 ...

  2. C语言编写学生成绩信息管理系统

    用C语言设计简单的学生成绩信息管理系统 介绍 代码 结构体数组的定义 home_page() 函数 add_infor() 函数 browse_infor() 函数 find_infor() 函数 m ...

  3. 【基于SSM+MySQL+Jsp的高校学生成绩信息管理系统的设计与实现 ---(效果+源代码+数据库+获取 ~ ~】

    快速阅读目录 写在前面: (一)效果展示 (1)数据库表一览 (2)部分运行截图 (二)代码展示 (三)说明 写在前面: tips:这是一个基于SSM+MySQL+Jsp等技术的高校学生成绩信息管理系 ...

  4. C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

    目录 一.创建数据库表和配置SQL数据库连接信息 1.创建数据库表 2.配置数据库连接信息 二.配置程序代码 1.StudentAccount类 2.Student类 3.TeacherAccount ...

  5. 基于python+tkinter的学生成绩信息管理系统

    基于python+tkinter的学生成绩信息管理系统 系统设计 2.开发工具 开发语言:python3.6.8 开发工具:JetBrains PyCharm 2019.1.2 x64 使用三方模块: ...

  6. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

    1.项目开发背景和意义 随着科学技术的快速发展和不断提高,尤其是计算机科学技术的日渐普及,其功能的强大以及运行速度已经被人们深刻地了解.近几年来高校的办学模式多元化和学校规模的扩大,为了实现对学生信息 ...

  7. C语言学生成绩信息管理系统课程设计报告

    C语言课程设计报告 一 .设计目的 学生成绩管理系统 主要功能: (1)能按学期.按班级完成对学生成绩的录入. 修改,删除 (2)能按班级统计学生的成绩,求学生的总分及 平均分,并能根据学生的平均成绩 ...

  8. JAVA大作业 | 学生成绩信息管理系统

    > * *JAVA大作业 | 学生成绩管理系统(含有用户界面)*** ----- ps :多个包写在一起---– package test; import java.awt.*; import ...

  9. C++文件读写的学生成绩信息管理系统

    编译环境:Windows VS2019 由于程序内部实现原因,由程序操作的文件的第一行,不可以被占用.必须空出来. 且文件最后一行不可以有多余的空行. 建议不要直接操作txt文件. #include ...

最新文章

  1. docker错误:Error response from daemon: Cannot start container
  2. 吉林大学计算机科学与技术学院推免,2017吉林大学计算机科学与技术大学生推免夏令营...
  3. linux 下 nginx phpcgi 的安装及配置
  4. Scrapy实战篇(一)之爬取链家网成交房源数据(上)
  5. python 字典取值加引号创建一个对象_Python在添加到字典时从列表项中删除单引号...
  6. 最新.NET MAUI有什么惊喜?
  7. 洛谷——P2018 消息传递
  8. Java中Timer的用法
  9. 3d激光雷达开发(从halcon看点云pcl库)
  10. 硬盘数据恢复的神器有哪些
  11. ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)
  12. 智能浪潮:增强时代来临
  13. 流固耦合仿真案例及教学
  14. 四年级计算机上册课程标准,新课程标准人教版四年级上册数学全册教案设计
  15. 【软件资源】VS2013软件安装全教程!(附VS各版本下载地址)
  16. 计算机的硬盘消失,电脑硬盘突然消失不见
  17. 山东菏泽家乡网页代码 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
  18. LTspice基础教程-001.软件简介与安装
  19. C++最后一次实验及实验总结
  20. Java 8新特性:Optional类

热门文章

  1. CSU 1803 2016 (数学)【2016年湖南省第十二届大学生计算机程序设计竞赛 - A】
  2. 对于畸变较小的相机,如何简易计算相机参数
  3. 网络原理 --- 传输层Ⅱ TCP协议中的确认应答,超时重传和连接管理
  4. 11111111111111111
  5. VisualStudio 制作Dynamic Link Library动态链接库文件
  6. 在金融行业做数据产品经理是什么体验
  7. 企业qq邮箱,网易邮箱账号注册,企业邮箱哪个好,多少钱?
  8. pip3 报错:pip is being invoked by an old script wrapper.
  9. SQL创建日历 包含年月日/周/星期几
  10. 线上代码不符合预期?不妨试一下反编译