版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)習(xí) - 好資料 /* 同學(xué)成果治理系統(tǒng) 數(shù)據(jù)庫的數(shù)據(jù)項(xiàng)主要數(shù)據(jù)包括:學(xué)號,姓名,年級,專業(yè),成果 成果,總成果; 要求具有以下功能: (1)添加,刪除任意個記錄; (2)修改任意個記錄; (3)顯示,儲存記錄; 1,成果 2,成果 3,平均 (4)排序功能:打開同學(xué)數(shù)據(jù)庫,運(yùn)算每個同學(xué)的平均成果和總成果,用冒泡法或選擇排 序法將平均成果和總成果排序后生成兩個新文件(從大到?。?, 存盤并顯示這兩個文件的全部記錄; (5)查詢功能:打開總成果排序文件,用折半查找法統(tǒng)計(jì)出給定分?jǐn)?shù)的人數(shù)并顯示; 要求: (1)設(shè)計(jì)一個主函數(shù)和多個子函數(shù),每個子函數(shù)完成一個相對獨(dú)立的子功能; (2)程序運(yùn)行時(shí),第一
2、進(jìn)行口令檢查,再顯示菜單;并能依據(jù)菜單調(diào)用相應(yīng)的函數(shù)功能; 口令程序段的功能要求: 1提示用戶輸入一個口令; 2用戶輸入口令后,如口令對,就提示用戶通過,可執(zhí)行后續(xù)程序;否就不通過; */ 3可對用戶的口令輸入進(jìn)行次數(shù)限制 (如: 重復(fù)輸入 3 次都不對),就自動退出系統(tǒng); #include #include #include struct student int num; char name10; int grade; char major10; float score_1,score_2,score_3,aver,total; struct student *next; ; struct
3、student *creatvoid; struct student *addvoid; struct student *delint num; struct student *alter; void savestruct student *head; void read; void totalsortstruct student *head; void aversortstruct student *head; void Bfindsort; int all=0; void main 更多精品文檔 第 1 頁,共 14 頁學(xué)習(xí) - 好資料 int i,n,m,num; char ord10=
4、student,ord_110; struct student *p; fori=0;i=3;i+ ifi=3 exit0; printf 請第 %d 次輸入進(jìn)入系統(tǒng)的指令 :,i+1; scanf%s,ord_1; ifstrcmpord,ord_1.=0 printf 輸入的指令有誤請重新輸入; n; ifstrcmpord,ord_1=0 break; p=NULL; loop_2:printf 輸入系統(tǒng)的功能 :n0 ,建立一個數(shù)據(jù)庫; n1,添加與儲存同學(xué)數(shù)據(jù); n2,刪 除與儲存同學(xué)數(shù)據(jù); n3,修改與儲存同學(xué)數(shù)據(jù); 排序; n6,查詢指定成果的人數(shù) :; loop: scanf%
5、d,&n; ifn6 n4,顯示數(shù)據(jù)庫的記錄; n5,將數(shù)據(jù)進(jìn)行 printfn 輸入的選擇有誤請重新輸入 :; goto loop; ifn=2 printf 輸入刪除同學(xué)數(shù)據(jù)的學(xué)號 :; scanf%d,# switchn case 0:p=creat;savep;read;break; case 1:p=add;savep;read;break; case 2:p=delnum;savep;read;break; case 3:p=alter;savep;read;break; case 4:read;break; case 5: printf 輸入選擇排序的功能 loop_1:
6、 scanf%d,&m; ifm2 1,依據(jù)平均成果; 2,依據(jù)總成果 :; printfn 輸入的選擇有誤請重新輸入 :; goto loop_1; 更多精品文檔 第 2 頁,共 14 頁學(xué)習(xí) - 好資料 switchm case 1:aversortp;break; case 2:totalsortp;break; break; case 6:Bfindsort;break; loop_5: printf 輸入你要進(jìn)行的步驟: scanf%d,&n; ifn2 1,返回上一菜單菜單; 2,退出程序; n; printf 輸入的選擇有誤,請重新輸入 :; goto loop_5; switc
7、hn case 1:goto loop_2;break; case 2:break; struct student *creatvoid int i,n; struct student *head,*p,*q,*tail; printf 輸入同學(xué)的個數(shù) :; scanf%d,&n; head=NULL; fori=0;inext=p; tail=p; p-next=NULL; q=head; 更多精品文檔 第 3 頁,共 14 頁學(xué)習(xí) - 好資料 printf 輸入同學(xué)的學(xué)號,名字,年級,專業(yè),三門成果 :; scanf%d %s %d %s %f %f %f,&p-num,&p-name,&
8、p-grade,&p-major,&p-score_1, &p-score_2,&p-score_3; loop: whileq-next.=NULL ifq-num=p-num printf 輸入的同學(xué)號錯誤請重新輸入同學(xué)學(xué)號: ; scanf%d,&p-num; goto loop; q=q-next; p-aver=p-score_1+p-score_2+p-score_3/3; p-total=p-score_1+p-score_2+p-score_3; returnhead; void savestruct student *head struct student *p; FILE
9、*fp; iffp=fopenstudent.txt,wb=NULL printf 打開文件失敗; n; exit0; p=head; whilep.=NULL fwritep,sizeofstruct student,1,fp; p=p-next; fclosefp; struct student *delint num int i,n=0; struct student *p,*q,*head; FILE *fp; ifall=0 更多精品文檔 第 4 頁,共 14 頁學(xué)習(xí) - 好資料 printf 數(shù)據(jù)庫為空; n; head=NULL; returnhead; p=struct stu
10、dent *mallocsizeofstruct student; iffp=fopenstudent.txt,rb=NULL printf 打開 student.txt 文件失敗 n; exit0; fori=0;p.=NULL;i+ p=struct student *mallocsizeofstruct student; freadp,sizeofstruct student,1,fp; ifi=0 head=p; ifnum=p-num ifp=head head=p-next; else q-next=p-next; n+; all-; q=p; ifn=0 printf 沒有 %d
11、 這一同學(xué)號的同學(xué) .n,num; returnhead; struct student *add int i,j,m,n=0; FILE *fp; struct student *p,*q,*temp,*head,*tail; ifall=0 head=NULL; else 更多精品文檔 第 5 頁,共 14 頁學(xué)習(xí) - 好資料 iffp=fopenstudent.txt,rb=NULL printf 打開 student.txt 文件失敗 n; exit0; p=struct student*mallocsizeofstruct student; freadp,sizeofstruct s
12、tudent,1,fp; head=p; tail=p; whilep-next.=NULL p=struct student*mallocsizeofstruct student; freadp,sizeofstruct student,1,fp; tail-next=p; tail=p; tail-next=NULL; fclosefp; printf 輸入需要輸入同學(xué)的個數(shù) :; scanf%d,&j; fori=0;inum,&p-name,&p-grade,&p-major,&p-score_1, &p-score_2,&p-score_3; temp=head; loop_1: w
13、hiletemp.=NULL iftemp-num=p-num printf 輸入的同學(xué)號錯誤請重新輸入同學(xué)學(xué)號: ; scanf%d,&p-num; goto loop_1; temp=temp-next; p-aver=p-score_1+p-score_2+p-score_3/3; p-total=p-score_1+p-score_2+p-score_3; ifhead=NULL 更多精品文檔 第 6 頁,共 14 頁學(xué)習(xí) - 好資料 head=p; p-next=NULL; else q=head; n=1; whileq-next.=NULL q=q-next; n+; print
14、f 該鏈表一共有節(jié)點(diǎn)個數(shù) %d; n,n; loop: printf 輸入將數(shù)據(jù)插入第幾個節(jié)點(diǎn)后面; n; scanf%d,&m; ifmn printf 輸入有誤,請重新輸入; n; goto loop; q=head; ifm=0 p-next=head; head=p; else whilem-1.=0 q=q-next; m-; p-next=q-next; q-next=p; returnhead; struct student *alter int m,num,gra,n; 更多精品文檔 第 7 頁,共 14 頁學(xué)習(xí) - 好資料 char maj10,name10; float s
15、core_1,score_2,score_3; struct student *p,*q,*head; FILE *fp; ifall=0 printf 數(shù)據(jù)庫為空; n; head=NULL; returnhead; iffp=fopenstudent.txt,rb=NULL printf 打開 student.txt 文件失敗 n; exit0; p=struct student*mallocsizeofstruct student; freadp,sizeofstruct student,1,fp; head=p; q=p; loop_1:printf 輸入修改同學(xué)數(shù)據(jù)的姓名: ; sc
16、anf%s,&name; whilestrcmpname,p-name.=0 p=p-next; ifp=NULL printf 沒有該同學(xué); n; returnhead; loop: printf 請選擇修改同學(xué)的具體數(shù)據(jù) :n1,學(xué)號; 2,年級; 3,專業(yè); n4,成果 1; 5, 成果 2; 6,成果 3:; scanf%d,&m; ifm6 printfn 輸入的選擇有誤請重新輸入 :; goto loop; switchm case 1:printf 輸入新的學(xué)號 :;loop_2:scanf%d,# whileq.=NULL ifq-num=num 更多精品文檔 第 8
17、頁,共 14 頁學(xué)習(xí) - 好資料 printf 輸入的同學(xué)號錯誤請重新輸入同學(xué)學(xué)號: ; goto loop_2; q=q-next; p-num=num;break; case 2:printf 輸入新的年級 :;scanf%d,&gra; p-grade=gra; break; case 3:printf 輸入新的專業(yè) :;scanf%s,&maj; strcpyp-major,maj;break; case 4:printf 輸入新的成果 :;scanf%f,&score_1;p-score_1=score_1; p-aver=p-score_1+p-score_2+p-score_3/
18、3; p-total=p-score_1+p-score_2+p-score_3; break; case 5:printf 輸入新的成果 :;scanf%f,&score_2;p-score_2=score_2; p-aver=p-score_1+p-score_2+p-score_3/3; p-total=p-score_1+p-score_2+p-score_3;break; case 6:printf 輸入新的成果 :;scanf%f,&score_3;p-score_3=score_3; p-aver=p-score_1+p-score_2+p-score_3/3; p-total=
19、p-score_1+p-score_2+p-score_3;break; printf 選擇你要執(zhí)行的內(nèi)容: 數(shù)據(jù) ; loop_5: scanf%d,&n; ifn3 n1,返回上一菜單 n2,返回主菜單 n3,修改另一同學(xué)的 printf 輸入的選擇有誤,請重新輸入 :; goto loop_5; switchn case 1:goto loop;break;case 2:break; case 3:goto loop_1;break; returnhead; void read 更多精品文檔 第 9 頁,共 14 頁學(xué)習(xí) - 好資料 struct student *p,*head; FI
20、LE *fp; ifall=0 printf 系統(tǒng)沒有同學(xué)數(shù)據(jù); n; return; iffp=fopenstudent.txt,rb=NULL printf 打開文件失敗; n; exit0; p=struct student*mallocsizeofstruct student; freadp,sizeofstruct student,1,fp; head=p; printf 打開 文件的同學(xué)數(shù)據(jù); n; printflist num name grade major score_1 score_2 score_3 aver totaln; whilep.=NULL n, p-num,p
21、-name,p-grade,p-major,p-score_1,p-score_2,p-score_3,p-aver,p-total; p=p-next; fclosefp; void aversortstruct student *head int temp; float temp_1; char temp_210; struct student *p,*q,*i; FILE *fp; p=head; whilep-next.=NULL q=p; i=p-next; whilei.=NULL ifi-averq-aver q=i; i=i-next; 更多精品文檔 第 10 頁,共 14 頁
22、學(xué)習(xí) - 好資料 ifq.=p temp=p-num;p-num=q-num;q-num=temp; strcpytemp_2,p-name;strcpyp-name,q-name;strcpyq-name,temp_2; temp=p-grade;p-grade=q-grade;q-grade=temp; strcpytemp_2,p-major;strcpyp-major,q-major;strcpyq-major,temp_2; temp_1=p-score_1;p-score_1=q-score_1;q-score_1=temp_1; temp_1=p-score_2;p-score_
23、2=q-score_2;q-score_2=temp_1; temp_1=p-score_3;p-score_3=q-score_3;q-score_3=temp_1; temp_1=p-aver;p-aver=q-aver;q-aver=temp_1; temp_1=p-total;p-total=q-total;q-total=temp_1; p=p-next; iffp=fopenstudent_1.txt,wb+=NULL printf 打開 student_1.txt 文件失敗 n; exit0; p=head; whilep.=NULL fwritep,sizeofstruct s
24、tudent,1,fp; p=p-next; p=head; rewindfp; printf 讀出由平均成果排序出來的文件 ; n; printflist num name grade major score_1 score_2 score_3 aver totaln; whilep.=NULL freadp,sizeofstruct student,1,fp; n, p-num,p-name,p-grade,p-major,p-score_1,p-score_2,p-score_3,p-aver,p-total; 更多精品文檔 第 11 頁,共 14 頁學(xué)習(xí) - 好資料 p=p-next;
25、 fclosefp; void totalsortstruct student *head int temp; float temp_1; char temp_210; struct student *p,*q,*i; FILE *fp; p=head; whilep-next.=NULL q=p; i=p-next; whilei.=NULL ifi-totalq-total q=i; i=i-next; ifq.=p temp=p-num;p-num=q-num;q-num=temp; strcpytemp_2,p-name;strcpyp-name,q-name;strcpyq-name
26、,temp_2; temp=p-grade;p-grade=q-grade;q-grade=temp; strcpytemp_2,p-major;strcpyp-major,q-major;strcpyq-major,temp_2; temp_1=p-score_1;p-score_1=q-score_1;q-score_1=temp_1; temp_1=p-score_2;p-score_2=q-score_2;q-score_2=temp_1; temp_1=p-score_3;p-score_3=q-score_3;q-score_3=temp_1; temp_1=p-aver;p-aver=q-aver;q-aver=temp_1; temp_1=p-total;p-total=q-total;q-total=temp_1; 更多精品文檔 第 12 頁,共 14 頁學(xué)習(xí) - 好資料 p=p-next; iffp=fopenstudent_1.txt,wb+=NULL printf 打開 student_1.
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東松山職業(yè)技術(shù)學(xué)院《文獻(xiàn)檢索與利用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東生態(tài)工程職業(yè)學(xué)院《海洋生物資源調(diào)查》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東青年職業(yè)學(xué)院《基礎(chǔ)醫(yī)學(xué)概論Ⅱ3(病理學(xué))》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級上冊《5.2.1 解一元一次方程 合并同類項(xiàng)》課件與作業(yè)
- 廣東南華工商職業(yè)學(xué)院《飛機(jī)裝配技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東嶺南職業(yè)技術(shù)學(xué)院《素描(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 會計(jì)年終工作總結(jié)
- 2025年人教版七年級數(shù)學(xué)寒假復(fù)習(xí) 專題01 有理數(shù)(6重點(diǎn)串講+15考點(diǎn)提升+過關(guān)檢測)
- 【全程復(fù)習(xí)方略】2020年高考化學(xué)課時(shí)提升作業(yè)(三十一)-11.1-脂肪烴(人教版-四川專供)
- 【狀元之路】2020-2021學(xué)年高中數(shù)學(xué)人教B版必修3雙基限時(shí)練12
- 《迎接期末考試動員會》PPT班會課件
- 基于STM32的智能溫控風(fēng)扇設(shè)計(jì)
- 交易所商業(yè)計(jì)劃書
- 2024年華電江蘇能源有限公司招聘筆試參考題庫含答案解析
- 遠(yuǎn)程銀行行業(yè)背景分析
- 如何提高孩子的注意力和專注力
- 認(rèn)識海洋生物
- 2022-2023學(xué)年海南省??谑兄攸c(diǎn)中學(xué)八年級(上)期末物理試卷(含解析)
- 2023年金屬技術(shù)監(jiān)督上崗員真題模擬匯編(共1064題)
- 膽石癥教案完
- 護(hù)士個人優(yōu)點(diǎn)和缺點(diǎn)(六篇)
評論
0/150
提交評論