您好,登錄后才能下訂單哦!
這篇文章主要介紹了C++實現數據管理功能的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
實現以下功能:
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(); // 按性別統計 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; }// 按性別統計 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[]= { "","輸入信息","排序","按姓名查詢","按性別統計","顯示全部信息","退出" }; 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: // 按性別統計人數 Statistic(); break; case 5: // 顯示全部信息 Display(); break; case 6: // 退出 end=true; break; } } return 0; }
感謝你能夠認真閱讀完這篇文章,希望小編分享C++實現數據管理功能的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。