91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用C++代碼實現學校人員管理系統

發布時間:2022-03-17 08:55:18 來源:億速云 閱讀:181 作者:iii 欄目:開發技術

這篇文章主要介紹了怎么用C++代碼實現學校人員管理系統的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么用C++代碼實現學校人員管理系統文章都會有所收獲,下面我們一起來看看吧。

題目要求

學校人員管理系統

1、建立一個學校類,在其中定義按照姓名增加人員的增加函數,刪除人員的刪除的函數和查詢函數(以姓名為準)。
2、建立一個人員基類,要具有姓名和性別屬性,并有輸出函數(可定義為虛函數)。
3、建立一個員工類和一個學生類,均由人員類繼承而來。要求:可以輸出員工類(學生類)對象的屬性(如:姓名、性別和工作證號碼或學生學號),分別寫出它們的輸出函數的具體實現。
4、重載“>>”,實現用cin為員工類、學生類和在職學生類對象賦值。(選做)
5、編寫main()主函數,測試上述功能,并以菜單方式實現對各種人員的增加、刪除和查詢(以姓名為線索)。
6、程序應采用多文件結構。
7、vs2019編譯

實驗源代碼

head.h頭文件函數聲明

/*頭文件Head.h,聲名所有需要的函數或者系統頭文件*/

//系統頭文件
#include<iostream>
#include<string>
using namespace std;

//全局變量
extern int p ;//保存人類個數
extern int Re;//保存當前學生所在位數
extern int Rs;//保存當前員工所在位數
extern int s ;//保存學生個數
extern int e ;//保存員工個數

//全局類數組的聲明
extern int maxEmployee;
extern int maxStudent;
extern Employee* employee;
extern Student* student;

//人類聲明
class Person {
private:
    string name;//姓名
    string sex;//性別
    int age;//年齡
    string status;//身份
    void init();//初始化函數
public:
    void setPerson();//調用初始化函數
    void setStatus(string);//設置身份
    string getName();//獲取人的名字
    string getStatus();//獲取人的身份
    static void setP(int);//當前添加第幾個人
    static void setRs(int);//當前添加第幾個學生
    static void setRe(int);//當前添加第幾個員工
    static int getRe();//獲取Re
    static int getRs();//獲取Rs
    static int getP();//獲取p
    virtual void show();//虛函數
};

//學校類
class school {
private:
    //增加人員
    static bool addPerson();
    //刪除人員
    static bool deletePerson();
    //查詢人員
    static Person queryPerson();
public:
    static bool getAdd();
    static bool getDel();
    static Person getQue();
};

//學生類
class Student :public Person {
private:
    string StudentNumber;
    string StudentDormitory;
public:
    //構造函數
    Student();
    // >>重載
    friend istream& operator >> (istream& i, Student& p);
    static int getTotal();
    static void setTotal(int);
    string getStuId();
    void show();
};

//員工類
class Employee : public Person {
private:
    string EmployeeNumber;
    string EmployeeDormitory;
public:
    Employee();
    friend istream& operator >> (istream& i, Employee& p);
    static int getTotal();
    static void setTotal(int);
    string getEpyId();
    void show();
};


//main 函數里的函數聲明
void view();
bool doSwitch(char n);
extern char n;
char Cin();

Remain.cpp文件實現頭文件

#include"Head.h"
//引用全局變量
int p = 0;
int s = 0;
int e = 0;
int Re = 0;
int Rs = 0;

int maxEmployee = 1000;
int maxStudent = 1000;
Employee* employee = new Employee[maxEmployee];
Student* student = new Student[maxStudent];
char n;

/*人類*/

//人初始化函數
void Person::init() {
    cout << "姓名:" << endl;
    cin >> name;

cout << "性別:" << endl;
    cin >> sex;

    cout << "年齡:" << endl;
    cin >> age;
}

//
void Person::setPerson() {
    init();
}

//
string Person::getName() {
    return name;
}

void Person::setP(int i) {
    p = p + i;
}
int Person::getP() {
    return p;
}

void Person::setStatus(string s) {
    status = s;
}

string Person::getStatus() {
    return status;
}

void Person::setRs(int j) {
    Rs = j;
}
void Person::setRe(int j) {
    Re = j;
}
int Person::getRs() {
    return Rs;
}
int Person::getRe() {
    return Re;
}

//人類show函數
void Person::show() {
    cout << "姓名:" << name << "\t"
        << "性別:" << sex << "\t"
        << "年齡:" << age << "\t"
        << "工作:" << status << "\t";
}


//員工

//空參構造
Employee::Employee(){}

void Employee::show() {
    cout << "工號:" << EmployeeNumber << "\t"
        << "宿舍:" << EmployeeDormitory << endl;
}

int Employee::getTotal() {
    return e;
}
void Employee::setTotal(int i) {
    e = e + i;
}
string Employee::getEpyId() {
    return EmployeeNumber;
}
//員工>>重載
istream& operator >> (istream& i, Employee& p) {
    p.setPerson();
    cout << "工號:" << endl;
    i >> p.EmployeeNumber;
    cout << "宿舍:" << endl;
    i >> p.EmployeeDormitory;
    return i;
}

//學生
Student::Student(){}

void Student::show() {

    cout << "學號:" << this->StudentNumber << "\t"
        << "宿舍:" << this->StudentDormitory << endl;
}

int Student::getTotal() {
    return s;
}
void Student::setTotal(int i) {
    s = s + i;
}
string Student::getStuId() {
    return StudentNumber;
}
//學生>>重載
istream& operator >> (istream& i, Student& p) {
    p.setPerson();
    cout << "學號:" << endl;
    i >> p.StudentNumber;
    cout << "宿舍:" << endl;
    i >> p.StudentDormitory;
    return i;
}

/*添加
*/
bool school::addPerson() {
    int n;
    cin >> n;
    if (n != 1 && n != 2) return false;
    if (n == 2) {
        Student t;
        cin >> t;
        t.setStatus("學生");
        student[Student::getTotal()] = t;
        Student::setTotal(1);
        Person::setP(1);
        return true;
    }
    if (n == 1) {
        Employee e;
        cin >> e;
        e.setStatus("員工");
        employee[Employee::getTotal()] = e;        
        Employee::setTotal(1);
        Person::setP(1);
        return true;
    }
    return false;
}
bool school::getAdd() {
    return addPerson();
}

/*刪除員工和學生,刪除對象*/

bool delS() {
    cout << "請輸入你要刪除的學生學號!" << endl;
    string s;
    cin >> s;
    int Sl = Student::getTotal();
    for (int i = 0; i < Sl; i++) {
        if (s == student[i].getStuId()) {
            //所有數組元素前移
            for (int j = i; j < Sl; j++) {
                student[j] = student[j + 1];
            }
            Student::setTotal(-1);
            return true;
        }
    }
    return false;
}

bool delE() {
    cout << "請輸入你要刪除的員工工號!" << endl;
    string s;
    cin >> s;
    int El = Employee::getTotal();
    for (int i = 0; i < El; i++) {
        if (s == employee[i].getEpyId()) {
            //所有數組元素前移
            for (int j = i; j < El; j++) {
                employee[j] = employee[j + 1];
            }
            Employee::setTotal(-1);
            return true;
        }
    }
    return false;
}


bool school::deletePerson() {
    int n;
    cin >> n;
    if (n != 1 && n != 2) return false;
    if (n == 1) {
        return delS();
    }
    else return delE();
    return false;
}


bool school::getDel() {
    return deletePerson();
}

//查詢

Person school::queryPerson() {
    string s;
    cin >> s;
    Person p;
    for (int j = 0; j < Student::getTotal(); j++) {
        if (s == student[j].getName()) {
            student[j].setRs(j);
            p = (Person)student[j];
            break;
        }
    }
    for (int j = 0; j < Employee::getTotal(); j++) {
        if (s == employee[j].getName()) {
            employee[j].setRe(j);
            p=(Person)employee[j];
            break;
        }
    }
    return p;
}

Person school::getQue(){
    return queryPerson();
}

//菜單
bool doSwitch(char n) {
    if (n == '#')return false;
    switch (n)
    {
    case '1':
        cout << "----請說明你要添加的人員種類1.員工,2.學生------" << endl;
        if (school::getAdd()) cout << "添加成功!" << endl;
        else cout << "添加失敗!" << endl;
        break;
    case '2':
        cout << "----請說明你要刪除的人員種類1.學生,2.員工------" << endl;
        if (school::getDel())cout << "刪除成功!"<<endl;
        else cout << "刪除失敗" << endl;
        break;
    case '3':
        cout << "請輸入你要查詢人的名字:" << endl;
        Person p = school::getQue();
        string s = p.getStatus();
        if (s == "學生") {
            int j = p.getRs();
            Student s = student[j];
            Person p = (Person)s;
            p.show();
            s.show();
        }
        else if (s == "員工") {
            int j = p.getRe();
            Employee s = employee[j];
            Person p = (Person)s;
            p.show();
            s.show();
        }
        else cout << "找不到該人!" << endl;
        break;
    }
    return true;    
}

char Cin() {
    cin >> n;
    return n;
}
void view() {
    cout << "------------歡迎來到學校人員管理系統------------" << "\n"
        << "----------------請選擇以下選項-------------------" << "\n"
        << "----------------1.添加人員-----------------------" << "\n"
        << "----------------2.刪除人員-----------------------" << "\n"
        << "----------------3.查詢人員-----------------------" << "\n"
        << "-------------------#退出!--------------------" << endl;
}

Main.cpp撰寫main函數

#include"Head.h"
int main() {
    while (true) {
        view(); 
        if (!doSwitch(Cin())) {
            delete[] student;
            delete[] employee;
            break;
        }        
    }
    return 0;
}

關于“怎么用C++代碼實現學校人員管理系統”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么用C++代碼實現學校人員管理系統”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

马边| 万州区| 建湖县| 宜兰县| 田林县| 镇江市| 桐柏县| 巴楚县| 洛宁县| 凤山市| 丰城市| 会同县| 泸西县| 格尔木市| 溧水县| 舒城县| 菏泽市| 来凤县| 济阳县| 阳春市| 龙岩市| 阿拉善左旗| 芮城县| 玉屏| 隆回县| 军事| 泸西县| 游戏| 沁阳市| 玉门市| 阳新县| 宁晋县| 怀化市| 历史| 浦江县| 凤翔县| 诸城市| 紫阳县| 乌苏市| 鄂伦春自治旗| 东乡县|