![C語言程序設(shè)計學(xué)生成績記錄簿_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/02b2ccdf-f0ce-414b-bbae-c60db9abdca3/02b2ccdf-f0ce-414b-bbae-c60db9abdca31.gif)
![C語言程序設(shè)計學(xué)生成績記錄簿_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/02b2ccdf-f0ce-414b-bbae-c60db9abdca3/02b2ccdf-f0ce-414b-bbae-c60db9abdca32.gif)
![C語言程序設(shè)計學(xué)生成績記錄簿_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/02b2ccdf-f0ce-414b-bbae-c60db9abdca3/02b2ccdf-f0ce-414b-bbae-c60db9abdca33.gif)
![C語言程序設(shè)計學(xué)生成績記錄簿_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/02b2ccdf-f0ce-414b-bbae-c60db9abdca3/02b2ccdf-f0ce-414b-bbae-c60db9abdca34.gif)
![C語言程序設(shè)計學(xué)生成績記錄簿_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/02b2ccdf-f0ce-414b-bbae-c60db9abdca3/02b2ccdf-f0ce-414b-bbae-c60db9abdca35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程實驗報告課程名稱C語言程序設(shè)計班級13新能源2班實驗日期2013年8月1號姓名許鑫學(xué)號130370236實驗成績實驗名稱學(xué)生成績記錄簿系統(tǒng)實驗題目描述本程序是非數(shù)值計算型算法設(shè)計,我設(shè)計出了學(xué)生成績記錄簿系統(tǒng)的基本功能,并設(shè)計了簡單的界面。本程序主要考察對自定義函數(shù)的熟悉程度,本程序主要使用的是鏈表的相關(guān)操作,包括結(jié)構(gòu)體鏈表的創(chuàng)建、輸入、輸出、查找、刪除等。我設(shè)計的這個成績記錄簿系統(tǒng)也初步實現(xiàn)了學(xué)生成績信息的顯示、輸入、刪除、查找等必要的功能。 1.建立一個主界面 2.用switch語句進(jìn)行分類討論 3.分別進(jìn)入錄入,查詢,刪除,等子函數(shù)。 4.將子函數(shù)與主函數(shù)相連即可。該程序可以建立學(xué)生
2、的成績記錄??梢苑奖憷蠋熀屯瑢W(xué)方便的查閱成績;這個程序有錄入和刪除的功能; 還可以求出平均成績,并排序成績記錄簿中記錄以下數(shù)據(jù):學(xué)號、姓名、課程編號、課程名稱、成績、學(xué)分 添加成績:需要輸入學(xué)生的學(xué)號或姓名、課程編號及成績,如已有該門課程成績給出提示; 查詢(班級或個人)成績: 查詢個人成績:以學(xué)號或姓名作為關(guān)鍵字,可查詢一個學(xué)生的所有成績,和已完成的總學(xué)分。 查詢班級成績:以課程編號為關(guān)鍵字,成績表后面要統(tǒng)計平均分、及格率及全班同學(xué)不同課程在不同分?jǐn)?shù)段分布的人數(shù)及百分比。拓展功能: a) 程序啟動時先從文件讀
3、入數(shù)據(jù),如果文件中沒有數(shù)據(jù)則給出提示; b) 每次修改的數(shù)據(jù)寫入文件實驗環(huán)境以自己的電腦為主要的實驗平臺,運用Visual C+ 6.0這個軟件進(jìn)行反復(fù)的編寫實驗。實驗界面截圖1、開始時2、添加3、查詢4、查詢成績5、寫文本6、讀取算法描述及實驗步驟主程序提供一個界面,允許用戶選擇。使用switch語句,用時直接輸入數(shù)字即可。增加函數(shù),功能是插入學(xué)生成績。使用一個無窮循環(huán),直到錄入”n”時結(jié)束。刪除函數(shù),功能是刪除,分為兩步,先找后刪。找,用strcmp函數(shù) 來做如果找到記錄i值,反之記為-1;刪除可以從i項開始將數(shù)組的后一項賦值給前一項。前一項自動被刪掉。這樣完成刪除。查詢函數(shù)與之類似,將刪
4、除改為輸出即可;求平均值函數(shù)與查詢類似只是輸出時只輸出平均值而已。按平均值排序只要加一個排序函數(shù)即可。退出函數(shù)什么都不寫,即可。程序流程圖查詢成績添加成績 添加學(xué)生成績添加課程編號添加學(xué)生姓名添加學(xué)生學(xué)號查詢班級成績查詢學(xué)生成績查詢班級成績查詢學(xué)生成績課程編號學(xué)號查詢姓名查詢調(diào)試過程及實驗結(jié)果總結(jié)經(jīng)過一個多星期的編譯原理課程設(shè)計,在我的努力下,順利完成該課程設(shè)計。通過該課程設(shè)計,掌握了編譯程序工作的基本過程及其各階段的基本任務(wù),熟悉了編譯程序總流程框圖,了解了編譯程序的生成過程及其相關(guān)的技術(shù),對課本上的知識也有了更深的理解。老師常說,課本上的知識是機械的,表面的,要學(xué)會去運用,要舉一反三?,F(xiàn)在
5、終于深刻的了解了這句話。經(jīng)過這次的課程設(shè)計,發(fā)現(xiàn)書本上很深奧的知識變的更為簡單,同樣,對實驗原理也了有更深的理解。知道和理解了該理論在計算機中是怎樣執(zhí)行的, 對該理論在實踐中的應(yīng)用有深刻的理解 。通過該課程設(shè)計,把死板的課本知識變得生動有趣,激發(fā)了學(xué)習(xí)的積極性。能夠把課堂上學(xué)的知識通過自己設(shè)計的程序表示出來,加深了對理論知識的理解。課程設(shè)計中程序比較復(fù)雜,在調(diào)試時應(yīng)該仔細(xì),在程序調(diào)試時,注意指針,將不必要的命令去除。除了課堂外,課程設(shè)計是最能學(xué)到東西的,最考驗人的。在做課程設(shè)計的這段時間,時刻都感到自己學(xué)的知識有多么的貧瘠。經(jīng)過這次課程設(shè)計,讓我對C+這門語言有了更深的認(rèn)識,操作能力有了提高要
6、想是寫出的代碼能運行,需要耐心細(xì)心,毅力以及充沛的體力。只有經(jīng)過多次編輯,多次編譯,再多次運行,才能編寫出更好的程序,有時候需要多次的更正才能達(dá)到所要的運行結(jié)果。附錄#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 1000 struct Lesson char LessonName100; char LessonNumber100; int LessonMark; float LessonCredit;struct Student char Name100; char N
7、umber100; int LessonCount; struct Lesson L100;struct Student SMAX;int StudentCount = 0; void PrintInterface(); int Student_Insert(); int Student_Delete(); void Student_Select();void Class_Select();void WriteFile(); void ReadFile(); int main() int n; PrintInterface(); scanf("%d", &n); v
8、oid PrintInterface() int n;while (1) printf("n -歡迎使用學(xué)生成績記錄簿系統(tǒng)- "); printf("n| 1、添加 |n"); printf("n| 2、刪除 |n"); printf("n| 3、查學(xué)生成績 |n"); printf("n| 4、查班成績表 |n"); printf("n| 5、寫入文本文件 |n"); printf("n| 6、讀取文本文件 |n"); printf("n| 0
9、、退出 |n"); printf("n - "); printf("n選擇操作:"); scanf("%d",&n); switch(n) case 1: if (Student_Insert() printf("n添加成功.回車?yán)^續(xù)n"); else printf("n添加失敗.回車?yán)^續(xù)n"); break; case 2: Student_Delete(); break; case 3: Student_Select(); break; case 4: Class_Sele
10、ct(); break; case 5: WriteFile(); break; case 6: ReadFile(); break; case 0: exit(1); break; default: printf("無此功能,請重新選擇,按回車確定n"); return 0;int Student_Insert() int i,j,n; printf("n請輸入所添加的學(xué)生人數(shù):"); scanf("%d", &n); if (StudentCount + n >= MAX) return 0; for (i = St
11、udentCount; i < StudentCount + n; +i) printf("nt第%d個學(xué)生:n", i - StudentCount + 1); printf("nt學(xué)生學(xué)號:"); scanf("%s", &Si.Number);if(strlen(Si.Number)!=8) printf("輸入錯誤,請重新輸入"); return 0; printf("nt學(xué)生姓名:"); scanf("%s", Si.Name); printf(&qu
12、ot;nt該學(xué)生所修課程數(shù):"); scanf("%d", &Si.LessonCount); for (j = 0; j < Si.LessonCount; +j) printf("nt第%d門課:n", j + 1); printf("ntt課程編號:"); scanf("%s", Si.Lj.LessonNumber);if(strlen(Si.Lj.LessonNumber)!=5) printf("輸入錯誤,請重新輸入!"); return 0; printf(
13、"ntt課程名稱:"); scanf("%s",Si.Lj.LessonName); printf("ntt課程成績:"); scanf("%d", &Si.Lj.LessonMark); if(Si.Lj.LessonMark<0 | Si.Lj.LessonMark>100) printf("輸入錯誤,請重新輸入!"); return 0; printf("ntt課程學(xué)分:"); scanf("%f", &Si.Lj.Les
14、sonCredit);if(Si.Lj.LessonCredit<1 | Si.Lj.LessonCredit>5) printf("輸入錯誤,請重新輸入!"); return 0; if (Si.Lj.LessonMark < 60) Si.Lj.LessonCredit = 0; StudentCount += n ; return 1; int Student_Delete() char a100;char b100; int i, j; printf("n刪除學(xué)生:n"); printf("n學(xué)生姓名:");
15、 scanf("%s",a); printf("n學(xué)生學(xué)號:"); scanf("%s",b); if(strlen(b)!=8) printf("輸入錯誤請重新輸入");return 0; for (i = 0; i < StudentCount; i+) if (0=strcmp(Si.Name, a) && 0=strcmp(Si.Number, b) printf("n找到,刪除n"); for (j = i + 1; j < StudentCount; j+
16、) Sj - 1 = Sj; break; if (i = StudentCount | i > StudentCount) printf("n未找到該學(xué)生nn"); return 0; else StudentCount-; return 1; void Student_Select() int x;char y100; char a100; int i, j; printf("n輸入所查學(xué)生信息(1.姓名 2.學(xué)號)選擇:"); scanf("%d", &x); if (x = 1 | x = 2) if (x =
17、1) printf("n姓名:");fflush(stdin); gets(a); for (i = 0; i < StudentCount; i+) if (0=strcmp(Si.Name,a) printf("n學(xué)號:%st姓名:%sn", Si.Number, Si.Name); printf("n課程編號t課程名稱t課程成績t課程學(xué)分n"); printf("-n"); for (j = 0; j < Si.LessonCount; j+) printf("%stt%stt%dtt%
18、fn", Si.Lj.LessonNumber, Si.Lj.LessonName, Si.Lj.LessonMark, Si.Lj.LessonCredit); printf("-n"); printf("nn"); else printf("n學(xué)號:"); fflush(stdin);gets(y); for (i = 0; i < StudentCount; i+) if (strcmp(Si.Number,y)=0) printf("n學(xué)號:%st姓名:%sn", Si.Number, Si
19、.Name); printf("n課程編號t課程名稱t課程成績t課程學(xué)分n"); printf("-n"); for (j = 0; j < Si.LessonCount; j+) printf("%stt%stt%dtt%fn", Si.Lj.LessonNumber,Si.Lj.LessonName,Si.Lj.LessonMark,Si.Lj.LessonCredit); printf("-n"); printf("nn"); break; printf("查找完畢.回車?yán)^
20、續(xù)n"); getchar(); else printf("選擇錯誤.回車?yán)^續(xù)n"); getchar(); return; void Class_Select() char a100; double x=0,y=0,z=0; int i, j; printf("n請輸入課程編號:"); fflush(stdin); scanf("%s",a); printf("學(xué)號t姓名t課程名稱t課程成績t課程學(xué)分n"); printf("-n"); for (i = 0; i < Stud
21、entCount; i+) for (j = 0; j < Si.LessonCount; j+) if (strcmp(Si.Lj.LessonNumber,a)=0) printf("%st%st%stt%dtt%fn", Si.Number, Si.Name, Si.Lj.LessonName, Si.Lj.LessonMark, Si.Lj.LessonCredit); printf("-n"); z+=Si.Lj.LessonMark; x+; if (Si.Lj.LessonMark >= 60)y+; break; printf
22、("n平均分:%ft及格率:%f%nn", z/x, y/x*100); printf("n查找完畢.回車?yán)^續(xù)n"); getchar();void WriteFile() FILE *fp; int i, j; char a100; printf("n請輸入寫入的文件地址:nn地址輸入格式:例如d:Student.txt:"); scanf("%s",&a); printf("n寫入中.n"); if (fp = fopen(a,"w") fprintf(fp,"%dn",StudentCount); for (i = 0; i < StudentCount; i+) fprintf(fp,"%st%st%dn",Si.Number, Si.Name,Si.LessonCount); for (j = 0; j < Si.LessonCount; j+) fprintf(fp,"%st%st%dt%fn", Si.Lj.LessonNumber,Si.Lj.Les
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年四年級英語下冊 Unit 3 What can you see第2課時說課稿 湘少版
- 7《美麗的化學(xué)變化》說課稿-2023-2024學(xué)年科學(xué)六年級下冊教科版
- 2025計算機購銷合同樣書
- 2025勞動合同法課程學(xué)習(xí)指南
- 2024年高中化學(xué) 專題3 常見的烴 第一單元 第1課時 脂肪烴的類別、烷烴說課稿 蘇教版選修5001
- 2憲法是根本法 第一課時 感受憲法日(說課稿)-部編版道德與法治六年級上冊
- 醫(yī)療試劑合同范例
- 包工項目合同范本
- 化妝店加盟合同范例
- 2024-2025學(xué)年高中地理 第二章 區(qū)域可持續(xù)發(fā)展 2.4 農(nóng)業(yè)的可持續(xù)發(fā)展-以美國為例說課稿 湘教版必修3
- 唐山動物園景觀規(guī)劃設(shè)計方案
- 中國版梅尼埃病診斷指南解讀
- 創(chuàng)業(yè)投資管理知到章節(jié)答案智慧樹2023年武漢科技大學(xué)
- 暨南大學(xué)《經(jīng)濟學(xué)》考博歷年真題詳解(宏觀經(jīng)濟學(xué)部分)
- GB/T 8014.1-2005鋁及鋁合金陽極氧化氧化膜厚度的測量方法第1部分:測量原則
- eNSP簡介及操作課件
- 公文與公文寫作課件
- 運動技能學(xué)習(xí)與控制課件第七章運動技能的協(xié)調(diào)控制
- 節(jié)后復(fù)工吊籃驗收表格
- 醫(yī)療器械分類目錄2002版
- 氣管套管滑脫急救知識分享
評論
0/150
提交評論