数据结构课程设计——学生成绩分析问题

一、题目的内容及要求

1.1 问题描述

    录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。

1.2 基本要求
  • 通过键盘输入个学生的多门课程的成绩,建立相应的文件input.dat。
  • 对文件input.dat中的数据进行处理,要求具有以下功能
  • 按各门课程成绩排序,并生成相应的文件输出。
  • 计算每人的平均成绩,按平均成绩排序,并生成文件。
  • 求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。
  • 根据姓名或学号查询某人的各门课成绩,重名情况也能处理
  • 界面美观。

二、程序设计思路

2.1 需求分析

为了方便管理者对学生成绩的处理,该设计设有录入、显示、查找、修改、排序、删除、保存、读取、退出等九大功能。为了可以永久性保存学生信息,该系统才用以文件存储数据的形式进行设计,系统功能尚算齐全。学生信息暂时设有姓名、学号、性别、年龄、民族、数学、计算机以及总分。

由于要录入、读取、保存学生成绩信息,因而要实现文件的输入输出功能要求用户可以查询各个学生的成绩,并且可以添加学生成绩信息等,因而要提供查找和添加功能另外还应该提供键盘式选择菜单以实现功能选择。

2.2 总体设计

可以将这个系统的设计分为数据输入、数据显示、数据查找、成绩排序、保存数据、读取数据、数据插入7个模块。

2.3 数据结构设计

把学生的学号、姓名、科目成绩、平均成绩作为结构体成员,存放若干学生信息用结构体数组。用while循环控制功能菜单的选择,swith中设置相应的功能模块函数调用,调用完一个函数后然后返回while进行判断,结果为真则进行功能菜单的选择,如果条件为假则终止函数。

三、系统功能

3.1 系统功能及描述

课程设计要求的几个功能在程序里面都能实现,有学生信息的输入、浏览、排序、统计、修改、删除、查询、添加,退出等。根据用户的需求来执行程序。

程序总体结构如图(2-1)所示:

学生信息输入负责将学生的信息存储到对应的文本文件中,对学生的信息排序就包括按总分排序和按计算机成绩排序。统计也包括对计算机成绩的统计和对数学和英语成绩的统计。删除就负责对学生信息的删除。查询就可实现对学号的查询。

进入主菜单由函数print();实现。里面有九个功能供其选择

  1. 菜单一:信息录入功能,输入选项一进入该功能,根据系统提示输入相应的数据。
  2. 菜单二:为学生信息浏览功能,当用户输入二选项时,系统自动用户输入的数据调入内存在输出到显示器上供用户浏览。
  3. 菜单三:为学生信息查询功能,当用户选择第三个功能后是按学号查询。
  4. 菜单四:对学生成绩进行排序,当用户进入该功能后有两个选项供其选择,分别是:按计算机和总分排序。
  5. 菜单五:学生信息的删除,一般删除学生信息的时候是非常小心的,故当用户选择该功能后为了防止误删,只有按学号查找出要删除信息的同学的信息进行删除操作,操作成功后,系统会给出相应的提示说明操作成功。
  6. 菜单六:学生信息的修改,用户在主菜单里里面可选择此功能,进入功能后,会将所有的同学的信息输出供用户参考,当用户输入要查找的同学的学好后可进入选择界面,提示用户是要修改的项目,当用户选择完毕后,直接输入新的数据即可,最后将数据保存到文件中。
  7. 菜单:学生信息的添加,用户可以根据自己的需要来选择添加学生的信息,此功能会调用学生信息的输入来完成,事后给出提示添加成功!
  8. 菜单八:学生信息的统计,此选项可以根据用户的不同需要进行统计,可按计算机成绩统计,按英语分数排序和数学分数统计。统计的项目包括:平均分、最高分、最低分、及格率和六十分以下的,还有各个分数段的人数。
  9. 菜单九:用户选择此操作后可直接退出界面
3.2 系统存储结构设计与描述

此存储结构包括学生的姓名、学生的性别、学生的学号及学生给门功课的成绩,并且记录下该学生的总分。这些都用结构体变量数组来存储。

1、此外还有文件中数据的读取,此功能用load()函数来实现此函数会将文件中的数据读取到内存中,并将有多少个学生多为函数的返回值;

 2、此外还用到save()函数对数据的存储。

3、文件中数据的连续输出,此功能用and()函数来实现

 

 4、每执行完

  • 25
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值