首页 > 其他分享 >结对项目

结对项目

时间:2024-09-28 17:46:51浏览次数:1  
标签:结对 cout SqStack top random MaxSize include 项目

3122004629 杨森
3122006504 钟礼骏

作业要求 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230
作业目标 用c++代码实现小学四则运算,记录PSP表格
GitHub链接 https://github.com/sunshyys/sizeyunsuan/tree/main

函数如下:

1.random():给定最大数范围后用来生成一个随机数并返回;

2.ran_str():生成四个运算符中的一个随机符号并返回;

3.as():用来进行结果运算的函数,返回结果值;

主函数如下:

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include<time.h>

//#define MaxSize 100//定义栈中元素的最大个数 
//typedef struct SqStack
//{
//	string data[MaxSize];//存放栈中的元素 
//	int top;//栈顶指针 
//}SqStack;
//
////typedef struct LinkNode
////{
////	int data;//数据域
////	struct LinkNode *next;//指针域 
////}*LiStack;//栈类型定义 
//
//void InitStack(SqStack &S)
//{
//	S.top=-1;
//}
//
//void Push(SqStack &S,string x)//入栈 
//{
//	if(S.top==MaxSize-1)
//	{
//		cout<<"栈满"<<endl;
//		return; 
//	}
//	S.data[++S.top]=x;
//}
//
//void Pop(SqStack &S,string x)//出栈 
//{
//	if(S.top==-1)
//	{
//		cout<<"栈空"<<endl;
//		return;
//	}
//	x=S.data[S.top--];
//}
//
//int GetTop(SqStack S)//读取顶元素 
//{
//	if(S.top==-1)
//	{
//		cout<<"栈空"<<endl;
//		return 0;
//	}
//	else
//	{
//		return S.data[S.top];
//	}
//}
//
//void PrintStack(SqStack S)//遍历栈 
//{
//	while(S.top!=-1)
//	{
//		cout<<S.data[S.top--]<<" ";
//	}
//	cout<<endl;
//}
//
//
//


int random(int n,int m)//随机数 
{
	return rand()%(m-n+1)+n;
}

string rand_str()//运算符
{
	int pp;
	pp=rand()%4;
	if(pp==0)return "+";
	else if(pp==1)return "-";
	else if(pp==2)return "×";
	else if(pp==3)return "÷";
}




double as(string t,double aaa,double bbb)//结果运算 
{
	double ccc;
	if(t=="+")
	{
		ccc=aaa+bbb;
	}
	else if(t=="-")
	{
		ccc=aaa-bbb;
	}
	else if(t=="×")
	{
		ccc=aaa*bbb;
	}
	else if(t=="÷")
	{
		ccc=aaa/bbb;
	}
	return ccc;
}





int main()
{
	
	
	
	FILE *fp;
	fp=fopen("exc.txt","w");
	fclose(fp);
	fp=fopen("ans.txt","w");
	fclose(fp);
//	fp=fopen("exc.txt","a");
//	fprintf(fp,"aaa");
//  fclose(fp);

//	string S[20];
//	S[6]="÷";
//	S[7]="×";
//	S[8]=4+'0';
//	S[13]="*";
//	cout<<S[6]<<endl<<S[13]<<endl<<S[8]<<endl<<S[7]<<endl;
	int a,b,N,R;
	int yc;
	srand(time(0));
	string t;
	//t=rand_str();
	string geshu,fanwei;
	string jieguo;
	cout<<"请输入需要的操作:"<<endl<<"题目个数:-n"<<endl<<"数值范围:-r" <<endl;
	cin>>geshu;
	if(geshu!="-n"){cout<<"输入错误,拜拜了您嘞";return 0;}
	else 
	cin>>N;
	cin>>fanwei;
	if(fanwei!="-r"){cout<<"输入错误,拜拜了您嘞";return 0;}
	else 
	cin>>R;
//	yc=random(1,3);
//	cout<<yc;
//	for(int i=1;i<=N;i++)
//	{
//		a=random(1,R);
//		cout<<a<<endl;
//	}
	
	for(int j=1;j<=N;j++)
	{
		string SS[10];
		int aa[10];
		int io=0,ioo=0;
		yc=random(1,3);
		int yccc=yc;
		b=random(1,R);
		cout<<yc<<endl;
		cout<<b;
		aa[0]=b;
		
		while(yc>0)
		{
			a=random(1,R);
			t=rand_str();
			SS[io++]=t;
			aa[++ioo]=a;
			cout<<t<<a;
			yc--;
		}
		cout<<"="<<endl;
		
		double san;
		double bb[10];
		bb[0]=aa[0];
		bb[1]=aa[1];
		bb[2]=aa[2];
		bb[3]=aa[3];
		
		if(yccc==1)
		{
			san=as(SS[0],aa[0],aa[1]);
			
			
			string s;
			if(SS[0]=="×")SS[0]="*";
			else if(SS[0]=="÷")SS[0]="/";
			
			fp=fopen("exc.txt","a");
			fprintf(fp,"question%d :     %d  %s  %d  =    \n",j,aa[0],SS[0].c_str(),aa[1]);
			fclose(fp);
			
			
			fp=fopen("ans.txt","a");
			fprintf(fp,"question%d :     %d  %s  %d  =  %.3f  \n",j,aa[0],SS[0].c_str(),aa[1],san);
			fclose(fp);
			
		}
		else if(yccc==2)
		{
			if((SS[1]=="×"||SS[1]=="÷")&&(SS[0]=="+"||SS[0]=="-"))
			{
				san=as(SS[1],aa[1],aa[2]);
				san=as(SS[0],aa[0],san);
			}
			else
			{
				san=as(SS[0],aa[0],aa[1]);
				san=as(SS[1],san,aa[2]);
			}
			
			if(SS[0]=="×")SS[0]="*";
			else if(SS[0]=="÷")SS[0]="/";
			if(SS[1]=="×")SS[1]="*";
			else if(SS[1]=="÷")SS[1]="/";
			
			fp=fopen("exc.txt","a");
			fprintf(fp,"question%d :     %d  %s  %d  %s  %d  =   \n",j,aa[0],SS[0].c_str(),aa[1],SS[1].c_str(),aa[2]);
			fclose(fp);
			fp=fopen("ans.txt","a");
			fprintf(fp,"question%d :     %d  %s  %d  %s  %d  =  %.3f  \n",j,aa[0],SS[0].c_str(),aa[1],SS[1].c_str(),aa[2],san);
			fclose(fp);
			
			
		}
		else if(yccc==3)
		{
//			if(((SS[0]=="×")||(SS[0]=="÷"))&&((SS[1]=="+")||(SS[1]=="-"))&&((SS[0]=="×")||(SS[0]=="÷")))
//			{
//				san=as(SS[0],aa[0],aa[1]);
//				int pl;
//				pl=as(SS[2],aa[2],aa[3]);
//				san=as(SS[1],as,pl);	
//			}
//			else if(((SS[0]=="+")||(SS[0]=="-"))&&((SS[1]=="×")||(SS[1]=="÷"))&&((SS[0]=="+")||(SS[0]=="-")))
//			{
//				san=as(SS[1])
//			}
			if(((SS[0]=="+")||(SS[0]=="-"))&&((SS[1]=="×")||(SS[1]=="÷"))&&((SS[2]=="+")||(SS[2]=="-")))
			{
				san=as(SS[1],aa[1],aa[2]);
				san=as(SS[0],aa[0],san);
				san=as(SS[2],san,aa[3]);
			}
			else
			{
			
			int key=0;
			for(int i=0;i<3;i++)
			{
				if(SS[i]=="×"||SS[i]=="÷")
				{
					key++;
					san=as(SS[i],bb[i],bb[i+1]);
					bb[i]=san;
					bb[i+1]=san;
					if(SS[i-1]=="×"||SS[i-1]=="÷")
					{
						bb[i-1]=bb[i];
					}
				}
			}
			if(key==0)
			{
				for(int i=0;i<3;i++)aa[i+1]=as(SS[i],aa[i],aa[i+1]);
				san=aa[3];
			}
			else if(key>0&&key<3)
			{
				for(int i=0;i<3;i++)
				{
					if(SS[i]=="+"||SS[i]=="-")
					{
						san=as(SS[i],bb[i],bb[i+1]);
						bb[i]=san;
						bb[i+1]=san;
						if(SS[i+1]=="×"||SS[i+1]=="÷")
						{
							bb[i+2]=san;
							if(SS[i+1]=="×"||SS[i+1]=="÷")
							{
								bb[i+3]=san;
							}
						}
					}
				}
			}
			else if(key==3)
			{
				san=bb[3];
			}
			
			
			
			if(SS[0]=="×")SS[0]="*";
			else if(SS[0]=="÷")SS[0]="/";
			
			if(SS[1]=="×")SS[1]="*";
			else if(SS[1]=="÷")SS[1]="/";
			
			if(SS[2]=="×")SS[2]="*";
			else if(SS[2]=="÷")SS[2]="/";
			
			fp=fopen("exc.txt","a");
			fprintf(fp,"question%d :     %d  %s  %d  %s  %d  %s  %d  =    \n",j,aa[0],SS[0].c_str(),aa[1],SS[1].c_str(),aa[2],SS[2].c_str(),aa[3]);
			fclose(fp);
			fp=fopen("ans.txt","a");
			fprintf(fp,"question%d :     %d  %s  %d  %s  %d  %s  %d  =  %.3f  \n",j,aa[0],SS[0].c_str(),aa[1],SS[1].c_str(),aa[2],SS[2].c_str(),aa[3],san);
			fclose(fp);
		}
		
	}
		cout<<san<<endl<<endl;
		
		
//		×";
//	else if(pp==3)return "÷
		
//		int ri=0;
//		while(yccc>0)
//		{
//			cout<<aa[ri]<<endl;
//			cout<<SS[ri++]<<endl;
//			yccc--;
//		}
		
		
//		while(ycc>=0)
//		{
//			cout<<SS[ioo++]<<endl;
//			ycc--;
//		}
	}
	
	
	return 0;
}


运行n为10,r为10:

结果在exc.txt和ans.txt中生成:

标签:结对,cout,SqStack,top,random,MaxSize,include,项目
From: https://www.cnblogs.com/y-sunshy/p/18438142

相关文章

  • 结对项目
    结对项目这个作业属于哪个课程计科12班这个作业要求在哪里作业这个作业的目标与团队分工合作做一个小项目团队成员信息成员姓名学号班级范志杰3122004345计科1班杨文聪3122004372计科1班项目需求使用-n参数控制生成题目的个数,例如M......
  • 今日指数项目股票成交量对比功能
    股票成交量对比功能1.股票成交量对比功能分析1.1模型示列功能描述:统计A股大盘T日和T-1日成交量对比功能(成交量为沪深两市成交量之和)1.2接口示列返回数据格式服务路径:/api/quot/stock/tradeAmt服务方法:GET前端请求频率:每分钟请求参数:无{"code":1,"da......
  • 结对项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标完成一个四则运算项目来了解项目开发流程项目成员李建龙github地址:https://git......
  • .Net8使用Cli命令创建基础项目
    第一步:创建项目结构#创建解决方案dotnetnewsln-nFxcdFx#创建WebAPI层dotnetnewwebapi-nFx.WebApi#创建Application层dotnetnewclasslib-nFx.Application#创建Domain层dotnetnewclasslib-nFx.Domain#创建Infrastructure层dotnetne......
  • 黑马PM-内容项目-需求分析
    需求分析的定义需求分析的时机需求分析的步骤......
  • DC00020基于springboot新闻网站系统java web项目MySQL新闻管理系统
    1、项目功能演示DC00020基于springboot新闻网站系统javaweb项目MySQL2、项目功能描述  基于springboot+vue新闻网站包括用户和系统管理员两个角色。2.1用户功能1、用户登录、用户注册2、新闻信息:点赞、点踩、收藏、查看3、用户分享:点赞、点踩、收藏、查看、添加......
  • 软件工程结对项目
    结对项目这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标结对完成四则运算生成器项目成员伍绍雄学号3122004753陈鸿航学号3......
  • 结队项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标实现四则运算程序,掌握结对合作完成项目的技巧成员一王佳伟3122004880成员二范圣......
  • 项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持
    若该文为原创文章,转载请注明出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142454993长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…Qt开发专栏:项目实战......
  • 结对项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标1.加深对项目开发流程的理解2.学会在团队中沟通与合作3.进一步提升编码能力......