《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告職工信息管理系統(tǒng)_第1頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告職工信息管理系統(tǒng)_第2頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告職工信息管理系統(tǒng)_第3頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告職工信息管理系統(tǒng)_第4頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告職工信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題 目: 職工信息管理系統(tǒng) 專 業(yè): 數(shù)學(xué)與計(jì)算科學(xué) 班 級: 1009-301 姓 名: 指導(dǎo)教師: 成 績: 二一一年六月一日課程設(shè)計(jì)報(bào)告職工信息管理系統(tǒng)1、研究背景及意義由于現(xiàn)今的職工信息管理非常繁瑣,管理人員付出大量的工作時(shí)間,得到的效率很低。因此為提高工作效率,為了減輕輕單位人工對職工信息進(jìn)行登記,查找的工作,進(jìn)而設(shè)計(jì)出一個(gè)功能更完善,合理,先進(jìn)的職工信息管理系統(tǒng)來管理。開發(fā)此職工信息管理系統(tǒng)軟件,以供教學(xué)人員及操作者進(jìn)行職工管理,方便操作者隨時(shí)添加、查詢、修改職工信息。2、 課程設(shè)計(jì)題目描述和要求對職工信息的管理是每企業(yè)中的重要組成部分,其內(nèi)容較多,為了簡

2、化討論,職工信息主要包括:職工號、姓名、性別、出生年月、學(xué)歷、職務(wù)、工資、地址、電話。系統(tǒng)功能:1)、輸入功能:可以多次次完成多個(gè)職工所有信息2)、瀏覽功能:可以一次性瀏覽職工的所有信息3)、查詢功能:可以按職工號和工資兩種方式查詢4)、修改功能:可以隨時(shí)對職工的信息進(jìn)行修改5)、刪除功能:可以對職工的信息進(jìn)行刪除6)、排序功能:可以按職工號降序排列0)、推出本系統(tǒng)功能模塊分工:李軍 :程序設(shè)計(jì)與信息輸入、瀏覽 陳輝煌:頁面設(shè)計(jì)與信息查詢 曾超群:信息修改陽恩成:信息刪除張琦 :信息排序3、課程設(shè)計(jì)報(bào)告內(nèi)容3.1職工管理系統(tǒng)的理論依據(jù)及算法主要數(shù)據(jù)結(jié)構(gòu):typedef structint nu

3、mber; /*職工號*/char name20; /*姓名*/char sex8; /*性別*/float year; /*出生年月日*/char educat20; /*學(xué)歷*/char duty20; /*職務(wù)*/float wage; /*工資*/char place20; /*住址*/double tel; /*電話*/student; student stu100; /*結(jié)構(gòu)體數(shù)組變量*/各函數(shù)的功能和實(shí)現(xiàn):整個(gè)系統(tǒng)除了主函數(shù)外,另外還有10個(gè)函數(shù),實(shí)現(xiàn)七大功能:輸入功能、顯示功能、查找功能、修改功能、刪除功能、排序功能。各個(gè)函數(shù)的詳細(xì)設(shè)計(jì)說明分別如下:1、 主函數(shù) main()利

4、用無限次循環(huán)for(;)和swithch()實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù)。2、 菜單選擇函數(shù)switch(menu()這是一個(gè)無參函數(shù),主要實(shí)現(xiàn)“功能選擇”的界面,在這個(gè)界面里有顯示系統(tǒng)的七大功能,根據(jù)每個(gè)功能前面的序號進(jìn)行選擇。等執(zhí)行完每一個(gè)函數(shù)功能后,按任一鍵回到主界面也要通過這個(gè)函數(shù)來實(shí)現(xiàn)!3、 輸入記錄函數(shù)int input(student stud,int n)這是一個(gè)無參函數(shù),用來執(zhí)行職工信息的輸入,當(dāng)學(xué)生九類信息全部輸入后,系統(tǒng)提示 “繼續(xù)寫入成績?y/n”,選擇“n”函數(shù)結(jié)束。4、 顯示記錄函數(shù)void display(student stud,in

5、t n)這是一個(gè)不返回值的有參函數(shù),形參為數(shù)組,負(fù)責(zé)對全部職工信息的輸出,不足之處就是不能對職工信息進(jìn)行分頁顯示。5、 查找記錄函數(shù)void search(student stud,int n)這是一個(gè)不返回值的有參函數(shù),形參為數(shù)組,分別實(shí)現(xiàn)按職工號或工資對某個(gè)職工進(jìn)行查找,并顯示所查找到的記錄。6、修改函數(shù)void modify(student stud,int n)這是一個(gè)有參函數(shù),形參為數(shù)組,能將之前輸入的數(shù)據(jù)進(jìn)行修改。7、刪除記錄函數(shù)int delete(student stud,int n)這是一個(gè)有參函數(shù),形參為數(shù)組,先輸入要?jiǎng)h除的職工的職工號,找到后顯示該職工信息,直接進(jìn)行刪除。

6、8、排序函數(shù)void sort(student stud,int n)在student stud這個(gè)結(jié)構(gòu)數(shù)組中按職工號進(jìn)行由大到小排序:void sort(student stud,int n) /*冒泡法排序*/。3.2 流程圖顯示所有職工信息查詢職工信息修改職工信息并保存的信息刪除職工信息按職工號降序排列輸入職工信息系統(tǒng)運(yùn)行結(jié)束退出管理系統(tǒng)a=0a!=0請輸入一個(gè)要操作的菜單項(xiàng)a并根據(jù)a值判斷執(zhí)行的操作輸出相應(yīng)的運(yùn)行結(jié)果職工信息管理系統(tǒng)的main()函數(shù) 3.3、源程序如下:#include /*引用庫函數(shù)*/#include /*輸入輸出函數(shù)*/#include #include typ

7、edef structint number; /*職工號*/char name20; /*姓名*/char sex8; /*性別*/float year; /*出生年月日*/char educat20; /*學(xué)歷*/char duty20; /*職務(wù)*/float wage; /*工資*/char place20; /*住址*/double tel; /*電話*/student; student stu100; /*結(jié)構(gòu)體數(shù)組變量*/int menu() /*菜單函數(shù)*/ char c; do /system(cls); /*運(yùn)行前清屏*/printf(-m e n u-);/*菜單選擇*/

8、printf( 錄入職工信息 );printf( 顯示所有職工信息 );printf( 查詢職工信息 );printf( 修改職工信息并保存 );printf( 刪除職工信息 );printf( 按職工號降序排列 );printf( 退出本系統(tǒng) );printf( *作者:1009301班 完美組合* );printf(-請 選 擇 你 需 要 的 操 作-);printf(=請輸入數(shù)字 09:n);c=getchar(); /*讀入選擇*/ while(c5); return(c-0); /*返回選擇*/ int input(student stud,int n) /*輸入若干條記錄*/ i

9、nt i=0;char sign=y,x10; /*x10為清除多余的數(shù)據(jù)所用*/ while(sign!=n&sign!=n) /*選擇判斷*/ printf( -請輸入職工號-:); /*交互輸入*/scanf(%d,&studn+i.number);printf( -請輸入職工的姓名-:);scanf(%s,&studn+);printf( -請輸入職工的性別-:);scanf(%s,&studn+i.sex);printf( -請輸入職工的出生年月日:);scanf(%f,&studn+i.year);printf( -請輸入職工的學(xué)歷-:);scanf(%s,&studn

10、+cat);printf( -請輸入職工的職務(wù)-:);scanf(%s,&studn+i.duty);printf( -請輸入職工的工資-:);scanf(%f,&studn+i.wage);printf( -請輸入職工的住址-:);scanf(%s,&studn+i.place);printf( -請輸入職工的電話-:);scanf(%lf,&studn+i.tel);gets(x); /*清除多余的輸入*/ printf(%sn,studn+);printf( =提示:繼續(xù)寫入成績?(y/n);scanf(%c,&sign); /*輸入判斷*/i+; return(n

11、+i); void display(student stud,int n) /*顯示所有記錄*/ int i; if(!stud)printf(沒有記錄);elseprintf(-n); /*格式頭*/ printf( 職工號t姓名t性別t生日t學(xué)歷t職務(wù)t工資t住址t電話n); printf(-n);for(i=1;in+1;i+) /*循環(huán)輸入*/printf( %dt,studi-1. number);printf(%st,studi-1. name);printf(%st,studi-1. sex);printf(%6.0f,studi-1. year);printf(%st,stud

12、i-1. educat);printf(%s,studi-1. duty);printf(%8.0ft,studi-1. wage);printf(%st,studi-1. place);printf(%11.0lf,studi-1. tel);printf(n);printf(tttn); void search(student stud,int n) /*查找并顯示一個(gè)記錄*/ int s=0; int i=0; int t=0;printf(按職工號查找請輸入1,按工資查找請輸入2n);scanf(%d,&t);switch(t)/*選擇判斷*/case 1:/*按職工號查找*/prin

13、tf(輸入需要查找職工的職工號:n);scanf(%d,&s);while(studi.number-s)!=0&i提示:對不起,無法找到該職工的信息!n); /*輸入失敗信息*/ return; printf(-n); /*輸出該職工信息*/printf( 職工號:%dn,studn-1. number); printf( 姓名:%sn,studn-1. name);printf( 性別:%sn,studn-1. sex);printf( 出生年月日:%8.0fn,studn-1. year);printf( 學(xué)歷:%sn,studn-1. educat);printf( 職務(wù):%sn,st

14、udn-1. duty);printf( 工資:%fn,studn-1.wage);printf( 住址:%sn,studn-1. place);printf( 電話:%11.0lfn,studn-1. tel);printf(n);break;case 2:/*按姓名查找*/printf(輸入需要查找職工的工資:n);scanf(%d,&s);while(studi.wage-s)!=0&i提示:對不起,無法找到該職工的信息!n); /*輸入失敗信息*/ return; printf(-n); /*輸出該職工信息*/printf( 職工號:%dn,studn-1. number); prin

15、tf( 姓名:%sn,studn-1. name);printf( 性別:%sn,studn-1. sex);printf( 出生年月日:%8.0fn,studn-1. year);printf( 學(xué)歷:%sn,studn-1. educat);printf( 職務(wù):%sn,studn-1. duty);printf( 工資:%fn,studn-1.wage);printf( 住址:%sn,studn-1. place);printf( 電話:%11.0lfn,studn-1. tel);printf(n);break;void modify(student stud,int n) /*修改職

16、工信息*/int s=0;int i=0;printf(輸入需要修改職工信息的職工號:n);scanf(%d,&s);while(studi.number-s)!=0&i提示:對不起,無該職工的信息n); /*輸入失敗信息*/ return;printf(-該職工的信息-n); /*格式頭*/ printf(-n); /*格式頭*/ printf( 職工號t姓名t性別t生日t學(xué)歷t職務(wù)t工資t住址t電話n); printf(-n);printf(-n);printf( %dt,studi-1. number);printf(%st,studi-1. name);printf(%st,studi

17、-1. sex);printf(%6.0f,studi-1. year);printf(%st,studi-1. educat);printf(%s,studi-1. duty);printf(%8.0ft,studi-1. wage);printf(%st,studi-1. place);printf(%11.0lf,studi-1. tel);printf(n);printf(請輸入職工號:); /*交互輸入*/scanf(%d,&studn+i.number);printf(請輸入職工的姓名:);scanf(%s,&studn+);printf(請輸入職工的性別:);scan

18、f(%s,&studn+i.sex);printf(請輸入職工的出生年月日:);scanf(%f,&studn+i.year);printf(請輸入職工的學(xué)歷:);scanf(%s,&studn+cat);printf(請輸入職工的職務(wù):);scanf(%s,&studn+i.duty);printf(請輸入職工的工資:);scanf(%f,&studn+i.wage);printf(請輸入職工的住址:);scanf(%s,&studn+i.place);printf(請輸入職工的電話:);scanf(%lf,&studn+i.tel);printf(%sn,studn+

19、);int delete(student stud,int n) /*按職工號查找,刪除一條記錄*/ int s=0; int i=0,j; printf(輸入需要?jiǎng)h除職工的職工號:n); /*交互式問尋*/ scanf(%d,&s);while(studi.number-s)!=0&i提示:對不起,無法找到該職工號n); /*返回失敗信息*/ return(n); for(j=i;j提示:已成功刪除!n); /*返回成功信息*/return(n-1); void sort(student stud,int n) /*按職工號排序*/ int i,j,k; float s;char t20;

20、for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;jn-1-i;j+) if(studj.numberstudj+1.number) k=studj+1.number; studj+1.number=studj.number;studj.number=k;strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t);strcpy(t,studj+1.sex); strcpy(studj+1.sex,studj.sex); strcpy(studj.sex,t);s=studj+1.

21、year; studj+1.year=studj.year; studj. year =s;strcpy(t,studj+1.educat); strcpy(studj+1.educat,cat); strcpy(cat,t);strcpy(t,studj+1.duty); strcpy(studj+1.duty,studj.duty); strcpy(studj.duty,t);s=studj+1.wage; studj+1.wage=studj.wage; studj.wage=s;strcpy(t,studj+1.place); strcpy(stud

22、j+1.place,studj.place); strcpy(studj.place,t);s=studj+1.tel; studj+1.tel =studj.tel; studj. tel=s;printf(-n); /*格式頭*/ printf( 職工號t姓名t性別t生日t學(xué)歷t職務(wù)t工資t住址t電話n); printf(-n);for(i=1;i 輸入信息 顯示所有記錄 查找并顯示一組信息 修改職工信息 按職工號查找,刪除一條記錄 按職工號降序排列 謝謝您的使用!=n); /*結(jié)束程序*/ printf(ttt);system(pause); exit(0); 3.4、算法調(diào)試過程中出現(xiàn)

23、的問題及解決方法整個(gè)的調(diào)試過程中,我遇到的問題可以分為兩大類,一類是輸入錯(cuò)誤,第二類是算法的嚴(yán)密性有問題,對于某個(gè)功能的執(zhí)行,有時(shí)候會(huì)出錯(cuò)。算法調(diào)試過程,大部分的出錯(cuò)都是程序的輸入錯(cuò)誤,這類問題通過上網(wǎng)和組員時(shí)間的討論,容易解決。(1)我在輸入input()函數(shù)后,最后一個(gè)“”忘記加上,導(dǎo)致出現(xiàn)一系列報(bào)錯(cuò):在我加上“”后,次錯(cuò)誤立即消失。(2)還有一個(gè)典型的錯(cuò)誤就是對于已定義的數(shù)組變量,卻在調(diào)用的時(shí)候輸錯(cuò)名稱:當(dāng)我把上述bug中“wate”改為“wage”后,便不再有此類錯(cuò)誤。(3)對于定義為double的變量,在輸出時(shí)卻使用整型十進(jìn)制格式輸出,導(dǎo)致輸出結(jié)果完全偏離預(yù)設(shè),遠(yuǎn)輸入電話號碼為:1527726722,但結(jié)果顯示為-1743718883.5、程序運(yùn)行結(jié)果 本程序的菜單界面如下: 信息輸入界面:信息顯示界面:信息查詢界面:信息修改界面信息刪除界面4、課程設(shè)計(jì)心得體會(huì)通過這次課程設(shè)計(jì)的學(xué)習(xí),我了解到了c程序設(shè)計(jì)教程1這門功課對于我們大學(xué)生的重要性和學(xué)校開設(shè)課程設(shè)計(jì)課的重要意義。課程設(shè)計(jì)總的來說是要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論