c++课设学生成绩与学籍管理系统

这是一个C++初学者的课设项目,设计了一个CStudent类,包含学生编号、姓名、性别、年龄及三科成绩。系统实现了按编号和姓名检索学生信息,计算总分与平均分,以及筛选总分超过特定分数且性别符合要求的学生。代码虽然初级,但为构建简易学籍成绩管理软件奠定了基础。
摘要由CSDN通过智能技术生成

题目要求(手打,累):设计一个类CStudent,类中包含一个学生的基本数据如下:

编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。

并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。如:

1 LiPing m 18 89 98 94

请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存储与读写处理(即是说,总按具体连续编码的编号num为"序"来对文件中各对象进行随机读写处理)。并设计该类的成员函数,而且对输出运算符"<<"进行重载,使该运算符能够完成将一个学生的信息输出到屏幕上。要求成员函数完成以下功能:

(1) 从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。

(2) 按编号对学生信息进行检索并将检索结果显示在屏幕上。

(3) 按姓名对学生信息进行检索并将检索结果显示在屏幕上。

(4) 计算某编号学生的总成绩与平均成绩。

(5) 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。

思考:可进一步对上述程序进行扩充,如,添加学生的基本数据(籍贯,专业,班级,其他各门成绩,奖罚记录等),并添加所需要的其他相关处理函数(如可通过咨询教学办公室管理人员后确立),进而将其编织成为一个简单而且实用的小型学籍与成绩管理软件。

以下为代码:

 

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <iomanip>
using namespace std;
#define NUM 10000


void Menu();    //菜单功能
class CStudent
{
    private:
        int num;    //编号
        string name;   //姓名
        char gender;    //性别
        int age;    //年龄
        double math;   //数学成绩
        double physics;    //物理成绩
        double computer;   //计算机成绩
        double english;    //外语成绩
        string major;   //专业
        string RP;  //奖罚记录
        double sum; //总成绩
        double ave; //平均成绩
    public:
        void Insert(CStudent & S);  //插入,添加
        void Dlete();  //删除
        void Numseek(); //按编号查找
        void Nameseek();    //按姓名查找
        void Grade();   //计算某个学生的平均成绩和总成绩
        void Sort(CStudent & S);    //对学生的总成绩进行排序
        void Inquire(double n, char ch); //根据输入的成绩和性别排查超过输入成绩且性别一样的同学
        void Save();    //保存数据到文件
        void Read();    //读取数据
        void Sum(){sum = math + physics + computer + english;}   //计算总成绩
        void Ave(){ave = (math + physics + computer + english) / 4;}
        void operator <<(CStudent & S)
        {
            cout << setw(5) << S.num << setw(5) << S.name << setw(5) << S.gender << setw(5) << S.age << setw(5) << S.math << setw(5) << S.physics << setw(7) << S.computer
                 << setw(5)<< S.english << setw(5) << S.major << setw(9) << S.RP << endl;
        }
};
static int j;
CStudent C[NUM];
int main()
{
    fstream File("学生学籍与成绩管理系统.txt");
    cout << "\n\t\t^^^检查文件是否存在中^^^" << endl << endl << endl;
    if(!File)
    {
        cout << "\t\t文件不存在,请创建名为学生学籍与成绩管理系统的文档!" &l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值