




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、;.學(xué)院程序設(shè)計工程訓(xùn)練報告C 語言程序設(shè)計 職工工作量統(tǒng)計系統(tǒng)設(shè)計課程名稱姓名院(系)專業(yè)班級學(xué)號指導(dǎo)教師C 語言程序設(shè)計工程訓(xùn)練信息科學(xué)與技術(shù)學(xué)院教務(wù)處制;. .;.目錄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源程序清單11;. .;.1 需求分析設(shè)計職工工作量統(tǒng)計系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作輸入職工工號和完成的產(chǎn)品數(shù)量,允許同一職工有多次輸入對其完成的產(chǎn)品數(shù)量實(shí)現(xiàn)累計。程序按完成數(shù)量對他們排序,并確定
2、他們的名次完成的產(chǎn)品數(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、刪除職工工作量,姓名等信息。;. .;.3 系統(tǒng)設(shè)計3.1 主要結(jié)構(gòu)體#include<iostream.h>#include<string.h>#include<fstream.h>class 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ù),輸入職工的姓名
4、,工號,及工作量。doswitch(p)case '0':char c;. .;.char name20;double much;docout<<"請輸入職工姓名 "<<endl;cin>>name;cout<<"請輸入產(chǎn)品數(shù)量: "<<endl;cin>>much;filej=new ofstream("d:document",ios:ate); *filej<<" 姓名 "<<name<<
5、" 產(chǎn)品數(shù)量 "<<much<<endl; j+;si=new stu(name, much);i+;cout<<"數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎 (y/n)"<<endl; cin>>c;flag2=0;修改工作量函數(shù)此模塊要求修改,刪除工作量的函數(shù)cout<<"請輸入您要增加的職工的姓名:"<<endl;cin>>name;cout<<"請輸入產(chǎn)品數(shù)量 "<<endl;cin>>muc
6、h;filej=new ofstream("d:document",ios:ate); *filej<<" 姓名 "<<name<<" 產(chǎn)品數(shù)量 "<<much<<endl;j+;si=new stu(name, much);i+;docout<<"請輸入您要刪除的職工姓名:"<<endl;cin>>name;for(int h=0;h<i;h+)if(strcmp(name,sh->name)=0)flag
7、3=1;i-;dosh=sh+1;h+;while(h<=i);. .;. cout<<"請輸入您要修改的職工的姓名: "<<endl; cin>>name;for(int h=0;h<i;h+)if(strcmp(name,sh->name)=0)flag2=1;cout<<"請輸入新完成的產(chǎn)品數(shù)量: "<<endl; cin>>mat;sh->much+=mat;cout<<"數(shù)據(jù)添加成功! "查詢模塊函數(shù)此函數(shù)提供查詢職工
8、工作量,及排名的功能doint flag=0;cout<<"請輸入你要查詢的職工姓名"<<endl;cin>>n;for(int j=0;j<i;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout<<"您要查詢的職工是: "<<(*sj).name<<endl; cout<<(*sj).name<<" 的總產(chǎn)品數(shù)量是 "<<(*sj).getsum()<<endl;for(int
9、k=0;k<i;k+)cout<<k+1<<" "<<" 姓名 :"<<" "<<sk->name<<" 總產(chǎn)品數(shù)量:"<<" "<<(*sk).getsum() <<endl;break;case '7':int t;stu b;cout<<"本系統(tǒng)所有職工排名如下:"<<endl;for(int x=0;x<
10、i-1;x+);. .;.t=x;for(int y=x+1;y<i;y+)if(st->getsum()<(sy->getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;3.3 關(guān)鍵函數(shù)流程圖主函數(shù)流程圖:開始輸入工號,姓名工作量統(tǒng)計職工工作量輸出統(tǒng)計結(jié)果結(jié)束;. .;.輸入模塊流程圖開始輸入工號判斷工號是否為零否是輸入工作量i+結(jié)束;. .;.修改模塊函數(shù)流程圖開始輸入欲刪除職工 號不存在判斷工號是否存在存在確認(rèn)刪除將刪掉信息的職工之后的職工依次向前附值結(jié)束;. .;.4.系統(tǒng)調(diào)試及運(yùn)行界面顯示菜單輸入職工信息界面;. .;.輸出職工工作量
11、排名刪除職工信息界面;. .;.添加職工信息界面5.設(shè)計總結(jié)(課程設(shè)計心得與體會)經(jīng)過幾天的C 語言課程設(shè)計,感覺自己收獲不少!這個課程設(shè)計里面主要都是用鏈表, 因?yàn)橐_(dá)到這樣的功能, 使用鏈表相當(dāng)方便, 但不容易理解, 所以在這方面我很了很多的時間看課本和參考課外書,使 C 語言的知識強(qiáng)化了不少。其次,在做課程設(shè)計的過程中, 發(fā)現(xiàn)了平時很多沒有注意到的問題,例如:返回值函數(shù)和不返回值函數(shù)兩者在主函數(shù)中的調(diào)用是不同的 更重要的是,這次課程設(shè)計雖然花了我不少時間, 但正是這些時間,讓我見識到了 C 語言的重要性。由于這是第一次進(jìn)行設(shè)計,寫文檔,難免會寫得不好!請見諒!;. .;.6.程序代碼#i
12、nclude<iostream.h>#include<string.h>#include<fstream.h>class 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();void main()cout<<" 請選擇您需要的操作!"<<endl;cout<<"
13、; 操作: "<<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ù)量查詢&qu
14、ot;<<endl;cout<<"(5) 按職工姓名查詢"<<endl;cout<<"(6) 輸出所有職工的數(shù)據(jù)"<<endl;cout<<" 生產(chǎn)量排名名次"<<endl;cout<<"(7) 按職工生產(chǎn)的總產(chǎn)品數(shù)量查詢排名"<<endl;cout<<" 選擇相關(guān)操作請輸入相對的括號里的阿拉伯?dāng)?shù)字!"<<endl;char p;char w;stu *s50;of
15、stream *file50;int i=0;. .;.int j=0;bool flag2=0;docin>>p;if(p>='0'&&p<='10')flag2=1;elsecout<<" 指令錯誤!請重新輸入:"<<endl;while(flag2=0);doswitch(p)case '0':char c;char name20;double much;docout<<" 請輸入職工姓名"<<endl;cin&g
16、t;>name;cout<<" 請輸入產(chǎn)品數(shù)量:"<<endl;cin>>much;filej=new ofstream("d:document",ios:ate);*filej<<"姓名 "<<name<<" 產(chǎn)品數(shù)量 "<<much<<endl;j+;si=new stu(name, much);i+;cout<<" 數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"<<endl
17、;cin>>c;flag2=0;doif(c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入!"<<endl;cin>>c;elseflag2=1;while(flag2=0);while(c='y');break;case '1':;. .;.char name20;double much;char c;docout<<" 請輸入您要增加的職工的姓名:"<<endl;cin>>
18、;name;cout<<" 請輸入產(chǎn)品數(shù)量"<<endl;cin>>much;filej=new ofstream("d:document",ios:ate);*filej<<"姓名 "<<name<<" 產(chǎn)品數(shù)量 "<<much<<endl;j+;si=new stu(name, much);i+;cout<<" 數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"<<endl;cin&g
19、t;>c;if(c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入!"<<endl;cin>>c;while(c='y');break;case '2':char name20;bool flag3=0;char c;docout<<" 請輸入您要刪除的職工姓名:"<<endl;cin>>name;for(int h=0;h<i;h+)if(strcmp(name,sh->
20、;name)=0)flag3=1;i-;dosh=sh+1;h+;while(h<=i);if(flag3=0)cout<<" 您要求刪除的對象本來就不存在!請檢查輸入的正確性!"cout<<" 要繼續(xù)刪除嗎?(y/n)"<<endl;cin>>c;. .;.if(c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入!"<<endl;cin>>c;while(c='y'
21、);break;case '3':char name20;double mat;flag2=0;char c;docout<<" 請輸入您要修改的職工的姓名:"<<endl;cin>>name;for(int h=0;h<i;h+)if(strcmp(name,sh->name)=0)flag2=1;cout<<" 請輸入新完成的產(chǎn)品數(shù)量:"<<endl;cin>>mat;sh->much+=mat;cout<<" 數(shù)據(jù)添加成功
22、!"if(flag2=0)cout<<" 您要修改的職工本來就不存在!請檢查重新輸入!"<<endl;cout<<" 想繼續(xù)修改嗎(y/n)"<<endl;cin>>c;if(c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入!"<<endl;cin>>c;while(c='y');break;case '4':double t;cha
23、r c;. .;.doint flag1=0;cout<<" 請輸入你要查詢職工的總產(chǎn)品數(shù)量"<<endl;cin>>t;for(int q=0;q<i;q+)if(sq->getsum()=t)flag1=1;cout<<" 您要查詢的職工是:"<<(*sq).name<<endl;if(flag1=0)cout<<" 對不起!您要查詢的職工不存在!"<<endl;cout<<" 您想繼續(xù)查詢嗎?(y/n
24、)"<<endl;cin>>c;if(c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入!"<<endl;cin>>c;while(c='y');break;case '5':char n20;int j=0;char c;doint flag=0;cout<<" 請輸入你要查詢的職工姓名"<<endl;cin>>n;for(int j=0;j<i;
25、j+)if(strcmp(n,(*sj).name)=0)flag=1;cout<<" 您要查詢的職工是:"<<(*sj).name<<endl;cout<<(*sj).name<<"的總產(chǎn)品數(shù)量是"<<(*sj).getsum()<<endl;if(flag=0)cout<<" 對不起 !您要查詢的職工不存在!"<<endl;. .;.cout<<" 您想繼續(xù)查詢嗎?(y/n)"<<
26、endl;cin>>c;if(c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入!"<<endl;cin>>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;k<
27、;i;k+)cout<<k+1<<" "<<" 姓名 :"<<" "<<sk->name<<"總產(chǎn)品數(shù)量:"<<" "<<(*sk).getsum() <<endl;break;case '7':int t;stu b;cout<<" 本系統(tǒng)所有職工排名如下:"<<endl;for(int x=0;x<i-1;x+)t
28、=x;for(int y=x+1;y<i;y+)if(st->getsum()<(sy->getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;if(i=0)cout<<" 管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!". .;.for(int k=0;k<i;k+)cout<<k+1<<" "<<" 姓名 :"<<" "<<sk->name<<" 總產(chǎn)品數(shù)量:&
29、quot;<<" "<<sk->getsum() <<endl;break;case '9':int t;stu b;cout<<" 本系統(tǒng)所以職工總產(chǎn)品數(shù)量排名如下:"<<endl;for(int x=0;x<i-1;x+)t=x;for(int y=x+1;y<i;y+)if(st->much)<(sy->much)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout<<" 管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!"for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45243-2025保健食品中硫胺素、核黃素、吡哆醇、煙酸、煙酰胺和咖啡因的測定
- 【正版授權(quán)】 IEC 60335-2-78:2021/AMD1:2025 EN-FR Amendment 1 - Household and similar electrical appliances - Safety - Part 2-78: Particular requirements for outdoor barbecues
- 勞動合同簡易
- 路燈買賣合同協(xié)議書
- 教育培訓(xùn)機(jī)構(gòu)場地租賃合同
- 地下室出租協(xié)議書
- 施工工程承包合同
- 企業(yè)運(yùn)輸合同個人運(yùn)輸合同
- 經(jīng)銷商銷售合同協(xié)議
- 鐵路貨物的運(yùn)輸合同
- 綜采工作面自動化控制系統(tǒng)培訓(xùn)課件2024
- 充電器電路安裝與調(diào)試
- 分布式光伏高處作業(yè)專項(xiàng)施工方案
- 《冠心病的介入治療》課件
- 浙江省建設(shè)工程錢江杯獎(工程)評審細(xì)則
- 膀胱損傷病人護(hù)理課件
- 中醫(yī)防感冒健康知識講座
- 《土壤與土壤改良》課件
- ISO9001ISO14001ISO45001外部審核資料清單
- 張岱年:《中國文化概論》
- 繪本成語故事:四面楚歌
評論
0/150
提交評論