C++實(shí)現(xiàn)學(xué)生選課系統(tǒng)的思路與詳細(xì)過程
一、項(xiàng)目要求
(1)學(xué)生有自己的 ID、姓名 、年級 、選課信息等;
(2)學(xué)生可以進(jìn)行對已選課程的增刪改查;
(3)每個課程有自己的學(xué)分,授課老師等;
二、模塊分析
分析:
我們首要的首要的任務(wù)就是先對模塊進(jìn)行劃分;從項(xiàng)目的要求出發(fā);該系統(tǒng)可以大致分為兩大類;
課程類(用來保存每門課程的信息,例如編號,名稱,學(xué)分,授課教師);
學(xué)生類(用來保存每個學(xué)生的信息;例如編號,名字,性別。年級,分?jǐn)?shù));
對于這兩個類來說;他們擁有相同的一點(diǎn);就是編號和名稱;所以可以脫出一個類用其他兩個類來繼承它;
設(shè)計(jì)思路
首先思考:打造一個火車那就先建造每一節(jié)車廂 ;而車廂就像是一個貨物清單;用c++的類來實(shí)現(xiàn);當(dāng)一個車廂建造出來之后;最后就是用工具將它連接起來;
對項(xiàng)目分析:
(1)首先設(shè)計(jì)兩個火車,一個是課程的;一個是學(xué)生的;
(2)每個火車都有自己的屬性和成員;
(3)學(xué)生火車可以操作課程火車;
類實(shí)現(xiàn):(也就是每一節(jié)車廂的模板)
1)基類(信息類)
目的:保存學(xué)生和課程共有的屬性也就是,編號和名稱;
class info { protected: long number;//編號 string name;//名稱 public: info() {} info(long num, string name) :number(num), name(name) {} };
2)課程類;(公有繼承信息類)
class course : public info//課程類 { private: int credit;//學(xué)分 string teachername;//授課教師 public: course() {} course(long num, string name, int cre, string tea) : info(num, name) { credit = cre; teachername = tea; } course(const course& c1) { number = c1.number; name = c1.name; credit = c1.credit; teachername = c1.teachername; } static void print();//輸出數(shù)據(jù) static void get();//獲取數(shù)據(jù) static void add();//增加數(shù)據(jù) static void del();//刪除數(shù)據(jù) static void edit();//修改數(shù)據(jù) static int ishave(long si);//查詢是否有該課程 };
3)學(xué)生類(公有繼承信息類)
class student : public info//學(xué)生類 { private: string sex;//性別 string grade;//年級 long scredit; public: vector<course> havec;//查詢學(xué)生選課信息 student() {} student(long num, string name, string se, string gra, long scr) : info(num, name) { sex = se; grade = gra; scredit = scr; } static void print();//輸出數(shù)據(jù) static void get();//獲取數(shù)據(jù) static void add();//增加數(shù)據(jù) static void del();//刪除數(shù)據(jù) static void edit();//修改數(shù)據(jù) static int ishave(long si);//查詢是否有該學(xué)生 static void addcourse();// 為學(xué)生添加課程 static void delcourse();//為學(xué)生刪除課程 static int ishavec(long si);//查詢該學(xué)生是否有該課程 };
函數(shù)實(shí)現(xiàn)
1) void print();向屏幕輸出課程信息
void course::print() { system("cls"); for (int i = 0; i < c.size(); i++) { cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl; cout << endl << "課程編號:" << c[i].number << " 課程名稱:" << c[i].name << " 課程學(xué)分:" \ << c[i].credit << " 授課老師:" << c[i].teachername << endl; } cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl; cprintorget(); }
2)void get();指定課程的信息,用課程編號獲取
void course::get()//獲得課程信息 { system("cls"); long k = 1, kk; cout << "*************請輸入要查詢的課程編號**************" << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < c.size(); i++) if (c[i].number == kk) { cout << endl << "課程編號:" << c[i].number << " 課程名稱:" << c[i].name << " 課程學(xué)分:" \ << c[i].credit << " 授課老師:" << c[i].teachername << endl; break; } } else { cout << "*************沒有該課程******************" << endl; } cprintorget(); }
3)void add();增加一個課程的信息
void course::add() { system("cls"); long k = 1; course c1; cout << "$ 請輸入要添加的課程編號: $" << endl; cin >> c1.number; while (ishave(c1.number)) { system("cls"); cout << "***************************************" <<endl; cout << " 該課程已添加,請重新輸入: " << endl; cout << " (按0退出) " << endl; cout << "***************************************" << endl; cin >> k; if (k == 0) { cinfo(); break; } else c1.number = k; } if (k != 0) { cout << "$ 請輸入課程名稱: &" << endl; cin >> c1.name; cout << "****************************************" << endl; cout << " 請輸入課程學(xué)分: " << endl; cout << "****************************************" << endl; cin >> c1.credit; cout << "****************************************" << endl; cout << " 請輸入授課老師名稱: " << endl; cout << "****************************************" << endl; cin >> c1.teachername; system("cls"); c.push_back(c1); cinfo(); } }
4)void del() ; 刪除某個課程信息(老師)
void course::del()//老師刪除課程信息 { system("cls"); long k = 1, kk; cout << "***************請輸入要刪除的課程編號****************" << endl; cin >> kk; if (ishave(kk)) { for (auto p = c.begin(); p != c.end();) { if (p->number == kk) { p = c.erase(p); break; } else ++p; } cout << "***************成功刪除該課程********************" << endl; } else { cout << "****************你還沒有添加該課程****************" << endl; } }
5)void edit();修改課程信息(老師)
void course::edit()//老師修改課程信息 { system("cls"); long k = 1, kk; cout << " 請輸入要修改課程的課程編號: " << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < c.size(); i++) { if (c[i].number == kk) { system("cls"); cout << " 請重新輸入課程名稱: " << endl; cin >> c[i].name; cout << " 請重新輸入課程學(xué)分: " << endl; cin >> c[i].credit; cout << " 請重新輸入授課老師名稱: " << endl; cin >> c[i].teachername; cout << " 修改成功。 " << endl; break; } } } else { cout << " 沒有該課程 。 " << endl; } }
6)void ishave(long si);查詢是否有該課程
int course::ishave(long si)//查詢是否有該課程 { for (size_t i = 0; i < c.size(); i++) if (c[i].number == si) return true; return false; }
7)void print();打印學(xué)生的信息
void student::print()//打印所有學(xué)生信息 { long sumk = 0; system("cls"); for (int i = 0; i < s.size(); i++) { sumk = 0; cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl; cout << endl << "學(xué)生學(xué)號:" << s[i].number << " 姓名:" << s[i].name << " 性別:" \ << s[i].sex << " 年級:" << s[i].grade << endl << endl\ << "學(xué)生已選課程:" << endl; if (s[i].havec.size() == 0) { cout << "無" << endl; continue; } else { for (int k = 0; k < s[i].havec.size(); k++) { cout << endl << "課程編號:" << s[i].havec[k].number << " 課程名稱:" << s[i].havec[k].name << " 課程學(xué)分:" \ << s[i].havec[k].credit << " 授課老師:" << s[i].havec[k].teachername << endl; sumk = sumk + s[i].havec[k].credit; } cout << endl << "該學(xué)生本學(xué)期共有" << s[i].scredit << "學(xué)分,已選" << s[i].havec.size() << "門,共" << sumk << "學(xué)分。" << endl; } }cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl; sprintorget(); }
8)void get();獲取學(xué)生的信息
void student::get()//獲取學(xué)生信息 { system("cls"); long k = 1, kk, sumk = 0; cout << " 請輸入要查詢的學(xué)生學(xué)號: " << endl; cin >> kk; system("cls"); if (ishave(kk)) { for (size_t i = 0; i < s.size(); i++) if (s[i].number == kk) { cout << "************************************************** << endl; cout << endl << "學(xué)生學(xué)號:" << s[i].number << " 姓名:" << s[i].name << " 性別:" \ << s[i].sex << " 年級:" << s[i].grade << endl << endl\ << "學(xué)生已選課程:" << endl; if (s[i].havec.size() == 0) { cout << "無" << endl; continue; } else { for (int k = 0; k < s[i].havec.size(); k++) { cout << endl << "課程編號:" << s[i].havec[k].number << " 課程名稱:" << s[i].havec[k].name << " 課程學(xué)分:" \ << s[i].havec[k].credit << " 授課老師:" << s[i].havec[k].teachername << endl; sumk = sumk + s[i].havec[k].credit; } cout << endl << "該學(xué)生本學(xué)期共有" << s[i].scredit << "學(xué)分,已選" << s[i].havec.size() << "門,共" << sumk << "學(xué)分。" << endl; cout << "************************************************" << endl; } } } else { cout << " 沒有該學(xué)生。 " << endl; } sprintorget(); }
9)void add();添加學(xué)生的信息
void student::add()//添加學(xué)生信息 { system("cls"); long k = 1; student s1; cout << " 請輸入要添加的學(xué)生學(xué)號: " << endl; cin >> s1.number; while (ishave(s1.number)) { system("cls"); cout << " 該學(xué)生已添加,請重新輸入: " << endl; cout << " (按0退出) " << endl; cin >> k; if (k == 0) { sinfo(); break; } else s1.number = k; } if (k != 0) { cout << " 請輸入學(xué)生姓名: " << endl; cin >> s1.name; cout << " 請輸入學(xué)生性別: " << endl; cin >> s1.sex; cout << " 請輸入學(xué)生年級: " << endl; cin >> s1.grade; system("cls"); s.push_back(s1); sinfo(); } }
效果展示
源代碼:
#if 1 #include <iostream> #include<string.h> #include <windows.h> #include <vector> #include<algorithm> #include <string> using namespace std; using std::vector; int Menu(); void cinfo(); void cprintorget(); void sinfo(); void sprintorget(); char password[16] = "1234"; class info//信息類 { protected: long number;//編號 string name;//名稱 public: info() {} info(long num, string name) :number(num), name(name) {} }; class course : public info//課程類 { protected: int credit;//學(xué)分 string teachername;//授課教師 public: course() {} course(long num, string name, int cre, string tea) : info(num, name) { credit = cre; teachername = tea; } course(const course& c1) { number = c1.number; name = c1.name; credit = c1.credit; teachername = c1.teachername; } static void print();//輸出數(shù)據(jù) static void get();//獲取數(shù)據(jù) static void add();//增加數(shù)據(jù) static void del();//刪除數(shù)據(jù) static void edit();//修改數(shù)據(jù) static int ishave(long si);//查詢是否有該課程 friend class student; }; vector<course> c; class student : public info//學(xué)生類 { protected: string sex;//性別 string grade;//年級 long scredit; public: vector<course> havec;//查詢學(xué)生選課信息 student() {} student(long num, string name, string se, string gra, long scr) : info(num, name) { sex = se; grade = gra; scredit = scr; } static void print();//輸出數(shù)據(jù) static void get();//獲取數(shù)據(jù) static void add();//增加數(shù)據(jù) static void del();//刪除數(shù)據(jù) static void edit();//修改數(shù)據(jù) static int ishave(long si);//查詢是否有該學(xué)生 static void addcourse();// 為學(xué)生添加課程 static void delcourse();//為學(xué)生刪除課程 static int ishavec(long si);//查詢該學(xué)生是否有該課程 }; vector<student> s; void course::print()//打印所以課程信息 { system("cls"); for (int i = 0; i < c.size(); i++) { cout << endl << "課程編號:" << c[i].number << " 課程名稱:" << c[i].name << " 課程學(xué)分:" \ << c[i].credit << " 授課老師:" << c[i].teachername << endl; } cprintorget(); } void course::get()//獲得課程信息 { system("cls"); long k = 1, kk; cout << " 請輸入要查詢的課程編號: " << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < c.size(); i++) if (c[i].number == kk) { cout << endl << "課程編號:" << c[i].number << " 課程名稱:" << c[i].name << " 課程學(xué)分:" \ << c[i].credit << " 授課老師:" << c[i].teachername << endl; break; } } else { cout << " 沒有該課程 。 " << endl; } cprintorget(); } void course::add() { system("cls"); long k = 1; course c1; cout << " 請輸入要添加的課程編號: " << endl; cin >> c1.number; while (ishave(c1.number)) { system("cls"); cout << "┃ 該課程已添加,請重新輸入: ┃" << endl; cout << "┃ (按0退出) ┃" << endl; cin >> k; if (k == 0) { cinfo(); break; } else c1.number = k; } if (k != 0) { cout << " 請輸入課程名稱: " << endl; cin >> c1.name; cout << " 請輸入課程學(xué)分: " << endl; cin >> c1.credit; cout << " 請輸入授課老師名稱: " << endl; cin >> c1.teachername; system("cls"); c.push_back(c1); cinfo(); } } void course::del()//老師刪除課程信息 { system("cls"); long k = 1, kk; cout << " 請輸入要刪除的課程編號: " << endl; cin >> kk; if (ishave(kk)) { for (auto p = c.begin(); p != c.end();) { if (p->number == kk) { p = c.erase(p); break; } else ++p; } cout << " 成功刪除該課程。 " << endl; } else { cout << " 你還沒有添加該課程 。 " << endl; } } void course::edit()//老師修改課程信息 { system("cls"); long k = 1, kk; cout << " 請輸入要修改課程的課程編號: " << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < c.size(); i++) { if (c[i].number == kk) { system("cls"); cout << " 請重新輸入課程名稱: " << endl; cin >> c[i].name; cout << " 請重新輸入課程學(xué)分: " << endl; cin >> c[i].credit; cout << " 請重新輸入授課老師名稱: " << endl; cin >> c[i].teachername; cout << " 修改成功。 " << endl; break; } } } else { cout << " 沒有該課程 。 " << endl; } } int course::ishave(long si)//查詢是否有該課程 { for (size_t i = 0; i < c.size(); i++) if (c[i].number == si) return true; return false; } void student::print()//打印所有學(xué)生信息 { long sumk = 0; system("cls"); for (int i = 0; i < s.size(); i++) { sumk = 0; cout << endl << "學(xué)生學(xué)號:" << s[i].number << " 姓名:" << s[i].name << " 性別:" \ << s[i].sex << " 年級:" << s[i].grade << endl << endl\ << "學(xué)生已選課程:" << endl; if (s[i].havec.size() == 0) { cout << "無" << endl; continue; } else { for (int k = 0; k < s[i].havec.size(); k++) { cout << endl << "課程編號:" << s[i].havec[k].number << " 課程名稱:" << s[i].havec[k].name << " 課程學(xué)分:" \ << s[i].havec[k].credit << " 授課老師:" << s[i].havec[k].teachername << endl; sumk = sumk + s[i].havec[k].credit; } cout << endl << "該學(xué)生本學(xué)期共有" << s[i].scredit << "學(xué)分,已選" << s[i].havec.size() << "門,共" << sumk << "學(xué)分。" << endl; } } sprintorget(); } void student::get()//獲取學(xué)生信息 { system("cls"); long k = 1, kk, sumk = 0; cout << " 請輸入要查詢的學(xué)生學(xué)號: " << endl; cin >> kk; system("cls"); if (ishave(kk)) { for (size_t i = 0; i < s.size(); i++) if (s[i].number == kk) { cout << endl << "學(xué)生學(xué)號:" << s[i].number << " 姓名:" << s[i].name << " 性別:" \ << s[i].sex << " 年級:" << s[i].grade << endl << endl\ << "學(xué)生已選課程:" << endl; if (s[i].havec.size() == 0) { cout << "無" << endl; continue; } else { for (int k = 0; k < s[i].havec.size(); k++) { cout << endl << "課程編號:" << s[i].havec[k].number << " 課程名稱:" << s[i].havec[k].name << " 課程學(xué)分:" \ << s[i].havec[k].credit << " 授課老師:" << s[i].havec[k].teachername << endl; sumk = sumk + s[i].havec[k].credit; } cout << endl << "該學(xué)生本學(xué)期共有" << s[i].scredit << "學(xué)分,已選" << s[i].havec.size() << "門,共" << sumk << "學(xué)分。" << endl; } } } else { cout << " 沒有該學(xué)生。 " << endl; } sprintorget(); } void student::add()//添加學(xué)生信息 { system("cls"); long k = 1; student s1; cout << " 請輸入要添加的學(xué)生學(xué)號: " << endl; cin >> s1.number; while (ishave(s1.number)) { system("cls"); cout << "┃ 該學(xué)生已添加,請重新輸入: ┃" << endl; cout << "┃ (按0退出) ┃" << endl; cin >> k; if (k == 0) { sinfo(); break; } else s1.number = k; } if (k != 0) { cout << " 請輸入學(xué)生姓名: " << endl; cin >> s1.name; cout << " 請輸入學(xué)生性別: " << endl; cin >> s1.sex; cout << " 請輸入學(xué)生年級: " << endl; cin >> s1.grade; system("cls"); s.push_back(s1); sinfo(); } } void student::del() //刪除學(xué)生信息 { system("cls"); long k = 1, kk; cout << " 請輸入要刪除的學(xué)生學(xué)號: " << endl; cin >> kk; if (ishave(kk)) { for (auto p = s.begin(); p != s.end();) { if (p->number == kk) { p = s.erase(p); break; } else ++p; } cout << " 成功刪除該學(xué)生: " << endl; } else { cout << " 你還沒有添加該學(xué)生 。 " << endl; } } void student::edit()//修改學(xué)生信息 { system("cls"); long k = 1, kk; cout << " 請輸入要修改學(xué)生的學(xué)號: " << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < s.size(); i++) { if (s[i].number == kk) { system("cls"); cout << " 請重新輸入學(xué)生姓名: " << endl; cin >> s[i].name; cout << " 請重新輸入學(xué)生性別: " << endl; cin >> s[i].sex; cout << " 請重新輸入學(xué)生年級: " << endl; cin >> s[i].grade; cout << " 修改成功。 " << endl; break; } } } else { cout << " 沒有該學(xué)生。 " << endl; } } void student::addcourse()//添加課程 { system("cls"); long k = 1, kk, sumk = 0, sk; cout << " 請輸入學(xué)生的學(xué)號: " << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < s.size(); i++) { if (s[i].number == kk) { cout << endl << "學(xué)生學(xué)號:" << s[i].number << " 姓名:" << s[i].name << " 性別:" \ << s[i].sex << " 年級:" << s[i].grade << endl << endl\ << "學(xué)生已選課程:" << endl; if (s[i].havec.size() == 0) { cout << "無" << endl; } else { for (int k = 0; k < s[i].havec.size(); k++) { cout << endl << "課程編號:" << s[i].havec[k].number << " 課程名稱:" << s[i].havec[k].name << " 課程學(xué)分:" \ << s[i].havec[k].credit << " 授課老師:" << s[i].havec[k].teachername << endl; sumk = sumk + s[i].havec[k].credit; } cout << endl << "該學(xué)生本學(xué)期共有" << s[i].scredit << "學(xué)分,已選" << s[i].havec.size() << "門,共" << sumk << "學(xué)分。" << endl; } cout << " 請輸入要添加的課程: " << endl; cin >> sk; for (size_t k = 0; k < s[i].havec.size(); k++) if (s[i].havec[k].number == sk) { cout << " 已有該課程,無法添加。 " << endl; } else { if (course::ishave(sk)) { course c1; for (size_t jk = 0; jk < c.size(); jk++) { if (c[jk].number == sk) { c1.number = c[jk].number; c1.name = c[jk].name; c1.credit = c[jk].credit; c1.teachername = c[jk].teachername; } } sumk = sumk + c1.credit; if (sumk > s[i].scredit) { cout << "┃ 學(xué)分不足,無法添加。 ┃" << endl; } else { s[i].havec.push_back(c1); cout << "┃ 添加成功。 ┃" << endl; break; } } else { cout << "┃ 系統(tǒng)內(nèi)沒有該課程 。 ┃" << endl; } } } } } else { cout << " 沒有該學(xué)生。 " << endl; } } void student::delcourse()//刪除課程 { system("cls"); long k = 1, kk, sumk = 0, sk; cout << " 請輸入學(xué)生的學(xué)號: " << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < s.size(); i++) { if (s[i].number == kk) { cout << endl << "學(xué)生學(xué)號:" << s[i].number << " 姓名:" << s[i].name << " 性別:" \ << s[i].sex << " 年級:" << s[i].grade << endl << endl\ << "學(xué)生已選課程:" << endl; if (s[i].havec.size() == 0) { cout << "無" << endl; continue; } else { for (int k = 0; k < s[i].havec.size(); k++) { cout << endl << "課程編號:" << s[i].havec[k].number << " 課程名稱:" << s[i].havec[k].name << " 課程學(xué)分:" \ << s[i].havec[k].credit << " 授課老師:" << s[i].havec[k].teachername << endl; sumk = sumk + s[i].havec[k].credit; } cout << endl << "該學(xué)生本學(xué)期共有" << s[i].scredit << "學(xué)分,已選" << s[i].havec.size() << "門,共" << sumk << "學(xué)分。" << endl; } cout << " 請輸入要刪除的課程: " << endl; cin >> sk; for (auto p = s[i].havec.begin(); p != s[i].havec.end();) { if (p->number == sk) { p = s[i].havec.erase(p); break; } else ++p; } cout << " 刪除成功。 " << endl; } } } else { cout << " 沒有該學(xué)生。 " << endl; } } int student::ishave(long si) { for (size_t i = 0; i < s.size(); i++) if (s[i].number == si) return true; return false; } void cprintorget()//查詢或展示課程信息 { cout << endl; cout << " **學(xué)生選課信息管理系統(tǒng)** " << endl; cout << " ┏━━━━━━━━━━━━━━━━━━━━━┓ " << endl; cout << " ┃ 請選擇功能: ┃ " << endl; cout << " ┃ 1.查詢課程信息 ┃ " << endl; cout << " ┃ 2.展示課程信息 ┃ " << endl; cout << " ┃ 3.回到上一頁 ┃ " << endl; cout << " ┗━━━━━━━━━━━━━━━━━━━━━┛ " << endl; cout << " 請輸入序號(1~3)進(jìn)入系統(tǒng)操作: " << endl; cout << endl; int ii, k = 1; cin >> ii; while (k) { if (ii > 3 || ii < 1) { cout << "輸入錯誤,請重新輸入數(shù)字1~3。" << endl; cin >> ii; } else k = 0; } system("cls"); switch (ii) { case 1: course::get(); break; case 2: course::print(); break; case 3:cinfo(); break; } } void cinfo()//學(xué)生選課信息 { system("cls"); cout << endl; cout << " **學(xué)生選課信息管理系統(tǒng)** " << endl; cout << " ┏━━━━━━━━━━━━━━━━━━━━━┓ " << endl; cout << " ┃ 請選擇功能: ┃ " << endl; cout << " ┃ 1.查詢課程信息 ┃ " << endl; cout << " ┃ 2.錄入課程信息 ┃ " << endl; cout << " ┃ 3.刪除課程信息 ┃ " << endl; cout << " ┃ 4.修改課程信息 ┃ " << endl; cout << " ┃ 5.回到主菜單 ┃ " << endl; cout << " ┗━━━━━━━━━━━━━━━━━━━━━┛ " << endl; cout << " 請輸入序號(1~5)進(jìn)入系統(tǒng)操作: " << endl; cout << endl; int ii, k = 1; cin >> ii; while (k) { if (ii > 5 || ii < 1) { cout << "輸入錯誤,請重新輸入數(shù)字1~5。" << endl; cin >> ii; } else k = 0; } system("cls"); switch (ii) { case 1: cprintorget(); break; case 2:course::add(); break; case 3:course::del(); break; case 4:course::edit(); break; case 5:Menu(); break; } } void sprintorget()//查詢或展示學(xué)生信息 { cout << endl; cout << " **學(xué)生選課信息管理系統(tǒng)** " << endl; cout << " ┏━━━━━━━━━━━━━━━━━━━━━┓ " << endl; cout << " ┃ 請選擇功能: ┃ " << endl; cout << " ┃ 1.查詢學(xué)生信息 ┃ " << endl; cout << " ┃ 2.展示學(xué)生信息 ┃ " << endl; cout << " ┃ 3.回到上一頁 ┃ " << endl; cout << " ┗━━━━━━━━━━━━━━━━━━━━━┛ " << endl; cout << " 請輸入序號(1~3)進(jìn)入系統(tǒng)操作: " << endl; cout << endl; int ii, k = 1; cin >> ii; while (k) { if (ii > 3 || ii < 1) { cout << "輸入錯誤,請重新輸入數(shù)字1~3。" << endl; cin >> ii; } else k = 0; } system("cls"); switch (ii) { case 1: student::get(); break; case 2: student::print(); break; case 3:sinfo(); break; } } void sinfo() { system("cls"); cout << endl; cout << " **學(xué)生選課信息管理系統(tǒng)** " << endl; cout << " ┏━━━━━━━━━━━━━━━━━━━━━┓ " << 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.為學(xué)生刪除課程 ┃ " << endl; cout << " ┃ 7.回到主菜單 ┃ " << endl; cout << " ┗━━━━━━━━━━━━━━━━━━━━━┛ " << endl; cout << " 請輸入序號(1~7)進(jìn)入系統(tǒng)操作: " << endl; cout << endl; int ii, k = 1; cin >> ii; while (k) { if (ii > 7 || ii < 1) { cout << "輸入錯誤,請重新輸入數(shù)字1~7。" << endl; cin >> ii; } else k = 0; } system("cls"); switch (ii) { case 1: sprintorget(); break; case 2:student::add(); break; case 3:student::del(); break; case 4:student::edit(); break; case 5:student::addcourse(); break; case 6:student::delcourse(); break; case 7:Menu(); break; } } void login()//登錄界面 { cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl; cout << "┃ ┃" << endl; cout << "┃歡迎您使用學(xué)生選課信息管理系統(tǒng)管理端!┃" << endl; cout << "┃ ┃" << endl; cout << "┃ 請輸入密碼:(默認(rèn)密碼:1234) ┃" << endl; cout << "┃ ┃" << endl; cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" << endl; int k = 0; char input[16]; cin >> input; while (strcmp(password, input) != 0) { cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl; cout << "┃ ┃" << endl; cout << "┃ 密碼錯誤,請重新輸入。 ┃" << endl; cout << "┃ ┃" << endl; cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" << endl; cin >> input; k++; if (k > 3) { cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl; cout << "┃ ┃" << endl; cout << "┃ 輸入錯誤超過5次,暫停操作5秒。 ┃" << endl; cout << "┃ ┃" << endl; cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" << endl; Sleep(5000); k = 0; system("cls"); cout << " 請重新輸入。 " << endl; cin >> input; } } if (strcmp(password, input) == 0) { system("cls"); cout << " 登錄成功,歡迎您 ! " << endl; } } void changepassword()//修改密碼 { int kk = 1; char p1[16], p2[16]; while (kk) { system("cls"); cout << " 請輸入新密碼: " << endl; cin >> p1; cout << " 請重新輸入密碼: " << endl; cin >> p2; if (strcmp(p1, p2) != 0) { cout << " 兩次輸入的密碼不一致 ,請重新輸入。 " << endl; } else { system("cls"); cout << " 更改密碼成功,請重新登錄。 " << endl; strcpy_s(password, p1); kk = 0; login(); } } } int Menu()//菜單 { while (1) { cout << endl; cout << " **學(xué)生選課信息管理系統(tǒng)** " << endl; cout << " ┏━━━━━━━━━━━━━━━━━━━━━┓ " << endl; cout << " ┃ 請選擇功能: ┃ " << endl; cout << " ┃ 1.課程信息管理 ┃ " << endl; cout << " ┃ 2.學(xué)生信息管理 ┃ " << endl; cout << " ┃ 3.修改密碼 ┃ " << endl; cout << " ┃ 4.注銷 ┃ " << endl; cout << " ┃ 5.退出系統(tǒng) ┃ " << endl; cout << " ┗━━━━━━━━━━━━━━━━━━━━━┛ " << endl; cout << " 請輸入序號(1~5)進(jìn)入系統(tǒng)操作: " << endl; cout << endl; int ii, k = 1; cin >> ii; while (k) { if (ii > 5 || ii < 1) { cout << "輸入錯誤,請重新輸入數(shù)字1~5。" << endl; cin >> ii; } else k = 0; } switch (ii) { case 1: cinfo(); break; case 2: sinfo(); break; case 3: { changepassword(); login(); break; } case 4: { system("cls"); cout << "┃ 注銷成功,請重新登錄。 ┃" << endl; login(); } break; case 5: return 0; break; } } } //*****************************************************// int main() { return 0; } #endif
總結(jié)
到此這篇關(guān)于C++實(shí)現(xiàn)學(xué)生選課系統(tǒng)的思路與詳細(xì)過程的文章就介紹到這了,更多相關(guān)C++學(xué)生選課系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ clock()解析如何使用時鐘計(jì)時的應(yīng)用
本篇文章是對c++中的clock()函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06