溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++實現(xiàn)數據管理功能的方法

發(fā)布時間:2020-10-16 15:43:09 來源:億速云 閱讀:327 作者:小新 欄目:編程語言

這篇文章主要介紹了C++實現(xiàn)數據管理功能的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

實現(xiàn)以下功能:

1、信息錄入:錄入學生成績信息(包括學生學號、姓名、各門課程的成績等);

2、信息查詢:輸入學號,查詢學生各門課程的成績,并顯示。

3、排序:按各門課程的成績平均分進行排序,并顯示。

4、信息刪除與修改——輸入學號,刪除該學生的成績信息。

分步實施:

1、初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數。

2、建立一個文件,將每位學生的信息寫入文件中并能顯示于屏幕上。

3、完成上述信息查詢(學生學號、姓名等)、排序、信息刪除與修改功能。

#include <iostream>
#include <string.h>
using namespace std;
#define MAX 100
class CStudent
{private:    char *name;              // 姓名
    bool sex;                // 性別
    CDate date;              // 出生日期,類對象作數據成員
    public:    static int num;          // 學生人數
    CStudent();    void InputData();    
    friend void Sort();      // 排序
    friend void FindName();  // 按姓名查詢
    friend void Statistic(); // 按性別統(tǒng)計
    friend void Display();   // 顯示全部信息} stu[MAX];
    int CStudent::num=0;    //static 初始化
    CStudent::CStudent() {} //構造函數// 輸入信息
void CStudent::InputData()
{    
    int p;    char s[41];    
    cout<<"請輸入學生信息(NO."<<num<<"):\n";    
    cout<<"姓名:";    cin>>s;
    name=new char[strlen(s)+1];    
    strcpy(name,s);    
    cout<<"性別(1-男,0-女):";    
    cin>>p;    
    if (p)  sex=true;    
    else sex=false;    cin>>date;//操作符重載->istream &operator>>(istream &in,CDate &d)
    cout<<endl;
}// 排序 根據data從小到大排序
void Sort()
{    
    int i,j,p,num;    char *tn;    bool ts;
    CDate td;
    num=CStudent::num;    
    for(i=1; i<num; i++)
    {
        p=i;        
    for(j=i+1; j<=num; j++)            
    if (stu[j].date<stu[p].date) p=j;//找到當前未排序元素中年齡最小的對象的下標
        if (p==i) continue;        //下面交換stu[i]和stu[p]
        tn=stu[i].name;
        stu[i].name=stu[p].name;
        stu[p].name=tn;
        ts=stu[i].sex;
        stu[i].sex=stu[p].sex;
        stu[p].sex=ts;
        td=stu[i].date;
        stu[i].date=stu[p].date;
        stu[p].date=td;
    }
}// 按姓名查詢
void FindName()
{    
    char name[41];    
    int i,num;    
    cout<<"請輸入姓名:";    
    cin>>name;
    num=CStudent::num;    
    for(i=1; i<=num; i++)        
    if (strcmp(stu[i].name,name)==0) break;    
    if (i>num)
    {        
    cout<<"查無此人!"<<endl<<endl;        
    return;
    }    //如果查到了,顯示學生信息
    cout<<"姓名:"<<stu[i].name<<endl;    
    cout<<"性別:";    if (stu[i].sex)        
    cout<<"男"<<endl;    else
    cout<<"女"<<endl;    
    cout<<"生日:"<<stu[i].date<<endl;    
    cout<<endl;
}// 按性別統(tǒng)計
void Statistic()
{    
    int i,num,s1,s0;
    num=CStudent::num;
    s1=0;
    s0=0;    for(i=1; i<=num; i++)        
    if (stu[i].sex==1)s1++;        
    else s0++;    
    cout<<"男生人數:"<<s1<<endl;    
    cout<<"女生人數:"<<s0<<endl;    
    cout<<endl;
}// 顯示全部信息
void Display()
{    
    int i,num;
    num=CStudent::num;    for(i=1; i<=num; i++)
    {        
    cout<<stu[i].name<<"\t";        
    if (stu[i].sex)            
    cout<<"男";        
    else cout<<"女";        
    cout<<"\t"<<stu[i].date<<endl;
    }    
    cout<<endl;
}
    int main1()
{    char *menu[]= { "","輸入信息","排序","按姓名查詢","按性別統(tǒng)計","顯示全部信息","退出" };    
    int i,p;    bool end;
    end=false;    while(!end)
    {        for(i=1; i<7; i++)            
    cout<<i<<"  "<<menu[i]<<endl;        
    cin>>p;        
    switch(p)
        {        
    case 1:                          // 輸入信息
            CStudent::num++;
            stu[CStudent::num].InputData();            break;        
    case 2:                          // 排序
            Sort();            break;        
    case 3:                          // 按姓名查詢
            FindName();            break;        
    case 4:                          // 按性別統(tǒng)計人數
            Statistic();            break;        
    case 5:                          // 顯示全部信息
            Display();            break;        
    case 6:                          // 退出
            end=true;            break;
        }
    }    return 0;
}

感謝你能夠認真閱讀完這篇文章,希望小編分享C++實現(xiàn)數據管理功能的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI