c1-第二周
- 9月-技能
- 1.一个岛上有两种神奇动物,其中神奇鸟类2个头3只脚,神奇兽类3个头8只脚。游客在浓雾中看到一群动物,共看到35个头和110只脚,求可能的鸟类和兽类的只数
- 2.构建一个长度为5的数组,并且实现下列要求
- 3.构建一个结构体student,要求成员有
- 10月-技能
- 1.排序
- 2.编程实现以下功能:
- 3.有三个学生组队参加某比赛,每个学生信息包含准考证号,姓名,个人成绩,另团队有一总成绩。编写主程序模拟生成三个学生给其赋值、完成相关信息的输出。
- 12月-技能
- 1.编写程序,从键盘上输入三个整数,找出最大值,找出最小值,实现由小到大排序
- 2.判断是否存在一个三位数abc,满足abc=(a*a+b*b+c*c)*3,若存在则输出abc,不存在则提示不存在
- 3.输出一个1,两个2,三个3···九个9排列成的上小下大的金字塔
- 4.由键盘任意输入3个整数a、b、c做边长,判断能否组成一个三角形(三角形要求任意两边的和大于第三边),若可以组成三角形,判断是否可以组成直角三角形(直角三角形是某两边的平方和等于第三边的平方)
- 5.完成注册与登录功能:
- 1月-技能
- 1.编写程序,求和sum=2^0+2^1+2^2+...2^n,sum>10000时停止,并输出最后一项
- 2.求e=1+1/1!+1/2!+1/3!+...的结果,要求最后一项小于0.000001时停止,并输出最后一项阶乘表示的值
- 3.编程实现输入月份(1-12),电脑输出季节
- 4.求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...,精度要求1e-6'
- 5.编程实现以下功能:
- 2月-技能
- 1.编写程序,求s的值
- 2.求s的值,s=1+1/(1+2)+ 1/(1+2+3)+ 1/(1+2+3+4)+1/(1+2+3+4+..n)
- 3.编程实现输入大写字母,输出对应的小写字母
- 4.有一个7层灯塔,每层所点灯数都等于该层上一层的两倍,灯的总数是381盏:
- 11月-技能
- 3.编程实现超市购物结算系统:
9月-技能
1.一个岛上有两种神奇动物,其中神奇鸟类2个头3只脚,神奇兽类3个头8只脚。游客在浓雾中看到一群动物,共看到35个头和110只脚,求可能的鸟类和兽类的只数
要求1:main函数中,头和脚的数量(35,110)通过键盘输入
要求2:合理使用for循环
要求3:输出计算后的结果
要求4:有合理注释
void week2_9_1(){
int tou,jiao;
cin >> tou >>jiao;
for(int i = 0;i<=tou;i++){ //鸟
for(int j = 0;j<=tou;j++){ //兽
if(2*i+3*j == tou && i*3+j*8 == jiao){
cout << i << " " << j << endl;
}
}
}
}
2.构建一个长度为5的数组,并且实现下列要求
要求1:从键盘依次输入5个正整数,并显示一次初始顺序
要求2:按照数字从大到小的顺序重新排列其顺序。
方法1:调用函数,直接传值交换法
方法2:调用函数,传指针交换法
要求3:输出排列后的顺序
void sort1(int arr[],int size){
for(int i = 0;i<5;i++){
for(int j = 0;j<5-i-1;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j]; //值交换位置
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i<5;i++){
cout << arr[i] << endl;
}
}
void sort2(int *p,int size){
for(int i = 0;i<5;i++){
for(int j = 0;j<5-i-1;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<5;i++){
cout << p[i] << endl;
}
}
int main(){
int arr1[] = {2,3,5,6,8};
sort1(arr1,5);
int *p =arr1;
sort2(p,5);
}
3.构建一个结构体student,要求成员有
①长度20的char型数组 (name)
②int型常量(stu_num)
③长度2的char型数组(sex)
依据该结构,初始化两个同结构不同名的实体,并打印其信息
struct student{
char name[20];
const int stu_num = 1; //常量
char sex[2];
};
int main() {
student stu1 ={{'a','c','b'},1,{'a','b'}};
cout << stu1.name <<endl;
cout << stu1.stu_num << endl;
for(int i = 0;i<2;i++){
cout<< stu1.sex[i]<< endl;
}
student stu2 = {}; //这里自己补齐,同上
}
10月-技能
1.排序
按照商品价格降序输出商品信息
struct Goods {//定义结构体
int id;
string name;
int price;
int number;
};
//重写排序方式
bool compare(Goods g1,Goods g2){
return g1.price > g2.price; //我要按照价钱排序
}
int main(){
Goods arr[4]={
{1,"手机",2000,1},
{2,"电脑",5000,3},
{3,"水杯",500,6},
{4,"椅子",10000,9}
};
sort(arr,arr+4, compare); //排序
for(int i = 0;i<4;i++){
cout << arr[i].id <<" " << arr[i].name <<" "<< arr[i].price <<" "<< arr[i].number <<" "<< endl;
}
}
2.编程实现以下功能:
(1)定义函数mySort,实现对接收过来的一组数据进行升序排序,参数使用数组
(2)定义函数myPrint,实现对接收过来的一组数据进行输出,参数使用指针
(3)主函数中:
定义数组保存学生的成绩
输入学生人数n,
输入n个学生的成绩
调用函数mySort,实现对成绩升序排序
调用函数myPrint,实现打印输出排序后的数琚
void mySort(int arr[],int size){
sort(arr,arr+size); //排序
}
//(2)定义函数myPrint,实现对接收过来的一组数据进行输出,参数使用指针
void myPrint(int arr[],int size){
int *p = arr;
for(int i = 0;i<size;i++){
cout << *p << endl;
p++;
}
}
int main(){
cout << "请输入学生的数量"<< endl;
int n;
cin >> n;
int *arr = new int[n]; //动态数组
for(int i = 0;i<n;i++){
cin >> arr[i];
}
mySort(arr,n); //排序
myPrint(arr,n); //打印
}
3.有三个学生组队参加某比赛,每个学生信息包含准考证号,姓名,个人成绩,另团队有一总成绩。编写主程序模拟生成三个学生给其赋值、完成相关信息的输出。
定义学生类Student
私有数据成员:学生准考证号(exam_number),学生姓名(stu_name )
公有数据成员:团队成绩 (team_grade)
公有成员函数:ScanStuInfo函数实现功能为输入三个学生的姓名和准考证号,输 入团队成绩
PrintStuInfo函数实现输出所有学生信息以及团队成绩
主函数中创建一个Student对象,分别调用两个成员函数,实现相应的效果
#include <iostream>
using namespace std;
//无参构造
class Student{
private: //私有
int exam_number[3]; //号 1 2 3
string stu_name[3]; //学生 zsb shh zj
public:
int team_grade;//团队成绩
void ScanStuInfo(){ //录入学生的成绩
for(int i = 0;i<3;i++){
cout <<"输入第"<<(i+1)<<"准考证号:";
cin >> exam_number[i];
cout <<"输入第"<<(i+1)<<"学生姓名:";
cin >> stu_name[i] ;
}
cout <<"输入团队成绩:";
cin >> team_grade;
}
void PrintStuInfo(){ //打印学生的信息
for(int i = 0;i<3;i++){
cout << "学生的号:" << exam_number[i] <<" " << "学生的名字:" << stu_name[i] <<" " <<endl;
}
cout << "团队成绩是:" << team_grade << endl;
}
};
int main(){
Student stu1; //创建对象,无参构造
stu1.ScanStuInfo(); //用对象调用函数
stu1.PrintStuInfo();
}
12月-技能
1.编写程序,从键盘上输入三个整数,找出最大值,找出最小值,实现由小到大排序
大佬自己补齐,你可以的~~~~
2.判断是否存在一个三位数abc,满足abc=(aa+bb+c*c)*3,若存在则输出abc,不存在则提示不存在
void test12_2(){
for(int abc=100;abc<=999;abc++){
int a = abc/100%10;
int b = abc/10%10;
int c = abc%10;
if((a*a+b*b+c*c)*3== abc){
cout << abc << endl;
}
}
}
答案:267
3.输出一个1,两个2,三个3···九个9排列成的上小下大的金字塔
void test12_3(){
for(int i = 1;i<=9;i++){
for(int k = 9;k>=i;k--){
cout << " ";
}
for(int j = 1;j<=i;j++){
cout << i << " " ;
}
cout << endl;
}
}
4.由键盘任意输入3个整数a、b、c做边长,判断能否组成一个三角形(三角形要求任意两边的和大于第三边),若可以组成三角形,判断是否可以组成直角三角形(直角三角形是某两边的平方和等于第三边的平方)
void test12_4(){
int a,b,c;
cin >> a >> b>> c;
if(a+b > c && a+c > b && b+c>a){
if(a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b){
cout << "是直角三角形" << endl;
} else
{
cout << "是三角形" << endl;
}
} else{
cout << "不是三角形" << endl;
}
}
5.完成注册与登录功能:
完成注册功能:要求用户名输入账号a1,密码k1。
完成登录功能:如果用户名输入账号a2和注册账号a1一致,密码k2与k1一致,提示登陆成功。
否则提示“输入错误,请重新输入!您还有*次机会”。
三次输入错误后将无法再输入,提示“对不起,你的账号已被锁定!”
void test12_5(){
cout << "请输入注册信息:" << endl;
string name,pwd;
cin >> name >> pwd;
string name1,pwd1; //登录
int error_num =0; //错误次数
while (true){ //死循环
cout << "请输入登录信息:" << endl;
cin >> name1 >> pwd1;
if(name == name1 && pwd == pwd1){
cout << "登录成功" << endl;
break;
} else{
error_num++; //1
cout << "输入错误,请重新输入!您还有" << 3-error_num <<"次机会" << endl;
if(error_num >= 3){
cout<< "对不起,你的账号已被锁定!" << endl;
break;
}
}
}
}
1月-技能
1.编写程序,求和sum=20+21+22+…2n,sum>10000时停止,并输出最后一项
的2^n中n的值是多少 !阶乘 ^平方
void month1_1(){
int sum = 0;
for(int n = 0;;n++){
sum += pow(2,n); //pow用平算平方
if(sum>10000){
cout << n << endl;
break;
}
}
cout << sum << endl;
}
2.求e=1+1/1!+1/2!+1/3!+…的结果,要求最后一项小于0.000001时停止,并输出最后一项阶乘表示的值
void month1_2(){
double e = 1;
double sum = 1;
for(int i = 1;;i++){
sum*=i; //阶乘1*1 1*1*2 1*1*2*3
e+=(1/sum);
if(1/sum < 0.000001){
cout << "数字是"<< i <<"阶乘:" << sum << endl;
break;
}
}
}
3.编程实现输入月份(1-12),电脑输出季节
春季为3、4、5月份,夏季为6、7、8月份,秋季为9、10、11月份,冬季为12、1、2月份, 例: 输入月份:12 电脑输出:冬季
自己来吧,着实有点简单了~~~是不是。。。。
4.求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + …,精度要求1e-6’
void month1_3(){
double Pi = 0; //1
double f = 1; //用来换符号- +
for(double i = 1;;i+=2){
Pi+=f/i;
f*=-1;
if(1/i < 1e-6){
break;
}
}
cout << Pi*4 << endl;
}
5.编程实现以下功能:
(1)定义函数fsort,实现对接收的一组数据进行升序(由小到大)排序,参数使用数组
(2)定义函数frint,实现对接收的一组数据进行输出
(3)主函数中:
定义数组保存学生的成绩
输入学生的成绩
调用函数fsort,实现对成绩升序(由小到大)排序
调用函数fprint,实现打印输出排序后的数据
void fsort(int score[],int size){
//排序
sort(score,score+size);
}
//形参(名字任意)
void frint(int arr[],int size){
//遍历
for(int i = 0;i<size;i++){ //0 1 2 3 4
cout << arr[i] <<endl;
}
}
int main(){
int score[5];
cout << "输入学生的成绩:" << endl;
for(int i = 0;i<5;i++){
cin >> score[i];
}
fsort(score,5);
//实参 (实际的参数)
frint(score,5);
}
2月-技能
1.编写程序,求s的值
(1)编程实现s=2+4+6+8+…+m,要求m为偶数
(2)当s>=10000时停止
输出s最后的值
void testweek2_1(){
int s;
for(int m = 2;;m+=2){ //2 4 6 8
s+=m;
if(s>=10000){
cout << m<< endl;
break;
}
}
cout << s<< endl;
}
2.求s的值,s=1+1/(1+2)+ 1/(1+2+3)+ 1/(1+2+3+4)+1/(1+2+3+4+…n)
(1)1/(1+2+3+4+…n)<1e-6(即0.000001)停止
(2)计算停止时n的值
(3)输出正确的结果s
void testweek2_2(){
double s;
double sum = 0; //1
for(int n=1;;n++){
sum+=n;
s+=1/sum;
if(1/sum<0.000001){
cout << n << endl;
break;
}
}
cout << s << endl;
}
3.编程实现输入大写字母,输出对应的小写字母
(1)提示输入一个大写字母,输入错误则提示有误,请重新输入
(2)将输入大写转为对应的小写
(3)结果按格式 A-a 输出
void zfctest2(){
char str3; //让用户输入一个字母
cin >> str3;
if(isupper(str3)){
char c =tolower(str3);
cout << str3 << "-" << c << endl;
} else{
cout << "重新输入" << endl;
}
}
4.有一个7层灯塔,每层所点灯数都等于该层上一层的两倍,灯的总数是381盏:
(1)要求使用for循环实现
(2)要求使用数组保存每层所点灯数
(3)计算塔底灯数
(4)计算塔顶灯数
(5)第几层的灯数为48
(6)遍历输出每层灯数,要求由上至下输出
6. 命名规范,有注释。
7. 运行无错误 。
void dt2(){
int m = 1; //假设第1层是1个
int sum = 0; //计算7层有多少个灯塔
for(int i =1;i<=7;i++){
sum+=m;
m*=2;
}
int a = 381/sum; //得到塔顶3
cout << "塔顶(第1层)是" << a << endl;
for(int i = 2;i<=7;i++){
a*=2;
cout << "第"<<i << "层的灯是" << a <<"个" << endl;
}
}
11月-技能
3.编程实现超市购物结算系统:
(1).某同学去超市买东西,结算时提示输入泡面的购买量、单价(5.5)
(2).提示输入面包的购买量、单价(6.5)
(3).提示输入火腿的购买量、单价(3)
(4).要求定义食品类Foods,公有成员包括名字name,数量number,价格price
(5).要求定义结算函数Balancing,结算当前食品价格
(6).定义函数Print输出所有购物的统计信息
(7).输出购买所有商品最终消费金额Total
float Total = 0; //总价
class Foods{
public:
//属性
string name; //名称
int number; //数量
float price; //单价
Foods(string name,int number,float price)
{
this->name = name;
this->price = price;
this->number = number;
}
//行为
void Balancing(){
Total+=number*price;
cout << "价钱:" <<number*price << endl;
cout <<"总价"<< Total << endl;
}
void Print(){
cout << "名称:" << name <<"数量:" << number << "单价:"<<price << endl;
}
};
int main(){
Foods mb("面包",4,5);
mb.Print();
mb.Balancing();
Foods ht("火腿",2,3);
ht.Print();
ht.Balancing();
}