




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、-. z. 目 錄 HYPERLINK l _Toc19016 一、課題設(shè)計容與主要功能1 HYPERLINK l _Toc17354 第1節(jié).設(shè)計容1 HYPERLINK l _Toc13517 第2節(jié).主要功能1 HYPERLINK l _Toc20250 二、課題分析 PAGEREF _Toc20250 2 HYPERLINK l _Toc26210 第1節(jié).類聲明表 PAGEREF _Toc26210 2第2節(jié).分析課程設(shè)計項目的實現(xiàn)方法3 HYPERLINK l _Toc840 三、主要功能的實現(xiàn)步驟4 HYPERLINK l _Toc32678 四、程序測試與結(jié)論5 HYPERLI
2、NK l _Toc21515 五、總結(jié)11 HYPERLINK l _Toc25295 六、附件14一、課題設(shè)計容與主要功能1、設(shè)計容: 為了滿足學(xué)生檔案管理的要求,通過計算機技術(shù)給檔案管理人員帶來便利。使用c語言編寫了學(xué)生檔案此管理系統(tǒng)。本系統(tǒng)主要實現(xiàn)學(xué)生檔案管理的功能,通過此系統(tǒng)方便對學(xué)生檔案管理。包括*、性別、年齡、備注。所設(shè)計的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來進行各種處理。圖書信息的錄入后,系統(tǒng)按照有一定的規(guī)格式顯示,錄入的學(xué)生信息用文件形式保存,并可以對其進行修改、排序、插入、排序查詢等基本操作。整個程序?qū)崿F(xiàn)鏈表操作,對學(xué)生信息的操作逐個地進行。學(xué)生檔案
3、管理系統(tǒng)構(gòu)建框架 學(xué) 1.學(xué)生基本信息錄入 生 2.學(xué)生基本信息顯示 檔 3.學(xué)生基本信息保存 案 4.學(xué)生基本信息修改 按修改 管 5.學(xué)生基本信息插入 按插入 理 6.學(xué)生基本信息刪除 按刪除 系 7.學(xué)生基本信息排序 統(tǒng) 8.學(xué)生基本信息按查詢 按查詢 9.從文件中讀入學(xué)生基本信息 10.退出系統(tǒng)2、主要功能: 1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:*、性別、年齡、備注。 2、本系統(tǒng)顯示這樣的菜單: 請選擇系統(tǒng)功能項:1.學(xué)生基本信息錄入;2.學(xué)生基本信息顯示;3.學(xué)生基本信息保存;4.學(xué)生基本信息修改;5.學(xué)生基本信息插入;6.學(xué)生基本信息刪除;7.學(xué)生基
4、本信息排序;8.學(xué)生基本信息按查詢;9.從文件中讀入學(xué)生基本信息;10.退出系統(tǒng) 3、執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。 4、將學(xué)生基本信息保存到文件中。課題分析1、類說明表名稱屬性說明name數(shù)據(jù)成員說明學(xué)生no數(shù)據(jù)成員說明學(xué)生*se*數(shù)據(jù)成員說明學(xué)生性別age數(shù)據(jù)成員說明學(xué)生年齡remark數(shù)據(jù)成員說明學(xué)生備注2、實現(xiàn)方法及核心算法實現(xiàn)代碼 :主函數(shù): void main() 錄入函數(shù):void enter() 顯示函數(shù):void list() 保存函數(shù):void save() 插入函數(shù):insert() 修改函數(shù):void revise()刪除函數(shù):void delete()刪
5、除錄入的學(xué)生信息排序函數(shù):void sort() 排序錄入的學(xué)生信息查找函數(shù):void qseek() 查找錄入的學(xué)生信息讀取函數(shù):int load() 讀取保存在文件中的學(xué)生信息三、主要功能的實現(xiàn)步驟模塊一:頭文件,變量定義,函數(shù)的聲明 對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明 模塊二:學(xué)生信息的錄入 int enter(STUDENT t)錄入學(xué)生的基本信息。模塊三:學(xué)生信息的顯示 void list(STUDENT t,int n)就是把學(xué)生的基本信息顯示在電腦上。模塊四:學(xué)生信息的保存 void save(STUDENT t,int n)就是在把學(xué)生基本信息的保存下來。模塊五:學(xué)生信
6、息的修改 void revise(STUDENT t,int n)插入學(xué)生信息。模塊六:學(xué)生信息的插入int insert(STUDENT t,int n)修改已經(jīng)錄入的學(xué)生信息模塊七:學(xué)生信息的刪除 int delete(STUDENT t,int n)刪除錄入的學(xué)生信息模塊八:學(xué)生信息的排序void sort(STUDENT t,int n)排序錄入的學(xué)生信息模塊九:學(xué)生信息按查找void qseek(TSTUDENT t,int n)查找錄入的學(xué)生信息模塊十:學(xué)生信息的讀入 int load(STUDENT t)讀取保存在文件中的學(xué)生信息模塊十一:退出系統(tǒng)四、程序測試與結(jié)論進入系統(tǒng) 輸入
7、學(xué)生信息顯示信息保存信息修改信息修改成功插入信息顯示插入成功刪除信息排序信息查詢信息讀入信息(附加)總結(jié):總的來說這個程序大致實現(xiàn)了題目的要求,但是這套程序仍然存在著很多的問題與不足。比如,程序中主函數(shù)寫的有點繁瑣,有太多的嵌套,不是則井然有序,條理清晰,程序注釋也不是很完善,對信息處理功能還有些不足之處,提示信息不明確。還有一點就是沒有做到實現(xiàn)分類查找,分別按照、*、年齡、性別、備注等進行查找。這個系統(tǒng)主要是參照老師的模版編寫的,同時也得到了老師和同學(xué)的一些幫助。我在做系統(tǒng)的過程中也遇到了很多問題,有的是知識不足,有的是考慮不夠周全。事實證明,只靠自己的知識面還是很窄,獨立處理問題能力不是很
8、強,以后還要加強對c語言的學(xué)習(xí)。 我認(rèn)為對于C語言編寫的程序來說,使用方法大致都是一樣的,所以如果要改進的話,就是要改進一些算法,盡量把界面編寫清楚,提示信息全面,方便易用。課程設(shè)計總結(jié)C語言這學(xué)期我們開始的一門新課,早就聽說上屆學(xué)哥學(xué)姐說C語言是天書”,是我們這學(xué)期最難的學(xué)科之一了。早聽說這些我就怕了。首先我感到非常遺憾,課程設(shè)計的第一天,我還在家里,因為收到的消息比較遲所以未能及時趕到學(xué)校,也至于第一天最重要的容沒有學(xué)到,在接下來的兩天上機時間也未能趕上大家的進度,自己也覺得自己做不出這個程序。沒有用心的學(xué)。更加愚蠢的是我在答辯的時候拷貝了同學(xué)的部分程序,自己沒能真正的了解這個程序。答辯的
9、時候,歐陽老師簡單的問了我?guī)讉€問題就發(fā)現(xiàn)我沒有用心學(xué),嚴(yán)厲批評了我,也認(rèn)識到了我的錯誤。當(dāng)看到其他同學(xué)都是A,只有包括我在的少數(shù)幾個一同學(xué)得B,我感到心情有些沉悶,同時更加堅定了我要自己做好這個學(xué)生檔案管理系統(tǒng)程序的決心。自己也想到了,就算課程設(shè)計被我投機取巧完成了,但是省二、國二呢,最終自己還是要好好學(xué)的。自己沒有掌握C語言,又有什么意義呢!當(dāng)我自己真正的研究這個程序的時候我感覺有點蒙了,我感覺我自己沒有這個能力做好,所以我想找學(xué)長幫我,這樣我就不用怕了,可是后來我想到省二、國二,我放棄了這個想法,什么還是靠自己。一邊懊悔自己平時沒有好好學(xué)習(xí),一邊開始硬著頭皮上陣了。第三天下午和晚上我都泡在
10、圖書館里,到晚上將近10點才回寢,感覺自己還是很蒙,不過也有收獲,就是我知道我要做這個模塊要定位函數(shù),要用到鏈表。這讓我信心若狂,我感覺我已經(jīng)找到了起點,有個好的開始我相信我就能做好。晚上回到宿舍后我也不敢再耽誤時間去玩手機了,急忙去看關(guān)于函數(shù)、鏈表的書,第四天看了一天之后我感覺原來計算機也不是什么天書”啊,只是我們沒有好好去看它,去領(lǐng)悟它。我心中暗想,這次程序設(shè)計我很有收獲,它讓我對計算機、對C語言產(chǎn)生了興趣,讓我發(fā)現(xiàn)原來這樣有實踐的學(xué)習(xí)能讓人產(chǎn)生很大的興趣,能讓人更好的領(lǐng)悟它。我自己研究這個程序?qū)⒔鼉商欤戳嗽S多資料,著手進一步改善這個程序了,困難的時候又來了,我不知道用什么語句去完成查找
11、。最好If語句找到后,鏈表來行使刪除功能,可好似鏈表那個真的好難,在同學(xué)們的幫助下我終于把那個鏈表完成,在運行、檢查、修改后,終于合格,程序運行成功了。在完成自己的程序設(shè)計后,自豪的感覺充滿了我的心,是啊,我不是很笨,我只是沒有用心,經(jīng)過這次設(shè)計后,在學(xué)習(xí)方面我對自己有了信心,如果我用心去學(xué),我努力去做,沒有我做不到的。突然間我很喜歡這戲C語言實訓(xùn),在這一周,有歡笑,有焦急,有開心也有不開心,不過不管什么我都還算開心得度過了這一周,和同學(xué)們一起研究、一起做程序、一起檢查、一起討論對與錯。在程序完成的那一時刻,我很開心的笑了,因為那是我付出了汗水做的程序,那時我的心血!這次實訓(xùn)對我來說也是一次教
12、訓(xùn),讓我再次深刻地明白什么事情都要靠自己,自己的事情要自己做且要做好。這次實訓(xùn)也讓我對學(xué)習(xí),對C語言計算機都產(chǎn)生了更濃厚的興趣,也讓同學(xué)們有了更好的團隊協(xié)作精神,也讓我感覺在大學(xué)學(xué)習(xí)很好。感老師讓我們有了這次機會來體驗編程的快樂,感老師不厭其煩的講解。也讓我們有機會感受大學(xué)的美好時光。 紡工1291 旺2013年6月28日六、附件/*學(xué)生基本信息管理系統(tǒng)*/*頭文件(.h)*/#include stdio.h /*I/O函數(shù)*/#include stdlib.h /*標(biāo)準(zhǔn)庫函數(shù)*/#include string.h/*字符串函數(shù)*/#define M 50 /*定義常數(shù)表示記錄數(shù)*/typed
13、ef struct /*定義教師基本信息數(shù)據(jù)結(jié)構(gòu)*/ char name20;/*學(xué)生*/ char no20; /*編號*/ char se*20;/*性別*/ int age;/*年齡*/ char remark20;/*備注*/STUDENT;/*以下是函數(shù)原型*/int enter(STUDENT t);/*輸入記錄*/void list( STUDENT t,int n);/*顯示記錄*/void save(STUDENT t,int n);/*記錄保存為文件*/int find(STUDENT t,int n,char *s)/*查找函數(shù)*/;void print(STUDENT
14、temp);/*顯示單條記錄*/void revise( STUDENT t,int n);/*修改記錄*/int insert(STUDENT t,int n); /*插入記錄*/int delete(STUDENT t,int n)/*刪除記錄*/;int load(STUDENT t);/*從文件中讀記錄*/void sort(STUDENT t,int n);/*按排序*/void qseek(STUDENT t,int n);/*快速查找記錄*/int menu_select();/*主菜單函數(shù)*/main() STUDENT studentM;/*定義結(jié)構(gòu)體數(shù)組*/ int len
15、gth;/*保存記錄長度*/ for(;)/*無限循環(huán)*/ switch(menu_select() /*調(diào)用主菜單函數(shù),返回值整數(shù)作開關(guān)語句的條件*/ case 1:length=enter(student);break;/*輸入記錄*/ case 2:list(student,length);break; /*顯示全部記錄*/ case 3:save (student,length);break;/*保存文件*/ case 4:revise(student,length);break;/*修改記錄*/ case 5:length=insert(student,length);break;/
16、*插入記錄*/ case 6:length=delete(student,length);break; /*刪除記錄*/ case 7:sort(student,length);break; /*按排序*/ case 8:qseek(student,length);break;/*快速查找記錄*/ case 9:length=load(student);break;/*讀文件*/ case 10: e*it(0); /*如返回值為10則程序結(jié)束*/ /*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項*/menu_select() char s80; int c; printf(press any
17、 key enter menun);/*提示壓任意鍵繼續(xù)*/ printf(*MENU*nn); printf( 1. 學(xué)生基本信息錄入n); printf( 2. 學(xué)生基本信息顯示n); printf( 3. 學(xué)生基本信息保存n); printf( 4. 學(xué)生基本信息修改n); printf( 5. 學(xué)生基本信息插入 n); printf( 6. 學(xué)生基本信息刪除n); printf( 7. 學(xué)生基本信息排序n); printf( 8. 學(xué)生基本信息按查詢n); printf( 9. 從文件中讀入學(xué)生基本信息n); printf( 10. 退出系統(tǒng)n); printf(*n); do pri
18、ntf(n Enter you choice(110):);/*提示輸入選項* scanf(%s,s); c=atoi(s); while(c10); return c;/*輸入記錄,形參為結(jié)構(gòu)體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/int enter(STUDENT t) int i,n; char *s; printf(nplease input num n); /*提示信息*/ scanf(%d,&n); /*輸入記錄數(shù)*/ printf(please input record n); /*提示輸入記錄*/ printf( * 性別 年齡 備注n); printf(n); for(i
19、=0;in;i+) scanf(%s%s%s%d%s,,ti.no,ti.age,ti.course,&ti.remark); /*輸入記錄*/ printf(n); return n; /*返回記錄條數(shù)*/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/void list(STUDENT t,int n) int i;printf(nn*STUDENT*n); printf( * 性別 年齡 備注n); printf(n); for(i=0;in;i+) printf(%-20s%-20s%-20s%-10d%-10sn,,ti.no,ti.se*,ti.age,ti.r
20、emark); if(i+1)%10=0) printf(Press any key continue.n); getch(); printf(*end*n);/*顯示指定的一條記錄*/void print(STUDENT temp)printf(nn*STUDENT*n); printf( * 性別 年齡 備注n); printf(n); printf(%-20s%-20s%-20s%-10d%-10sn,,temp.no,temp.se*,temp.age,temp.remark); printf(*end*n);int find(STUDENT t,int n,char
21、 *s) int i; for(i=0;in-1) /*如果in-1超過了數(shù)組的長度*/ printf(no found not deletedn); /*顯示沒找到要刪除的記錄*/ else print(ti); /*調(diào)用輸出函數(shù)顯示該條記錄信息*/ printf(Are you sure delete it(1/0)n); /*確認(rèn)是否要刪除*/ scanf(%d,&ch); /*輸入一個整數(shù)0或1*/ if(ch=1) /*如果確認(rèn)刪除整數(shù)為1*/ for(j=i+1;j=i;j-) /*從最后一個結(jié)點開始向后移動一條*/ strcpy(tj+1.name,); /*當(dāng)前記
22、錄的學(xué)生拷貝到后一條*/ strcpy(tj+1.no,tj.no); /*當(dāng)前記錄的編號拷貝到后一條*/ strcpy(tj+1.se*,tj.se*); /*當(dāng)前記錄的性別拷貝到后一條*/ ti.age = temp.age; /*將新插入記錄的年齡拷貝到第i個位置*/ strcpy(tj+1.remark,tj.remark); /*當(dāng)前記錄的備注拷貝到后一條*/ strcpy(,); /*將新插入記錄的學(xué)生拷貝到第i個位置*/ strcpy(ti.no,temp.no); /*將新插入記錄的編號拷貝到第i個位置*/ strcpy(ti.se*,temp.
23、se*); /*將新插入記錄的性別拷貝到第i個位置*/ ti.age = temp.age; /*將新插入記錄的年齡拷貝到第i個位置*/ strcpy(ti.remark,temp.remark); /*將新插入記錄的備注拷貝到第i個位置*/ n+; /*記錄數(shù)加1*/ return n; /*返回記錄數(shù)*/*保存函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/void save(STUDENT t,int n) int i; FILE *fp; /*指向文件的指針*/ if(fp=fopen(record.t*t,wb)=NULL) /*打開文件,并判斷打開是否正常*/ printf(can not op
24、en filen);/*沒打開*/ e*it(1); /*退出*/ printf(nSaving filen); /*輸出提示信息*/ fprintf(fp,%d,n); /*將記錄數(shù)寫入文件*/ fprintf(fp,rn); /*將換行符號寫入文件*/ for(i=0;i=0&idn)/*判斷序號是否在記錄圍*/ fseek(fp,(id-1)*sizeof(STUDENT),1);/*移動文件指針到該記錄位置*/ print(tid); /*調(diào)用輸出函數(shù)顯示該記錄*/ printf(rn); else printf(no %d number record!n ,id); /*如果序號不合
25、理顯示信息*/ fclose(fp);/*關(guān)閉文件*/*排序函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/void sort(STUDENT t,int n) int i,j,flag; TEACHER temp; /*臨時變量做交換數(shù)據(jù)用*/ for(i=0;in;i+) flag=0; /*設(shè)標(biāo)志判斷是否發(fā)生過交換*/ for(j=0;j0) /*比較大小*/ flag=1; strcpy(,); /*交換記錄*/strcpy(temp.no,tj.no); strcpy(temp.se*,tj.se*); temp.age=tj.age; strcpy(temp.re
26、mark,tj.remark); strcpy(,tj+1.name); strcpy(tj.no,tj+1.no); strcpy(tj.se*,tj+1.se*); tj.age=tj+1.age; strcpy(tj.remark,tj+1.remark); strcpy(tj+1.name,); strcpy(tj+1.no,temp.no); strcpy(tj+1.se*,temp.se*); tj+1.age=temp.age; strcpy(tj+1.remark,temp.remark); if(flag=0)break; /*如果標(biāo)志為0,說
27、明沒有發(fā)生過交換循環(huán)結(jié)束*/ printf(sort sucess!n); /*顯示排序成功*/*快速查找,參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/void qseek(TSTUDENT t,int n) char s20; int l,r,m; printf(nPlease sort before qseek!n); /*提示確認(rèn)在查找之前,記錄是否已排序*/ printf(please enter name for qseekn); /*提示輸入*/ scanf(%s,s); /*輸入待查找的*/ l=0;r=n-1; /*設(shè)置左邊界與右邊界的初值*/ while(l=r) /*當(dāng)左邊界=右邊界時*/ m=(l+r)/2; /*計算中間位置*/ if(strcmp(,s)=0) /*與中間結(jié)點字段做比較判是否相等*/ print(tm); /*如果相等,則調(diào)用print函數(shù)顯示記錄信息*/ return ; /*返回*/ if(strcmp(,s)r)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年消防設(shè)施操作員之消防設(shè)備高級技能題庫練習(xí)試卷B卷附答案
- 2025年度主管護師考試專項復(fù)習(xí)試題庫50題及答案(四)
- 生物熒光知識培訓(xùn)課件
- 紀(jì)錄片美麗的自然教學(xué)教案設(shè)計
- 工廠生產(chǎn)線產(chǎn)量進度表
- 解決方案推廣計劃
- 西游記唐僧取經(jīng)之旅解讀
- 企業(yè)內(nèi)部信息安全技術(shù)保障服務(wù)合同
- 小紅帽新編故事讀后感
- 技術(shù)創(chuàng)新成果統(tǒng)計表
- 臨時工雇傭合同范本2025年度
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 地理試卷
- “艾梅乙”感染者消除醫(yī)療歧視制度-
- 2024-2025學(xué)年八年級地理下冊第七章《南方地區(qū)》檢測卷(人教版)
- 森林防火知識
- 2025年黑龍江林業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 第二單元第1課《精彩瞬間》第2課時 課件-七年級美術(shù)下冊(人教版2024)
- 2025年公共營養(yǎng)師三級理論試題及答案
- 煤礦防治水安全質(zhì)量標(biāo)準(zhǔn)化評分表
- 2025電動自行車安全技術(shù)規(guī)范培訓(xùn)課件
- 2025年度教育培訓(xùn)機構(gòu)學(xué)生綜合素質(zhì)評價協(xié)議3篇
評論
0/150
提交評論