C++成績管理系統(tǒng)實驗報告-2_第1頁
C++成績管理系統(tǒng)實驗報告-2_第2頁
C++成績管理系統(tǒng)實驗報告-2_第3頁
C++成績管理系統(tǒng)實驗報告-2_第4頁
C++成績管理系統(tǒng)實驗報告-2_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

C++程序設(shè)計報告姓名:肖敬軒學(xué)號:20101000639班級:075102老師:馬麗院系:機(jī)電學(xué)院學(xué)生成績管理系統(tǒng)設(shè)計報告需求分析:用數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)完成一個學(xué)生成績管理系統(tǒng),此系統(tǒng)的具體功能要求如下:(1)學(xué)生信息錄入功能

1)用戶從鍵盤輸入每個學(xué)生的信息:學(xué)號、姓名、性別、數(shù)學(xué)、英語、政治、程序設(shè)計基礎(chǔ)、物理五門課成績。

2)可插入一個或多個學(xué)生信息到當(dāng)前編輯的班級數(shù)據(jù)中。3)可刪除一個或多個學(xué)生信息。(2)文件保存功能

1)學(xué)生信息每一班存為一個數(shù)據(jù)文件,數(shù)據(jù)文件可在程序中打開、編輯和重新保存。

2)用戶輸入學(xué)生信息可隨時保存數(shù)據(jù)文件。

(3)文件打開功能

1)程序只能對當(dāng)前打開的數(shù)據(jù)文件進(jìn)行編輯。

(4)查詢功能

1)瀏覽所有學(xué)生信息;

2)按學(xué)號查詢學(xué)生信息;

3)按姓名查詢學(xué)生信息;

4)查詢一個班總成績和平均成績;

5)查詢一個班某一門課總成績和平均成績;

6)查詢某一門課分?jǐn)?shù)段(<60,60-69,70-79,80-89,>90)學(xué)生數(shù)。

(5)報表輸出功能

1)按學(xué)號輸出一個班學(xué)生信息:學(xué)號、姓名、性別、數(shù)學(xué)、英語、政治、程序設(shè)計基礎(chǔ)、物理成績和總成績,到屏幕和文件。

2)按總成績輸出從高到低輸出學(xué)號、姓名信息。

注:以上功能以菜單形式供用戶使用,并有一定的容錯功能。概要設(shè)計整體框架:整個學(xué)生成績管理系統(tǒng)采用鏈表作為基本數(shù)據(jù)結(jié)構(gòu),創(chuàng)建一個類student用于保存學(xué)生的數(shù)據(jù)且是鏈表中的一個節(jié)點(diǎn)。類list作為保存整個鏈表之用。主函數(shù)通過switch語句來根據(jù)用戶的需要連接各個模塊,以實現(xiàn)用戶的需要。模塊基本介紹:用戶輸入模塊在此模塊中,用戶將根據(jù)菜單提示結(jié)合自己的需求輸入一個0~11的值,來實現(xiàn)一定的功能。學(xué)生信息錄入模塊此模塊可以讓用戶從鍵盤輸入每個學(xué)生的信息:學(xué)號、姓名、性別、數(shù)學(xué)、英語、政治、程序設(shè)計基礎(chǔ)、物理五門課成績。用戶可插入一個或多個學(xué)生信息到當(dāng)前編輯的班級數(shù)據(jù)中。用戶可刪除一個或多個學(xué)生信息。文件保存功能模塊

用戶在確定以錄入的成績無誤之后,可以將學(xué)生信息以每一班為單位存為一個數(shù)據(jù)文件。用戶輸入的學(xué)生信息可隨時保存數(shù)據(jù)文件。文件打開功能模塊用戶可以用此模塊將數(shù)據(jù)文件在程序中打開、編輯,程序只能對當(dāng)前打開的數(shù)據(jù)文件進(jìn)行編輯。查詢功能模塊在此模塊里,用戶可實現(xiàn)以下操作:1.瀏覽所有學(xué)生信息;2.按學(xué)號查詢學(xué)生信息;3.按姓名查詢學(xué)生信息;4.查詢一個班每個人的總成績和平均成績;5.查詢一個班某一門課每個人的總成績和平均成績;6)進(jìn)行成績的統(tǒng)計分析:包括總?cè)藬?shù),每門課的最高成績、最低成績、平均成績、各個分?jǐn)?shù)段的人數(shù)(100-90、89-80、79-70、69-60、59-50、50以下)、及格人數(shù)。報表輸出功能模塊在此模塊中,用戶可以瀏覽所有學(xué)生的信息,或者可以按學(xué)號輸出一個班學(xué)生信息:學(xué)號、姓名、性別、數(shù)學(xué)、英語、政治、程序設(shè)計基礎(chǔ)、物理成績和總成績,到屏幕和文件。也可以按總成績輸出從高到低輸出學(xué)號、姓名信息。

模塊圖:開始開始m值1,3,4值8值9值7,2,6,5值10,11文件保存功能模塊學(xué)生信息錄入模塊文件打開功能模塊查詢功能模塊報表輸出功能模塊用戶輸入,并將值保存至m中m結(jié)束詳細(xì)設(shè)計主要功能模塊的算法設(shè)計思路:1.用戶輸入模塊設(shè)計提示用戶輸入一個0~11的值,并存儲在一個整型變量m中。2.學(xué)生信息錄入模塊設(shè)計通過應(yīng)用list中的instu()函數(shù),來新建一個鏈表中的節(jié)點(diǎn),即一個新的學(xué)生信息,來進(jìn)行成績的錄入功能。成績修改功能,可以根據(jù)姓名或?qū)W號進(jìn)行查詢并修改相應(yīng)的課程的成績,使用了voidsearch(chars[10],int)和voidsearch1(chars[20],int)函數(shù)進(jìn)行操作。search函數(shù)根據(jù)姓名查找,search1函數(shù)根據(jù)學(xué)號進(jìn)行查找。因為學(xué)號和姓名,都是存儲在字符數(shù)組中的,所以都是通過字符串的比較進(jìn)行查找的。然后根據(jù)整形參數(shù)進(jìn)行對應(yīng)的課程成績的修改。成績刪除功能,也是可以根據(jù)姓名或?qū)W號進(jìn)行刪除,查詢的算法和成績修改功能的查詢方法是一樣的,當(dāng)找到要刪除的節(jié)點(diǎn)時,因為節(jié)點(diǎn)都是在堆內(nèi)存中保存的,所以可以直接delete掉,并將前一個節(jié)點(diǎn)的next指針指向被刪掉的節(jié)點(diǎn)的next指針?biāo)赶虻墓?jié)點(diǎn)。3.文件保存功能模塊先提示用戶輸入保存文件的文件名及班級名稱。文件的前兩行分別是班級名稱和成績單的開頭,然后通過ofstream變量output來進(jìn)行學(xué)生信息的輸出,一項一項的輸出,并設(shè)定格式,直到輸出節(jié)點(diǎn)為NULL為止,之后關(guān)閉output。4.文件打開功能模塊先提示用戶輸入要打開的數(shù)據(jù)文件的名稱,然后通過一個ifstream變量input來進(jìn)行文件操作。首先判斷文件是否存在,如果不存在則輸出"Filedoesnotexist",并跳出switch語句。文件存在的話,則可以進(jìn)行數(shù)據(jù)的存入了。因為數(shù)據(jù)文件具有固定的格式,即開頭兩行是班級名稱和表頭,則可以先用兩次input.getline(temp,80);語句來將input設(shè)置到第三行,此時可以將數(shù)據(jù)通過input讀入鏈表中。先用input.eof()判斷文件中是否有數(shù)據(jù),若有數(shù)據(jù),則進(jìn)行數(shù)據(jù)的讀入,直到文件結(jié)束。5.查詢功能模塊可以根據(jù)姓名或?qū)W號進(jìn)行查找,搜索方法和前幾個模塊相同。通過outstu1(char*n)和outstu(char*n)來進(jìn)行輸出??偝煽兒推骄煽兊牟樵兺ㄟ^函數(shù)voidoutsum(char*)和voidoutsum1(char*)來完成。通過函數(shù)scanall()來瀏覽所有學(xué)生的信息。通過函數(shù)think()來進(jìn)行成績的統(tǒng)計分析。6.報表輸出功能模塊通過建立一個新的類classstucopy用于拷貝student的數(shù)據(jù),并實現(xiàn)排序功能。創(chuàng)建一個stucopystu[M]數(shù)組,將原鏈表的數(shù)據(jù)拷貝與數(shù)組中,然后用選擇排序方法將數(shù)組排序,然后用output按照標(biāo)準(zhǔn)的格式輸出或保存為數(shù)據(jù)文件。程序運(yùn)行如下打開窗口界面輸入學(xué)生成績voidWrite(Stustud[],intn)

{

fstreammyFile;

myFile.open("student.dat",ios::out|ios::binary);

if(!myFile)

{

cout<<"student.datcan'topen!"<<endl;

abort();

}

intcount=n;

myFile<<count<<endl<<endl;

for(inti=0;i<=count;i++)

{

myFile<<stud[i].class_0<<""<<stud[i].num<<""<<stud[i].name<<""<<stud[i].math<<""<<stud[i].c_program<<""<<stud[i].media<<""<<stud[i].english

<<""<<stud[i].physical<<""<<stud[i].sport<<""<<stud[i].polity<<""<<stud[i].average<<endl;

}

myFile.close();

}

intRead(Stustud[])

{

fstreammyFile;

myFile.open("student.dat",ios::in|ios::binary);

if(!myFile)

{

cout<<"student.datcan'topen!"<<endl;

abort();

}

intcount;

myFile.seekg(0);

myFile>>count;

for(inti=0;i<=count;i++)

{

myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].math>>stud[i].c_program>>stud[i].media>>stud[i].english>>stud[i].physical>>stud[i].sport>>stud[i].polity>>stud[i].average;

}

myFile.close();

returncount;

}

voidInput(Stustud[])

{

system("cls");

inti=0;

intflag;

charsign;

cout<<endl<<"====>>請輸入學(xué)生成績<<===="<<endl;

while(sign!='n'&&sign!='N')

{

cout<<"班級:";

cin>>stud[i].class_0;

loop:

cout<<"學(xué)號:";

cin>>stud[i].num;

intc=0;

while(c<i)

{

c++;

if(stud[i].num==stud[i-c].num)

{

cout<<"你輸入的學(xué)號已經(jīng)存在!請重新輸入。"<<endl;

gotoloop;

}

}

cout<<"姓名:";

cin>>stud[i].name;

do{

flag=0;

cout<<"高等數(shù)學(xué):";

cin>>stud[i].math;

if(stud[i].math>100||stud[i].math<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"C++程序設(shè)計成績:";

cin>>stud[i].c_program;

if(stud[i].c_program>100||stud[i].c_program<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"離散數(shù)學(xué):";

cin>>stud[i].media;

if(stud[i].media>100||stud[i].media<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"大學(xué)英語成績:";

cin>>stud[i].english;

if(stud[i].english>100||stud[i].english<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"大學(xué)物理成績:";

cin>>stud[i].physical;

if(stud[i].physical>100||stud[i].physical<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"大學(xué)體育成績:";

cin>>stud[i].sport;

if(stud[i].sport>100||stud[i].sport<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"思修:";

cin>>stud[i].polity;

if(stud[i].polity>100||stud[i].polity<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

stud[i].average=(stud[i].math+stud[i].c_program+stud[i].media+stud[i].english+stud[i].physical+stud[i].sport+stud[i].polity)/7;

cout<<"平均分為:"<<stud[i].average<<endl;

cout<<"====>提示:是否繼續(xù)寫入學(xué)生成績?(Y/N)";

cin>>sign;

i++;

}

Write(stud,i);

}

輸出學(xué)生成績查找學(xué)生成績修改學(xué)生成績增加學(xué)生成績降序排列程序顯示全部學(xué)生成績退出學(xué)生成績實驗感想:通過這次課程設(shè)計,我進(jìn)一步加深了對C++的了解,并進(jìn)一步熟練的掌握了對VC++6.0軟件的操作。在自己設(shè)計的東西的時候,可以通過上網(wǎng)查閱自己的想要了解的東西,解決自己所不懂的東西,擴(kuò)大了知識面。在編寫程序的過程中,遇到了很多問題,通過對程序的不斷調(diào)試與改進(jìn)終于達(dá)到了設(shè)計所要求的功能。課程設(shè)計的整個過程也是個學(xué)習(xí)的過程,首先要明白實驗內(nèi)容做什么、然后才知道怎么做。在把握原理的前提下進(jìn)行實驗設(shè)計。C++設(shè)計實驗自上而下的設(shè)計理念,大到小逐個設(shè)計實驗?zāi)K,為我們以后的實驗設(shè)計也是很有幫助的??傊ㄟ^這次的設(shè)計,進(jìn)一步了解了C++,收獲很大,對軟件編程、排錯調(diào)試、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。在此,也感謝馬老師的悉心指導(dǎo),陪我們一起度過了每一個實驗,為我們指點(diǎn)迷津,使我學(xué)到了更多課本上沒有的知識。源程序如下:#include<iostream>

#include<fstream>

#include<stdlib.h>

#include<string.h>

#include<stdio.h>

usingnamespacestd;

classStu

{

public:

friendvoidInput(Stustud[]);

friendvoidStatistic(Stustud[]);

friendvoidLookup(Stustud[]);

friendvoidModify(Stustud[]);

friendvoidDelete(Stustud[]);

friendvoidOutput(Stustud[]);

friendvoidSort(Stustud[]);

friendvoidInsert(Stustud[]);

friendvoidWrite(Stustud[],intn);

friendintRead(Stustud[]);

private:

charclass_0[20];

intnum;

charname[8];

floatmath;

floatc_program;

floatmedia;

floatenglish;

floatphysical;

floatsport;

floatpolity;

floataverage;

intorder;

}stud[100];

voidWrite(Stustud[],intn)

{

fstreammyFile;

myFile.open("student.dat",ios::out|ios::binary);

if(!myFile)

{

cout<<"student.datcan'topen!"<<endl;

abort();

}

intcount=n;

myFile<<count<<endl<<endl;

for(inti=0;i<=count;i++)

{

myFile<<stud[i].class_0<<""<<stud[i].num<<""<<stud[i].name<<""<<stud[i].math<<""<<stud[i].c_program<<""<<stud[i].media<<""<<stud[i].english

<<""<<stud[i].physical<<""<<stud[i].sport<<""<<stud[i].polity<<""<<stud[i].average<<endl;

}

myFile.close();

}

intRead(Stustud[])

{

fstreammyFile;

myFile.open("student.dat",ios::in|ios::binary);

if(!myFile)

{

cout<<"student.datcan'topen!"<<endl;

abort();

}

intcount;

myFile.seekg(0);

myFile>>count;

for(inti=0;i<=count;i++)

{

myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].math>>stud[i].c_program>>stud[i].media>>stud[i].english>>stud[i].physical>>stud[i].sport>>stud[i].polity>>stud[i].average;

}

myFile.close();

returncount;

}

voidInput(Stustud[])

{

system("cls");

inti=0;

intflag;

charsign;

cout<<endl<<"====>>請輸入學(xué)生成績<<===="<<endl;

while(sign!='n'&&sign!='N')

{

cout<<"班級:";

cin>>stud[i].class_0;

loop:

cout<<"學(xué)號:";

cin>>stud[i].num;

intc=0;

while(c<i)

{

c++;

if(stud[i].num==stud[i-c].num)

{

cout<<"你輸入的學(xué)號已經(jīng)存在!請重新輸入。"<<endl;

gotoloop;

}

}

cout<<"姓名:";

cin>>stud[i].name;

do{

flag=0;

cout<<"高等數(shù)學(xué):";

cin>>stud[i].math;

if(stud[i].math>100||stud[i].math<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"C++程序設(shè)計成績:";

cin>>stud[i].c_program;

if(stud[i].c_program>100||stud[i].c_program<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"離散數(shù)學(xué):";

cin>>stud[i].media;

if(stud[i].media>100||stud[i].media<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"大學(xué)英語成績:";

cin>>stud[i].english;

if(stud[i].english>100||stud[i].english<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"大學(xué)物理成績:";

cin>>stud[i].physical;

if(stud[i].physical>100||stud[i].physical<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"大學(xué)體育成績:";

cin>>stud[i].sport;

if(stud[i].sport>100||stud[i].sport<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

do{

flag=0;

cout<<"思修:";

cin>>stud[i].polity;

if(stud[i].polity>100||stud[i].polity<1)

cout<<"對不起,請輸入1-100之間的數(shù)字!!\n";

else

flag=1;

}while(flag==0);

stud[i].average=(stud[i].math+stud[i].c_program+stud[i].media+stud[i].english+stud[i].physical+stud[i].sport+stud[i].polity)/7;

cout<<"平均分為:"<<stud[i].average<<endl;

cout<<"====>提示:是否繼續(xù)寫入學(xué)生成績?(Y/N)";

cin>>sign;

i++;

}

Write(stud,i);

}

voidStatistic(Stustud[])

{

system("cls");

intn=Read(stud);

cout<<endl<<"====>>輸出學(xué)生統(tǒng)計數(shù)據(jù)<<===="<<endl;

cout<<"班級"<<"\t"<<"學(xué)號"<<"\t"<<"姓名"<<"\t"<<"平均分"<<endl;

for(inti=0;i<n;i++)

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].average<<endl;

system("pause");

}

voidLookup(Stustud[])

{

system("cls");

intn=Read(stud);

ints;

inti=0;

cout<<endl<<"====>>查找學(xué)生成績<<===="<<endl;

cout<<"請輸入需要查找學(xué)生的學(xué)號:"<<endl;

cin>>s;

while((stud[i].num-s)!=0&&i<n)i++;

if(i==n)

{

cout<<"=====>提示:對不起,無法找到該學(xué)生的信息!"<<endl;

}

else

{

cout<<""<<endl;

cout<<"班級:"<<stud[i].class_0<<endl;

cout<<"學(xué)號:"<<stud[i].num<<endl;

cout<<"姓名:"<<stud[i].name<<endl;

cout<<"高等數(shù)學(xué):"<<stud[i].math<<endl;

cout<<"C++程序設(shè)計:"<<stud[i].c_program<<endl;

cout<<"離散數(shù)學(xué):"<<stud[i].media<<endl;

cout<<"大學(xué)英語:"<<stud[i].english<<endl;

cout<<"大學(xué)物理:"<<stud[i].physical<<endl;

cout<<"大學(xué)體育:"<<stud[i].sport<<endl;

cout<<"思修:"<<stud[i].polity<<endl;

cout<<"平均分:"<<stud[i].average<<endl;

}

}

voidModify(Stustud[])

{

system("cls");

intn=Read(stud);

ints;

inti=0;

cout<<endl<<"====>>修改學(xué)生成績<<===="<<endl;

cout<<"請輸入需要修改成績學(xué)生的學(xué)號:"<<endl;

cin>>s;

while((stud[i].num-s)!=0&&i<n)i++;

if(i==n)

{

cout<<"=====>提示:對不起,無該學(xué)生的成績……"<<endl;

}

else

{

cout<<"該學(xué)生的信息"<<endl;

cout<<"班級"<<"\t"<<"學(xué)號"<<"\t"<<"姓名"<<"\t"<<"電子"<<"\t"<<"c++"<<"\t"<<"多媒體"<<"\t"<<"英語"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"體育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;

cout<<""<<endl;

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].math<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t"<<stud[i].english<<"\t"<<stud[i].physical<<"\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].average<<endl;

cout<<"請重新輸入該學(xué)生的信息"<<endl;

cout<<"班級:"<<endl;

cin>>stud[i].class_0;

cout<<"學(xué)號:"<<endl;

cin>>stud[i].num;

cout<<"姓名:"<<endl;

cin>>stud[i].name;

cout<<"高等數(shù)學(xué)成績:"<<endl;

cin>>stud[i].math;

cout<<"C++程序設(shè)計成績:"<<endl;

cin>>stud[i].c_program;

cout<<"離散數(shù)學(xué)成績:"<<endl;

cin>>stud[i].media;

cout<<"大學(xué)英語成績:"<<endl;

cin>>stud[i].english;

cout<<"大學(xué)物理成績:"<<endl;

cin>>stud[i].physical;

cout<<"大學(xué)體育成績:"<<endl;

cin>>stud[i].sport;

cout<<"思修成績:"<<endl;

cin>>stud[i].polity;

stud[i].average=(stud[i].math+stud[i].c_program+stud[i].media+stud[i].english+stud[i].physical+stud[i].sport+stud[i].polity)/7;

cout<<"平均分為:"<<stud[i].average<<endl;

charc;

cout<<"是否保存數(shù)據(jù)?(y/n)"<<endl;

cin>>c;

if(c!='n'&&c!='N')

Write(stud,n);

}

}

voidDelete(Stustud[])

{

system("cls");

intn=Read(stud);

ints;

inti=0,j;

cout<<endl<<"====>>刪除學(xué)生成績<<===="<<endl;

cout<<"請輸入需要刪除學(xué)生的學(xué)號:"<<endl;

cin>>s;

while((stud[i].num-s)!=0&&i<n)i++;

if(i==n)

{

cout<<"====>提示:對不起,無法找到該學(xué)生……"<<endl;

}

else

{

for(j=i;j<n-1;j++)

{

strcpy(stud[j].class_0,stud[j+1].class_0);

stud[j].num=stud[j+1].num;

strcpy(stud[j].name,stud[j+1].name);

stud[j].math=stud[j+1].math;

stud[j].c_program=stud[j+1].c_program;

stud[j].media=stud[j+1].media;

stud[j].english=stud[j+1].english;

stud[j].physical=stud[j+1].physical;

stud[j].sport=stud[j+1].sport;

stud[j].polity=stud[j+1].polity;

stud[j].average=stud[j+1].average;

}

cout<<"====>提示:已成功刪除!"<<endl;

}

Write(stud,n-1);

}

voidInsert(Stustud[])

{

system("cls");

intn=Read(stud);

chars;

cout<<endl<<"====>>增加學(xué)生成績<<===="<<endl;

while(s!='n'&&s!='N')

{

cout<<"班級:"<<endl;

cin>>stud[n].class_0;

cout<<"學(xué)號:";

cin>>stud[n].num;

cout<<"姓名:";

cin>>stud[n].name;

cout<<"高等數(shù)學(xué)成績:";

cin>>stud[n].math;

cout<<"C++程序設(shè)計成績:";

cin>>stud[n].c_program;

cout<<"離散數(shù)學(xué)成績:";

cin>>stud[n].media;

cout<<"大學(xué)英語成績:";

cin>>stud[n].english;

cout<<"大學(xué)物理成績:";

cin>>stud[n].physical;

cout<<"大學(xué)體育成績:";

cin>>stud[n].sport;

cout<<"思修成績:";

cin>>stud[n].polity;

stud[n].average=(stud[n].math+stud[n].c_program+stud[n].media+stud[n].english+stud[n].physical+stud[n].sport+stud[n].polity)/7;

cout<<"平均分"<<stud[n].average;

n++;

cout<<"=====>提示:插入成功!"<<endl;

cout<<"是否繼續(xù)輸入(y/n)"<<endl;

cin>>s;

}

Write(stud,n);

}

voidSort(Stustud[])

{

system("cls");

inti,j,k;

floats;

chart[20];

cout<<endl<<"====>>降序排序成績<<===="<<endl;

intn=Read(stud);

for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(stud[j].average<stud[j+1].average)

{

strcpy(t,stud[j+1].class_0);

strcpy(stud[j+1].class_0,stud[j].class_0);

strcpy(stud[j].class_0,t);

k=stud[j+1].num;

stud[j+1].num=stud[j].num;

stud[j].num=k;

strcpy(t,stud[j+1].name);

strcpy(stud[j+1].name,stud[j].name);

strcpy(stud[j].name,t);

s=stud[j+1].math;

stud[j+1].math=stud[j].math;

stud[j].math=s;

s=stud[j+1].c_program;

stud[j+1].c_program=stud[j].c_program;

stud[j].c_program=s;

s=stud[j+1].media;

stud[j+1].media=stud[j].media;

stud[j].media=s;

s=stud[j+1].english;

stud[j+1].english=stud[j].english;

stud[j].english=s;

s=stud[j+1].physical;

stud[j+1].physical=stud[j].physical;

stud[j].physical=s;

s=stud[j+1].sport;

stud[j+1].sport=stud[j].sport;

stud[j].sport=s;

s=stud[j+1].polity;

stud[j+1].polity=stud[j].polity;

stud[j].polity=s;

s=stud[j+1].average;

stud[j+1].average=stud[j].average;

stud[j].average=s;

}

cout<<""<<endl;

cout<<"班級"<<"\t"<<"學(xué)號"<<"\t"<<"姓名"<<"\t"<<"電子"<<"\t"<<"C++"<<"\t"<<"多媒體"<<"\t"<<"英語"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"體育"<<"\t"<<"政治"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl;

cout<<""<<endl;

for(i=0;i<n;i++)

{stud[i].order=i+1;

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].math<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t"<<stud[i].english<<"\t"<<stud[i].physical<<"\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].average<<"\t"<<stud[i].order<<endl;

}

Write(stud,n);

}

voidOutput(Stustud[])

{

system("cls");

intn=Read(stud);

cout<<endl<<"====>>顯示全部學(xué)生成績<<===="<<endl;

if(!stud)

cout<<"沒有記錄";

else

{

cout<<""<<endl;

cout<<"班級"<<"\t"<<"學(xué)號"<<"\t"<<"姓名"<<"\t"<<"電子"<<"\t"<<"c++"<<"\t"<<"多媒體"<<"\t"<<"英語"<<"\t"<<"數(shù)學(xué)"<<"\t"<<"體育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;

cout<<""<<endl;

for(inti=0;i<n;i++)

{

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].math<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t"<<stud[i].english<<"\t"<<stud[i].physical<<"\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論