【OOP】实验1 过程化程序设计
作者:3sbase | 发布时间:2016/3/19

实验1_1 过程化程序设计

1.1 整数计算器

  基于控制台的方式实现2个整型数的加减乘除运算;

1.2 实现学生信息的录入功能

基于控制台方式开发2012GIS学生信息录入子系统。


 


实验中的问题:
1 VS2010 控制台程序 一闪消失
不要点击F5运行,要点击Ctrl + F5运行就没问题了
或者 加一句
system("pause");

F5是启动调试。CTRL+F5是不调试直接运行。

2 VS2010 不仅仅包好C++
VS中包含C#、C++、VB等等,在新建工程时,注意选择VisualC#。
3 关于判断cin输入类型是否匹配的问题

在使用cin操作进行数据输入的过程中,经常会出现定义的数据类型与键盘输入的数据类型不匹配的情况,那么如何来解决这一问题呢?这里举一个简单的例子,

#include<iostream>

using namespace std;

int main(int argc,char **argv)

{

long x;//这里定义一个long型的变量x

cin>>x;//通过cin操作将键盘输入的数据交给x

while(cin.fail())//如果cin出现了问题,那么cin调用fail()就会返回真,也就是说进入循环中

{

cin.clear();//复位标志,将流cin中的所有状态值都重设为有效状态

cout<<"键入的数据类型与定义的数据类型不匹配,请重新输入";

cin.ignore(10000,'\n');清空上次输入

cin>>x;//重新输入x

}

return 0;

}

 
 


附相关程序:
 1_1
 

// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
 cout<<"-----------------"<<endl;
 cout<<"* 整型数计算器 *"<<endl;
 cout<<"*           ----加减乘除 *"<<endl;
 cout<<"*  TIP:输入y结束查询 *"<<endl;
 cout<<"-----------------"<<endl;
 
 
 char sel='b';
 while(sel!='y')
 {
 cout<<"请输入参与运算的两个整型数:"<<endl;
 int x,y;
 cin>>x>>y;
 cout<<"Please Select the Operation:"<<endl;
 char curOp;
 cin>>curOp;
 switch(curOp)
 {
  case 'a':
  cout<<x+y<<endl;
  break;
  case 'b':
  cout<<x-y<<endl;
  break;
  case 'c':
  cout<<x*y<<endl;
  break;

  case 'd':
  cout<<x*1.0/y<<endl;
  break;
  default:
   cout<<"Error input"<<endl;
  
 }
    cout<<"exit?"<<endl;
 cin>>sel;


 system("pause");
 return 0;

}


// ex12.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include<iostream>
#include<string>
#include<vector>
#include<fstream>
using namespace std;
struct Stu
{
 string id;
 string name;
 float score[2];
};
int _tmain(int argc, _TCHAR* argv[])
{
 cout<<"------------------------"<<endl;
 cout<<"  学生信息管理系统"<<endl;
 cout<<"     ---输入子系统"<<endl;
 cout<<"------------------------"<<endl;
 int i=0;
 char sel='b';
 vector<Stu> stus;
  while(sel!='y')
  {
  i++;
  Stu stu;
  cout<<"请输入第"<<i<<"个学生的信息:"<<endl;
  cin>>stu.id>>stu.name>>stu.score[0]>>stu.score[1];

  cout<<"input over?"<<endl;
  cin>>sel;
  stus.push_back(stu);
  }
 
  //查看输入的信息
  for(int i=0;i<stus.size();i++)
  {
   cout<<stus[i].id<<"   "<<stus[i].name<<"   "<<stus[i].score[0]<<"   "<<stus[i].score[1]<<endl;
  }

  //保存输入的信息
  ofstream fout("c:\\gis.txt");
   for(int i=0;i<stus.size();i++)
  {
   fout<<stus[i].id<<"   "<<stus[i].name<<"   "<<stus[i].score[0]<<"   "<<stus[i].score[1]<<endl;
  }
 
  fout.close();
  system("pause");
 return 0;
}