文章目录
- 月考技能
- 2月
- 1.某场100公里加速时间比赛中有摩托车,汽车,飞机等,现定义一个Runner类为参赛者,Runner类中增加成员变量加速时间acc_time,现要求使用Runner类实例化motor,car,airplane三个对象,输出比赛的第一名(acc_time最小)
- 2. 编程实现要求功能:
- 3.实现一个任意输入两个整数进行加减乘除运算的计算器,主程序中要求提示输入两个整数,提示输入运算符(可以输入+、-、*、/、%等)。要求定义加法add(),减法sub(),乘法mul(),除法div()。并输出计算结果,除法时要求有除数不能为0的判断(提示“除数不能为0,请重新输入”)
- 5月
- 1.定义三个函数分别用值传递,指针地址传递和引用传递等实现数据交换,并在main中调用自定义函数
- 2.定义一个整形数组a,定义指针p指向a,用p实现对数组遍历,并用冒泡排序方法对数组元素升序排序(从小到大)
- 3.定义一个整形数组b,提示查找是否存在某个整数,若存在则输出该元素,否则提示不存在,编程创建文本1.txt,并把数组中所有元素写入文本。
- 4.猜数字游戏。编一个程序,电脑随机一个0~100间整数;玩家每次输入一个0~100间整数,需要判断输入的字符是否符合条件,否则要求重新输入;若输入数字小于随机数,则提示“输入数小了”,若输入数字大于随机数,则提示“输入数大了”;相等则显示“恭喜,猜对了”;要求输出猜的次数;猜对后,按J键则继续猜下一个,否则按其他键停止。
- 4月
- 1.如果数组A{1,2,3,4},B为{1,2,3,4,5,6}。即B拥有A中所有的元素,则称A为B的子集合。要求设计一段自定义程序(函数),判断A集合是否是B集合的子集。在main函数中调用自定义函数判断并输出方法,算法及实现方法不限。
- 2.定义球类Ball,类中定义 string篮球型号name(A,B,C,D,E),int个数num,double类型价格price,定义结构体,定义排序规则,定义显示函数show(),用模板库中sort方法,要求用排序规则,实现按单价升序排序,并对排序结果进行输出和显示。
- 3.编程实现商店购物结算系统:
- 3月
- 1.设计两个结构体,一个是存储银行账户信息: 每个账户包含账号,用户身份证号码,用户姓名,用户地址,账户金额;另一个是银行信息,每个结构体包含银行名称和5个账号数据。然后,从控制台输入各个字段的值,保存到结构体变量中。定义结构体类型,分别输入相应的字段值,测试输出是否正确。主函数中实现查看显示账户信息,输出每个账户下,按照账户金额大小顺序后的账户信息。有必要的注释。
- 2.2000A 班级学生统计,根据防疫要求20岁及以上学生打疫苗超级加强针,现有学生信息Student.txt,其中包含学生姓名和出生日期。要求在电脑端读取所有学生信息并输出显示所有信息,筛选出满足条件的学生,按照要求输出满足20岁及以上的学生信息,并生成新的文件S2.txt;再把20岁以下的学生信息写入新文件S3.txt中
- 3.一个饲养场中有两种动物,其中鸡1个头2只脚,兔1个头4只脚。里面不知道有多少只兔子和鸡,共看到20个头和58只脚,求鸡和兔子的只数
月考技能
2月
1.某场100公里加速时间比赛中有摩托车,汽车,飞机等,现定义一个Runner类为参赛者,Runner类中增加成员变量加速时间acc_time,现要求使用Runner类实例化motor,car,airplane三个对象,输出比赛的第一名(acc_time最小)
class Runner
{
public:int acc_time;Runner(int time){acc_time = time;}
}; int main(){Runner airplane(100);Runner car(60);Runner motor(50);if (airplane.acc_time<car.acc_time&&airplane.acc_time<motor.acc_time){cout << "飞机获得了第一名" << endl;}else if (car.acc_time<airplane.acc_time&&car.acc_time<motor.acc_time){cout << "汽车获得了第一名" << endl;}else{cout << "摩托获得了第一名" << endl;}
}
2. 编程实现要求功能:
(1)定义一个 Bul类
(2)定义私有数据成员long(长),width(宽),height(高)
(3)在类内声明函数input_value(),输入数据
(4)在类内声明函数get_result(),求长方体体积
(5)input_value ()在类外定义,input_value ()作用是接收从键盘输入长、宽、高的值
(6)get_result ()函数在类外定义,get_result ()的作用是计算并输出长方体的体积
(7)在main()函数定义Bul类的对象bu
(8)通过对象bu调用input_value()函数输入长、宽、高
(9)通过对象bu调用get_result()函数输出长方体体积
class Bul
{
private:int long1;int width;int height;
public:void input_value();void get_result();
};
void Bul::input_value()
{cout << "请输入长,宽,高:" << endl;cin >> long1 >> width >> height;
}
void Bul::get_result()
{cout << "长方体的体积是:" << long1*width*height << endl;
}
int main(){Bul bu;bu.input_value();bu.get_result();
}
3.实现一个任意输入两个整数进行加减乘除运算的计算器,主程序中要求提示输入两个整数,提示输入运算符(可以输入+、-、*、/、%等)。要求定义加法add(),减法sub(),乘法mul(),除法div()。并输出计算结果,除法时要求有除数不能为0的判断(提示“除数不能为0,请重新输入”)
void add(int a,int b)
{cout << a + b;
}
void sub(int a,int b)
{cout << a - b;
}
void mul(int a,int b)
{cout << a * b;
}
void div2(int a,int b)
{if (b == 0){cout << "除数不能为0,请重新输入!" << endl;}else{cout << a / b;}
}
void mo(int a,int b)
{cout << a % b;
}
int main(){char fh;int a, b;cout << "请输入符号:" << endl;cin >> fh;cout << "请输入两个整数:" << endl;cin >> a >> b;if (fh == '+'){add(a,b);}else if (fh == '-'){sub(a,b);}else if (fh == '*'){mul(a,b);}else if (fh == '/'){div2(a,b);}else if (fh == '%'){mo(a,b);}
}
5月
1.定义三个函数分别用值传递,指针地址传递和引用传递等实现数据交换,并在main中调用自定义函数
void month5_1_1(int &a,int &b){ //引用传递int temp = a;a = b;b=temp;cout << a <<" " << b << endl; //值传递
}void month5_1_2(int *c,int *d){ //指针传递int temp= *c;*c = *d;*d = temp;cout << *c <<" " << *d << endl; //值传递
}void month5_1_3(int e,int f){//值传递int temp = e;e= f;f = temp;cout << e <<" " << f << endl;
}int main(){int a= 4;int b = 5;month5_1_1(a,b);int c = 1;int d = 2;month5_1_2(&c,&d);int e = 2;int f = 8;month5_1_3(e,f);}
2.定义一个整形数组a,定义指针p指向a,用p实现对数组遍历,并用冒泡排序方法对数组元素升序排序(从小到大)
int main(){int a[3]={2,7,1};int *p = a; //a[0]指针for(int i = 0;i<3;i++){for(int j = 0;j< 3-1-i;j++){if(p[j] > p[j+1]){int temp = p[j];p[j] = p[j+1];p[j+1] = temp;}}}for(int i = 0;i<3;i++){cout << a[i] << endl;}
}
3.定义一个整形数组b,提示查找是否存在某个整数,若存在则输出该元素,否则提示不存在,编程创建文本1.txt,并把数组中所有元素写入文本。
#include <fstream> //文件流
void month_3(){int b[] ={1,2,3};int number;cin >> number;int num = count(b,b+3,number); //计数if(num == 0){cout << "数字不存在";} else{cout << "数字存在";}//文件写入ofstream file("/Users/amy/Documents/C++/testProject/unit6/1.txt");for(int i = 0;i< size(b);i++){file << b[i] << endl;}
}
int main(){month_3();
}
4.猜数字游戏。编一个程序,电脑随机一个0100间整数;玩家每次输入一个0100间整数,需要判断输入的字符是否符合条件,否则要求重新输入;若输入数字小于随机数,则提示“输入数小了”,若输入数字大于随机数,则提示“输入数大了”;相等则显示“恭喜,猜对了”;要求输出猜的次数;猜对后,按J键则继续猜下一个,否则按其他键停止。
void month5_4(){srand(time(0)); //时间做为随机数的种子,让随机数改变int number1 = rand()%100;cout << "随机数:" << number1 << endl;int n = 1;while (1){ //死循环int number2;cin >> number2;if(number2>=0 && number2<=100){if(number1== number2){cout << "恭喜,猜对了.用了"<<n <<"次" << endl;string str;cin >> str;if(str == "J"){//产生下一个随机数month5_4(); //调用函数} else{cout << "游戏结束" << endl;exit(1); //退出程序}} else if(number2 > number1){cout << "输入数大了" << endl;n++;} else{cout << "输入数小了" << endl;n++;}} else{cout << "重新输入" <<endl;}}
}
int main(){month5_4();
}
4月
1.如果数组A{1,2,3,4},B为{1,2,3,4,5,6}。即B拥有A中所有的元素,则称A为B的子集合。要求设计一段自定义程序(函数),判断A集合是否是B集合的子集。在main函数中调用自定义函数判断并输出方法,算法及实现方法不限。
void month_4_1(){int A[4]={1,2,3,8};int B[6]={1,2,3,4,5,6};for(int i = 0;i<4;i++){//从B里找A数组中每个数字出现的次数int times = count(B,B+6,A[i]);if(times ==0){ //0表示没有找到cout << "不是子集" << endl;break;}}
}
int main(){month_4_1();
}
2.定义球类Ball,类中定义 string篮球型号name(A,B,C,D,E),int个数num,double类型价格price,定义结构体,定义排序规则,定义显示函数show(),用模板库中sort方法,要求用排序规则,实现按单价升序排序,并对排序结果进行输出和显示。
class Ball{
public:string name;int num;double price;Ball(string name,int num,double price){this->name = name;this->num = num;this->price = price;}void show(){cout << "价钱:" <<price <<"数量:" << num <<"名字" << name << endl;}
};
struct MyR{bool operator()(Ball ba1,Ball ba2){return ba1.price < ba2.price; //true 1 false 0}
};
int main(){Ball bal1("A",1,100);Ball bal2("A",1,300);Ball bal3("A",1,200);Ball arr[3] = {bal1,bal2,bal3};sort(arr,arr+3,MyR());for(int i = 0;i<3;i++){arr[i].show();}}
3.编程实现商店购物结算系统:
(1).(主函数实现输入).某同学去超市买东西,结算时提示输入泡面的购买量、单价
(2).提示输入面包的购买量、单价(10)
(3).提示输入火腿的购买量、单价(4)
(4).要求定义商店类Store,公有成员包括名字name,数量num,价格price
(5).要求定义结算函数Result,结算当前食品价格
(6).定义函数Print输出所有购物的统计信息
(7).输出购买所有商品最终消费金额last_sum;
double last_sum; //总价
class Store_m{
public:string name;int num;double price;void Result(){cout << "输入购买商品的名称、数量、单价"<<endl;cin >> name;cin >> num;cin >> price;double sum = num*price;cout << name<<"结算当前食品价格:" << sum << endl;last_sum+=sum;}void Print(){cout << name <<" " <<num<< " " << price <<" "<<endl;}
};
int main(){Store_m st1;st1.Result();Store_m st2;st2.Result();cout << "总价:" << last_sum<<endl;
}
3月
1.设计两个结构体,一个是存储银行账户信息: 每个账户包含账号,用户身份证号码,用户姓名,用户地址,账户金额;另一个是银行信息,每个结构体包含银行名称和5个账号数据。然后,从控制台输入各个字段的值,保存到结构体变量中。定义结构体类型,分别输入相应的字段值,测试输出是否正确。主函数中实现查看显示账户信息,输出每个账户下,按照账户金额大小顺序后的账户信息。有必要的注释。
struct ZH{int account;int id;string name;string address;int money;
};struct Bank{string name;ZH arr[5];
};struct MyR{bool operator()(ZH zh1,ZH zh2){return zh1.money > zh2.money;}
};int main(){Bank bank;bank.name = "北京银行";for(int i = 0;i<5;i++){ //循环5次cout << "输入帐号" << endl;cin >> bank.arr[i].account;cout << "输入身份证号:" << endl;cin >> bank.arr[i].id;cout << "输入名字:" << endl;cin >> bank.arr[i].name;cout << "输入地址:" << endl;cin >> bank.arr[i].address;cout << "输入钱:" << endl;cin >> bank.arr[i].money;}sort(bank.arr,bank.arr+5,MyR());for(int i = 0;i<5;i++){cout << bank.arr[i].money <<" " << bank.arr[i].name << endl;}
}
2.2000A 班级学生统计,根据防疫要求20岁及以上学生打疫苗超级加强针,现有学生信息Student.txt,其中包含学生姓名和出生日期。要求在电脑端读取所有学生信息并输出显示所有信息,筛选出满足条件的学生,按照要求输出满足20岁及以上的学生信息,并生成新的文件S2.txt;再把20岁以下的学生信息写入新文件S3.txt中
3.一个饲养场中有两种动物,其中鸡1个头2只脚,兔1个头4只脚。里面不知道有多少只兔子和鸡,共看到20个头和58只脚,求鸡和兔子的只数
要求1:main函数中,头和脚的数量(20,58)通过键盘输入
要求2:合理使用for循环
要求3:输出计算后的结果
要求4:有合理注释
int week3_3(){for(int x=0;x<=20;x++){ //x的数量for(int y = 0;y<=20;y++){if(x+y==20 && 2*x+4*y==58){cout << "鸡:"<< x << " 兔:" <<y << endl;}}}
} //鸡11,兔9