1. 程式人生 > >我的C++課程設計

我的C++課程設計

學生資訊管理系統

程式碼:

#include <iostream>
using namespace std;
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define N 1000

typedef struct student

{

    int number;
    char name[20];
    int grade;
    int gaoshu;
    int yingyu;
    int jisuanji;
    int sum;

}STUDENT;

STUDENT student[N];

int shuliang=0;       //用於記錄有多少學生
class Student
{
    public:
    void fhzjm();
    void DengJi();
    void ShanChu();
    void LiuLan();
    void ChaZhao();
    void PaiXu();
    void Save();
    void menu();
    void DaoRu();
};

void Student::fhzjm()        //每次操作結束  來提醒是否繼續進行操作
{
    char biaozhi[20];
    cout<<endl;
   cout<<"還需要操作麼?如果需要操作請輸入:yes,否則請輸入:no"<<endl;
   cin>>biaozhi;
    if(strcmp(biaozhi,"yes")==0)
    {
        menu();
    }
    else if(strcmp(biaozhi,"no")==0)
    exit(0);               //退出系統    這是一個庫函式   用於結束程式

    else
        {
            cout<<"請輸入正確的字元,謝謝!"<<endl;
            fhzjm();
        }
}

void Student::DengJi()                       //登記學生資訊函式

{

    int rs;      //用於記錄要輸入多少條學生資訊
    int i,k=1;
    system("CLS");
    cout<<"請輸入需要輸入幾個學生資訊:"<<endl;
    cin>>rs;
    for(i=shuliang;i<shuliang+rs;i++,k++)
    {
        cout<<"請輸入第"<<k<<"個學生的學號:";
       cin>>student[i].number;
        cout<<"請輸入學生的姓名:";
       cin>>student[i].name;
        //cout<<"請輸入學生3門課的成績:";
        cout<<"請輸入第高數課的成績:";
        cin>>student[i].gaoshu;
        cout<<"請輸入英語課的成績:";
       cin>>student[i].yingyu;
      cout<<"請輸入第計算機課的成績:";
       cin>>student[i].jisuanji;
    }
    shuliang=shuliang+rs;
    fhzjm();
}

void Student::ShanChu()     //刪除學生資訊
{
    char shanchuinfo[10];
    system("CLS");       //清屏函式   這是一個庫函式    用於清除控制檯中的所有資訊
  cout<<"刪除全部學生資訊請輸入\"all\",刪除指定學號的學生資訊請輸入\"one\"\n";
  cin>>shanchuinfo;
    if(strcmp(shanchuinfo,"all")==0)
    {
        int j;
     cout<<"你刪除的學生資訊如下:"<<endl;
      cout<<"-----------學號-------------姓名-------------高數--------------英語--------------計算機\t"<<endl;
        for(j=0;j<shuliang;j++)
       cout<<"----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji;
        shuliang=0;
       cout<<"刪除成功"<<endl;
    }

    else if(strcmp(shanchuinfo,"one")==0)
    {
        struct student *p=NULL;
        int choice;
        int i,j,k=0;
      cout<<"請輸入你要刪除的人的學號:";
       cin>>choice;
        for(i=0;i<shuliang;i++)
        {
            if(choice==student[i].number)
            {
                k=1;j=i;break;
            }
        }
    if(k)
    {
        if(shuliang==1)
        {
            p=&student[0];
            free(p);
            shuliang=0;
        }

        else
        {
            for(i=j;i<shuliang;i++)
            {
                student[i]=student[i+1];
            }
            shuliang=shuliang-1;
        }

      cout<<"刪除成功"<<endl;
    }

    else
    {
       cout<<"輸入資料錯誤!"<<endl;
    }

    }
    fhzjm();
}

void Student::LiuLan()    //瀏覽操作函式
{
    int i;
    system("CLS");
    if(shuliang==0)
    {
       cout<<"系統裡面沒有任何學生的資訊!"<<endl;
    }

    else
    {
        for(i=0;i<shuliang;i++)
        {

            cout<<"第"<<i+1<<"個學生的學號為:"<<student[i].number<<endl;
         cout<<"第"<<i+1<<"個學生的姓名為:"<<student[i].name<<endl;
           cout<<"第"<<i+1<<"個學生的高數課的成績為:"<<student[i].gaoshu<<endl;
          cout<<"第"<<i+1<<"個學生的英語課的成績為:"<<student[i].yingyu<<endl;
           cout<<"第"<<i+1<<"個學生的計算機課的成績為:"<<student[i].jisuanji<<endl;
            student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji;
           cout<<"第"<<i+1<<"個學生的總成績為:"<<student[i].sum<<endl;
        }

    }
    fhzjm();
}

void Student::ChaZhao()     //查詢函式  實現查詢功能   分為三種查詢 按學號查詢   按姓名  按成績
{
    int xx;
    char choice,yy[20];
    int i,j,k=0;
    system("CLS");
    if(shuliang==0)
    {
        cout<<"系統裡面沒有任何學生的資訊!"<<endl;
        fhzjm();
    }

     cout<<"三種查詢方式:學號,姓名,成績"<<endl;
     cout<<"如果按學號查詢請輸1,如果按姓名查詢請輸2,如果按成績查詢請輸3"<<endl;
     cout<<"請輸入您查詢的方式:";
  cin>>choice;
    if(choice=='1')
    {
          cout<<"請輸入需要查詢學生的學號:";
       cin>>xx;
         cout<<"您所查詢的學生的資訊為:"<<endl;
        cout<<"----學號----姓名----高數成績----英語成績----計算機成績----\t"<<endl;
        for(i=0;i<shuliang;i++)
        {
            if(xx==student[i].number)
            {
                j=i;k=1;
               cout<<"----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji;
            }
        }

        if(k==0)
         cout<<"輸入資訊有誤:"<<endl;
    }

    else if(choice=='2')
    {
         cout<<"請輸入需要查詢學生的姓名:";
        cin>>yy;
         cout<<"您所查詢的學生的資訊為:"<<endl;
          cout<<"----學號----姓名----高數成績----英語成績----計算機成績----\t"<<endl;
        for(i=0;i<shuliang;i++)
        {
            if(strcmp(yy,student[i].name)==0)
            {
                j=i;k=1;
                 cout<<"----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jisuanji;
            }

        }
        if(k==0)
         cout<<"輸入資訊有誤:"<<endl;
    }

    else if(choice=='3')
    {
         cout<<"請輸入需要查詢學生的成績:"<<endl;
        cin>>xx;
      cout<<"您所查詢的學生的資訊為:"<<endl;
          cout<<"----學號----姓名----高數----英語----計算機----\t"<<endl;
        for(i=0;i<shuliang;i++)
        {
            if(xx==student[i].grade)
            {
                j=i;k=1;
                cout<<"----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji;
            }
        }
        if(k==0)
         cout<<"輸入資訊有誤:"<<endl;
    }
    fhzjm();
}

void Student::PaiXu()     //排序函式   執行排序操作
{
    struct student *p1[N],**p2,*temp;
    int i,j;
    system("CLS");
    p2=p1;
    for( i=0;i<shuliang;i++)
    {
        p1[i]=student+i;
    }

    for( i=0;i<shuliang;i++)
    {
        for( j=i+1;j<shuliang;j++)
        {
            if((*(p2+i))->sum<(*(p2+j))->sum)
            {
                temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;
            }
        }
    }

    cout<<"按照總成績排序之後的資訊為:"<<endl;

     cout<<"----學號----姓名----總成績----\t"<<endl;

    for( i=0;i<shuliang;i++)
    {
        student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji;
         cout<<"----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum;
    }
    fhzjm();
}

void Student::Save()     //儲存資料    把資料寫到檔案操作
{
    int i;
    FILE *rs;
    if((rs=fopen("student.txt","w"))==NULL)
    {
         cout<<"not open";
        exit(0);
    }

    for(i=0;i<shuliang;i++)
    {
        fwrite(&student[i], sizeof(student[i]), 1, rs);
    }

    if(ferror(rs))
    {
        fclose(rs);
        perror("寫檔案失敗!\n");
        return;
    }

     cout<<"儲存檔案成功!"<<endl;
    fclose(rs);
    fhzjm();
}

void Student::DaoRu()
{
    struct student t;
    int i=0;
    FILE* fp = fopen("student.txt", "r");
    shuliang=0;
    if(NULL==fp)
    {
        perror("讀取檔案開啟失敗!\n");
        return;
    }
    memset(student,0x0,sizeof(student));
    while(1)
    {
        fread(&t,sizeof(t),1,fp);
        if(ferror(fp))
        {
            fclose(fp);
            perror("讀檔案過程失敗!\n");
            return;
        }

        if(feof(fp))
        {
            break;
        }
        student[i]=t;
        i++;
    }
    fclose(fp);
    shuliang=i;
     cout<<"匯入檔案成功!"<<endl;
    fhzjm();
}
void Student::menu()
{
    int n=0;
    system("CLS");
   cout<<" ==================學生資訊管理系統==============="<<endl;
  cout<<" =                1.登記學生資訊                 ="<<endl;
  cout<<" =                2.刪除學生資訊                 ="<<endl;
   cout<<" =                3.瀏覽學生資訊                 ="<<endl;
  cout<<" =                4.查詢學生資訊                 ="<<endl;
   cout<<" =                5.根據總成績排序               ="<<endl;
    cout<<" =                6.儲存到檔案                   ="<<endl;
   cout<<" =                7.從檔案匯入                   ="<<endl;
  cout<<" =                8.退出系統                     ="<<endl;
  cout<<" ================================================="<<endl;
  cout<<" 請選擇:";
  cin>>n;
    switch (n)
    {
        case 1:
            DengJi();break;    //等記資訊
        case 2:
            ShanChu();break;   //刪除資訊
        case 3:
            LiuLan();break;     //瀏覽資訊
        case 4:
            ChaZhao();break;     //查詢資訊
       case 5:
            PaiXu();break;     //對成績記性排序
        case 6:
            Save();break;       //儲存資料到檔案中
        case 7:
            DaoRu();break;       //把檔案中的資料匯入到程式中
        case 8:
        exit(0);break;      //退出系統
    }
}

int main()
{
    Student student;
    student.menu();
    return 0;
}

相關推薦

C++課程設計

學生資訊管理系統 程式碼: #include <iostream> using namespace std; #include<stdio.h> #include <string.h> #include <stdlib.h&g

代寫System Simulator作業、代寫OS/CS編程語言作業、C/C++課程設計作業代做、代做OS/CS作業

The fault dom cut cas shm deadline memory testing Semaphores and Operating System SimulatorOperating System SimulatorThis will be your ma

代寫COMP 3023作業、代做c++課程設計作業、代寫Software Development作業、代做C++程式設計作業

代寫COMP 3023作業、代做c++課程設計作業、代寫Software Development作業、代做C++程式設計作業School of Information Technology and Mathematical SciencesCOMP 3023 Software Development with

代寫COMP/2013作業、代做python/c++作業、代做UML DESIGN作業、代寫Python, C/C++課程設計作業

代寫COMP/2013作業、代做python/c++作業、代做UML DESIGN作業、代寫Python, C/C++課程設計作業COMP/2013 (Lab 03 - 2018)1LAB 3: UML DESIGN GROUP PROJECTAims: Practice your object orient

代做EEEN20010作業、代寫C/C++課程設計作業、代做Computer Engineering作業、代寫C/C++程式語言作業

代做EEEN20010作業、代寫C/C++課程設計作業、代做Computer Engineering作業、代寫C/C++程式語言作業EEEN20010 Computer Engineering I“Find root of a cubic function”(root)You are expected to

代寫HCI Project作業、代做C/C++課程設計作業、linux程式作業代寫代做、C/C++程式設計作業代做

  代寫HCI Project作業、代做C/C++課程設計作業、linux程式作業代寫代做、C/C++程式設計作業代做HCI Project DescriptionWe will be designing a notepad application for linux, as we found t

代寫CS4115留學生作業、代做C/C++程式設計作業、代寫matrix compression program作業、代做C/C++課程設計作業

CS4115 Week06 Lab ExerciseLab Objective: The objective of this week’s lab is to consider a matrix compression program.Matrices are used in a huge variety o

代做CSE 232作業、代寫C/C++程式設計作業、代做Steganography作業、代寫C/C++課程設計作業

CSE 232 Fall 2018Programming Project 06Assignment OverviewThis assignment is worth 50 points (5.0% of the course grade) and must be completed and turnedin

代寫ENGO 333作業、代做C++程式設計作業、代寫geometric留學生作業、代做C++課程設計作業

代寫ENGO 333作業、代做C++程式設計作業、代寫geometric留學生作業、代做C++課程設計作業Lab Assignment 8 ENGO 3331Lab Assignment #8 (Bonus)Where would we be after a couple of geometric trans

代寫CS320留學生作業、代做C/C++課程設計作業、代寫tokenizers and parsers作業、代做C/C++實驗作業

Assignment #2CS320 Assignment #2PurposeThis assignment is designed to familiarize you with C++ programming, tokenizersand parsers.RequirementsThis assignme

代做C++程式設計作業、代寫geometric留學生作業、代做C++課程設計作業 代寫R語言程式|幫做C/C++程式設計

Introduction In this assignment, you are going to develop the Ludo Game, a board game that runs in the command line environment. Lu

C++課程設計:學生管理系統

(一)新生基本資訊統計軟體 有新生來報到,要逐個錄入其資訊,如:學生姓名,性別,專業,出生日期,家庭地址,英語入學成績。要求設計連結串列類來實現,並統計學生人數。文字介面為: 1. 新增學生資訊 2. 刪除學生資訊 3. 匯入學生資訊(已經保存於的檔案資訊) 4. 學生資訊搜尋

C#課程設計

C#開發收穫與心得 光陰似箭,一個學期已經到了末尾。這個學期是我在大學以來收穫最大的一個學期,讓我學會了很多作為一個大學生應該擁有的一些基礎的技能。大學以來都是濛濛混混過,但是這學期第一節c#課讓我產生了應該在大學學點有用的東西的想法。一上課老師就給我們看了學習視訊,告訴我

C++課程設計之模擬一個微型生態系統

題目: 模擬一個微型生態系統。有青草、兔子、狐狸三種生物。可以用網格表示整個環境,每個格子內用不同字母表示不同事物:空地E青草G兔子R狐狸F。系統規則如下: 1)初始狀態隨機出現GRF; 2)若格子為G,下一輪其周邊八個格子中為E的格子中會至少有一個變為G; 3)若格子為R

C++/C課程設計(2)工資管理系統功能說明

工資管理系統 一,     基本功能要求: 1)以密碼登入系統 密碼登入時讀取檔案info.txt(儲存員工資訊)和Admin.txt(儲存管理員息) 如果密碼錯誤或者使用者賬號不存在,會給出相應提示 二,     主功能介面 選單佈

C++課程設計指導書

  一、題目: (1)成績管理系統 (2)圖書資料資訊管理系統 (3)職工工資資訊管理系統 (4)通訊錄 .............. 二、需要處理的基礎資料 (1)學生成績管理系統 l學生基本資訊:如學號、姓名、性別、年齡、宿舍號碼、電話號碼等。 l學生各科課程的

c++課程設計之貪食蛇

這個程式是windows環境下完成的,為了更好的做出動畫效果,定義了gotoxy函式,主要用了三個 類Game_Map,Snake,和Snake_Game類,在第一次遊戲時需要在選單中初始化玩家資料,用了vector來儲存蛇身。 //Windows環境下c++貪食蛇

C++課程設計:學生資訊管理系統

課程設計內容 1.)學生資訊的錄入:錄入新的學生的資訊; 2.)學生資訊的新增:新增新的學生的資訊; 3.) 學生資訊的刪除:刪除不需要的學生的資訊。 4.)學生資訊的查詢:查詢你需要的學生的資訊。 5.)學生資訊的修改:修改錯誤的學生的資訊。 6.)學生資訊的顯示:顯示所

哈理工-14級-大一到大四 (課程設計 + 實驗報告 + 自學視頻教程書籍 + 課件 + 作業 + 考試 復習資料) 應有盡有,雖然有過時的東西,但相信,絕對有幹貨!!!

課程設計 nbsp 分享圖片 一課 class clas pos 報告 設計 歡迎學弟學妹們騷擾我哦,有需要的請留言私我哦!!! 聽說你不信, 來個栗子??,先:::上圖 大一課程: 大二課程: 大三課程: 哈理工-14級-大一到大四 (課程設計 +

<自考學習記錄> 課程代碼04737《C++程序設計》<1>

自考1.1 初識C++的函數和對象1.C++和C語言的關系C++是一種優秀的高級程序設計語言,它是以C語言為基礎而逐漸發展起來的。C++語言既保留了傳統結構化程序設計方法,又對流行的面向對象程序設計方法提供了完整的支持。此外,C++語言還具有許多C語言不支持的新功能和新特性。具體區別我覺得這裏講的更詳細,各位