




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)姓名洪偉生院系計(jì)算機(jī)學(xué)院日期 2015年7月5日教育資料目錄第一章 設(shè)計(jì)要求 ?第二章算法分析1. 理論依據(jù)?2. 主要實(shí)現(xiàn)方法?2.1 整體流程圖 ?2.2 函數(shù)功能和函數(shù)之間的調(diào)用關(guān)系?第三章代碼(源代碼)?第四章 分析說(shuō)明?第五章 總結(jié)?第一章、設(shè)計(jì)要求1、利用所學(xué)的知識(shí)、理論和實(shí)際結(jié)合,利用資源,采用模塊化的結(jié)構(gòu),使用模仿修 改自主設(shè)計(jì)相結(jié)合的方法,鍛煉學(xué)生綜合分析解決實(shí)際問(wèn)題的編程能力;2、 通過(guò)C語(yǔ)言各個(gè)函數(shù)功能來(lái)實(shí)現(xiàn)對(duì)學(xué)生信息的管理,學(xué)生信息包括學(xué)生姓名,學(xué)號(hào),各科成績(jī);管理方式包括對(duì)學(xué)生信息的錄入,保存,排序,查找、修改、刪除等功能。第二章、算法分
2、析1、程序理論依據(jù)通過(guò)C語(yǔ)言的程序設(shè)計(jì)基礎(chǔ)的掌握,對(duì)學(xué)生成績(jī)管理系統(tǒng)進(jìn)行編寫程序。首先,通過(guò)鏈表 這一數(shù)據(jù)結(jié)構(gòu)來(lái)對(duì)學(xué)生的信息進(jìn)行錄入以及操作,在其過(guò)程中,通過(guò)各個(gè)功能語(yǔ)句以及選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)等方式的結(jié)合來(lái)達(dá)到所要實(shí)現(xiàn)的程序功能。最后通過(guò)對(duì)C語(yǔ)言中對(duì)文件的操作,對(duì)已有學(xué)生成績(jī)的讀取和新建學(xué)生成績(jī)的錄入保存。教育資料2、主要實(shí)現(xiàn)方法2.1整體流程圖學(xué)生信息管理系統(tǒng)進(jìn)入退出學(xué) 生 信 息 錄 入學(xué) 生 信 息 瀏 覽學(xué) 生 信 息 查 找學(xué) 生 信 息 修 改2.2、函數(shù)功能和函數(shù)之間的調(diào)用關(guān)系2.2.1、函數(shù)功能:void Men u_1();/void Men u_2();/void swap
3、(structstudent * phead,struct表節(jié)點(diǎn)互換void Save(struct stude nt * head);盤void Search(struct stude nt * head);生信息void Read(struct stude nt * head);生信息void Sort(struct stude nt * head);點(diǎn)排序structstude nt*Create();錄入structstude nt*Readpo in t();內(nèi)存struct stude nt * Modify(struct stude nt * head);體成員修改struct
4、stude nt * Add(struct stude nt * head);點(diǎn)插入struct stude nt * Delete(struct stude nt * head);點(diǎn)刪除主菜單 二級(jí)菜單stude nt * pback);/鏈/寫入磁/查找學(xué)/顯示學(xué)/鏈表節(jié)/學(xué)生信息手動(dòng)/磁盤文件寫入/鏈表結(jié)構(gòu)/鏈表節(jié)/鏈表節(jié)教育資料222、函數(shù)之間的調(diào)用關(guān)系: 通過(guò)switch語(yǔ)句進(jìn)行指令選擇:第三章、代碼(源代碼)學(xué)生信息管理系統(tǒng)/定義結(jié)構(gòu)體case 1: 學(xué)生信息錄入調(diào)用函數(shù)Create( )、Save( )、Menu_1( )、Menu_2()case 2:學(xué)生信息瀏覽調(diào)用函數(shù)Rea
5、dpoint() 、Sort( )、Read( )、Save( )、Menu_1()、Menu_2()case 3:學(xué)生信息查找調(diào)用函數(shù)Search( )、Readpoint( )、Menu_1( )、Menu_2()case 4:學(xué)生信息修改調(diào)用函數(shù)Modify( ) 、Readpoint( )、Save( )、Menu_1( )、Menu_2()case 5:學(xué)生信息增加調(diào)用函數(shù)Add( )、Readpoint( )、Save( )、Menu_1( )、Menu_2()case 6:學(xué)生信息刪除調(diào)用函數(shù)Delete( )、Readpoint( )Save( )、Menu_1( )、Menu
6、_2()case 0:返回主菜單調(diào)用函數(shù)Menu_1()/*/#in clude#in clude#in cludevstri ng.h struct stude ntint num;char n ame24;char sex5;int Chin ese;int Math;int En glish;struct stude nt * n ext;教育資料;void Men u_1(); void Men u_2();/主菜單二級(jí)菜單void swap(struct stude nt * phead,struct stude nt * pback); /節(jié)點(diǎn)互換void Save(struct
7、stude nt * head); 磁盤/void Search(struct stude nt * head); 學(xué)生信息/void Read(struct stude nt * head); 學(xué)生信息/void Sort(struct stude nt * head); 節(jié)點(diǎn)排序/struct stude nt * Readpo in t(); 文件寫入內(nèi)存/struct stude nt * Create();/學(xué)生信息手動(dòng)錄入struct stude nt * Modify(struct stude nt * head); 結(jié)構(gòu)體成員修改/struct stude nt * Add(s
8、truct stude nt * head); 節(jié)點(diǎn)插入/struct stude nt * Delete(struct stude nt * head); 節(jié)點(diǎn)刪除/鏈表寫入 查找 顯示 鏈表磁盤鏈表 鏈表 鏈表int mai n(void)Men u_1();return 0;void Menu_1()int num;prin tf(tttt學(xué)生信息管理系統(tǒng)ttttn);prin tf(ttt 1:進(jìn)入學(xué)生信息管理n);/主菜單prin tf(ttt 0:退出學(xué)生信息管理n);printf(請(qǐng)您輸入指令:);sca nf(%d,&nu m);switch( num) case 1:Me n
9、u_2();break;教育資料n);您已退出default:pri ntf(學(xué)生信息管理系統(tǒng)break;/*/void Men u_2()struct stude nt * head; int num;prin tf(ttt歡迎進(jìn)入n);printf(n);prin tf(ttt 1:學(xué)生信息錄入n);prin tf(ttt 2:學(xué)生信息瀏覽n);prin tf(ttt 3:學(xué)生信息查找n);prin tf(ttt 4:/二級(jí)菜單學(xué)生信息修改n);prin tf(ttt 5:學(xué)生信息增加n);prin tf(ttt 6:學(xué)生信息刪除n);prin tf(ttt 0:返回主菜單n);print
10、f(n);printf(請(qǐng)您輸入指令:);sca nf(%d,&nu m);switch( num)case 1:head = Create();Save(head);prin tf(n);printf(ttt 1:返回主菜單 n);/手動(dòng)錄入學(xué)生數(shù)據(jù)printf(ttt 2:返回二級(jí)菜單 n);prin tf(n);printf(請(qǐng)您輸入指令:);sea nf(%d,&nu m);switch( num)case 1:Me nu_1();break;case 2:Me nu_2();教育資料break;default :prin tf(輸入無(wú)效,返回二級(jí)菜單Men u_2(); break;
11、break;case 2: head = Readpo in t();/寫入鏈表,返回頭指針Sort(head);printf(ttt以學(xué)號(hào)升序排列n);Read(head);/鏈表數(shù)據(jù)寫入文件Save(head);prin tf(n);printf(ttt 1:返回主菜單 n);printf(ttt 2:返回二級(jí)菜單 n);prin tf(n);printf(請(qǐng)您輸入指令:);sca nf(%d,&nu m);switch( num)case 1:Me nu_1();break;case 2:Me nu_2();break;default :prin tf(輸入無(wú)效,返回二級(jí)菜單Men u_
12、2(); break;break;case 3:head = Readpo in t();Search(head);/查找學(xué)生信息!n);!n);教育資料prin tf(n);printf(ttt 1:返回主菜單 n);printf(ttt 2:返回二級(jí)菜單 n);prin tf(n);printf(請(qǐng)您輸入指令:);sea nf(%d,&nu m);switch( num)case 1:Me nu_1();break;case 2:Me nu_2();break;default :prin tf(輸入無(wú)效,返回二級(jí)菜單Men u_2(); break;break;case 4:head =
13、Readpo in t();Modify(head);修改結(jié)構(gòu)體成員并保存到文件Save(head);prin tf(n);printf(ttt 1:返回主菜單 n);printf(ttt 2:返回二級(jí)菜單 n);prin tf(n);printf(請(qǐng)您輸入指令:);sca nf(%d,&nu m);switch( num)case 1:Me nu_1();break;case 2:Me nu_2();break;default :prin tf(輸入無(wú)效,返回二級(jí)菜單Men u_2();break;!n);!n);教育資料/break;case 5:/增加學(xué)生信head = Readpo i
14、n t();Add(head);息并保存到文件Save(head);prin tf(n);printf(ttt 1:返回主菜單 n);printf(ttt 2:返回二級(jí)菜單 n);prin tf(n);printf( 請(qǐng)您輸入指令:);sca nf(%d,&nu m);switch( num)case 1:Me nu_1();break;case 2:Me nu_2();break;default :printf(輸入無(wú)效,返回二級(jí)菜單!n);Men u_2();break;break;case 6:head = Readpo in t();head = Delete(head);/刪除學(xué)生信
15、息并保存到文件Save(head);prin tf(n);printf(ttt 1:返回主菜單 n);printf(ttt 2:返回二級(jí)菜單 n);prin tf(n);printf( 請(qǐng)您輸入指令:);sca nf(%d,&nu m);switch( num)case 1:Me nu_1();break;教育資料 case 2:Me nu_2(); break;default :printf(輸入無(wú)效,返回二級(jí)菜單 !n);Men u_2(); break;break;case 0: Men u_1();break;default :printf(請(qǐng)重新輸入n);Men u_2();brea
16、k;/*-*/struct stude nt * Create()/學(xué)生信息手動(dòng)錄入struct stude nt *head,* p,* q;int n;p = q = (struct stude nt *)malloc(sizeof(struct stude nt);prin tf(請(qǐng)輸入學(xué)生的姓名、學(xué)號(hào)、性別、語(yǔ)文成績(jī)、高等數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī):n);sca nf(%s,q-n ame);sca nf(%d %s %d %d %d, &q- num,& q-sex, &q-Chi nese, &q-Math, &q-E nglish);n = 0;head =NULL;while (q-
17、num != 0)n = n+1;if (n = 1)head = q;else教育資料p-n ext = q;p = q;q = (struct stude nt *)malloc(sizeof(struct stude nt);sea nf(%s,q-n ame);sca nf(%d %s %d %d %d, &q- num,q-sex,&q-Chi nese, &q-Math, &q-En glish);p- next = NULL;printf( 學(xué)生信息錄入成功!n); return head;/*-*/struct stude nt * Readpo in t()/學(xué)生信息寫入內(nèi)存
18、,便于操作FILE * fp1;struct stude nt *head,* p,* q;int n;if(fp1 = fope n(E:test.txt,rb) = NULL)prin tf(ope n file error! n);exit(0);p = q = (struct stude nt *)malloc(sizeof(struct stude nt);fsca nf(fp1,%s %d %s %d %d %d,q- name, &q- num,q-sex, &q-Chi nese , &q-Math, &q-En glish);n = 0;head =NULL;while( !
19、feof(fp1)n = n+1;if (n = 1) head = q;elsep-n ext = q;p = q;教育資料q = (struct stude nt *)malloc(sizeof(struct stude nt);fsca nf(fp1,%s %d %s %d %d %d, &q- name, &q- num, &q-sex, &q- Chi ne se, &q-Math, &q-E nglish);p- next = NULL;fclose(fp1); retur n head;/*-*/ void Swap(struct stude nt * phead, struct
20、 stude nt * pback)/鏈表元素?cái)?shù)據(jù)交換struct stude nt * temp = (struct stude nt *)malloc(sizeof(struct stude nt);strcpy(temp-n ame,phead-n ame);temp-num = phead-num;strcpy(temp-sex,phead-sex);temp-Ch in ese = phead-Ch in ese;temp-Math = phead-Math; temp-En glish = phead-E nglish;strcpy(phead-n ame,pback-n ame)
21、; phead-num= pback- num; strcpy(phead-sex,pback-sex); phead-Ch in ese = pback-Ch in ese; phead-Math = pback-Math; phead-E nglish = pback-E nglish;strcpy(pback- n ame,temp-n ame); pback-num = temp-num; strcpy(pback-sex,temp-sex); pback-Chi nese = temp-Chi nese; pback-Math = temp-Math; pback-E nglish
22、= temp-E nglish;free(temp);教育資料/*-*/void Sort(struct stude nt * head)/struct stude nt * phead = (struct stude nt *)malloc(sizeof(struct stude nt);struct stude nt * pback = (struct stude nt *)malloc(sizeof(struct stude nt);phead = head;while (phead)int Num = phead-num;pback = phead-n ext;while(pback)
23、if( Num pback-num)Swap(phead,pback);Num = phead-num;pback = pback-next;phead = phead-next;/*-*/void Read(struct stude nt * head)/生信息讀取struct stude nt * p;p = head;printf(n);printf(學(xué)生的姓名、學(xué)號(hào)、性別、語(yǔ)文成績(jī)、高等數(shù)學(xué)成績(jī) 績(jī):n);while(p != NULL)printf( %s t%dt%s t %d t %dtt %dn,p-n ame,p-nu m,p-sex,p-Chi nese,p-Math,p-
24、E nglish);學(xué)號(hào)排序英語(yǔ)成p = p-n ex t;教育資料 prin tf(n);/*-*/void Save(struct stude nt * head)/生信息保存到文件struct stude nt * p;FILE * fp;if(fp = fope n( E:test.txt,wb) = NULL)prin tf(ope n file error! n);exit(0);p = head; while(p 匸NULL)fpri ntf(fp,%s %d %s %d %d %d,p-n ame,p-nu m,p-sex,p- Chi nese,p -Math,p-E ngl
25、ish);fprin tf(fp,%s,rn);p = p-n ex t;fclose(fp);/*-*/void Search(struct stude nt * head)/學(xué)生信息查找int n;struct stude nt * p;char n ame24;int num;char sex5;int Chin ese;教育資料 int Math; int En glish;printf(您想以何種方式進(jìn)行查找:n);prin tf(1;姓名n);prin tf(2:學(xué)號(hào)n);prin tf(3:性別n);prin tf(4:語(yǔ)文成績(jī)n);prin tf(5:數(shù)學(xué)成績(jī)n);prin t
26、f(6:英語(yǔ)成績(jī)n);prin tf(0:返回二級(jí)菜單n);sea nf(%d,&n);switch( n)case 1:printf(請(qǐng)輸入姓名:);/按姓名查找sca nf(%s, name);p = head;while(strcmp( name,p-n ame)!=0 & p-n ext != NULL) p = p-n ext;if(strcmp( name,p-n ame)=0)prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);elseprintf(查無(wú)此人!n);brea
27、k;case 2:printf(請(qǐng)輸入學(xué)號(hào):);/按學(xué)號(hào)查找sca nf(%d,&nu m);p = head;while( num != p-num & p-n ext != NULL)p = p-n ext;if(num = p-num)prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);elseprintf(查無(wú)此人!n);break;教育資料case 3: printf(請(qǐng)輸入性別:);找sca nf(%s,sex);p = head;while(p!= NULL)if(strc
28、mp(sex,p-sex)=0)/按性別查prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);p = p-n ext;break;case 4:printf(請(qǐng)輸入語(yǔ)文成績(jī):);/績(jī)查找sca nf(%d,&Chi nese);p = head;while(p!= NULL)if(Chi nese = p-Ch in ese)prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);p
29、= p-n ext;break;case 5:prin tf(請(qǐng)輸入高等數(shù)學(xué)成績(jī):);/學(xué)成績(jī)查找sca nf(%d,&Math);p = head;while(p!= NULL)if(Math = p-Math)prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);p = p-n ext;按語(yǔ)文成按高等數(shù)教育資料 break;case 6:printf(請(qǐng)輸入英語(yǔ)成績(jī):);/按英語(yǔ)成績(jī)查找sca nf(%d,&En glish);p = head;while(p!= NULL)if(E
30、nglish = p-E nglish)prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);p = p-n ext;break;default:printf(指令錯(cuò)誤返回二級(jí)菜單!n);Men u_2();break;/*-*/struct stude nt * Modify(struct stude nt * head) int n;struct stude nt * p;char n ame24;int num;prin tf(您想以何種方式進(jìn)行修改:n);prin tf(1;姓名
31、n);prin tf(2:學(xué)號(hào) n);printf(0:返回二級(jí)菜單n);sca nf(%d,&n);switch( n)case 1:按姓名查找后printf(請(qǐng)輸入姓名:);/修改信息教育資料 sea nf(%s, name);p = head;while(strcmp( name,p-n ame)!=0 & p-n ext != NULL)p = p-n ex t;if(strcmp( name,p-n ame)=0)sca nf(%s %d %s %d %d %d,p- name,&p- num,p-sex,&p-Chi nese,&p-Math,&p-E nglish);prin t
32、f(修改后:n);prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);elseprintf(查無(wú)此人!n);break;case 2:printf(請(qǐng)輸入學(xué)號(hào):);/按學(xué)號(hào)查找后修改信息sca nf(%d,&nu m);p = head;while( num != p-num & p-n ext != NULL)p = p-n ex t;if(num = p-num)sca nf(%s %d %s %d %d %d,p- name,&p- num,p-sex,&p-Chi nese,&p
33、-Math,&p-E nglish);prin tf(修改后:n);prin tf(%s %d %s %d %d %dn ,p-n ame,p-nu m,p-sex,p-Chi nes e,p-Math,p-E nglish);elseprintf(查無(wú)此人!n);break;default:printf(指令錯(cuò)誤,返回二級(jí)菜單!n);Men u_2();break;return head;struct student * Add(struct student * head)/增加學(xué)生信息教育資料struct stude nt * p,* q;/為增加的學(xué)生分配內(nèi)存struct stude n
34、t * add = (struct stude nt *)malloc(sizeof(struct stude nt );sca nf(%s %d %s %d %d %d,add- name, &add- num,add-sex, &add- Chi n ese,&add-Math, &add-E nglish);q = head;if(head = NULL)head = add;/add- next = NULL;else while(add- num q- num) & (q- next != NULL)占八、p = q;q = q-n ex t;if(add-num num)if (head = q)head =add;elsep-n ext = add;/add-n ext = q;elseq-n ext = add;/add- next = NULL;空表插入/指向下個(gè)節(jié)/插到首節(jié)點(diǎn)插到中間節(jié)點(diǎn)插到尾節(jié)點(diǎn)return head;刪除學(xué)生信struct stude nt * Delete(struct stude nt * head)/息 int n;struct s
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年太陽(yáng)能電池生產(chǎn)專用設(shè)備項(xiàng)目建議書
- 2025年汽車車速傳感器項(xiàng)目合作計(jì)劃書
- 2025年應(yīng)急救生系統(tǒng)項(xiàng)目建議書
- 貴州省黔東南苗族侗族自治州2024-2025學(xué)年高一上學(xué)期1月期末考試 語(yǔ)文 含解析
- 2025年新型分子篩系列產(chǎn)品項(xiàng)目建議書
- 客戶服務(wù)層次化響應(yīng)體系構(gòu)建
- 娛樂(lè)行業(yè)演出安全協(xié)議書
- Rebaudioside-E-Standard-生命科學(xué)試劑-MCE
- 伊索寓言小動(dòng)物的故事解讀
- 監(jiān)控采購(gòu)安裝合同
- 硫酸分公司30萬(wàn)噸硫磺制酸試車方案
- 高壓氧科工作總結(jié)高壓氧科個(gè)人年終總結(jié).doc
- 電子電路基礎(chǔ)習(xí)題解答
- 《政治學(xué)概論》教學(xué)大綱
- 食品生物化學(xué)習(xí)題謝達(dá)平(動(dòng)態(tài))
- 保安員工入職登記表
- 斷路器控制回路超詳細(xì)講解
- 簽證戶口本完整翻譯模板
- 睿達(dá)RDCAM激光雕刻切割軟件V5.0操作說(shuō)明書
- 變電設(shè)備運(yùn)行與維護(hù)培訓(xùn)課件(共102頁(yè)).ppt
- 機(jī)械設(shè)計(jì)基礎(chǔ)平面連桿機(jī)構(gòu)課件
評(píng)論
0/150
提交評(píng)論