版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、姓 C語言大作業(yè)名: 班 級(jí): 學(xué) 號(hào): 指 導(dǎo) 教 師: 設(shè) 計(jì) 時(shí) 間:目 錄一.目的 . 3 二.題目描述和要求 . 3 三.報(bào)告內(nèi)容 . 5 3.1需求分析 . 5 3.2 概要設(shè)計(jì) . 5 3.3 具體設(shè)計(jì) . 7 3.4 主要源程序代碼. 8 3.5 測試分析 . 15 3.6 設(shè)計(jì)結(jié)果 . 16 四.結(jié)論與心得 . 21 一.目的1.1 、通過本次大作業(yè),錘煉我們應(yīng)用C語言的語法規(guī)章和已經(jīng)把握的算法,自己解決一個(gè)較簡潔的課題,初步積存編程體會(huì);1.2 、 通過學(xué)習(xí)把握程序設(shè)計(jì)的方法與編程技術(shù),為運(yùn)算機(jī)在不同領(lǐng)域的應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ);學(xué)會(huì)良好的程序設(shè)計(jì)風(fēng)格,1.3 、 要求我們能利
2、用運(yùn)算機(jī)解決實(shí)際問題;從分析問題入手,設(shè)計(jì)可行的算法,進(jìn)而編出相應(yīng)的程序的實(shí)際應(yīng)用;C程序;強(qiáng)調(diào)上機(jī)實(shí)踐過程,從實(shí)際應(yīng)用動(dòng)身,注意二.題目描述和要求題目 :同學(xué)成果治理系統(tǒng)應(yīng)用鏈表及外部文件,獨(dú)立設(shè)計(jì)上述應(yīng)用系統(tǒng),并編程實(shí)現(xiàn)以下功能:2.1 信息錄入錄入同學(xué)信息(包括姓名、學(xué)號(hào)、各科成果);2.2 信息查詢輸入學(xué)號(hào),查詢與學(xué)號(hào)相對(duì)應(yīng)的信息(包括成果),并按可選的自定義規(guī)就進(jìn)行排序;按班級(jí)查詢同學(xué)成果;按班級(jí)統(tǒng)計(jì)學(xué)科總分、平均分等;2.3 信息刪除與修改輸入學(xué)號(hào),刪除該學(xué)號(hào)對(duì)應(yīng)的成果信息;輸入學(xué)號(hào),查詢并顯示出該學(xué)號(hào)信息,并在此基礎(chǔ)上進(jìn)行修改;2.4 運(yùn)算同學(xué)成果運(yùn)算每位同學(xué)的總分;運(yùn)算每位同學(xué)
3、的平均分;成果排序;2.5 信息儲(chǔ)存將同學(xué)信息儲(chǔ)存在文件中;2.6 依據(jù)以上功能需求, 定義通訊錄信息結(jié)構(gòu), 并采納鏈表結(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行存 儲(chǔ);2.7 供應(yīng)友好的用戶界面,便利用戶操作;三.報(bào)告內(nèi)容3.1 需求分析隨著當(dāng)今社會(huì)進(jìn)展,信息化水平逐步提高,對(duì)教務(wù)治理有了新的要求,因此,編寫一個(gè)信息治理系統(tǒng)是非常有必要的;該軟件主要是實(shí)現(xiàn)對(duì)同學(xué)信息進(jìn)行系統(tǒng)化的治理,第一可以對(duì)同學(xué)基本信息 進(jìn)行輸入和讀取,其次查找并顯示特定同學(xué)的相關(guān)信息,然后可以插入同學(xué)的相 關(guān)信息,仍有就是可按同學(xué)相關(guān)信息排序,以求達(dá)到簡易操作的目的;3.2 概要設(shè)計(jì)1系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)和數(shù)據(jù)變量說明主菜單輸入列表查找增加修改
4、排序儲(chǔ)存退出2. 系統(tǒng)總體流程圖開頭編譯運(yùn)行有有/ 錯(cuò)無MAIN 調(diào)用 MENU K=0 K 0 連接EXIT 調(diào)用各個(gè)功能函數(shù)( K= ?)執(zhí)行錯(cuò)誤 輸入正確3.3 具體設(shè)計(jì)源文件函數(shù)名或其他成分功能student.cpp 函數(shù)名或其他成分功能student.h main 總控函數(shù)int choice 菜單挑選switchchoice 菜單處理IO_WriteInfo 新建同學(xué)信息記錄exit 終止運(yùn)行Student_Insert 增加同學(xué)信息Student_Display 顯示信息Student_Delete 刪除指定的記錄Student_Select 查詢指定同學(xué)的信息Student_M
5、odify 修改指定同學(xué)的信息Student_SortByAverage 排序結(jié)構(gòu)聲明同學(xué)成果結(jié)構(gòu)庫函數(shù)及函數(shù)原型聲明引用庫函數(shù)及函數(shù)3.4 主要源程序代碼#include #include #include struct Student char ID20; char Name20; float scor_eng; float scor_math; float scor_phy; float Average; ; struct Student students1000; int num=0; float Avgstruct Student stu return stu.scor_eng+st
6、u.scor_math+stu.scor_phy/3; int Student_SearchByIndexchar id int i; for i=0;inum;i+ if strcmpstudentsi.ID,id=0 return i; return -1; int Student_SearchByNamechar name int i; for i=0;inum;i+ if strcmpstudentsi.Name,name=0 return i; return -1; void Student_DisplaySingleint index printf%10s%10s%8s%8s%8s
7、%10sn, 學(xué)號(hào) , 姓名 ,英語成果 , 數(shù)學(xué)成果 ,物理成果 , 平 均成果 ; printf-n; printf%10s%10s%8.2f%8.2f%8.2f%10.2fn,studentsindex.ID,studentsindex.Name, studentsindex.scor_eng,studentsindex.scor_math,studentsindex.scor_phy,studentsindex.Average; void Student_Insert while1 printf 請(qǐng)輸入學(xué)號(hào) :; scanf%s,&studentsnum.ID; getchar; pr
8、intf 請(qǐng)輸入姓名 :; scanf%s,&studentsnum.Name; getchar; printf 請(qǐng)輸入英語成果 :; scanf%f,&studentsnum.scor_eng; getchar; printf 請(qǐng)輸入數(shù)學(xué)成果 :; scanf%f,&studentsnum.scor_math; getchar; printf 請(qǐng)輸入物理成果 :; scanf%f,&studentsnum.scor_phy; getchar; studentsnum.Average=Avgstudentsnum; num+; printf 是否連續(xù) .y/n; if getchar=n br
9、eak; void Student_Modify while1 char id20; int index; printf 請(qǐng)輸入要修改的同學(xué)的學(xué)號(hào) :; scanf%s,&id; getchar; index=Student_SearchByIndexid; if index=-1 printf 同學(xué)不存在 .n; else printf 你要修改的同學(xué)信息為 :n; Student_DisplaySingleindex; printf- 請(qǐng)輸入新值 -n; printf 請(qǐng)輸入學(xué)號(hào) :; scanf%s,&studentsindex.ID; getchar; printf 請(qǐng)輸入姓名 :;
10、scanf%s,&studentsindex.Name; getchar; printf 請(qǐng)輸入英語成果 :; scanf%f,&studentsindex.scor_eng; getchar; printf 請(qǐng)輸入數(shù)學(xué)成果 :; scanf%f,&studentsindex.scor_math; getchar; printf 請(qǐng)輸入物理成果 :; scanf%f,&studentsindex.scor_phy; getchar; studentsindex.Average=Avgstudentsindex; printf 是否連續(xù) .y/n; if getchar=n break; voi
11、d Student_Delete int i; while1 char id20; int index; printf 請(qǐng)輸入要?jiǎng)h除的同學(xué)的學(xué)號(hào) :; scanf%s,&id; getchar; index=Student_SearchByIndexid; if index=-1 printf 同學(xué)不存在 .n; else printf 你要?jiǎng)h除的同學(xué)信息為 :n; Student_DisplaySingleindex; printf 是否真的要?jiǎng)h除 .y/n; if getchar=y for i=index;inum-1;i+ studentsi=studentsi+1; num-; ge
12、tchar; printf 是否連續(xù) .y/n; if getchar=n break; void Student_Select while1 char name20; int index; printf 請(qǐng)輸入要查詢的同學(xué)的姓名 :; scanf%s,&name; getchar; index=Student_SearchByNamename; if index=-1 printf 同學(xué)不存在 .n; else printf 你要查詢的同學(xué)信息為 :n; Student_DisplaySingleindex; printf 是否連續(xù) .y/n; if getchar=n break; voi
13、d Student_SortByAverage int i,j; struct Student tmp; for i=0;inum;i+ for j=1;jnum-i;j+ if studentsj-1.Averagestudentsj.Average tmp=studentsj-1; studentsj-1=studentsj; studentsj=tmp; void Student_Display int i; printf%10s%10s%8s%8s%8s%10sn, 學(xué)號(hào) ,姓名 , 英語成果 , 數(shù)學(xué)成果 , 物理成果 , 平均成果 ; printf-n; for i=0;inum;
14、i+ printf%10s%10s%8.2f%8.2f%8.2f%10.2fn,studentsi.ID,studentsi.Name, studentsi.scor_eng,studentsi.scor_math,studentsi.scor_phy,studentsi.Average; void IO_ReadInfo FILE *fp; int i; if fp=fopenDatabase.txt,rb=NULL printf 不能打開文件 .n; return; if fread&num,sizeofint,1,fp.=1 num=-1; else fori=0;inum;i+ fre
15、ad&studentsi,sizeofstruct Student,1,fp; fclosefp; void IO_WriteInfo FILE *fp; int i; if fp=fopenDatabase.txt,wb=NULL printf 不能打開文件 .n; return; if fwrite&num,sizeofint,1,fp.=1 printf 寫入文件錯(cuò)誤 .n; for i=0;inum;i+ if fwrite&studentsi,sizeofstruct Student,1,fp.=1 printf 寫入文件錯(cuò)誤 .n; fclosefp; int main int c
16、hoice; IO_ReadInfo; while1 printfn- 同學(xué)成果治理系統(tǒng)-n; printf1. 增加同學(xué)記錄 n; printf2. 修改同學(xué)記錄 n; printf3. 刪除同學(xué)記錄 n; printf4. 按姓名查詢同學(xué)記錄 n; printf5. 按平均成果排序 n; printf6. 儲(chǔ)存文件 n; printf7. 退出 n; printf 請(qǐng)?zhí)暨x 1-7:; scanf%d,&choice; getchar; switchchoice case 1: Student_Insert; break; case 2: Student_Modify; break; cas
17、e 3: Student_Delete; break; case 4: Student_Select; break; case 5: Student_SortByAverage; Student_Display; break; case 6: IO_WriteInfo; break; case 7: exit0; break; 3.5 測試分析C 語言是上學(xué)期的學(xué)習(xí)內(nèi)容,現(xiàn)在生疏了很多,以致程序運(yùn)行過程中有很多bug,測試也有很多想不到的錯(cuò)誤;下面列舉幾個(gè)例子:1)IO_ReadInfo 讀出文件If(fp=fopen“ database.txt” ,” rb” )=NULL )以二進(jìn)制的格式
18、讀取文件的模式打開 database.txt文件,并把文件指針賦值為文件讀取指針I(yè)O_WriteInfo 寫入文件If(fp=fopen“ database.txt” ,” rb” )=NULL )以二進(jìn)制寫入方式打開文件,和讀 取 類 似 ; 在 寫 這 個(gè) 函 數(shù) 的 時(shí) 候 總 是 不 能 讀 出 , 而 且 寫 入 也 有 問 題 , if fwrite&num,sizeofint,1,fp.=1由于 sizeof(int)是指一次讀入的二進(jìn)制數(shù)據(jù)單位個(gè)數(shù),后面的“1” 表示要讀取的次數(shù), fread 返回值有 1、0,分別是勝利,失敗的意思;2)在程序中 float 與 int 要依據(jù)數(shù)據(jù)得取值情形,仍有字符串類型的使用,在求同學(xué)成果平均值的時(shí)候,由于字符串類型不一樣,導(dǎo)致數(shù)據(jù)結(jié)果失真,這樣 的錯(cuò)誤不應(yīng)再犯;3.6 設(shè)計(jì)結(jié)果錄入一條或多條同學(xué)數(shù)據(jù)刪除一條或多條同學(xué)數(shù)據(jù)按姓名查找一條或多條同學(xué)數(shù)據(jù)增加一條或多條同學(xué)數(shù)據(jù)修改一條或多條同學(xué)數(shù)據(jù)按同學(xué)平均成果排序儲(chǔ)存文件到根目錄退出程序四.結(jié)論與心得通過一周的上機(jī)實(shí)習(xí),我對(duì)C語言又有了自己的一點(diǎn)熟悉;C語言的學(xué)習(xí)是一個(gè)系統(tǒng)的過程,不像其它學(xué)科學(xué)問
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:近代漢文中國行紀(jì)與全球文學(xué)關(guān)系研究
- 2025年度個(gè)人與公司租賃合同稅費(fèi)承擔(dān)協(xié)議4篇
- 二零二五版金融服務(wù)保密協(xié)議范本修訂6篇
- 2025年保定怎么考貨運(yùn)從業(yè)資格證
- 二零二五年城投小貸與農(nóng)業(yè)產(chǎn)業(yè)合作框架協(xié)議4篇
- 2025年度農(nóng)村土地流轉(zhuǎn)經(jīng)營權(quán)抵押貸款合同示范文本4篇
- 二零二五年度充電樁安裝工程知識(shí)產(chǎn)權(quán)保護(hù)合同4篇
- 二零二五年度出境領(lǐng)隊(duì)旅游目的地考察合同4篇
- 二零二五年度城市綜合體建設(shè)項(xiàng)目承包商安全作業(yè)管理協(xié)議4篇
- 2025年度葡萄采摘季節(jié)臨時(shí)工采購合同范本3篇
- 垃圾處理廠工程施工組織設(shè)計(jì)
- 天皰瘡患者護(hù)理
- 2025年蛇年新年金蛇賀歲金蛇狂舞春添彩玉樹臨風(fēng)福滿門模板
- 《建筑制圖及陰影透視(第2版)》課件 4-直線的投影
- 新生物醫(yī)藥產(chǎn)業(yè)中的人工智能藥物設(shè)計(jì)研究與應(yīng)用
- 防打架毆斗安全教育課件
- 損失補(bǔ)償申請(qǐng)書范文
- 壓力與浮力的原理解析
- 鐵路損傷圖譜PDF
- 裝修家庭風(fēng)水學(xué)入門基礎(chǔ)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)二 社群的種類與維護(hù)
評(píng)論
0/150
提交評(píng)論