北理复试上机题2006年

 

1、写一个程序判断字符串中数字的位置(不限制使用面向对象编程)例如:输入 a3b4c5,输出 2 4 6 。

#include <iostream>
#include <string>
#include<vector>
using namespace std;
/*
1、写一个程序判断字符串中数字的位置(不限制使用面向对象编程)例如:输入 a3b4c5,输出 2 4 6 。
*/
int main()
{
	vector<int> pos;
	cout<<"请输入一串字符串:";
	string str;
	cin>>str;
	for(int i=0;i<str.length();i++){
		if(str[i]>='0' and str[i]<='9')
			pos.push_back(i+1);
	}  
	for(int i=0;i<pos.size();i++){
		cout<<pos[i]<<" ";
	} 
    return 0;
}

2、写一个类,能接受int 型的变量,接收变量后能存储原变量(譬如 12345)和其反向变量(54321) ,最多处理数量为 10 个,当输入达到 10 个或者输入变量为 0 的时候停止。并且在类销毁前输出存储的所有变量。 例如:
输入:12345,2234,0

输出:12345 54321

           2234 4322

#include <iostream>
#include<vector>
using namespace std;
/*
2、写一个类,能接受int 型的变量,接收变量后能存储原变量(譬如 12345)和其反向变量(54321) ,
   最多处理数量为 10 个,当输入达到 10 个或者输入变量为 0 的时候停止。并且在类销毁前输出存储的所有变量。 
   例如:
输入:12345,2234,0

输出:12345 54321

      2234 4322
*/
class re{
	private:
		vector<int> vc;
	public:
		re(){}
		void reverse(int& a){
			int num=0;
			while(a){
				num=num*10+a%10;
				a=a/10;
			}
			a=num;
		}
		void dispose(){
			for(vector<int>::iterator it=vc.begin();it!=vc.end();it++){
				int s = *it;
				cout<<s;
				reverse(s);
				cout<<" "<<s<<endl;
			}
		}
		void push(int t){
			this->vc.push_back(t);
		}
};
int main()
{
	re *r;
	r = new re;
	int count=1, t;
	cout<<"请输入:";
	while(count<10){
		cin>>t;
		if(t==0) break;
		r->push(t);
		count++;
	}
	r->dispose();

    return 0;
}

3.写一个 CTriangle 类,要求可以接受CTriangle(y,x)形式的构造,创建在坐标系中的直角三角形样子如下:

A

|   \

|       \

|           \

|               \

B -----------C

 

三点的坐标分别是 A(0,y)、B(0,0)、C(x,0)实现+运算,并且能够处理键盘连续输入若干个(少于十个)三角形,并且连加(相加时候三角形边长长度相加,方向同第一个三角形)。输入0 后结束并输出最后得出的三角形的三个坐标值。

例如:输入:

1 2

-1 -5

输出: A(0,7),B(0,0),C(2,0)
 

#include<iostream>
#include<cmath>
using namespace std;

int firstDirX, firstDirY; 
class CTriangle{
	private:
		int m_x;
		int m_y;
		int m_dirx;//1 正  -1 负数
		int m_diry; 
	public:
		CTriangle(){}
		CTriangle(int y, int x):m_y(y),m_x(x){
		}
		void assign(int y, int x){
			this->m_y = y;
			this->m_x = x;
		}
		CTriangle& operator+(CTriangle a); 
		void show(){
			cout<<"A(0,"<<m_y*firstDirY<<")、B(0,0)、C("<<m_x*firstDirX<<",0)"<<endl;
		}
};
CTriangle& CTriangle::operator+(CTriangle a){
	CTriangle c;
	c.m_x = abs(m_x)+abs(a.m_x);
	c.m_y = abs(m_y)+abs(a.m_y);
	return c;
}
int main()
{
    CTriangle c1, c2;
    int count=1, x, y;
    cout<<"请输入三角形A(0,y)、B(0,0)、C(x,0)中的 y  x 值:<输入0结束>"<<endl;
    cin>>y>>x;
    if(y*x==0) {
		cout<<"输入非法,不能为0"<<endl;
		exit(0); 
	}
    c1.assign(y, x);
    firstDirX = x>0?1:-1;
    firstDirY = y>0?1:-1;
    while(count<10){
    	if(y==0||x==0) {
    		break;
		}
		cin>>y>>x;
		CTriangle temp(y, x);
		c1=c1+temp;
    	count++;
	}
 	c1.show();
    return 0;
}

 

 

 

 

 

作者:无涯明月

上篇: 北理复试上机题2005年

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值