C課程設(shè)計(jì)報(bào)告--班級檔案管理系統(tǒng)_第1頁
C課程設(shè)計(jì)報(bào)告--班級檔案管理系統(tǒng)_第2頁
C課程設(shè)計(jì)報(bào)告--班級檔案管理系統(tǒng)_第3頁
C課程設(shè)計(jì)報(bào)告--班級檔案管理系統(tǒng)_第4頁
C課程設(shè)計(jì)報(bào)告--班級檔案管理系統(tǒng)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 c語言課程設(shè)計(jì) 課題名稱 班級檔案管理系統(tǒng) 專 業(yè) 班 級 學(xué) 號 姓 名 指導(dǎo)教師 2014年 01 月 06 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 c語言課程設(shè)計(jì) 課 題 班級檔案管理系統(tǒng) 專業(yè)班級 紡織工程 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 田媛 審 批 任務(wù)書下達(dá)日期 2013 年 12 月 26 日任務(wù)完成日期 2014年 01 月 06 日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1設(shè)計(jì)內(nèi)容:課題二:班級檔案管理系統(tǒng)。具體內(nèi)容見附錄。2設(shè)計(jì)要求:1)設(shè)計(jì)正確,方案合理。2)界面友好,使用方便。3)程序精煉,結(jié)構(gòu)清晰。4)上機(jī)演示。3設(shè)計(jì)報(bào)告要求:課程設(shè)計(jì)報(bào)告格式如

2、下:1)正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體,行距為22。 2)正文的內(nèi)容:課題的主要功能、課題的功能模塊的劃分、主要功能的實(shí)現(xiàn)、程序調(diào)試、總結(jié)、附件(所有程序的源代碼,要求對程序?qū)懗霰匾淖⑨專?,課程設(shè)計(jì)報(bào)告需5000字左右(不含附件)。3)課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評分、程序清單附件。二、進(jìn)度安排星期日(17周)星期一(18周)星期四(18周)星期五(18周)星期日(18周)14:00-17:0018:00-21:0018:00-21:0018:00-21:00交報(bào)告上課時(shí)間另外安排。附錄:設(shè)計(jì)課題二:班級檔案管理系統(tǒng)一、問題描述:

3、該系統(tǒng)實(shí)現(xiàn)對該班級學(xué)生的檔案信息進(jìn)行管理,包括錄入、顯示、修改、刪除、查詢、排序、保存等操作。二、功能要求:1、本系統(tǒng)采用結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:學(xué)號、姓名、性別、年齡、民族、備注。2、系統(tǒng)功能:a. 信息錄入:即添加記錄。b. 信息顯示:以某種方式顯示學(xué)生的信息,如按學(xué)號顯示、按性別顯示、按年齡順序顯示、只顯示男生或女生等等多種形式顯示。(要求至少有一種顯示方式,不限于已列出的方式。)c. 信息修改:對已經(jīng)輸入的信息進(jìn)行修改。d. 信息刪除:刪除某個(gè)學(xué)生記錄。e. 學(xué)生基本信息查詢:輸入學(xué)號或姓名,顯示其完整信息。f. 信息保存:當(dāng)添加、修改、刪除信息后,應(yīng)該將其存入文件。g.

4、退出系統(tǒng)3、系統(tǒng)使用說明:執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示功能菜單。系統(tǒng)的功能并不限于上述,可以對其進(jìn)行擴(kuò)充完善,如在對信息進(jìn)行修改和刪除時(shí),可以考慮系統(tǒng)的安全性,在執(zhí)行前若輸入正確密碼,才可進(jìn)行操作。三、測試數(shù)據(jù):學(xué)生人數(shù)=20。目 錄1 系統(tǒng)需求分析62 概要設(shè)計(jì)63 詳細(xì)設(shè)計(jì)64 系統(tǒng)測試75課程設(shè)計(jì)總結(jié)91 系統(tǒng)需求分析學(xué)生檔案管理系統(tǒng)主要管理學(xué)生檔案的基本信息。在系統(tǒng)中,每個(gè)用戶是一條記錄,包括學(xué)號、姓名、性別、年齡、備注。系統(tǒng)要對一個(gè)有n個(gè)用戶的檔案統(tǒng)一進(jìn)行管理。包括了學(xué)生信息的錄入、刪除、修改、查詢、插入等操作。本系統(tǒng)主要采用鏈表,結(jié)構(gòu)體和函數(shù)來實(shí)現(xiàn)這些基本功能,而且能提供

5、不同方式的查詢功能,對學(xué)生信息的操作逐個(gè)地進(jìn)行。2 概要設(shè)計(jì)系統(tǒng)功能模塊圖:學(xué)生檔案管理系統(tǒng) 修改插入退出刪除排序保存顯示錄入各函數(shù)的主要功能:主函數(shù): void main() 錄入函數(shù):void enter() 顯示函數(shù):void list() /*直接顯示學(xué)生信息*/保存函數(shù):void save() /*保存學(xué)生信息*/插入函數(shù):insert() 修改函數(shù):void revise() /*修改錄入的學(xué)生信息*/刪除函數(shù):void delete() /*刪除錄入的學(xué)生信息*/排序函數(shù):void sort() /*排序錄入的學(xué)生信息*/查找函數(shù):void qseek() /*查找錄入的學(xué)生信息

6、*/讀取函數(shù):int load() /* 讀取保存在文件中的學(xué)生信息*/ 3 詳細(xì)設(shè)計(jì)3.1程序中的模塊機(jī)使用功能 模塊一:頭文件,變量定義,函數(shù)的聲明 對系統(tǒng)所使用的變量進(jìn)行定義,對函數(shù)進(jìn)行聲明 模塊二:學(xué)生信息的錄入 int enter(student t)錄入學(xué)生的基本信息。模塊三:學(xué)生信息的顯示 void list(student t,int n)就是把學(xué)生的基本信息顯示在電腦上。模塊四:學(xué)生信息的保存 void save(student t,int n)就是在把學(xué)生基本信息的保存下來。模塊五:學(xué)生信息的修改 void revise(student t,int n) 插入學(xué)生信息。模塊

7、六:學(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)3.2 主菜單主菜單部分,用來提醒用戶需要選擇哪些功能。這部分是來通過一個(gè)無限循環(huán)來執(zhí)行上述所有的功能模

8、塊,不斷的輸出菜單項(xiàng)目,用switch語句來執(zhí)行用戶選擇的功能模塊,每一個(gè)case后面就是對應(yīng)的功能函數(shù)。如果用戶選擇輸入的數(shù)字范圍不在1-9的范圍之內(nèi),系統(tǒng)會返回主菜單界面,重新輸入。menu_select() /*主菜單函數(shù)*/ char s80; int c; printf(press any key enter menu.n); printf(*menu*nn); printf(1. 學(xué)生基本信息錄入n); printf(2. 學(xué)生基本信息顯示n); printf(3. 學(xué)生基本信息保存 n); printf(4. 學(xué)生基本信息修改n); printf(5. 學(xué)生基本信息插入 n);

9、printf(6. 學(xué)生基本信息刪除n); printf( 7. 學(xué)生基本信息排序n); printf( 8. 學(xué)生基本信息查詢n); printf( 9. 退出系統(tǒng)); printf(*n); do printf(n enter you choice(19):); scanf(%s,s); c=atoi(s); while(c9); return c;3.3 錄入通過選擇功能函數(shù)1后,屏幕會出現(xiàn)指示,要求依次輸入姓名、學(xué)號、性別等,輸完之后系統(tǒng)會自動(dòng)返回主菜單界面,如果想繼續(xù)輸入學(xué)生信息就輸入數(shù)字鍵1繼續(xù)輸入。int enter(student t) /*錄入函數(shù)*/ int i,n; pr

10、intf(nplease input num n); scanf(%d,&n); printf(please input record n); printf(name no sex wyears remarkn); printf(-n); for(i=0;in;i+) scanf(%s%s%s%d%s,,ti.no,ti.sex,&ti.wyears,ti.remark); printf(-n); return n;3.3 顯示輸出學(xué)生基本信息模塊的主要功能是用來對學(xué)生基本信息進(jìn)行輸出。在系統(tǒng)已經(jīng)錄入了學(xué)生基本信息的前提下,使用該功能可以顯示所有學(xué)生的基本信息。具體包括姓名,學(xué)號

11、,性別等。在查看學(xué)生基本信息后,按enter就可以返回到主菜單。void list(student t,int n) /*顯示函數(shù)*/ int i; printf(nn*teacher*n); printf(name no sex wyears remarkn); printf(-n); for(i=0;i=i;j-) strcpy(tj+1.name,); strcpy(tj+1.no,tj.no); strcpy(tj+1.sex,tj.sex); tj+1.wyears=tj.wyears; strcpy(tj+1.remark,tj.remark); strcpy(ti.

12、name,); strcpy(ti.no,temp.no); strcpy(ti.sex,temp.sex); ti.wyears=temp.wyears; strcpy(ti.remark,temp.remark); n+; return n;3.5 查找按學(xué)號查找并刪除模塊的主要功能是用來刪除學(xué)生基本信息的。在系統(tǒng)保存學(xué)生基本信息的前提下,想刪除某學(xué)生的基本信息,就可以輸入學(xué)生學(xué)號,系統(tǒng)查找該學(xué)生資料后,就可以刪除了。可以及時(shí)對系統(tǒng)進(jìn)行更新,刪除一些沒用的信息,可以使系統(tǒng)更加優(yōu)化。void search(student t,int n) char s20; int i;

13、printf(please search namen); scanf(%s,s); i=find(t,n,s); if(in-1) printf(not foundn); else print(ti);3.6 修改按學(xué)生學(xué)號查找并修改模塊的主要功能是用來修改學(xué)生基本信息的。在系統(tǒng)保存了某學(xué)生的基本信息的前提下,想要查找該學(xué)生的基本信息,可以該學(xué)生的學(xué)號,系統(tǒng)就會顯示該學(xué)生的基本信息,這樣根據(jù)提示修改學(xué)生的基本信息。int revise(student t) int i,n; printf(nplease input num n); scanf(%d,&n); printf(please inp

14、ut record n); printf(name no sex wyears remarkn); printf(-n); for(i=0;in-1) printf(no found not deletedn); else print(ti); printf(are you sure delete it(1/0)n); scanf(%d,&ch); if(ch=1) for(j=i+1;jn;j+) strcpy(,);strcpy(tj-1.no,tj.no);strcpy(tj-1.sex,tj.sex);tj-1.wyears=tj.wyears;strc

15、py(tj-1.remark,tj.remark); n-; return n;3.8 保存退出保存并退出模塊主要功能是用來儲存學(xué)生資料。在對系統(tǒng)進(jìn)行一系列操作,比如添加、刪除、修改學(xué)生基本信息后,對系統(tǒng)的最新操作進(jìn)行保存,及時(shí)更新系統(tǒng),方便下一次的操作。void save(student t,int n) int i; file *fp; /*定義指針*/ if(fp=fopen(record.txt,wb)=null) /*打開文件*/ printf(can not open filen); exit(1); printf(nsaving filen); fprintf(fp,%d,n);

16、 fprintf(fp,rn); for(i=0;in;i+) fprintf(fp,%-20s%-20s%-20s%-40d%-10s,,ti.no,ti.sex,ti.wyears,ti.remark); fprintf(fp,rn); fclose(fp); /*關(guān)閉文件*/ printf(*save success*n);4 系統(tǒng)測試4.1 菜單顯示主菜單界面信息中包含九個(gè)功能:錄入,顯示,保存,修改,插入,刪除,排序,查詢,退出系統(tǒng)。根據(jù)界面提示選擇需要的功能。選擇功能1學(xué)生基本信息的錄入,輸入序號1開始開始錄入學(xué)生基本信息。如下圖所示。學(xué)生信息的修改學(xué)生基本信息保存后

17、可以根據(jù)提示繼續(xù)選擇功能,如圖所示是學(xué)生基本信息的修改,依據(jù)提示完成學(xué)生基本信息的修改。學(xué)生基本信息的刪除學(xué)生基本信息的刪除根據(jù)系統(tǒng)的提示鍵入數(shù)字鍵6,進(jìn)入學(xué)生基本信息的刪除,鍵入你所需要?jiǎng)h除的學(xué)生姓名,出現(xiàn)該學(xué)生的信息,根據(jù)提示鍵入數(shù)字鍵1選擇刪除學(xué)生基本信息,鍵入數(shù)字鍵0選擇不刪除學(xué)生基本信息。學(xué)生基本信息的保存選擇功能3學(xué)生基本信息的保存,系統(tǒng)會顯示保存成功。如下圖所示:5 課程設(shè)計(jì)總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)

18、域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的?;仡櫰鸫舜螌W(xué)生檔案管理課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整一個(gè)星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會

19、遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識重新溫故。 附錄:#include stdio.h#include stdlib.h#include string.h#define m 50typedef struct char name20; char no20; char sex20; int wyears; char remark20;student;int enter(student t);void list(student t,int n);void save(student

20、t,int n);int revise(student t,int n);int insert(student t,int n);int delete(student t,int n);void sort(student t,int n);void qseek(student t,int n);void print(student temp);int find(student t,int n,char *s);int menu_select();main() student studentm; int length; for(;) switch(menu_select() case 1:len

21、gth=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; case 6:length=delete(student,length);break; case 7:sort(student,length);break; case 8:qseek(student,length);break; case 9:

22、 exit(0); menu_select() char s80; int c; printf(press any key enter menu.n); 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. 退出系統(tǒng)); printf(

23、*n); do printf(n enter you choice(19):); scanf(%s,s); c=atoi(s); while(c9); return c;int enter(student t) int i,n; printf(nplease input num n); scanf(%d,&n); printf(please input record n); printf(name no sex wyears remarkn); printf(-n); for(i=0;in;i+) scanf(%s%s%s%d%s,,ti.no,ti.sex,&ti.wyears

24、,ti.remark); printf(-n); return n;void list(student t,int n) int i; printf(nn*teacher*n); printf(name no sex wyears remarkn); printf(-n); for(i=0;in-1) printf(not foundn); else print(ti);void print(student temp) printf(nn*teacher*n); printf(name no sex wyears remarkn); printf(-n); printf(%-20s%-20s%

25、-20s%-10d%-10sn,,temp.no,temp.sex,temp.wyears,temp.remark); printf(*end*n);int find(student t,int n,char *s) int i; for(i=0;in-1) printf(no found not deletedn); else print(ti); printf(are you sure delete it(1/0)n); scanf(%d,&ch); if(ch=1) for(j=i+1;j=i;j-) strcpy(tj+1.name,); strcpy(

26、tj+1.no,tj.no); strcpy(tj+1.sex,tj.sex); tj+1.wyears=tj.wyears; strcpy(tj+1.remark,tj.remark); strcpy(,); strcpy(ti.no,temp.no); strcpy(ti.sex,temp.sex); ti.wyears=temp.wyears; strcpy(ti.remark,temp.remark); n+; return n;void save(student t,int n) int i; file *fp; if(fp=fopen(record.

27、txt,wb)=null) printf(can not open filen); exit(1); printf(nsaving filen); fprintf(fp,%d,n); fprintf(fp,rn); for(i=0;in;i+) fprintf(fp,%-20s%-20s%-20s%-40d%-10s,,ti.no,ti.sex,ti.wyears,ti.remark); fprintf(fp,rn); fclose(fp); printf(*save success*n);int load(student t) int i,n; file *fp; if(fp=

28、fopen(record.txt,rb)=null) printf(can not open filen); exit(1); fscanf(fp,%d,&n); for(i=0;i=0&idn) fseek(fp,(id-1)*sizeof(student),1); print(tid); printf(rn); else printf(no %d number record!n ,id); fclose(fp);void sort(student t,int n) int i,j,flag; student temp; for(i=0;in;i+) flag=0; for(j=0;j0)

29、flag=1; strcpy(,); strcpy(temp.no,tj.no); strcpy(temp.sex,tj.sex); temp.wyears=tj.wyears; strcpy(temp.remark,tj.remark); strcpy(,tj+1.name); strcpy(tj.no,tj+1.no); strcpy(tj.sex,tj+1.sex); tj.wyears=tj+1.wyears; strcpy(tj.remark,tj+1.remark); strcpy(tj+1.name,); strcp

30、y(tj+1.no,temp.no); strcpy(tj+1.sex,temp.sex); tj+1.wyears=temp.wyears; strcpy(tj+1.remark,temp.remark); if(flag=0)break; printf(sort sucess!n);void qseek(student t,int n) char s20; int l,r,m; printf(nplease sort before qseek!n); printf(please enter name for qseekn); scanf(%s,s); l=0;r=n-1; while(l=r) m=(l+r)/2; if(strcmp(,s)=0) print(tm); return ; if(strcmp(tm.na

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論