📄 studentlist.h
字号:
#ifndef CSTUDENTLIST_H
#define CSTUDENTLIST_H
#include "Studentobject.h" //学生对象类头文件
#include "funtiondeclaration.h" //函数声明头文件
#include "fileinout.h" //文件输入输出类头文件
#include "findlist.h" //查找链表头文件(存放查找到的学生节点地址)
#include <iostream>
#include <string>
#include <stdio.h>
#include <conio.h>
using namespace std;
class CStudentList //学生链表类.对学生对象类管理
{
private:
CStudentObject* m_pHead; //学生链表头指针
CStudentObject* m_pEnd; //学生链表尾指针
CStudentObject* m_pNew; //用于创建链表时指向新创建的对象的指针
CStudentObject* m_pMove; //用于遍历链表时可移动的指针
static int m_nSum; //记录共有多少位学生
/*------以下是CStudentList类中的私有成员函数,安全啊---------*/
void ShowOneInf(CStudentObject* pPrint) const; //显示一个学生所有信息
void QueueData(int nNum); //用冒泡法对所有学生信息按有同显示方式进行排序
void DataExchange(CStudentObject* pMove); //实现两个学生数据交换
int Find(FindList* pFind_H,char* cFindStr,int nNum); //查找学号,姓名时调用该函数,当找到一个学生就将其挂接到一个查找链表上,形参的整形变量判断是按学号,姓名,还是姓名模糊查找
//int Find(CStudentObject* pFind[],char* cFindStr); //输入姓名查寻时实现模糊查找的函数,与下面一个函数实现是重载关系
//int Find(CStudentObject* pFind[],char* cFindStr,int nNum); //依据形参得到不同的参数情况实现按学号,姓名查找的一个函数
void InputOneNewStuInf(CStudentObject* pTemp); //实现已知一个学生地址修改其学生所有数据
void DeleteOneStuInf(CStudentObject* pNowI); //从形参获得一个节点地址,将该节点从链表中删除
friend class CFileInOut; //声明文件输入输出类是本类友元类
public:
void Show_Grade(); //按总成绩从高至低显示所有学生信息
void Show_Name(); //按姓名从小至大显示所有学生信息
void Show_Id(); //按学号从小至大显示所有学生信息
void Find_Id(); //按学生学号查寻学生数据信息及显示
void Find_Name(); //按学生姓名查寻学生数据信息及显示
void FaintnessFind_Name(); //输入学生姓名查找与之相关的学生姓名的信息
void Add(); //增加学生对象及信息
void Modify_Id(); //输入学生学号修改学生信息,调用函数InputOneNewStuInf()实现具体修改
void Modify_Name(); //输入学生姓名修改学生信息,调用函数InputOneNewStuInf()实现具体修改
void Delete_Id(); //输入学号删除找到的学生信息
void Delete_Name(); //输入姓名删除找到的学生信息
void Delete_All(); //删除链表的所有学生信息
CStudentList(); //构造函数
virtual ~CStudentList(); //析构函数
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -