版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計(大作業(yè))報告課程名稱:程序設計基礎設計題目:學生成績記錄薄設計院系:信息技術學院班級:設計者:學號:指導教師:設計時間: 2013.7 8.-2013.7.13信息技術學院1昆明學院課程設計(大作業(yè))任務書姓名:院(系):信息技術學院專業(yè):計算機科學與技術學號:任務起止日期:2013.7 .8-2013.7.13課程設計題目:學生成績記錄薄設計課程設計要求:(1)通過課程設計,進一步掌握 C 語言的語法結構,基本流程,更加深入和全面理解所學的基本概念、基本原理和基本方法。(2)獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能力。提高程序編制、程序
2、調試及綜合應用的能力(3) 明確課程設計的目的,通過布置具有一定難度的,能綜合運用所學知識的程序設計題目。( 4)程序設計經過需求分析,明確程序設計題目要求,進行合理的設計,編碼階段編出的程序易讀、易懂并具有良好的交互性,界面清晰。測試階段應指導學生編寫測試用例,盡量多地找出程序中的錯誤,進行調試。工作計劃及安排:第一天的,兩個人合作選定題目,建立起程序的構思圖形,了解題目意思,確立程序的方向,并且查閱一些資料開始構建程序。第二天,兩人商量分工合作,確定誰寫那段函數(shù),并且在總體思路的框架下,逐步寫程序,并確保證程序無誤。第三天,將小程序合并,進行調試,對里面出現(xiàn)的問題協(xié)商合作共同解決。第四天,
3、開始寫實驗報告,對每次失敗原因進行總結,并且整合兩人思想纂寫報告。第五天,實訓課也接近尾聲,和班上的同學交流心得體會。指導教師簽字2013年7 月8日2課程設計(大作業(yè))成績學號:姓名:指導教師:課程設計題目:學生成績記錄薄設計總結:通過一周 C 語言課程設計,不僅增加了我對C 語言學習的興趣,還讓我對C 語言有了更深的了解。在這次的實訓中,我們通過自己動手查找資料,并自己設計程序,還上機運行驗證我們的程序。雖然在上機調試過程中,我遇到了很多的困難,(比如:很難理解一些邏輯思維上的東西)但通過自己不斷的重新理解和修正,最終還是成功的完成了程序的設計。那種喜悅感難以用言語來表達,這讓我感覺到學習
4、也可以是快樂的。在這次設計我不單單學習到了 C 語言的知識,也學到了許多計算機應用基礎知識,對計算機的機體也有了一個大體的了解。有許多知識,光靠老師上課所講的和自己看書得到的,還遠遠不夠,C 語言主要是通過上機來熟悉并且運用的,這次的實訓課讓我深刻的明白了這一點。所以在以后的學習生活中,我要經常寫程序并上機進行調試,不斷從中學習新的知識。還有一點就是:不懂就問。遇到難題實在解決不了的,問老師同學,和同學共同討論,有合作精神也是很重要的。希望以后還有更多的實訓機會,讓我得到鍛煉。指導教師評語:成績:填表時間:指導教師簽名3學生成績記錄薄設計一、課程設計目的與要求1.課程設計目的( 1)綜合運用之
5、前所學知識 (選擇控制, 循環(huán)控制, 數(shù)組,函數(shù), 指針, 結構體和文件等)來完成一個簡單的信息管理程序的設計。(2)充分體現(xiàn)和體會函數(shù)在程序設計中的必要性和實用性,并反映主函數(shù)main ()在程序設計中的實現(xiàn)思路和方法。2. 課程設計要求設計一個簡易學生成績記錄簿設計,其中包括:姓名,學號,C 語言成績;具體功能:1 系統(tǒng)以菜單方式工作2.創(chuàng)建學生成績信息并以磁盤文件保存;3.讀取磁盤文件并顯示輸出所有學生的成績;4.查詢學生成績( 1)按學號查詢成績( 2)學號姓名查詢成績5 添加成績記錄;6 修改指定姓名或學號的學生的成績并可存盤;7 顯示輸出 60 分以下、 6079、 8089、 9
6、0 分以上各分數(shù)段的學生信息。二、總體設計根據(jù)系統(tǒng)的要求,系統(tǒng)總體設計如圖1 所示。學生成績記錄薄學讀學姓添修結生取號名加改束信并查查成學程息顯詢詢績生序輸示成成記成入所績績錄績有成成績績圖 1系統(tǒng)總體結構4三、詳細設計1、數(shù)據(jù)結構設計#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct studentint num;/* 學號 */char name10;/* 姓名 */float score3;/* 成績 */2函數(shù)說明1.
7、主函數(shù)main() 允許用戶通過菜單進行功能選擇,使用相應的功能代碼來調用對應的函數(shù)功能。2.其他部分功能函數(shù)包括(1) 將學生成績信息保存為文件void save();算法思想:定義指向文件的指針變量;輸入保存路徑及文件名,打開文件,若不能打開文件給出提示信息;將存有學生成績信息的結構體數(shù)組信息依次保存到文件中。(2 ) 學生成績信息錄入函數(shù)void input()算法思想:依次錄入結構體數(shù)組中所包含的各個成員;直到輸入的結構體成員中信息為4,數(shù)據(jù)輸入結束;返回實際錄入的學生成績信息數(shù)。(3) 從文件中讀出學生成績信息void output();算法思想:定義指向結構體變量的指針和指向文件的
8、指針;輸入文件的路徑,打開文件,若不能打開文件給出提示信息;將文件中的信息依次讀出,最后結構體的指針為NULL 。53函數(shù)設計( 1)主菜單函數(shù) main()功能:函數(shù)返回值為整數(shù),代表所選的菜單項int main ()printf("* n");printf("§§n");printf("<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>
9、;>>>>>>>>>>>>>>>>>>>>>§§ n");printf("§>>歡迎進入學生成績記錄系統(tǒng) <<§ n");printf(">>>>>>>>>>>>>>>>>>>>>>>>>>><<
10、<<<<<<<<<<<<<<<<<<<<<<§§ n");printf("§§n");printf(" §【 1】- 創(chuàng)建學生成績信息§ n");printf("§§n");printf(" §【 2】- 顯示所有學生成績信息§ n");printf("§&
11、#167;n");printf(" §【 3】- 添加學生成績信息§ n");printf("§§n");printf(" §【 4】- 查詢學生成績信息§ n");printf("§§n");printf(" §【 5】- 修改學生的信息§n");printf("§§n");printf(" §【 6】- 按分數(shù)段顯示學生的信
12、息§ n");printf("§§n");printf(" §【 0】- 退出§n");printf("§§n");printf("*n");printf("請輸入相應菜單編號 :");(2)我負責編寫的程序A.添加學生信息void Addstudent()FILE *fp;struct student s;fp=fopen("stu.dat","ab");if(fp=fope
13、n("stu.dat","ab")=NULL)printf("File open error!n");else6printf(" 請輸入所增加學生的學號姓名c 語言成績: n");scanf("%d",&s.num );scanf("%s",);scanf("%f",&s.score0);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/* 關閉文件 */printf
14、(" 寫入成功 !n");/end function Addstudent;B.修改學生成績void modify()int number,i;printf(" 請輸入要修改信息的學生學號:");scanf("%d",&number);for(i=0;i<n;i+)if(number=studi.num)break;/* 查找判斷 */if(i<n)/* 查找判斷 */printf(" 請輸入修改后的學生的信息:");printf("n請輸入學生的c 語言成績: ");sca
15、nf("%f",&studi.score0);save();elseprintf(" 沒找到該學生的信息n");system("paues");system("cls");C.查詢學生成績void namecheck(void);void scorecheck(void);void searchmenu()printf(" *歡迎進入學生成績查詢系統(tǒng)* n");printf("*1- 按姓名查詢成績* n");printf("*2- 按學號查詢成績* n&q
16、uot;);printf("*3- 返回上一層* n");printf("*4- 退出* n");printf(" * n");printf("請輸入相應菜單編號 :");7int m;scanf("%d",&m);switch(m)case 1:namecheck();printf("n");system("PAUSE");system("CLS");break;case 2:scorecheck();printf("
17、;n");system("PAUSE");system("CLS");break;case 3:main();break;case 4:exit(0); break;void namecheck()char name10;printf(" 按照姓名查詢請按n");printf("n 請輸入姓名 :");scanf("%s",&name);printf(" 查詢結果 n");printf(" 學號姓名c 語言成績 n");if(strcpy
18、(,name)printf("%d%s%.2fn",studi.num,,studi.score0);void scorecheck()int b;printf(" 按照學號查詢請按n");printf("n 請輸入學號 :");scanf("%d",&b);printf(" 查詢結果 n");printf(" 學號姓名c 語言成績 n");8for(i=0;i<n;i+)if(studi.num =b)printf(&q
19、uot;%d%s%.2fn",studi.num,,studi.score0);四、程序清單和執(zhí)行結果1.頭文件#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct studentint num;/* 學號 */char name10;/* 姓名 */float score3;/* 成績 */*以下是函數(shù)原型*/void save(void);void input(void);void output
20、(void);void modify();/* 修改信息 */void searchmenu(void);/* 查詢信息 */void namecheck(void);/* 按姓名查詢 */void scorecheck(void);/* 按學號查詢 */void Addstudent();/* 添加信息 */void sclsearch();/* 成績按分數(shù)段顯示*/2.函數(shù)源程序代碼與運行結果1函數(shù)源程序代碼#include<stdio.h>9#include<stdlib.h>#include<string.h>#include<windows.
21、h>int n=4;struct studentint num;char name10;float score3;stud100;int i,choose,a,t=0;long int num;int main ()void save(void);void input(void);void output(void);void modify();void searchmenu(void);void Addstudent();void sclsearch();while(1)printf("* n");printf("§§n");p
22、rintf("§<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§ n");printf("§>>歡迎進入學生成績記錄系統(tǒng) &l
23、t;<§ n");printf("§>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<§n");printf("§§n&q
24、uot;);printf("§【 1】- 創(chuàng)建學生成績信息§n");printf("§§n");printf("§【 2】- 顯示所有學生成績信息§n");printf("§§n");printf("§【 3】- 添加學生成績信息§n");printf("§§n");printf("§【 4】- 查詢學生成績信息§n"
25、);printf("§§n");printf("§【 5】- 修改學生的信息§ n");printf("§§n");printf("§【 6】- 按分數(shù)段顯示學生的信息§n");printf("§§n");10printf("§【 0】-退出§ n");printf("§§n");printf("* n&qu
26、ot;);printf("請輸入相應菜單編號:");scanf("%d",&a);switch(a)case 1:input();save();break;case 2:output();printf("n");system("PAUSE");system("CLS");break;case 3:Addstudent();printf("n");system("PAUSE");system("CLS");break;case 4
27、:searchmenu();printf("n");system("PAUSE");system("CLS");break;case 5:modify();printf("n");system("PAUSE");system("CLS");break;case 6:sclsearch();printf("n");system("PAUSE");system("CLS");break;case 0:exit(0);11
28、default: ;return 0;void save()FILE *fp;if (fp=fopen("stu.dat","wb")=NULL)/*以只寫的方式打開文件*/printf(" 無法打開文件!n");return ;for(i=0;i<n;i+)if (fwrite (&studi,sizeof(struct student),1,fp)!=1)/*寫入字節(jié)為1 的信息在文件中*/printf(" 文件寫入錯誤!n");fclose(fp);/* 關閉文件 */void input()/
29、 錄入學生成績int i;char a;for(i=0;i<n;i+)printf("n請輸入學生成績信息:n");printf("n 請依次輸入學號、姓名、c 語言成績 :n");scanf("%d%s%f",&studi.num,,&studi.score0);printf(" 輸入: y(繼續(xù) ), n(終止 )!n");fflush(stdin);scanf("%c",&a);if(a='n' | a='N'
30、;)break;n=i+1;void Addstudent()FILE *fp;struct student s;fp=fopen("stu.dat","ab");if(fp=fopen("stu.dat","ab")=NULL)12printf("File open error!n");elseprintf(" 請輸入所增加學生的學號姓名c 語言成績: n");scanf("%d",&s.num );scanf("%s",s.
31、name);scanf("%f",&s.score0);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/* 關閉文件 */printf(" 寫入成功 !n");/end function Addstudent;void output()int i;/float s;FILE *fp;if(fp=fopen("stu.dat","rb")=NULL)printf("cannot open filen");exit(0);pri
32、ntf("n 學號姓名c 語言成績 n");for(i=0;fread(&studi,sizeof(struct student),1,fp)=1;i+)printf("%d%10s%10.2fn",studi.num,,studi.score0);fclose(fp);n=i;void modify()int number,i;printf(" 請輸入要修改信息的學生學號:");scanf("%d",&number);for(i=0;i<n;i+)if(number=st
33、udi.num)break;/* 查找判斷 */if(i<n)/* 查找判斷 */printf(" 請輸入修改后的學生的信息:");printf("n請輸入學生的c 語言成績: ");13scanf("%f",&studi.score0);save();elseprintf(" 沒找到該學生的信息n");system("paues");system("cls");void namecheck(void);void scorecheck(void);void se
34、archmenu()printf(" *歡迎進入學生成績查詢系統(tǒng)* n");printf("*1-按姓名查詢成績* n");printf("*2- 按學號查詢成績* n");printf("*3- 返回上一層* n");printf("*4-退出* n");printf(" * n");printf("請輸入相應菜單編號:");int m;scanf("%d",&m);switch(m)case 1:namecheck();pr
35、intf("n");system("PAUSE");system("CLS");break;case 2:scorecheck();printf("n");system("PAUSE");system("CLS");break;case 3:main();break;case 4:exit(0); break;void namecheck()char name10;printf(" 按照姓名查詢請按n");printf("n 請輸入姓名 :&qu
36、ot;);scanf("%s",&name);printf(" 查詢結果 n");14printf(" 學號姓名c 語言成績 n");if(strcpy(,name)printf("%d%s%.2fn",studi.num,,studi.score0);void scorecheck()int b;printf(" 按照學號查詢請按n");printf("n 請輸入學號 :");scanf("%d",&
37、;b);printf(" 查詢結果 n");printf(" 學號姓名c 語言成績 n");for(i=0;i<n;i+)if(studi.num =b)printf("%d%s%.2fn",studi.num,,studi.score0);void sclsearch()int i;printf("90 分以上 :n");printf(" 學號姓名c 語言成績 n");for(i=0;i<n;i+)if(studi.score0>=90)printf(&q
38、uot;%d%s%.2fn",studi.num,,studi.score0);printf("8089:n");printf(" 學號姓名c 語言成績 n");for(i=0;i<n;i+)if(studi.score0>=80&&studi.score0<90)printf("%d%s%.2fn",studi.num,,studi.score0);15printf("7079:n");printf(" 學號姓名c 語言成績 n");for(i=0;i<n;i+)if(studi.score0>=70&&studi.score0<80)printf("%d%s%.2fn",studi.num,,studi.score0);printf("6069:n");printf(" 學號姓名c 語言成績
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年電力線路檢修與修繕合同3篇
- 2024年電子產品批量采購協(xié)議樣本版B版
- 2024年度員工出差安全教育培訓及考核協(xié)議書2篇
- 2024年能源基礎設施建設項目合同
- 2024年購銷合同標的詳細說明
- 基于智慧城市建設的現(xiàn)代農業(yè)數(shù)字化平臺開發(fā)方案
- 沉井施工合同
- 科技成果轉化與推廣作業(yè)指導書
- 體育賽事組織服務合同
- 2024年大數(shù)據(jù)產業(yè)發(fā)展合同
- 2024-2030年全球與中國汽車音頻DSP芯片組市場銷售前景及競爭策略分析報告
- 2025屆廣州市高三年級調研測試(零模)數(shù)學試卷(含答案)
- 整本書閱讀《鄉(xiāng)土中國》課件 2024-2025學年統(tǒng)編版高中語文必修上冊
- 2025年“兩新”領域超長期特別國債項目申報策略
- 2025禮品定制合同范本
- 醫(yī)院消毒隔離制度范文(2篇)
- 2024年01月11026經濟學(本)期末試題答案
- 烘干煤泥合同范例
- 4.1.1陸地水體間的相互關系課件高中地理湘教版(2019)選擇性必修一
- 【MOOC】大學生心理學-中央財經大學 中國大學慕課MOOC答案
- 2025年“三基”培訓計劃
評論
0/150
提交評論