<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.zczww.cn:江口县| www.s7765.com:石城县| www.danwolfforsenate.com:阳信县| www.soundwirerecords.com:手机| www.hsx-hsx.com:怀来县| www.ajcdjs.com:平罗县| www.bilellotraslochi.com:迁西县| www.mr-impact-windows.com:临沭县| www.nanaoyn.com:谢通门县| www.jimmysocks.com:宜宾市| www.truboot.com:应城市| www.zj-888.com:深州市| www.quangninhtoday.com:日喀则市| www.sxkanghe.com:安阳县| www.debibaker.org:环江| www.globalryb.com:监利县| www.activeppcturkiye.com:页游| www.thewinconcept.com:通许县| www.toptuto.com:当阳市| www.lzmlh.com:陆川县| www.guitarquest.net:自治县| www.hoausp.com:晋州市| www.bicaraperpustakaan.com:衡东县| www.kkaa99.com:光泽县| www.techintw.com:通许县| www.hs855.com:垣曲县| www.wx-culture.com:山阳县| www.dogfriendlyuk.com:罗甸县| www.nd733.com:新密市| www.newsstuck.com:太和县| www.alinadeemamin.com:阿克陶县| www.czmjjr.com:栖霞市| www.esbtrade.com:吉木乃县| www.bjaymy.com:泰州市| www.arkinserdigitaldesigns.com:集贤县| www.913980.com:驻马店市| www.affiliatemarketingbest.com:蓬莱市| www.blissfulrituals.com:北碚区| www.maltavizesi.net:湟源县| www.gs533.com:辽源市| www.bjblwed.com:西峡县| www.cwsgw.cn:泰和县| www.in2demo.com:肥城市| www.dlm-music.com:修武县| www.germanincubator.net:峨眉山市| www.summeranciationalize.com:象山县| www.wwwxfplay.com:永顺县| www.780790.com:嘉祥县| www.agnum100.com:扎赉特旗| www.hw8168.com:乐东| www.scjhllcc.com:沂南县| www.qylvod.com:深泽县| www.yarnundyedusa.com:民勤县| www.zhiweifurniture.com:沾化县| www.es5u.com:右玉县| www.inlogan.com:卫辉市| www.ns336.com:蓬莱市| www.gottumblr.com:蒲江县| www.juandavidperafan.com:鄂伦春自治旗| www.vidyaseminars.com:永善县| www.auntcharlottes.com:罗城| www.coralclay.com:融水| www.fionarr.com:罗甸县| www.brandarab123.com:德江县| www.zhfu8.com:年辖:市辖区| www.viralmusictoolkit.com:朔州市| www.steinblogger.com:乌兰浩特市| www.whatschimp.com:综艺| www.010wg.com:会理县| www.intercritics.com:彝良县| www.janvanlysebettens.com:福贡县| www.livewellfeelgood.com:即墨市| www.zghnfzw.com:晋州市| www.zczww.cn:洪江市| www.pstee.com:呼和浩特市| www.cheapvegasairfares.com:舟曲县| www.newvilleoutdoor.com:宁安市| www.bd9777.com:北流市| www.faprobot.com:麟游县| www.cbearings.com:高碑店市| www.princesstickets.com:新泰市| www.eoilc.com:高密市| www.laproducers.net:云阳县| www.africanshawlsupplier.com:筠连县|