




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)習(xí) - 好資料 #include #include #include #include struct STUDENT char studentNumber10;/* 同學(xué)學(xué)號(hào) */ char studentName20;/* 同學(xué)姓名 */ char className20;/* 班級(jí)名稱 */ float mark1;/* 第 1 門成果 */ float mark2;/* 第 2 門成果 */ float mark3;/* 第 3 門成果 */ struct STUDENT *next; ; struct STUDENT *headLink;/* 鏈表表頭指針 */ /* 以下是函數(shù)聲明
2、 */ void ReadInfoFormFilevoid;/* 讀入信息形成文件 */ void DisplayMenuvoid; void CreateHeadLinkvoid; struct STUDENT *MallocNodevoid; void GetInformationstruct STUDENT *t; void OutputInformationvoid; void DisplayInfoBystudentNamevoid; void DisplayInfoBystudentNumbervoid; void DisplayOneNodestruct STUDENT *t;
3、void InsertOneNodestruct STUDENT *t; void DeleteNodeBystudentNumbervoid; void ChangeMarkByNamevoid; void ChangeMarkByNumbervoid; void SaveLinkToFilevoid; void DisplayMarkSegmentvoid;/* 顯示各分?jǐn)?shù)段的同學(xué)成果 */ void CompositorByTotalMarkvoid;/* 按總成果排序 */ int choose;/* 用于接受用戶的選擇 */ /* 主函數(shù) */ int main CreateHead
4、Link; ReadInfoFormFile; DisplayMenu; return 0; /* 函數(shù)功能:從文件中讀同學(xué)信息到鏈表中 更多精品文檔 第 1 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 */ void ReadInfoFormFilevoid FILE *fp; STUDENT *p; fp=fopenstudent.txt,r; if.fp printf 文件不存在 n; return; p=MallocNode; whilefscanffp,%s%s%s%f%f%f,p-studentNumber,p-studentName,p-className,&p-mar k1,&p-mar
5、k2,&p-mark30 InsertOneNodep;p=MallocNode; fclosefp; /*函數(shù)功能:顯示菜單,依據(jù)用戶的輸入 完成相應(yīng)的功能 */ void DisplayMenuvoid STUDENT *p; printf- 請(qǐng)選擇相應(yīng)功能 -nn; printf| 1 顯示全部同學(xué)的信息 |n; |n; printf| 2 按姓名查詢 |n; printf| 3 按學(xué)號(hào)查詢 |n; printf| 4 增加同學(xué) |n; printf| 5 刪除同學(xué) |n; printf| 6 按姓名修改同學(xué)成果 |n; printf| 7 按學(xué)號(hào)修改同學(xué)成果 |n; printf| 8
6、 儲(chǔ)存全部同學(xué)信息 |n; printf| 9 顯示優(yōu)秀和不及格同學(xué)成果 printf| 10 排序結(jié)果并輸出績(jī) |n; printf| 11 退出 |nn; scanf%d,&choose;/* 取得用戶的選擇 */ switchchoose case 1: OutputInformation;/* 顯示全部同學(xué)的信息 */ 更多精品文檔 第 2 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 break; case 2: DisplayInfoBystudentName; break; case 3: DisplayInfoBystudentNumber;/* 依據(jù)用戶輸入的學(xué)號(hào)顯示該同學(xué)的信息 */
7、break; case 4: p=MallocNode;/* 先申請(qǐng)一個(gè)新結(jié)點(diǎn) */ GetInformationp;/* 要求用戶輸入信息到新結(jié)點(diǎn)中 */ InsertOneNodep;/* 將新結(jié)點(diǎn)加到鏈表中 */ break; case 5: DeleteNodeBystudentNumber;/* 依據(jù)用戶輸入的學(xué)號(hào)刪除該同學(xué) */ break; case 6: ChangeMarkByName;/* 依據(jù)用戶輸入的姓名修改同學(xué)成果 */ break; case 7: ChangeMarkByNumber;/* 依據(jù)用戶輸入的學(xué)號(hào)修改同學(xué)成果 */ break; case 8: Sav
8、eLinkToFile;/* 儲(chǔ)存數(shù)據(jù) */ break; case 9: DisplayMarkSegment;/* 顯示各分?jǐn)?shù)段的同學(xué)成果 */ break; case 10: CompositorByTotalMark; break; case 11: SaveLinkToFile;/* 儲(chǔ)存數(shù)據(jù)后再退出 */ freeheadLink; exit1; break; default: break; DisplayMenu;/* 遞歸調(diào)用 */ /* 函數(shù)功能:建立鏈表表頭 */ void CreateHeadLinkvoid 更多精品文檔 第 3 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 str
9、uct STUDENT *p; p=struct STUDENT*mallocsizeofstruct STUDENT; headLink=p; p-next=NULL; /* 函數(shù)功能:申請(qǐng)一個(gè)新結(jié)點(diǎn),并將其初始化 */ STUDENT *MallocNodevoid STUDENT *p; int i; p=struct STUDENT*mallocsizeofstruct STUDENT; ifp=NULL return NULL; fori=0;istudentNumberi=0; fori=0;istudentNamei=0; fori=0;iclassNamei=0; p-mark
10、1=0.0; p-mark2=0.0; p-mark3=0.0; p-next=NULL; return p; /* 函數(shù)功能:取得用戶輸入的同學(xué)信息 */ void GetInformationstruct STUDENT *t printf 請(qǐng)輸入同學(xué)學(xué)號(hào): n; scanf%s,t-studentNumber; printf 請(qǐng)輸入同學(xué)姓名: n; scanf%s,t-studentName; printf 請(qǐng)輸入該生所在班級(jí):n; scanf%s,t-className; printf 請(qǐng)輸入第 1 門成果: n; scanf%f,&t-mark1; printf 請(qǐng)輸入第 2 門成果
11、: scanf%f,&t-mark2; printf 請(qǐng)輸入第 3 門成果: n; n; 更多精品文檔 第 4 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 scanf%f,&t-mark3; /* 函數(shù)功能:在鏈表的結(jié)尾處增加一個(gè)結(jié)點(diǎn) */ void InsertOneNodestruct STUDENT *t struct STUDENT *p; p=headLink; whilep-next p=p-next; p-next=t; /* 函數(shù)功能:依據(jù)用戶輸入的同學(xué)姓名顯示該同學(xué)的信息 */ void DisplayInfoBystudentNamevoid struct STUDENT *p; c
12、har studentName20; char flag=0; p=headLink-next; printf 請(qǐng)輸入同學(xué)姓名: n; scanf%s,studentName; whilep ifstrcmpp-studentName,studentName=0 printf 學(xué)號(hào) t 姓名 t 班級(jí) t 成果 DisplayOneNodep; flag=1; break; p=p-next; if.flag 1t 成果 1t 成果 3t 總成果 t 平均成果 nn; printf 對(duì)不起,不存在姓名為 %s 的同學(xué) n,studentName; /* 函數(shù)功能:依據(jù)用戶輸入的學(xué)號(hào)顯示該同學(xué)的
13、信息 */ void DisplayInfoBystudentNumbervoid 更多精品文檔 第 5 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 struct STUDENT *p; char studentNumber10; char flag=0; p=headLink-next; printf 請(qǐng)輸入同學(xué)學(xué)號(hào): n; scanf%s,studentNumber; whilep ifstrcmpp-studentNumber,studentNumber=0 printf 學(xué)號(hào) t 姓名 t 班級(jí) t 成果 DisplayOneNodep; flag=1; break; p=p-next; if.
14、flag 1t 成果 1t 成果 3t 總成果 t 平均成果 nn; printf 對(duì)不起,不存在學(xué)號(hào)為 %s 的同學(xué) n,studentNumber; /* 函數(shù)功能:輸出一個(gè)結(jié)點(diǎn)的信息 */ void DisplayOneNodestruct STUDENT *t printf%st,t-studentNumber; printf%st,t-studentName; printf%st,t-className; printf%.2ft,t-mark1; printf%.2ft,t-mark2; printf%.2ft,t-mark3; printf%.2ft,t-mark1+t-mark2
15、+t-mark3; printf%.2ftn,t-mark1+t-mark2+t-mark3/3; /* 函數(shù)功能:依據(jù)用戶輸入的學(xué)號(hào)刪除該同學(xué) */ void DeleteNodeBystudentNumbervoid char studentNumber10; struct STUDENT *p,*q; char flag=0; printf 請(qǐng)輸入要?jiǎng)h除的同學(xué)學(xué)號(hào): ; 更多精品文檔 第 6 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 scanf%s,studentNumber; p=headLink; q=headLink-next; whileq ifstrcmpq-studentNumber
16、,studentNumber=0 p-next=q-next; freeq; flag=1; break; p=p-next; q=q-next; if.flag printf 不存在該學(xué)號(hào)的同學(xué) n; return; printf 成功刪除 n; /* 函數(shù)功能:顯示全部同學(xué)的信息 */ void OutputInformationvoid struct STUDENT *p; p=headLink-next; ifp=NULL printf 現(xiàn)在沒有同學(xué)信息,請(qǐng)先輸入同學(xué)信息 nn; return; printf 學(xué)號(hào) t 姓名 t 班級(jí) t 成果 1t 成果 2t whilep Disp
17、layOneNodep; p=p-next; /* 函數(shù)功能:依據(jù)輸入的姓名修改成果 */ 更多精品文檔 成果 3t 總成果 t 平均成果 nn; 學(xué)習(xí) - 好資料 void ChangeMarkByNamevoid struct STUDENT *p; char studentName20; char flag=0; float mark1,mark2,mark3; p=headLink-next; printf 請(qǐng)輸入同學(xué)姓名: n; scanf%s,studentName;whilep ifstrcmpp-studentName,studentName=0 printf 請(qǐng)輸入新的第 1
18、 門成果: n; scanf%f,&mark1; printf 請(qǐng)輸入新的第 2 門成果: n; scanf%f,&mark2; printf 請(qǐng)輸入新的第 3 門成果: n; scanf%f,&mark3; p-mark1=mark1; p-mark2=mark2; p-mark3=mark3; flag=1; printf 修改成功 n; break; p=p-next; if.flag printf 對(duì)不起,不存在姓名為 %s 的同學(xué) n,studentName; /* 函數(shù)功能:依據(jù)輸入的學(xué)號(hào)修改成果 */ void ChangeMarkByNumbervoid struct STUD
19、ENT *p; char studentNumber20; char flag=0; float mark1,mark2,mark3; p=headLink-next; printf 請(qǐng)輸入同學(xué)學(xué)號(hào): n; scanf%s,studentNumber; whilep 更多精品文檔 第 8 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 ifstrcmpp-studentNumber,studentNumber=0 printf 請(qǐng)輸入新的第 1 門成果: n; scanf%f,&mark1; printf 請(qǐng)輸入新的第 2 門成果: n; scanf%f,&mark2; printf 請(qǐng)輸入新的第 3 門成
20、果: n; scanf%f,&mark3; p-mark1=mark1; p-mark2=mark2; p-mark3=mark3; flag=1; printf 修改成功 n; break; p=p-next; if.flag printf 對(duì)不起,不存在學(xué)號(hào)為 %s 的同學(xué) n,studentNumber; /* 函數(shù)功能:儲(chǔ)存鏈表數(shù)據(jù)到文件中 */ void SaveLinkToFilevoid struct STUDENT *p; FILE *fp; p=headLink-next; ifp=NULL printf 現(xiàn)在沒有同學(xué)信息,請(qǐng)先輸入同學(xué)信息 nn; return; fp=fo
21、penstudent.txt,w+; if.fp printf 文件不存在 n; return; whilep fprintffp,%s %s %s %f %f %fn,p-studentNumber,p-studentName,p-className,p-mark1, p-mark2,p-mark3; 更多精品文檔 第 9 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 p=p-next; fclosefp; /* 函數(shù)功能:顯示優(yōu)秀和不及格同學(xué)成果 */ void DisplayMarkSegmentvoid struct STUDENT *p; int count=0; p=headLink-next
22、; printf60 分以下 不及格 的同學(xué)成果如下: n; printf 學(xué)號(hào) t 姓名 t 班級(jí) t 成果 1t 成果 1t whilep 成果 3t 總成果 t 平均成果 nn; if6intp-mark1/10|6intp-mark2/10|6intp-mark3/10/* 只 要有一科不 及格就認(rèn)為該生不及格 */ count+; DisplayOneNodep; p=p-next; printf 不及格的同學(xué)一共有 %d 人 n,count; p=headLink-next; printf 成果優(yōu)秀的同學(xué)成果如下: n; printf 學(xué)號(hào) t 姓名 t 班級(jí) t 成果 1t 成果
23、 1t 成果 3t 總成果 t 平均成果 nn; count=0; whilep if8mark1/10&8mark2/10&8mark3/10 count+; DisplayOneNodep; p=p-next; printf 成果優(yōu)秀的同學(xué)一共有 %d 人 n,count; /* 函數(shù)功能:按總成果排序 */ void CompositorByTotalMarkvoid 更多精品文檔 第 10 頁(yè),共 12 頁(yè)學(xué)習(xí) - 好資料 struct STUDENT exchange,*r,*p,*q; r=headLink-next; ifr=NULL printf 現(xiàn)在仍沒同學(xué)信息 ,請(qǐng)先輸入同學(xué)信息 n; return; whiler/* 兩層 while 循環(huán)實(shí)現(xiàn)排序 */ p=r; q
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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至2031年中國(guó)鴨痢寶行業(yè)投資前景及策略咨詢研究報(bào)告
- 項(xiàng)目戰(zhàn)略計(jì)劃管理協(xié)議書(2篇)
- 2025至2031年中國(guó)豪華拼花門行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)線性導(dǎo)軌行業(yè)投資前景及策略咨詢研究報(bào)告
- 《跨境電商英語》課件-Case study
- 《UG-NX12軟件認(rèn)證》課件-認(rèn)識(shí)CADCAM技術(shù)和NX軟件 UGNX12.0簡(jiǎn)介
- 2025至2031年中國(guó)女裝睡袍行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)黑白多工器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年江蘇省環(huán)保產(chǎn)業(yè)合作協(xié)議書
- 施工總體計(jì)劃
- 2025年南京城市職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完整版
- (統(tǒng)編版)2025年小升初語文模擬考試卷(附帶答案)
- 2024年廣東省中考數(shù)學(xué)試卷(附答案)
- 2025年高考時(shí)政考題及參考答案(100題)
- DeepSeek人工智能語言模型探索AI世界科普課件
- 《青春期心理健康指導(dǎo)》課件
- 第18講 等腰三角形 課件中考數(shù)學(xué)復(fù)習(xí)
- 全過程工程咨詢文件管理標(biāo)準(zhǔn)
- DB65T 8024-2024 建筑用室外氣象參數(shù)標(biāo)準(zhǔn)
- 《預(yù)制高強(qiáng)混凝土風(fēng)電塔筒生產(chǎn)技術(shù)規(guī)程》文本附編制說明
- ICD-11(國(guó)際疾病分類第十一修訂)重點(diǎn)基礎(chǔ)知識(shí)總結(jié)-
評(píng)論
0/150
提交評(píng)論