《學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告.doc(34頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
目錄
引言------------------------------------------------------------1
一、系統(tǒng)概述------------------------------------------------2
二、需求分析------------------------------------------------2
1、系統(tǒng)需求-------------------------------------------2
2、開發(fā)環(huán)境-------------------------------------------4
三、詳細(xì)設(shè)計(jì)------------------------------------------------6
四、所遇到的問題和分析解決--------------------------15
五、系統(tǒng)特色及關(guān)鍵技術(shù)--------------------------------16
六、結(jié)論及心得體會(huì)--------------------------------------16
七、附錄(源代碼)--------------------------------------17
參考文獻(xiàn)-----------------------------------------------------35
引言
通過本課程設(shè)計(jì),使自己更加系統(tǒng)地理解和掌握數(shù)據(jù)結(jié)構(gòu)的基本概念;能自如地根據(jù)實(shí)際要求,設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并運(yùn)用C或C++語言實(shí)現(xiàn)所設(shè)計(jì)的算法,編寫較大型的程序,分析和解決實(shí)際應(yīng)用問題,進(jìn)一步加深、鞏固所學(xué)專業(yè)課程的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)自己綜合分析問題和解決問題的能力。掌握C語言或C++語言獨(dú)立的編寫、調(diào)試應(yīng)用程序和進(jìn)行其它相關(guān)設(shè)計(jì)的技能。
此項(xiàng)目主要是考察我們對(duì)結(jié)構(gòu)體、數(shù)組、文件等具體操作,以及對(duì)C語言語法的掌握,所以做成此項(xiàng)目要求比較高的設(shè)計(jì)要求,對(duì)整體有很熟悉的概括,同時(shí)調(diào)試過程也是很重要的,對(duì)程序界面的要求也比較高,要設(shè)計(jì)的合理同時(shí)也要美觀一點(diǎn),能夠人性化的描述清楚你的各個(gè)功能,一目了然,對(duì)其他用戶使用本程序簡(jiǎn)單易懂,這才能成本程序或本系統(tǒng)是成功的。
對(duì)于學(xué)生成績(jī)管理系統(tǒng),此項(xiàng)目每年都有學(xué)生去做,但是能夠在其他項(xiàng)目中脫穎而出,還要有自己的設(shè)計(jì)特色,用簡(jiǎn)單的語言詳細(xì)描述系統(tǒng)的功能,這才是關(guān)鍵。
這個(gè)設(shè)計(jì)能夠練習(xí)我們的理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法,掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法,學(xué)會(huì)調(diào)試一個(gè)比較長(zhǎng)的程序的基本方法,同時(shí)掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力。
1
1、 系統(tǒng)概述
1、課程設(shè)計(jì)應(yīng)完成的工作
(1)編寫算法
(2)算法測(cè)試,并有具體的測(cè)試結(jié)果和結(jié)果分析
(3)撰寫課程報(bào)告,內(nèi)容包括:
①封面
②目錄
③課程設(shè)計(jì)報(bào)告正文
④使用說明
⑤參考文獻(xiàn)
2、總體設(shè)計(jì)工作(包含幾大功能模塊)
(1)輸入學(xué)生信息并保存到文件
(2)讀取文件并輸出學(xué)生信息
(3)按學(xué)號(hào)及學(xué)期查詢
(4)按姓名及學(xué)期查詢
(5)按學(xué)號(hào)及學(xué)期修改信息
(6)插入信息
(7)按學(xué)號(hào)及學(xué)期刪除信息
(8)按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序
(9)按總分降序(選擇)排序
(10)統(tǒng)計(jì)各科成績(jī)的總分和平均分
(11)退出
2、 需求分析
1、系統(tǒng)需求
(1) 問題描述:
該系統(tǒng)實(shí)現(xiàn)對(duì)若干個(gè)大學(xué)生的學(xué)習(xí)成績(jī)進(jìn)行管理。至少包括以下信息:
學(xué)號(hào)、姓名、科目、成績(jī),學(xué)期。學(xué)期取值范圍可為1-8。
2
(2)功能要求:
1.使用中文菜單,界面設(shè)計(jì)和用戶輸入輸出要人性化些;
2. 將學(xué)生信息保存在文本文檔中,具體對(duì)學(xué)生信息進(jìn)行插入刪除查詢操作時(shí),將保存在文本文檔中的學(xué)生信息提取出來,保存在自己定義的數(shù)據(jù)結(jié)構(gòu)中,然后再對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作,所有操作完成,或者在相應(yīng)的命令后,再將學(xué)生信息保存到文本文檔中。
3.具有數(shù)據(jù)輸入功能,輸入的數(shù)據(jù)能最終保存在文件中;
4.具有數(shù)據(jù)刪除功能,能最終從文件中刪除;
5.排序功能,根據(jù)自己設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)排序算法
6.具有多種查詢(如按學(xué)號(hào)查詢、按姓名查詢、按成績(jī)查詢等)及輸出功能;
7.其它功能(如各種統(tǒng)計(jì),統(tǒng)計(jì)每個(gè)學(xué)生所有課程的平均分,統(tǒng)計(jì)某門課程所有學(xué)生的平均分等等)
8.學(xué)生信息的修改(比如修改學(xué)生姓名,修改學(xué)生某門課程的成績(jī))
(3)說明:
①功能各方面越完善越好
②自定義的數(shù)據(jù)結(jié)構(gòu)可以使用數(shù)組,鏈表,樹等,然后根據(jù)不 同的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)不同的排序,查找算法。其中,排序算法至少有兩種,可以使用多種數(shù)據(jù)結(jié)構(gòu)來存放數(shù)據(jù),然后在其上使用不同的排序算法。
③若用數(shù)組,必須動(dòng)態(tài)分配空間(文本文件中最好有一行表示學(xué)生人數(shù))
(4)、輸入輸出的形式
本系統(tǒng)是一個(gè)學(xué)生成績(jī)管理系統(tǒng),采用VC++6.0 編譯器作為開 發(fā)環(huán)境,這個(gè)環(huán)境是我們?cè)趯W(xué)習(xí)C++的平臺(tái)。輸入數(shù)據(jù)類型主要是char、int、float等數(shù)據(jù)類型,輸入內(nèi)容包括:學(xué)期、學(xué)號(hào)、姓名、高等數(shù)學(xué)成績(jī),數(shù)據(jù)機(jī)構(gòu)成績(jī),組成原理成績(jī),總分,平均分等數(shù)據(jù)。用戶在輸入學(xué)生數(shù)據(jù)時(shí)要保證輸入數(shù)據(jù)格式的正確性,系統(tǒng)不會(huì)自動(dòng)檢測(cè)輸入的數(shù)據(jù)是否正確,輸出形式與輸入形式類似,根據(jù)需要可以選擇顯示輸入的各項(xiàng)內(nèi)容,還可以選擇顯示計(jì)算好平均分后并排序后的記錄,顯示內(nèi)容包括:學(xué)期、學(xué)號(hào)、姓名、高等數(shù)學(xué)成績(jī),數(shù)據(jù)機(jī)構(gòu)成績(jī),組成原理成績(jī),總分,平均分等數(shù)據(jù)。
3
2、 開發(fā)環(huán)境
Visual C++不僅僅是是一個(gè)C++編譯器,而是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境IDE,這種環(huán)境開發(fā)出來的軟件穩(wěn)定性好、可移植性強(qiáng),可以編制各種各樣的Windows應(yīng)用程序。
三、詳細(xì)設(shè)計(jì)
開始
1、系統(tǒng)流程圖
主界面
輸出學(xué)生成績(jī)
輸入學(xué)生成績(jī)
插入學(xué)生成績(jī)
按單科排序
按總分排序
刪除學(xué)生信息
退出本系統(tǒng)
查詢學(xué)生信息
修改學(xué)生信息
結(jié)束
2、界面設(shè)計(jì)
主界面:在此界面用戶可以選擇要操作的選項(xiàng),回車之后即可進(jìn)入相關(guān)的頁面進(jìn)行操作(例如:選擇1 ,即可進(jìn)入輸入學(xué)生數(shù)據(jù)頁面)
在本界面里用戶可以輸入學(xué)生相關(guān)的信息數(shù)據(jù),按照提示進(jìn)行操作即可,例如:
所有操作均有提示語,比較人性化的管理,易懂,簡(jiǎn)單。
3、大概設(shè)計(jì)模塊
(1)先編入系統(tǒng)所需的庫函數(shù),從而使程序可運(yùn)行。
#include
#include
#include//主要是對(duì)cin,cout之類的一些操縱運(yùn)算,是I/O流控制頭文件。
#include //文件和標(biāo)準(zhǔn)控制臺(tái)的輸入輸出
#include
(2) Main()函數(shù)的設(shè)計(jì)
在main()函數(shù)中主要運(yùn)用do-while循環(huán)語句和switch()-case選擇判斷語句來調(diào)用相關(guān)
功能模塊。系統(tǒng)的運(yùn)行是在一個(gè)永真的循環(huán)里進(jìn)行的,只有在主界面并選擇“退出”時(shí),才會(huì)跳出永真循環(huán),并退出程序。
(3) 主界面的設(shè)計(jì)
在主界面中包括“①輸入學(xué)生信息并保存到文件 ②讀取文件并輸出學(xué)生信息 ③按學(xué)號(hào)及學(xué)期查詢 ④按姓名及學(xué)期查詢 ⑤按學(xué)號(hào)及學(xué)期修改信息 ⑥插入信息 ⑦按學(xué)號(hào)及學(xué)期刪除信息 ⑧按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序 ⑨按總分降序(選擇)排序 ⑩統(tǒng)計(jì)各科成績(jī)的總分和平均分 11退出”等全部的功能,之所以設(shè)計(jì)這麼一個(gè)主界面,一是因?yàn)槟苁褂脩魧?duì)程序操作的流程更加清晰簡(jiǎn)明,二是保證了用戶同時(shí)只能對(duì)一個(gè)文件進(jìn)行操作系統(tǒng)的要求,保證了系統(tǒng)不會(huì)打開文件紊亂或者出現(xiàn)致命的錯(cuò)誤。每個(gè)函數(shù)體如下:
Void main(); //主函數(shù)
void input(Student *r); //輸入學(xué)生信息及數(shù)據(jù)
void output(Student *r); //輸出學(xué)生信息及數(shù)據(jù)
void searchnum(Student *r); //按學(xué)號(hào)及學(xué)期查找學(xué)生信息
void searchname(Student *r); //按姓名及學(xué)期查找學(xué)生信息
void change(Student *r); //按學(xué)號(hào)及學(xué)期修改學(xué)生信息
Student *insert(Student *r); //插入學(xué)生信息
void shanchu(Student *r); //按學(xué)號(hào)及學(xué)期刪除循聲信息
void maopao(Student *r); //按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序
void xuanze(Student *r); //按總分降序(選擇)排序
void tongji(Student *r); //統(tǒng)計(jì)各科總分和平均分信息
4、詳細(xì)設(shè)計(jì)思想
(1)確定語言算法
由于之前都沒有做過類似的設(shè)計(jì),所以一時(shí)間不能夠確定到底使用何種語言來設(shè)計(jì)本系統(tǒng),所以在網(wǎng)上看了一些其他人設(shè)計(jì)的程序,鏈表的、數(shù)組的,C++的,各種各樣的,也不知如何選擇,但是仔細(xì)地看了其中的設(shè)計(jì)思想,最終還是用C++和指針數(shù)組的來做,一是覺得本人對(duì)鏈表掌握的不是很熟練,那么在設(shè)計(jì)過程中容易產(chǎn)生不能理解的錯(cuò)誤,耽誤時(shí)間,二是想運(yùn)用C++,可以鞏固一下所學(xué)的數(shù)據(jù)結(jié)構(gòu)的知識(shí),之前做實(shí)驗(yàn)的時(shí)候一直用C來做,都沒怎么用所學(xué)的知識(shí),這時(shí)候想練練。就這樣確定了整體的結(jié)構(gòu)算法。
(2) 確定程序主要功能模塊
這個(gè)就比較簡(jiǎn)單了,主要是根據(jù)系統(tǒng)設(shè)計(jì)的說明及要求來設(shè)計(jì),從而設(shè)計(jì)了十大功能模塊,有文件操作,有系統(tǒng)維護(hù)功能,排序和統(tǒng)計(jì)功能,有輸入輸出等基本功能,比較人性化,添加了較多的提示語。這個(gè)程序的主要功能時(shí)輸入學(xué)生的學(xué)號(hào),姓名,學(xué)期和三科成績(jī)來對(duì)其進(jìn)行存儲(chǔ),在存儲(chǔ)后可以對(duì)學(xué)生的成績(jī)按學(xué)號(hào)及學(xué)期或姓名及學(xué)期來進(jìn)行查詢,同時(shí)輸出此同學(xué)的平均分及總分,之后可以對(duì)某個(gè)同學(xué)的成績(jī)進(jìn)行各種操作,例如修改,刪除等,同時(shí)還可以對(duì)學(xué)生們的成績(jī)按照總分或單科成績(jī)排序,在整個(gè)過程中所做的操作都會(huì)保存到"student.txt"文件中并顯示。
(3) 系統(tǒng)結(jié)構(gòu)體的設(shè)計(jì)
Student
總分
平均分
成績(jī)?nèi)?
學(xué)期
學(xué)號(hào)
成績(jī)二
姓名
成績(jī)一
struct Student //結(jié)構(gòu)體
{
int term;//學(xué)期
int num;//學(xué)號(hào)
char name[12];//姓名
float mark1;//成績(jī)
float mark2;
float mark3;
float sum;//總分
float average;//平均分
};
Student結(jié)構(gòu)體說明表
名稱
屬性
說明
term
數(shù)據(jù)成員
說明學(xué)生學(xué)期
num
數(shù)據(jù)成員
說明學(xué)生學(xué)號(hào)
name
數(shù)據(jù)成員
說明學(xué)生名字
mark1
數(shù)據(jù)成員
說明學(xué)生高等數(shù)學(xué)成績(jī)
mark2
數(shù)據(jù)成員
說明學(xué)生數(shù)據(jù)結(jié)構(gòu)成績(jī)
mark3
數(shù)據(jù)成員
說明學(xué)生組成原理成績(jī)
sum
數(shù)據(jù)成員
說明學(xué)生總成績(jī)
average
數(shù)據(jù)成員
說明學(xué)生平均成績(jī)
(4) 各功能模塊的設(shè)計(jì)
******主函數(shù)模塊
用函數(shù)void main()來實(shí)現(xiàn)
主要是來顯示主菜單,使用戶選擇操作。首先定義一個(gè)指針數(shù)組(全局使用)Student *p=(Student *)new Student[num];在此處num是指學(xué)生個(gè)數(shù),并不是學(xué)號(hào),之前有定義的(不要弄混了),在這里應(yīng)用了do-while和switch-case語句來進(jìn)行選擇,是個(gè)比較簡(jiǎn)單實(shí)現(xiàn)的模塊。最后若選擇“11”則是保存記錄并退出永真循環(huán)。
******輸入學(xué)生記錄模塊
用函數(shù)void input(Student *r); 來實(shí)現(xiàn)
主要功能用來對(duì)學(xué)生的成績(jī)進(jìn)行收集和輸入。首先會(huì)有個(gè)提示“輸入最初要求的學(xué)生數(shù)”,之后跳出主菜單,選擇"1",進(jìn)入輸入模塊輸入所需學(xué)生個(gè)數(shù)的學(xué)生信息,比如學(xué)期,學(xué)號(hào),姓名,成績(jī)等。輸完之后會(huì)自動(dòng)跳出主菜單,根據(jù)主菜單來在此基礎(chǔ)上進(jìn)行操作。期間會(huì)有一些提示語,按此操作即可。根據(jù)if和for語句來判定期間是否有重復(fù)學(xué)號(hào)輸入,在本操作中,允許有重復(fù)學(xué)生姓名出現(xiàn)。在此模塊中,用到了文件操作的指針FILE *fp;同時(shí)也用到了一個(gè)控制變量t,它是用來判定的條件變量,t=1表示找到了與之重復(fù)的學(xué)號(hào),t=0表示未出現(xiàn)重復(fù)學(xué)號(hào)。在此期間會(huì)根據(jù)語句算出總分和平均分,并默認(rèn)按學(xué)號(hào)排序保存到文件中去。之后返回主菜單。
寫文件操作代碼:
if((fp=fopen("student.txt","w"))==NULL) {
cout<<"文件不能打開"<>的方向問題,函數(shù)的返回值等問題,雖然容易改掉,但是很容易養(yǎng)成不好的習(xí)慣,而且還會(huì)浪費(fèi)時(shí)間,所以在一開始寫的時(shí)候就要很仔細(xì),這樣才能保證程序編的精細(xì),同時(shí)若出現(xiàn)很多這樣的錯(cuò)誤的話,在編寫程序的時(shí)候也會(huì)心里煩的,所以在編程的時(shí)候要認(rèn)真仔細(xì)。
6、 文件的寫入與讀出
剛開始時(shí)對(duì)文件的操作不是很明白,一直不能很好的操作文件,直到最后驗(yàn)收的時(shí)候,仍舊出現(xiàn)了嚴(yán)重的問題,就是對(duì)已經(jīng)存在的文件讀取問題,通過"讀取文件并輸出學(xué)生信息",將數(shù)據(jù)從文件中讀取,但是不能夠正常的讀出,最后把讀文件的操作語句進(jìn)行仔細(xì)檢查后,發(fā)現(xiàn)語句的順序有點(diǎn)問題,把fscanf()語句進(jìn)行再修改后就能夠正常的讀取文件了。
7、 內(nèi)存的分配問題
對(duì)于初學(xué)者的話對(duì)內(nèi)存的分配和釋放問題是比較抽象的和模糊的問題,在排序是之前就出現(xiàn)了交換數(shù)據(jù)困難的問題,以及內(nèi)存分配空間繁瑣釋放空間不及時(shí)的問題,造成空間的浪費(fèi),使得程序運(yùn)行時(shí)效率較低,因此最后采用了順序存儲(chǔ)記錄的方式,這就能改變前面所出現(xiàn)的問題。
8、 較小的問題方面
其余的就沒什么比較大的問題了,基本上只要細(xì)心一點(diǎn)的話就可以正確調(diào)試了。
5、 系統(tǒng)特色及關(guān)鍵技術(shù)
其實(shí)在本程序的設(shè)計(jì)過程當(dāng)中,沒有很吸引人的關(guān)鍵技術(shù),因?yàn)楸救说腃語言或C++語言都不是學(xué)的很好,所以當(dāng)初設(shè)計(jì)的時(shí)候就只是想把功能都實(shí)現(xiàn)就好了,盡可能的把所要求的功能都編進(jìn)程序,這樣就覺得很滿足了。所以都是設(shè)計(jì)的比較簡(jiǎn)單易懂的語言,這樣自己能夠更明白一些,所以就沒有時(shí)間去細(xì)細(xì)地去設(shè)計(jì)自己的程序。本程序要說有什么值得說的,那就只有人性化這點(diǎn)了,在設(shè)計(jì)成學(xué)的時(shí)候,因?yàn)樽约号屡炝?,所以添加了很詳盡的提示,這樣在編程的過程中或調(diào)試的時(shí)候都能夠比較快的運(yùn)行。還有就是盡可能的應(yīng)用了do-while語句和switch-case語句,這兩個(gè)語句在之前不是很常用,所以在這個(gè)程序中試煉了一下,雖然在編寫的過程中總是出錯(cuò),但還是成功的用好了,也是程序有條理一些。我也知道這些東西別人可能比我弄得還要好,但是我在我所學(xué)的知識(shí)中成功的應(yīng)用了這些,我覺得就是好事,就是進(jìn)步。
6、 結(jié)論及心得體會(huì)
一周多的課程設(shè)計(jì),終于成功的驗(yàn)收了,雖然有些疲憊,但還是有很多的收獲的,像計(jì)算機(jī)組成原理的課設(shè)一樣,我又一次鞏固了所學(xué)到的知識(shí),之前的學(xué)習(xí)只是停留在理論基礎(chǔ)上,現(xiàn)在自己動(dòng)手操作試驗(yàn)后,才是真正的理解及體會(huì)。C++也學(xué)了近一年,有很多知識(shí)都是似懂非懂,通過平時(shí)上機(jī)操作,自己也了解了一些,但讓我有了更深的理解和更好的認(rèn)識(shí),則是在這次的課設(shè)上,之前的困惑也通過這次的課設(shè)解決了一些,雖然還是不能夠全面的理解,但是有進(jìn)步就很高興。
在課程設(shè)計(jì)之前,因?yàn)橛辛司C合實(shí)驗(yàn)的經(jīng)驗(yàn)與教訓(xùn),明白了寫代碼這一步是非常重要的,因?yàn)楫?dāng)你把代碼輸進(jìn)去之后,并編譯讓其運(yùn)行,發(fā)現(xiàn)通過不了,再來檢查出問題,是很費(fèi)費(fèi)力的事情,因此分析和規(guī)劃代碼是很重要的,最重要的是要把邏輯結(jié)構(gòu)寫好,這樣就不會(huì)出現(xiàn)大問題,寫代碼就要先找出核心的內(nèi)容,用多種方法來實(shí)現(xiàn)核心部分,這樣可以盡可能的避免發(fā)現(xiàn)邏輯或編譯不支持的錯(cuò)誤。
通過本次論文設(shè)計(jì),我初步學(xué)會(huì)了論文設(shè)計(jì)的基本方法,學(xué)會(huì)了怎樣去借鑒別人的方法和經(jīng)驗(yàn),知道了如何整合資料和處理這些資料的能力,這位以后做畢設(shè)的論文打下了基礎(chǔ),使我感覺比較好的是有一種成功的喜悅,雖然在編譯的時(shí)候會(huì)經(jīng)常因?yàn)橐恍┬〉腻e(cuò)誤而心煩意亂,但是也不失為一件好事,失敗的越多積累的經(jīng)驗(yàn)越豐富,對(duì)人的考驗(yàn)也比較多,那么在最后編譯成功時(shí)的喜悅就越濃烈,也是自己的能力有了進(jìn)一步的提高。由于知識(shí)和經(jīng)驗(yàn)的不足,這個(gè)程序編寫的不是很盡如人意,但是融合了自己的心血,就覺得是最好的,所以在以后還是需要較多的努力的,還是會(huì)在以后的學(xué)習(xí)過程中不斷地提高和改進(jìn)的。
7、 附錄(源代碼)
#include
#include
#include//主要是對(duì)cin,cout之類的一些操縱運(yùn)算,是I/O流控制頭文件。
#include //文件和標(biāo)準(zhǔn)控制臺(tái)的輸入輸出
#include
struct Student //結(jié)構(gòu)體
{
int term;//學(xué)期
int num;//學(xué)號(hào)
char name[12];//姓名
float mark1;//成績(jī)
float mark2;
float mark3;
float sum;//總分
float average;//平均分
};
int num=0;
void input(Student *r); //輸入
void output(Student *r); //輸出
void searchnum(Student *r); //按學(xué)號(hào)及學(xué)期查找
void searchname(Student *r); //按姓名及學(xué)期查找
void change(Student *r); //按學(xué)號(hào)及學(xué)期修改信息
Student *insert(Student *r); //插入信息
void shanchu(Student *r); //按學(xué)號(hào)及學(xué)期刪除信息
void maopao(Student *r); //按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序
void xuanze(Student *r); //按總分降序(選擇)排序
void tongji(Student *r); //統(tǒng)計(jì)各科總分和平均分信息
void main()
{
cout<<"輸入學(xué)生的個(gè)數(shù):";
cin>>num;
Student *p=(Student *)new Student[num];//定義指針數(shù)組,存放學(xué)生個(gè)數(shù)
int m;
do{
cout<>m;
switch(m){
case 1:
input(p);
break;
case 2:
output(p);
break;
case 3:
searchnum(p);
break;
case 4:
searchname(p);
break;
case 5:
change(p);
break;
case 6:
p=insert(p);
break;
case 7:
shanchu(p);
break;
case 8:
maopao(p);
break;
case 9:
xuanze(p);
break;
case 10:
tongji(p);
break;
case 11:
break;
}
}while(m!=11);
}
void input(Student *r) //輸入信息
{
FILE *fp;
int n=0;
int i;
int t=0; //t為控制標(biāo)量,1為找到,0為未找到
cout<> 請(qǐng)輸入學(xué)生信息 <<========"<>r[i].term;
cout<<"請(qǐng)輸入第"<>r[i].num;
if(i>=1){
for(n=0;n>r[i].name;
cout<<"請(qǐng)輸入 高等數(shù)學(xué) 成績(jī):";
cin>>r[i].mark1;
cout<<"請(qǐng)輸入 數(shù)據(jù)結(jié)構(gòu) 成績(jī):";
cin>>r[i].mark2;
cout<<"請(qǐng)輸入 組成原理 成績(jī):";
cin>>r[i].mark3;
r[i].sum=r[i].mark1+r[i].mark2+r[i].mark3;
r[i].average=(r[i].mark1+r[i].mark2+r[i].mark3)/3;
}
if((fp=fopen("student.txt","w"))==NULL) {
cout<<"文件不能打開"<0){
FILE *fp;
if((fp=fopen("student.txt","r"))==NULL) {
cout<<"文件不能打開"<0){
cout<<"請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):";
cin>>n;
cout<<"請(qǐng)輸入學(xué)期號(hào):";
cin>>k;
for(int m=0;m0){ //如果沒輸入就查找提示
cout<<"請(qǐng)輸入要查找學(xué)生的姓名:";
cin>>n;
cout<<"請(qǐng)輸入學(xué)期號(hào):";
cin>>k;
for(int m=0;m0){
int n,k;
int t=0;
system("cls");
cout<<"輸入要修改成績(jī)的學(xué)生學(xué)號(hào):";
cin>>n;
cout<<"所需修改的學(xué)期:";
cin>>k;
for(int m=0;m>j;
switch(j){
case 1:
cout<<"輸入新的 高等數(shù)學(xué) 成績(jī):";
cin>>r[m].mark1;
break;
case 2:
cout<<"輸入新的 數(shù)據(jù)結(jié)構(gòu) 成績(jī):";
cin>>r[m].mark2;
break;
case 3:
cout<<"輸入新的 組成原理 成績(jī):";
cin>>r[m].mark3;
break;
}
t=1;
printf("是否要繼續(xù)修改此學(xué)生的其他成績(jī)記錄呢?(Y/N)");
fflush(stdin);//清空輸入緩沖區(qū),通常是為了確保不影響后面的數(shù)據(jù)讀取
scanf("%c",&chiose);
}
}
}
}
else
cout<<"未輸入任何信息?。?<
下載提示(請(qǐng)認(rèn)真閱讀)
- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
文檔包含非法信息?點(diǎn)此舉報(bào)后獲取現(xiàn)金獎(jiǎng)勵(lì)!
下載文檔到電腦,查找使用更方便
9.9
積分
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
-
學(xué)生
成績(jī)管理系統(tǒng)
課程設(shè)計(jì)
報(bào)告
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。
鏈接地址:http://www.820124.com/p-6535322.html