C++实现学生信息管理系统

利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。

1. 写出系统需求分析,并建模。
2. 编程实现,界面友好。
3. 输出操作前后的结果

1.头文件

#define MAX_NUM 10
#include <String>
#include <fstream>
using namespace std;

bool quit = false;

struct StuNode{
    int num;
    int math, eng, yuwen;
    int sum;
    StuNode *nextstu;
};

class SInfo{
    StuNode *StuListHead;
public:
    SInfo();      //构造函数
    ~SInfo();    //析构函数
    void CreatSinfo();  //创建学生信息
    void StuInsert(int snum, int smath, int seng, int syuwen);  //插入学生信息
    void StuDelete(int snum);    //删除学生信息
    StuNode *StuFind(int snum);  //查找学生信息,传入参数学号
    void StuModify(int snum, int smath, int seng, int syuwen);  //修改学生信息
    void StuCopy(StuNode *ptemp, StuNode *p);  //学生信息拷贝
    void StuSort(char ch);
    void StuClassfy();    //分类合计
    void StuRead();        //从文件读入学生信息
    void StuSave();        //保存学生信息到文件
    int IsRead();
    void StuQuit();
    void ShowInfo();          //遍历输出学生信息


};

int Systemdoor()
{
    string username = "Hecoz", password = "password";
    string name, temp;
    int number = 3;
    while (1)
    {
        cout << "                用 户 名:";
        cin >> name;
        cout << "                密    码:";
        cin >> temp;
        if (name != username || temp != password)
        {
            number--;
            if (number >0)
            {
                cout << "          用户名/密码错误!你还有" << number << "次机会" << endl;
            }
            else
                cout << "用户名/密码错误!" << endl, exit(0);

}
        else
        {
            cout << "********************密码正确********************" << endl<<endl;
            return 1;
        }
    }

}

void ShowMenu()
{
    cout << "********************************************" << endl;
    cout << "******    学  生  信  息  系  统    ******" << endl;
    cout << "******      0.安全退出系统          ******" << endl;
    cout << "******      1.文件读入学生信息      ******" << endl;
    cout << "******      2.录入新的学生信息      ******" << endl;
    cout << "******      3.添加新的学生信息      ******" << endl;
    cout << "******      4.删除已有学生信息      ******" << endl;
    cout << "******      5.查找已有学生信息      ******" << endl;
    cout << "******      6.修改已有学生信息      ******" << endl;
    cout << "******      7.已有学生信息排序      ******" << endl;
    cout << "******      8.分类合计学生信息      ******" << endl;
    cout << "******      9.输出所有学生信息      ******" << endl;
    cout << "******      10.保存现有学生信息      ******" << endl;
    cout << "\n\t\n\t\t请选择:";
}

SInfo::SInfo()  //构造函数
{
    StuListHead = new StuNode;
    StuListHead->nextstu = NULL;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d9f6910242786962bc021708d41b61cb.html