版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計項目設(shè)計報告 項目名稱:同學(xué)成果信息治理系統(tǒng)2022 年 1 月 13 日目 錄 1 項目分析 . 1.1 問題描述 . 1.2 功能需求分析 . 2 系統(tǒng)設(shè)計 . 2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 . 2.3部分功能設(shè)計 . 3 系統(tǒng)實現(xiàn)源程序 . 3.1 主函數(shù)設(shè)計 . 3.2 添加同學(xué)信息 . 3.3 姓名學(xué)號查詢 . 3.4 成果查詢 . 3.5 刪除同學(xué)成果信息3.6 修改同學(xué)成果信息. . 4 功能測試 . 4.1 菜單測試 . 4.2 系統(tǒng)功能測試 . 5 系統(tǒng)設(shè)計遇到的問題及解決方法. 6 項目設(shè)計總結(jié) . 1 項目分析1.1 問題描述信息儲存與查詢是運算機處理數(shù)據(jù)的優(yōu)勢之一
2、,目前,同學(xué)信息的管理系統(tǒng)已經(jīng)完全走進(jìn)了校內(nèi),其中成果信息的儲存是主要部分,本課題使用 C 語言實現(xiàn)同學(xué)成果的儲存,查詢,修改,以及刪除等操作;程序中涉及到數(shù)據(jù)塊和文件指針的操作,定位,修改等;1.2 功能需求分析包括結(jié)構(gòu)體數(shù)據(jù)定義, 使用及文件的讀寫,同學(xué)成果信息治理系統(tǒng)的主要功能如下:添加同學(xué)信息:錄入同學(xué)的基本信息,如姓名,學(xué)號,成果;顯示全部同學(xué)成果信息:直接顯示已經(jīng)全部錄入同學(xué)的成果信息;學(xué)號或姓名查詢:可以依據(jù)同學(xué)的姓名和學(xué)號直接查詢該名同學(xué)的成績;成果查詢:可以依據(jù)一個特定的分?jǐn)?shù)來查詢同學(xué)的信息;刪除同學(xué)成果信息:可以直接依據(jù)學(xué)號確定是否刪除對應(yīng)同學(xué)的成果信息;修改同學(xué)成果信息:
3、 直接依據(jù)同學(xué)學(xué)號來修改同學(xué)的姓名,學(xué)號,成果;同學(xué)成果信息管 圖 1-1 系統(tǒng)功能模塊圖2 系統(tǒng)設(shè)計 添顯學(xué)成刪修2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 加示號績除改學(xué)所或查學(xué)學(xué)struct stu 生有姓詢/ 定義結(jié)構(gòu)體類型 生重新添加信息/ 姓名char name10; 連續(xù)添加信息char num10; / 學(xué)號char score10; / 成果 2.2 函數(shù)設(shè)計表 1 函數(shù)列表序函 數(shù) 原 型功 能 說 明號1void addnew新增同學(xué)姓名,學(xué)號,成果信息2void addold在原有基礎(chǔ)上連續(xù)增加其他同學(xué)的信息3void printall顯示全部已經(jīng)存入同學(xué)的成果等信息4void search
4、依據(jù)姓名或者學(xué)號查詢同學(xué)分?jǐn)?shù)5void jgsearch依據(jù)成果查詢對應(yīng)的同學(xué)6void del刪除同學(xué)信息7void modify修改同學(xué)信息8system“ cls” ;清屏2.3部分功能設(shè)計1.刪除同學(xué)的信息,輸入同學(xué)的學(xué)號進(jìn)行刪除操作,假如沒有此人,系統(tǒng)將會提示無此人,假如找到,系統(tǒng)將會確認(rèn)你是否需要刪除,流程圖如 1-2 所示;開頭No輸入學(xué)號Yes在文件里查找圖 1-2 刪除同學(xué)信息流程圖2.輸入學(xué)號進(jìn)行查詢對應(yīng)同學(xué)的成果,流程圖如圖 是否找1-3 所示;輸出文件開頭確認(rèn)刪除圖 1-3 查詢功能流程圖輸 入 學(xué) 號 或 姓輸入 1 輸入 0在文件中查找輸出刪除成Yes是否找到N3
5、系統(tǒng)實現(xiàn)源程序3.1 主函數(shù)設(shè)計void mainint x;systemcls; /* 清屏 */doprintfn 歡 迎 使 用 學(xué) 生 成 績 信 息 管 理 系 統(tǒng)nnnnn; printf 1 -添加同學(xué)信息 nn; printf 2 -顯示全部同學(xué)成果信息nn; printf 3 - 學(xué)號或姓名查詢nn;printf 4 -成果查詢 nn; printf 5 - 刪除同學(xué)成果信息nn;printf 6 - 修改同學(xué)成果信息nn;printf 0 -退出 ;printf 請您挑選: ;choice:scanf%d,&x;switchxcase 1:add;break;case 2:
6、printall;break;case 3:search;break;case 4:jgsearch;break;case 5:del;break;case 6:modify;break;case 0:break;default:printfn 擇: ;goto choice; whilex.=0;systemcls;錯誤的挑選,請重新選printfnn 歡迎再次使用同學(xué)成果治理系統(tǒng)n; 3.2 添加同學(xué)信息/* 同學(xué)成果信息治理系統(tǒng) */#include #include #include int c,j,t;struct stu /* 定義結(jié)構(gòu)體類型 */ char name10;char
7、 num10;char score10;student100,newstudent100;/* 添加同學(xué)個人信息 */ void addnew int a,b,k;FILE *fp,*fp1,*fp2; /*FILE類型指針變量的定義形式*/ fora=0;a200;a+systemcls;printf 歡迎使用同學(xué)成果治理系統(tǒng)nnn;printf 錄入同學(xué)信息 nn;printf 輸入同學(xué)姓名 :;scanf%s,&;printf 輸入同學(xué)學(xué)號 :;scanf%s,&studenta.num;printf 輸入同學(xué)成果 :;scanf%s,&studenta.sco
8、re;printf 輸入1連續(xù),0終止 n; /* 判定輸入是否終止*/ scanf%d,&b;ifb=0 c=a;systemcls;break;iffp1=fopenCa1.txt,w=NULL /* 文件名,使用文件方式*/ printf 信息寫入失敗 ;exit0;iffp2=fopenCa2.txt,w=NULL printf 信息寫入失敗 ;exit0;iffp=fopenCa3.txt,w=NULL printf 信息寫入失敗 ;exit0;j=sizeofstruct stu;fora=0;a=c;a+iffwrite&studenta,j,1,fp.=1printf 存入失敗
9、 .;fora=0;a=c;a+ifstrcmpstudenta.score,80=0fwrite&studenta,j,1,fp1;elsefwrite&studenta,j,1,fp2;printf 添加勝利! nn;printf 請輸入 0返回 n;scanf%d,&k;fclosefp1;fclosefp2;fclosefp;ifk=0systemcls;/* 連續(xù)添加成員 */void addoldint a,b,k,p,q;char wjm20;FILE *fp;j=sizeofstruct stu;systemcls;printf 歡迎使用同學(xué)成果信息治理系統(tǒng)nnn;printf
10、 錄入同學(xué)信息 nn;printfnn 儲備文件名有Ca1.txt Ca2.txt Ca3.txt nn;printf 請輸入想連續(xù)添加的文件名:;scanf%s,wjm;fora=0;a200;a+printf 輸入同學(xué)姓名 :;scanf%s,&;printf 輸入同學(xué)學(xué)號 :;scanf%s,&newstudenta.num;printf 輸入同學(xué)成果 :;scanf%s,&newstudenta.score;printf 輸入1連續(xù),0終止 n; / 判定輸入是否終止scanf%d,&b;ifb=0 c=a;systemcls;break;iffp=fo
11、penwjm,r=NULL printf 文件打開失??! ;exit0;a=0;while.feoffpfread&studenta,j,1,fp;a+;fclosefp;t=a-1;forq=0,p=t;q=c,p=t+c;q+,p+,;strcpystudentp.num,newstudentq.num;strcpystudentp.score,newstudentq.score;iffp=fopenwjm,w=NULL printf 文件打開失?。?;exit0;fora=0;a=t+c;a+iffwrite&stud
12、enta,j,1,fp.=1printf 存入失敗 .;printf 添加勝利! nn;printf 請輸入 0返回 n;scanf%d,&k;fclosefp;ifk=0systemcls;void addint x;systemcls;printf 歡迎使用同學(xué)成果信息治理系統(tǒng) nnn;printf 添加同學(xué)信息 nn;printf 1 重新添加信息 n;printf 2 連續(xù)添加信息 n;printf 0 返回 nnn;printf 請?zhí)暨x: ;scanf%d,&x;choice:switchxcase 1:addnew;break;case 2:addold;break;case 0:
13、break;default:printfn 錯誤的挑選,請重新挑選:;goto choice; systemcls;/* 顯示全部同學(xué)的成果 */ void printall int a,b;FILE *fp,*fp1,*fp2;systemcls;printf 歡迎使用同學(xué)成果信息治理系統(tǒng)nnn;printf 全部已錄入同學(xué)信息nn;printf%-10s%-20s%-50sn, 姓名 ,學(xué)號 , 成果 ;j=sizeofstruct stu;iffp=fopenCa1.txt,r=NULL printfn 打開失敗 ;exit0;iffp1=fopenCa2.txt,r=NULL prin
14、tf 信息寫入失敗 ;exit0;iffp2=fopenCa3.txt,r=NULL printf 信息寫入失敗 ;exit0;a=0;while.feoffpiffread&studenta,j,1,fp=1printf%-10s%-20s%-50sn,,studenta.num,studenta.score;a+;a=0;while.feoffp1iffread&studenta,j,1,fp1=1printf%-10s%-20s%-50sn,,studenta.num,studenta.score;a+;a=0;while.feoffp
15、2iffread&studenta,j,1,fp2=1printf%-10s%-20s%-50sn,,studenta.num,studenta.score;a+;fclosefp;fclosefp1;fclosefp2;printf 返回上級請輸入0.n:;scanf%d,&b;ifb=0systemcls;3.3 姓名學(xué)號查詢void searchint k,b,a;char cx20;FILE *fp;systemcls;j=sizeofstruct stu;doprintf 歡迎使用同學(xué)成果信息治理系統(tǒng)nnn;printf 查找已錄入同學(xué)成果信息nn;k=0;
16、iffp=fopenCa1.txt,r=NULLprintfn 打開失敗 .;exit0;printf 請輸入學(xué)號或姓名:n;scanf%s,cx;ifcx09 a=0;while.feoffpfread&studenta,j,1,fp;,cx=0printfnn 已查到,該記錄為 :nn;printf%-10s%-20s%-50sn, 姓名 , 學(xué)號 ,成果 ;printf%-10s%-20s%-50sn,,studenta.num,studenta.score;k=1;a+;if0=cx0=9 a=0;while.feof
17、fpfread&studenta,j,1,fp;ifstrcmpstudenta.num,cx=0printfnn 已查到,該記錄為 :nn;printf%-10s%-20s%-50sn, 姓名 , 學(xué)號 ,成果 ;printf%-10s%-20s%-50sn,,studenta.num,studenta.score;k=1;a+;if.kprintfn文件中無此人的記錄;;fclosefp;printfn輸入“1” 連續(xù)查找,“ 0” 終止 n;scanf%d,&b;systemcls;whileb.=0;systemcls;3.4 成果查詢void jgsearc
18、hint b,a;char cx20;FILE *fp;systemcls;j=sizeofstruct stu;doprintf 歡迎使用同學(xué)成果信息治理系統(tǒng)nnn;printf 查找同學(xué)成果信息nn;iffp=fopenCa1.txt,r=NULLprintfn 打開失敗 .;exit0;printf 請輸入同學(xué)成果: n;scanf%s,cx;a=0;while.feoffpfread&studenta,j,1,fp;ifstrcmpcx,studenta.score=0 printf%-10s%-20s%-50sn, 姓名 , 學(xué)號 ,成果 ;printf%-10s%-20s%-50s
19、n,,studenta.num,studenta.score;a+;fclosefp;printfn 輸入“1” 連續(xù)查找,“ 0” 終止 n;scanf%d,&b;systemcls;whileb.=0;systemcls;3.5 刪除同學(xué)成果信息void delint m=0,k=0,b,a,q,p;char xh20,wjm20;FILE *fp;systemcls;j=sizeofstruct stu;doprintf 歡迎使用同學(xué)成果信息治理系統(tǒng) nnn;printf 刪除同學(xué)成果信息 nn;printfnn 儲備文件名有 Ca1.txt Ca2.txt C
20、a3.txt nn;k=0;printfn 請輸入學(xué)號: ;scanf%s,xh;printfn請輸入欲刪除的文件名:;scanf%s,wjm;iffp=fopenwjm,r=NULLprintfn 文件打開失敗 .;exit0;a=0;while.feoffpfread&studenta,j,1,fp; 輸入到數(shù)組中a+;fclosefp;t=a-1;fora=0;a=t;a+/ 將文件內(nèi)容ifstrcmpxh,studenta.num=0k=1;break;ifa=tprintfnn文件中無此人的記錄;;ifk=1printfnn 已查到,該記錄為 :nn;printf%-10s%-20s
21、%-50s,姓名 ,學(xué)號 , 成果 ;printf%-10s%-20s%-50s,,studenta.num,studenta.score;printfn的確要刪除記錄,請按1;不刪除記錄,請按0:n;scanf%d,&m;ifmforp=a,q=a+1;pt,q=t;q+,p+,;strcpystudentp.num,studentq.num;strcpystudentp.score,studentq.score;iffp=fopenwjm,w=NULLprintfn 文件打開失敗 .;exit0;fo
22、ra=0;at;a+fwrite&studenta,j,1,fp;ifmprintfn 刪除勝利 .;fclosefp;printfn輸入“1” 連續(xù),“ 0” 終止 n;scanf%d,&b;systemcls;whileb.=0;systemcls;3.6 修改同學(xué)成果信息void modifyint k=0,b,a;char xh20,wjm20;FILE *fp;systemcls;j=sizeofstruct stu;doprintf 歡迎使用同學(xué)成果信息治理系統(tǒng) nnn;printf 修改同學(xué)成果信息 nn;printfnn 儲備文件名有 Ca1.txt Ca2.txt Ca3.t
23、xt nn;printfn 請輸入學(xué)號: ;scanf%s,xh;printfn請輸入欲修改文件名:;scanf%s,wjm;iffp=fopenwjm,r+=NULLprintfn 打開失敗 .;exit0;a=0;while.feoffpfread&studenta,j,1,fp;a+;fclosefp;t=a-1;fora=0;a=t;a+ifstrcmpxh,studenta.num=0k=1;break;ifa=tprintfnn文件中無此人的記錄;;ifk=1printfnn 已查到,該記錄為 :nn;printf%-10s%-20s%-50s,姓名 ,學(xué)號 , 成果 ;print
24、f%-10s%-20s%-50s,,studenta.num,studenta.score;printfn 請輸入新的姓名: ;scanf%s,;printfn 請輸入新的學(xué)號: ;scanf%s,studenta.num;printfn 請輸入新的成果: ;scanf%s,studenta.score;iffp=fopenwjm,w=NULLprintfn 文件打開失敗 .;exit0;fora=0;at;a+fwrite&studenta,j,1,fp;printfn 修改勝利 .;fclosefp;printfn輸入“1” 連續(xù),“ 0
25、” 終止 n;scanf%d,&b;systemcls;whileb.=0;systemcls;4 功能測試4.1 菜單測試同學(xué)成果治理系統(tǒng)運行后的主菜單界面如圖 4-1 所示;圖 4-1 系統(tǒng)主界面4.2 系統(tǒng)功能測試1添加同學(xué)信息在主菜單按 1 后,會顯示圖 4-2,再按 2 添加同學(xué)的信息如圖 4-3 所示,如果按 1 的話那么全部以前的儲存的信息都將被清除,接著再重新輸入數(shù)據(jù);圖 4-2 同學(xué)信息輸入界面圖 4-3 同學(xué)信息輸入界面2顯示全部同學(xué)成果信息在系統(tǒng)菜單上面按2,就全部的同學(xué)成果都會顯示如圖4-4 所示;圖 4-4 同學(xué)成果瀏覽3. 學(xué)號或姓名查詢在主菜單上輸入 3,然后在依
26、據(jù)姓名或者學(xué)號,可以查到該同學(xué)的分?jǐn)?shù),如圖 4-5 和 4-6 圖所示;圖 4-5 依據(jù)學(xué)號查詢分?jǐn)?shù)圖 4-6 依據(jù)姓名查詢分?jǐn)?shù)4. 成果查詢在主菜單上輸入4,可以得到圖4-7 所示,這是依據(jù)分?jǐn)?shù)來確定同學(xué);圖 4-7 依據(jù)分?jǐn)?shù)來確定同學(xué)5. 刪除同學(xué)成果信息在主菜單上按 5,挑選需要刪除的對應(yīng)文檔里的該同學(xué)的成果信息,可以得到圖 4-8 所示;圖 4-8 刪除同學(xué)信息6. 修改同學(xué)的信息在主菜單上按 6,挑選需要修改的人的學(xué)號,再進(jìn)行一系列的修改,可以得到圖 4-9 所示;圖 4-9 修改同學(xué)信息5 系統(tǒng)設(shè)計遇到的問題及解決方法1.*和 在定義時只是說明作用,不能誤會為運算符&、*、 是 C
27、 語言供應(yīng)的三種運算符,分別是取地址運算符、指針運算符和下標(biāo)運算符,其中,&與*互為逆運算;在表達(dá)式中它們的意義很明確,但是在定義中 *、 只是起說明作用,不能看作運算符;例如: int number=10;Int *pt=&number;Int *pt=a;在這里, 我們簡單被后兩個語句困惑,之所以困惑, 就是把 *當(dāng)作了運算符,其實在這里Int *共同來修飾指針變量pt,定義一個指向整型變量的指針變量,自然會把一個地址 賦值語句中,第一個是正確的;&number 賦值給 pt;因此,上述后面兩個2、用整數(shù)值直接給指針賦值指針值就是指針?biāo)赶虻牡刂?在程序運行中,指針的值其實就是一個整數(shù)值,但是決不能在程序語句中把一個整數(shù)值當(dāng)作指針的值直接賦給指針;例如: int num;Int *pt;num=72781;p=num;最終一個語句目的是使指針指向地址 會提示這個語句有錯誤;3、字符串的讀入72781(十進(jìn)制),編譯時系統(tǒng)就當(dāng)要求
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年環(huán)保型共享單車運營管理合同
- 2024年餐飲行業(yè)培訓(xùn)資料保密合同3篇
- 2024年高端電子產(chǎn)品購買合同
- 2024年花卉育苗基質(zhì)購買與交付合同
- 2024水利工程渣土清運合同
- 2024年電子設(shè)備借款合同精簡版
- 2024年能源管理服務(wù)合同(含空調(diào)系統(tǒng))
- 2024無人機航拍技術(shù)服務(wù)合同
- 2025版精細(xì)化管理房產(chǎn)買賣代理合同范本3篇
- 2024暑假校園兼職人員服務(wù)合同3篇
- 樁基檢測的環(huán)保措施
- 術(shù)前術(shù)后健康宣教
- 新東方國際游學(xué)報名表
- 數(shù)學(xué)八年級下冊第十七章 小結(jié)與復(fù)習(xí)
- 基層動物防疫員培訓(xùn)課件
- 《哈佛管理制度全集-中文》
- 仁愛版九年級上冊英語中考專題復(fù)習(xí)訓(xùn)練課件
- 部編版四年級語文下冊第5單元大單元整體教學(xué)作業(yè)設(shè)計(教案配套)
- 【超星爾雅學(xué)習(xí)通】【紅色經(jīng)典影片與近現(xiàn)代中國發(fā)展(首都師范大學(xué))】章節(jié)測試及答案
- 市政工程工程開工報審表及開工令
- 2022-2023學(xué)年新疆維吾爾自治區(qū)烏魯木齊市小學(xué)語文四年級上冊期末通關(guān)試卷
評論
0/150
提交評論