软件综合应用系统设计

软件综合设计应用

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,

基于剧场售票系统设计

现在假设顾客每次总是购买r2张票,且要求r2张票的座位连续排列成一个正方形,即r*r。设计一个模拟买票程序:可以满足顾客要求时,显示出正方形座位左上角所在的位置并实时地显示剧场座位卖出情况。无法满足顾客的购票要求时报告错误信息。
程序如下:

#include<iostream>
using namespace std;

int wei[20][20]={0};

int main()
{
	int l=20;   //座位边长
	int r;   //购买相关票数
	int wei[20][20]={0};
	int t_flag;   //是否买票
	int k_flag=0;   //判断标志位
	cout<<"   ";
	for(int i=0;i<10;i++)
	{
		cout<<i+1<<"   ";
	}
	for(int i=10;i<l;i++)
	{
		cout<<i+1<<"  ";
	}
	cout<<endl;

	for(int i=0;i<9;i++)
	{
		cout<<i+1<<"  ";
		for(int j=0;j<l;j++)
		{	   
			cout<<wei[i][j]<<"   ";
		}
		cout<<endl;
	}
	for(int i=9;i<l;i++)
	{
		cout<<i+1<<" ";
		for(int j=0;j<l;j++)
		{	   
			cout<<wei[i][j]<<"   ";
		}
		cout<<endl;
	}
	while(1)
	{
		cout<<"是否买票? 1:是;0:否。"<<endl;
		cin>>t_flag;
		if(t_flag==1)
		{
			cout<<"输入买票张数:r*r"<<endl;
			cin>>r;
			for(int i=0;i<20;i++)
			{
				for(int j=0;j<20;j++)
				{
					if((20-j)>=r&&(20-i)>=r)    //判断剩余格数
					{
						if(wei[i][j]==0)
						{
							k_flag=0;
							for(int m=i;m<i+r;m++)
							{
								for(int n=j;n<j+r;n++)
								{
									if(wei[m][n]==1)
									{
										k_flag=1;
									}
								}
							}
					
							if(k_flag==0)
							{
								cout<<"第"<<i+1<<"行,"<<"第"<<j+1<<"列:"<<endl;
								for(int m=i;m<i+r;m++)
								{
									for(int n=j;n<j+r;n++)
									{
										wei[m][n]=1;
									}
								}
								break;
							}					

						}
					}
					else
					{
						k_flag=1;
					}
				}

				if(k_flag==0)
				{
					break;
				}

			}
			if(k_flag==1)
			{								
				cout<<"无符合要求的座位!"<<endl;					
			}

			//显示部分
			cout<<"   ";
			for(int i=0;i<10;i++)
			{
				cout<<i+1<<"   ";
			}
			for(int i=10;i<l;i++)
			{
				cout<<i+1<<"  ";
			}
			cout<<endl;

			for(int i=0;i<9;i++)
			{
				cout<<i+1<<"  ";
				for(int j=0;j<l;j++)
				{	   
					cout<<wei[i][j]<<"   ";
				}
				cout<<endl;
			}
			for(int i=9;i<l;i++)
			{
				cout<<i+1<<" ";
				for(int j=0;j<l;j++)
				{	   
					cout<<wei[i][j]<<"   ";
				}
				cout<<endl;
			}

		}
		else
		{
			cout<<"退出买票!"<<endl;
		}
	}
	return 1;
}

邮票组合系统设计

邮政部门发行的邮票共有n种面值,存在整数r,使得用不超过m枚此种邮票可以组合出1-r的所有面值,但不能组合出面值r+1。例如,对于面值1、4、7、8,最多用3张邮票可以组合出1-24的面值,但不能组合出面值为25的邮票。对于给定的n、m及n枚邮票的面值,求r。
程序如下:

#include<iostream>
using namespace std;

int main()
	{
		int k_flag=0;
		int sum=1;
		int n;
		int m;
		int k=0;
		int a=0;
		int b=0;
		int c=0;
		int d=0;
		int currency_value[1000]={0};
		while(1)
		{
			cout<<"发行张数:";
			cin>>n;
			cout<<"使用张数:";
			cin>>m;
			cout<<"please input currency value:"<<endl;
			for(int i=0;i<n;i++)
				{
					cout<<"第"<<i+1<<"种币值:";
					cin>>currency_value[i];
				}

			k=n;
			if(m==3)
			{
				for(a=0;a<n;a++)
				{
					for(b=a;b<n;b++)
					{
						currency_value[k]=currency_value[a]+currency_value[b];
						k++;
					}
				}	
				for(a=0;a<n;a++)
				{
					for(b=0;b<n;b++)
					{
						for(c=0;c<n;c++)
						{
							currency_value[k]=currency_value[a]+currency_value[b]+currency_value[c];
							k++;
						}
					}
				} 
			}

			else if(m==2)
			{
				for(a=0;a<n;a++)
				{
					for(b=a;b<n;b++)
					{
						currency_value[k]=currency_value[a]+currency_value[b];
						k++;
					}
				}	
			}

			else if(m==4)
			{
				for(a=0;a<n;a++)
				{
					for(b=a;b<n;b++)
					{
						currency_value[k]=currency_value[a]+currency_value[b];
						k++;
					}
				}	
				for(a=0;a<n;a++)
				{
					for(b=0;b<n;b++)
					{
						for(c=0;c<n;c++)
						{
							currency_value[k]=currency_value[a]+currency_value[b]+currency_value[c];
							k++;
						}
					}
				} 
				for(a=0;a<n;a++)
				{
					for(b=0;b<n;b++)
					{
						for(c=0;c<n;c++)
						{
						
							for(d=0;d<n;d++)
							{
								currency_value[k]=currency_value[a]+currency_value[b]+currency_value[c]+currency_value[d];
								k++;
							}
						}
					}
				}
			}

			for(sum=1;sum<100;sum++)
			{
				for(int i=0;i<k;i++)
				{
					if(sum==currency_value[i])
						k_flag=1;
				}
				if(k_flag==0)
				{
					cout<<"所求的最大面值:"<<sum-1<<endl<< "............................."<<endl;
					break;
				}
				k_flag=0;
			}
		}
		return 0;
	}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值