挑战题一(3)

来源:互联网 发布:数控铣床编程30例带图 编辑:程序博客网 时间:2024/05/19 22:03

设计课程(course)结构(如p502-2),

   1)重载==运算符,查找出课程名为“英语”的记录;

   2)重载==运算符,查找出开课学时为72的所有记录;

   3)重载>运算符,查找出开课学时>80的所有课程记录。

   设计main函数,先创建p51的表2-1,然后实现上述功能。


根课本的例子基本一致

但我做出的界面不好看

不知道怎么用C++修改字符输出宽度,细节做得不够好


#include<iostream>#include<string>struct course {char name[20];int period;int term;};bool operator==(course x, char*key){if (strcmp(x.name, key) == 0)return  true;elsereturn false;}bool operator==(course x, int key){if (x.period == key)return true;elsereturn false;}int operator>(course x, int key){return x.period > key;}void main(){course a[5] = { {"高等数学",90,1},{"离散数学",72,2},{"英语",72,1},{"计算机组成原理",90,2},{"程序设计基础",63,3} };int i;char *p = "英语";std::cout << "查找课程名为英语的记录" << std::endl;std::cout << " " << std::endl;std::cout << "查询结果为:" << std::endl;for (i = 0; i < 5; i++)if (a[i] == p){std::cout << "课程名称   开课学时   开课学期" << std::endl;std::cout << a[i].name << "       " << a[i].period << "        " << a[i].term << std::endl;std::cout << " " << std::endl;}std::cout << "查找课时为72的记录" << std::endl;std::cout << " " << std::endl;std::cout << "查询结果为:" << std::endl;for ( i = 0; i < 5; i++)if (a[i] == 72){std::cout << "课程名称   开课学时   开课学期" << std::endl;std::cout << a[i].name << "       " << a[i].period << "       " << a[i].term << std::endl;std::cout << " " << std::endl;}std::cout << "查找课时大于80的记录" << std::endl;std::cout << " " << std::endl;std::cout << "查询结果为:" << std::endl;for ( i = 0; i < 5; i++)if (a[i] > 80){std::cout << "课程名称   开课学时   开课学期" << std::endl;std::cout << a[i].name << "       " << a[i].period << "       " << a[i].term << std::endl;std::cout << " " << std::endl;}system("pause");}


如图,后面的不能对应,比较难看

原创粉丝点击