資源描述:
《c語(yǔ)言職工信息管理系統(tǒng)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、目????????錄一、課程設(shè)計(jì)目的……………………………………………………3二、設(shè)計(jì)題目分析……………………………………………………32.1題目簡(jiǎn)介………………………………………………………?32.2設(shè)計(jì)要求………………………………………………………?3三、課程設(shè)計(jì)內(nèi)容……………………………………………………33.1總體設(shè)計(jì)………………………………………………………?33.2詳細(xì)設(shè)計(jì)………………………………………………………?43.3調(diào)試與測(cè)試……………………………………………………?12四、設(shè)計(jì)心得與總結(jié):………………………………………………13
2、五、附錄(完整源程序清單)?…………………………………………14??一、課程設(shè)計(jì)目的通過(guò)親自設(shè)計(jì)程序,可以令我們熟悉c語(yǔ)言操作,更熟練的掌握c語(yǔ)句。初步體會(huì)編程的過(guò)程,為將來(lái)的程序深入學(xué)習(xí)打下基礎(chǔ)和培養(yǎng)興趣。二、設(shè)計(jì)題目分析2.1?題目簡(jiǎn)介可以向文件中寫(xiě)入、刪除、添加職工信息,也可以從文件中導(dǎo)出來(lái)瀏覽2.2?設(shè)計(jì)要求職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù))。試設(shè)計(jì)職工信息管理系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作。職工信息錄入功能(職工信息用文件保存)--輸入職工信息瀏覽功能?--輸出查詢和排序功能:(至少
3、一種查詢方式)??--算法??????按職工號(hào)查詢??????按學(xué)歷查詢等職工信息刪除、添加功能三、課程設(shè)計(jì)內(nèi)容?????3.2?詳細(xì)設(shè)計(jì):???1、主函數(shù):main() 顯示系統(tǒng)工作菜單,羅列該系統(tǒng)所有功能。先聲明所有將會(huì)調(diào)用到的函數(shù)名。再運(yùn)用選擇函數(shù)switch即可根據(jù)使用者所輸入的功能代號(hào)進(jìn)入對(duì)應(yīng)的功能程序。亮點(diǎn):定義一個(gè)全局指針變量*p和全局變量a。其中a表示當(dāng)前系統(tǒng)中職工人數(shù),p指向a的地址,追蹤人數(shù)變化,這樣在添加或者刪除導(dǎo)致人數(shù)變化后,瀏覽函數(shù)display()能夠正確顯示出當(dāng)前人數(shù)的職工信息。宏定義define??N指定首次輸入的職
4、工人數(shù),可根據(jù)不同需要隨時(shí)更改。???????????3、保存函數(shù):void?save(int?m) 定義文件指針fp,用fopen"只寫(xiě)"打開(kāi)指定在D盤的“d://bbb.txt”文本文件。首先用if語(yǔ)句判斷文件是否打開(kāi)成功,若fopen返回值不為0,則可繼續(xù)下面操作。用for循環(huán)通過(guò)fprintf語(yǔ)句將結(jié)構(gòu)數(shù)組em中的內(nèi)容寫(xiě)入保存在D盤的文本文件里面。形參m指需要寫(xiě)入文件的職工人數(shù)。最后關(guān)閉文件。????????????4、導(dǎo)出函數(shù):void?load(int?b)????首先判斷fopen"只讀"打開(kāi)“d://bbb.txt”是否成功,若其返
5、回值不為零,繼續(xù)下面操作。用for循環(huán)通過(guò)fscanf語(yǔ)句將文件中的職工信息取出放到em結(jié)構(gòu)數(shù)組里面。形參b指需要導(dǎo)出的職工人數(shù)。最后關(guān)閉文件。??????????5、瀏覽函數(shù)void?display(int?a)???聲明整形變量i和b,其中i記錄輸出的職工序數(shù),b用來(lái)接收調(diào)用瀏覽函數(shù)時(shí)所傳遞過(guò)來(lái)的實(shí)參,接著將其值傳遞給導(dǎo)出函數(shù)load(b),使得導(dǎo)出的職工人數(shù)與瀏覽的職工人數(shù)保持一致。通過(guò)調(diào)用load函數(shù)后(即給em數(shù)組附值),用for循環(huán)輸出每個(gè)職工的各種信息。??8、按姓名查詢void?search_name()????聲明整形變量i和字符形
6、數(shù)組name[20],調(diào)用導(dǎo)出函數(shù)load(*p),用scanf語(yǔ)句輸入要查詢的職工名字(字符串)放在數(shù)組name里面。用for循環(huán),循環(huán)主體是先判斷em.name中是否有輸入的職工姓名,如果有,用printf語(yǔ)句輸出與職工名字相對(duì)應(yīng)的該職工所有信息,再跳出循環(huán);如果沒(méi)有,輸出“查無(wú)此人”,并調(diào)用search()返回查詢菜單。?流程圖同上?9、按學(xué)歷查詢void?search_xueli()????聲明整形變量i,k=0,char形數(shù)組xueli[20]。調(diào)用導(dǎo)出函數(shù)load(*P),用scanf語(yǔ)句輸入要查詢的職工學(xué)歷(字符串)放在數(shù)組xueli里
7、面??紤]到與前兩種查詢方式不一樣的是,可能有多個(gè)職工具有相同的學(xué)歷,所以循環(huán)主體較之前稍有變化。即在判斷并執(zhí)行第一次后不用break,而是繼續(xù)循環(huán),直到找出所有該學(xué)歷的職工。為解決輸入錯(cuò)誤而提示“查無(wú)此人”的問(wèn)題,就需要再寫(xiě)一段for循環(huán)代碼,通過(guò)計(jì)量數(shù)k記錄循環(huán)的次數(shù),若直到循環(huán)到最后一次仍無(wú)結(jié)果輸出,則表示輸入錯(cuò)誤,這時(shí)用printf輸出“查無(wú)此人”,并調(diào)用search()返回查詢菜單。?流程圖同上?10、,刪除函數(shù)void?del(int?*b)????聲明整形變量i,j,t,m,a和char形數(shù)組name[20]。其中給a附初始值a=*b,表
8、示當(dāng)前職工人數(shù)。首先調(diào)用瀏覽函數(shù)display(a),顯示所有職工信息,便于使用者審閱需刪除的對(duì)象。用pri