您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“用C++實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)最新版”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“用C++實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)最新版”吧!
學(xué)生成績(jī)管理系統(tǒng),供大家參考,具體內(nèi)容如下
(1)輸入同學(xué)的學(xué)號(hào),姓名,三門科成績(jī)(應(yīng)用數(shù)學(xué)、大學(xué)英語(yǔ)、計(jì)算機(jī)應(yīng)用基礎(chǔ))
(2)可以計(jì)算出每個(gè)學(xué)生三門課的平均成績(jī)。
(3)可通過輸入姓名、學(xué)號(hào)查詢成績(jī),也可通過姓名修改學(xué)生信息,也可通過主界面刪除學(xué)生信息,以及清楚所有信息
廢話不說,直接代碼,歡迎指正。
大家CV可能有不兼容的情況,可以跟我滴滴,盡可能解決問題地回復(fù)。
#include <cstdlib> #include <iostream> #include <string> using namespace std; #define null NULL class student { private: friend class studentMessage; student *next; //節(jié)點(diǎn)指針 string name; //學(xué)生姓名 int age; //年紀(jì) int id; //學(xué)號(hào) double score[3]; //三科成績(jī) double total; //總分 double average; //平均成績(jī) public: student(string _name,int _age,int _id,double *_score) { name = _name; age = _age; id = _id; score[0] = _score[0]; score[1] = _score[1]; score[2] = _score[2]; total = score[0]+score[1]+score[2]; average = total/3; next = NULL; } student() //為studentMessage初始化頭結(jié)點(diǎn)用 { name = "null"; age = 0; id = 0; score[0]=score[1]=score[2]=0; total = 0; average = 0; next = NULL; } ~student(){} void swap(student*); }; void student::swap(student *q) { string _name; int _age,_id; double _score[3],_total,_average; _name = name; name = q->name; q->name = _name; _age = age; age = q->age; q->age = _age; _id = id; id = q->id; q->id = _id; _score[0] = score[0]; score[0] = q->score[0]; q->score[0] = _score[0]; _score[1] = score[1]; score[1] = q->score[1]; q->score[1] = _score[1]; _score[2] = score[2]; score[2] = q->score[2]; q->score[2] = _score[2]; _total = total; total = q->total; q->total = _total; _average = average; average = q->average; q->average = _average; } class studentMessage { private: student *first; //頭指針 int num; //信息中的學(xué)生人數(shù) public: studentMessage() { num = 0; //初始化學(xué)生人數(shù)為0 first = new student; //初始化頭結(jié)點(diǎn) } ~studentMessage(){delete first;} /*管理系統(tǒng)常規(guī)操作*/ void Insret(void); //插入 void Display(void); //顯示 void Delete(void); //刪除 void Search(void); //搜索 void Change(void); //改動(dòng) void sortByLesson1(void); //按成績(jī)一來排序 void sortByLesson2(void); //按成績(jī)二來排序 void sortByLesson3(void); //按成績(jī)?nèi)齺砼判? void sortByTotal(void); //按總分來排序 void SearchByid(void); //按照學(xué)號(hào)查找 void SearchByname(void); //按照姓名查找 int menu(void); //初始的菜單 void clear(void); //清空列表 }; int studentMessage::menu(void) { int ch; cout<<"**********************************************************************"<<endl; cout<<"======================================================================"<<endl; cout<<"***************************學(xué)生成績(jī)管理系統(tǒng)***************************"<<endl;cout<<endl; cout<<"1.顯示所有學(xué)生成績(jī)"<<endl; cout<<"2.添加學(xué)生信息"<<endl; cout<<"3.查詢學(xué)生信息"<<endl; cout<<"4.修改學(xué)生信息"<<endl; cout<<"5.刪除最下面一個(gè)學(xué)生信息"<<endl; cout<<"6.刪除所有信息"<<endl; cout<<"0.退出系統(tǒng)"<<endl;cout<<endl; cout<<"********************Copyright@ By Jeaven Wong**************************"<<endl; cout<<"======================================================================="<<endl; cout<<"***********************************************************************"<<endl; cin >> ch; cout<<"\n\n\n"<<endl; return ch; } //插入 void studentMessage::Insret(void) { string name; int age; int id; double score[3]; cout<<"請(qǐng)輸入學(xué)生姓名: "; cin>>name; cout<<"請(qǐng)輸入學(xué)生年齡: "; cin>>age; cout<<"請(qǐng)輸入學(xué)生學(xué)號(hào): "; cin>>id; cout<<"下面請(qǐng)輸入學(xué)生三門課程成績(jī): "; cout<<endl; cout<<"請(qǐng)輸入第一門課的成績(jī): ";cin>>score[0]; cout<<"請(qǐng)輸入第二門課的成績(jī): ";cin>>score[1]; cout<<"請(qǐng)輸入第三門課的成績(jī): ";cin>>score[2]; cout<<endl; student *newstu = new student(name,age,id,score); student *p = first; while(p->next != NULL) { p = p->next; } p->next = newstu; newstu->next = null; num++; } void studentMessage::Display(void) { if(num == 0) { cout<<"當(dāng)前記錄中無學(xué)生..."<<endl; } else { student *p = first->next; while(p != null) { cout<<"姓名:"<<p->name<<" "; cout<<"年齡:"<<p->age<<" "; cout<<"學(xué)號(hào):"<<p->id<<" "; cout<<"三門課程成績(jī): "<<p->score[0]<<" "<<p->score[1]<<" "<<p->score[2]<<" "; cout<<"總分:"<<p->total<<" "; cout<<"平均分:"<<p->average<<endl; p = p->next; } } } void studentMessage::Delete(void) { student *p = first; student *pre = first; while(p->next != NULL) { pre = p; p = p->next; } pre->next = NULL; delete p; num--; } void studentMessage::Search(void) { int temp = 0; cout<<"請(qǐng)輸入查找的條件,有如下選項(xiàng)..."<<endl; cout<<"按照學(xué)號(hào)查找(請(qǐng)輸入【1】) 按照姓名查找(請(qǐng)輸入【2】)"<<endl; cin>>temp; switch(temp) { case 1: SearchByid(); break; case 2: SearchByname(); break; default: cout<<"輸入有誤..."<<endl; } } void studentMessage::SearchByid(void) { int _id; int flag = 0; cout<<"請(qǐng)輸入待查找學(xué)生的學(xué)號(hào):"; cin >> _id; student *p = first->next; while(p != null) { if(p->id == _id) { flag = 1; cout<<"下面是查找匹配結(jié)果:"<<endl; cout<<"姓名:"<<p->name<<" "; cout<<"年齡:"<<p->age<<" "; cout<<"學(xué)號(hào):"<<p->id<<" "; cout<<"三門課程成績(jī): "<<p->score[0]<<" "<<p->score[1]<<" "<<p->score[2]<<" "; cout<<"總分:"<<p->total<<" "; cout<<"平均分:"<<p->average<<endl; } p = p->next; } if(flag == 0) { cout<<"抱歉,記錄中沒有查找匹配項(xiàng)..."<<endl; } } void studentMessage::SearchByname(void) { string _name; int flag = 0; cout<<"請(qǐng)輸入待查找的學(xué)生姓名: "; cin >> _name; student *p = first->next; while(p != null) { if(p->name == _name) { flag = 1; cout<<"下面是查找匹配結(jié)果:"<<endl; cout<<"姓名:"<<p->name<<" "; cout<<"年齡:"<<p->age<<" "; cout<<"學(xué)號(hào):"<<p->id<<" "; cout<<"三門課程成績(jī): "<<p->score[0]<<" "<<p->score[1]<<" "<<p->score[2]<<" "; cout<<"總分:"<<p->total<<" "; cout<<"平均分:"<<p->average<<endl; } p = p->next; } if(flag == 0) { cout<<"抱歉,記錄中沒有查找匹配項(xiàng)..."<<endl; } } void studentMessage::Change(void) { string _name; int flag = 0,temp; int _id,_age; int course = 0; cout<<"請(qǐng)輸入需要改動(dòng)信息的學(xué)生的姓名: "; cin >> _name; student *p = first->next; while(p != null) { if(p->name == _name) { flag = 1; cout<<"該學(xué)生當(dāng)前信息如下:"<<endl; cout<<"姓名:"<<p->name<<" "; cout<<"年齡:"<<p->age<<" "; cout<<"學(xué)號(hào):"<<p->id<<" "; cout<<"三門課程成績(jī): "<<p->score[0]<<" "<<p->score[1]<<" "<<p->score[2]<<" "; cout<<"總分:"<<p->total<<" "; cout<<"平均分:"<<p->average<<endl; cout<<"請(qǐng)指明哪一項(xiàng)需要修改..."<<endl; cout<<"修改學(xué)號(hào)(輸入【1】) 修改年齡(輸入【2】)修改成績(jī)(輸入【3】)"<<endl; cin >> temp; switch(temp) { case 1: { cout<<"請(qǐng)輸入新的學(xué)號(hào):";cin>>_id; p->id = _id; } break; case 2: { cout<<"請(qǐng)輸入新的年齡:";cin>>_age; p->age = _age; } break; case 3: { cout<<"請(qǐng)按指示修改課程成績(jī)..."<<endl; cout<<"是否需要修改第一門課程成績(jī)?(需要輸入【1】不需要輸入【0】)"<<endl; cin >> course; if(course == 1) { cout<<"請(qǐng)輸入修改后的第一門課的成績(jī):"; cin >> p->score[0]; } course = 0; cout<<"是否需要修改第二門課程成績(jī)?(需要輸入【1】不需要輸入【0】)"<<endl; cin >> course; if(course == 1) { cout<<"請(qǐng)輸入修改后的第二門課的成績(jī):"; cin >> p->score[1]; } course = 0; cout<<"是否需要修改第三門課程成績(jī)?(需要輸入【1】不需要輸入【0】)"<<endl; cin >> course; if(course == 1) { cout<<"請(qǐng)輸入修改后的第三門課的成績(jī):"; cin >> p->score[2]; } course = 0; p->total = p->score[0]+p->score[1]+p->score[2]; p->average = p->total/3; cout<<"修改后的信息如下: "<<endl; cout<<"姓名:"<<p->name<<" "; cout<<"年齡:"<<p->age<<" "; cout<<"學(xué)號(hào):"<<p->id<<" "; cout<<"三門課程成績(jī): "<<p->score[0]<<" "<<p->score[1]<<" "<<p->score[2]<<" "; cout<<"總分:"<<p->total<<" "; cout<<"平均分:"<<p->average<<endl; } break; default: cout<<"輸入有誤..."<<endl; } } p = p->next; } if(flag == 0) cout<<"當(dāng)前記錄中沒有次學(xué)生..."<<endl; } /*排序我均采用冒泡排序法,均是從小到大排序*/ //按照科目一排序 void studentMessage::sortByLesson1(void) { student *p = first->next; while(p->next != null) { student *q = p->next; while(q != null) { if(p->score[0] > q->score[0]) { p->swap(q); } q = q->next; } p = p->next; } } //按照科目二排序 void studentMessage::sortByLesson2(void) { student *p = first->next; while(p->next != null) { student *q = p->next; while(q != null) { if(p->score[1] > q->score[1]) { p->swap(q); } q = q->next; } p = p->next; } } //按照科目三排序 void studentMessage::sortByLesson3(void) { student *p = first->next; while(p->next != null) { student *q = p->next; while(q != null) { if(p->score[2] > q->score[2]) { p->swap(q); } q = q->next; } p = p->next; } } //按照總成績(jī)排序 void studentMessage::sortByTotal(void) { student *p = first->next; while(p->next != null) { student *q = p->next; while(q != null) { if(p->total > q->total) { p->swap(q); } q = q->next; } p = p->next; } } void studentMessage::clear(void) { student *p = first->next; while(p != null) { first->next = p->next; p->next = null; delete p; p = first->next; } } int main() { studentMessage stulist; int ch; while(ch = stulist.menu()) { switch(ch) { case 1: stulist.Display(); break; case 2: stulist.Insret(); break; case 3: stulist.Search(); break; case 4: stulist.Change(); break; case 5: stulist.Delete(); break; case 6: stulist.clear(); break; default: cout<<"請(qǐng)按要求輸入..."<<endl; } } return 0; }
到此,相信大家對(duì)“用C++實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)最新版”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。