版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、學院程序設(shè)計工程訓練報告C 語言程序設(shè)計 職工工作量統(tǒng)計系統(tǒng)設(shè)計課程名稱姓名院(系)專業(yè)班級學號指導教師C 語言程序設(shè)計工程訓練信息科學與技術(shù)學院教務處制目錄1需求分析12系統(tǒng)總框圖和功能模塊說明12.1系統(tǒng)總框圖12.2功能模塊說明13系統(tǒng)設(shè)計23.1 主要結(jié)構(gòu)體錯誤 ! 未定義書簽。3.2 主要功能函數(shù)錯誤 ! 未定義書簽。3.3 關(guān)鍵函數(shù)的流程圖74系統(tǒng)調(diào)試85總結(jié)106源程序清單1111 需求分析設(shè)計職工工作量統(tǒng)計系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作輸入職工工號和完成的產(chǎn)品數(shù)量,允許同一職工有多次輸入對其完成的產(chǎn)品數(shù)量實現(xiàn)累計。程序按完成數(shù)量對他們排序,并確定他們的名次完成的產(chǎn)
2、品數(shù)量由多到少的順序,輸出名次、同一名次的職工人數(shù)及他們的工號( 工號由小到大順序輸出 )要求程序用有序鏈表存儲數(shù)據(jù)信息。2 系統(tǒng)總框圖和功能模塊說明2.1系統(tǒng)總框圖職工工作量統(tǒng)計系統(tǒng)輸輸瀏初修退入出覽始改出信信信化信系息息息系息統(tǒng)統(tǒng)圖 1 系統(tǒng)總框圖2.2功能模塊說明1、輸入信息模塊,完成信息錄入功能,把用戶從終端鍵盤輸入的信息(工作量,工號,姓名)保存在系統(tǒng)中。2、瀏覽信息模塊,完成信息輸出功能,把系統(tǒng)中已經(jīng)保存的信息輸出,查看排名等3、初始化系統(tǒng)模塊,完成系統(tǒng)初始化操作。4.輸出模塊,按需求輸出信息。5、退出系統(tǒng)模塊,完成關(guān)閉程序操作。6、修改信息模塊,包括修改或添加或刪除職工工作量,姓
3、名等信息。13 系統(tǒng)設(shè)計3.1 主要結(jié)構(gòu)體#include#include#includeclass stuchar name20;double much,sum;public:stu()stu(char n20,double muc)strcpy(name,n);much=muc;double getsum()sum=much;return sum;friend void main();3.2 主要功能函數(shù)輸入信息函數(shù)此模塊是輸入職工信息模塊的函數(shù),輸入職工的姓名,工號,及工作量。doswitch(p)case 0:char c;2char name20;double much;docout
4、請輸入職工姓名 name;cout請輸入產(chǎn)品數(shù)量: much;filej=new ofstream(d:document,ios:ate); *filej 姓名 name 產(chǎn)品數(shù)量 muchendl;j+;si=new stu(name, much);i+;cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c;flag2=0;修改工作量函數(shù)此模塊要求修改,刪除工作量的函數(shù)cout請輸入您要增加的職工的姓名:name;cout請輸入產(chǎn)品數(shù)量 much;filej=new ofstream(d:document,ios:ate); *filej 姓名 name 產(chǎn)品數(shù)量 muchendl; j+;si=
5、new stu(name, much);i+;docout請輸入您要刪除的職工姓名:name;for(int h=0;hname)=0)flag3=1;i-;dosh=sh+1;h+;while(h=i);3 cout請輸入您要修改的職工的姓名: name;for(int h=0;hname)=0)flag2=1;cout請輸入新完成的產(chǎn)品數(shù)量: mat;sh-much+=mat;cout數(shù)據(jù)添加成功! ;查詢模塊函數(shù)此函數(shù)提供查詢職工工作量,及排名的功能doint flag=0;cout請輸入你要查詢的職工姓名n;for(int j=0;ji;j+)if(strcmp(n,(*sj).nam
6、e)=0)flag=1;cout您要查詢的職工是: (*sj).nameendl; cout(*sj).name 的總產(chǎn)品數(shù)量是 (*sj).getsum()endl;for(int k=0;ki;k+)coutk+1 姓名 : name 總產(chǎn)品數(shù)量: (*sk).getsum() endl;break;case 7:int t;stu b;cout本系統(tǒng)所有職工排名如下:endl;for(int x=0;xi-1;x+)4t=x;for(int y=x+1;ygetsum()getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;3.3 關(guān)鍵函數(shù)流程圖主函數(shù)流程圖:開
7、始輸入工號,姓名工作量統(tǒng)計職工工作量輸出統(tǒng)計結(jié)果結(jié)束5輸入模塊流程圖開始輸入工號判斷工號是否為零否是輸入工作量i+結(jié)束6修改模塊函數(shù)流程圖開始輸入欲刪除職工 號不存在判斷工號是否存在存在確認刪除將刪掉信息的職工之后的職工依次向前附值結(jié)束74.系統(tǒng)調(diào)試及運行界面顯示菜單輸入職工信息界面8輸出職工工作量排名刪除職工信息界面9添加職工信息界面5.設(shè)計總結(jié)(課程設(shè)計心得與體會)經(jīng)過幾天的C 語言課程設(shè)計,感覺自己收獲不少!這個課程設(shè)計里面主要都是用鏈表, 因為要達到這樣的功能, 使用鏈表相當方便, 但不容易理解, 所以在這方面我很了很多的時間看課本和參考課外書,使 C 語言的知識強化了不少。其次,在做
8、課程設(shè)計的過程中, 發(fā)現(xiàn)了平時很多沒有注意到的問題,例如:返回值函數(shù)和不返回值函數(shù)兩者在主函數(shù)中的調(diào)用是不同的 更重要的是,這次課程設(shè)計雖然花了我不少時間, 但正是這些時間,讓我見識到了 C 語言的重要性。由于這是第一次進行設(shè)計,寫文檔,難免會寫得不好!請見諒!106.程序代碼#include#include#includeclass stuchar name20;double much,sum;public:stu()stu(char n20,double muc)strcpy(name,n);much=muc;double getsum()sum=much;return sum;frien
9、d void main();void main()cout 請選擇您需要的操作!endl;cout 操作: endl;cout(0) 職工數(shù)據(jù)錄入 endl;cout(1) 增加職工人員 endl;cout(2) 刪除職工人員 endl;cout(3) 新完成的需要添加的產(chǎn)品數(shù)量數(shù)據(jù)endl;cout 查詢: endl;cout(4) 按總產(chǎn)品數(shù)量查詢endl;cout(5) 按職工姓名查詢endl;cout(6) 輸出所有職工的數(shù)據(jù)endl;cout 生產(chǎn)量排名名次endl;cout(7) 按職工生產(chǎn)的總產(chǎn)品數(shù)量查詢排名endl;cout 選擇相關(guān)操作請輸入相對的括號里的阿拉伯數(shù)字!p;if
10、(p=0&p=10)flag2=1;elsecout 指令錯誤!請重新輸入:endl;while(flag2=0);doswitch(p)case 0:char c;char name20;double much;docout 請輸入職工姓名name;cout 請輸入產(chǎn)品數(shù)量:much;filej=new ofstream(d:document,ios:ate);*filej姓名 name 產(chǎn)品數(shù)量 muchendl;j+;si=new stu(name, much);i+;cout 數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c;flag2=0;doif(c!=y&c!=n)cout 指令錯誤!請重
11、新輸入!c;elseflag2=1;while(flag2=0);while(c=y);break;case 1:12char name20;double much;char c;docout 請輸入您要增加的職工的姓名:name;cout 請輸入產(chǎn)品數(shù)量much;filej=new ofstream(d:document,ios:ate);*filej姓名 name 產(chǎn)品數(shù)量 muchendl;j+;si=new stu(name, much);i+;cout 數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c;if(c!=y&c!=n)cout 指令錯誤!請重新輸入!c;while(c=y);brea
12、k;case 2:char name20;bool flag3=0;char c;docout 請輸入您要刪除的職工姓名:name;for(int h=0;hname)=0)flag3=1;i-;dosh=sh+1;h+;while(h=i);if(flag3=0)cout 您要求刪除的對象本來就不存在!請檢查輸入的正確性!;cout 要繼續(xù)刪除嗎?(y/n)c;13if(c!=y&c!=n)cout 指令錯誤!請重新輸入!c;while(c=y);break;case 3:char name20;double mat;flag2=0;char c;docout 請輸入您要修改的職工的姓名:n
13、ame;for(int h=0;hname)=0)flag2=1;cout 請輸入新完成的產(chǎn)品數(shù)量:mat;sh-much+=mat;cout 數(shù)據(jù)添加成功!;if(flag2=0)cout 您要修改的職工本來就不存在!請檢查重新輸入!endl;cout 想繼續(xù)修改嗎(y/n)c;if(c!=y&c!=n)cout 指令錯誤!請重新輸入!c;while(c=y);break;case 4:double t;char c;14doint flag1=0;cout 請輸入你要查詢職工的總產(chǎn)品數(shù)量t;for(int q=0;qgetsum()=t)flag1=1;cout 您要查詢的職工是:(*sq
14、).nameendl;if(flag1=0)cout 對不起!您要查詢的職工不存在!endl;cout 您想繼續(xù)查詢嗎?(y/n)c;if(c!=y&c!=n)cout 指令錯誤!請重新輸入!c;while(c=y);break;case 5:char n20;int j=0;char c;doint flag=0;cout 請輸入你要查詢的職工姓名n;for(int j=0;ji;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout 您要查詢的職工是:(*sj).nameendl;cout(*sj).name的總產(chǎn)品數(shù)量是(*sj).getsum()endl;if
15、(flag=0)cout 對不起 !您要查詢的職工不存在!endl;15cout 您想繼續(xù)查詢嗎?(y/n)c;if(c!=y&c!=n)cout 指令錯誤!請重新輸入!c;while(c=y);break;case 6:cout 本系統(tǒng)所有職工數(shù)據(jù)如下:endl;if(i=0)cout 管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除! endl; for(int k=0;ki;k+)coutk+1 姓名 : name總產(chǎn)品數(shù)量: (*sk).getsum() endl;break;case 7:int t;stu b;cout 本系統(tǒng)所有職工排名如下:endl;for(int x=0;xi-1;x
16、+)t=x;for(int y=x+1;ygetsum()getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;if(i=0)cout 管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!;16for(int k=0;ki;k+)coutk+1 姓名 : name 總產(chǎn)品數(shù)量: getsum() endl;break;case 9:int t;stu b;cout 本系統(tǒng)所以職工總產(chǎn)品數(shù)量排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ymuch)much)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=
17、0)cout 管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!;for(int k=0;ki;k+)coutk+1 姓名 : name 產(chǎn)品數(shù)量: getsum() endl;break;cout 您想繼續(xù)進行其他操作嗎?(y/n)w;17if(w!=y&w!=n)cout 指令錯誤!請重新輸入!endl;elseflag4=1;while(flag4=0);if(w=y)cout 請輸入操作代碼: (0)職工數(shù)據(jù)錄入; (1) 增加職工人員; (2) 刪除職工人員 ; (3) 新完成需要添加的產(chǎn)品數(shù)量數(shù)據(jù) ; (4)按總產(chǎn)品數(shù)量查詢 ; (5) 按職工姓名查詢 ; (6)輸出所有職工的數(shù)據(jù) ; (7) 按職工生產(chǎn)的總產(chǎn)品數(shù)量查詢排名 p;while(w=y);for(int x=0;xi;x+)delete s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蒸汽發(fā)生器課程設(shè)計緒論
- 道路施工課程設(shè)計記錄
- 鋼結(jié)構(gòu)課程設(shè)計梁柱
- 谷物分離裝置課程設(shè)計
- 語言游戲小班課程設(shè)計
- 逃生應急演練課程設(shè)計
- 排球健身課程設(shè)計計劃
- 勞動合同續(xù)簽對未來工作規(guī)劃的建議
- 土地承包合同變更法人流程圖
- 二零二五年度老人財產(chǎn)分割及養(yǎng)老保障計劃合同
- 美的穩(wěn)健增長法閱讀札記
- DB11∕501-2017 大氣污染物綜合排放標準
- 四川省住宅設(shè)計標準
- 建筑幕墻物理性能分級
- 河南省2024年道法中考熱點備考重難專題:發(fā)展航天事業(yè)建設(shè)航天強國(課件)
- 臨床診療規(guī)范與操作指南制度
- YB-T6115-2023《焦爐煤氣脫硫廢液干法制酸技術(shù)規(guī)范》
- 新員工入職培訓測試題附有答案
- Q-GDW 738-2012 配電網(wǎng)規(guī)劃設(shè)計技術(shù)導則及編制說明
- 經(jīng)編結(jié)構(gòu)與編織原理課件
- 2023年礦井應急救援理論考試試題及答案
評論
0/150
提交評論