// Note:Your choice is C++ IDE #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iomanip.h> #include <conio.h> const int MAX_P=20; const int MAXA=10; const int MAXB=5; const int MAXC=7; typedef struct node{ int a; int b; int c; int remain_a; int remain_b; int remain_c; }bank; typedef struct node1{ char name[20]; int a; int b; int c; int need_a; int need_b; int need_c; }process; bank banker; process processes[MAX_P]; int quantity; void initial() { int i; banker.a=MAXA; banker.b=MAXB; banker.c=MAXC; banker.remain_a=MAXA; banker.remain_b=MAXB; banker.remain_c=MAXC; for(i=0;i<MAX_P;i++){ strcpy(processes[i].name,""); processes[i].a=0; processes[i].b=0; processes[i].c=0; processes[i].need_a=0; processes[i].need_b=0; processes[i].need_c=0; } } //QQ 448085558 void add() { char name[20]; int flag=0; int t; int need_a,need_b,need_c; int i; cout<<endl; cout<<"新加作业"<<endl; cout<<"-----------------------"<<endl; cout<<"please input your new task name:"; cin>>name; for(i=0;i<quantity;i++) { if(!strcmp(processes[i].name,name)){ flag=1; break; } } if(flag){ cout<<"error,resistent"<<endl; } else{ cout<<"need A resource"; cin>>need_a; cout<<"need B resource:"; cin>>need_b; cout<<"need C resource:"; cin>>need_c; t=1; cout<<need_a<<banker.remain_a; if(need_a>banker.remain_a){ cout<<"error, need A >banker own"<<endl; t=0; } if(need_b>banker.remain_b){ cout<<"error, need B >banker own"<<endl; t=0; } if(need_c>banker.remain_c){ cout<<"error, need C >banker own"<<endl; t=0; } if(t){ strcpy(processes[quantity].name,name); processes[quantity].need_a=need_a; processes[quantity].need_b=need_b; processes[quantity].need_c=need_c; quantity++; cout<<"xin jia zuo ye cheng gong "<<endl; } else{ cout<<"task adding fails"<<endl; } } } /* ask for task resource*/ void bid() { char name[20]; int i,p; int a,b,c; int flag; cout<<endl<<"为作业申请资源"<<endl; cout<<"-----------------------"<<endl; cout<<"要申请的资源的作业名:"; cin>>name; p=-1; for(i=0;i<quantity;i++){ if(!strcmp(processes[i].name,name)){ p=i; break; } } if(p!=-1){ cout<<"改作业要申请A类资源数量"; cin>>a; cout<<"改作业要申请B类资源数量"; cin>>b; cout<<"改作业要申请C类资源数量"; cin>>c; flag=1; if((a>banker.remain_a)||(a>processes[p].need_a-processes[p].a)){ cout<<"错误,所申请A类资源大于银行家所剩余A类资源或者该进程还需数量"<<endl; flag=0; if((b>banker.remain_b)||(b>processes[p].need_b-processes[p].b)){ cout<<"错误,所申请B类资源大于银行家所剩余B类资源或者该进程还需数量"<<endl; flag=0; if((c>banker.remain_c)||(c>processes[p].need_c-processes[p].c)){ cout<<"错误,所申请C类资源大于银行家所剩余C类资源或者该进程还需数量"<<endl; flag=0; } if(flag){ banker.remain_a-=a; banker.remain_b-=b; banker.remain_c-=c; processes[p].a+=a; processes[p].b+=b; processes[p].c+=c; cout<<"为作业申请资源失败 "<<endl; } } else{ cout<<"改作业不存在"<<endl; } } } } void finished() { char name[20]; int i,p; cout<<endl<<"撤销作业"<<endl; cout<<"-----------------------------"<<endl; cout<<"要撤销作业名"; cin>>name; p=-1; for(i=0;i<quantity;i++){ if(!strcmp(processes[i].name,name)){ p=i; break; } } if(p!=-1){ banker.remain_a+=processes[p].a; banker.remain_b+=processes[p].b; banker.remain_c+=processes[p].c; for(i=p;i<quantity-1;i++){ processes[i]=processes[i++]; } strcpy(processes[quantity-1].name,""); processes[quantity-1].a=0; processes[quantity-1].b=0; processes[quantity-1].c=0; processes[quantity-1].need_a=0; processes[quantity-1].need_b=0; processes[quantity-1].need_c=0; quantity--; cout<<"撤销作业成功"<<endl; } else{ cout<<"撤销失败"<<endl; } } void view() { int i; cout<<endl<<"查看资源情况"<<endl; cout<<"--------------------------------"<<endl; cout<<"银行家所剩余资源(剩余资源/总共资源)"<<endl; cout<<"A类资源:"<<banker.remain_a<<"/"<<banker.a; cout<<"B类资源:"<<banker.remain_b<<"/"<<banker.b; cout<<"C类资源:"<<banker.remain_c<<"/"<<banker.c; cout<<endl<<endl<<"作业占用情况"<<endl<<endl; if(quantity>0){ for(i=0;i<quantity;i++){ cout<<"作业名:"<<processes[i].name<<endl; cout<<"A"<<processes[i].a<<"/"<<processes[i].need_a; cout<<"B"<<processes[i].b<<"/"<<processes[i].need_b; cout<<"C"<<processes[i].c<<"/"<<processes[i].need_c; cout<<endl; } } else{ cout<<"当前没有作业"<<endl; } } void main(){ //系统设置 system("title C语言关机程序");//设置cmd窗口标题 system("mode con cols=66lines=20");//窗口宽度高度 system("color 0B"); system("date /T"); system("TIME /T"); int chioce; int flag=1; initial(); while(flag){ cout<<"----------------------------------------------------------------"<<endl; cout<<"1.新加作业 2.为作业申请资源 3.撤销作业 4.查看资源情况 0.退出系统"<<endl; cout<<"请选择"; cin>>chioce; switch(chioce){ case 1: add(); break; case 2: bid(); break; case 3: finished(); break; case 4: view(); break; case 0: flag=0; break; default: cout<<"选择错误"<<endl<<endl; } } }// Note:Your choice is C++ IDE #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iomanip.h> #include <conio.h> const int MAX_P=20; const int MAXA=10; const int MAXB=5; const int MAXC=7; typedef struct node{ int a; int b; int c; int remain_a; int remain_b; int remain_c; }bank; typedef struct node1{ char name[20]; int a; int b; int c; int need_a; int need_b; int need_c; }process; bank banker; process processes[MAX_P]; int quantity; void initial() { int i; banker.a=MAXA; banker.b=MAXB; banker.c=MAXC; banker.remain_a=MAXA; banker.remain_b=MAXB; banker.remain_c=MAXC; for(i=0;i<MAX_P;i++){ strcpy(processes[i].name,""); processes[i].a=0; processes[i].b=0; processes[i].c=0; processes[i].need_a=0; processes[i].need_b=0; processes[i].need_c=0; } } //QQ 448085558 void add() { char name[20]; int flag=0; int t; int need_a,need_b,need_c; int i; cout<<endl; cout<<"新加作业"<<endl; cout<<"-----------------------"<<endl; cout<<"please input your new task name:"; cin>>name; for(i=0;i<quantity;i++) { if(!strcmp(processes[i].name,name)){ flag=1; break; } } if(flag){ cout<<"error,resistent"<<endl; } else{ cout<<"need A resource"; cin>>need_a; cout<<"need B resource:"; cin>>need_b; cout<<"need C resource:"; cin>>need_c; t=1; cout<<need_a<<banker.remain_a; if(need_a>banker.remain_a){ cout<<"error, need A >banker own"<<endl; t=0; } if(need_b>banker.remain_b){ cout<<"error, need B >banker own"<<endl; t=0; } if(need_c>banker.remain_c){ cout<<"error, need C >banker own"<<endl; t=0; } if(t){ strcpy(processes[quantity].name,name); processes[quantity].need_a=need_a; processes[quantity].need_b=need_b; processes[quantity].need_c=need_c; quantity++; cout<<"xin jia zuo ye cheng gong "<<endl; } else{ cout<<"task adding fails"<<endl; } } } /* ask for task resource*/ void bid() { char name[20]; int i,p; int a,b,c; int flag; cout<<endl<<"为作业申请资源"<<endl; cout<<"-----------------------"<<endl; cout<<"要申请的资源的作业名:"; cin>>name; p=-1; for(i=0;i<quantity;i++){ if(!strcmp(processes[i].name,name)){ p=i; break; } } if(p!=-1){ cout<<"改作业要申请A类资源数量"; cin>>a; cout<<"改作业要申请B类资源数量"; cin>>b; cout<<"改作业要申请C类资源数量"; cin>>c; flag=1; if((a>banker.remain_a)||(a>processes[p].need_a-processes[p].a)){ cout<<"错误,所申请A类资源大于银行家所剩余A类资源或者该进程还需数量"<<endl; flag=0; if((b>banker.remain_b)||(b>processes[p].need_b-processes[p].b)){ cout<<"错误,所申请B类资源大于银行家所剩余B类资源或者该进程还需数量"<<endl; flag=0; if((c>banker.remain_c)||(c>processes[p].need_c-processes[p].c)){ cout<<"错误,所申请C类资源大于银行家所剩余C类资源或者该进程还需数量"<<endl; flag=0; } if(flag){ banker.remain_a-=a; banker.remain_b-=b; banker.remain_c-=c; processes[p].a+=a; processes[p].b+=b; processes[p].c+=c; cout<<"为作业申请资源失败 "<<endl; } } else{ cout<<"改作业不存在"<<endl; } } } } void finished() { char name[20]; int i,p; cout<<endl<<"撤销作业"<<endl; cout<<"-----------------------------"<<endl; cout<<"要撤销作业名"; cin>>name; p=-1; for(i=0;i<quantity;i++){ if(!strcmp(processes[i].name,name)){ p=i; break; } } if(p!=-1){ banker.remain_a+=processes[p].a; banker.remain_b+=processes[p].b; banker.remain_c+=processes[p].c; for(i=p;i<quantity-1;i++){ processes[i]=processes[i++]; } strcpy(processes[quantity-1].name,""); processes[quantity-1].a=0; processes[quantity-1].b=0; processes[quantity-1].c=0; processes[quantity-1].need_a=0; processes[quantity-1].need_b=0; processes[quantity-1].need_c=0; quantity--; cout<<"撤销作业成功"<<endl; } else{ cout<<"撤销失败"<<endl; } } void view() { int i; cout<<endl<<"查看资源情况"<<endl; cout<<"--------------------------------"<<endl; cout<<"银行家所剩余资源(剩余资源/总共资源)"<<endl; cout<<"A类资源:"<<banker.remain_a<<"/"<<banker.a; cout<<"B类资源:"<<banker.remain_b<<"/"<<banker.b; cout<<"C类资源:"<<banker.remain_c<<"/"<<banker.c; cout<<endl<<endl<<"作业占用情况"<<endl<<endl; if(quantity>0){ for(i=0;i<quantity;i++){ cout<<"作业名:"<<processes[i].name<<endl; cout<<"A"<<processes[i].a<<"/"<<processes[i].need_a; cout<<"B"<<processes[i].b<<"/"<<processes[i].need_b; cout<<"C"<<processes[i].c<<"/"<<processes[i].need_c; cout<<endl; } } else{ cout<<"当前没有作业"<<endl; } } void main(){ //系统设置 system("title C语言关机程序");//设置cmd窗口标题 system("mode con cols=66lines=20");//窗口宽度高度 system("color 0B"); system("date /T"); system("TIME /T"); int chioce; int flag=1; initial(); while(flag){ cout<<"----------------------------------------------------------------"<<endl; cout<<"1.新加作业 2.为作业申请资源 3.撤销作业 4.查看资源情况 0.退出系统"<<endl; cout<<"请选择"; cin>>chioce; switch(chioce){ case 1: add(); break; case 2: bid(); break; case 3: finished(); break; case 4: view(); break; case 0: flag=0; break; default: cout<<"选择错误"<<endl<<endl; } } }// Note:Your choice is C++ IDE #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iomanip.h> #include <conio.h> const int MAX_P=20; const int MAXA=10; const int MAXB=5; const int MAXC=7; typedef struct node{ int a; int b; int c; int remain_a; int remain_b; int remain_c; }bank; typedef struct node1{ char name[20]; int a; int b; int c; int need_a; int need_b; int need_c; }process; bank banker; process processes[MAX_P]; int quantity; void initial() { int i; banker.a=MAXA; banker.b=MAXB; banker.c=MAXC; banker.remain_a=MAXA; banker.remain_b=MAXB; banker.remain_c=MAXC; for(i=0;i<MAX_P;i++){ strcpy(processes[i].name,""); processes[i].a=0; processes[i].b=0; processes[i].c=0; processes[i].need_a=0; processes[i].need_b=0; processes[i].need_c=0; } } //QQ 448085558 void add() { char name[20]; int flag=0; int t; int need_a,need_b,need_c; int i; cout<<endl; cout<<"新加作业"<<endl; cout<<"-----------------------"<<endl; cout<<"please input your new task name:"; cin>>name; for(i=0;i<quantity;i++) { if(!strcmp(processes[i].name,name)){ flag=1; break; } } if(flag){ cout<<"error,resistent"<<endl; } else{ cout<<"need A resource"; cin>>need_a; cout<<"need B resource:"; cin>>need_b; cout<<"need C resource:"; cin>>need_c; t=1; cout<<need_a<<banker.remain_a; if(need_a>banker.remain_a){ cout<<"error, need A >banker own"<<endl; t=0; } if(need_b>banker.remain_b){ cout<<"error, need B >banker own"<<endl; t=0; } if(need_c>banker.remain_c){ cout<<"error, need C >banker own"<<endl; t=0; } if(t){ strcpy(processes[quantity].name,name); processes[quantity].need_a=need_a; processes[quantity].need_b=need_b; processes[quantity].need_c=need_c; quantity++; cout<<"xin jia zuo ye cheng gong "<<endl; } else{ cout<<"task adding fails"<<endl; } } } /* ask for task resource*/ void bid() { char name[20]; int i,p; int a,b,c; int flag; cout<<endl<<"为作业申请资源"<<endl; cout<<"-----------------------"<<endl; cout<<"要申请的资源的作业名:"; cin>>name; p=-1; for(i=0;i<quantity;i++){ if(!strcmp(processes[i].name,name)){ p=i; break; } } if(p!=-1){ cout<<"改作业要申请A类资源数量"; cin>>a; cout<<"改作业要申请B类资源数量"; cin>>b; cout<<"改作业要申请C类资源数量"; cin>>c; flag=1; if((a>banker.remain_a)||(a>processes[p].need_a-processes[p].a)){ cout<<"错误,所申请A类资源大于银行家所剩余A类资源或者该进程还需数量"<<endl; flag=0; if((b>banker.remain_b)||(b>processes[p].need_b-processes[p].b)){ cout<<"错误,所申请B类资源大于银行家所剩余B类资源或者该进程还需数量"<<endl; flag=0; if((c>banker.remain_c)||(c>processes[p].need_c-processes[p].c)){ cout<<"错误,所申请C类资源大于银行家所剩余C类资源或者该进程还需数量"<<endl; flag=0; } if(flag){ banker.remain_a-=a; banker.remain_b-=b; banker.remain_c-=c; processes[p].a+=a; processes[p].b+=b; processes[p].c+=c; cout<<"为作业申请资源失败 "<<endl; } } else{ cout<<"改作业不存在"<<endl; } } } } void finished() { char name[20]; int i,p; cout<<endl<<"撤销作业"<<endl; cout<<"-----------------------------"<<endl; cout<<"要撤销作业名"; cin>>name; p=-1; for(i=0;i<quantity;i++){ if(!strcmp(processes[i].name,name)){ p=i; break; } } if(p!=-1){ banker.remain_a+=processes[p].a; banker.remain_b+=processes[p].b; banker.remain_c+=processes[p].c; for(i=p;i<quantity-1;i++){ processes[i]=processes[i++]; } strcpy(processes[quantity-1].name,""); processes[quantity-1].a=0; processes[quantity-1].b=0; processes[quantity-1].c=0; processes[quantity-1].need_a=0; processes[quantity-1].need_b=0; processes[quantity-1].need_c=0; quantity--; cout<<"撤销作业成功"<<endl; } else{ cout<<"撤销失败"<<endl; } } void view() { int i; cout<<endl<<"查看资源情况"<<endl; cout<<"--------------------------------"<<endl; cout<<"银行家所剩余资源(剩余资源/总共资源)"<<endl; cout<<"A类资源:"<<banker.remain_a<<"/"<<banker.a; cout<<"B类资源:"<<banker.remain_b<<"/"<<banker.b; cout<<"C类资源:"<<banker.remain_c<<"/"<<banker.c; cout<<endl<<endl<<"作业占用情况"<<endl<<endl; if(quantity>0){ for(i=0;i<quantity;i++){ cout<<"作业名:"<<processes[i].name<<endl; cout<<"A"<<processes[i].a<<"/"<<processes[i].need_a; cout<<"B"<<processes[i].b<<"/"<<processes[i].need_b; cout<<"C"<<processes[i].c<<"/"<<processes[i].need_c; cout<<endl; } } else{ cout<<"当前没有作业"<<endl; } } void main(){ //系统设置 system("title C语言关机程序");//设置cmd窗口标题 system("mode con cols=66lines=20");//窗口宽度高度 system("color 0B"); system("date /T"); system("TIME /T"); int chioce; int flag=1; initial(); while(flag){ cout<<"----------------------------------------------------------------"<<endl; cout<<"1.新加作业 2.为作业申请资源 3.撤销作业 4.查看资源情况 0.退出系统"<<endl; cout<<"请选择"; cin>>chioce; switch(chioce){ case 1: add(); break; case 2: bid(); break; case 3: finished(); break; case 4: view(); break; case 0: flag=0; break; default: cout<<"选择错误"<<endl<<endl; } } }
浙公网安备 33010602011771号