數(shù)據(jù)結(jié)構(gòu)-學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)-學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)-學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)-學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)-學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

“數(shù)據(jù)結(jié)構(gòu)與算法”課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目設(shè)計(jì)題目簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)姓名學(xué)號(hào)專業(yè)物聯(lián)網(wǎng)工程班級(jí)物聯(lián)網(wǎng)工程12-1班完成日期*課程設(shè)計(jì)題目;學(xué)生成績(jī)管理系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)表如下:序號(hào)字段名數(shù)據(jù)類型長(zhǎng)度含義1class2char20班級(jí)2numint學(xué)號(hào)3namechar10姓名4cprogfloatC程序設(shè)計(jì)5mediaflaot多媒體技術(shù)6engfloat大學(xué)英語(yǔ)7mathfloat高等數(shù)學(xué)8sportfloat大學(xué)體育9avefloat平均成績(jī)10orderint名次要求:完成學(xué)生成績(jī)的錄入、統(tǒng)計(jì)、查詢、修改、刪除、輸出。需求和規(guī)格說(shuō)明軟件其本身應(yīng)是一個(gè)大的分支系統(tǒng),每個(gè)分支都對(duì)應(yīng)系統(tǒng)的一項(xiàng)功能。在數(shù)據(jù)通過系統(tǒng)主功能輸入完成后,通過調(diào)用各個(gè)子功能對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理,到達(dá)相應(yīng)的目的。系統(tǒng)中首相要解決的問題就是信息的存儲(chǔ),學(xué)生的信息包含多方面的內(nèi)容,必須用類或結(jié)構(gòu)體去存儲(chǔ)。原題目中要求學(xué)生學(xué)號(hào)num用int類型的變量來(lái)存儲(chǔ),但實(shí)際情況下此設(shè)計(jì)并不妥,所以在系統(tǒng)設(shè)計(jì)的過程中,我用了一個(gè)長(zhǎng)度為10的char類型的數(shù)組來(lái)存儲(chǔ)學(xué)號(hào),根本滿足了實(shí)際應(yīng)用的根本要求。實(shí)際設(shè)計(jì)時(shí)系統(tǒng)的數(shù)據(jù)表如下序號(hào)字段名數(shù)據(jù)類型長(zhǎng)度含義1Classchar20班級(jí)2Numberchar10學(xué)號(hào)3Namechar20姓名4cprogfloatC程序設(shè)計(jì)5mediaflaot多媒體技術(shù)6engfloat大學(xué)英語(yǔ)7mathfloat高等數(shù)學(xué)8sportfloat大學(xué)體育9avefloat平均成績(jī)10orderint名次11sumfloat總成績(jī)由于系統(tǒng)本身為一個(gè)管理系統(tǒng),所以設(shè)計(jì)過程中應(yīng)采用交互式的方式方便操作者的使用,由于沒有采用圖形界面,所以可以通過循環(huán)彈出功能菜單的方式實(shí)現(xiàn)。在系統(tǒng)各項(xiàng)子功能實(shí)現(xiàn)的過程中,需要通過編寫函數(shù),調(diào)用庫(kù)函數(shù)等方式以實(shí)現(xiàn)字符串操作、指針操作、文件操作等,以到達(dá)系統(tǒng)中各項(xiàng)功能的不同要求。設(shè)計(jì)設(shè)計(jì)思路〔1〕、結(jié)構(gòu)體的定義代碼如下:structdata{charName[n];//姓名charClass[n];//班級(jí)charNumber[n];//學(xué)號(hào)floatcprog,media,eng,math,sport;//各科成績(jī)floatsum;//總分floatave;//平均數(shù)intorder;//名次};typedefdata*Infor;通過以上定義,將單個(gè)學(xué)生的各項(xiàng)根本信息封裝到了一個(gè)名為Infor的結(jié)構(gòu)體變量中。另外,為了在系統(tǒng)中方便實(shí)現(xiàn)排序、查詢、刪除等功能,在頭文件func.h中又定義了一個(gè)Infor類型的數(shù)組stu[maxnum]〔maxnum為宏變量,大小為999〕,該數(shù)組默認(rèn)可以存儲(chǔ)999名學(xué)生的信息,如此一來(lái),便大大簡(jiǎn)化了排序等功能的實(shí)現(xiàn)難度?!?〕、系統(tǒng)框架此系統(tǒng)大體框架由三個(gè)層次構(gòu)成,依次為系統(tǒng)主菜單,主功能下設(shè)的子菜單及最底層菜單下的功能實(shí)現(xiàn)。用戶除此今日系統(tǒng)是現(xiàn)實(shí)主菜單,根據(jù)邏輯順序應(yīng)錄入學(xué)生信息,否那么其他功能將無(wú)法使用,系統(tǒng)會(huì)自動(dòng)報(bào)錯(cuò)并返回主菜單。主菜單功能選擇完畢后,假設(shè)該功能下設(shè)有子菜單那么進(jìn)入子菜單項(xiàng)選擇擇界面,否那么調(diào)用相應(yīng)函數(shù)實(shí)現(xiàn)相應(yīng)功能。操作完成后調(diào)用system(“CLS”)函數(shù)清屏并且回到主菜單繼續(xù)選擇其他功能直至退出系統(tǒng)。系統(tǒng)設(shè)計(jì)的過程中,通過調(diào)用自定義的Print_menu()、Print_insert()、Print_sorting()、Print_count()等函數(shù)以實(shí)現(xiàn)軟件的交互式操作,同事又依托于switch、case分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)到達(dá)功能的選擇及重復(fù)操作的目的?!?〕、系統(tǒng)執(zhí)行流程流程圖如下列圖所示:完畢?開始完畢?開始錄入信息錄入信息NNYY功能選擇功能選擇幫助輸出退出幫助輸出退出統(tǒng)計(jì)修改刪除排名查詢統(tǒng)計(jì)修改刪除排名查詢按學(xué)號(hào)查詢按姓名查詢關(guān)鍵字按學(xué)號(hào)查詢按姓名查詢關(guān)鍵字關(guān)鍵字關(guān)鍵字按姓名刪除按姓名刪除按學(xué)號(hào)刪除按學(xué)號(hào)刪除結(jié)束結(jié)束2、設(shè)計(jì)表示為了使程序簡(jiǎn)潔直觀,我編寫了頭文件func.h,涵蓋了主程序中所有的所有涉及到的函數(shù),主要功能函數(shù)有:〔1〕、Get_infor(Infor&s)信息錄入函數(shù)此函數(shù)中,用戶按姓名、班級(jí)、學(xué)號(hào)等的順序進(jìn)行學(xué)生信息的錄入,沒完成一名學(xué)生的錄入,函數(shù)自動(dòng)將信息存入stu[maxnum]中,函數(shù)出口為當(dāng)輸入的姓名為空格時(shí)退出?!?〕、Sorting(int&amount)排序函數(shù)此函數(shù)以學(xué)生成績(jī)總分為關(guān)鍵字通過冒泡排序法對(duì)所有學(xué)生進(jìn)行降序排名,并且將排名結(jié)果自動(dòng)輸出?!?〕、Search_infor1()按姓名查詢;Search_infor2()按學(xué)號(hào)這兩個(gè)函數(shù)分別以姓名和學(xué)號(hào)為關(guān)鍵字對(duì)相應(yīng)學(xué)生進(jìn)行查詢,函數(shù)出口為找到指定學(xué)生或遍歷完全部學(xué)生?!?〕、Rwrite()修改學(xué)生信息函數(shù)此函數(shù)以用戶所輸入的學(xué)生姓名為關(guān)鍵字查詢相應(yīng)學(xué)生,然后用戶輸入新的學(xué)生信息將原信息覆蓋?!?〕、Delete_infor1()按姓名刪除;Delete_infor2()按學(xué)號(hào)刪除這兩個(gè)函數(shù)分別以姓名和學(xué)號(hào)為關(guān)鍵字對(duì)相應(yīng)學(xué)生進(jìn)行查詢,然后刪除指定學(xué)生信息,同時(shí)學(xué)生總?cè)藬?shù)減一。〔6〕、Count_infor()成績(jī)統(tǒng)計(jì)函數(shù)此函數(shù)對(duì)所有學(xué)生成績(jī)進(jìn)行統(tǒng)計(jì),輸出參考學(xué)生總?cè)藬?shù),各科平均分及各科優(yōu)秀、良好、不及格的人數(shù)?!?〕、Infor_output()成績(jī)文本輸出此函數(shù)通過文件操作,將所有學(xué)生的成績(jī)匯總后輸出到D盤根目錄下新建的“學(xué)生成績(jī)匯總.txt”文本文件中。關(guān)鍵變量amount;stu[maxnum]在func.h中定義了一個(gè)int類型的全局變量amount和stu[maxnum]前者用以保存參考學(xué)生的總?cè)藬?shù),后者用以保存所有學(xué)生的信息。實(shí)現(xiàn)注釋系統(tǒng)的設(shè)計(jì)到達(dá)了設(shè)計(jì)要求中的各項(xiàng)條件,并且能夠?qū)崿F(xiàn)所有的根本功能。此外,在根本功的根底上還進(jìn)行了適當(dāng)?shù)耐卣?。如,在輸出功能中,沒有僅僅簡(jiǎn)單的將學(xué)生信息顯示在屏幕上,而是通過調(diào)用stdio.h頭文件中的文件操作函數(shù),在D盤根目錄下新建了一個(gè)名為“學(xué)生成績(jī)匯總.txt”的文本文檔,并將所有學(xué)生的成績(jī)信息按名次上下主意寫入文件中。詳細(xì)設(shè)計(jì)表示主程序算法框架:系統(tǒng)主程序主要由循環(huán)和分支結(jié)構(gòu)組成的,循環(huán)中嵌套分支結(jié)構(gòu),重復(fù)顯示主菜單以到達(dá)交互式操作的目的。然后,分支結(jié)構(gòu)用switch,case打牌實(shí)現(xiàn)系統(tǒng)功能的選擇,局部分支結(jié)構(gòu)下還嵌套有分支結(jié)構(gòu),以實(shí)現(xiàn)子功能的選擇。用戶手冊(cè)用戶在錄入學(xué)生信息時(shí),姓名項(xiàng)允許輸入中文,但不應(yīng)超過10個(gè)漢字,輸入英文時(shí)不應(yīng)超過20個(gè)字符。學(xué)號(hào)項(xiàng)不應(yīng)超過10個(gè)數(shù)字。班級(jí)項(xiàng)同姓名。剩下各科成績(jī)可輸入float類型數(shù)字范圍內(nèi)的小樹或者整數(shù)。退出錄入信息時(shí),在姓名項(xiàng)輸入空格后回車退出。歌工鞥的實(shí)現(xiàn)是通過相關(guān)功能對(duì)應(yīng)數(shù)字并且回車實(shí)現(xiàn)的。調(diào)試及測(cè)試測(cè)試數(shù)據(jù)如下姓名張三李四王二孫五班級(jí)電氣1班電氣1班電氣1班電氣1班學(xué)號(hào)2012217211201221721220122172132012217214C程序設(shè)計(jì)84899091多媒體技術(shù)87908487大學(xué)英語(yǔ)86918588高等數(shù)學(xué)88887889大學(xué)體育80757072測(cè)試結(jié)果見附錄2〔系統(tǒng)測(cè)試截圖〕運(yùn)行實(shí)例:見附錄2〔系統(tǒng)測(cè)試截圖〕〔六〕進(jìn)一步改良1、通過數(shù)組存儲(chǔ)學(xué)生信息雖然有利于排序和查詢但是在一定程度上卻影響了系統(tǒng)的空間性能,而且靜態(tài)存儲(chǔ)的方式同時(shí)也限制了信息的數(shù)量。所以可以改良信息的存儲(chǔ)形式,通過鏈表等動(dòng)態(tài)形式存儲(chǔ)信息,提高空間性能。2、排序功能中可以通過多關(guān)鍵字排序的方式更好的解決排序關(guān)鍵字相同的情況。3、改善輸入的文本文檔的排版,使輸出信息更加明朗。4、可以嘗試通過MFC構(gòu)建可視化圖形界面以實(shí)現(xiàn)更好的交互式體驗(yàn)。〔七〕心得體會(huì)本次課程設(shè)計(jì)的題目是“簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)”,說(shuō)起簡(jiǎn)單是因?yàn)樗鼪]有涉及到什么復(fù)雜的算法,很常規(guī),但是要想把它做得很好并非易事。首先這是一個(gè)管理系統(tǒng),他需要有一套完整的交互式框架以便于用戶的操作,還要有一個(gè)清晰地邏輯結(jié)構(gòu)以減小系統(tǒng)在操作上的復(fù)雜度。其次,系統(tǒng)功能的全面,要盡可能的涵蓋對(duì)學(xué)生成績(jī)的絕大局部操作,并且在到達(dá)根本功能的同事加以拓展,使其更加富。最后就是性能,決定一款軟件的好壞離不開其功能和操作,但更重要的還有性能,包含時(shí)間性能和和空間性能,一款好的軟件應(yīng)該能用最短的時(shí)間,最少的資源做最多的事,而這一切都離不開算法的設(shè)計(jì)。算法設(shè)計(jì)的是否巧妙對(duì)于一款軟件而言至關(guān)之重要。此外,雖然課程設(shè)計(jì)已經(jīng)完成,但對(duì)于一個(gè)系統(tǒng)而言不能永遠(yuǎn)停留在黑底白字的控制臺(tái)窗口上,他應(yīng)該在一個(gè)更加人性化的有可視化圖形界面的面向用戶的軟件,所以對(duì)于這些方面,我還有很長(zhǎng)的一段路要走,還有很多東西值得挖掘。〔八〕附錄附錄1:〔學(xué)生成績(jī)管理系統(tǒng)源代碼〕1、頭文件〔func.h〕源代碼:#ifndef_FUNC_H_#define_FUNC_H_#include<iostream>#include<stdlib.h>#include<string.h>#include<stdio.h>#definen20#definem10#definemaxnum999usingnamespacestd;structdata{ charName[n];//姓名 charClass[n];//班級(jí) charNumber[n];//學(xué)號(hào) floatcprog,media,eng,math,sport;//各科成績(jī) floatsum;//總分 floatave;//平均數(shù) intorder;//名次};typedefdata*Infor;Inforstu[maxnum];//存放學(xué)生信息的數(shù)組intamount;//系統(tǒng)實(shí)際存放的學(xué)生人數(shù)voidPrint_space()//打印空格{ inti; for(i=0;i<15;i++) cout<<"";}voidarry()//初始化學(xué)生信息數(shù)組{ inti; for(i=0;i<maxnum;i++){ stu[i]=NULL; }}voidPrint_menu()//打印主菜單{ cout<<endl; Print_space(); cout<<"*******************系統(tǒng)菜單********************"<<endl; Print_space(); cout<<"1.成績(jī)錄入2.成績(jī)排名"<<endl; Print_space();cout<<endl; Print_space(); cout<<"3.成績(jī)統(tǒng)計(jì)4.成績(jī)查詢"<<endl; Print_space();cout<<endl; Print_space(); cout<<"5.成績(jī)修改6.成績(jī)刪除"<<endl; Print_space();cout<<endl; Print_space(); cout<<"7.文本輸出8.用戶須知"<<endl; Print_space();cout<<endl; Print_space(); cout<<"9.退出系統(tǒng)"<<endl; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"請(qǐng)選擇:";}voidPrint_insert()//打印信息錄入提示{ Print_space(); cout<<"******************成績(jī)錄入*********************"<<endl;Print_space(); cout<<"注:請(qǐng)按系統(tǒng)提示輸入信息,按空格鍵后回車退出"<<endl;}voidPrint_sorting()//打印成績(jī)排名菜單{ Print_space(); cout<<"*******************成績(jī)排名********************"<<endl;Print_space(); cout<<"成績(jī)排名如下:"<<endl;}voidPrint_count(){ Print_space(); cout<<"*******************成績(jī)統(tǒng)計(jì)********************"<<endl;Print_space(); cout<<"各科成績(jī)統(tǒng)計(jì)如下:"<<endl;}voidPrint_delete()//打印成績(jī)刪除菜單{ Print_space(); cout<<"*******************成績(jī)刪除********************"<<endl;Print_space(); cout<<"|1.按姓名刪除2.按學(xué)號(hào)刪除|"<<endl;Print_space(); cout<<"***********************************************"<<endl;Print_space(); cout<<"請(qǐng)選擇:";}voidPrint_search()//打印成績(jī)查詢菜單{ Print_space(); cout<<"*******************成績(jī)查詢********************"<<endl;Print_space(); cout<<"|1.按姓名查詢2.按學(xué)號(hào)查詢|"<<endl;Print_space(); cout<<"***********************************************"<<endl;Print_space(); cout<<"請(qǐng)選擇:";}voidPrint_rewrite()//打印成績(jī)排名菜單{ Print_space(); cout<<"*******************成績(jī)修改********************"<<endl;Print_space(); cout<<"請(qǐng)輸入想要修改的學(xué)生姓名:";}voidPrint_output(){ Print_space(); cout<<"*******************文本輸出********************"<<endl;}voidGet_infor(Infor&s)//信息錄入{ arry(); inti,j; s=newdata; stu[1]=s; cout<<endl; Print_space(); cout<<"姓名:"; getchar(); gets(s->Name); Print_space(); cout<<"班級(jí):"; gets(s->Class); Print_space(); cout<<"學(xué)號(hào):"; gets(s->Number); Print_space(); cout<<"C程序設(shè)計(jì):"; cin>>s->cprog; Print_space(); cout<<"多媒體技術(shù):"; cin>>s->media; Print_space(); cout<<"大學(xué)英語(yǔ):"; cin>>s->eng; Print_space(); cout<<"高等數(shù)學(xué):"; cin>>s->math; Print_space(); cout<<"大學(xué)體育:"; cin>>s->sport; s->sum=(s->cprog)+(s->media)+(s->eng)+(s->math)+(s->sport); s->ave=(s->sum)/5; for(i=2;i<maxnum;i++){ s=newdata; stu[i]=s; cout<<endl; Print_space(); cout<<"姓名:"; getchar(); gets(stu[i]->Name); if((strcmp(stu[i]->Name,""))==0)//當(dāng)字符串為空格時(shí)退出輸入 break; Print_space(); cout<<"班級(jí):"; gets(stu[i]->Class); Print_space(); cout<<"學(xué)號(hào):"; gets(stu[i]->Number); Print_space(); cout<<"C程序設(shè)計(jì):"; cin>>stu[i]->cprog; Print_space(); cout<<"多媒體技術(shù):"; cin>>stu[i]->media; Print_space(); cout<<"大學(xué)英語(yǔ):"; cin>>stu[i]->eng; Print_space(); cout<<"高等數(shù)學(xué):"; cin>>stu[i]->math; Print_space(); cout<<"大學(xué)體育:"; cin>>stu[i]->sport; stu[i]->sum=(s->cprog)+(s->media)+(s->eng)+(s->math)+(s->sport); stu[i]->ave=(s->sum)/5; } amount=i-1;}voidSorting(int&amount)//按學(xué)生成績(jī)總分排序〔降序〕{ inti,j; Infortemp; boolflag; i=1; do{ flag=false; for(j=amount;j>i;j--) if(stu[j]->sum>stu[j-1]->sum){ temp=stu[j]; stu[j]=stu[j-1]; stu[j-1]=temp; flag=true; } i++; }while(i<=amount&&flag==true); for(i=1;i<=amount;i++) stu[i]->order=i;//確定學(xué)生名次}voidPrint_Infor(inti)//打印學(xué)生信息{ intj; Print_space();cout<<"***********************************************"<<endl; Print_space(); cout<<"姓名:"; puts(stu[i]->Name); Print_space(); cout<<"班級(jí):"; puts(stu[i]->Class); Print_space(); cout<<"學(xué)號(hào):"; puts(stu[i]->Number); Print_space(); cout<<"名次:"<<stu[i]->order<<endl; Print_space(); cout<<"C程序設(shè)計(jì):"<<stu[i]->cprog<<endl; Print_space(); cout<<"多媒體技術(shù):"<<stu[i]->media<<endl; Print_space(); cout<<"大學(xué)英語(yǔ):"<<stu[i]->eng<<endl; Print_space(); cout<<"高等數(shù)學(xué):"<<stu[i]->math<<endl; Print_space(); cout<<"大學(xué)體育:"<<stu[i]->sport<<endl; Print_space(); cout<<"總分:"<<stu[i]->sum<<endl; Print_space(); cout<<"平均分:"<<stu[i]->ave<<endl;}voidSearch_infor1()//查詢學(xué)生信息〔按姓名〕{chars[20];inti;boolsig=false; cout<<"請(qǐng)輸入姓名:"; getchar(); gets(s); for(i=1;i<=amount;i++){ if((strcmp(stu[i]->Name,s)==0)){ Print_Infor(i); sig=true; break; } } if(sig==false){ Print_space(); cout<<"查詢失敗,無(wú)此學(xué)生信息!"<<endl; }}voidSearch_infor2()//查詢學(xué)生成績(jī)〔按學(xué)號(hào)〕{ chars[20]; inti; boolsig=false; cout<<"請(qǐng)輸入學(xué)號(hào):"; getchar(); gets(s); for(i=1;i<=amount;i++){ if((strcmp(stu[i]->Number,s)==0)){ Print_Infor(i); sig=true; break; } } if(sig==false){ Print_space(); cout<<"查詢失敗,無(wú)此學(xué)生信息!"<<endl; }}voidRewrite()//修改學(xué)生信息{ charss[20]; inti,j; getchar(); gets(ss); for(i=1;i<=amount;i++){ if((strcmp(ss,stu[i]->Name)==0)){ Print_Infor(i); cout<<endl; break; } } Print_space(); cout<<"請(qǐng)輸入該學(xué)生的新信息:"<<endl;Print_space(); cout<<"姓名:";//開始錄入新信息 gets(stu[i]->Name);Print_space(); cout<<"班級(jí):"; gets(stu[i]->Class);Print_space(); cout<<"學(xué)號(hào):"; gets(stu[i]->Number);Print_space(); cout<<"C程序設(shè)計(jì):"; cin>>stu[i]->cprog;Print_space(); cout<<"多媒體技術(shù):"; cin>>stu[i]->media;Print_space(); cout<<"大學(xué)英語(yǔ):"; cin>>stu[i]->eng;Print_space(); cout<<"高等數(shù)學(xué):"; cin>>stu[i]->math;Print_space(); cout<<"大學(xué)體育:"; cin>>stu[i]->sport; stu[i]->sum=(stu[i]->cprog)+(stu[i]->media)+(stu[i]->eng)+(stu[i]->math)+(stu[i]->sport); stu[i]->ave=(stu[i]->sum)/5; Sorting(amount);//重新排序}voidDelete_infor1()//刪除學(xué)生信息〔按姓名〕{ inti,j; charss[20]; Print_space(); cout<<"請(qǐng)輸入要?jiǎng)h除的學(xué)生姓名:"; getchar(); gets(ss); Print_space(); for(i=1;i<=amount;i++){ if((strcmp(ss,stu[i]->Name)==0)){cout<<"以下是該學(xué)生信息:"<<endl; Print_Infor(i); cout<<endl; break; } } Print_space(); cout<<"*******************確定刪除?******************"<<endl;Print_space(); cout<<"|1.YES2.NO|"<<endl;Print_space(); cout<<"***********************************************"<<endl;Print_space(); cout<<"請(qǐng)選擇:"; cin>>j; if(j=1){ if(i==amount){ amount--; Sorting(amount);Print_space();cout<<"刪除成功!"<<endl; } else{ for(j=i;j<amount;j++) stu[j]=stu[j+1]; amount--; Sorting(amount); Print_space(); cout<<"刪除成功!"<<endl; } } if(j==0) return;}voidDelete_infor2()//刪除學(xué)生信息〔按學(xué)號(hào)〕{ inti,j; charss[20]; Print_space(); cout<<"請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):"; getchar(); gets(ss); Print_space(); for(i=1;i<=amount;i++){ if((strcmp(ss,stu[i]->Number)==0)){ cout<<"以下是該學(xué)生信息:"<<endl; Print_Infor(i); cout<<endl; break; } } Print_space(); cout<<"*******************確定刪除?******************"<<endl;Print_space(); cout<<"|1.YES2.NO|"<<endl;Print_space(); cout<<"***********************************************"<<endl;Print_space(); cout<<"請(qǐng)選擇:"; cin>>j; if(j=1){ if(i==amount){ amount--; Sorting(amount); Print_space(); cout<<"刪除成功!"<<endl; } else{ for(j=i;j<amount;j++) stu[j]=stu[j+1]; amount--; Sorting(amount); Print_space(); cout<<"刪除成功!"<<endl; } } if(j==0) return;}voidCount_infor()//成績(jī)統(tǒng)計(jì){ inti=0,j=0,k=0,r=0,s=0; floata; Print_space(); cout<<"參加考試的總?cè)藬?shù)為:"<<amount<<endl; for(i=1;i<=amount;i++){ s=s+stu[i]->cprog; if(stu[i]->cprog<60) j++; elseif(stu[i]->cprog>=75&&stu[i]->cprog<85) k++; elseif(stu[i]->cprog>85) r++; } a=s/amount; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"C程序設(shè)計(jì):"<<endl;Print_space(); cout<<"單科平均分:"<<a<<endl;Print_space(); cout<<"不及格人數(shù):"<<j<<endl;Print_space(); cout<<"良好人數(shù):"<<k<<endl;Print_space(); cout<<"優(yōu)秀人數(shù):"<<r<<endl; i=0,j=0,k=0,r=0,s=0; for(i=1;i<=amount;i++){ s=s+stu[i]->media; if(stu[i]->media<60) j++; elseif(stu[i]->media>=75&&stu[i]->media<85) k++; elseif(stu[i]->media>85) r++; } a=s/amount; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"多媒體技術(shù):"<<endl;Print_space(); cout<<"單科平均分:"<<a<<endl;Print_space(); cout<<"不及格人數(shù):"<<j<<endl;Print_space(); cout<<"良好人數(shù):"<<k<<endl;Print_space(); cout<<"優(yōu)秀人數(shù):"<<r<<endl; i=0,j=0,k=0,r=0,s=0; for(i=1;i<=amount;i++){ s=s+stu[i]->eng; if(stu[i]->eng<60) j++; elseif(stu[i]->eng>=75&&stu[i]->eng<85) k++; elseif(stu[i]->eng>85) r++; } a=s/amount; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"大學(xué)英語(yǔ):"<<endl;Print_space(); cout<<"單科平均分:"<<a<<endl;Print_space(); cout<<"不及格人數(shù):"<<j<<endl;Print_space(); cout<<"良好人數(shù):"<<k<<endl;Print_space(); cout<<"優(yōu)秀人數(shù):"<<r<<endl; i=0,j=0,k=0,r=0,s=0; for(i=1;i<=amount;i++){ s=s+stu[i]->math; if(stu[i]->math<60) j++; elseif(stu[i]->math>=75&&stu[i]->math<85) k++; elseif(stu[i]->math>85) r++; } a=s/amount; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"高等數(shù)學(xué):"<<endl;Print_space(); cout<<"單科平均分:"<<a<<endl;Print_space(); cout<<"不及格人數(shù):"<<j<<endl;Print_space(); cout<<"良好人數(shù):"<<k<<endl;Print_space(); cout<<"優(yōu)秀人數(shù):"<<r<<endl; i=0,j=0,k=0,r=0,s=0; for(i=1;i<=amount;i++){ s=s+stu[i]->sport; if(stu[i]->sport<60) j++; elseif(stu[i]->sport>=75&&stu[i]->sport<85) k++; elseif(stu[i]->sport>85) r++; } a=s/amount; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"大學(xué)體育:"<<endl;Print_space(); cout<<"單科平均分:"<<a<<endl;Print_space(); cout<<"不及格人數(shù):"<<j<<endl;Print_space(); cout<<"良好人數(shù):"<<k<<endl;Print_space(); cout<<"優(yōu)秀人數(shù):"<<r<<endl;}voidInfor_output(){ FILE*ff; inti; char*a; char*b; char*c; ff=fopen("D://學(xué)生成績(jī)匯總.txt","wt"); if(ff==NULL){ cout<<"文件創(chuàng)立失敗!"<<endl; } else{ ff=fopen("D://學(xué)生成績(jī)匯總.txt","w"); fputs("學(xué)生個(gè)人考試成績(jī)信息匯總\n",ff); for(i=1;i<=amount;i++){ a=stu[i]->Name; b=stu[i]->Class; c=stu[i]->Number; fputs("—————————————————————————————\n",ff); fputs("姓名:",ff); fprintf(ff,"%s\n",a); fputs("班級(jí):",ff); fprintf(ff,"%s\n",b); fputs("學(xué)號(hào):",ff); fprintf(ff,"%s\n",c); fputs("C程序設(shè)計(jì):",ff); fprintf(ff,"%.1f\n",stu[i]->cprog); fputs("多媒體技術(shù):",ff); fprintf(ff,"%.1f\n",stu[i]->media); fputs("大學(xué)英語(yǔ):",ff); fprintf(ff,"%.1f\n",stu[i]->eng); fputs("高等數(shù)學(xué):",ff); fprintf(ff,"%.1f\n",stu[i]->math); fputs("大學(xué)體育:",ff); fprintf(ff,"%.1f\n",stu[i]->sport); fputs("總分:",ff); fprintf(ff,"%.2f\n",stu[i]->sum); fputs("平均分:",ff); fprintf(ff,"%.2f\n",stu[i]->ave); fputs("名次:",ff); fprintf(ff,"%d\n",stu[i]->order); fputs("—————————————————————————————\n",ff); } } fclose(ff);}#endif//_FUNC_H_2、主程序源代碼:#include"func.h"voidmain(){ inti,j,k=1; charp[m]; charch; Infort; FILE*fp; boolsig=false; Print_space(); cout<<"***********************************************"<<endl; Print_space(); cout<<"|歡送使用學(xué)生成績(jī)管理系統(tǒng)|"<<endl; Print_space(); cout<<"***********************************************"<<endl; Print_menu(); cin>>i; switch(i) { case1: Print_insert(); Get_infor(t); break; case2: cout<<"您還未錄入學(xué)生信息!"<<endl; break; case3: cout<<"您還未錄入學(xué)生信息!"<<endl; break; case4: cout<<"您還未錄入學(xué)生信息!"<<endl; break; case5: cout<<"您還未錄入學(xué)生信息!"<<endl; break; case6: cout<<"您還未錄入學(xué)生信息!"<<endl; break; case7: cout<<"您還未錄入學(xué)生信息!"<<endl; break; case8: fp=fopen("用戶須知.txt"

溫馨提示

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

評(píng)論

0/150

提交評(píng)論