<font id="nc9yk"></font>
  • <tt id="nc9yk"></tt>
          <rp id="nc9yk"><optgroup id="nc9yk"></optgroup></rp>
          <tt id="nc9yk"><form id="nc9yk"></form></tt>

            <cite id="nc9yk"></cite>

            學生成績管理系統C++實現代碼

             更新時間:2020年12月29日 11:44:11   作者:劉江波2011  
            這篇文章主要為大家詳細介紹了學生成績管理系統C++實現代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

            本文實例為大家分享了C++學生成績管理系統的具體代碼,供大家參考,具體內容如下

            * (程序頭部注釋開始)
            * 程序的版權和版本聲明部分
            * Copyright (c) 2011, 煙臺大學計算機學院學生
            * All rights reserved.
            * 文件名稱: 《C++編寫 學生成績管理系統》
            * 作 者: 劉江波
            * 完成日期: 2012 年 6 月 26 日
            * 版 本 號: v.626

            * 對任務及求解方法的描述部分
            * 問題描述:

            用C++編寫一個學生成績管理系統

            1、可以實現以下功能:

            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加學生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.顯示學生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序統計成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找學生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.刪除學生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改學生信息 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
            cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系統 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;

            2、用鏈表存儲信息

            * 程序頭部的注釋結束
            */
            
            # include <iostream>
            # include <fstream>
            # include <string.h>
            #include <conio.h>//用getch();
            using namespace std;
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            class Student
            {
            public:
             char name[20];
             char Id[20];
             int Cnum;  //C++課程得分
             int Mnum;  //匯編課程得分
             int Enum;  //嵌入式操作系統課程得分
             int sum;  //總分  
             Student * Next;
             void Input()
             {
             cout<<"\t\t請輸入學生的姓名:"; cin>>name;
             cout<<"\t\t請輸入學生的學號:"; cin>>Id;
             cout<<"\t\t請輸入C++課程的成績:"; cin>>Cnum;
             cout<<"\t\t請輸入匯編課程的成績:"; cin>>Mnum;
             cout<<"\t\t請輸入嵌入式操作系統課程的成績:"; cin>>Enum;
             sum=Cnum+Mnum+Enum;
             }
             void ReadFile(istream & in)
             {
             in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;
             }
             void Show()
             {
             cout<<"姓名:"<<name<<endl<<"學號:"<<Id<<endl<<"C++:"<<Cnum<<endl
             <<"匯編:"<<Mnum<<endl<<"嵌入式操作系統:"<<Enum<<endl<<"總成績:"<<sum<<endl<<endl<<endl;
             }
            };
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            class Studentmassage
            {
            public:
             Studentmassage();
             ~Studentmassage();
             void ShowMenu();
             void Find();
             void Save();
             void ModifyItem();
             void RemoveItem();
             void Swap(Student *,Student *);
             void Sort();
             //void Unpass();
             int ListCount();
             //void Average();
             void Display()
             {
             for(Student * p=Head->Next;p!=End;p=p->Next)
             p->Show();
             cout<<"輸入任意字符!繼續……";
             getch();
             }
             void AddItem()
             {
             End->Input();
             End->Next=new Student;
             End=End->Next;
             cout<<"添加成功!"<<endl;
             cout<<"輸入任意字符!繼續……";
             getch();
             }
            private:
             Student * Head,* End;
             ifstream in;
             ofstream out;
             Student *FindItem(char * name)
             {
             for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一個指針,不成功就返回空
             if(!strcmp(p->Next->name,name))return p;
             return NULL;
             }
             Student *FindID(char * Id)
             {
             for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一個指針,不成功就返回空
             if(!strcmp(p->Next->Id,Id))return p;
             return NULL;
             }
            };
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌構造函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            Studentmassage::Studentmassage()
            {
             Head=new Student;
             Head->Next=new Student;
             End=Head->Next;
             in.open("sort.txt");
             if(!in)
             cout<<"這是一個新系統,無學生信息。請先輸入。"<<endl;
             else
             {
             while(!in.eof())
             {
             End->ReadFile(in);
             if(End->name[0]=='\0')break;
             End->Next=new Student;
             End=End->Next;
             }
             in.close();
             cout<<"\t\t讀取學生信息成功!"<<endl;
             }
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析構函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            Studentmassage::~Studentmassage()
            {
             Save();
             for(Student * temp;Head->Next!=End;)
             {
             temp=Head->Next;
             Head->Next=Head->Next->Next;
             delete temp;
             }
             delete Head,End;
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜單﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::ShowMenu()     
            {
             cout<<"********************************************************************************"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 學 生 成 績 管 理 系 統  ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓★★★★★   ★★★★★★★   ★★★★★〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   1.增加學生成績  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   2.顯示學生成績  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   3.排序統計成績  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   4.查找學生成績  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   5.刪除學生成績  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   6.修改學生信息  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             cout<<"〓〓〓〓〓〓〓〓〓★ ☆   0.安全退出系統  ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
             
             cout<<"\n\t\t\n\t\t請選擇:";
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::Find()
            {
             char name[20] ,Id[10];
             int x;
             Student * p=NULL;
             cout<<"\n\t\t*********************************\n";
             cout<<"\t\t※ 1.按學生的姓名查找\n\t\t※ 2.按學生學號查找";
             cout<<"\n\t\t*********************************\n請選擇:";
             cin>>x;
             switch(x)
             {
             case 1:{cout<<"\t\t請輸入要查找的學生的姓名:";cin>>name;
             if(p=FindItem(name))
             {
             p->Next->Show();
             cout<<"輸入任意字符!繼續……";
             getch();
             }
             else
             {
             cout<<"\t\t沒有找到該姓名的學生!"<<'\n'<<endl;
             cout<<"輸入任意字符!繼續……";
             getch();
             }
              }break;
             case 2:
             {
             cout<<"\t\t請輸入要查找的學生的學號:";cin>>Id;
             if(p=FindID(Id))
             {
             p->Next->Show();
             cout<<"輸入任意字符!繼續……";
             getch();
             }
             else
             {
             cout<<"\t\t沒有找到該學好的學生!"<<'\n'<<endl;
             cout<<"輸入任意字符!繼續……";
             getch();
             }
             }break;
             }
             
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::ModifyItem()  //修改信息
            {
             char name[20];
             Student * p=NULL;
             cout<<"\t\t請輸入要修改的人的姓名:";cin>>name;
             if(p=FindItem(name))
             {
             cout<<"\t\t已找到學生的信息,請輸入新的信息!"<<endl;
             p->Next->Input();
             cout<<"修改成功!"<<endl;
             cout<<"輸入任意字符!繼續……";
             getch();
             }
             else
             {
             cout<<"\t\t沒有找到!"<<endl;
             cout<<"輸入任意字符!繼續……";
             getch();
             }
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌刪除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::RemoveItem()   // 刪除信息
            {
             char name[20];
             Student * p=NULL,*temp=NULL;
             cout<<"\t\t請輸入要刪除的學生的姓名:"<<endl;cin>>name;
             if(p=FindItem(name))
             {
             temp=p->Next;
             p->Next=p->Next->Next; 
             delete temp;
             cout<<"\t\t刪除成功!"<<endl;
             cout<<"輸入任意字符!繼續……";
             getch();
             }
             else
             {
             cout<<"\t\t沒有找到!"<<endl;
              cout<<"輸入任意字符!繼續……";
             getch();
             }
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::Swap(Student *p1, Student *p2)//交換兩個combox變量的數據域
            {
             Student *temp=new Student; 
             strcpy(temp->name,p1->name);
             strcpy(temp->Id,p1->Id);
             temp->Cnum=p1->Cnum;
             temp->Mnum=p1->Mnum;
             temp->Enum=p1->Enum;
             temp->sum=p1->sum;
             
             strcpy(p1->name,p2->name);
             strcpy(p1->Id,p2->Id);
             p1->Cnum=p2->Cnum;
             p1->Mnum=p2->Mnum;
             p1->Enum=p2->Enum;
             p1->sum=p2->sum;
             
             strcpy(p2->name,temp->name);
             strcpy(p2->Id,temp->Id);
             p2->Cnum=temp->Cnum;
             p2->Mnum=temp->Mnum;
             p2->Enum=temp->Enum;
             p2->sum=temp->sum;
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            int Studentmassage::ListCount()//統計當前鏈表的記錄總數,返回一個整數
            {
             if(! Head)
             return 0;
             int n=0;
             for(Student * p=Head->Next;p!=End;p=p->Next)
             {
             n++;
             }
             return n;
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::Sort()//對當前鏈表進行排序
            { 
             cout <<"Sorting..."<<endl;
             Student *p=NULL,*p1=NULL,*k=NULL;
             int n=Studentmassage::ListCount();
             if(n<2) 
             return;
             for(p=Head->Next;p!=End;p=p->Next)
             for(k=p->Next;k!=End;k=k->Next)
             {
             if(p->sum>k->sum)
             {
             Studentmassage::Swap(p,k);
             }
             }
             cout <<"排序完成!"<<endl;
             getch();
             return;
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            void Studentmassage::Save()
            {
             out.open("sort.txt");
             for(Student *p=Head->Next;p!=End;p=p->Next)
             out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"\t"
             <<p->Mnum<<"\t"<<p->Enum<<"\t"<<p->sum<<'\n';
             out.close();
            }
             
            //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
            int main()
            {
             int x,i=0;
             bool quit=false;
             cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
             for(i=0;i<3;i++)
             cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;
             cout<<"\t\t◎★★★★【 歡迎進入學生成績管理系統 】★★★★◎"<<endl;
             for(i=0;i<3;i++)
             cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;
             cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl;;
             Studentmassage Grade;
             cout<<"按任意鍵開始……";
             getch();
             while(!quit)
             {
             system("cls");
             Grade.ShowMenu();
             cin>>x;
             switch(x)
             {
             case 0:quit=true;break;
             case 1:Grade.AddItem();break;
             case 2:Grade.Display();break;
             case 3:Grade.Sort();break;
             case 4:Grade.Find();break;
             case 5:Grade.RemoveItem();break;
             case 6:Grade.ModifyItem();break;
             }
             }
             return 0;
            }

            以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

            相關文章

            • C語言去除相鄰重復字符函數的實現方法

              C語言去除相鄰重復字符函數的實現方法

              這篇文章主要介紹了C語言去除相鄰重復字符函數的實現方法的相關資料,實現去重字符串相鄰重復的字符,不相鄰的不用去重的功能,需要的朋友可以參考下
              2017-08-08
            • C++火車入軌算法的實現代碼

              C++火車入軌算法的實現代碼

              這篇文章主要介紹了C++火車入軌算法的實現代碼,有需要的朋友可以參考一下
              2013-12-12
            • C++中fstream,ifstream及ofstream用法淺析

              C++中fstream,ifstream及ofstream用法淺析

              這篇文章主要介紹了C++中fstream,ifstream及ofstream用法,適合C++初學者學習文件流的操作,需要的朋友可以參考下
              2014-08-08
            • Opencv 視頻轉為圖像序列的實現

              Opencv 視頻轉為圖像序列的實現

              今天小編就為大家分享一篇Opencv 視頻轉為圖像序列的實現,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
              2019-12-12
            • 深入淺析C語言中堆棧和隊列

              深入淺析C語言中堆棧和隊列

              這篇文章主要介紹了深入淺析C語言中堆棧和隊列的相關資料,需要的朋友可以參考下
              2016-06-06
            • 關于C++11的統一初始化語法示例詳解

              關于C++11的統一初始化語法示例詳解

              C++之前的初始化語法很亂,有四種初始化方式,而且每種之前甚至不能相互轉換,但從C++11出現后就好了,所以這篇文章主要給大家介紹了關于C++11的統一初始化語法的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
              2017-10-10
            • Qt通過圖片組繪制動態圖片

              Qt通過圖片組繪制動態圖片

              這篇文章主要為大家詳細介紹了Qt通過圖片組繪制動態圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
              2020-07-07
            • QT自定義之滑動開關

              QT自定義之滑動開關

              這篇文章主要為大家詳細介紹了QT自定義之滑動開關效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
              2020-08-08
            • 深入淺析C++多態性與虛函數

              深入淺析C++多態性與虛函數

              多態是指同樣的消息被不同的對象接收時導致不同的行為。本文通過實例代碼給大家介紹了C++多態性與虛函數的相關知識,感興趣的朋友一起看看吧
              2020-02-02
            • c語言中如何修改文件中間的幾個字節

              c語言中如何修改文件中間的幾個字節

              工作中碰到一個問題,如何只修改文件中間的幾個字節,而其他的內容不變。這個問題看似簡單,但是很多人估計都不知道怎么做。我開始seek到文件的特定的位置,然后寫文件,但是使用的文件打開模式不對,文件不是被清空,就是被截斷,達不到效果
              2020-10-10

            最新評論

            hao500彩票 www.heritagehandbag.com:榕江县| www.digishoppy.com:隆安县| www.idai777.com:凌海市| www.encore-codastore.com:巴中市| www.ouruolai.com:正安县| www.hg39199.com:茂名市| www.bichengdecoration.com:郧西县| www.fpzjzx.com:乌兰察布市| www.tryinghardminimalist.com:饶阳县| www.cafeavec.com:都江堰市| www.lettresamontaigne.net:汤阴县| www.royal-factory.com:盖州市| www.faribaba.com:吉水县| www.zjlcbj.com:康保县| www.sci-papers.org:常州市| www.youhuonvlang.com:玉溪市| www.qingshushanzhuang.com:开鲁县| www.daogout.com:宜黄县| www.jyodhisham.com:望谟县| www.dadatu66.com:大渡口区| www.masjixie.com:江安县| www.cancerdude.com:壤塘县| www.h-lm.com:罗源县| www.cnsc-cts.com:通城县| www.sallytarr.com:浑源县| www.eugeniopetulla.com:措勤县| www.523962.com:隆子县| www.jlxrny.com:普兰店市| www.abc-telecom.com:彝良县| www.shoottheliving.com:溆浦县| www.bjcbjc.com:三江| www.ntbdyp.com:东平县| www.all-best-slots.com:抚顺市| www.sproutstudio.net:昌邑市| www.zdrowienatalerzu.com:蒲城县| www.hg51456.com:磐石市| www.tongmould.com:茶陵县| www.fnp-co.com:易门县| www.ink4arteurope.com:巴马| www.elalumbramiento.org:河津市| www.uberdrivingparttime.com:崇阳县| www.hust-hy.com:资中县| www.ptcdw.cn:宣恩县| www.023chbg.com:鹤庆县| www.phuengoat.com:阳西县| www.ovomasturbador.com:洛阳市| www.sweetnthings.com:崇义县| www.dannyquattro.com:江城| www.summonerscentral.com:永福县| www.peacpainting.com:布拖县| www.sofiamarket.net:泗阳县| www.psicologiaconsciente.com:克东县| www.kerala-honeymoon-packages.com:合肥市| www.tendainfo.com:开远市| www.turismogay.net:邯郸市| www.youngwon1004.com:庆元县| www.kma209.com:吉安市| www.ldc-ci.com:长沙县| www.gozzxy.com:中山市| www.shopitbd.com:中卫市| www.bcsdi.com:琼结县| www.tintasetinteiros.com:改则县| www.lidande.com:博白县| www.tente-igloo-gonflable.com:山东| www.829350.com:辰溪县| www.beckymoe.com:含山县| www.duhocnamhai.com:汉沽区| www.mf-moto.com:民丰县| www.bp773.com:阿合奇县| www.releaseinfo.org:石首市| www.drugs-rx.com:鄂温| www.q9878.com:铁岭县| www.vintage-denim.com:聂拉木县| www.r-bowlder.com:镇江市| www.weixinsem.com:长顺县| www.trcreations.net:樟树市| www.fromussr.com:澄迈县| www.fusheng1bet.com:舒兰市| www.motricentro.com:邹城市| www.xiduo520.com:晋宁县| www.luckysundays.com:卢龙县| www.shopitbd.com:阿勒泰市| www.createhealthyhome.com:综艺| www.smithbmw.com:百色市|