古詩詞大全網 - 成語解釋 - 學生基本信息管理系統的C++源代碼

學生基本信息管理系統的C++源代碼

#包含?& ltiostream & gt

#包含?& ltiomanip & gt

#包含?& lt字符串& gt

使用?命名空間?std

typedef?struct?學生?{

未簽名?m _ id

字符串?m _ name

未簽名?m _年齡;

字符串?m _ sex

字符串?m _地址;

字符串?m _ contact

字符串?m _宿舍;

struct?學生?* m _ next

}學生;

班級?CStudent?{

私人?:

學生?*頭;

公共?:

CStudent()?{

頭?=?新的?學生;

head->;m_id?=?0;

head->;m_name?=?”非姓名”;

head->;m _下壹個?=?NULL

}

~CStudent()?{

學生?*p?=?頭,* q;

while(p)?{

q?=?p;

p?=?q->;m _ next

刪除?q;

}

}

學生?readdata(int?型號);?//?模特?=?1:不看學號,2:不看名字,其他,看所有信息。

作廢?正在輸入();

布爾?插入(常量?學生?& ampastu);

學生?*findid(未簽名?id)?const

學生?*findname(const?字符串?& amp姓名)?const

學生?*findsex(const?字符串?& amp性)?const

學生?* find success(const?字符串?& amp宿舍)?const

未簽名?男生()?const

未簽名?女生()?const

未簽名?編制()?const

布爾?erase id();

布爾?erase name();

布爾?modifyid();

布爾?modify name();

作廢?Show()?const

作廢?query()?const

作廢?朋友?統計(const?CStudent?& ampaclss);

作廢?朋友?擦除(CStudent?& ampaclss);

作廢?朋友?修改(CStudent?& ampaclss);

};

字符串?readstring()?{

字符串?str

while(cin.get()?!=?\ n’);

cin?& gt& gt?str

回歸?str

}

學生?CStudent::readdata(int?型號)?{

學生?tmp

如果(型號?!=?1)?{?cout?& lt& lt?“學號:?”;?cin?& gt& gt?tmp.m _ id?}

如果(型號?!=?2)?{?cout?& lt& lt?"姓名:?";?tmp.m_name?=?readstring();?}

cin?& gt& gt?tmp.m _ age

cout?& lt& lt?“性別:?”;

tmp.m_sex?=?readstring();

cout?& lt& lt?"地址:?";

tmp.m_address?=?readstring();

cout?& lt& lt?"聯系信息:?";

tmp.m_contact?= read string();

cout?& lt& lt?“宿舍:?”;

tmp.m _宿舍?=?readstring();

回歸?tmp

}

作廢?c student::enter()?{

學生?tmp

cout?& lt& lt?“學號(0?去哪?return):?”;

cin?& gt& gt?tmp.m _ id

while(tmp.m_id)?{

if(findid(tmp.m_id)?==?NULL)?{

cout?& lt& lt?"姓名:?";

tmp.m_name?=?readstring();

cout?& lt& lt?“年齡:?”;

cin?& gt& gt?tmp.m _ age

cout?& lt& lt?“性別:?”;

tmp.m_sex?=?readstring();

cout?& lt& lt?"地址:?";

tmp.m_address?=?readstring();

cout?& lt& lt?"聯系信息:?";

tmp.m_contact?=?readstring();

cout?& lt& lt?“宿舍:?”;

tmp.m _宿舍?=?readstring();

插入(tmp);

}

不然呢?cout?& lt& lt?"重復的學號:"?& lt& lt?tmp.m_id?& lt& lt?endl

cout?& lt& lt?“學號(0?去哪?return):?”;

cin?& gt& gt?tmp.m _ id

}

}

學生?*CStudent::findid(未簽名?id)?const?{

學生?* p;

對於(p?=?頭;?p->;m _ next?p?=?p->;m_next)

如果(p->;m _ next-& gt;m_id?==?id)?回歸?p;

回歸?NULL

}

學生?*CStudent::findname(const?字符串?& amp姓名)?const?{

學生?* p;

對於(p?=?頭;?p->;m _ next?p?=?p->;m_next)

如果(p->;m _ next-& gt;m_name?==?姓名)?回歸?p;

回歸?NULL

}

學生?*CStudent::findsex(const?字符串?& amp性)?const?{

學生?* p;

對於(p?=?頭;?p->;m _ next?p?=?p->;m_next)

如果(p->;m _ next-& gt;m_sex?==?性)?回歸?p;

回歸?NULL

}

學生?* c student::find宿舍(const?字符串?& amp宿舍)?const?{

學生?* p;

對於(p?=?頭;?p->;m _ next?p?=?p->;m_next)

如果(p->;m _ next-& gt;m _宿舍?==?宿舍)?回歸?p;

回歸?NULL

}

布爾?CStudent::insert(const?學生?& ampastu)?{

學生?*newnode,*p?=?頭;

如果(p->;m _下壹個?==?NULL)?{

p->;m _下壹個?=?新的?學生(astu);

p->;m _ next-& gt;m _下壹個?=?NULL

回歸?真實;

}

while(p->;m_next)?{

如果(p->;m _ next-& gt;m_id?==?astu.m_id)?{

cout?& lt& lt?“學號重復,插入失敗!\ n ";

回歸?假的;

}

如果(p->;m _ next-& gt;m_id?& gt?astu.m_id)?{

newnode?=?新的?學生(astu);

新節點-& gt;m _下壹個?=?p->;m _ next

p->;m _下壹個?=?newnode

回歸?真實;

}

p?=?p->;m _ next

}

p->;m _下壹個?=?新的?學生(astu);

p->;m _ next-& gt;m _下壹個?=?NULL

回歸?真實;

}

未簽名?CStudent::boys()?const?{

未簽名?cnt?=?0;

學生?* p;

對於(p?=?head->;m _ next?p;?p?=?p->;m_next)

如果(p->;m_sex?==?“男”)?++ CNT;

回歸?cnt

}

未簽名?CStudent::girls()?const?{

未簽名?cnt?=?0;

學生?* p;

對於(p?=?head->;m _ next?p;?p?=?p->;m_next)

如果(p->;m_sex?==?“女”)?++ CNT;

回歸?cnt

}

未簽名?c student::head number()?const?{

未簽名?cnt?=?0;

學生?* p;

對於(p?=?head->;m _ next?p;?p?=?p->;m_next,++ CNT);

回歸?cnt

}

布爾?CStudent::eraseid()?{

學生?*q,* p;

未簽名?id;

cout?& lt& lt?"輸入要刪除的學號:";

cin?& gt& gt?id;

p?=?findid(id);

如果(p?==?NULL)?{

cout?& lt& lt?“沒找到學號”“?& lt& lt?id?& lt& lt?"“同學們,刪除失敗!\ n ";

回歸?假的;

}

q?=?p->;m _ next

p->;m _下壹個?=?q->;m _ next

刪除?q;

回歸?真實;

}

布爾?CStudent::erasename()?{

學生?*q,* p;

字符串?姓名;

cout?& lt& lt?"輸入要刪除的人的姓名:";

名字?=?readstring();

p?=?findname(名稱);

如果(p?==?NULL)?{

cout?& lt& lt?找不到名稱\ " "?& lt& lt?名字?& lt& lt?"“同學們,刪除失敗!\ n ";

回歸?假的;

}

q?=?p->;m _ next

p->;m _下壹個?=?q->;m _ next

刪除?q;

回歸?真實;

}

布爾?CStudent::modifyid()?{

學生?tmp,* p;

未簽名?id;

cout?& lt& lt?”輸入要修改的學號:“;

cin?& gt& gt?id;

p?=?findid(id);

如果(p?==?NULL)?{

cout?& lt& lt?“沒找到學號”“?& lt& lt?id?& lt& lt?"“同學們,改裝失敗了!\ n ";

回歸?假的;

}

tmp?=?read data(1);

tmp.m_id?=?id;

*p?=?tmp

回歸?真實;

}

布爾?CStudent::modifyname()?{

學生?*p,tmp

字符串?姓名;

cout?& lt& lt?"輸入要修改的人的姓名:";

名字?=?readstring();

p?=?findname(名稱);

如果(p?==?NULL)?{

cout?& lt& lt?找不到名稱\ " "?& lt& lt?名字?& lt& lt?"“同學們,改裝失敗了!\ n ";

回歸?假的;

}

tmp?=?read data(2);

tmp.m_name?=?姓名;

*p?=?tmp

回歸?真實;

}

int?menu()?{

int?選擇;

做什麽?{

系統(“cls”);

cout?& lt& lt?”\ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n”;

cout?& lt& lt?”\t*學生基本信息管理系統* \ n”;

cout?& lt& lt?" \ t * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * \ n ";

cout?& lt& lt?" \t*1,輸入學生信息* \ n ";

cout?& lt& lt?" \t*2。顯示學生信息* \ n ";

cout?& lt& lt?" \t*3。查詢學生信息* \ n ";

cout?& lt& lt?" \t*4。添加學生信息* \ n ";

cout?& lt& lt?" \t*5。學生信息統計* \ n ";

cout?& lt& lt?" \t*6。刪除學生信息* \ n ";

cout?& lt& lt?" \t*7。修改學生信息* \ n ";

cout?& lt& lt?“\t*0,退出管理系統* \ n”;

cout?& lt& lt?”\ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n”;

cout?& lt& lt?\ n \請選擇:“;

cin?& gt& gt?選擇;

}while(選擇?& lt?0?||?選擇?& gt?7);

回歸?選擇;

}

作廢?秀(學生?*p)?{

cout?& lt& lt?p->;m_id?& lt& lt?"?"?& lt& lt?p->;m_name?& lt& lt?"?"?& lt& lt?p->;m_age?& lt& lt?"?";

cout?& lt& lt?p->;m_sex?& lt& lt?"?"?& lt& lt?p->;m _地址?& lt& lt?"?";

cout?& lt& lt?p->;m_contact?& lt& lt?"?"?& lt& lt?p->;m _宿舍?& lt& lt?endl

}

作廢?CStudent::Show()?const?{

學生?* p;

cout?& lt& lt?”-\ n”;

對於(p?=?head->;m _ next?p;?p?=?p->;m_next)?秀(p);

cout?& lt& lt?”-\ n”;

系統(“暫停”);

}

作廢?CStudent::query()?const?{

int?選擇;

未簽名?id;

字符串?姓名;

學生?* p;

cout?& lt& lt?“1,按學號查詢\n2,按姓名查詢\n0,返回\ n”;

cin?& gt& gt?選擇;

開關(選擇)?{

案子?1?:?cout?& lt& lt?"請輸入您的學號:";?cin?& gt& gt?id;

如果(p?=?findid(id))?顯示(p->;m _ next);

打破;

案子?2?:?cout?& lt& lt?請輸入壹個名稱:“;?名字?=?readstring();

如果(p?=?findname(name))?顯示(p->;m _ next);

打破;

案子?0?:?返回;

違約?:?cout?& lt& lt?“錯誤的選擇。\ n ";

}

系統(“暫停”);

}

作廢?統計(const?CStudent?& ampa)?{

未簽名?總計?=?a .人頭數();

未簽名?男生?=?a . boys();

未簽名?女生?=?a .女生();

cout?& lt& lt?"學生總數:"?& lt& lt?總計?& lt& lt?“人。\ n ";

cout?& lt& lt?“其中,男生:“?& lt& lt?男生?& lt& lt?"名字";

cout?& lt& lt?“姑娘:“?& lt& lt?女生?& lt& lt?“名字。\ n ";

系統(“暫停”);

}

作廢?擦除(CStudent?& ampa)?{

int?選擇;

未簽名?id;

字符串?姓名;

學生?*p,* q;

cout?& lt& lt?“1,按學號刪除\n2,按姓名刪除\n0,返回\ n”;

cin?& gt& gt?選擇;

開關(選擇)?{

案子?1?:?cout?& lt& lt?"請輸入您的學號:";?cin?& gt& gt?id;

如果(p?=?a.findid(id))?{

q?=?p->;m _ next

p->;m _下壹個?=?q->;m _ next

刪除?q;

cout?& lt& lt?“成功刪除?”?& lt& lt?id?& lt& lt?"?信息。\ n ";

}

打破;

案子?2?:?cout?& lt& lt?請輸入壹個名稱:“;?名字?=?readstring();

如果(p?=?a.findname(name))?{

q?=?p->;m _ next

p->;m _下壹個?=?q->;m _ next

刪除?q;

cout?& lt& lt?“成功刪除?”?& lt& lt?名字?& lt& lt?"?信息。\ n ";

}

打破;

案子?0?:?返回;

違約?:?cout?& lt& lt?“錯誤的選擇。\ n ";

}

系統(“暫停”);

}

作廢?修改(CStudent?& ampa)?{

int?選擇;

cout?& lt& lt?“1,按學號修改\n2,按姓名修改\n0,返回\ n”;

cin?& gt& gt?選擇;

開關(選擇)?{

案子?1?:?if(a.modifyid())?cout?& lt& lt?“改造成功了。\ n ";?打破;

案子?2?:?if(a.modifyname())?cout?& lt& lt?“改造成功了。\ n ";?打破;

案子?0?:?返回;

違約?:?cout?& lt& lt?“錯誤的選擇。\ n ";

}

系統(“暫停”);

}

int?main()?{

CStudent?a;

int?安;

做什麽?{

安?=?menu();

開關(安)?{

案子?1?:?a .輸入();?打破;

案子?2?:?a . Show();?打破;

案子?3?:?a . query();?打破;

案子?4?:?a .輸入();?打破;

案子?5?:?統計(a);?打破;

案子?6?:?擦除(a);?打破;

案子?7?:?修改(壹);?打破;

案子?0?:?打破;

違約?:?cout?& lt& lt?“錯誤的選擇。\ n ";?打破;

}

}while(安);

回歸?0;

}