版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生課程論文封面</b></p><p> 課程名稱 C語(yǔ)言課程設(shè)計(jì) </p><p> 教師姓名 </p><p> 本科生姓名 </p><p> 本科生學(xué)號(hào)
2、 </p><p> 本科生專業(yè) 地質(zhì)學(xué) </p><p> 所在院系 地球科學(xué)學(xué)院 </p><p> 類別: C.本科 </p><p> 日期: 2013年1月10日 </p><p><b
3、> 課程設(shè)計(jì)評(píng)語(yǔ)</b></p><p> 注:1、無(wú)評(píng)閱人簽名成績(jī)無(wú)效;</p><p> 2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無(wú)效;</p><p> 3、如有平時(shí)成績(jī),必須在上面評(píng)分表中標(biāo)出,并計(jì)算入總成績(jī)。</p><p><b> 目 錄</b></p><p&
4、gt;<b> 課程設(shè)計(jì)評(píng)語(yǔ)2</b></p><p><b> 目 錄3</b></p><p> 1.課程論文題目4</p><p> 2.程序設(shè)計(jì)思路4</p><p><b> 3.功能模塊圖5</b></p><p> 4
5、.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì)6</p><p><b> 5.算法設(shè)計(jì)6</b></p><p><b> 6.程序代碼7</b></p><p> 7.程序運(yùn)行結(jié)果19</p><p> 8.編程中遇到的困難及解決方法24</p><p> 9.總結(jié)心得及良好建議2
6、5</p><p><b> 10.致謝26</b></p><p><b> 1.課程論文題目</b></p><p> 職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù))。試設(shè)計(jì)一職工信息管理系統(tǒng),使之能提供以下功能:</p><p> 系統(tǒng)以菜單方式工作。
7、</p><p> 職工信息錄入功能(職工信息用文件保存)。</p><p><b> 職工信息瀏覽功能。</b></p><p> 職工信息查詢功能,查詢方式可按學(xué)歷查詢或按職工號(hào)查詢。</p><p> 職工信息刪除、修改功能(可選項(xiàng))。</p><p><b> 【提示】
8、</b></p><p> 建立職工信息結(jié)構(gòu)體,結(jié)構(gòu)體成員包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話。</p><p><b> 2.程序設(shè)計(jì)思路</b></p><p> 按要求設(shè)計(jì)一個(gè)職工信息管理系統(tǒng),使之能提供以下功能:</p><p> (1)應(yīng)提供一個(gè)界面來(lái)調(diào)用各個(gè)功能,調(diào)用界面和
9、各個(gè)功能的操作界面應(yīng)盡可能清晰美觀!</p><p> ?。?)輸入功能:職工信息錄入(職工信息用文件保存),可以一次完成若干條記錄的輸入。</p><p> ?。?)瀏覽功能:完成對(duì)全部職工信息的顯示。</p><p> ?。?)查找功能:①完成按職工的職工號(hào)查詢職工的相關(guān)信息,并顯示。</p><p> ?、谕瓿砂绰毠さ膶W(xué)歷查詢職工的相關(guān)
10、信息,并顯示。</p><p> ?、弁瓿砂绰毠さ碾娫捥?hào)碼查詢職工的相關(guān)信息,并顯示。</p><p> (5)刪除功能:通過(guò)輸入職工的姓名完成對(duì)該名職工的信息進(jìn)行刪除。</p><p> ?。?)添加功能:完成添加新職工的信息的任務(wù)。</p><p> ?。?)修改功能:通過(guò)輸入職工的姓名完成對(duì)該名職工的信息進(jìn)行修改。</p>
11、<p> ?。?)退出職工信息管理系統(tǒng)。</p><p><b> 3.功能模塊圖</b></p><p> (每個(gè)功能模塊都標(biāo)注函數(shù)名稱,如右圖)</p><p><b> 4.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 為了方便使用結(jié)構(gòu)此系統(tǒng)結(jié)構(gòu)均為全局類型定義</p&g
12、t;<p> struct employee //定義一個(gè)職工信息的結(jié)構(gòu)體//</p><p><b> {</b></p><p><b> int num;</b></p><p> char name[10];</p><p> char sex;
13、 </p><p><b> int age;</b></p><p> char xueli[30];</p><p><b> int wage;</b></p><p> char addr[30];</p><p> char tel[20];</p
14、><p> }em[100]; </p><p><b> 5.算法設(shè)計(jì)</b></p><p> 1.菜單模塊:顯示職工管理系統(tǒng)的主菜單,供用戶選擇所需的功能,通過(guò)自己定義的void menu()函數(shù)來(lái)實(shí)現(xiàn)。 </p><p> 2.輸入模塊:輸入職工的工號(hào)、姓名以及其它的一些職工的相關(guān)信息,通過(guò)自己定義的v
15、oid input()函數(shù)來(lái)實(shí)現(xiàn)。</p><p> 3.保存模塊:將內(nèi)存中職工的信息輸出到磁盤文件中,可以通過(guò)自己定義的void save(int)函數(shù)來(lái)實(shí)現(xiàn)。</p><p> 4.瀏覽模塊:瀏覽所有職工的相關(guān)信息,通過(guò)自己定義的void display()函數(shù)來(lái)實(shí)現(xiàn)。</p><p> 5.刪除模塊:刪除需要?jiǎng)h除的職工的所有信息,通過(guò)自己定義的void
16、del()函數(shù)來(lái)實(shí)現(xiàn)。</p><p> 6.按職工號(hào)查詢模塊:可以按職工號(hào)來(lái)查詢職工的相關(guān)信息,通過(guò)自己定義的void search_num()函數(shù)來(lái)實(shí)現(xiàn)。</p><p> 7.按職工的的學(xué)歷查詢模塊:可以按職工的學(xué)歷來(lái)查詢職工的相關(guān)信息,通過(guò)自己定義的void search_xuelil函數(shù)來(lái)實(shí)現(xiàn)。</p><p> 8.修改模塊:可以修改需要修改的職工
17、的相關(guān)信息,通過(guò)自己定義的void modify()函數(shù) 來(lái)實(shí)現(xiàn)。</p><p> 9.退出系統(tǒng)模塊:退出職工信息管理系統(tǒng),通過(guò)頭文件windows.h中的exit(0)函數(shù)來(lái)實(shí)現(xiàn)。</p><p><b> 6.程序代碼</b></p><p> #include <stdio.h></p><p&g
18、t; #include <windows.h></p><p> #include <string.h></p><p> #define N 100</p><p> struct employee</p><p><b> {</b></p><p><
19、b> int num;</b></p><p> char name[20];</p><p> char sex; </p><p><b> int age;</b></p><p> char xueli[30];</p><p><b> int
20、wage;</b></p><p> char addr[30];</p><p> char tel[20];</p><p> }em[100]; /*定義一個(gè)結(jié)構(gòu)體*/</p><p> void menu();</p><p> void input();</p>
21、<p> void save(int);</p><p> void display();</p><p> void del();</p><p> void add();</p><p> void search();</p><p> void search_num();</p&g
22、t;<p> void search_xueli();</p><p> void search_tel();</p><p> void modify(); /*定義各函數(shù)*/</p><p> void main()</p><p><b> { </b></p><
23、p><b> menu(); </b></p><p> int n,flag;</p><p><b> char a;</b></p><p><b> do</b></p><p><b> {</b></p><
24、;p> printf("請(qǐng)選擇你需要操作的步驟(1--7):\n");</p><p> scanf("%d",&n);</p><p> if(n>=1&&n<=7)</p><p><b> {</b></p><p><
25、b> flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
26、p><b> flag=0;</b></p><p> printf("您輸入有誤,請(qǐng)重新選擇!");</p><p><b> }</b></p><p><b> }</b></p><p> while(flag==0);</p&
27、gt;<p> while(flag==1)</p><p><b> {</b></p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1:printf("
28、 ◆◆◆輸入職工信息◆◆◆\n");printf("\n");input();break;</p><p> case 2:printf(" ◆◆◆瀏覽職工信息◆◆◆\n");printf("\n");display();break;</p><p> case 3:printf(&
29、quot; ◆◆◆按職工號(hào)查詢職工信息◆◆◆\n");printf("\n");search();break; </p><p> case 4:printf(" ◆◆◆刪除職工信息◆◆◆\n");printf("\n");del();break;</p><p>
30、 case 5:printf(" ◆◆◆添加職工信息◆◆◆\n");printf("\n");add();break;</p><p> case 6:printf(" ◆◆◆修改職工信息◆◆◆\n");printf("\n");modify();break;</p>
31、<p> case 7:exit(0);break;</p><p> default :break;</p><p><b> }</b></p><p> getchar();</p><p> printf("\n");</p><p> pri
32、ntf("是否繼續(xù)進(jìn)行(y or n):\n");</p><p> scanf("%c",&a);</p><p> if(a=='y')</p><p><b> {</b></p><p><b> flag=1;</b>
33、</p><p> system("cls"); /*清屏*/</p><p> menu(); /*調(diào)用菜單函數(shù)*/</p><p> printf("請(qǐng)?jiān)俅芜x擇你需要操作的步驟(1--7):\n");</p><p> scanf("%d",&n);</p
34、><p> printf("\n");</p><p><b> }</b></p><p><b> else </b></p><p><b> exit(0);</b></p><p><b> }</b&
35、gt;</p><p><b> }</b></p><p> void menu() /*菜單函數(shù)*/</p><p><b> {</b></p><p> printf(" ************歡迎進(jìn)入職工信息管理系統(tǒng)**********\n"
36、);</p><p> printf(" 1.錄入職工信息");</p><p> printf(" 2.瀏覽職工信息\n");</p><p> printf(" 3.查詢職工信息");</p><p> prin
37、tf(" 4.刪除職工信息\n");</p><p> printf(" 5.添加職工信息");</p><p> printf(" 6.修改職工信息\n");</p><p> printf(" 7.退出\n&
38、quot;);</p><p> printf(" ********************謝謝使用******************\n");</p><p> printf("\n");</p><p> printf("\n");</p><p><
39、b> }</b></p><p> void input() /*錄入函數(shù)*/</p><p><b> {</b></p><p><b> int i,m;</b></p><p> printf("請(qǐng)輸入需要?jiǎng)?chuàng)建信息的職工人數(shù)(1--100):\n&q
40、uot;);</p><p> scanf("%d",&m);</p><p> for (i=0;i<m;i++)</p><p><b> {</b></p><p> printf("請(qǐng)輸入職工號(hào): ");</p><p> s
41、canf("%d",&em[i].num);</p><p> printf("請(qǐng)輸入姓名: ");</p><p> scanf("%s",em[i].name);</p><p> getchar();</p><p> printf("請(qǐng)輸入性別(f
42、--女 m--男): ");</p><p> scanf("%c",&em[i].sex);</p><p> printf("請(qǐng)輸入年齡: ");</p><p> scanf("%d",&em[i].age);</p><p> prin
43、tf("請(qǐng)輸入學(xué)歷: ");</p><p> scanf("%s",em[i].xueli);</p><p> printf("請(qǐng)輸入工資: ");</p><p> scanf("%d",&em[i].wage);</p><p> pr
44、intf("請(qǐng)輸入住址: ");</p><p> scanf("%s",em[i].addr);</p><p> printf("請(qǐng)輸入電話: ");</p><p> scanf("%s",em[i].tel);</p><p> printf(
45、"\n");</p><p><b> }</b></p><p> printf("\n創(chuàng)建完畢!\n");</p><p><b> save(m);</b></p><p><b> }</b></p><
46、;p> void save(int m) /*保存文件函數(shù)*/</p><p><b> {</b></p><p><b> int i;</b></p><p><b> FILE*fp;</b></p><p> if ((fp=fopen("
47、employee_list","wb"))==NULL)</p><p><b> {</b></p><p> printf ("cannot open file\n");</p><p><b> exit(0);</b></p><p>
48、<b> }</b></p><p> for (i=0;i<m;i++) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/</p><p> if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)</p><p> printf("file write error\n
49、");</p><p> fclose(fp);</p><p><b> }</b></p><p> int load() /*導(dǎo)入函數(shù)*/</p><p><b> {</b></p><p><b> FILE*fp;</b>
50、;</p><p><b> int i=0;</b></p><p> if((fp=fopen("employee_list","rb"))==NULL)</p><p><b> {</b></p><p> printf ("cann
51、ot open file\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><
52、;p><b> do </b></p><p><b> {</b></p><p> fread(&em[i],sizeof(struct employee),1,fp);</p><p><b> i++;</b></p><p><b>
53、 }</b></p><p> while(feof(fp)==0);</p><p><b> }</b></p><p> fclose(fp);</p><p> return(i-1);</p><p><b> }</b></p>
54、<p> void display() /*瀏覽函數(shù)*/</p><p><b> {</b></p><p><b> int i;</b></p><p> int m=load();</p><p> printf(" 職工號(hào)\t姓名\t\t性別\t\t年齡
55、 \n");</p><p> for(i=0;i<m;i++) /*m為輸入部分的職工人數(shù)*/</p><p> printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); </p><p> printf("
56、\n 學(xué)歷\t\t工資\t\t住址\t\t電話 \n");</p><p> for(i=0;i<m;i++) /*m為輸入部分的職工人數(shù)*/</p><p> printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);</p>&l
57、t;p><b> }</b></p><p> void del() /*刪除函數(shù)*/</p><p><b> {</b></p><p> int m=load();</p><p> int i,j,n,t,flag;</p><p> char
58、name[20];</p><p> printf("\n 原來(lái)的職工信息:\n");</p><p> display(); </p><p> printf("\n");</p><p> printf("請(qǐng)輸入要?jiǎng)h除的職工的姓名:\n");</p>&l
59、t;p> scanf("%s",name);</p><p> for(flag=1,i=0;flag&&i<m;i++)</p><p><b> {</b></p><p> if(strcmp(em[i].name,name)==0)</p><p><
60、b> {</b></p><p> printf("\n已找到此人,原始記錄為:\n");</p><p> printf(" 職工號(hào)\t姓名\t\t性別\t\t年齡 \n");</p><p> printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[
61、i].num,em[i].name,em[i].sex,em[i].age); </p><p> printf("\n 學(xué)歷\t\t工資\t\t住址\t\t電話 \n");</p><p> printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].
62、tel); </p><p> printf("\n確實(shí)要?jiǎng)h除此人信息請(qǐng)按1,不刪除請(qǐng)按0\n");</p><p> scanf("%d",&n);</p><p><b> if(n==1)</b></p><p><b> {</b>&
63、lt;/p><p> for(j=i;j<m-1;j++)</p><p><b> {</b></p><p> strcpy(em[j].name,em[j+1].name);</p><p> em[j].num=em[j+1].num;</p><p> em[j].sex=e
64、m[j+1].sex;</p><p> em[j].age=em[j+1].age;</p><p> strcpy(em[j].xueli,em[j+1].xueli);</p><p> em[j].wage=em[j+1].wage; </p><p> strcpy(em[j].addr,em[j+1].addr);<
65、;/p><p> strcpy(em[j].tel,em[j+1].tel);</p><p><b> }</b></p><p><b> flag=0;</b></p><p><b> }</b></p><p><b> }&l
66、t;/b></p><p><b> }</b></p><p><b> if(!flag)</b></p><p><b> m=m-1;</b></p><p><b> else</b></p><p> p
67、rintf("\n對(duì)不起,查無(wú)此人!\n");</p><p> printf("\n 瀏覽刪除后的所有職工信息:\n");</p><p> save(m); /*調(diào)用保存函數(shù)*/</p><p> display(); /*調(diào)用瀏覽函數(shù)*/</p><p> printf(&quo
68、t;\n繼續(xù)刪除請(qǐng)按1,不再刪除請(qǐng)按0\n");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><p><b> {</b></p><p> case 1:del();break;<
69、;/p><p> case 0:break;</p><p> default :break;</p><p><b> }</b></p><p><b> }</b></p><p> void add()/*添加函數(shù)*/</p><p>&
70、lt;b> {</b></p><p><b> FILE*fp;</b></p><p><b> int n;</b></p><p> int count=0;</p><p><b> int i;</b></p><p&
71、gt; int m=load();</p><p> printf("\n 原來(lái)的職工信息:\n");</p><p> display(); </p><p> printf("\n");</p><p> fp=fopen("emploee_list","a
72、");</p><p> printf("請(qǐng)輸入想增加的職工數(shù):\n");</p><p> scanf("%d",&n);</p><p> for (i=m;i<(m+n);i++)</p><p><b> {</b></p>&
73、lt;p> printf("\n 請(qǐng)輸入新增加職工的信息:\n");</p><p> printf("請(qǐng)輸入職工號(hào): ");</p><p> scanf("%d",&em[i].num);</p><p> printf("\n");</p>&
74、lt;p> printf("請(qǐng)輸入姓名: ");</p><p> scanf("%s",em[i].name);</p><p> getchar();</p><p> printf("請(qǐng)輸入性別(f--女 m--男): ");</p><p> scanf
75、("%c",&em[i].sex);</p><p> printf("請(qǐng)輸入年齡: ");</p><p> scanf("%d",&em[i].age);</p><p> printf("請(qǐng)輸入學(xué)歷: ");</p><p> s
76、canf("%s",em[i].xueli);</p><p> printf("請(qǐng)輸入工資: ");</p><p> scanf("%d",&em[i].wage);</p><p> printf("請(qǐng)輸入住址: ");</p><p>
77、 scanf("%s",em[i].addr);</p><p> printf("請(qǐng)輸入電話: ");</p><p> scanf("%s",em[i].tel);</p><p> printf("\n");</p><p> count=coun
78、t+1;</p><p> printf("已增加的人數(shù):\n");</p><p> printf("%d\n",count);</p><p><b> }</b></p><p> printf("\n添加完畢!\n"); </p>
79、<p> m=m+count;</p><p> printf("\n瀏覽增加后的所有職工信息:\n");</p><p> printf("\n");</p><p><b> save(m);</b></p><p> display();</p>
80、;<p> fclose(fp);</p><p><b> }</b></p><p> void search()/*查詢函數(shù)*/</p><p><b> {</b></p><p> int t,flag;</p><p><b>
81、 do</b></p><p><b> {</b></p><p> printf("\n按職工號(hào)查詢請(qǐng)按1; 按學(xué)歷查詢請(qǐng)按2; 按電話號(hào)碼查詢請(qǐng)按3; 進(jìn)入主函數(shù)請(qǐng)按4\n");</p><p> scanf("%d",&t);</p><p>
82、 if(t>=1&&t<=4)</p><p><b> {</b></p><p><b> flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p&
83、gt;<p><b> else</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p> printf("您輸入有誤,請(qǐng)重新選擇!");</p><p><b> }
84、</b></p><p><b> }</b></p><p> while(flag==0);</p><p> while(flag==1)</p><p><b> {</b></p><p><b> switch(t)</b&g
85、t;</p><p><b> { </b></p><p> case 1:printf("按職工號(hào)查詢\n");search_num();break;</p><p> case 2:printf("按學(xué)歷查詢\n");search_xueli();break;</p><p
86、> case 3:printf("按電話號(hào)碼查詢\n");search_tel();break;</p><p> case 4:main();break;</p><p> default:break;</p><p><b> }</b></p><p><b> }&l
87、t;/b></p><p><b> }</b></p><p> void search_num()</p><p><b> {</b></p><p><b> int num;</b></p><p><b> int
88、i,t;</b></p><p> int m=load();</p><p> printf("請(qǐng)輸入要查找的職工號(hào):\n");</p><p> scanf("%d",&num);</p><p> for(i=0;i<m;i++)</p><p
89、> if(num==em[i].num)</p><p><b> { </b></p><p> printf("\n已找到此人,其記錄為:\n");</p><p> printf(" 職工號(hào)\t姓名\t\t性別\t\t年齡 \n");</p><p>
90、 printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); </p><p> printf("\n 學(xué)歷\t\t工資\t\t住址\t\t電話 \n");</p><p> printf("\n %s\t%d\t\t%s\t%
91、s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);</p><p><b> break;</b></p><p><b> }</b></p><p> if(i==m) </p><p> printf("\n對(duì)不起
92、,查無(wú)此人\n");</p><p> printf("\n");</p><p> printf("返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢職工號(hào)請(qǐng)按2\n");</p><p> scanf("%d",&t);</p><p><b> switch(t)
93、</b></p><p><b> { </b></p><p> case 1:search();break;</p><p> case 2: break;</p><p> default:break;</p><p><b> }</b><
94、/p><p><b> }</b></p><p> void search_xueli()</p><p><b> {</b></p><p> char xueli[30];</p><p><b> int i,t;</b></p&g
95、t;<p> int m=load();</p><p> printf("請(qǐng)輸入要查找的學(xué)歷:\n");</p><p> scanf("%s",xueli);</p><p> for(i=0;i<m;i++)</p><p> if(strcmp(em[i].xuel
96、i,xueli)==0)</p><p><b> {</b></p><p> printf("\n已找到,其記錄為:\n");</p><p> printf(" 職工號(hào)\t姓名\t\t性別\t\t年齡 \n");</p><p> printf("\n
97、 %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); </p><p> printf("\n 學(xué)歷\t\t工資\t\t住址\t\t電話 \n");</p><p> printf("\n %s\t%d\t\t%s\t%s\n",em[i].
98、xueli,em[i].wage,em[i].addr,em[i].tel); </p><p><b> }</b></p><p><b> if(i==m) </b></p><p> printf("\n對(duì)不起,查無(wú)此人\n");</p><p> printf
99、("\n");</p><p> printf("返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢學(xué)歷請(qǐng)按2\n");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><p><b> { &
100、lt;/b></p><p> case 1:search();break;</p><p> case 2:break;</p><p> default :break;</p><p><b> }</b></p><p><b> }</b></p
101、><p> void search_tel()</p><p><b> {</b></p><p> char tel[20];</p><p><b> int i, t;</b></p><p> int m=load();</p><p>
102、; printf("請(qǐng)輸入要查找的電話號(hào)碼:\n");</p><p> scanf("%s",tel);</p><p> for(i=0;i<m;i++)</p><p> if(strcmp(tel,em[i].tel)==0)</p><p><b> { </
103、b></p><p> printf("\n已找到此人,其記錄為:\n");</p><p> printf(" 職工號(hào)\t姓名\t\t性別\t\t年齡 \n");</p><p> printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].n
104、ame,em[i].sex,em[i].age); </p><p> printf("\n 學(xué)歷\t\t工資\t\t住址\t\t電話 \n");</p><p> printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);</p>
105、;<p><b> break;</b></p><p><b> }</b></p><p> if(i==m) </p><p> printf("\n對(duì)不起,查無(wú)此人\n");</p><p> printf("\n");<
106、;/p><p> printf("返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢電話號(hào)碼請(qǐng)按2\n");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><p><b> { </b></p>
107、;<p> case 1:search();break;</p><p> case 2:break;</p><p> default :break;</p><p><b> }</b></p><p><b> }</b></p><p> v
108、oid modify() /*修改函數(shù)*/</p><p><b> {</b></p><p><b> int num;</b></p><p> char name[20];</p><p> char sex; </p><p><b> int
109、 age;</b></p><p> char xueli[30];</p><p><b> int wage;</b></p><p> char addr[30];</p><p> char tel[20];</p><p> int b,c,i,n,t,flag;
110、</p><p> int m=load();</p><p> printf("\n 原來(lái)的職工信息:\n");</p><p> display(); </p><p> printf("\n");</p><p> printf("請(qǐng)輸入要修改的職工的姓
111、名:\n");</p><p> scanf("%s",name);</p><p> for(flag=1,i=0;flag&&i<m;i++)</p><p><b> {</b></p><p> if(strcmp(em[i].name,name)==0
112、)</p><p><b> {</b></p><p> printf("\n已找到此人,原始記錄為:\n");</p><p> printf(" 職工號(hào)\t姓名\t\t性別\t\t年齡 \n");</p><p> printf("\n %d\t\t
113、%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); </p><p> printf("\n 學(xué)歷\t\t工資\t\t住址\t\t電話 \n");</p><p> printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em
114、[i].wage,em[i].addr,em[i].tel); </p><p> printf("\n確實(shí)要修改此人信息請(qǐng)按1 ; 不修改請(qǐng)按0\n");</p><p> scanf("%d",&n);</p><p><b> if(n==1)</b></p>
115、<p><b> {</b></p><p> printf("\n需要進(jìn)行修改的選項(xiàng)\n 1.職工號(hào) 2.姓名 3.性別 4.年齡 5.學(xué)歷 6.工資 7.住址 8.電話\n"); </p><p> printf("請(qǐng)輸入你想修改的那一項(xiàng)序號(hào):\n"); </p><p> sc
116、anf("%d",&c); </p><p> if(c>8||c<1) </p><p> printf("\n選擇錯(cuò)誤,請(qǐng)重新選擇!\n"); </p><p><b> }</b></p><p><b> flag=0;</
117、b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag==1)</p><p> printf("\n對(duì)不起,查無(wú)此人!\n"); </p><p><b> do
118、</b></p><p><b> {</b></p><p> switch(c) /*因?yàn)楫?dāng)找到第i個(gè)職工時(shí),for語(yǔ)句后i自加了1,所以下面的應(yīng)該把改后的信息賦值給第i-1個(gè)人*/</p><p><b> { </b></p><p> case 1:prin
119、tf("職工號(hào)改為: ");</p><p> scanf("%d",&num);</p><p> em[i-1].num=num;</p><p><b> break; </b></p><p> case 2:printf("姓名改為: &quo
120、t;);</p><p> scanf("%s",name);</p><p> strcpy(em[i-1].name,name); </p><p><b> break; </b></p><p> case 3:printf("性別改為: ");</p>
121、;<p> getchar();</p><p> scanf("%c",&sex);</p><p> em[i-1].sex=sex;</p><p><b> break; </b></p><p> case 4:printf("年齡改為: &quo
122、t;);</p><p> scanf("%d",&age);</p><p> em[i-1].age=age;</p><p><b> break; </b></p><p> case 5:printf("學(xué)歷改為: ");</p><
123、p> scanf("%s",xueli);</p><p> strcpy(em[i-1].xueli,xueli); </p><p><b> break; </b></p><p> case 6:printf("工資改為: ");</p><p> sca
124、nf("%d",wage);</p><p><b> break; </b></p><p> case 7:printf("住址改為: ");</p><p> scanf("%s",addr);</p><p> strcpy(em[i-1].a
125、ddr,addr);</p><p><b> break; </b></p><p> case 8:printf("電話改為: ");</p><p> scanf("%s",tel);</p><p> strcpy(em[i-1].tel,tel); </p
126、><p><b> break; </b></p><p><b> } </b></p><p> printf("\n");</p><p> printf("\n是否確定所修改的信息?\n 是 請(qǐng)按1 ; 不,重新修改 請(qǐng)按2: \n"); &l
127、t;/p><p> scanf("%d",&b);</p><p><b> } </b></p><p> while(b==2);</p><p> printf("\n瀏覽修改后的所有職工信息:\n");</p><p> printf
128、("\n");</p><p><b> save(m);</b></p><p> display();</p><p> printf("\n繼續(xù)修改請(qǐng)按1,不再修改請(qǐng)按0\n");</p><p> scanf("%d",&t);</
129、p><p><b> switch(t)</b></p><p><b> {</b></p><p> case 1:modify();break;</p><p> case 0:break;</p><p> default :break;</p>
130、<p><b> }</b></p><p><b> }</b></p><p><b> 7.程序運(yùn)行結(jié)果</b></p><p> ?。?).運(yùn)行程序,進(jìn)入職工信息管理系統(tǒng)的主菜單:</p><p> 圖1:進(jìn)入主菜單界面</p><
131、p> (2).輸入數(shù)字“1”進(jìn)行錄入職工信息:</p><p><b> 圖2:錄入職工信息</b></p><p> ?。?).輸入“y”返回主菜單(界面同圖1)。</p><p> ?。?).輸入“2”瀏覽職工信息:</p><p><b> 圖3:瀏覽職工信息</b></p&
132、gt;<p> ?。?).輸入“y”后繼續(xù),輸入“3”進(jìn)行查詢職工信息:</p><p> 圖4:按職工號(hào)及學(xué)歷查詢職工信息</p><p> 圖5:按電話號(hào)碼查詢職工信息</p><p> 6.進(jìn)入主菜單,輸入“4”進(jìn)行刪除職工信息:</p><p><b> 圖6:刪除職工信息</b></
133、p><p> 7.進(jìn)入主菜單輸入“5”進(jìn)行添加職工信息:</p><p><b> 圖7:添加職工信息</b></p><p> ?。?).進(jìn)入主菜單輸入“6”進(jìn)行修改職工信息:</p><p><b> 圖8:修改職工信息</b></p><p> ?。?).進(jìn)入主菜單輸
134、入”7”退出職工信息管理系統(tǒng)。</p><p> 8.編程中遇到的困難及解決方法</p><p> 在這一周的課程設(shè)計(jì)中,我的課程設(shè)計(jì)題目是:職工信息管理系統(tǒng)。一開始,接到這個(gè)題目,我們對(duì)“職工信息管理”,這個(gè)概念不是很了解,所以在機(jī)房上機(jī)時(shí),我們查閱了許多資料,了解到即是對(duì)職工的工號(hào),姓名,年齡,學(xué)歷等復(fù)雜多樣的信息,能夠較清晰,快捷而操作方便的現(xiàn)代化管理系統(tǒng)。弄清了這個(gè)基本概念以后
135、,我們又詳細(xì)理解了老師所講的設(shè)計(jì)要求和注意事項(xiàng),大致確定了總體的設(shè)計(jì)思路,初步提出問(wèn)題的解決方案,以及系統(tǒng)大致設(shè)計(jì)方案和框架,接下來(lái)我們就著手編程。在編程過(guò)程中,先是根據(jù)系統(tǒng)所要求,找出所需要的我們?cè)赾++語(yǔ)言課程中所學(xué)到的知識(shí)點(diǎn)。編完程序,我們?cè)跈C(jī)房進(jìn)行了一次又一次的調(diào)試,找出了其中的錯(cuò)誤,一一糾正,并且修改了其中不太完善的部分,力求做到實(shí)用并且精確。相應(yīng)的解決方法:</p><p> ?。?)首先進(jìn)行需求分析
136、,搞清楚系統(tǒng)功能和任務(wù);</p><p> ?。?)然后在總體設(shè)計(jì)中確定模塊結(jié)構(gòu)、劃分功能模塊,將軟件功能需求分配給所劃分的最單元模塊。確定模塊間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫(kù)模式,確定測(cè)試方法與策略;</p><p> ?。?)在詳細(xì)設(shè)計(jì)中,為每個(gè)模塊確定采用的算法,選擇適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過(guò)程(流程圖)來(lái)描述模塊的詳細(xì)過(guò)程。確定每一模塊采用的數(shù)據(jù)結(jié)構(gòu)和模塊接口的細(xì)節(jié),包括對(duì)系統(tǒng)
137、外部的接口和用戶界面,對(duì)系統(tǒng)內(nèi)部其他模塊的接口;</p><p> ?。?)根據(jù)分析編寫C語(yǔ)言代碼。</p><p> 9.總結(jié)心得及良好建議</p><p> 在本系統(tǒng)的開發(fā)過(guò)程中,由于組是初次開發(fā)軟件,在知識(shí)、經(jīng)驗(yàn)方面都存在著不足。另外,在整個(gè)開發(fā)的過(guò)程中,時(shí)間也比較倉(cāng)促。因此,該系統(tǒng)必然會(huì)存在一些缺陷和不足。因?yàn)閷?duì)職工信息管理的整個(gè)流程不夠熟悉,在需求分析
138、時(shí)未能做到完全滿足用戶的需求。</p><p> 盡管本管理系統(tǒng)存在著很多不足,但其功能全面、易于日后程序更新、數(shù)據(jù)庫(kù)管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點(diǎn)是本管理系統(tǒng)所必需的。通過(guò)開發(fā)這個(gè)系統(tǒng),我組掌握了的項(xiàng)目基本開發(fā)過(guò)程,用到的知識(shí)鞏固了我對(duì)C語(yǔ)言的學(xué)習(xí),但在這次設(shè)計(jì)中的最大收獲并不是掌握這幾門開發(fā)工具的應(yīng)用,而是學(xué)會(huì)了設(shè)計(jì)系統(tǒng)的思維方法。</p><p> 通過(guò)一周
139、的課程設(shè)計(jì),我們對(duì)c++語(yǔ)言知識(shí)掌握了很多,并能將它用以程序編寫中??傊?,在這一周學(xué)到了許多知識(shí),提高了自己的解決實(shí)際問(wèn)題的能力</p><p><b> 10.致謝</b></p><p> 這次C語(yǔ)言的實(shí)習(xí)給我留下了深刻的印象,讓我學(xué)會(huì)了很多僅從書本上學(xué)不到的知識(shí),這將給我未來(lái)的工作提供重大的幫助。實(shí)習(xí)過(guò)程中,讓我鞏固了C語(yǔ)言課程上學(xué)習(xí)的基礎(chǔ)知識(shí),以前只操作過(guò)
140、一些簡(jiǎn)單的程序,從來(lái)沒有這樣編過(guò)完整的程序,實(shí)習(xí)給了自己獨(dú)立編寫程序的機(jī)會(huì)。我覺得自己所學(xué)的東西可能并不多,但是能夠?qū)⑺鼈冞\(yùn)用出來(lái)。在此次實(shí)習(xí)過(guò)程中,很多人熱心的給予我?guī)椭?,首先要特別感謝邵老師給我的指導(dǎo)和幫助,你那富有幽默感的教學(xué)方式,使得整個(gè)課堂的氣氛異常活躍,大家能輕松愉悅的進(jìn)行整個(gè)實(shí)習(xí)課程,同時(shí)使我在學(xué)習(xí)C語(yǔ)言的過(guò)程中也學(xué)到和鞏固了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)較為詳細(xì)的了解。在具體操作中對(duì)所學(xué)的C語(yǔ)言的理論知
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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語(yǔ)言課程設(shè)計(jì)報(bào)告--職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告----職工信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--職工信息管理系統(tǒng)
- 職工信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)——職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)——職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)—職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--職工信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---職工信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告--職工信息管理系統(tǒng)
- c語(yǔ)言課程信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告課程信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告----學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---車票信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---學(xué)生信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---學(xué)生信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論