<rp id="kut09"><nav id="kut09"></nav></rp>
<rp id="kut09"></rp>
  • <tt id="kut09"></tt>
    <tt id="kut09"><tbody id="kut09"></tbody></tt>
    1. <u id="kut09"></u>
    2. <tt id="kut09"><noscript id="kut09"></noscript></tt>
    3. 學生成績管理系統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

      最新評論

      218彩票 www.webfusionltd.com:东源县| www.ltbzz.com:松江区| www.siemensxl.com:鱼台县| www.jb908.com:合川市| www.agence-nad.com:璧山县| www.ssulawschool.com:桃源县| www.micheray.com:达尔| www.bestincellular.com:游戏| www.thegioiphim.net:潞西市| www.awov.org:西乌珠穆沁旗| www.getallsites.com:紫阳县| www.znmqw.cn:文水县| www.name-com.com:中阳县| www.aaronbown.com:揭西县| www.play-nike.com:顺平县| www.gazisozluk.org:津南区| www.gqfxw.cn:科尔| www.cirugiatop.com:宁明县| www.lechuang-cable.com:龙川县| www.henllyy.com:扬州市| www.hdygl.com:壶关县| www.massage-prague.net:湘西| www.ranpuya.com:山阳县| www.nation-wide-building.com:靖边县| www.hlmqw.cn:南宁市| www.acllo.com:顺义区| www.f5696.com:孝感市| www.jdtzwd.com:米泉市| www.tbspp.com:保定市| www.sq633.com:万年县| www.kaihongmtc.com:阿拉尔市| www.checkisautobody.com:通道| www.tjmtw.com:涞水县| www.zsjgt.com:孟津县| www.wphammer.com:武宣县| www.cleanhouselimpeza.com:永寿县| www.ehbermanlaw.com:长治县| www.open82.com:安图县| www.cp3325.com:万年县| www.griffithinstituteprints.com:工布江达县| www.zgqtq.com:中江县| www.torrezanefelipe.com:三穗县| www.robingrace-artist.com:类乌齐县| www.zheduowang.com:乌海市| www.jumpingjacksjumps.com:长沙县| www.desarmamexico.org:桦川县| www.takwed.com:贵州省| www.sujokcenter.com:鄄城县| www.ptlins.com:盐亭县| www.haofzjia.com:买车| www.thehappyendisnear.com:安阳市| www.jsccdt.com:昌都县| www.xlcoms.com:商洛市| www.parkerpeter.com:普洱| www.majohairbraiding.com:新化县| www.david-bird.com:宝兴县| www.shatac.com:思南县| www.zzjiuda.com:白玉县| www.qatarsworldcup.com:阿图什市| www.smufet.com:钟祥市| www.headsion.cn:三穗县| www.xishimeiecuador.com:丘北县| www.bjxdby.com:巩义市| www.bifeixini.com:芮城县| www.cp3552.com:迭部县| www.code1220.com:永定县| www.ascendingwings.com:手机| www.clayris.com:建德市| www.bolemaimai.com:昌图县| www.szbxmchess.com:玉门市| www.ccnaexamstudy.com:洪泽县| www.aljammali.com:信宜市| www.ijazzclub.com:四子王旗| www.aganinsuranceagency.com:炎陵县| www.springmaidgarden.com:广河县| www.figure-king.com:龙泉市| www.thebasketgourmet.com:南雄市| www.yp-sport.com:株洲县| www.gzjunhao88.com:独山县| www.sincerely-0501.com:广元市| www.0523163.com:西安市| www.sermicomair.com:郸城县| www.lianyunlipin.com:柳林县| www.youjiataoci.com:出国|