北邮自考《C++程序设计》实践考试,你猜监考小姐姐说了什么?

5月份参加了自考北邮的C++程序设计实践上机考试。做了下实践环节考核指导上的三个程序题, 比较基础,现记录一下。

这三个题,我没有写太多的文字提示,有需要的可以自己加上。

再分享下我的考试,我是5月10日下午的考试,正好是周五上班时间,还得请假,差评。

下午到现场后感觉人没有想象的多,由于自己很久没考上机考试了,流程不太熟悉,所以导致刚开始时有点手忙脚乱。 其实大可不必慌张, 考的内容都不难,只要静下来就能答对。 还有要留出上传答案的时间,不要最后几分钟再上传,有可能手忙脚乱出错。

考试的第一题是百钱买百鸡,只需要找出错误运行出结果就行。我当时只关注语法上的错误,导致结果一直出不来,其实除了语法错误,算法也要稍微的理一下,错误其实挺明显的。

填空题也比较简单,不要被大段的代码吓到,代码中给出了填空的地方,有的会给出注释。

设计题类似第三题。

考试快结束时监考小姐姐说上传答案,删除磁盘上的答案,然后关机。

另监考小姐姐挺好看的

考试完后,看大家都在热聊,我比较害羞。咱也不认识,咱也不敢聊。 还是希望大家能多多交流,考试路上一个人还是有点孤单的。

 

下面是三个题供大家参考。

1.编写数组处理程序a3.cpp。请先定义整型数组对象,并从键盘上输入10个数据,然后求出其中的最大者和所有数据的总和。

   要求:数据输入、求最大、求和都是这个对象的成员函数,并包含必要的主程序语句,使程序可以运行。

#include <iostream>
using namespace::std;

class Integer_arr /*整形数组类*/
{
    private :
    int *intarr;
    unsigned int size;
    
    public:
    Integer_arr(unsigned int n=10)
    {
        intarr=new int[n];
        if (intarr==NULL) exit(1);
        size=n;
    }
    
    int getsum(void)
    {
        int s=0;
        for (unsigned int i=0; i<size; i++)
        s+=intarr[i];
        return s;
    }
    
    void read(void)
    {
        for (unsigned int i=0; i<size; i++)
            cin>>intarr[i];
    }
    
    int getmax(void)
    {
        int maxid=0;
        for (unsigned int i=0; i<size; i++) {
            if (intarr[i]>intarr[maxid])
                maxid=i;
        }
        return intarr[maxid];
    }
    
    unsigned int getsize(void) const
    {
        return size;
    }
    
    ~Integer_arr()
    {
        delete[] intarr;
    }
};

int main(void)
{
    Integer_arr a;
    cout<<"请输入"<<a.getsize()<<"个整数:";
    a.read();
    cout<<"它们的和是:"<<a.getsum()<<endl;
    cout<<"其中的最大值是:"<<a.getmax()<<endl;
    return 0;
}

 

2. 请编写程序b3.cpp,定义三角形(Triangle)类,能够判定输入的三个整数能否构成三角形,并可以求出三角形的面积和周长。

   要求:三角形的三条边长是三角形对象的私有成员变量,求面积、周长和判定能否构成三角形是该对象的成员函数。

#include "stdafx.h"
#include "iostream.h"
#include "math.h"

class Triangle {
	public:
		int a,b,c;
	public:
		bool isTriangle(void);
		int getSum(void);
		double getArge(void);
};

bool Triangle::isTriangle(void){
	if (a+b>c&&a+c>b&&c+b>a) {
				return true;
			} else {
				return false;
	}			
}

int Triangle::getSum(){
	return a + b + c;
}

double Triangle::getArge(){
	double m,s;
	m=(a+b+c)/2;
	s=sqrt(m*(m-a)*(m-b)*(m-c)); 
	return s;
}

int main(int argc, char* argv[])
{
	Triangle t;
	cin >> t.a >> t.b >> t.c ;

	bool isT = t.isTriangle();
	if (isT) {
		cout << "是三角形" << endl;
		cout << "三角形的边长是" << t.a << " " << t.b << " " << t.c << endl;
		double arge = t.getArge();
		cout << "三角形的面积是" << arge <<endl;

	} else {
		cout << "不是三角形" << endl;
	}
	return 0;
}

 

3. 请编写程序c3.cpp,定义学生(student)类,其私有成员变量有学号(no),姓名(xm),性别(xb),品德成绩(pdcj)、考试平均成绩(kscj)、体育成绩(tycj)。如果每个成绩都在85分以上的同学是三好学生。请输入10名学生的情况,先判断每位同学是否为三好学生,然后计算每个学生的平均成绩。

   要求:求同学的平均成绩和判定三好学生的功能是学生对象的公共成员函数。

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

class Student{
	private:
		int no;
		string xm;
		string xb;
		float pdcj;
		float kscj;
		float tycj;
	public:
		bool isSHstudent();
		float getPjcj();

		void setNo(int n){no=n;}
		void setXm(string x){xm=x;}
		void setXb(string b){xb=b;}
		void setPdcj(int p){pdcj=p;}
		void setKscj(int k){kscj=k;}
		void setTycj(int t){tycj=t;}
		int getNo(){return no;}
		string getXm(){return xm;}
		string getXb(){return xb;}
		float getPdcj(){return pdcj;}
		float getKscj(){return kscj;}
		float getTycj(){return tycj;}
};

bool Student::isSHstudent(void){
	if (pdcj>85&&kscj>85&&tycj>85) {
		return true;
	}
	return false;
}

float Student::getPjcj(){
	return (pdcj+kscj+tycj)/3;
}

int main(int argc, char* argv[])
{
		int no;
		string xm;
		string xb;
		float pdcj;
		float kscj;
		float tycj;

	Student s[5];
	for (int i=0;i<5;i++) {
		cin >> pdcj >> kscj >> tycj;
		s[i].setPdcj(pdcj);
		s[i].setKscj(kscj);
		s[i].setTycj(tycj);
		bool isSanhao = s[i].isSHstudent();
		float pjcj =  s[i].getPjcj();
		if (isSanhao) {
			cout << "该学生是三好生" << endl;
			cout << "该学生的平均成绩是"<< pjcj << endl;
		} else {
			cout << "该学生不是三好生" << endl;
			cout << "该学生的平均成绩是"<< pjcj << endl;
		}
	}
	
	

	return 0;
}

 

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值