計算器類面向?qū)ο蟪绦蛟O(shè)計大作業(yè)_第1頁
計算器類面向?qū)ο蟪绦蛟O(shè)計大作業(yè)_第2頁
計算器類面向?qū)ο蟪绦蛟O(shè)計大作業(yè)_第3頁
計算器類面向?qū)ο蟪绦蛟O(shè)計大作業(yè)_第4頁
計算器類面向?qū)ο蟪绦蛟O(shè)計大作業(yè)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計大作業(yè)-計算器類、學(xué)校人員管理系統(tǒng)學(xué) 院 名 稱 數(shù)學(xué)與系統(tǒng)科學(xué)學(xué)院 專業(yè)班級 信息與計算科學(xué)2013-2班 學(xué)生姓名 陳濤 學(xué) 號 201301050904 指 導(dǎo) 教 師 孫紅梅 完成時間:2015 年 7月 1 日山 東 科 技 大 學(xué)大 作 業(yè) 任 務(wù) 書一、 題目:計算器類二、 原始資料:面向?qū)ο蟪绦蛟O(shè)計大作業(yè)要求和任務(wù)書三、 應(yīng)解決下列各主要問題:計算器類:設(shè)計一個計算器類模板,適用各類型表達(dá)式的“+、-、/” 數(shù)學(xué)四則運(yùn)算以及“、=、=、=、!=、=”等關(guān)系運(yùn)算。數(shù)學(xué)四則運(yùn)算表達(dá)式中可含有加、減、乘、除運(yùn)算符以及各型數(shù)據(jù)的運(yùn)算對象。程序可以直接輸入數(shù)學(xué)表達(dá)式以及關(guān)

2、系表達(dá)式,不需要任何轉(zhuǎn)換,就可以直接輸出數(shù)學(xué)四則運(yùn)算和邏輯運(yùn)算的結(jié)果。并且操作簡單、界面清晰、靈活、實用、方便等。(系統(tǒng)功能可充分自由發(fā)揮)。擴(kuò)展功能:三角運(yùn)算、進(jìn)制轉(zhuǎn)換、開方、冪指數(shù)等。問題描述設(shè)計一個簡單計算器。用戶輸入四則運(yùn)算表達(dá)式,程序輸出正確結(jié)果。當(dāng)表達(dá)式中數(shù)據(jù)格式或運(yùn)算符輸入錯誤,程序給出錯誤信息。要求:(1)表達(dá)式的左、右操作數(shù)可以為整數(shù)或?qū)崝?shù)。(2)運(yùn)算符限制為+,-,*,/(3)輸入表達(dá)式允許有前導(dǎo)空格,允許在運(yùn)算符前后嵌入空格。(4)檢測表達(dá)式由以下函數(shù)完成:void check(char *input, int &a, double &y, int &op, char *

3、 &err);其中參數(shù)意義如下: input 輸入表達(dá)式的字符串。x 返回表達(dá)式的左操作數(shù)轉(zhuǎn)換結(jié)果數(shù)值。此題為簡單起見,把數(shù)據(jù)統(tǒng)一轉(zhuǎn)換成double類型。y 返回表達(dá)式的右操作數(shù)轉(zhuǎn)換結(jié)果數(shù)值。op 返回對運(yùn)算式的判斷結(jié)果。若輸入表達(dá)式左、右操作數(shù)和運(yùn)算符都正確,則返回值為1、2、3、4,分別表示做+、-、*、/運(yùn)算。若返回-1,表示左操作數(shù)錯;若返回-2,表示右操作數(shù)錯;若返回-3,表示操作符錯。err 返回顯示錯誤信息的字符串。附錄(源程序代碼)#include iostream#include stringusing namespace std;void check(char *input

4、, double &x, double &y, int &op, char * &err);double chage(char *ch);int main() double x,y; int op; char input40,*err; double result; gets(input); check(input,x,y,op,err); if(op0) couterrendl; return 0; switch(op) case 1: result=x+y; break; case 2: result=x-y; break; case 3: result=x*y; break; case

5、4: result=x/y; break; coutinput=result=0&inputj+1=0&inputj1) err=左操作數(shù)錯誤!; op=-1; return; j+; k=0; while(i=0&inputj+1=0&inputj1) err=右操作數(shù)錯誤!; op=-2; return; j+; k=0; while(i=0;i-) wre=1; j=0; while(jf-i-1) wre*=10; j+; result+=(chi-0)*wre; for(i=f+1;chfχi+) wre=1; j=0; while(ji-f) wre*=0.1; j+; r

6、esult+=(chi-0)*wre; return result;指導(dǎo)教師評語成績: 指導(dǎo)教師(簽章):2015年 月 日山 東 科 技 大 學(xué)大 作 業(yè) 任 務(wù) 書六、 題目:公司人員工資管理系統(tǒng)七、 原始資料:面向?qū)ο蟪绦蛟O(shè)計大作業(yè)要求和任務(wù)書八、 應(yīng)解決下列各主要問題:公司人員工資管理系統(tǒng):本程序用于管理一個公司的人員工資,所有雇員類(employee)有共性的數(shù)據(jù)成員是:編號、姓名和工資。技術(shù)員類(technician)的數(shù)據(jù)成員包括共性的數(shù)據(jù)成員以及工作時間(每月的)、每小時的工資。銷售員類(salesman)的數(shù)據(jù)成員包括共性的數(shù)據(jù)成員以及銷售額(本月)、提成。經(jīng)理類(manag

7、er)的數(shù)據(jù)成員包括共性的數(shù)據(jù)成員以及月工資。銷售員兼經(jīng)理類(salesmanager)的數(shù)據(jù)成員包括銷售員類和經(jīng)理類的數(shù)據(jù)成員。 九、 設(shè)計說明書應(yīng)附有下列圖紙:無十、 小組分工說明:無 六、命題發(fā)出日期:2015.6.10設(shè)計完成日期:2015.7.10目的與要求本程序用于管理一個公司的人員工資,所有雇員類(employee)有共性的數(shù)據(jù)成員是:編號、姓名和工資。技術(shù)員類(technician)的數(shù)據(jù)成員包括共性的數(shù)據(jù)成員以及工作時間(每月的)、每小時的工資。銷售員類(salesman)的數(shù)據(jù)成員包括共性的數(shù)據(jù)成員以及銷售額(本月)、提成。經(jīng)理類(manager)的數(shù)據(jù)成員包括共性的數(shù)據(jù)成

8、員以及月工資。銷售員兼經(jīng)理類(salesmanager)的數(shù)據(jù)成員包括銷售員類和經(jīng)理類的數(shù)據(jù)成員。問題描述(1) 公司主要有4類人:經(jīng)理、計術(shù)員、銷售員、銷售經(jīng)理。要求存儲這些人 的職工號、姓名、月工資、年齡、性別等信息。(2) 工資的計算方法 a、經(jīng)理:固定月薪為8000元; b、技術(shù)員:工作時間*小時工資(100元每小時); c、銷售員:銷售額*4%提成; d、銷售經(jīng)理:底薪(5000元)+所轄部門銷售額總額*0.5%;(3)輸入員工基本數(shù)據(jù),要求每類人員不能少于2人。(4)實現(xiàn)功能數(shù)據(jù)錄入:輸入各項數(shù)據(jù);數(shù)據(jù)統(tǒng)計:統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理按工資進(jìn)行的冒泡排序

9、;數(shù)據(jù)打?。捍蛴「黝悊T工的數(shù)據(jù)信息;數(shù)據(jù)備份:把各類員工的數(shù)據(jù)信息寫入文件中保存;退出:退出本系統(tǒng)(6)菜單說明 數(shù)據(jù)錄入指通過鍵盤輸入各類員工的各項數(shù)據(jù);數(shù)據(jù)統(tǒng)計指統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額 及銷售額之和;銷售經(jīng)理按工資進(jìn)行的冒泡排序;數(shù)據(jù)打印指按照表格的格式在屏幕上輸出各類員工的信息;數(shù)據(jù)備份指將所有員工的信息保存到文件;退出:結(jié)束程序的運(yùn)行。附錄(源程序代碼)#include#include#include#include#includeusing namespace std;ofstream outfile;const int b=2;const int t=2;const in

10、t sb=2;const int s=4;int wage(int n);void technicianinformatian();void managerinformation();void salesmanagerinformation();void sellerinformation();void total();void maopao();void yejibiao();void sbrank();void excelhead();void excelmiddle();void excelend();void backup_yejibiao();void backup_sbrank()

11、;void backup_technicianinformatian();void backup_managerinformation();void backup_salesmanagerinformation();void backup_sellerinformation();class employeepublic:int nume() return(num);string nam()return(name);char showsex() return(sex);int showage() return(age);protected:int num;string name;char sex

12、;int age;int wage;class manager:public employeepublic:manager() /8000元為經(jīng)理固定月薪wage=8000;int managerwage() return(wage);void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;class technician:public employeepublic:void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coute

13、ndl;coutage;coutendl;coutworktime;coutendl;int get_wage()return (worktime*100); /100元為單位小時工資protected:int worktime;class salesmanager:public employeepublic:salesmanager()allsale=0; void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;int get_wage()return (5000+allsale*0.

14、005); /5000元為銷售經(jīng)理底薪protected:int allsale;class seller:public employeepublic:int bossnume() return(bossnum); int money() return(salesmoney); void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;coutsalesmoney;coutendl;coutbossnum;coutendl; int get_wage() return (salesmone

15、y*0.04);protected:int salesmoney;int bossnum;manager bossb;technician technit;seller salesmans;salesmanager salesbosssb;int salesbosstotalesb=0;salesmanager exchangesb;int exchange; int b=0,t=0,sb=0,s=0;int inputboss()for(int i=0;ib;i+)bossi.set_in(); coutendl;return 0;int inputtechni()for(int j=0;j

16、t;j+)technij.set_in(); coutendl;return 0;int inputsalesman()for(int n=0;ns;n+)salesmann.set_in(); coutendl;return 0;int inputsalesboss()for(int m=0;msb;m+)salesbossm.set_in();return 0;int main ()for(;)cout 小型公司工資管理系統(tǒng)endl;coutendl;cout 請選擇您所需要的操作 endl;cout 數(shù)據(jù)輸入:1,并按回車鍵 endl;cout 數(shù)據(jù)統(tǒng)計:2,并按回車鍵 endl;cou

17、t 數(shù)據(jù)打?。?,并按回車鍵 endl;cout 數(shù)據(jù)備份:4,并按回車鍵 endl;cout 退出系統(tǒng):5,并按回車鍵 endl;coutendl;coutselect;switch(select)case 1: for(;)cout 小型公司工資管理系統(tǒng)endl; coutendl; cout 請選擇您所需要的操作 endl; cout 經(jīng)理數(shù)據(jù)輸入 :1,并按回車鍵 endl; cout 技術(shù)員數(shù)據(jù)輸入 :2,并按回車鍵 endl; cout 銷售員數(shù)據(jù)輸入 :3,并按回車鍵 endl; cout 銷售經(jīng)理數(shù)據(jù)輸入:4,并按回車鍵 endl; cout 返回上一級 :5,并按回車鍵 en

18、dl; coutendl; coutchoice;switch(choice)case 1: inputboss();b+;break;case 2: inputtechni();t+; break;case 3: inputsalesman();s+;break;case 4: inputsalesboss();sb+;break;case 5:break;default:cout輸入有誤,請重新輸入.endl;if(choice=5) break;break;case 2:if(s=0) cout尚未輸入銷售員數(shù)據(jù).endl;if(sb=0) cout尚未輸入銷售經(jīng)理數(shù)據(jù).endl;if(

19、s=0|sb=0) break; total();maopao();yejibiao();sbrank(); break;case 3:cout請等待.endl;if(t!=0|b!=0|sb!=0|s!=0)cout職工基本情況一覽表如下endl;if(t!=0)cout技術(shù)員endl; technicianinformatian(); coutendl;if(b!=0)cout經(jīng)理endl; managerinformation(); coutendl;if(sb!=0)cout銷售經(jīng)理endl; salesmanagerinformation(); coutendl;if(s!=0)co

20、ut銷售員endl; sellerinformation(); coutendl; if(t=0&b=0&sb=0&s=0)cout尚未錄入任何人員數(shù)據(jù).endl;else if(t=0)cout尚未錄入技術(shù)員數(shù)據(jù).endl; if(b=0)cout尚未錄入經(jīng)理數(shù)據(jù).endl; if(sb=0)cout尚未錄入銷售經(jīng)理數(shù)據(jù).endl; if(s=0)cout尚未錄入銷售員數(shù)據(jù).endl;if(t=0|b=0|sb=0|s=0)cout請錄入所需打印數(shù)據(jù) 或 進(jìn)行其他操作endl;break; case 4:if(t=0|b=0|sb=0|s=0)cout人員數(shù)據(jù)輸入尚未完全,請打印確認(rèn)后再備份

21、.endl;break;backup_yejibiao();backup_sbrank(); backup_technicianinformatian(); backup_managerinformation(); backup_salesmanagerinformation(); backup_sellerinformation();cout備份中,請等待.endl;break;case 5:char choice;for(;)coutchoice; if(choice=y) exit(0);else if(choice=n) break;else cout輸入有誤,請重新輸入.endl;

22、default:cout輸入有誤,請重新輸入.endl;return 0;int wage(int n)return(5000+n*0.005);/以下為第二步代碼void total() /求總銷售額for(int n=0;ns;n+)for(int m=0;msb;m+)if(salesmann.bossnume()=salesbossm.nume()salesbosstotalem+=salesmann.money(); break;void maopao() /冒泡法排序for(int n=1;nsb;n+)for(int m=1;msalesbosstotalem)exchanges

23、b=salesbossm-1;salesbossm-1=salesbossm;salesbossm=exchangesb;exchange=salesbosstotalem-1;salesbosstotalem-1=exchange;salesbosstotalem=exchange; void yejibiao() for(int n=0;nsb;n+)cout職工號為salesbossn.nume()銷售經(jīng)理salesbossn.nam()下屬的銷售員業(yè)績?yōu)?endl; coutendl; cout職工號 姓名 銷售額 endl; for(int j=0;js;j+)if(salesman

24、j.bossnume()=salesbossn.nume() coutendl;coutsetw(12)salesmanj.nume()setw(12)salesmanj.nam()setw(14)salesmanj.money()endl; coutendl; cout銷售額總計: setw(28)salesbosstotalenendl; coutendl; void sbrank() cout銷售經(jīng)理按工資排序為:-1;n-)excelmiddle();coutsetw(8)salesbossn.nume()setw(8)salesbossn.nam()setw(6)salesbossn

25、.showsex()setw(8)salesbossn.showage()setw(8)wage(salesbosstotalen)endl;excelend();/以上為第二步代碼/以下為職工信息一覽表代碼void technicianinformatian()excelhead();for(int k=0;kt;k+)excelmiddle();coutsetw(8)technik.nume()setw(8)technik.nam()setw(6)technik.showsex()setw(8)technik.showage()setw(8)technik.get_wage()endl;

26、excelend();void managerinformation() excelhead();for(int k=0;kb;k+) excelmiddle();coutsetw(8)bossk.nume()setw(8)bossk.nam()setw(6)bossk.showsex()setw(8)bossk.showage()setw(8)bossk.managerwage()-1;k-) excelmiddle();coutsetw(8)salesbossk.nume()setw(8)salesbossk.nam()setw(6)salesbossk.showsex()setw(8)s

27、alesbossk.showage()setw(8)wage(salesbosstotalek)endl;excelend();void sellerinformation()coutendl;cout 職工號 姓名 性別 年齡 工資 所屬部門經(jīng)理編號endl;for(int k=0;ks;k+)coutendl;coutsetw(8)salesmank.nume()setw(8)salesmank.nam()setw(6)salesmank.showsex()setw(8)salesmank.showage()setw(8)salesmank.get_wage()setw(16)salesm

28、ank.bossnume()endl;coutendl;/以上為職工信息一覽表代碼/各步表格的表頭,表中和表尾void excelhead() coutendl;cout 職工號 姓名 性別 年齡 工資 endl;void excelmiddle()coutendl;void excelend()coutendl;/各步表格的表頭,表中和表尾/數(shù)據(jù)備份void backup_yejibiao() outfile.open(備份數(shù)據(jù).text,ios:out);for(int n=0;nsb;n+)outfile職工號為salesbossn.nume()銷售經(jīng)理salesbossn.nam()下

29、屬的銷售員業(yè)績?yōu)?endl;outfileendl;outfile職工號 姓名 銷售額 endl; for(int j=0;js;j+)if(salesmanj.bossnume()=salesbossn.nume() outfileendl;outfilesetw(12)salesmanj.nume()setw(12)salesmanj.nam()setw(14)salesmanj.money()endl; outfileendl; outfile銷售額總計: setw(28)salesbosstotalenendl; outfileendl;void backup_sbrank()outf

30、ile銷售經(jīng)理按工資排序為:endl; outfileendl;outfile 職工號 姓名 性別 年齡 工資 -1;n-)outfileendl;outfilesetw(8)salesbossn.nume()setw(8)salesbossn.nam()setw(6)salesbossn.showsex()setw(8)salesbossn.showage()setw(8)wage(salesbosstotalen)endl;outfileendl;void backup_technicianinformatian()outfile職工基本情況一覽表如下endl;outfile技術(shù)員endl;outfileendl;outfile 職工號 姓名 性別 年齡 工資 endl;for(int k=0;kt;k+)outfileendl;outfiles

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論