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

歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

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

  • 資源ID:135064804       資源大?。?span id="24d9guoke414" class="font-tahoma">165.50KB        全文頁數:12頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

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

巢湖學院計算機與信息工程學院 課程名稱 C+課程設計 課題名稱 學生信息管理系統(tǒng) 專業(yè) 計算機科學與技術 班級 11級計本3班 學號 11011169 姓名 程張磊 聯系方式 18226926353 指導教師 許榮泉 目錄一、 系統(tǒng)的設計需求-2二、 系統(tǒng)的功能模塊劃分-2三、 系統(tǒng)的整體設計-2四、 調試分析-6五、 總結-7六、 附件:代碼-7一、系統(tǒng)的設計需求1、整個系統(tǒng)均用C語言實現;2、利用指針、鏈表來實現學生成績的數據結構設計;3、系統(tǒng)具有輸入、顯示、刪除、排序、退出基本功能;4、系統(tǒng)的各個功能模塊都用函數的形式來實現;5、可以將學生信息全部顯示出來出來。二、系統(tǒng)的功能模塊劃分每一條記錄包括一個學生的姓名、成績。同時1、輸入功能:一次可以完成一個學生成績記錄的輸入。2、顯示功能:完成全部學生記錄的顯示。3、刪除功能:對指定學生的成績進行刪除。4、排序功能:按學生從大到小進行排序。5、修改功能:對學生的成績進行修改。三、系統(tǒng)的整體設計1).數據結構設計:A、輸入功能的設計:void insert_func(void) char s_temp4;ptr=(struct student *) malloc(sizeof(struct student);printf(" Student name : ");gets(ptr->name);/ gets從標準輸入設備讀取字符串/printf(" Student score: ");gets(s_temp);ptr->score = atoi(s_temp);/把字符串轉化為 整數/B、刪除功能的設計:void delete_func(void)/現在進入刪除操作/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;current = current->next;if (current != NULL)prev->next = current->next;free(current);/釋放當前位置/printf(" %s student record deletedn",del_name);/輸出被刪除的姓名/elseprintf(" Student %s not foundn",del_name);/否則此學生不存在/C、排序功能的設計:void sort_func(void) /插入數據/prev = head;/把頭指針所指的值付給prev/current = head->next;/把頭指針的下一個指針值付給當前指針所指的位置/while (current != NULL) && (current->score > ptr->score)prev = current;current = current->next;ptr->next = current;prev->next = ptr;D、修改功能的設計: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(" 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);/輸出被修改的成績/elseprintf(" Student %s not foundn",n_temp);/否則此學生不存在/anykey_func();E、顯示功能的設計:void display_func(void)/定義顯示/int count=0;system("cls");if(head->next = NULL)/如果頭指針所指數為空/printf(" No student recordn");/則輸出學生記錄為空/else/否則輸出學生姓名和成績/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);2).功能模塊的具體設計整個系統(tǒng)除了主函數外,另外還有8個函數,實現5大功能:輸入功能、顯示功能、排序功能、刪除功能、修改功能。各個函數的詳細設計說明分別如下:1、 主函數 main()利用while()循環(huán)和swithch()實現各函數的調用,系統(tǒng)根據輸入的數字選項來調用相應的函數。2、 輸入記錄函數getch(); insert_func();這是一個無參函數,用來執(zhí)行第學生成績記錄的輸入,當當沒有學生紀錄時就開始進行輸入操作。算法:先聲明一個首節(jié)點head,并將head->next設為NULL。然后用 if(fptr=fopen(“slist.dat”,”r”)=NULL)對程序進行判斷如果成立則進行輸入,輸入時運用getch()函數和insert_func()主導來完成。 最終效果圖:3、 顯示記錄函數 void display_func(void)這是一個不返回值的有參函數,負責對全部學生成績記錄的輸出,不足之處就是不能對學生成績進行分頁顯示。算法: 先用if語句對頭指針的下一給位置進行判斷看是否為空如果為空則不顯示如果不為空則輸出學生姓名及成績。算法:現將head->next賦值給當前位置current然后再用while對current進行定義最后輸出。 最終效果:4、 刪除記錄函數void delete_func(void)這是一個有參函數,先輸入要刪除的學生記錄的 姓名,找到后顯示該學生信息,等確認后便可進行刪除。算法:從p指向的第一個結點開始,檢查該結點中的num值是否等于輸入的要求刪除的那個姓名。如果相等就將該結點刪除,如不相等,就將p后移一個結點,再如此進行下去,直到遇到表尾為止。最終效果:5、排序函數void sort_func(void)這是一個有參函數,按學生成績的大小進行排6、修改函數 void modify_func(void)這是一個有參函數,先輸入要修改的學生姓名找到后對其成績進行修改。算法:先將head->next賦值給當前位置current然后用while函數對其進行定義然后檢查該節(jié)點中的姓名是不是p要找的如果相等就修改,如不相等,就將current >next賦值給current在于p節(jié)點比較直到遇到表尾為止。四、調試分析(1)剛開始沒有那個初始化函數,程序運行后,沒有輸入任何數據就試得去執(zhí)行顯示功能,結果顯示的是一些亂碼!加入初始化函數后,這種現象也隨之消失。(2)剛開始執(zhí)行輸入函數,輸入十個學生的成績,輸完后執(zhí)行顯示功能,學生成績記錄是按輸入時的順序顯示的,試著在其中增加一些語句,希望能把學號按從大到小的順序顯示,但暫時沒有成功,但最后還是按從大到小的順序輸出了。(3)在輸入函數中設了一個無限循環(huán),可以輸入無數個學生的成績信息,但最后失敗了只能一個一個輸入。(4)輸入太多個學生的成績時,屏幕顯示不能控制為一頁一頁顯示,所以為了方便起見,不要輸入太多記錄,十七左右為最佳。五、 總結經過C語言課程設計,感覺自己收獲不少!這次課程設計雖然花了我不少時間,但正是這些時間,讓我見識到了C語言的重要性。這個學生成績管理系統(tǒng)都是在自己知識范圍內完成的,所以界面清晰簡單,可能不是很好看,但絕對實用!從這里我也得到一個體會,做一個程序,或者開發(fā)一個軟件,應該著重從它的后臺制作入手,不能做出一個中看不中用的程序或者軟件。相信這次的課程設計為我以后繼續(xù)從事計算機工作打了一個小小的開頭。六、附件:代碼/* file name: slist.c */* 單向鍵結鏈表,插入、刪除使用排序 */學會對文件操作文件操作和單鏈表一起使用#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>void read_func(void);void write_func(void);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 studentchar name20; /*DSFGAFSHDGSJHDF*/int score;struct student *next;struct student *ptr, *head, *current, *prev;/全部聲明為全局變量int main(void)char option1;system("cls");/清屏read_func();/func意思為目前使用者定義函式的參數列的數目/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 '2':delete_func();break;case '3':display_func();break;case '4':modify_func();break;case '5':/ write_func();/寫入參數數目/exit(0);/這里也處理的比較好void read_func(void)FILE *fptr;/ FILE意思為歸檔/head=(struct student *) malloc(sizeof(struct student);head->next = NULL;/* 開始時,若表中不存在數據,則要求輸入第一筆數據 */if(fptr=fopen("slist.dat","r") = NULL)printf(" Data file not existn");/數據文件不存在/printf(" Press any key to edit first record.n");getch();/字符插入函數/insert_func();/不存在就實行插入操作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 student);fclose(fptr);/關閉fptr所指的文件釋放緩沖區(qū)/void write_func(void)FILE *fptr;fptr=fopen("slist.dat","w");current=head->next;/ current意思為當前的/while(current != NULL)fprintf(fptr, "%s %dn", current->name, current->score);current = current->next;fclose(fptr);void insert_func(void) /一插入就比較字符串(想比較很簡單) 不是等到全部插完了才比較char s_temp4;ptr=(struct student *) malloc(sizeof(struct student);printf(" Student name : ");gets(ptr->name);/ gets從標準輸入設備讀取字符串/printf(" Student score: ");gets(s_temp);ptr->score = atoi(s_temp);/把字符串轉化為 整數/sort_func();/*以分數高低由大到小排列*/void sort_func(void) /插入數據/prev = head;/把頭指針所指的值付給prev/current = head->next;/把頭指針的下一個指針值付給當前指針所指的位置/while (current != NULL) && (current->score > ptr->score)prev = current;current = current->next;ptr->next = current;prev->next = ptr;/前面是進行成績排序操作/void delete_func(void)/現在進入刪除操作/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;current = current->next;if (current != NULL)prev->next = current->next;free(current);/釋放當前位置/printf(" %s student record deletedn",del_name);/輸出被刪除的姓名/elseprintf(" Student %s not foundn",del_name);/否則此學生不存在/以上為刪除操作/anykey_func();/進入修改操作/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(" 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);/輸出被修改的成績/elseprintf(" Student %s not foundn",n_temp);/否則此學生不存在/anykey_func();/進入顯示操作/void display_func(void)/定義顯示/int count=0;system("cls");if(head->next = NULL)/如果頭指針所指數為空/printf(" No student recordn");/則輸出學生記錄為空/else/否則輸出學生姓名和成績/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 -

注意事項

本文(11計本(3)班《c++課程設計報告》學生信息管理系統(tǒng)程張磊)為本站會員(無***)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


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