欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)

 更新時(shí)間:2022年05月30日 13:22:09   作者:shaolong_CHEN  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

課題描述:

1.為學(xué)生檔案管理人員編寫一個(gè)學(xué)生檔案管理系統(tǒng) ,用菜單選擇方式完成下列功能:

2.學(xué)生檔案信息添加:包括學(xué)號(hào)、姓名、性別、出生日期、學(xué)院、專業(yè)、班級(jí)、身份證號(hào)、政治面貌、籍貫、家庭住址、電話等。

3.學(xué)生檔案信息查詢:分別按學(xué)號(hào)、姓名、性別、學(xué)院、專業(yè)、班級(jí)、政治面貌、籍貫等進(jìn)行查詢。

4.學(xué)生檔案信息的修改、刪除:按姓名+學(xué)號(hào)進(jìn)行學(xué)生檔案信息的修改和刪除。

系統(tǒng)簡要分析:

1.學(xué)生檔案管理系主要功能為:添加學(xué)生檔案信息,如:學(xué)號(hào),姓名,出生日期,學(xué)院,專業(yè),班級(jí),身份證號(hào)碼,籍貫,家庭地址,電話等信息,并可以編輯學(xué)生檔案信息,方便修改刪減,還有按照一定要求排序?qū)W生檔案。

2.本系統(tǒng)將創(chuàng)建一個(gè)學(xué)生檔案管理系統(tǒng)的類,添加一些學(xué)生檔案的屬性和行為,進(jìn)行學(xué)生檔案信息的輸入和輸出。

3.該檔案管理系統(tǒng)的修改和刪除功能,分別可以由姓名和學(xué)號(hào)先進(jìn)行查找,然后輸出要修改的學(xué)生信息,然后系統(tǒng)會(huì)提供相應(yīng)的提示,讓你選要修改的學(xué)生信息中具體的信息,如單獨(dú)修改學(xué)號(hào)或?qū)I(yè)信息等。本系統(tǒng)的插入和刪除功能,都運(yùn)用了單鏈表易于刪除和查找的功能特點(diǎn)。

4.系統(tǒng)具體操作功能如下,首先程序運(yùn)行后,顯示菜單功能列表。然后輸入者根據(jù)菜單選項(xiàng)進(jìn)行輸入操作,可以添加自己的個(gè)人信息,修改信息,查詢所要的信息。然后檔案管理員可以在后期查找所需學(xué)生信息,進(jìn)行輸出修改。

源代碼:  

#include<iostream>
#include <string>
using namespace std;
class Student
{
private:
?? ?string number;//學(xué)號(hào)
?? ?string name;//名字
?? ?string grade;//班級(jí)
?? ?string sex;//性別
?? ?int telephone;//手機(jī)號(hào)碼
?? ?int identify;//身份證號(hào)碼
?? ?string major;//專業(yè)
?? ?string political;//政治面貌
?? ?string address;//家庭地址
?? ?string nation;//籍貫
public:
?? ?Student* next;//next指向下一個(gè)學(xué)生,構(gòu)成鏈表
?? ?Student() { next = NULL; }
?? ?Student(string n, string g, string num, string s, int tp, int i, string m, string p,string na,string a)
?? ?{
?? ??? ?name = n;
?? ??? ?grade = g;
?? ??? ?number = num;
?? ??? ?sex = s;
?? ??? ?telephone = tp;
?? ??? ?identify = i;
?? ??? ?major = m;
?? ??? ?political = p;
?? ??? ?nation = na;
?? ??? ?address = a;
?
?? ??? ?
?? ??? ?next = NULL;
?? ?};//構(gòu)造函數(shù)
?? ?string getname() { return name; }//名字
?? ?string getgrade() { return grade; }//班別
?? ?string getnum() { return number; }//學(xué)號(hào)
?? ?string gets() { return sex; }//性別
?? ?int gettp() { return telephone; }//
?? ?int geti() { return identify; }//
?? ?string getm() { return major; }
?? ?string getp() { return political; }
?? ?string getna() { return nation; }
?? ?string geta() { return address; }
?? ?void setnum(string num) { number = num; }//修改學(xué)號(hào)
?? ?void setgrade(string g) { grade = g; }//修改班級(jí)
?? ?void setname(string n) { name = n; }//修改名字
?? ?void sets(string s) { sex = s; }//修改性別
?? ?void settp(int tp) { telephone = tp; }//修改手機(jī)號(hào)碼
?? ?void seti(int i) { identify = i; }//修改身份證
?? ?void setm(string m) { major = m; }
?? ?void setp(string p) { political = p; }
?? ?void setna(string na) {nation = na;}
?? ?void seta(string a) { address = a; }
};
?
class Operation
{
private:
?? ?Student* head;
public:
?? ?Operation()
?? ?{
?? ??? ?head = new Student;
?? ?}
?? ?void Menu();//菜單?
?? ?void Insert();//插入
?? ?void Search();//查找
?? ?void Remove();//修改
?? ?void Delete();//刪除
?? ?void Print();//輸出
};
?
?
void Operation::Menu()
{
?? ?cout << "*******************************************************************************************" << endl;
?? ?cout << "------------------------- ? ? ? xxx大學(xué)學(xué)生檔案管理系統(tǒng) ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ?*********************** ? ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ? ? 1.增加學(xué)生信息 ? ? ? ? ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ? ? 2.顯示學(xué)生信息 ? ? ? ? ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ? ? 3.查找學(xué)生信息 ? ? ? ? ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ? ? 4.刪除學(xué)生信息 ? ? ? ? ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ? ? 5.修改學(xué)生信息 ? ? ? ? ? ? ? ?-------------------------" << endl;
?? ?cout << "------------------------- ? ? ? ? ? 6.安全退出系統(tǒng) ? ? ? ? ? ? ? ?-------------------------" << endl;
?? ??
}
?
void Operation::Insert() ? ? //插入
{
?? ?string name;//名字
?? ?string grade;//班級(jí)
?? ?string number;//學(xué)號(hào)
?? ?string sex;//性別
?? ?int telephone;//手機(jī)號(hào)
?? ?int identify;//身份證號(hào)碼
?? ?string major;
?? ?string political;
?? ?string nation;
?? ?string address;
?? ?Student* p = NULL;
?? ?cout << "請輸入要添加學(xué)生的信息:" << endl;
?? ?cout << "請輸入姓名:";
?? ?cin >> name;
?? ?cout << endl;
?? ?cout << "請輸入班級(jí):";
?? ?cin >> grade;
?? ?cout << endl;
?? ?cout << "請輸入學(xué)號(hào):";
?? ?cin >> number;
?? ?cout << endl;
?? ?cout << "請輸入性別:";
?? ?cin >> sex;
?? ?cout << endl;
?? ?cout << "手機(jī)號(hào)碼:";
?? ?cin >> telephone;
?? ?cout << endl;
?? ?cout << "身份證號(hào)碼:";
?? ?cin >> identify;
?? ?cout << endl;
?? ?cout << "專業(yè):";
?? ?cin >> major;
?? ?cout << endl;
?? ?cout << "政治面貌:";
?? ?cin >> political;
?? ?cout << endl;
?? ?cout << "籍貫:";
?? ?cin >> nation;
?? ?cout << endl;
?? ?cout << "家庭地址:";
?? ?cin >> address;
?? ?cout << endl;
?? ?Student* s = new Student(name, grade, number, sex, telephone, identify, ?major, political, nation, address);
?? ??? ?p = head;
?? ?while (p->next != NULL && p->getnum() ?< s->getnum())
?? ?{
?? ??? ?p = p->next;
?? ?}
?? ?s->next = p->next;
?? ?p->next = s;
}
?
?
void Operation::Delete()//刪除
{
?? ?string name;
?? ?Student* p = head->next, * q = head;
?? ?cout << "請輸入要?jiǎng)h除學(xué)生信息的姓名:" << endl;
?? ?cin >> name;
?? ?while (p != NULL)
?? ?{
?? ??? ?if (p->getname() == name)
?? ??? ?{
?? ??? ??? ?q->next = p->next;
?? ??? ??? ?delete p;
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?p = p->next;
?? ??? ?q = q->next;
?
?? ?}
?? ?if (p != NULL)
?? ?{
?? ??? ?cout << "刪除成功!" << endl;
?? ?}
?? ?if (p == NULL)
?? ?{
?? ??? ?cout << "\t\t沒有找到!" << endl;
?? ?}
?
}
?
void Operation::Search()//查詢?
{
?? ?Student* p = NULL;
?? ?cout << "\n** 查詢學(xué)生信息 **\n" << endl;
?? ?cout << "請輸入查詢方式:" << endl;
?? ?cout << "1.按學(xué)號(hào)查詢" << endl;
?? ?cout << "2.按姓名查詢" << endl;
?? ?cout << "3.返回" << endl;
?? ?char c;
?? ?cin >> c;
?? ?switch (c)
?? ?{
?? ?case '1':
?? ?{string n;
?? ?cout << "請輸入你要查詢的學(xué)生的學(xué)號(hào)" << endl;
?? ?cin >> n;
?? ?for (p = head; p != NULL; p = p->next)
?? ?{
?? ??? ?if (p->getnum() == n)
?? ??? ?{
?? ??? ??? ?cout
?? ??? ??? ??? ?<< "姓名:" << p->getname() << endl
?? ??? ??? ??? ?<< "班別:" << p->getgrade() << endl
?? ??? ??? ??? ?<< "學(xué)號(hào):" << p->getnum() << endl
?? ??? ??? ??? ?<< "性別:" << p->getgrade() << endl
?? ??? ??? ??? ?<< "電話號(hào)碼:" << p->gettp() << endl
?? ??? ??? ??? ?<< "身份證號(hào)碼:" << p->geti() << endl
?? ??? ??? ??? ?<< "專業(yè):" << p->getm() << endl
?? ??? ??? ??? ?<< "政治面貌:" << p->getp() << endl
?? ??? ??? ??? ?<< "籍貫:" << p->getna() << endl
?? ??? ??? ??? ?<< "家庭地址:" << p->geta() << endl;
?? ??? ??? ?
?? ??? ?}
?
?? ?}
?? ?break;
?? ?}
?? ?case '2':
?
?? ?{
?? ??? ?string name;
?? ??? ?cout << "請輸入你要查詢的學(xué)生姓名" << endl;
?? ??? ?cin >> name;
?? ??? ?for (p = head; p != NULL; p = p->next)
?? ??? ?{
?? ??? ??? ?if (name == p->getname())
?? ??? ??? ?{
?? ??? ??? ??? ?cout
?? ??? ??? ??? ??? ?<< "姓名:" << p->getname() << endl
?? ??? ??? ??? ??? ?<< "班級(jí):" << p->getgrade() << endl
?? ??? ??? ??? ??? ?<< "學(xué)號(hào):" << p->getnum() << endl
?? ??? ??? ??? ??? ?<< "性別:" << p->gets() << endl
?? ??? ??? ??? ??? ?<< "手機(jī)號(hào)碼:" << p->gettp() << endl
?? ??? ??? ??? ??? ?<< "身份證號(hào)碼:" << p->geti() << endl?? ?
?? ??? ??? ??? ??? ?<< "專業(yè):" << p->getm() << endl
?? ??? ??? ??? ??? ?<< "政治面貌:" << p->getp() << endl
?? ??? ??? ??? ??? ?<< "籍貫:" << p->getna() << endl
?? ??? ??? ??? ??? ?<< "家庭地址:" << p->geta() << endl;
?? ??? ??? ?}
?
?? ??? ?}
?? ??? ?break;
?? ?}
?? ?case '3':
?? ??? ?return;
?? ?}
}
void Operation::Print() ? //輸出
{
?? ?Student* p;
?? ?cout
?? ??? ?<< "姓名"
?? ??? ?<< "\t班級(jí)"
?? ??? ?<< "\t學(xué)號(hào)"
?? ??? ?<< "\t性別"
?? ??? ?<< "\t手機(jī)號(hào)碼"
?? ??? ?<< "\t身份證號(hào)碼"
?? ??? ?<< "\t專業(yè)"
?? ??? ?<< "\t政治面貌"
?? ??? ?<< "\t籍貫"
?? ??? ?<< "\t地址" << endl;
?? ?for (p = head->next; p != NULL; p = p->next)
?? ??? ?cout
?? ??? ?<< p->getname()
?? ??? ?<< "\t" << p->getgrade()
?? ??? ?<< "\t" << p->getnum()
?? ??? ?<< "\t" << p->gets()
?? ??? ?<< "\t" << p->gettp()
?? ??? ?<< "\t\t" << p->geti()
?? ??? ?<< "\t\t" << p->getm()
?? ??? ?<< "\t" << p->getp()
?? ??? ?<< "\t\t" << p->getna()
?? ??? ?<< "\t" << p->geta()
?? ??? ?<< endl;
?
}
?
void Operation::Remove() ? //修改
{
?? ?string n;//修改項(xiàng)
?? ?string number;//學(xué)號(hào)
?? ?string grade;//班級(jí)
?? ?string name;//名字
?? ?string sex;//性別
?? ?int telephone;//手機(jī)號(hào)碼
?? ?int identity;//身份證號(hào)碼
?? ?int birth;//出生日期
?? ?string major;
?? ?string political;
?? ?string nation;
?? ?string address;
?? ?cout << "請輸入你要修改的學(xué)生姓名" << endl;
?? ?cin >> n;
?? ?Student* p;
?? ?for (p = head->next; p != NULL; p = p->next)
?? ??? ?if (p->getname() == n)
?? ??? ?{
?? ??? ??? ?cout << "請選擇您要修改的信息項(xiàng):" << endl;
?? ??? ??? ?cout << "1、學(xué)號(hào),2、班別,3、姓名,4、性別,5、手機(jī)號(hào)碼,6、身份證號(hào)碼,7、出生日期,8、專業(yè),9、政治面貌,10、籍貫,11、家庭地址。" << endl;
?? ??? ??? ?int in;
?? ??? ??? ?cin >> in;
?? ??? ??? ?switch (in)
?? ??? ??? ?{
?? ??? ??? ?case 1:
?? ??? ??? ??? ?cout << p->getnum() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> number; p->setnum(number);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 2:
?? ??? ??? ??? ?cout << p->getgrade() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> grade; p->setgrade(grade);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?cout << p->getname() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> name; p->setname(name);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 4:
?? ??? ??? ??? ?cout << p->gets() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> sex; p->sets(sex);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 5:
?? ??? ??? ??? ?cout << p->gettp() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> telephone; p->settp(telephone);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 6:
?? ??? ??? ??? ?cout << p->geti() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> identity; p->seti(identity);
?? ??? ??? ??? ?break;
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?case 8:
?? ??? ??? ??? ?cout << p->getm() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> major; p->setm(major);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 9:
?? ??? ??? ??? ?cout << p->getp() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> political; p->setp(political);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 10:
?? ??? ??? ??? ?cout << p->getna() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> nation; p->setna(nation);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 11:
?? ??? ??? ??? ?cout << p->geta() << "修改為:" << endl;
?? ??? ??? ??? ?cin >> birth; p->seta(address);
?? ??? ??? ??? ?break;
?? ??? ??? ?
?? ??? ??? ?default:
?? ??? ??? ??? ?cout << "輸入錯(cuò)誤!" << endl;
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?
}
?
int main()
{
?? ?Operation O;
?? ?O.Menu();
?? ?while (1)
?? ?{
?? ??? ?int n;
?? ??? ?cout << "\n\t\t\n\t\t請選擇:";
?? ??? ?cin >> n;
?? ??? ?switch (n)
?? ??? ?{
?? ??? ?case 1://增加
?? ??? ??? ?O.Insert();
?? ??? ??? ?break;
?? ??? ?case 2://顯示
?? ??? ??? ?O.Print();
?? ??? ??? ?break;
?? ??? ?case 3://查找
?? ??? ??? ?O.Search();
?? ??? ??? ?break;
?? ??? ?case 4://刪除
?? ??? ??? ?O.Delete();
?? ??? ??? ?break;
?? ??? ?case 5://修改
?? ??? ??? ?O.Remove();
?? ??? ??? ?break;
?? ??? ?case 6:
?? ??? ??? ?cout << "******************************" << "\n感謝您的使用!\n" << "******************************" << endl;
?? ??? ??? ?exit(0);
?
?? ??? ?}
?
?? ?}
?
?? ?return 0;
?
}

效果演示:

1.主函數(shù)樣式

2.輸入輸出信息

3.查詢信息

4.刪除修改信息

5.退出系統(tǒng)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ WideCharToMultiByte()函數(shù)案例詳解

    C++ WideCharToMultiByte()函數(shù)案例詳解

    這篇文章主要介紹了C++ WideCharToMultiByte()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言怎么連接兩個(gè)數(shù)組的內(nèi)容你知道嗎

    C語言怎么連接兩個(gè)數(shù)組的內(nèi)容你知道嗎

    這篇文章主要為大家介紹了C語言怎么連接兩個(gè)數(shù)組的內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C++線程同步實(shí)例分析

    C++線程同步實(shí)例分析

    這篇文章主要介紹了C++線程同步實(shí)例分析,以實(shí)例的形式較為深入的分析了C++的線程同步問題,是一個(gè)較為經(jīng)典的線程同步問題,需要的朋友可以參考下
    2014-10-10
  • C++中的ilst使用以及模擬實(shí)現(xiàn)

    C++中的ilst使用以及模擬實(shí)現(xiàn)

    list是一個(gè)類模板,加<類型>實(shí)例化才是具體的類,可以在任意位置進(jìn)行插入和刪除的序列式容器,本文將通過代碼示例給大家介紹一下C++中的ilst使用以及模擬實(shí)現(xiàn),需要的朋友可以參考下
    2023-08-08
  • C++利用inotify+epoll實(shí)現(xiàn)異步文件監(jiān)控的方法

    C++利用inotify+epoll實(shí)現(xiàn)異步文件監(jiān)控的方法

    這篇文章講給大家詳細(xì)介紹一下C++利用inotify+epoll實(shí)現(xiàn)異步文件監(jiān)控的方法,inotify是一種異步文件監(jiān)控機(jī)制,文章通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-08-08
  • C++實(shí)現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項(xiàng))

    C++實(shí)現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項(xiàng))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(26.有序數(shù)組中去除重復(fù)項(xiàng)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言scanf語句吃掉回車或者空格問題及解決

    C語言scanf語句吃掉回車或者空格問題及解決

    這篇文章主要介紹了C語言scanf語句吃掉回車或者空格問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++入門概覽和嘗試創(chuàng)建第一個(gè)C++程序

    C++入門概覽和嘗試創(chuàng)建第一個(gè)C++程序

    這篇文章主要介紹了C++入門概覽和嘗試創(chuàng)建第一個(gè)C++程序,同時(shí)也包括編寫類的示例展示C++面向?qū)ο蟮奶匦?需要的朋友可以參考下
    2015-09-09
  • 淺析VC++中的頭文件包含問題

    淺析VC++中的頭文件包含問題

    類中盡量采用指針或引用方式調(diào)用其它類,這樣就可以只聲明class xxx了。并且這也符合資源最優(yōu)利用,更利于使用多態(tài)
    2013-09-09
  • VSCode搭建STM32開發(fā)環(huán)境的實(shí)現(xiàn)步驟

    VSCode搭建STM32開發(fā)環(huán)境的實(shí)現(xiàn)步驟

    因?yàn)閂SCode免費(fèi)且好用,可以安裝各種插件,本文主要介紹了VSCode搭建STM32開發(fā)環(huán)境的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12

最新評論