版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高級語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告書題目:班級檔案管理系統(tǒng)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 號:學(xué)生姓名:指導(dǎo)教師:完成日期:目錄一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1. 設(shè)計(jì)內(nèi)容對一個(gè)有N 個(gè)學(xué)生的班級,通過該系統(tǒng)實(shí)現(xiàn)對該班級學(xué)生的基本信息進(jìn)行錄入、顯示、修改、刪除、保存等操作的管理。2. 設(shè)計(jì)要求( 1)本系統(tǒng)采用一個(gè)包含N 個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)學(xué)生的數(shù)據(jù)應(yīng)當(dāng)包括:學(xué)號、姓名、性別、年齡、備注。( 2)本系統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項(xiàng):a 從文件中讀入學(xué)生基本信息b 添加新學(xué)生的基本信息c 學(xué)生基本信息顯示d 學(xué)生基本信息保存至文件e 學(xué)生基本信息刪除f 學(xué)生基本信息修改(要求先輸入修改密碼)g 學(xué)生基本信
2、息查詢(1) 按學(xué)號查詢(2) 按姓名查詢(3) 按性別查詢(4) 按年齡查詢 h 退出系統(tǒng)( 3)執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示菜單。( 4)將學(xué)生基本信息保存到文件中。( 5)進(jìn)入系統(tǒng)之前要先輸入登錄密碼。說明:登錄密碼和修改密碼使用文件保存。:、課程設(shè)計(jì)目的在平時(shí)學(xué)習(xí)C語言的過程中,通常只是在課堂上跟隨老師的講解來進(jìn)行學(xué) 習(xí),因此在練習(xí)上較為缺乏,而課程設(shè)計(jì)恰恰彌補(bǔ)了這點(diǎn),它不僅是對平時(shí)學(xué)習(xí) 的一種檢測,同時(shí)在做它的過程中也對自己學(xué)習(xí)的知識進(jìn)行了鞏固和提高,為以后的學(xué)習(xí)和工作打下了基礎(chǔ)。三、程序模塊分析1.系統(tǒng)控制流程圖圖:Delete函數(shù)圖:modi函數(shù)圖:search函數(shù)四、
3、函數(shù)功能說明1. 函數(shù)說明main() 函數(shù)是程序的入口有調(diào)取各個(gè)模塊的的作用,里面包含一個(gè)switch 語句,實(shí)現(xiàn)選擇功能;read() :讀取函數(shù),從文件中讀取學(xué)生信息;input() :添加函數(shù),學(xué)生基本信息的錄入;save() :學(xué)生信息保存函數(shù);Delete() :刪除函數(shù);search() :查找函數(shù);modi() :信息修改函數(shù);secretcode() :密碼驗(yàn)證函數(shù);2. 用戶說明輸入密碼進(jìn)入系統(tǒng)后,通過ag 選項(xiàng)來進(jìn)行功能選擇。選項(xiàng)a:調(diào)用read函數(shù),將在文件中保存的學(xué)生信息讀入結(jié)構(gòu)體數(shù)組中,然后在屏幕上顯示出來,按enter 鍵便重新返回菜單;選項(xiàng)b:調(diào)用input函數(shù)
4、,輸入需要添加的學(xué)生人數(shù),顯示出需要添加的信息, 將信息填寫完畢后,按 enter 鍵重新返回菜單,再通過選項(xiàng)c 將新添加的學(xué)生信息保存到文件中;選項(xiàng)c: 調(diào)用 save 函數(shù)將新輸入或修改后的學(xué)生信息保存到文件中,在 input函數(shù)和 modi 函數(shù)調(diào)用之后需要調(diào)用此函數(shù),然后按enter 鍵重新返回菜單;選項(xiàng)d:通過調(diào)用delete函數(shù),輸入需要?jiǎng)h除的學(xué)生的學(xué)號,按 enter鍵提示刪除成功,該學(xué)生信息已被從文件中刪除,并重新返回菜單;選項(xiàng)e:在調(diào)用該函數(shù)實(shí)現(xiàn)學(xué)生信息修改的功能時(shí),需要輸入修改密碼,當(dāng)密碼錯(cuò)誤時(shí),提示密碼錯(cuò)誤,此時(shí)重新輸入密碼。密碼正確之后,輸入需要修改信息的學(xué)生的學(xué)號,輸
5、出該學(xué)生信息,確認(rèn)后輸入新的學(xué)生信息,按 enter 鍵重新返回菜單,此時(shí)需要通過選項(xiàng)c 將信息保存到文件中;選項(xiàng) f :通過調(diào)用search 函數(shù),在選擇該項(xiàng)后,會出現(xiàn)一個(gè)子菜單,按照需求可以分別通過學(xué)號、姓名、 性別和年齡來查詢學(xué)生信息,按 enter 鍵顯示查詢信息并重新返回菜單。五、程序測試輸入登陸密碼123456 進(jìn)入系統(tǒng)圖輸入 a 從文件中讀入學(xué)生信息圖輸入 b 添加學(xué)生的基本信息圖圖輸入 c 將信息保存至文件圖輸入 d 刪除學(xué)生信息圖信息刪除成功圖再次從文件輸入信息時(shí)需要?jiǎng)h除的信息已被刪除圖輸入 e 進(jìn)行學(xué)生信息修改圖圖輸入c 將信息保存到文件中圖輸入f 學(xué)生信息的查詢圖圖六、總
6、結(jié)這次的課程設(shè)計(jì)給了我很大的體會,我能獨(dú)立的完成這項(xiàng)任務(wù),是對平時(shí)的學(xué)習(xí)和練習(xí)的一種肯定,同時(shí)也提高了自己的信心。在完成它的過程中當(dāng)然會遇到很多的困難,首先是結(jié)構(gòu)體的定義問題,由于剛開始對程序的不熟悉,在定義結(jié)構(gòu)體內(nèi)元素?cái)?shù)組時(shí)出現(xiàn)了錯(cuò)誤,后來經(jīng)過一次次的檢測將數(shù)組定義到了一個(gè)合適的大小。其次在 input 函數(shù)中, 輸入完新學(xué)生信息保存至文件中時(shí),對文件原有信息進(jìn)行了覆蓋,因此為了避免這種情況,將for 循環(huán)中的i 從 N-n 開始,經(jīng)過測試這種方法是有效的。最后是刪除函數(shù),由于開始定義的年齡是整型變量,在對文件中的結(jié)構(gòu)體數(shù)據(jù)進(jìn)行刪除時(shí),在年齡的位置會出現(xiàn)數(shù)字0,從而使從文件中讀取數(shù)據(jù)時(shí)出現(xiàn)亂
7、碼,于是便將年齡定義成字符型數(shù)組,利用strcpy 函數(shù)將結(jié)構(gòu)體數(shù)組的下一位元素將前一位元素進(jìn)行覆蓋,從而實(shí)現(xiàn)刪除功能。雖然較為成功的完成了課程設(shè)計(jì),但由于知識和時(shí)間的局限性,系統(tǒng)仍然存在缺陷, 我認(rèn)為此系統(tǒng)還能通過鏈表來進(jìn)行優(yōu)化,鏈表的好處是可以通過指針更好的實(shí)現(xiàn)查找、修改和刪除功能,因此如果有時(shí)間便會通過鏈表來時(shí)、使這個(gè)系統(tǒng)更加具有實(shí)用性。附錄 源程序清單#include"" #include ""#include "" #include "" #include ""struct stude
8、ntprintf("void input()o);#define N 4printf("*b.添加新學(xué)生的基本信息*n");printf("*c.學(xué)生基本信息保存至文件*n"printf("*d.學(xué)生基本信息刪除*n");printf("*e.學(xué)生基本信息修改*n");printf("*f.學(xué)生基本信息查詢*n");printf("*g.退出系統(tǒng)*n");printf("*n");printf(" printf("n"
9、;);* * * * * * * * * * * * * * n");文件中讀入學(xué)生基本信息*n");請輸入選項(xiàng):(a g)n"););printf("name:n");scanf("%s",);printf("sex:n");scanf("%s",stui.sex);printf("age:n");scanf("%s",stui.age);printf("note:n");scanf("%s&qu
10、ot;,stui.note);printf("n");printf(" 請檢查信息是否輸入正確!n");printf("n");for(i=N-n;i<N;i+) printf("%s %s %s %s %sn",stui.no,,stui.se x, stui.age,stui.note);void save() ame)=4)fprintf(fp,"%s %s %s %s %sn",stui.no,,stui .sex, stui.age,stui.
11、note);if(strlen()=6)fprintf(fp,"%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);fclose(fp);fflush(fp);printf(" 保存成功!n");void Delete()o)for(f=i;f<N;f+)ame,stuf+1.name);strcpy(stuf.note,stuf+1.note);strcpy(stuf.no,stuf+1.no);strcpy(stuf.sex,stuf+1.sex);
12、strcpy(stuf.age,stuf+1.age);flag=true;if(!flag)printf(" 該學(xué)生不存在!:n");Delete();for(i=0;i<N;i+) fprintf(fp,"%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);printf(" 刪除成功!n");fclose(fp);void search()o,,stuf.sex,stuf.age,stuf.note);bool flag=fals
13、e;o)if(strlen()=4)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);if(strlen()=6)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note); flag=true;if(!flag) printf(" 該學(xué)生不存在.n");break;case 2:printf(" 請輸入姓名:
14、n");char na10;ame)if(strlen()=4)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);if(strlen()=6)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);flag = true;if (!flag)printf(" 該學(xué)生不存在.n");break;case 3:
15、char ch5;printf(" 請輸入性別:n");scanf("%s",ch);for(i=0;i<N;i+)if (!strcmp(ch,stui.sex)if(strlen()=4)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);if(strlen()=6)printf("%s %s %s %s %sn",stui.no,,stui.sex, stu
16、i.age,stui.note);flag = true;if (!flag)printf("t 該學(xué)生不存在.n");break;case 4:char num_age5;printf(" 請輸入年齡:n");scanf("%s",&num_age);for ( i =0;i<N;i+)if (!strcmp(num_age,stui.age)if(strlen()=4)printf("%s %s %s %s %sn",stui.no,,stui.sex, stu
17、i.age,stui.note);if(strlen()=6)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);flag = true;if (!flag)printf(" 該學(xué)生不存在.n");break;default: break;void modi()o,,stuf.sex,stuf.age,stuf.note);fclose(fp1);printf(" 請輸入修改密碼:n");scanf(&qu
18、ot;%s",b);if(fp=fopen("e:","r")=NULL)printf(" 打開文件夾失??!");exit(0);ch=fgetc(fp);while(ch!=EOF&&i<6)ai = ch;ch=fgetc(fp);i+;a6 = '0'fclose(fp);while(1)if (!strcmp(a,b)break;elseprintf(" 密碼錯(cuò)誤!請重新輸入密碼:n");scanf("%s",b);printf("
19、; 請輸入需要修改信息學(xué)生的學(xué)號:n");scanf("%s",c);for(f=0;f<N;f+)if (!strcmp(c,stuf.no)printf("%s %s %s %s %sn",stuf.no,,stuf.sex,stuf .age,stuf.note);printf("n");printf(" 請輸入新的信息:n");printf("no:n");scanf("%s",stuf.no);printf("name:n
20、");scanf("%s",);printf("sex:n");scanf("%s",stuf.sex);printf("age:n");scanf("%s",stuf.age);printf("note:n");scanf("%s",stuf.note);temp=true;break;if(!temp) printf(" 該學(xué)生不存在!n");int secretcode(charb6)o,stui.na
21、me,stui.sex,stui.age,stui.note);if(strlen()=4)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);if(strlen()=6)printf("%s %s %s %s %sn",stui.no,,stui.sex, stui.age,stui.note);printf("n");printf(" 讀取成功!n");fclose(fp);main(int argc, char* argv)char a7;char n;int code;printf(" 請輸入登陸密碼:n");while(1)scanf("%s",a);code=secretcode(a);if(code!=0)printf(" 密碼錯(cuò)誤!");printf("n");elsebreak;printf("*歡迎進(jìn)入班級檔案管理系統(tǒng)!*n");printf(
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版游戲版權(quán)采購合同示范文本3篇
- 湘潭大學(xué)《體育基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年版經(jīng)營權(quán)作抵押借款協(xié)議樣例版B版
- 二零二五版戶外廣告資源代理合作框架協(xié)議3篇
- 2024消防設(shè)備研發(fā)與制造合同范本3篇
- 二零二五年度藝術(shù)品收藏交易合同3篇
- 2025年度智慧養(yǎng)老服務(wù)平臺建設(shè)與運(yùn)營合同3篇
- 桐城師范高等??茖W(xué)?!侗硌莼A(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版板房租賃合同含物業(yè)管理及保潔服務(wù)3篇
- 四川文軒職業(yè)學(xué)院《機(jī)械工程材料B》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海紐約大學(xué)自主招生面試試題綜合素質(zhì)答案技巧
- 辦公家具項(xiàng)目實(shí)施方案、供貨方案
- 2022年物流服務(wù)師職業(yè)技能競賽理論題庫(含答案)
- ?;钒踩僮饕?guī)程
- 連鎖遺傳和遺傳作圖
- DB63∕T 1885-2020 青海省城鎮(zhèn)老舊小區(qū)綜合改造技術(shù)規(guī)程
- 高邊坡施工危險(xiǎn)源辨識及分析
- 中海地產(chǎn)設(shè)計(jì)管理程序
- 簡譜視唱15942
- 《城鎮(zhèn)燃?xì)庠O(shè)施運(yùn)行、維護(hù)和搶修安全技術(shù)規(guī)程》(CJJ51-2006)
- 項(xiàng)目付款審核流程(visio流程圖)
評論
0/150
提交評論