版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 教師名稱 C語言教師設(shè)計(jì) </p><p> 課題名稱 教師信息管理系統(tǒng) </p><p> 專 業(yè) 建筑環(huán)境 </p><p> 班 級(jí)
2、 </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 2013年 06 月 30 日</p><
3、;p> 一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p><b> 1.設(shè)計(jì)內(nèi)容:</b></p><p> 課題五:教師信息管理系統(tǒng)。具體內(nèi)容見附件。</p><p><b> 2.設(shè)計(jì)要求:</b></p><p> 1)設(shè)計(jì)正確,方案合理。</p><p> 2
4、)界面友好,使用方便。</p><p> 3)程序精煉,結(jié)構(gòu)清晰。</p><p><b> 4)上機(jī)演示。</b></p><p><b> 3.設(shè)計(jì)報(bào)告要求:</b></p><p> 教師設(shè)計(jì)報(bào)告格式如下:</p><p> 1)正文的格式:一級(jí)標(biāo)題用3號(hào)黑體
5、,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體,行距為22。 </p><p> 2)正文的內(nèi)容:課題的主要功能、課題的功能模塊的劃分、主要功能的實(shí)現(xiàn)、程序調(diào)試、總結(jié)、附件(所有程序的源代碼,要求對(duì)程序?qū)懗霰匾淖⑨專處熢O(shè)計(jì)報(bào)告需5000字左右(不含附件)。</p><p> 3)教師設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評(píng)分、程序清單附件。</p><p&g
6、t;<b> 附錄:</b></p><p> 設(shè)計(jì)課題五:教師信息管理系統(tǒng)</p><p><b> 一、問題描述:</b></p><p> 本系統(tǒng)可以用來進(jìn)行簡(jiǎn)單的教師信息管理,具體管理操作包括:教師信息的錄入、添加、顯示、查找、刪除、修改、排序和保存等功能。</p><p><
7、b> 二、功能描述:</b></p><p> 1、本系統(tǒng)采用結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括教師號(hào)、教師姓名、性別、系別、年齡、學(xué)歷等。</p><p><b> 2、系統(tǒng)功能:</b></p><p> 信息錄入:即添加新的教師信息記錄。</p><p><b> 信息顯示:
8、</b></p><p><b> 按教師編號(hào)順序顯示</b></p><p><b> 按教師姓名順序顯示</b></p><p><b> 信息查詢:</b></p><p><b> ?。?)按教師名查詢</b></p>
9、<p><b> ?。?)按教師號(hào)查詢</b></p><p> 信息修改:即修改已錄入的信息記錄。</p><p> 信息報(bào)廢:即刪除不需要的信記錄息。</p><p> 信息保存: 將錄入的教師信息保存到文件。</p><p><b> g.退出系統(tǒng)。</b></p&
10、gt;<p> 3、系統(tǒng)使用說明:執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示功能菜單。系統(tǒng)的功能并不限于上述,可以對(duì)其進(jìn)行擴(kuò)充完善。</p><p><b> 三、測(cè)試數(shù)據(jù):</b></p><p><b> 教師人數(shù)>=10</b></p><p><b> 目 錄</b
11、></p><p> 題目設(shè)計(jì)思想簡(jiǎn)述·······························
12、;················6</p><p> 詳細(xì)設(shè)計(jì)················
13、;··································7</p>&l
14、t;p> 教師信息錄入函數(shù)··································
15、;···········7</p><p> 教師信息顯示函數(shù)····················&
16、#183;························7</p><p> 教師信息查詢函數(shù)······
17、83;····································&
18、#183;·8</p><p> 教師信息排序函數(shù)·····························
19、83;···············8</p><p> 教師信息修改函數(shù)················
20、;·····························9</p><p> 教師信息刪除函數(shù)··&
21、#183;····································
22、;······9</p><p> 教師信息保存函數(shù)·························&
23、#183;···················9</p><p> 源程序代碼············
24、····································
25、3;····10</p><p> 程序運(yùn)行效果圖···························
26、·····················18</p><p> 4.1登陸界面··········
27、183;····································
28、····19</p><p> 4.2錄入功能···························
29、183;························19</p><p> 4.3顯示功能······
30、3;····································
31、183;·······20</p><p> 4.4查詢功能·······················
32、3;···························20</p><p> 4.5排序功能····
33、····································
34、3;··········21</p><p> 4.6修改功能·····················
35、······························21</p><p> 4.7刪除功能·
36、183;····································
37、·············22</p><p> 4.8保存功能··················
38、183;································22</p><p>
39、 總結(jié)報(bào)告····································
40、;··················23</p><p> 5.1課程設(shè)計(jì)中遇到的主要問題和解決方法···········
41、··············23</p><p> 5.2創(chuàng)新和得意之處·················
42、;···························23</p><p> 5.3設(shè)計(jì)中存在的不足及改進(jìn)的設(shè)想··
43、83;····························23</p><p> 5.4本次課程設(shè)計(jì)的感想和心得體會(huì)·&
44、#183;····························24</p><p><b> 題目設(shè)計(jì)思想簡(jiǎn)述</
45、b></p><p> 如上圖所示,該教師信息管理系統(tǒng)主要是一個(gè)選擇語句應(yīng)用為基礎(chǔ)來實(shí)現(xiàn)對(duì)教師信息的錄入,查詢,刪除等功能。</p><p><b> 定義的結(jié)構(gòu)體如下:</b></p><p> struct teacher</p><p><b> {</b></p>
46、<p> int no; //編號(hào)</p><p> char name[99]; //姓名</p><p> char xingbie[99];//性別</p><p> char xibie[99]; //系別</p><p> int Hyear; //年齡</p><
47、p> char xueli[99]; //學(xué)歷</p><p><b> };</b></p><p> 主函數(shù)進(jìn)行菜單欄函數(shù)的調(diào)用,主要工作通過菜單函數(shù)實(shí)現(xiàn)。</p><p> 菜單欄函數(shù)通過用switch語句實(shí)現(xiàn)不同功能的選擇,不同的功能用不同的子函數(shù)實(shí)現(xiàn)。</p><p> 顯示信息函數(shù)就是把結(jié)構(gòu)體
48、數(shù)組中教師的信息按數(shù)組的順序輸出。</p><p> 排序函數(shù)用冒泡法對(duì)教師信息進(jìn)行排序,</p><p> 查詢函數(shù)分按姓名查詢和教師編號(hào)查詢,先用一個(gè)Switch語句進(jìn)行選擇,然后按姓名查找時(shí)用循環(huán)語句進(jìn)行查找,用輸入的姓名字符串與已有的字符串進(jìn)行比較,然后輸出查詢的結(jié)果。若果按教師號(hào)進(jìn)行查詢,也是先用一個(gè)循環(huán)語句,然后再加一個(gè)條件語句進(jìn)行判斷,最后輸出查詢結(jié)果。</p>
49、;<p> 修改教師信息函數(shù),用戶先輸入要修改的教師編號(hào),然后用一個(gè)循環(huán)語句找到結(jié)構(gòu)體數(shù)組中對(duì)應(yīng)的編號(hào),如果沒找到就輸出沒有要修改的教師,找到后輸出該編號(hào)的信息提示是否修改,如果確定修改就將修改的信息輸入另一個(gè)新結(jié)構(gòu)體變量中,最后將新結(jié)構(gòu)體中的信息賦值給原來要修改的結(jié)構(gòu)體變量中。</p><p> 刪除信息函數(shù),用戶先輸入要?jiǎng)h除的教師編號(hào),用一個(gè)條件語句找到數(shù)組中的編號(hào),沒找到就輸出沒找到要?jiǎng)h除
50、的教師,找到后就將結(jié)構(gòu)體數(shù)組中從該編號(hào)起向前移一個(gè)。</p><p> 保存信息函數(shù),利用文件的字符寫函數(shù)將輸入的信息保存到文件中。</p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p> 1.教師信息錄入函數(shù)(void input() )</p><p> (1)先定義一個(gè)while語句,當(dāng)輸入Y時(shí),
51、輸入教師信息。while(choice1=='y' || choice1=='Y')</p><p> (2 )定義結(jié)構(gòu)體數(shù)變量struct teacher temp;將教師信息錄入該結(jié)構(gòu)體中。</p><p> ?。?)把該結(jié)構(gòu)體數(shù)組賦值給結(jié)構(gòu)體數(shù)組的第零個(gè)元素tea[count]=temp;; count++;;</p><p&g
52、t; ?。?)清空temp中的信息,fflush(stdin);</p><p> (5)要繼續(xù)輸入,輸入Y將重復(fù)上述操作。</p><p> 2.顯示信息函數(shù)(void displayall()))</p><p> ?。?)定義整型變量i;</p><p> ?。?)用一個(gè)for循環(huán)語句將教師信息依次輸出,知道i=count;<
53、/p><p> if(count<1)</p><p> printf("\n\t沒有教師信息!\n");</p><p><b> else</b></p><p><b> {</b></p><p> printf("\n編號(hào)\
54、t姓名\t性別\t系別\t年齡\t學(xué)歷\n");</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> printf("%-3d",tea[i].no);</p><p> printf("\t%s&quo
55、t;,tea[i].name);</p><p> printf("\t%s",tea[i].xingbie);</p><p> printf("\t%s",tea[i].xibie);</p><p> printf("\t%d",tea[i].Hyear);</p><p&g
56、t; printf("\t%s\n",tea[i].xueli);</p><p><b> }</b></p><p><b> }</b></p><p> 3.查詢信息函數(shù)void seach()</p><p> ?。?)定義整型變量i,xh,j,結(jié)構(gòu)體變量( s
57、truct tescher hname;)</p><p> ?。?)字符變量choice</p><p> ?。?)編寫一個(gè)switch選擇語句當(dāng)choice=1時(shí)按教師姓名查詢,當(dāng)choice=2時(shí)按教師編號(hào)查詢</p><p> (4)用循環(huán)語句查找要查詢的教師編號(hào)或姓名:for(i=0;i<count;i++) if(tea[i].no==xh)
58、 j=1;break;}如果沒找到就輸出沒有找到要查詢的教師,找到后用顯示函數(shù)將教師信息顯示出來;</p><p> 4.排序函數(shù)void sort() </p><p> ?。?)選用冒泡法來將教師信息進(jìn)行排序</p><p> (2)定義整型變量i,jchoice;</p><p> ?。?)編寫一個(gè)條件語句如果count小于
59、1就沒有教師信息,否則輸出排序前的教師信息。</p><p> ?。?)編寫一個(gè)大的循環(huán)語句,里面再寫一個(gè)選擇語句:當(dāng)輸入1時(shí)按編號(hào)升序排序,當(dāng)輸入2時(shí)按姓名升序排序,3按年齡降序,當(dāng)輸入9時(shí)結(jié)束循環(huán)。該函數(shù)結(jié)束。</p><p> (5)排序后用前面的顯示函數(shù)將排序后的結(jié)果輸出,</p><p> (6)按編號(hào)排序函數(shù):冒泡法排序</p><
60、;p> for(i=0;i<count;i++) </p><p><b> {</b></p><p> for(j=0;j<count-i-1;j++) //比較元素</p><p><b> { </b></p><p> if(tea[j].no > tea
61、[j+1].no)//比較第j個(gè)元素與第(j+1)元素中的編號(hào),如果第j元素中的大就交換</p><p><b> {</b></p><p> temp=tea[j]; </p><p> tea[j]=tea[j+1];</p><p> tea[j+1]=temp;</p><p&
62、gt;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> ?。?)按姓名排序:冒泡法排序</p><p> for(i=0;i<count;i++) </p><p><
63、b> {</b></p><p> for(j=0;j<count-i-1;j++) //比較元素</p><p><b> { </b></p><p> if(tea[j].no > tea[j+1].no)</p><p><b> {</b></
64、p><p> temp=tea[j];</p><p> tea[j]=tea[j+1];</p><p> tea[j+1]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b&g
65、t; }</b></p><p><b> ?。?)按年齡降序:</b></p><p> for(i=0;i<count;i++) </p><p><b> {</b></p><p> for(j=0;j<count-i-1;j++) //比較元素</p&
66、gt;<p><b> { </b></p><p> if(tea[j].Hyear < tea[j+1].Hyear)</p><p><b> {</b></p><p> temp=tea[j];</p><p> tea[j]=tea[j+1];</p&
67、gt;<p> tea[j+1]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 5.教師修改函數(shù)void change() </p><
68、;p> (1)定義整型變量i,xh,j,int i,xh,j=0;;</p><p> ?。?)定義結(jié)構(gòu)體變量struct teacher temp;;</p><p> (2)編寫一個(gè)for語句找到結(jié)構(gòu)體數(shù)組中要修改的元素i, for(i=0;i<count;i++)</p><p> If(tea[i].no==xh) { j=1;}
69、 如果沒找到就輸出沒有找到要修改的教師信息if (j==0)</p><p> printf("\n\t沒有找到要修改的教師!\n");</p><p> ?。?)在給一個(gè)條件語句判斷如果J=1,將用顯示函數(shù)輸出你要修改的信息如下;是否確定修改,若輸入y則錄入教師信息到結(jié)構(gòu)體變量temp中;</p><p> (4)條件判斷語句,如果輸入y則
70、將temp變量賦給結(jié)構(gòu)體變量I; if (choice=='Y' || choice=='y')</p><p> tea[i]=temp;</p><p><b> }</b></p><p> 6.刪除教師信息函數(shù)void del()</p><p> ?。?)定義整型變量dn
71、o,i,j,字符型變量choice,</p><p> ?。?)輸入要?jiǎng)h除的教師編號(hào),和上面一樣用for循環(huán)語句找到該教師的編號(hào)i;</p><p> (3)如果i<count,將要修改的教師信息用顯示函數(shù)輸出,輸出確定修改嗎,輸入y,則將對(duì)該教師信息進(jìn)行刪除。刪除該教師信息是將該教師的后面所有結(jié)構(gòu)體變量向前移一,for(j=i;j<count-1;j++) tea[j]=
72、tea[j+1]; count--;同時(shí)總的結(jié)構(gòu)體變量數(shù)減一;</p><p> (4)如果i>count,則輸出沒有找到該教師信息</p><p> 7.保存信息函數(shù)void baocun()</p><p> ?。?)定義文件指針*fp,整型變量i;</p><p> ?。?)以只寫方式打開文件打開一個(gè)標(biāo)準(zhǔn)文件,并使文件指針*
73、fp指向該文件;</p><p> ?。?)用一個(gè)for循環(huán)語句將所有的教師信息讀入到文件中</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> fprintf(fp,"%-3d",tea[i].no);</p>
74、<p> fprintf(fp,"\t%s",tea[i].name);</p><p> fprintf(fp,"\t%s",tea[i].xingbie);</p><p> fprintf(fp,"\t%s",tea[i].xibie);</p><p> fprintf(fp,&
75、quot;\t%d",tea[i].Hyear);</p><p> fprintf(fp,"\t%s\n",tea[i].xueli)</p><p> ?。?)最后關(guān)閉文件;</p><p> #include <stdio.h></p><p> #include <string.h
76、></p><p> #define scores 3</p><p> struct teacher</p><p><b> {</b></p><p> int no; //編號(hào)</p><p> char name[99];//姓名</p>&l
77、t;p> char xingbie[99];//性別</p><p> char xibie[99];//系別</p><p> int Hyear;//年齡</p><p> char xueli[99];//學(xué)歷</p><p><b> };</b></p><p> st
78、ruct teacher tea[99]; //聲明一個(gè)結(jié)構(gòu)數(shù)組變量</p><p> int count=0;</p><p> void input(); </p><p> void displayall();</p><p> void displayone(struct teacher);</p><p&
79、gt; void sort();</p><p> void seach();</p><p> void change();</p><p> void del();</p><p> void baocun();</p><p> void main()</p><p><
80、b> {</b></p><p> int choice;</p><p><b> do</b></p><p><b> {</b></p><p> printf("\t☆☆☆☆☆歡迎使用教師信息績(jī)管理系統(tǒng)☆☆☆☆☆\n\n");</p&g
81、t;<p> printf("\t\t1. 錄 入 教 師 信 息\n");</p><p> printf("\t\t2. 顯 示 教 師 信 息\n");</p><p> printf("\t\t3. 查 詢 教 師 信 息\n");</p><p>
82、 printf("\t\t4. 教 師 信 息 排 序\n");</p><p> printf("\t\t5. 修 改 教 師 信 息\n");</p><p> printf("\t\t6. 刪 除 教 師 信 息\n");</p><p> printf(&quo
83、t;\t\t7. 保 存 教 師 信 息\n");</p><p> printf("\t\t9. *退出教師成績(jī)管理系統(tǒng)*\n\n");</p><p> printf("\t\t請(qǐng)選擇:");</p><p> scanf("%d",&choice);</p>
84、;<p> switch(choice)</p><p><b> {</b></p><p><b> case 1:</b></p><p><b> input();</b></p><p><b> break;</b>&l
85、t;/p><p><b> case 2:</b></p><p> displayall();</p><p> printf("\n");</p><p> printf("\n");</p><p><b> break;</b&
86、gt;</p><p><b> case 3:</b></p><p><b> seach();</b></p><p> printf("\n");</p><p> printf("\n");</p><p><b
87、> break;</b></p><p><b> case 4:</b></p><p><b> sort();</b></p><p><b> break;</b></p><p><b> case 5:</b><
88、;/p><p><b> change();</b></p><p><b> break;</b></p><p><b> case 6:</b></p><p><b> del();</b></p><p><b&
89、gt; break;</b></p><p><b> case 7:</b></p><p> printf("\n\t\t信息已保存!\n\n");</p><p><b> baocun();</b></p><p><b> break;&
90、lt;/b></p><p><b> case 9:</b></p><p> printf("\n\t謝謝使用本系統(tǒng)!\n");</p><p><b> break;</b></p><p><b> default:</b></p
91、><p> printf("\n\t選擇錯(cuò)誤!請(qǐng)重新選擇。\n");</p><p> } //switch結(jié)構(gòu)結(jié)束</p><p> }while(choice!=9); //do結(jié)構(gòu)結(jié)束</p><p> } //main函數(shù)結(jié)束</p><p> void input()
92、 //錄入函數(shù) </p><p><b> {</b></p><p> struct teacher temp;</p><p> char choice1='y',choice2;</p><p> while(choice1=='y' || choice1=='
93、Y')</p><p><b> {</b></p><p> printf("\n\t教師編號(hào):");</p><p> scanf("%d",&temp.no);</p><p> printf("\n\t教師姓名:");</p
94、><p> scanf("%s",temp.name);</p><p> printf("\n\t教師性別:");</p><p> scanf("%s",temp.xingbie);</p><p> printf("\n\t教師系別:");</p&
95、gt;<p> scanf("%s",temp.xibie);</p><p> printf("\n\t教師年齡:");</p><p> scanf("%d",&temp.Hyear);</p><p> printf("\n\t教師學(xué)歷:");<
96、/p><p> scanf("%s",temp.xueli);</p><p> printf("\n\t您輸入的教師信息如下:\n");</p><p> displayone(temp);</p><p> printf("\n\t確定要保存嗎(Y/N)?");</p&
97、gt;<p> fflush(stdin);</p><p> choice2=getchar();</p><p> if (choice2=='Y' || choice2=='y')</p><p><b> {</b></p><p> tea[count]=
98、temp;</p><p><b> count++;</b></p><p><b> }</b></p><p> printf("\n\t要繼續(xù)輸入嗎(Y/N)?");</p><p> fflush(stdin);</p><p> ch
99、oice1=getchar();</p><p><b> }</b></p><p><b> }</b></p><p> void displayone(struct teacher t) //顯示信息函數(shù)</p><p><b> {</b></p>
100、<p> printf("\n\t編號(hào):%d",t.no);</p><p> printf("\n\t姓名:%s",t.name);</p><p> printf("\n\t性別:%s",t.xingbie);</p><p> printf("\n\t系別:%s&quo
101、t;,t.xibie);</p><p> printf("\n\t年齡:%d",t.Hyear);</p><p> printf("\n\t學(xué)歷:%s",t.xueli);</p><p><b> }</b></p><p> void displayall() //
102、顯示信息函數(shù)</p><p><b> {</b></p><p><b> int i;</b></p><p> if(count<1)</p><p> printf("\n\t沒有教師信息!\n");</p><p><b>
103、; else</b></p><p><b> {</b></p><p> printf("\n編號(hào)\t姓名\t性別\t系別\t年齡\t學(xué)歷\n");</p><p> for(i=0;i<count;i++)</p><p><b> {</b>&
104、lt;/p><p> printf("%-3d",tea[i].no);</p><p> printf("\t%s",tea[i].name);</p><p> printf("\t%s",tea[i].xingbie);</p><p> printf("\t%s
105、",tea[i].xibie);</p><p> printf("\t%d",tea[i].Hyear);</p><p> printf("\t%s\n",tea[i].xueli);</p><p><b> }</b></p><p><b>
106、}</b></p><p><b> }</b></p><p> void sort() //排序函數(shù)</p><p><b> {</b></p><p> /* 冒泡排序法*/</p><p> int i,j,choice;</p>
107、;<p> struct teacher temp;</p><p> if(count<1)</p><p> printf("\n\t沒有教師信息!\n");</p><p><b> else</b></p><p><b> {</b><
108、;/p><p> printf("\n\t排序前的教師信息:\n");</p><p> displayall();</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n\t1
109、. 按 編 號(hào) 升 序");</p><p> printf("\n\t2. 按 姓 名 升 序");</p><p> printf("\n\t3. 按 年 齡 降 序");</p><p> printf("\n\t9. 返 回 主 程 序");</p><p>
110、 printf("\n\t 請(qǐng)選擇排序依據(jù):");</p><p> scanf("%d",&choice);</p><p> switch(choice)</p><p><b> {</b></p><p><b> case 1:</b&g
111、t;</p><p> for(i=0;i<count;i++) </p><p><b> {</b></p><p> for(j=0;j<count-i-1;j++) //比較元素</p><p><b> { </b></p><p> if(t
112、ea[j].no > tea[j+1].no)</p><p><b> {</b></p><p> temp=tea[j];</p><p> tea[j]=tea[j+1];</p><p> tea[j+1]=temp;</p><p><b> }</b&
113、gt;</p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p> for(i=0;i&l
114、t;count;i++) </p><p><b> {</b></p><p> for(j=0;j<count-i-1;j++) //比較元素</p><p><b> { </b></p><p> if(strcmp(tea[j].name,tea[j+1].name)>
115、0)</p><p><b> {</b></p><p> temp=tea[j];</p><p> tea[j]=tea[j+1];</p><p> tea[j+1]=temp;</p><p><b> }</b></p><p>
116、<b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 3:</b></p><p> for(i=0;i<count;i++) </p>
117、<p><b> {</b></p><p> for(j=0;j<count-i-1;j++) //比較元素</p><p><b> { </b></p><p> if(tea[j].Hyear < tea[j+1].Hyear)</p><p><b&g
118、t; {</b></p><p> temp=tea[j];</p><p> tea[j]=tea[j+1];</p><p> tea[j+1]=temp;</p><p><b> }</b></p><p><b> }</b></p&g
119、t;<p><b> }</b></p><p><b> break;</b></p><p><b> case 9:</b></p><p><b> break;</b></p><p><b> default:
120、</b></p><p> printf("\n\t選擇錯(cuò)誤,請(qǐng)重新選擇!\n");</p><p> } //switch結(jié)構(gòu)結(jié)束</p><p> if(choice>=1 && choice <=3)</p><p><b> {</b><
121、/p><p> printf("\n\t排序后的教師信息:\n");</p><p> displayall();</p><p><b> }</b></p><p> }while(choice!=9); //do循環(huán)結(jié)束</p><p> } //if判斷結(jié)束&
122、lt;/p><p><b> } </b></p><p> void seach()//查詢函數(shù)</p><p><b> {</b></p><p> int i,xh,j=0;</p><p> struct teacher Hname;</p>&
123、lt;p> char choice;</p><p> printf("\n\t請(qǐng)選擇查詢方式:");</p><p> printf("\n\t1. 按 教 師 姓 名 查 詢 ");</p><p> printf("\n\t2. 按 教 師 編 號(hào) 查 詢 \n\n");</p&g
124、t;<p> printf("\t\t請(qǐng)選擇:");</p><p> fflush(stdin);</p><p> scanf("%d",&choice);</p><p> switch(choice)</p><p><b> {</b>&l
125、t;/p><p><b> case 1:</b></p><p> printf("\n\t請(qǐng)輸入要查詢教師的姓名: ");</p><p> fflush(stdin);</p><p> scanf("%s",Hname.name);</p><p&g
126、t; for (i=0;i<99;i++)</p><p> if (strcmp(Hname.name,tea[i].name)==0)</p><p><b> {</b></p><p><b> j=1;</b></p><p><b> break;</b&
127、gt;</p><p><b> }</b></p><p><b> if (j==0)</b></p><p> printf("\n\t沒有找到要查詢的教師!\n");</p><p><b> else</b></p><
128、p><b> {</b></p><p> printf("\n\t您要查詢的教師信息如下:\n");</p><p> displayone(tea[i]);</p><p> printf("\n");</p><p><b> }</b>
129、</p><p><b> break;</b></p><p><b> case 2:</b></p><p> printf("\n\t請(qǐng)輸入要查詢教師的編號(hào):");</p><p> scanf("%d",&xh);</p>
130、<p> for(i=0;i<count;i++)</p><p> if(tea[i].no==xh)</p><p><b> {</b></p><p><b> j=1;</b></p><p><b> break;</b></p&
131、gt;<p><b> }</b></p><p><b> if (j==0)</b></p><p> printf("\n\t沒有找到要查詢的教師!\n");</p><p><b> else</b></p><p><b
132、> {</b></p><p> printf("\n\t您要查詢的教師信息如下:\n");</p><p> displayone(tea[i]);</p><p> printf("\n");</p><p><b> }</b></p>
133、<p><b> break;</b></p><p><b> default:</b></p><p> printf("\n\t選擇錯(cuò)誤!請(qǐng)重新選擇。\n");</p><p><b> }</b></p><p><b&g
134、t; }</b></p><p> void change() //修改教師信息函數(shù)</p><p><b> {</b></p><p> int i,xh,j=0;</p><p> struct teacher temp;</p><p> char choice;
135、</p><p> printf("\n\t請(qǐng)輸入要修改教師的編號(hào):");</p><p> scanf("%d",&xh);</p><p> for(i=0;i<count;i++)</p><p> if(tea[i].no==xh)</p><p>
136、<b> {</b></p><p><b> j=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> if (j==0)</b></p>
137、<p> printf("\n\t沒有找到要修改的教師!\n");</p><p><b> else</b></p><p><b> {</b></p><p> printf("\n\t您要修改的教師信息如下:\n");</p><p&
138、gt; displayone(tea[i]);</p><p> printf("\n\t要修改嗎(Y/N)?");</p><p> fflush(stdin);</p><p> choice=getchar();</p><p> if (choice=='Y' || choice==
139、9;y')</p><p><b> {</b></p><p> printf("\t編號(hào):");</p><p> scanf("%d",&temp.no);</p><p> printf("\n\t姓名:");</p>
140、<p> scanf("%s",temp.name);</p><p> printf("\n\t性別:");</p><p> scanf("%s",temp.xingbie);</p><p> printf("\n\t系別:");</p><
141、;p> scanf("%s",temp.xibie);</p><p> printf("\n\t年齡:");</p><p> scanf("%d",&temp.Hyear);</p><p> printf("\n\t學(xué)歷:");</p><
142、p> scanf("%s",temp.xueli);</p><p> printf("\n\t要保存所做的修改嗎(Y/N)?");</p><p> fflush(stdin);</p><p> choice=getchar();</p><p> if (choice=='
143、Y' || choice=='y')</p><p> tea[i]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> voi
144、d del()//刪除教師信息函數(shù)</p><p><b> {</b></p><p> int dno,i,j;</p><p> char choice;</p><p> printf("\n\t請(qǐng)輸入要?jiǎng)h除的教師的編號(hào):");</p><p> scanf(
145、"%d",&dno);</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> if(tea[i].no==dno)</p><p><b> break;</b></p><p
146、><b> }</b></p><p> if(i<count)</p><p><b> {</b></p><p> printf("\n\t你要?jiǎng)h除的教師信息如下:\n");</p><p> displayone(tea[i]);</p>
147、<p> printf("\n\t確定要?jiǎng)h除該教師信息嗎(Y/N)?");</p><p> fflush(stdin);</p><p> choice=getchar();</p><p> if (choice=='Y' || choice=='y')</p><p&
148、gt;<b> {</b></p><p> for(j=i;j<count-1;j++)</p><p> tea[j]=tea[j+1];</p><p><b> count--;</b></p><p><b> }</b></p><
149、;p><b> }</b></p><p><b> else</b></p><p> printf("\n\t沒有找到要?jiǎng)h除的教師\n");</p><p><b> }</b></p><p> void baocun()//保存信息到
150、文件 </p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> int i;</b></p><p> fp=fopen("教師信息.txt","w");</
151、p><p> fprintf(fp,"編號(hào)\t姓名\t性別\t系別\t年齡\t學(xué)歷\n");</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> fprintf(fp,"%-3d",tea[i].no);&l
152、t;/p><p> fprintf(fp,"\t%s",tea[i].name);</p><p> fprintf(fp,"\t%s",tea[i].xingbie);</p><p> fprintf(fp,"\t%s",tea[i].xibie);</p><p> fpr
153、intf(fp,"\t%d",tea[i].Hyear);</p><p> fprintf(fp,"\t%s\n",tea[i].xueli);</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }<
154、/b></p><p><b> 程序運(yùn)行效果圖</b></p><p><b> 3.1登陸界面</b></p><p><b> 3.2錄入功能</b></p><p><b> 3.3顯示功能</b></p><p&
155、gt;<b> 3.4查詢功能</b></p><p><b> 3.5排序功能</b></p><p><b> 3.6修改教師信息</b></p><p><b> 3.7刪除功能</b></p><p><b> 3.8保存功能&
156、lt;/b></p><p><b> 總結(jié)報(bào)告 </b></p><p> 5.1課程設(shè)計(jì)中遇到的主要問題和解決方法</p><p> 在這次的C語言課程設(shè)計(jì)的編程中,由于以前對(duì)鏈表和文件這兩部分的內(nèi)容了解過少,因此在編程中涉及到這兩方面的內(nèi)容時(shí),照成了很大的阻礙,最主要是在對(duì)鏈表的結(jié)點(diǎn)進(jìn)行交換,對(duì)文件某些特殊的讀寫不清楚。而且由
157、于第一次接觸這類比較復(fù)雜一點(diǎn)的題目,在循環(huán)方面的應(yīng)用有所不足,這也是一個(gè)問題。</p><p> 在遇到這些問題時(shí),對(duì)于每一個(gè)問題在實(shí)在無思路時(shí),我首先會(huì)查閱相關(guān)的書籍,像文件中末尾讀起的方法,在通過查看C語言的書后我才知道原來有專門的庫函數(shù)可以用;在查閱完書籍確定該了解的基本內(nèi)容已了解之后,自己再重新思考算法,然后不斷的在VC++中調(diào)試,根據(jù)它的提示修正錯(cuò)誤,直到編譯無錯(cuò)且運(yùn)行的結(jié)果正確為止。</p&g
158、t;<p> 5.2你的創(chuàng)新和得意之處</p><p> 這個(gè)教師信息管理系統(tǒng)不僅按要求可以讓用戶自己選擇要實(shí)現(xiàn)錄入,瀏覽,查找,刪除,排序中的任一種功能,而且在退出系統(tǒng)時(shí)為用戶提供能是否要保存該次的信息到文件中的選擇。且在瀏覽中當(dāng)檢查到用戶該次登錄還未錄入過信息時(shí),提供了是否要查看以前保存的文件的功能。</p><p> 5.3設(shè)計(jì)中存在的不足及改進(jìn)的設(shè)想</p
159、><p> 在設(shè)計(jì)過程中,由于對(duì)C語言的理解不夠透徹,特別是鏈表和文件方面邊查書邊調(diào)試才寫出來的,所以導(dǎo)致程序在一定程度上的不嚴(yán)密,例如瀏覽其他文件的信息只有在檢測(cè)到該次登錄還未錄入過信息時(shí)才會(huì)提供用戶選擇之類的。當(dāng)然,最主要的原因是由于第一次接觸這種較復(fù)雜點(diǎn)的題目,在算法的設(shè)計(jì)上不好,才導(dǎo)致程序過于冗長(zhǎng)不嚴(yán)謹(jǐn)?shù)?。程序在查找和排序時(shí)其實(shí)可以不用每種方式都寫一個(gè)函數(shù)的,這樣程序就不會(huì)顯得過于冗長(zhǎng)。而且系統(tǒng)提供功能選擇
160、方面也可以再調(diào)整的更完善。</p><p> 5.4本次課程設(shè)計(jì)的感想和心得體會(huì)</p><p> 從拿到題目到完成的三周時(shí)間里,我了解到了原來在C語言的方面的應(yīng)用我所存在的不足,更掌握了很多之前不懂的知識(shí)。在此次的課程設(shè)計(jì)中,剛接觸到題目時(shí)我就發(fā)覺了一個(gè)被我遺忘了的嚴(yán)重問題,那就是編程的能力只有通過不斷敲寫代碼才能保持和提高的。由于過長(zhǎng)時(shí)間沒有寫過代碼的緣故,在拿到以前已經(jīng)編過的簡(jiǎn)單
161、題目時(shí)我也得查找書籍才最終編寫完成,這重新提醒了我在編程方面實(shí)踐的重要。</p><p> 由于第一次拿到設(shè)計(jì)一個(gè)系統(tǒng)這樣比較復(fù)雜的題目,盡管最后設(shè)計(jì)出來的系統(tǒng)很簡(jiǎn)單,當(dāng)中間我所遇到的問題還是很多,甚至比學(xué)C語言時(shí)做過的所有題目遇到的還多。因此在編程時(shí)我?guī)缀跤职袰語言的整本書重新看了一遍,有了更深刻的認(rèn)識(shí)。另外,在這次的編寫中,我了解到了以前所未了解的一個(gè)很重要的地方,就是設(shè)計(jì)算法的能力。因?yàn)橐郧八佑|的題目都
162、比較簡(jiǎn)單,所以沒有專門想過設(shè)計(jì)算法,跟沒有意識(shí)到其重要性,這次的題目讓我明白了要編寫出一個(gè)好的程序,設(shè)計(jì)一個(gè)好的算法是非常必要的。由于開始我在設(shè)計(jì)算法方面的意識(shí)不足,導(dǎo)致這次寫出來的代碼很累贅很繁瑣,這時(shí)非常不好的。另外,我發(fā)現(xiàn)細(xì)節(jié)的注意不管是多熟悉編程了都很必要的,即使到最后快完成的時(shí)候我也會(huì)犯下缺函數(shù)的括號(hào),語句缺冒號(hào)之類的小錯(cuò)誤。</p><p> 雖然這次完成題目的結(jié)果不太好,但能夠自己獨(dú)立完成還是帶給
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)報(bào)告--教師信息管理系統(tǒng)
- 教師信息管理系統(tǒng)(c語言課程設(shè)計(jì))
- 教師信息管理系統(tǒng)(c語言課程設(shè)計(jì))
- 高校教師信息管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫課程設(shè)計(jì)--教師信息管理系統(tǒng)
- 《車輛信息管理》課程設(shè)計(jì)--車輛信息管理系統(tǒng)
- 職工信息管理系統(tǒng)課程設(shè)計(jì)
- 物流信息管理系統(tǒng)課程設(shè)計(jì)
- 信息管理系統(tǒng)網(wǎng)站課程設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 人事信息管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)----學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- c編寫的教師信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生和教師信息管理系統(tǒng)c語言課程設(shè)計(jì)
- 職工信息管理系統(tǒng)課程設(shè)計(jì)
- 職工信息管理系統(tǒng)課程設(shè)計(jì)
- 客戶信息管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論