C++学生信息管理系统(完整版)

实现功能
*在这里插入图片描述
上面的功能基本完全实现

目前的程序其实还存在两个问题:

  1. 无法从文件中读取信息,我感觉是格式问题,输出的格式需要改,但是这样的话,保存在文件的信息看起来就不是很方便了
  2. 保存新同学的学号与当前记录的学号相同时不会提醒,这个实现起来比较容易,在保存的时候,再加一个链表查询就可以了,是我太懒了。。。

源码附上

#include <cstdlib>
#include <iostream>
#include <string>
#include<windows.h>
#include<conio.h>
#include <fstream>
using namespace std;
#define null NULL
class student
{
   
   
    private:
        int flag;
        friend class studentMessage;
        student *next; //节点指针
        string name; //学生姓名
        string address;  //家庭住址
        int age; //年龄
        int id; //学号
        string sex;
        char grade;                  ////班级
        //  A    代表大学生
        //  B    代表中学生
        //  C    代表小学生
        double chinese , math , english;  //语文 , 数学 , 英语
        double history , geography ;     //历史  , 地理
        string major; long long int TL;     //  专业  ,  电话

    public:
        static int num_total;  //总数
        static int num_sex;
        static int num_age;

        //小学生初始化
        student(int _id,string _name,string _sex,int _age,char _grade,double _chinese,double _math,double _english)
        {
   
   
            name = _name;
            grade = _grade;
            age  = _age;
            sex = _sex;
            id = _id;

            chinese = _chinese;
            math    =  _math;
            english = _english;
            next = NULL;
        }

        //初中生初始化
        student(int _id,string _name,string _sex,int _age,char _grade,double _geography,double _history,string _address)
        {
   
   
            name = _name;
            grade = _grade;
            age  = _age;
            sex = _sex;
            id = _id;

            geography = _geography;
            history   = _history;
            address    = _address;
            next = NULL;
        }
        //大学生初始化
        student(int _id,string _name,string _sex,int _age,char _grade,string _major,string _address,long long int _TL)
        {
   
   
            name = _name;
            grade = _grade;
            age  = _age;
            sex = _sex;
            id = _id;

            major  = _major;
            address = _address;
            TL     = _TL;
            next = NULL;
        }

        //构造函数
        student() //为studentMessage初始化头结点用
        {
   
   
            name = "null";
            sex = "null";
            address = "null";
            age = 0;
            id = 0;
            chinese = 0;
            math = 0;
            english = 0;
            grade = '0';
            geography = 0;
            history = 0;
            major = "null";
            TL = 0;
            next = NULL;
        }
        ~student(){
   
   }
        void swap(student*);
};
int student::num_total = 0; ////////////初始化
int student::num_sex = 0;
int student::num_age = 0;

void student::swap(student *q)
{
   
   
    string _name,_sex,_address;
    int _age,_id;

     char grade;                  ////班级
        //  A    代表大学生
        //  B    代表中学生
        //  C    代表小学生
    double _chinese , _math , _english;  //语文 , 数学 , 英语
    double _history , _geography ;     //历史  , 地理
    string _major; long long int _TL;     //  专业  ,  电话

    _chinese   = chinese;
    chinese    = q->chinese;
    q->chinese = _chinese;

    _math   =  math;
    math    =  q->math;
    q->math =  _math;

    _english   =  english;
    english    =  q->english;
    q->english =  _english;

    _history   = history;
    history    = q->history;
    q->history = _history;

    _geography   =  geography;
    geography    =  q->geography;
    q->geography =  _geography;

    _major   =  major;
    major    = q->major;
    q->major =  _major;

    _TL   = TL;
    TL    = q->TL;
    q->TL = _TL;

    _name   = name;
    name    = q->name;
    q->name = _name;

    _sex   = sex;
    sex    = q->sex;
    q->sex = _sex;

    _address   = address;
    address    = q->address;
    q->address = _address;

    _age   = age;
    age    = q->age;
    q->age = _age;

    _id   = id;
    id    = q->id;
    q->id = _id;



}
class studentMessage
{
   
   
    private:
      student *first; //头指针
      int num; //信息中的学生人数
    public:
        studentMessage()
        {
   
   
            num = 0; //初始化学生人数为0
            first = new student;  //初始化头结点
        }
        ~studentMessage(){
   
   delete first;}

        /*管理系统常规操作*/
        void Insret(void); //插入
        void Display(void); //显示
        void Delete(void); //删除
        void Search(void); //搜索
        void Change(void); //改动
        void SearchByid(void); //按照学号查找
        void SearchByname(void); //按照姓名查找
        int menu(void); //初始的菜单
        void clear(void); //清空列表
        void tongji(void);  //统计学生人数
        void save(void);
        void read(void);
};


int studentMessage::menu(void)
{
   
   
    system("cls");
    int ch
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值