

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)</b></p><p> 課程名稱 C語言程序課程設(shè)計(jì) </p><p> 題目名稱 學(xué)生信息管理系統(tǒng)設(shè)計(jì)</p><p> 學(xué)生學(xué)院 ______</p><p><b> 專業(yè)班級(jí) ___</b></p><p>&
2、lt;b> 學(xué) 號(hào) </b></p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 </p><p><b> 2010年3月5日</b></p><p><b> 課程設(shè)計(jì)的內(nèi)容</b></p>&l
3、t;p> 學(xué)生信息包括:學(xué)號(hào),姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設(shè)計(jì)一學(xué)生信息管理系統(tǒng),使之能提供以下功能:</p><p><b> 系統(tǒng)以菜單方式工作</b></p><p> 學(xué)生信息錄入功能(學(xué)生信息用文件保存)---輸入</p><p> 學(xué)生信息瀏覽功能---輸出</p><
4、p> 查詢、排序功能---算法。按學(xué)號(hào)查詢,按姓名查詢。</p><p> 學(xué)生信息的刪除與修改(可選項(xiàng))</p><p> 二、課程設(shè)計(jì)的要求與數(shù)據(jù)</p><p> 1、進(jìn)一步掌握和利用C語言進(jìn)行程設(shè)計(jì)的能力;</p><p> 2、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;</p><p>
5、3、初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法;</p><p> 4、學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;</p><p> 5、學(xué)會(huì)利用流程圖或N-S圖表示算法;</p><p> 6、掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力。</p><p> 課程設(shè)計(jì)應(yīng)完成的工作</p><p> 1、編寫完成相應(yīng)題目的程序;<
6、/p><p> 2、編寫課程設(shè)計(jì)報(bào)告,課程設(shè)計(jì)報(bào)告的內(nèi)容應(yīng)包括以下6個(gè)部分:</p><p> 1) 需求分析:包括設(shè)計(jì)題目、設(shè)計(jì)要求以及系統(tǒng)功能需求分析;</p><p> 2) 總體設(shè)計(jì):包括系統(tǒng)總體設(shè)計(jì)框架和系統(tǒng)功能模塊圖;</p><p> 3) 詳細(xì)設(shè)計(jì):包括主要功能模塊的算法設(shè)計(jì)思路以及對(duì)應(yīng)的工作流程圖;</p>
7、<p> 4) 調(diào)試分析過程描述:包括測(cè)試數(shù)據(jù)、測(cè)試輸出結(jié)果,以及對(duì)程序調(diào)試過程中存在問題的思考(列出主要問題的出錯(cuò)現(xiàn)象、出錯(cuò)原因、解決方法及效果等,適當(dāng)?shù)陌Y(jié)果截圖);</p><p> 5) 總結(jié):課程設(shè)計(jì)完成了哪些功能,有沒有什么擴(kuò)展功能?還有哪些地方需要改進(jìn)?課程設(shè)計(jì)過程中的學(xué)習(xí)體會(huì)與收獲、對(duì)本次課程設(shè)計(jì)的認(rèn)識(shí)以及自己的建議等內(nèi)容; </p><p> 6) 附
8、錄:主要源程序代碼,含必要的注釋。</p><p> 四、課程設(shè)計(jì)進(jìn)程安排</p><p> 五、應(yīng)收集的資料及其主要參考文獻(xiàn)</p><p> 譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M]北京:清華大學(xué)出版社,2005年9月</p><p> 譚浩強(qiáng).C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版)[M]北京:清華大學(xué)出版社,2005年7月</p&g
9、t;<p> [ 3 ] 陳國(guó)章 《Turbo C程序設(shè)計(jì)技巧與應(yīng)用實(shí)例》天津科學(xué)技術(shù)出版社,1995,5</p><p> [ 4 ] 廖雷 C語言程序設(shè)計(jì)習(xí)題解答及上機(jī)指導(dǎo)(第2版) 高等教育出版社</p><p> 發(fā)出任務(wù)日期:2010年3月1日 指導(dǎo)教師簽名:</p><p> 計(jì)劃完成日期:2010年3月
10、5日 基層教學(xué)單位責(zé)任人簽名:</p><p><b> 目 錄</b></p><p> 設(shè)計(jì)目的與要求…………………………………………………5</p><p> 總體設(shè)計(jì)…………………………………………………………6</p><p> 詳細(xì)設(shè)計(jì)…………………………………………………………6<
11、/p><p> ?。?調(diào)試分析…………………………………………………………8</p><p> ?。?總結(jié)………………………………………………………………10</p><p> ?。?附錄………………………………………………………………10</p><p> ?。?答辯記錄(正文處留出適當(dāng)空白)…………………………14</p>&l
12、t;p> ?。?指導(dǎo)教師意見(正文處留出適當(dāng)空白)………………………15</p><p><b> 目的與要求</b></p><p><b> 目的:</b></p><p> 為我們提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際應(yīng)用問題進(jìn)行有機(jī)結(jié)合,鍛煉我們的分析、解決問題的能力,提高提高
13、我們項(xiàng)目開發(fā)及課程調(diào)試能力。</p><p><b> 要求:</b></p><p> 學(xué)生信息包括:學(xué)號(hào),姓名,年齡,性別,出生年月,地址,電話,E-mail等</p><p> 系統(tǒng)以菜單方式工作,有學(xué)生信息錄入功能</p><p> 學(xué)生信息瀏覽功能---輸出</p><p>
14、查詢:按學(xué)號(hào)查詢,按姓名查詢。</p><p> 學(xué)生信息的刪除與修改</p><p><b> 總體要求:</b></p><p> 對(duì)系統(tǒng)進(jìn)行功能模塊分析</p><p><b> 系統(tǒng)設(shè)計(jì)要實(shí)用</b></p><p> 編程簡(jiǎn)練,可用,功能全面,具有較好的健
15、壯性</p><p> 說明書、流程圖要清楚</p><p><b> 總體設(shè)計(jì)</b></p><p><b> 大致思路框架圖:</b></p><p> 學(xué)生管理系統(tǒng):1.錄入學(xué)生信息 </p><p><b> 2.顯示信息</b>&l
16、t;/p><p><b> 6.信息查詢</b></p><p> 3.信息排序 </p><p><b> 5.刪除信息</b></p><p><b> 4.插入信息</b></p><p><b> 詳細(xì)設(shè)計(jì)</b&g
17、t;</p><p> 模塊一:頭文件,變量定義,函數(shù)的聲明對(duì)系統(tǒng)所使用的變量進(jìn)行定義,對(duì)函數(shù)進(jìn)行聲明 </p><p> 模塊二:學(xué)生信息系統(tǒng)輸入信息函數(shù)input,輸入相關(guān)數(shù)據(jù),提供后面的程序使用。 </p><p> 模塊三:顯示學(xué)生信息聲明函數(shù)display,對(duì)剛輸入的數(shù)據(jù)整齊地列出來,使使用者能一目了然。 </p><p>
18、 模塊四:學(xué)生信息的排序函數(shù)sort,按學(xué)號(hào)順序?qū)⑺斎氲男畔⒘谐鰜怼?lt;/p><p> 模塊五:增加學(xué)生信息聲明 insert插入學(xué)生信息,先通過判斷學(xué)生是否存在,若否則繼續(xù)輸入,若是跳出,重新循環(huán) </p><p> 模塊六:刪除學(xué)生信息聲明delete實(shí)現(xiàn)學(xué)生信息刪除,通過學(xué)號(hào)對(duì)比確定要?jiǎng)h除的信息,然后用后一個(gè)替換掉。 </p><p> 模塊七:增加學(xué)
19、生信息聲明query查詢學(xué)生信息,輸入學(xué)生名字,先通過判斷學(xué)生是否存在,若是就顯示這個(gè)學(xué)生的相關(guān)信息,否則跳出,重新循環(huán) </p><p> 模塊八:界面菜單通過switch(num)調(diào)用,以上各函數(shù),實(shí)現(xiàn)功能</p><p><b> 調(diào)試分析</b></p><p> ?。?)剛開始沒有那個(gè)初始化函數(shù),程序運(yùn)行后,沒有輸入任何數(shù)據(jù)就試得
20、去執(zhí)行顯示功能,結(jié)果顯示的是一些亂碼!加入初始化函數(shù)后,這種現(xiàn)象也隨之消失。</p><p> ?。?)由于程序較長(zhǎng),在編譯不過時(shí)雖然編譯檢查不出來語法錯(cuò)誤,但程序的邏輯錯(cuò)誤發(fā)生了,解決方法是在出錯(cuò)的地方進(jìn)行分析,通過前后的聯(lián)系,找出一些相關(guān)變量的值,看是否在我們的邏輯運(yùn)算之內(nèi),這樣就可以縮小范圍,更容易找出錯(cuò)誤的原因。</p><p><b> 設(shè)計(jì)測(cè)試流程 :</b&
21、gt;</p><p><b> 1、進(jìn)入界面 </b></p><p> 2、輸入選項(xiàng)1,回車; </p><p><b> 按提示輸入數(shù)據(jù): </b></p><p><b> 3、回到主菜單; </b></p><p> 輸入選項(xiàng)7,回車
22、; </p><p> 輸入文件名:data.txt,回車; </p><p> 出現(xiàn)成功提示,則讀入文件操作成功。 </p><p> 4、回到主菜單,輸入2,回車 </p><p> 每10個(gè)暫停顯示數(shù)據(jù) </p><p> 5、回到主菜單,輸入3,回車 </p><p> 出現(xiàn)
23、排序成功信息。 </p><p> 6、回到主菜單,輸入4,回車 </p><p> 按提示插入一組數(shù)據(jù) </p><p> 7、回到主菜單,輸入5,回車 </p><p> 按提示輸入姓名,刪除數(shù)據(jù) </p><p> 出現(xiàn)刪除成功的信息 </p><p> 8、回到主菜單,輸入6
24、,回車 </p><p><b> 輸入姓名進(jìn)行查詢 </b></p><p> 9、回到主菜單,輸入0,回車退出系統(tǒng)</p><p><b> 5.總結(jié)</b></p><p> 這個(gè)程序?qū)崿F(xiàn)了設(shè)計(jì)要求中的所有功能,能夠簡(jiǎn)單地管理學(xué)生信息:對(duì)學(xué)生信息的輸入,顯示,排序,查詢,儲(chǔ)存等操作.本
25、程序還有很多不足之處,譬如,不能修改,刪除信息,還有待改進(jìn).通過這次程序設(shè)計(jì)我對(duì)C語言有了更深刻的了解,知道了如何去調(diào)試,查錯(cuò),修改.發(fā)現(xiàn)自己的思維很不嚴(yán)謹(jǐn),今后還要不斷地練習(xí).</p><p><b> 6.附錄</b></p><p> #include<stdio.h> /*引用庫(kù)函數(shù)*/ </p><p> #incl
26、ude<stdlib.h> </p><p> #include<ctype.h> </p><p> #include<string.h> </p><p> typedef struct /*定義結(jié)構(gòu)體數(shù)組*/ </p><p><b> { </b></p>
27、<p> char num[10]; /*學(xué)號(hào)*/ </p><p> char name[20]; /*姓名*/ </p><p> int age; /*成績(jī)*/ </p><p> }Student; </p><p> Student stu[80]; /*結(jié)構(gòu)體數(shù)組變量*/ </p><p&
28、gt; int menu_select() /*菜單函數(shù)*/ </p><p><b> { </b></p><p><b> char c; </b></p><p><b> do{ </b></p><p> system("cls");
29、/*運(yùn)行前清屏*/ </p><p> printf("\t\t****Students' Grade Management System****\n"); /*菜單選擇*/ </p><p> printf("\t\t | 1. Input Records |\n"); </p><p> printf(&qu
30、ot;\t\t | 2. Display All Records |\n"); </p><p> printf("\t\t | 3. Sort |\n"); </p><p> printf("\t\t | 4. Insert a Record |\n"); </p><p> printf("\t
31、\t | 5. Delete a Record |\n"); </p><p> printf("\t\t | 6. Query |\n"); </p><p> printf("\t\t | 0. Quit |\n"); </p><p> printf("\t\t*****************
32、************************\n"); </p><p> printf("\t\t\tGive your Choice(0-6):"); </p><p> c=getchar(); /*讀入選擇*/ </p><p> }while(c<'0'||c>'6');
33、</p><p> return(c-'0'); /*返回選擇*/ </p><p><b> } </b></p><p> int Input(Student stud[],int n) /*輸入若干條記錄*/ </p><p> {int i=0; </p><p>
34、 char sign,x[10]; /*x[10]為清除多余的數(shù)據(jù)所用*/ </p><p> while(sign!='n'&&sign!='N') /*判斷*/ </p><p> { printf("\t\t\tstudent's num:"); /*交互輸入*/ </p><p&g
35、t; scanf("\t\t\t%s",stud[n+i].num); </p><p> printf("\t\t\tstudent's name:"); </p><p> scanf("\t\t\t%s",stud[n+i].name); </p><p> printf("
36、\t\t\tstudent's age:"); </p><p> scanf("\t\t\t%d",&stud[n+i].age); </p><p> gets(x); /*清除多余的輸入*/ </p><p> printf("\t\t\tany more records?(Y/N)");
37、 </p><p> scanf("\t\t\t%c",&sign); /*輸入判斷*/ </p><p><b> i++; </b></p><p><b> } </b></p><p> return(n+i); </p><p>
38、<b> } </b></p><p> void Display(Student stud[],int n) /*顯示所有記錄*/ </p><p><b> { </b></p><p><b> int i; </b></p><p> printf("
39、;\t\t\t-----------------------------------\n"); /*格式頭*/ </p><p> printf("\t\t\tnumber name score\n"); </p><p> printf("\t\t\t-----------------------------------\n"); &
40、lt;/p><p> for(i=1;i<n+1;i++) /*循環(huán)輸入*/ </p><p><b> { </b></p><p> printf("\t\t\t%-16s%-15s%d\n",stud[i-1].num,stud[i-1].name,stud[i-1].age); </p><
41、;p> if(i>1&&i%10==0) /*每十個(gè)暫停*/ </p><p> {printf("\t\t\t-----------------------------------\n"); /*格式*/ </p><p> printf("\t\t\t"); </p><p> syst
42、em("pause"); </p><p> printf("\t\t\t-----------------------------------\n"); </p><p><b> } </b></p><p><b> } </b></p><p>
43、 printf("\t\t\t"); </p><p> system("pause"); </p><p><b> } </b></p><p> void Sort_by_num(Student stud[],int n) /*按學(xué)號(hào)排序*/ </p><p> {
44、 int i,j,*p,*q,s; </p><p> char t[10]; </p><p> for(i=0;i<n-1;i++) /*冒泡法排序*/ </p><p> for(j=0;j<n-1-i;j++) </p><p> if(strcmp(stud[j].num,stud[j+1].num)>0)
45、 </p><p> {strcpy(t,stud[j+1].num); </p><p> strcpy(stud[j+1].num,stud[j].num); </p><p> strcpy(stud[j].num,t); </p><p> strcpy(t,stud[j+1].name); </p><p
46、> strcpy(stud[j+1].name,stud[j].name); </p><p> strcpy(stud[j].name,t); </p><p> p=&stud[j+1].age; </p><p> q=&stud[j].age; </p><p><b> s=*p; <
47、/b></p><p><b> *p=*q; </b></p><p><b> *q=s; </b></p><p><b> } </b></p><p><b> } </b></p><p> int In
48、sert_a_record(Student stud[],int n) /*插入一條記錄*/ </p><p> {char x[10]; /*清除多余輸入所用*/ </p><p> printf("\t\t\tstudent's num:"); /*交互式輸入*/ </p><p> scanf("\t\t\t%s&q
49、uot;,stud[n].num); </p><p> printf("\t\t\tstudent's name:"); </p><p> scanf("\t\t\t%s",stud[n].name); </p><p> printf("\t\t\tstudent's age:"
50、); </p><p> scanf("\t\t\t%d",&stud[n].age); </p><p><b> gets(x); </b></p><p><b> n++; </b></p><p> Sort_by_num(stud,n); /*調(diào)用排序
51、函數(shù)*/ </p><p> printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ </p><p> return(n); </p><p><b> } </b></p><p> int Delete_a_record(Student stud[
52、],int n) /*按姓名查找,刪除一條記錄*/ </p><p> { char s[20]; </p><p> int i=0,j; </p><p> printf("\t\t\ttell me his(her) name:"); /*交互式問尋*/ </p><p> scanf("%s&qu
53、ot;,s); </p><p> while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判斷*/ </p><p><b> if(i==n) </b></p><p> { printf("\t\t\tnot find!\n"); /*返回失敗信息*/
54、</p><p> return(n); </p><p><b> } </b></p><p> for(j=i;j<n-1;j++) /*刪除操作*/ </p><p><b> { </b></p><p> strcpy(stud[j].num,st
55、ud[j+1].num); </p><p> strcpy(stud[j].name,stud[j+1].name); </p><p> strcpy(stud[j].age,stud[j+1].age)</p><p><b> } </b></p><p> printf("\t\t\tDele
56、te Successed!\n"); /*返回成功信息*/ </p><p> return(n-1); </p><p><b> } </b></p><p> void Query_a_record(Student stud[],int n) /*查找并顯示一個(gè)記錄*/ </p><p> { c
57、har s[20]; </p><p><b> int i=0; </b></p><p> printf("\t\t\tinput his(her) name:"); /*交互式輸入*/ </p><p> scanf("\t\t\t%s",s); </p><p>
58、while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判斷*/ </p><p><b> if(i==n) </b></p><p> { printf("\t\t\tnot find!\n"); /*輸入失敗信息*/ </p><p><b>
59、 return; </b></p><p><b> } </b></p><p> printf("\t\t\this(her) number:%s\n",stud[i].num); /*輸出該學(xué)生信息*/ </p><p> printf("\t\t\this(her) age:%d\n&qu
60、ot;,stud[i].age); </p><p><b> } </b></p><p> void main() /*主函數(shù)*/ </p><p><b> { </b></p><p><b> int n=0; </b></p><p&g
61、t;<b> for(;;) </b></p><p><b> { </b></p><p> switch(menu_select()) /*選擇判斷*/ </p><p><b> { </b></p><p><b> case 1: </b&
62、gt;</p><p> printf("\t\t\tInput Records\n"); /*輸入若干條記錄*/ </p><p> n=Input(stu,n); </p><p><b> break; </b></p><p><b> case 2: </b>&
63、lt;/p><p> printf("\t\t\tDisplay All Records\n"); /*顯示所有記錄*/ </p><p> Display(stu,n); </p><p><b> break; </b></p><p><b> case 3: </b>
64、</p><p> printf("\t\t\tSort\n"); </p><p> Sort_by_num(stu,n); /*按學(xué)號(hào)排序*/ </p><p> printf("\t\t\tSort Suceessed!\n"); </p><p> printf("\t\t\t
65、"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 4: </b></p><p> printf("\t\t\tInsert a Record\n&qu
66、ot;); </p><p> n=Insert_a_record(stu,n); /*插入一條記錄*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p><b> break; </b><
67、/p><p><b> case 5: </b></p><p> printf("\t\t\tDelete a Record\n"); </p><p> n=Delete_a_record(stu,n); /*按姓名查找,刪除一條記錄*/ </p><p> printf("\t\t
68、\t"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 6: </b></p><p> printf("\t\t\tQuery\n"); &l
69、t;/p><p> Query_a_record(stu,n); /*查找并顯示一個(gè)記錄*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p><b> break; </b></p>
70、<p><b> case 0: </b></p><p> printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*結(jié)束程序*/ </p><p> printf("\t\t\t"); </p><p> system("pause&qu
71、ot;); </p><p><b> exit(0); </b></p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)----學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- c語言課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)設(shè)計(jì)報(bào)告
- 學(xué)生信息管理系統(tǒng)c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng) (2)
評(píng)論
0/150
提交評(píng)論