// 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;
}
}
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;
}
}
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;
}
}
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;
}
}
}
编写一个程序模拟用户在银行排队办理业务的情况程序采用菜单方式Python 编写一个程序银行bank
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
编写一个python 编写一个Python程序输出hello world
简介 我们将看一下如何用Python编写运行一个传统的“Hello World”程序。通过它,你将学会如何编写、保存和运行Python程序。 有两种使用Python运行你的程序的方式——使用交互式的带提示符的
编写一个python python path linux windows