c++ chap1 to chap 3
#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED
struct Course
{
int id;
std::string name;
};
const int LEN = 7;
void print_help();
void print_all_course(Course* courses[LEN]);
void print_course_count(Course* courses[LEN]);
void print_maxlength(Course* courses[LEN]);
bool remove_last_course(Course* courses[LEN]);
#endif // MAIN_H_INCLUDED
#include <iostream>
#include "main.h"
using namespace std;
int main()
{
Course* courses[LEN] =
{
new Course{1,"Linux"},
new Course{2,"C++"},
new Course{3,"HTML"},
new Course{4,"NodeJS"},
new Course{5,"Shell"},
new Course{6,"Python"},
new Course{7,"C#"}
};
while(true)
{
char input = std::cin.get();
switch(input)
{
case '0':
print_help();
break;
case '1':
print_all_course(courses);
break;
case '2':
print_course_count(courses);
break;
case '3':
print_maxlength(courses);
break;
case '4':
{
bool ret = remove_last_course(courses);
if(ret)
print_all_course(courses);
else
cout << "there is no course any more !";
break;
}
case '5':
goto exit;
break;
}
}
exit:
cout << "bye !";
return 0;
}
void print_help()
{
cout << "操作命令输入0,打印出程序帮助信息,即每个操作命令的作用" << endl;
cout << "操作命令输入1,打印出程序中存储的所有课程ID和课程名" << endl;
cout << "输入2,打印出课程数量" << endl;
cout << "输入3,打印出名字最长的课程信息,如果有多个相同长度的课程名请都打印出" << endl;
cout << "输入4,删除最后一个课程,如果没有课程需要返回错误信息" << endl;
cout << "输入5,退出程序" << endl;
}
void print_all_course(Course* courses[LEN])
{
for(int i = 0; i < LEN; i++)
{
if(courses[i] != NULL)
cout << "id : " << (*courses[i]).id << "; name : " << (*courses[i]).name << endl;
}
}
void print_course_count(Course* courses[LEN])
{
int num;
for(num = 0; num < LEN; num++)
{
if(courses[num] == NULL)
break;
}
cout << "the count of course is : " << num << endl;
}
void print_maxlength(Course* courses[LEN])
{
int maxLen = 0;
for(int i = 0; i < LEN; i++)
{
if((*courses[i]).name.length() > maxLen)
maxLen = (*courses[i]).name.length();
}
cout << "the longest name of the courses : " << endl;
for(int i = 0; i < LEN; i++)
{
if((*courses[i]).name.length() == maxLen)
cout << (*courses[i]).name << endl;
}
}
bool remove_last_course(Course* courses[LEN])
{
for(int i = LEN - 1 ; i >= 0 ; i--)
{
if(courses[i] != NULL)
{
delete(courses[i]);
courses[i] = NULL;
return true;
}
}
return false;
}
最新文章
- iOS自定义model排序
- kvm 使用入门详解
- .NET MVC控制器分离到类库的方法
- thinkphp框架中“关联操作”的完整定义详解
- JavaDate类
- mysql索引补充
- 汇编debug 截图3
- MAT(2)安装Memory Analyzer
- DictoryInfo.GetFiles
- HTML5动态分页效果代码
- js isArray小结
- Chapter 2 Open Book——33
- css块级标签、行内标签、行内块级标签
- POJ 2524 Ubiquitous Religions 解题报告
- Linux文件管理_1
- C# 程序员最常犯的 10 个错误(转)
- 【转载】在linux下别用zip 用tar来压缩文件 zip解压后还是utf-8 window10是GBK
- Unity3d之表情动画--眨眼
- Spring Boot(十七):使用Spring Boot上传文件
- CentOS6.5安装MySQL5.7详细教程(本人6.3也行)
热门文章
- C#算法之判断一个字符串是否是对称字符串
- Winform 窗体单例
- jQuery插件编写规范
- WPF 大数据加载过程中的等待效果——圆圈转动
- [译]Node.js - Event Loop
- 如何在HTML中加载Flash(2种实现方法)_HTML/Xhtml_网页制作
- FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展
- Linux下如何查看系统启动时间和运行时间
- lucene和ElasticSearch基本概念
- C# 委托和事件 与 观察者模式(发布-订阅模式)讲解 by天命