九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

11計(jì)本(3)班《c++課程設(shè)計(jì)報(bào)告》學(xué)生信息管理系統(tǒng)程張磊

上傳人:無(wú)*** 文檔編號(hào):135064804 上傳時(shí)間:2022-08-14 格式:DOC 頁(yè)數(shù):12 大?。?65.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
11計(jì)本(3)班《c++課程設(shè)計(jì)報(bào)告》學(xué)生信息管理系統(tǒng)程張磊_第1頁(yè)
第1頁(yè) / 共12頁(yè)
11計(jì)本(3)班《c++課程設(shè)計(jì)報(bào)告》學(xué)生信息管理系統(tǒng)程張磊_第2頁(yè)
第2頁(yè) / 共12頁(yè)
11計(jì)本(3)班《c++課程設(shè)計(jì)報(bào)告》學(xué)生信息管理系統(tǒng)程張磊_第3頁(yè)
第3頁(yè) / 共12頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《11計(jì)本(3)班《c++課程設(shè)計(jì)報(bào)告》學(xué)生信息管理系統(tǒng)程張磊》由會(huì)員分享,可在線閱讀,更多相關(guān)《11計(jì)本(3)班《c++課程設(shè)計(jì)報(bào)告》學(xué)生信息管理系統(tǒng)程張磊(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、巢湖學(xué)院計(jì)算機(jī)與信息工程學(xué)院 課程名稱 C+課程設(shè)計(jì) 課題名稱 學(xué)生信息管理系統(tǒng) 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí) 11級(jí)計(jì)本3班 學(xué)號(hào) 11011169 姓名 程張磊 聯(lián)系方式 18226926353 指導(dǎo)教師 許榮泉 目錄一、 系統(tǒng)的設(shè)計(jì)需求-2二、 系統(tǒng)的功能模塊劃分-2三、 系統(tǒng)的整體設(shè)計(jì)-2四、 調(diào)試分析-6五、 總結(jié)-7六、 附件:代碼-7一、系統(tǒng)的設(shè)計(jì)需求1、整個(gè)系統(tǒng)均用C語(yǔ)言實(shí)現(xiàn);2、利用指針、鏈表來(lái)實(shí)現(xiàn)學(xué)生成績(jī)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);3、系統(tǒng)具有輸入、顯示、刪除、排序、退出基本功能;4、系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn);5、可以將學(xué)生信息全部顯示出來(lái)出來(lái)。二、系統(tǒng)的功能模塊劃分每一

2、條記錄包括一個(gè)學(xué)生的姓名、成績(jī)。同時(shí)1、輸入功能:一次可以完成一個(gè)學(xué)生成績(jī)記錄的輸入。2、顯示功能:完成全部學(xué)生記錄的顯示。3、刪除功能:對(duì)指定學(xué)生的成績(jī)進(jìn)行刪除。4、排序功能:按學(xué)生從大到小進(jìn)行排序。5、修改功能:對(duì)學(xué)生的成績(jī)進(jìn)行修改。三、系統(tǒng)的整體設(shè)計(jì)1).數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):A、輸入功能的設(shè)計(jì):void insert_func(void) char s_temp4;ptr=(struct student *) malloc(sizeof(struct student);printf( Student name : );gets(ptr-name);/ gets從標(biāo)準(zhǔn)輸入設(shè)備讀取字符串/prin

3、tf( Student score: );gets(s_temp);ptr-score = atoi(s_temp);/把字符串轉(zhuǎn)化為 整數(shù)/B、刪除功能的設(shè)計(jì):void delete_func(void)/現(xiàn)在進(jìn)入刪除操作/char del_name20;printf( Delete student name: );gets(del_name);prev = head;current = head-next;while (current != NULL) & (strcmp(current-name , del_name)!=0)/用到了strcmp 比較字符串prev = current;

4、current = current-next;if (current != NULL)prev-next = current-next;free(current);/釋放當(dāng)前位置/printf( %s student record deletedn,del_name);/輸出被刪除的姓名/elseprintf( Student %s not foundn,del_name);/否則此學(xué)生不存在/C、排序功能的設(shè)計(jì):void sort_func(void) /插入數(shù)據(jù)/prev = head;/把頭指針?biāo)傅闹蹈督oprev/current = head-next;/把頭指針的下一個(gè)指針值付給當(dāng)前

5、指針?biāo)傅奈恢?while (current != NULL) & (current-score ptr-score)prev = current;current = current-next;ptr-next = current;prev-next = ptr;D、修改功能的設(shè)計(jì):void modify_func(void)char n_temp20,s_temp4;/定義字符類型/printf( Modify student name: );gets(n_temp);/這樣輸入姓名current=head-next;while (current != NULL) & (strcmp(cur

6、rent-name , n_temp)!=0)prev = current;current = current-next;if (current != NULL)printf( *n);printf( Student name : %sn,current-name);printf( Student score: %dn,current-score);printf( *n);printf( Please enter new score: );gets(s_temp);current-score = atoi(s_temp);printf( %s student record modifiedn,

7、n_temp);/輸出被修改的成績(jī)/elseprintf( Student %s not foundn,n_temp);/否則此學(xué)生不存在/anykey_func();E、顯示功能的設(shè)計(jì):void display_func(void)/定義顯示/int count=0;system(cls);if(head-next = NULL)/如果頭指針?biāo)笖?shù)為空/printf( No student recordn);/則輸出學(xué)生記錄為空/else/否則輸出學(xué)生姓名和成績(jī)/printf( NAME SCOREn);printf( -n);current=head-next;while(current

8、!= NULL)printf( %-20s %3dn, current-name, current-score);count+;current=current-next;if(count % 20 = 0) getch();printf( -n);printf( Total %d record(s) foundn, count);2).功能模塊的具體設(shè)計(jì)整個(gè)系統(tǒng)除了主函數(shù)外,另外還有8個(gè)函數(shù),實(shí)現(xiàn)5大功能:輸入功能、顯示功能、排序功能、刪除功能、修改功能。各個(gè)函數(shù)的詳細(xì)設(shè)計(jì)說(shuō)明分別如下:1、 主函數(shù) main()利用while()循環(huán)和swithch()實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)

9、來(lái)調(diào)用相應(yīng)的函數(shù)。2、 輸入記錄函數(shù)getch(); insert_func();這是一個(gè)無(wú)參函數(shù),用來(lái)執(zhí)行第學(xué)生成績(jī)記錄的輸入,當(dāng)當(dāng)沒(méi)有學(xué)生紀(jì)錄時(shí)就開(kāi)始進(jìn)行輸入操作。算法:先聲明一個(gè)首節(jié)點(diǎn)head,并將head-next設(shè)為NULL。然后用 if(fptr=fopen(“slist.dat”,”r”)=NULL)對(duì)程序進(jìn)行判斷如果成立則進(jìn)行輸入,輸入時(shí)運(yùn)用getch()函數(shù)和insert_func()主導(dǎo)來(lái)完成。 最終效果圖:3、 顯示記錄函數(shù) void display_func(void)這是一個(gè)不返回值的有參函數(shù),負(fù)責(zé)對(duì)全部學(xué)生成績(jī)記錄的輸出,不足之處就是不能對(duì)學(xué)生成績(jī)進(jìn)行分頁(yè)顯示。算法

10、: 先用if語(yǔ)句對(duì)頭指針的下一給位置進(jìn)行判斷看是否為空如果為空則不顯示如果不為空則輸出學(xué)生姓名及成績(jī)。算法:現(xiàn)將head-next賦值給當(dāng)前位置current然后再用while對(duì)current進(jìn)行定義最后輸出。 最終效果:4、 刪除記錄函數(shù)void delete_func(void)這是一個(gè)有參函數(shù),先輸入要?jiǎng)h除的學(xué)生記錄的 姓名,找到后顯示該學(xué)生信息,等確認(rèn)后便可進(jìn)行刪除。算法:從p指向的第一個(gè)結(jié)點(diǎn)開(kāi)始,檢查該結(jié)點(diǎn)中的num值是否等于輸入的要求刪除的那個(gè)姓名。如果相等就將該結(jié)點(diǎn)刪除,如不相等,就將p后移一個(gè)結(jié)點(diǎn),再如此進(jìn)行下去,直到遇到表尾為止。最終效果:5、排序函數(shù)void sort_fu

11、nc(void)這是一個(gè)有參函數(shù),按學(xué)生成績(jī)的大小進(jìn)行排6、修改函數(shù) void modify_func(void)這是一個(gè)有參函數(shù),先輸入要修改的學(xué)生姓名找到后對(duì)其成績(jī)進(jìn)行修改。算法:先將head-next賦值給當(dāng)前位置current然后用while函數(shù)對(duì)其進(jìn)行定義然后檢查該節(jié)點(diǎn)中的姓名是不是p要找的如果相等就修改,如不相等,就將current next賦值給current在于p節(jié)點(diǎn)比較直到遇到表尾為止。四、調(diào)試分析(1)剛開(kāi)始沒(méi)有那個(gè)初始化函數(shù),程序運(yùn)行后,沒(méi)有輸入任何數(shù)據(jù)就試得去執(zhí)行顯示功能,結(jié)果顯示的是一些亂碼!加入初始化函數(shù)后,這種現(xiàn)象也隨之消失。(2)剛開(kāi)始執(zhí)行輸入函數(shù),輸入十個(gè)學(xué)生

12、的成績(jī),輸完后執(zhí)行顯示功能,學(xué)生成績(jī)記錄是按輸入時(shí)的順序顯示的,試著在其中增加一些語(yǔ)句,希望能把學(xué)號(hào)按從大到小的順序顯示,但暫時(shí)沒(méi)有成功,但最后還是按從大到小的順序輸出了。(3)在輸入函數(shù)中設(shè)了一個(gè)無(wú)限循環(huán),可以輸入無(wú)數(shù)個(gè)學(xué)生的成績(jī)信息,但最后失敗了只能一個(gè)一個(gè)輸入。(4)輸入太多個(gè)學(xué)生的成績(jī)時(shí),屏幕顯示不能控制為一頁(yè)一頁(yè)顯示,所以為了方便起見(jiàn),不要輸入太多記錄,十七左右為最佳。五、 總結(jié)經(jīng)過(guò)C語(yǔ)言課程設(shè)計(jì),感覺(jué)自己收獲不少!這次課程設(shè)計(jì)雖然花了我不少時(shí)間,但正是這些時(shí)間,讓我見(jiàn)識(shí)到了C語(yǔ)言的重要性。這個(gè)學(xué)生成績(jī)管理系統(tǒng)都是在自己知識(shí)范圍內(nèi)完成的,所以界面清晰簡(jiǎn)單,可能不是很好看,但絕對(duì)實(shí)用!

13、從這里我也得到一個(gè)體會(huì),做一個(gè)程序,或者開(kāi)發(fā)一個(gè)軟件,應(yīng)該著重從它的后臺(tái)制作入手,不能做出一個(gè)中看不中用的程序或者軟件。相信這次的課程設(shè)計(jì)為我以后繼續(xù)從事計(jì)算機(jī)工作打了一個(gè)小小的開(kāi)頭。六、附件:代碼/* file name: slist.c */* 單向鍵結(jié)鏈表,插入、刪除使用排序 */學(xué)會(huì)對(duì)文件操作文件操作和單鏈表一起使用#include #include #include #include void read_func(void);void write_func(void);void insert_func(void);void sort_func(void);/ sort意思為類型/vo

14、id delete_func(void);void display_func(void); /*DSFGAFSHDGSJHDF*/void modify_func(void); /*DSFGAFSHDGSJHDF*/void anykey_func(void); /*DSFGAFSHDGSJHDF*/struct studentchar name20; /*DSFGAFSHDGSJHDF*/int score;struct student *next;struct student *ptr, *head, *current, *prev;/全部聲明為全局變量int main(void)char

15、 option1;system(cls);/清屏read_func();/func意思為目前使用者定義函式的參數(shù)列的數(shù)目/while(1)printf(*n);printf( 1.插入n);printf( 2.刪除n);printf( 3.顯示n);printf( 4.修改n);printf( 5.退出n);printf(*n);printf( Please enter your choice (1-5).);option1=getche();printf(n);/*DSFGAFSHDGSJHDF*/switch(option1)case 1:insert_func();break;case

16、2:delete_func();break;case 3:display_func();break;case 4:modify_func();break;case 5:/ write_func();/寫入?yún)?shù)數(shù)目/exit(0);/這里也處理的比較好void read_func(void)FILE *fptr;/ FILE意思為歸檔/head=(struct student *) malloc(sizeof(struct student);head-next = NULL;/* 開(kāi)始時(shí),若表中不存在數(shù)據(jù),則要求輸入第一筆數(shù)據(jù) */if(fptr=fopen(slist.dat,r) = NUL

17、L)printf( Data file not existn);/數(shù)據(jù)文件不存在/printf( Press any key to edit first record.n);getch();/字符插入函數(shù)/insert_func();/不存在就實(shí)行插入操作elseptr=(struct student *) malloc(sizeof(struct student);while(fscanf(fptr, %s %d, ptr-name, &ptr-score) != EOF)sort_func();ptr=(struct student *) malloc(sizeof(struct stud

18、ent);fclose(fptr);/關(guān)閉fptr所指的文件釋放緩沖區(qū)/void write_func(void)FILE *fptr;fptr=fopen(slist.dat,w);current=head-next;/ current意思為當(dāng)前的/while(current != NULL)fprintf(fptr, %s %dn, current-name, current-score);current = current-next;fclose(fptr);void insert_func(void) /一插入就比較字符串(想比較很簡(jiǎn)單) 不是等到全部插完了才比較char s_temp

19、4;ptr=(struct student *) malloc(sizeof(struct student);printf( Student name : );gets(ptr-name);/ gets從標(biāo)準(zhǔn)輸入設(shè)備讀取字符串/printf( Student score: );gets(s_temp);ptr-score = atoi(s_temp);/把字符串轉(zhuǎn)化為 整數(shù)/sort_func();/*以分?jǐn)?shù)高低由大到小排列*/void sort_func(void) /插入數(shù)據(jù)/prev = head;/把頭指針?biāo)傅闹蹈督oprev/current = head-next;/把頭指針的下一個(gè)

20、指針值付給當(dāng)前指針?biāo)傅奈恢?while (current != NULL) & (current-score ptr-score)prev = current;current = current-next;ptr-next = current;prev-next = ptr;/前面是進(jìn)行成績(jī)排序操作/void delete_func(void)/現(xiàn)在進(jìn)入刪除操作/char del_name20;printf( Delete student name: );gets(del_name);prev = head;current = head-next;while (current != NULL

21、) & (strcmp(current-name , del_name)!=0)/用到了strcmp 比較字符串prev = current;current = current-next;if (current != NULL)prev-next = current-next;free(current);/釋放當(dāng)前位置/printf( %s student record deletedn,del_name);/輸出被刪除的姓名/elseprintf( Student %s not foundn,del_name);/否則此學(xué)生不存在/以上為刪除操作/anykey_func();/進(jìn)入修改操作/

22、void modify_func(void)char n_temp20,s_temp4;/定義字符類型/printf( Modify student name: );gets(n_temp);/這樣輸入姓名current=head-next;while (current != NULL) & (strcmp(current-name , n_temp)!=0)prev = current;current = current-next;if (current != NULL)printf( *n);printf( Student name : %sn,current-name);printf(

23、Student score: %dn,current-score);printf( *n);printf( Please enter new score: );gets(s_temp);current-score = atoi(s_temp);printf( %s student record modifiedn,n_temp);/輸出被修改的成績(jī)/elseprintf( Student %s not foundn,n_temp);/否則此學(xué)生不存在/anykey_func();/進(jìn)入顯示操作/void display_func(void)/定義顯示/int count=0;system(cl

24、s);if(head-next = NULL)/如果頭指針?biāo)笖?shù)為空/printf( No student recordn);/則輸出學(xué)生記錄為空/else/否則輸出學(xué)生姓名和成績(jī)/printf( NAME SCOREn);printf( -n);current=head-next;while(current != NULL)printf( %-20s %3dn, current-name, current-score);count+;current=current-next;if(count % 20 = 0) getch();printf( -n);printf( Total %d record(s) foundn, count);anykey_func();void anykey_func(void)/任何鍵繼續(xù)printf( Press any key to continue.);getch();printf(n);- 11 -

展開(kāi)閱讀全文
溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!