软件工程个人作业03
生活随笔
收集整理的這篇文章主要介紹了
软件工程个人作业03
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
設(shè)計(jì)思想:
利用結(jié)果判斷,若錯(cuò)誤則輸出“錯(cuò)誤!”
正確則輸出“正確!”同時(shí)進(jìn)行計(jì)數(shù)!
程序源代碼:
?
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; void Out(int x,int x0,int y,int y0,int z,int z0,int &i,int j,int n,int m0,int &j0){switch(z0){//判斷整數(shù)或分?jǐn)?shù)case 0:{int answer,answer0;switch(z){//運(yùn)算法則判斷case 0:{answer=x+y;if(j==2){if(answer>=0){cout<<n<<" ("<<x<<")"<<" + "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}}else{i--;}}else{cout<<n<<" ("<<x<<")"<<" + "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}}break;}case 1:{answer=x-y;if(j==2){if(answer>=0){cout<<n<<" ("<<x<<")"<<" - "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}}else{i--;}}else{cout<<n<<" ("<<x<<")"<<" - "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}}break;}case 2:{answer=x*y;cout<<n<<" ("<<x<<")"<<" * "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}break;}case 3:if(y!=0){//防止出現(xiàn)除數(shù)為零的情況if(m0==2){if(x%y==0)//余數(shù)判斷(該操作可能會(huì)降低除法概率,,) {answer=x/y;cout<<n<<" ("<<x<<")"<<" / "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}}elsei--;}if(m0==1){cout<<n<<" ("<<x<<")"<<" / "<<"("<<y<<")"<<" =";}}elsei--;break;}break;}case 1:{char answer0[8];char answer[8];int mu,zi,q;if(x0!=0&&y0!=0){switch(z){//運(yùn)算法則判斷case 0:{mu=x0*y0;zi=x*y0+y*x0;if(mu>zi){for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}else{for(q=mu;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" + "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}break;}case 1:{mu=x0*y0;zi=x*y0-y*x0;for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" - "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}break;}case 2:{mu=x0*y0;zi=x*y;for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" * "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正確!"<<endl;j0++;}else{cout<<" 錯(cuò)誤!"<<endl;}break;}case 3:{if(y!=0)//防止出現(xiàn)除數(shù)為零的情況 {mu=x0*y;zi=x*y0;if(mu>zi){for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}else{for(q=mu;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" / "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正確!"<<endl;(j0)++;}else{cout<<" 錯(cuò)誤!"<<endl;}}elsei--;break;}}}elsei--;break;}} } void Judje(int &x,int &x0)//保證真分?jǐn)?shù)以及最簡(jiǎn)分?jǐn)?shù) {int m,i1;if(x>x0){//保證x<x0即保證為真分?jǐn)?shù)m=x;x=x0;x0=m;}for(i1=x0;i1>1;i1--){//保證為最簡(jiǎn)分?jǐn)?shù)if(x%i1==0&&x0%i1==0){x=x/i1;x0=x0/i1;}} } void main(){int x,x0,y,y0,z,z0,j,n,n0,m,m0=0;//定義變量int num,max,min;int j0=0;cout<<"請(qǐng)輸入隨機(jī)數(shù)范圍(先最小值,后最大值)"<<endl;cin>>min;cin>>max;cout<<"請(qǐng)輸入加減是否有負(fù)數(shù):1、有;2、沒(méi)有"<<endl;cin>>j;cout<<"請(qǐng)輸入是否要有乘除法:1、有;2、沒(méi)有"<<endl;cin>>m;if(m==1){cout<<"請(qǐng)輸入除法是否有余數(shù)(分?jǐn)?shù)不做區(qū)別):1、有;2、沒(méi)有"<<endl;cin>>m0;}cout<<"請(qǐng)輸入需要打印的題目數(shù)量(大于等于1):"<<endl;cin>>num;int *a=new int[num*5];//定義數(shù)組存儲(chǔ)運(yùn)算srand(time(0));//定義時(shí)間種子int i=0;if(min<0&&j==2)min=0;x = rand()%(max-min+1)+min;//產(chǎn)生隨機(jī)數(shù)x0 = rand()%(max-min+1)+min;y = rand()%(max-min+1)+min;y0 = rand()%(max-min+1)+min;if(m==1)z = rand()%(3-0+1)+0;if(m==2)z = rand()%(1-0+1)+0;z0 = rand()%(1-0+1)+0;//用于判斷整數(shù)運(yùn)算與分?jǐn)?shù)運(yùn)算} Judje(x,x0);Judje(y,y0);cout<<"序號(hào)"<<endl;n=1;Out(x,x0,y,y0,z,z0,i,j,n,m0,j0);a[0]=x;a[1]=x0;a[2]=y;a[3]=y0;a[4]=z;for(i=1;i<num;i++)//利用FOR循環(huán)進(jìn)行剩余輸出 {n=i+1;n0=i*5;x = rand()%(max-min+1)+min;//產(chǎn)生隨機(jī)數(shù)x0 = rand()%(max-min+1)+min;y = rand()%(max-min+1)+min;y0 = rand()%(max-min+1)+min;if(m==1)z = rand()%(3-0+1)+0;//運(yùn)算符if(m==2)z = rand()%(1-0+1)+0;z0 = rand()%(1-0+1)+0;//用于判斷整數(shù)運(yùn)算與分?jǐn)?shù)運(yùn)算} Judje(x,x0);Judje(y,y0);a[n0]=x;a[n0+1]=x0;a[n0+2]=y;a[n0+3]=y0;a[n0+4]=z;if(x!=x0&&y!=y0&&x0!=1&&y0!=1){//防止出現(xiàn)在x=x0時(shí)輸出依舊為x/x0格式以及分母為一的情況if(a[n0]!=a[n0-5]||a[n0]!=a[n0-4]||a[n0]!=a[i-3]||a[n0]!=a[n0-2]||a[n0]!=a[n0-1])//題目避免重復(fù) {Out(x,x0,y,y0,z,z0,i,j,n,m0,j0);}}elsei--;}cout<<"共答對(duì)"<<j0<<"道題目!"<<endl;delete []a; }?
運(yùn)行結(jié)果截圖:
周活動(dòng)總結(jié)表
尚曉朋 ? ?2016/3/26
| ? | 聽(tīng)課 | 代碼 | 讀書(shū) | 總計(jì) |
| 星期一 | 100min | 42行 | 構(gòu)建之法第3章 | 三小時(shí)20分鐘 |
| 星期二 | ? | ? | ? | ? |
| 星期三 | ? | 45行 | ? | 兩個(gè)小時(shí) |
| 星期四 | ? | ? | ? | ? |
| 星期五 | ? | 30行 | ? | 兩個(gè)小時(shí) |
| 星期六 | ? | ? | ? | 五個(gè)小時(shí)30分鐘 |
| 總計(jì) | 100min | ? | ? | 12小時(shí)50分鐘 |
時(shí)間記錄日志
| 日期 | 開(kāi)始時(shí)間 | 結(jié)束時(shí)間 | 活動(dòng) | 備注 |
| 3.21 | 8:00 19:25 | 9:50 21:05 | 聽(tīng)課 寫(xiě)代碼 | 上課 寫(xiě)代碼,理思路 |
| 3.23 | 19:15 | 21:15 | 寫(xiě)代碼刪代碼 | 兩個(gè)小時(shí) |
| 3.25 | 19:35 | 21:30 | 寫(xiě)代碼,改錯(cuò) | 兩個(gè)小時(shí) |
| 3.26 | 14:20 19:00 | 17:25 21:30 | 寫(xiě)程序 | 五個(gè)小時(shí)30分鐘 |
缺陷記錄日志
| 日期 | 編號(hào) | 類型 | 引入階段 | 排除階段 | 修復(fù)時(shí)間 | 修復(fù)缺陷 |
| 3.21 | 1 | ? | 編碼 | 編譯 | 30分鐘 | ? |
| 修改了課上沒(méi)做好的部分并完成了課堂測(cè)試 | ||||||
| 3.26 | 2 | ? | 編碼 | 編譯 | 一直被這個(gè)問(wèn)題卡住 | ? |
| 對(duì)分?jǐn)?shù)運(yùn)算結(jié)果判定時(shí)出現(xiàn)錯(cuò)誤! | ||||||
附錄:
關(guān)于多位數(shù)的運(yùn)算,實(shí)現(xiàn)了多位數(shù)計(jì)算以及對(duì)結(jié)果的判斷,但是無(wú)法移植到原程序中。
源代碼:
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; void Duo(int min,int max,int &answer) {int a,b;a=rand()%(max-min+1)+min;b=rand()%(3-0+1)+0;switch(b){case 0:{answer=answer+a;cout<<"+"<<a<<")";break;}case 1:{answer=answer-a;cout<<"-"<<a<<")";break;}case 2:{answer=answer*a;cout<<"*"<<a<<")";break;}case 3:{answer=answer/a;cout<<"/"<<a<<")";break;}}} void main() {int answer;int min,max;srand(time(0));//定義時(shí)間種子cout<<"輸入范圍下界與范圍上界:"<<endl;cin>>min>>max;int x,w;x=rand()%(max-min+1)+min;answer=x;w=rand()%(10-1+1)+1;for(int i=1;i<=w;i++){cout<<"(";}cout<<x;for(int i=1;i<=w;i++){Duo(min,max,answer);}cout<<"="<<answer<<endl; }(2016.3.27)
?
轉(zhuǎn)載于:https://www.cnblogs.com/dawn-sky/p/5323172.html
總結(jié)
以上是生活随笔為你收集整理的软件工程个人作业03的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Microservice Anti-pa
- 下一篇: LibSVM for Python 使用