//table.h
#ifndef _TABLE_H_
#define _TABLE_H_
#include <iostream>
void showTable(int n);
int Inputn();
#endif
//table.cpp
#include "table.h"
using namespace std;
void showTable(int n)
{
int a[n], i, j;
for(i = 0; i < n; i++) a[i] = i+1;
cout.setf(ios::left); //设置对齐方式为left
cout.width(5);
cout << " ";
for(i = 0; i < n; i++)
{
cout.setf(ios::left); //设置对齐方式为left
cout.width(5);
cout << a[i] ;
}
cout << '/n';
for(i = 0; i < n; i++)
{
cout.setf(ios::left); //设置对齐方式为left
cout.width(5);
cout << a[i];
for(j = 0; j < n; j++)
{
cout.setf(ios::left); //设置对齐方式为left
cout.width(5);
cout<< a[i]*a[j];
}
cout << '/n';
}
cout << endl;
}
int Inputn()
{
string nchar;
int n;
while(true)
{
cout << "请输入要显示的乘法表个数:";
getline(cin, nchar);
if(nchar.size() < 1 || nchar.size() > 2)
{
cout << "输入错误,请重新输入!" << endl;
continue;
}
int count;
n = 0;
bool flag = false;
for(count = 0; count < nchar.size(); count ++)
{
if( nchar[count] >= '1' && nchar[count] <= '9' ) n = n * 10 + nchar[count] - '0';
else { cout << "输入的不是整数,请重新输入!" << endl; flag = true; break;}
}
if(flag) continue;
else if (n < 1 || n > 9)
{
cout << "输入错误,不在范围内,请重新输入!" << endl;
continue;
}
else break;
}
return n;
}
//main.cpp
#include <cstdlib>
#include <iostream>
#include "table.h"
int main(int argc, char *argv[])
{
int n;
n = Inputn();
showTable(n);
system("PAUSE");
return EXIT_SUCCESS;
}