




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程實(shí)驗(yàn)報(bào)告課程名稱C語(yǔ)言程序設(shè)計(jì)班級(jí)13新能源2班實(shí)驗(yàn)日期2013年8月1號(hào)姓名許鑫學(xué)號(hào)130370236實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)名稱學(xué)生成績(jī)記錄簿系統(tǒng)實(shí)驗(yàn)題目描述本程序是非數(shù)值計(jì)算型算法設(shè)計(jì),我設(shè)計(jì)出了學(xué)生成績(jī)記錄簿系統(tǒng)的基本功能,并設(shè)計(jì)了簡(jiǎn)單的界面。本程序主要考察對(duì)自定義函數(shù)的熟悉程度,本程序主要使用的是鏈表的相關(guān)操作,包括結(jié)構(gòu)體鏈表的創(chuàng)建、輸入、輸出、查找、刪除等。我設(shè)計(jì)的這個(gè)成績(jī)記錄簿系統(tǒng)也初步實(shí)現(xiàn)了學(xué)生成績(jī)信息的顯示、輸入、刪除、查找等必要的功能。 1.建立一個(gè)主界面 2.用switch語(yǔ)句進(jìn)行分類討論 3.分別進(jìn)入錄入,查詢,刪除,等子函數(shù)。 4.將子函數(shù)與主函數(shù)相連即可。該程序可以建立學(xué)生
2、的成績(jī)記錄??梢苑奖憷蠋熀屯瑢W(xué)方便的查閱成績(jī);這個(gè)程序有錄入和刪除的功能; 還可以求出平均成績(jī),并排序成績(jī)記錄簿中記錄以下數(shù)據(jù):學(xué)號(hào)、姓名、課程編號(hào)、課程名稱、成績(jī)、學(xué)分 添加成績(jī):需要輸入學(xué)生的學(xué)號(hào)或姓名、課程編號(hào)及成績(jī),如已有該門(mén)課程成績(jī)給出提示; 查詢(班級(jí)或個(gè)人)成績(jī): 查詢個(gè)人成績(jī):以學(xué)號(hào)或姓名作為關(guān)鍵字,可查詢一個(gè)學(xué)生的所有成績(jī),和已完成的總學(xué)分。 查詢班級(jí)成績(jī):以課程編號(hào)為關(guān)鍵字,成績(jī)表后面要統(tǒng)計(jì)平均分、及格率及全班同學(xué)不同課程在不同分?jǐn)?shù)段分布的人數(shù)及百分比。拓展功能: a) 程序啟動(dòng)時(shí)先從文件讀
3、入數(shù)據(jù),如果文件中沒(méi)有數(shù)據(jù)則給出提示; b) 每次修改的數(shù)據(jù)寫(xiě)入文件實(shí)驗(yàn)環(huán)境以自己的電腦為主要的實(shí)驗(yàn)平臺(tái),運(yùn)用Visual C+ 6.0這個(gè)軟件進(jìn)行反復(fù)的編寫(xiě)實(shí)驗(yàn)。實(shí)驗(yàn)界面截圖1、開(kāi)始時(shí)2、添加3、查詢4、查詢成績(jī)5、寫(xiě)文本6、讀取算法描述及實(shí)驗(yàn)步驟主程序提供一個(gè)界面,允許用戶選擇。使用switch語(yǔ)句,用時(shí)直接輸入數(shù)字即可。增加函數(shù),功能是插入學(xué)生成績(jī)。使用一個(gè)無(wú)窮循環(huán),直到錄入”n”時(shí)結(jié)束。刪除函數(shù),功能是刪除,分為兩步,先找后刪。找,用strcmp函數(shù) 來(lái)做如果找到記錄i值,反之記為-1;刪除可以從i項(xiàng)開(kāi)始將數(shù)組的后一項(xiàng)賦值給前一項(xiàng)。前一項(xiàng)自動(dòng)被刪掉。這樣完成刪除。查詢函數(shù)與之類似,將刪
4、除改為輸出即可;求平均值函數(shù)與查詢類似只是輸出時(shí)只輸出平均值而已。按平均值排序只要加一個(gè)排序函數(shù)即可。退出函數(shù)什么都不寫(xiě),即可。程序流程圖查詢成績(jī)添加成績(jī) 添加學(xué)生成績(jī)添加課程編號(hào)添加學(xué)生姓名添加學(xué)生學(xué)號(hào)查詢班級(jí)成績(jī)查詢學(xué)生成績(jī)查詢班級(jí)成績(jī)查詢學(xué)生成績(jī)課程編號(hào)學(xué)號(hào)查詢姓名查詢調(diào)試過(guò)程及實(shí)驗(yàn)結(jié)果總結(jié)經(jīng)過(guò)一個(gè)多星期的編譯原理課程設(shè)計(jì),在我的努力下,順利完成該課程設(shè)計(jì)。通過(guò)該課程設(shè)計(jì),掌握了編譯程序工作的基本過(guò)程及其各階段的基本任務(wù),熟悉了編譯程序總流程框圖,了解了編譯程序的生成過(guò)程及其相關(guān)的技術(shù),對(duì)課本上的知識(shí)也有了更深的理解。老師常說(shuō),課本上的知識(shí)是機(jī)械的,表面的,要學(xué)會(huì)去運(yùn)用,要舉一反三?,F(xiàn)在
5、終于深刻的了解了這句話。經(jīng)過(guò)這次的課程設(shè)計(jì),發(fā)現(xiàn)書(shū)本上很深?yuàn)W的知識(shí)變的更為簡(jiǎn)單,同樣,對(duì)實(shí)驗(yàn)原理也了有更深的理解。知道和理解了該理論在計(jì)算機(jī)中是怎樣執(zhí)行的, 對(duì)該理論在實(shí)踐中的應(yīng)用有深刻的理解 。通過(guò)該課程設(shè)計(jì),把死板的課本知識(shí)變得生動(dòng)有趣,激發(fā)了學(xué)習(xí)的積極性。能夠把課堂上學(xué)的知識(shí)通過(guò)自己設(shè)計(jì)的程序表示出來(lái),加深了對(duì)理論知識(shí)的理解。課程設(shè)計(jì)中程序比較復(fù)雜,在調(diào)試時(shí)應(yīng)該仔細(xì),在程序調(diào)試時(shí),注意指針,將不必要的命令去除。除了課堂外,課程設(shè)計(jì)是最能學(xué)到東西的,最考驗(yàn)人的。在做課程設(shè)計(jì)的這段時(shí)間,時(shí)刻都感到自己學(xué)的知識(shí)有多么的貧瘠。經(jīng)過(guò)這次課程設(shè)計(jì),讓我對(duì)C+這門(mén)語(yǔ)言有了更深的認(rèn)識(shí),操作能力有了提高要
6、想是寫(xiě)出的代碼能運(yùn)行,需要耐心細(xì)心,毅力以及充沛的體力。只有經(jīng)過(guò)多次編輯,多次編譯,再多次運(yùn)行,才能編寫(xiě)出更好的程序,有時(shí)候需要多次的更正才能達(dá)到所要的運(yùn)行結(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é)生成績(jī)記錄簿系統(tǒng)- "); printf("n| 1、添加 |n"); printf("n| 2、刪除 |n"); printf("n| 3、查學(xué)生成績(jī) |n"); printf("n| 4、查班成績(jī)表 |n"); printf("n| 5、寫(xiě)入文本文件 |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("無(wú)此功能,請(qǐng)重新選擇,按回車確定n"); return 0;int Student_Insert() int i,j,n; printf("n請(qǐng)輸入所添加的學(xué)生人數(shù):"); scanf("%d", &n); if (StudentCount + n >= MAX) return 0; for (i = St
11、udentCount; i < StudentCount + n; +i) printf("nt第%d個(gè)學(xué)生:n", i - StudentCount + 1); printf("nt學(xué)生學(xué)號(hào):"); scanf("%s", &Si.Number);if(strlen(Si.Number)!=8) printf("輸入錯(cuò)誤,請(qǐng)重新輸入"); 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門(mén)課:n", j + 1); printf("ntt課程編號(hào):"); scanf("%s", Si.Lj.LessonNumber);if(strlen(Si.Lj.LessonNumber)!=5) printf("輸入錯(cuò)誤,請(qǐng)重新輸入!"); return 0; printf(
13、"ntt課程名稱:"); scanf("%s",Si.Lj.LessonName); printf("ntt課程成績(jī):"); scanf("%d", &Si.Lj.LessonMark); if(Si.Lj.LessonMark<0 | Si.Lj.LessonMark>100) printf("輸入錯(cuò)誤,請(qǐng)重新輸入!"); return 0; printf("ntt課程學(xué)分:"); scanf("%f", &Si.Lj.Les
14、sonCredit);if(Si.Lj.LessonCredit<1 | Si.Lj.LessonCredit>5) printf("輸入錯(cuò)誤,請(qǐng)重新輸入!"); 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é)號(hào):"); scanf("%s",b); if(strlen(b)!=8) printf("輸入錯(cuò)誤請(qǐng)重新輸入");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é)號(hào))選擇:"); 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é)號(hào):%st姓名:%sn", Si.Number, Si.Name); printf("n課程編號(hào)t課程名稱t課程成績(jī)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é)號(hào):"); fflush(stdin);gets(y); for (i = 0; i < StudentCount; i+) if (strcmp(Si.Number,y)=0) printf("n學(xué)號(hào):%st姓名:%sn", Si.Number, Si
19、.Name); printf("n課程編號(hào)t課程名稱t課程成績(jī)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("選擇錯(cuò)誤.回車?yán)^續(xù)n"); getchar(); return; void Class_Select() char a100; double x=0,y=0,z=0; int i, j; printf("n請(qǐng)輸入課程編號(hào):"); fflush(stdin); scanf("%s",a); printf("學(xué)號(hào)t姓名t課程名稱t課程成績(jī)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請(qǐng)輸入寫(xiě)入的文件地址:nn地址輸入格式:例如d:Student.txt:"); scanf("%s",&a); printf("n寫(xiě)入中.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.L
溫馨提示
- 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年廣西中考地理試題(含答案)
- ××中學(xué)法律合規(guī)制度
- 2025年新型皮革加脂劑項(xiàng)目提案報(bào)告模板
- 2025年水處理阻垢緩蝕劑HEDP項(xiàng)目提案報(bào)告模板
- 培訓(xùn)服務(wù)協(xié)議合同
- 2025年離子敏傳感器項(xiàng)目申請(qǐng)報(bào)告模板
- 品牌合作授權(quán)經(jīng)營(yíng)合同協(xié)議
- 2025年雅思考試口語(yǔ)全真模擬試卷:環(huán)保公益活動(dòng)策劃與實(shí)施案例分析提升試題
- 2025年茶藝師中級(jí)茶葉加工與儲(chǔ)藏技能鑒定理論試卷
- 2025年保育員實(shí)操技能試卷:幼兒教育心理學(xué)研究方法
- 標(biāo)本制作合同協(xié)議
- 初中生安全用電課件
- 2025年廣東省地理初中學(xué)業(yè)水平模擬練習(xí)卷(含答案)
- 心率測(cè)定-教學(xué)設(shè)計(jì)-八年級(jí)體育健康教育
- 廣東省2025年普通高等學(xué)校招生全國(guó)統(tǒng)一考試模擬測(cè)試(一)物理試題及答案
- 2025年ps cs5操作試題及答案
- 2025年太陽(yáng)能空調(diào)系統(tǒng)合同
- 汽車4s店管理制度
- 醫(yī)院護(hù)理人文關(guān)懷實(shí)踐規(guī)范專家共識(shí)課件
- 電腦常見(jiàn)故障維修與電腦保養(yǎng)課件
- 電商平臺(tái)商家入駐流程及風(fēng)險(xiǎn)控制標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論