2022年C語言程序設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)源碼_第1頁
2022年C語言程序設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)源碼_第2頁
2022年C語言程序設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)源碼_第3頁
2022年C語言程序設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)源碼_第4頁
2022年C語言程序設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)源碼_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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 頁,共 12 頁學(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)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論