影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

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

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

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

10 積分

下載資源

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

資源描述:

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

1、巢湖學(xué)院計算機與信息工程學(xué)院 課程名稱 C++課程設(shè)計 課題名稱 學(xué)生信息管理系統(tǒng) 專 業(yè) 計算機科學(xué)與技術(shù) 班 級 11級計本3班 學(xué) 號 11011169 姓 名 程張磊 聯(lián)系方式 18226926353 指導(dǎo)教師 許榮泉 目錄 一、 系統(tǒng)的設(shè)計需求--------------------------2

2、 二、 系統(tǒng)的功能模塊劃分----------------------2 三、 系統(tǒng)的整體設(shè)計--------------------------2 四、 調(diào)試分析--------------------------------6 五、 總結(jié)------------------------------------7 六、 附件:代碼------------------------------7 一、系統(tǒng)的設(shè)計需求 1、整個系統(tǒng)均用C語言實現(xiàn); 2、利用指針、鏈表來實現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計; 3、系統(tǒng)具有輸入、顯示、刪除、排序、退出基本功能; 4、系統(tǒng)的各個功

3、能模塊都用函數(shù)的形式來實現(xiàn); 5、可以將學(xué)生信息全部顯示出來出來。 二、系統(tǒng)的功能模塊劃分 每一條記錄包括一個學(xué)生的姓名、成績。同時 1、輸入功能:一次可以完成一個學(xué)生成績記錄的輸入。 2、顯示功能:完成全部學(xué)生記錄的顯示。 3、刪除功能:對指定學(xué)生的成績進行刪除。 4、排序功能:按學(xué)生從大到小進行排序。 5、修改功能:對學(xué)生的成績進行修改。 三、系統(tǒng)的整體設(shè)計 1).數(shù)據(jù)結(jié)構(gòu)設(shè)計: A、輸入功能的設(shè)計: void insert_func(void) {char s_temp[4]; ptr=(struct student *) mall

4、oc(sizeof(struct student)); printf(" Student name : "); gets(ptr->name);// gets從標準輸入設(shè)備讀取字符串// printf(" Student score: "); gets(s_temp); ptr->score = atoi(s_temp);//把字符串轉(zhuǎn)化為 整數(shù)// B、刪除功能的設(shè)計: void delete_func(void)//現(xiàn)在進入刪除操作// {char del_name[20]; printf(" Delete student name: "); gets(del_name

5、); prev = head; current = head->next; while ((current != NULL) && (strcmp(current->name , del_name)!=0))//用到了strcmp 比較字符串 {prev = current; current = current->next; }if (current != NULL) {prev->next = current->next; free(current);//釋放當前位置// printf(" %s student record deleted\n",del_name);//輸

6、出被刪除的姓名// }else printf(" Student %s not found\n",del_name);//否則此學(xué)生不存在// C、排序功能的設(shè)計: void sort_func(void) //插入數(shù)據(jù)// {prev = head;//把頭指針所指的值付給prev// current = head->next;//把頭指針的下一個指針值付給當前指針所指的位置// while ((current != NULL) && (current->score > ptr->score)) {prev = current; current = current->ne

7、xt; }ptr->next = current; prev->next = ptr; D、修改功能的設(shè)計: void modify_func(void) {char n_temp[20],s_temp[4];//定義字符類型// printf(" Modify student name: "); gets(n_temp);//這樣輸入姓名 current=head->next; while ((current != NULL) && (strcmp(current->name , n_temp)!=0)) {prev = current; current = curre

8、nt->next; }if (current != NULL) {printf(" **************************\n"); printf(" Student name : %s\n",current->name); printf(" Student score: %d\n",current->score); printf(" **************************\n"); printf(" Please enter new score: "); gets(s_temp); current->score = atoi(s_temp);

9、 printf(" %s student record modified\n",n_temp); }//輸出被修改的成績// else printf(" Student %s not found\n",n_temp);//否則此學(xué)生不存在// anykey_func(); E、顯示功能的設(shè)計: void display_func(void)//定義顯示// {int count=0; system("cls"); if(head->next == NULL)//如果頭指針所指數(shù)為空// {printf(" No student record\n");//則輸出學(xué)生記錄為空/

10、/ }else//否則輸出學(xué)生姓名和成績// {printf(" NAME SCORE\n"); printf(" ---------------------------\n"); current=head->next; while(current != NULL) {printf(" %-20s %3d\n", current->name, current->score); count++; current=current->next; if(count % 20 == 0) getch(); }printf(" ------------

11、---------------\n"); printf(" Total %d record(s) found\n", count); 2).功能模塊的具體設(shè)計 整個系統(tǒng)除了主函數(shù)外,另外還有8個函數(shù),實現(xiàn)5大功能:輸入功能、顯示功能、排序功能、刪除功能、修改功能。各個函數(shù)的詳細設(shè)計說明分別如下: 1、 主函數(shù) main() 利用while()循環(huán)和swithch()實現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù)。 2、 輸入記錄函數(shù)getch(); insert_func(); 這是一個無參函數(shù),用來執(zhí)行第學(xué)生成績記錄的輸入,當當沒有學(xué)生紀錄時就開始進行輸入操作。

12、 算法:先聲明一個首節(jié)點head,并將head->next設(shè)為NULL。然后用 if((fptr=fopen(“slist.dat”,”r”))==NULL)對程序進行判斷如果成立則進行輸入,輸入時運用getch()函數(shù)和insert_func()主導(dǎo)來完成。 最終效果圖: 3、 顯示記錄函數(shù) void display_func(void) 這是一個不返回值的有參函數(shù),負責對全部學(xué)生成績記錄的輸出,不足之處就是不能對學(xué)生成績進行分頁顯示。 算法: 先用if語句對頭指針的下一給位置進行判斷看是否為空如果為空則不顯示如果不為空則輸出學(xué)生姓名及成績。算法:現(xiàn)將head->next賦值給當前

13、位置current然后再用while對current進行定義最后輸出。 最終效果: 4、 刪除記錄函數(shù)void delete_func(void)這是一個有參函數(shù),先輸入要刪除的學(xué)生記錄的 姓名,找到后顯示該學(xué)生信息,等確認后便可進行刪除。 算法:從p指向的第一個結(jié)點開始,檢查該結(jié)點中的num值是否等于輸入的要求刪除的那個姓名。如果相等就將該結(jié)點刪除,如不相等,就將p后移一個結(jié)點,再如此進行下去,直到遇到表尾為止。最終效果: 5、排序函數(shù)void sort_func(void) 這是一個有參函數(shù),按學(xué)生成績的大小進行排 6、修改函數(shù) void modify_func(voi

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

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

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

17、d); void insert_func(void); void sort_func(void);// sort意思為類型// void delete_func(void); void display_func(void); /*DSFGAFSHDGSJHDF*/ void modify_func(void); /*DSFGAFSHDGSJHDF*/ void anykey_func(void); /*DSFGAFSHDGSJHDF*/ struct student { char name[20]; /*DSFGAFSHDGSJHDF*/ int score;

18、 struct student *next; }; struct student *ptr, *head, *current, *prev;//全部聲明為全局變量 int main(void) { char option1; system("cls");//清屏 read_func();//func意思為目前使用者定義函式的參數(shù)列的數(shù)目// while(1) { printf("****************************************\n"); printf(" 1.插入\n"); printf("

19、 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

20、 '1': insert_func(); break; case '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(st

21、ruct student)); head->next = NULL; /* 開始時,若表中不存在數(shù)據(jù),則要求輸入第一筆數(shù)據(jù) */ if((fptr=fopen("slist.dat","r")) == NULL) {printf(" Data file not exist\n");//數(shù)據(jù)文件不存在// printf(" Press any key to edit first record...\n"); getch();//字符插入函數(shù)// insert_func();//不存在就實行插入操作 }else {ptr=(struct student *) malloc(siz

22、eof(struct student)); while(fscanf(fptr, "%s %d", ptr->name, &ptr->score) != EOF) {sort_func(); ptr=(struct student *) malloc(sizeof(struct student)); }fclose(fptr);//關(guān)閉fptr所指的文件釋放緩沖區(qū)// }} void write_func(void) {FILE *fptr; fptr=fopen("slist.dat","w"); current=head->next;// current意思為當前的//

23、 while(current != NULL) {fprintf(fptr, "%s %d\n", current->name, current->score); current = current->next; }fclose(fptr); }void insert_func(void) //一插入就比較字符串(想比較很簡單) 不是等到全部插完了才比較 {char s_temp[4]; ptr=(struct student *) malloc(sizeof(struct student)); printf(" Student name : "); gets(ptr->nam

24、e);// gets從標準輸入設(shè)備讀取字符串// printf(" Student score: "); gets(s_temp); ptr->score = atoi(s_temp);//把字符串轉(zhuǎn)化為 整數(shù)// sort_func(); }/*以分數(shù)高低由大到小排列*/ void sort_func(void) //插入數(shù)據(jù)// {prev = head;//把頭指針所指的值付給prev// current = head->next;//把頭指針的下一個指針值付給當前指針所指的位置// while ((current != NULL) && (current->scor

25、e > ptr->score)) {prev = current; current = current->next; }ptr->next = current; prev->next = ptr; }//前面是進行成績排序操作// void delete_func(void)//現(xiàn)在進入刪除操作// {char del_name[20]; printf(" Delete student name: "); gets(del_name); prev = head; current = head->next; while ((current != NULL) && (str

26、cmp(current->name , del_name)!=0))//用到了strcmp 比較字符串 {prev = current; current = current->next; }if (current != NULL) {prev->next = current->next; free(current);//釋放當前位置// printf(" %s student record deleted\n",del_name);//輸出被刪除的姓名// }else printf(" Student %s not found\n",del_name);//否則此學(xué)生不存在//

27、 //以上為刪除操作// anykey_func(); }//進入修改操作// void modify_func(void) {char n_temp[20],s_temp[4];//定義字符類型// 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

28、(current != NULL) {printf(" **************************\n"); printf(" Student name : %s\n",current->name); printf(" Student score: %d\n",current->score); printf(" **************************\n"); printf(" Please enter new score: "); gets(s_temp); current->score = atoi(s_temp); printf(" %s st

29、udent record modified\n",n_temp); }//輸出被修改的成績// else printf(" Student %s not found\n",n_temp);//否則此學(xué)生不存在// anykey_func(); }//進入顯示操作// void display_func(void)//定義顯示// {int count=0; system("cls"); if(head->next == NULL)//如果頭指針所指數(shù)為空// {printf(" No student record\n");//則輸出學(xué)生記錄為空// }else//否則輸出

30、學(xué)生姓名和成績// {printf(" NAME SCORE\n"); printf(" ---------------------------\n"); current=head->next; while(current != NULL) {printf(" %-20s %3d\n", current->name, current->score); count++; current=current->next; if(count % 20 == 0) getch(); }printf(" ---------------------------\n"); printf(" Total %d record(s) found\n", count); }anykey_func(); }void anykey_func(void)//任何鍵繼續(xù) {printf(" Press any key to continue..."); getch(); printf("\n"); } - 11 -

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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