标签:pre ++ image hot 取出 提示 count hotmail turn
1.函数重载编程练习
编写重载函数add(),实现对int型,double型,Complex型数据的加法。在main()函数中定义不同类型 数据,调用测试。
#include<iostream> using namespace std; struct Complex { double real; double imaginary; }; int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } Complex add(Complex a, Complex b) { Complex i; i.real = a.real + b.real; i.imaginary = a.imaginary + b.imaginary; return i; }; int main() { int m, n; cout << "Enter two integer:"; cin >> m >> n; cout << "Their sum:" << add(m, n) << endl; double x, y; cout << "Enter two real number:"; cin >> x >> y; cout << "Their sum:" << add(x, y) << endl; Complex a, b, c; cout << "Enter two complex unmber:"; cin >> a.real >> a.imaginary; cin >> b.real >> b.imaginary; c = add(a, b); cout << "Their sum:" << c.real << "+" << c.imaginary << "i" << endl; return 0; }
2.函数模板编程练习
编写实现快速排序函数模板,并在main()函数中,定义不同类型数据,调用测试。
#include<iostream> using namespace std; void QS(int a[], int, int); int main() { int a[] = { 132,23,56,818,648,65,21,35,64,8 }, k; int n = 10; cout << "Before sort:" << endl; for (k = 0; k < n; k++) cout << a[k] << ","; cout << endl; QS(a, 0, n - 1); cout << "After sort:" << endl; for (k = 0; k < n; k++) cout << a[k] << ","; cout << endl; return 0; } void QS(int s[], int left, int right) { if (left < right) { int i = left, j = right, x = s[left];//取出数组中第一个数 while (i < j) { while (i < j && s[j] >= x) // 从右侧找第一个小于x的数 j--; if (i < j) s[i++] = s[j]; while (i < j && s[i] < x) // 从左侧找第一个大于等于x的数 i++; if (i < j) s[j--] = s[i]; } s[i] = x; QS(s, left, i - 1); // 数组中的数依次排序 QS(s, i + 1, right); } }
快速排序的关键就是从左侧和右侧找比原数大或者小的数,并且交换。
3.类的定义、实现和使用编程练习
#include <iostream> #include <string> using namespace std; // User类的声明 class User { public: User() :name(""), passwd(""), email("") {}; void setInfo(string name, string password = "111111", string email = ""); //×××(补足代码) // 声明带有默认形参值的成员函数setInfo() // 密码默认值为6个1 // 邮箱默认值为空串 void changePasswd(); void printInfo(); private: string name; string passwd; string email; }; // User类的实现 void User::setInfo(string name0, string password0, string email0) { name = name0; passwd = password0; email = email0; } // 成员函数setInfo()的实现 void User::changePasswd() { int count = 1; string passwd1; string newpasswd; cout << "the old password:"; cin >> passwd1; while (passwd1 != "111111"&&count <=
3) { count++; cout << "请重新输入"; cin >> passwd1; } if (count > 3) { cout << "plesae try later" << endl; } else { cout << "Enter new password:"<<newpasswd; cin >> newpasswd; cout << "the password is changed successfully" << endl; passwd = newpasswd; } }// 功能:设置用户名(name), 密码(passwd), 联系邮箱(email) // 成员函数changePasswd()的实现 // 功能:修改密码 // 要求:在修改密码前,要求先输入旧密码,验证无误后,才允许修改。 // 如果输入旧密码时,连续三次输入错误,则提示用户稍后再试,暂时退出修改密码程序。 // 补足代码 void User::printInfo() { cout << "name: " << name << endl; cout << "password: " << "******" << endl; cout << "email: " << email << endl; } // 成员函数printInfo()的实现 // 功能:打印用户信息 // 要求: 密码以6个*显示 // 补足代码 // ×××基础实现版预期运行结果截图:(实际编写后,请修改main()中对象实例测试) // 在主函数中测试User类 // 用User类创建对象,测试类的功能 int main() { cout << "testing 1......" << endl; // 测试1 User user1; user1.setInfo("Leonard"); user1.printInfo(); user1.changePasswd(); user1.printInfo(); cout << endl << "testing 2......" << endl << endl; // 测试2 User user2; user2.setInfo("Jonny", "92197", "xyz@hotmail.com"); user2.printInfo(); return 0; }
标签:pre ++ image hot 取出 提示 count hotmail turn
原文地址:https://www.cnblogs.com/ggwdcs/p/10591201.html