資源簡介
完整的C++大作業(yè),學(xué)生管理系統(tǒng)。包括文件記錄查詢,增加,刪除,以及成績的各種統(tǒng)計等。功能均反映在界面中。

代碼片段和文件信息
#include?
using?std::cin;
using?std::cout;
using?std::cerr;
using?std::endl;
using?std::ios;
#include?
using?std::ofstream;
using?std::ifstream;
using?std::fstream;
#include?
using?std::string;
#include?
using?std::setw;
int?enterChoice();
void?searchGrade(string?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]int?row);
void?changeGrade(string?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]int?row);
void?deleteGrade(string?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]int&?row);
void?addGrade(string?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]int&?row);
int?getRow(ifstream&?inp);
void?getID(ifstream&?inpstring?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]);
void?countGrade(string?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]int?row);
void?saveResult(string?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[]int?row);
int?main()
{
ifstream?infile(“gradeInfo.txt“);
if(!infile){
cerr<<“文件打開錯誤gradeInfo.txt不存在.“< exit?(1);}
int?row=getRow(infile);
infile.close();//確定目前的學(xué)生數(shù)為row
????
ifstream?infile2(“gradeInfo.txt“);
//最多提供60個學(xué)生的成績管理.根據(jù)目前合理的課程班人數(shù)確定.可根據(jù)需要進(jìn)行更改.
string?names[60];???//學(xué)生姓名
string?ID[60];??????//學(xué)生學(xué)號
????int?Chinese[60];????//語文成績
int?Math[60];???????//數(shù)學(xué)成績
int?Eng[60];????????//英語成績
getID(infile2namesIDChineseMathEng);//從文件中讀入學(xué)生資料.
infile2.close();
int?part;??????//其值代表了用戶所選模塊.
//系統(tǒng)的主菜單.用戶選擇將要進(jìn)行的操作.
while(part!=4){
cout<<“\n????**歡迎進(jìn)入學(xué)生信息管理系統(tǒng)**“< <<“------------------------------------“< <<“????????請選擇您要進(jìn)行的操作“< ????<<“?????????1-學(xué)生成績信息維護(hù)“< ????<<“?????????2-學(xué)生成績信息查詢“< ????<<“?????????3-學(xué)生成績統(tǒng)計“< ????<<“?????????4-退出系統(tǒng)“< <<“------------------------------------“< cin>>part;
if?(part==1){
????????int?choice;????????//用戶在信息維護(hù)模塊所選擇的執(zhí)行功能.
while((choice=enterChoice())!=4){
switch(choice){
case?1:
addGrade(namesIDChineseMathEngrow);
break;
case?2:
deleteGrade(namesIDChineseMathEngrow);
break;
case?3:
changeGrade(namesIDChineseMathEngrow);
break;
default:
cerr<<“您的選擇不正確“< break;
}
}
}????????????????????????????????????????????????????????????????????
if?(part==2)
searchGrade(namesIDChineseMathEngrow);
if?(part==3)
????????countGrade(namesIDChineseMathEngrow);
}
return?0;
}
//此函數(shù)用于獲取當(dāng)前系統(tǒng)中存儲獲的學(xué)生信息條數(shù).
int?getRow(ifstream&?inp)
{
int?row=0;
string?anameID;
int?mark;
inp>>a>>a>>a>>a>>a;????????????????????????????//跳過第一行的目錄結(jié)構(gòu).
while(inp){
inp>>name>>ID>>mark>>mark>>mark;
row++;
}
return?row-1;
}
//此函數(shù)用于從文本文檔中讀取數(shù)據(jù)到內(nèi)存以備用戶在終端進(jìn)行操作.
void?getID(ifstream&?inpstring?names[]string?ID[]int?Chinese[]int?Math[]int?Eng[])
{
string?a;
inp>>a>>a>>a>>a>>a;?????????????????????????????//跳過第一行的目錄結(jié)構(gòu).
int?i=0;
while(inp
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????202??2009-06-22?04:33??C++大作業(yè)\gradeInfo.txt
?????文件???????8478??2009-06-22?05:09??C++大作業(yè)\課程設(shè)計大作業(yè).cpp
?????文件??????42496??2010-06-28?15:13??C++大作業(yè)\課程設(shè)計報告.doc
?????目錄??????????0??2009-06-22?06:01??C++大作業(yè)
-----------?---------??----------?-----??----
????????????????51176????????????????????4
評論
共有 條評論