首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于C++一个数据输入输出的有关问题

2013-12-10 
关于C++一个数据输入输出的问题代码如下,以我这样的方式打印输出,想问问应该如何保存数据到TXT文件中,又该

关于C++一个数据输入输出的问题
代码如下,以我这样的方式打印输出,想问问应该如何保存数据到TXT文件中,又该怎么读
#include<iostream>
#include<string>   
#include<iomanip>
using namespace std;
class kecheng           //模块一
{
public:                //公有数据
void setvalue();      //输入函数
void showke();      //处理、输出函数
string ming[16];     //课程名
string jiao[16];      //教师名
string di[16];       //教室地点
int qi[16];         //课程起始周
int jie[16];         //课程结束周
int xing[16];       //星期
int tang[16];       //第几堂
}; 
void kecheng::setvalue()  //模块二
{
for(int i=0;i<16;i++)  //for循环控制输入
{
cout<<"*请输入课程名称(请简写 不要超过6个字)"<<endl;
cin>>ming[i];
cout<<"*请输入课程教师"<<endl;
cin>>jiao[i];
cout<<"*请输入教室"<<endl;
cin>>di[i];
cout<<"*请输入课程的起始周"<<endl;
cin>>qi[i];
if(qi[i]>20)            
{
cout<<"输入错误!  请重新输入"<<endl;   //错误判断
cin>>qi[i];                            //重新输入
}  
cout<<"*请输入课程的结束周"<<endl;
cin>>jie[i];
if(jie[i]>20)                           //错误判断
{
cout<<"输入错误!  请重新输入"<<endl;
cin>>jie[i];                        //重新输入

cout<<"*请输入课程一周有几天有"<<endl; //一门课一周几节的处理
int s;
cin>>s;                               //输入节数
{
for(int u=0;u<s;u++)                 //for循环控制多节输入
{
ming[i+u]=ming[i];
jiao[i+u]=jiao[i];
di[i+u]=di[i];
qi[i+u]=qi[i];
jie[i+u]=jie[i];
cout<<"*请输入第"<<u+1<<"次课是星期几"<<endl;
cin>>xing[i+u];
if(xing[i+u]>7)
{
cout<<"输入错误!  请重新输入"<<endl;

cin>>xing[i+u];
}
cout<<"*请输入课程是第几堂"<<endl;
cin>>tang[i+u];
if(tang[i+u]>5)
{
cout<<"输入错误!  请重新输入"<<endl;
cin>>tang[i+u];
}
}
}
i=i+s;
cout<<"*请问是否继续下一个课程?(Y/N)"<<endl;  //是否继续输入
char num;
cin>>num;
if(num=='Y'||num=='y') continue;                  //继续下一个
else break;                                    //结束输入
}
}
void kecheng::showke()                                //模块三
{
cout<<"                                   ////////////////////////////////"<<endl;                              //课表的页眉
cout<<"                                   //课           程           表//"<<endl;
cout<<"                                   ////////////////////////////////"<<endl;
cout<<"_____________________________________________________________________________________________________"<<endl;
cout<<"         |     一     |     二     |     三     |     四     |     五     |     六     |     日     |   "<<endl;


cout<<"_____________________________________________________________________________________________________"<<endl;
for(int i=1;i<6;i++)
{
int l;                          //用l来检测此项是否有内容输出
switch(i)                       //课表的一天节数 输出
{
case 1:cout<<"一(1-2)  |";break;
case 2:cout<<"二(3-4)  |";break;
case 3:cout<<"三(5-6)  |";break;
case 4:cout<<"四(7-8)  |";break;
case 5:cout<<"五(9-10) |";break;
}
for(int j=1;j<8;j++)
{
l=0;
for(int n=0;n<16;n++)
{
if(tang[n]==i&&xing[n]==j)
{
cout<<setw(12)<<ming[n]<<"|";  //课名输出
l=1;
}
}
if(l==0)
{
cout<<"            |";           //若没有则输出空格
}
}
cout<<endl;
cout<<"         | ";
for( j=1;j<8;j++)
{
l=0;
for(int n=0;n<16;n++)
{
if(tang[n]==i&&xing[n]==j)
{
cout<<setw(10)<<jiao[n]<<" | ";  //教师输出
l=1;
}
}
if(l==0)
{
cout<<"           | ";           //若没有则输出空格
}
}
cout<<endl;
cout<<"         | ";                     
for( j=1;j<8;j++)
{
l=0;
for(int n=0;n<16;n++)
{
if(tang[n]==i&&xing[n]==j)
{
cout<<setw(11)<<di[n]<<"| ";    //地点输出
l=1;
}
}
if(l==0)
{
cout<<"           | ";          //若没有则输出空格
}
}
cout<<endl;
cout<<"         |";
for( j=1;j<8;j++)
{
l=0;
for(int n=0;n<16;n++)
{
if(tang[n]==i&&xing[n]==j)
{
cout<<" ("<<setw(2)<<qi[n]<<" -"<<setw(2)<<jie[n]<<")周 ";  //总周数输出
cout<<"|";
l=1;
}
}
if(l==0)
{
cout<<setw(12)<<"          ";     //若没有则输出空格
cout<<"|";
}
}
cout<<endl;
cout<<"_____________________________________________________________________________________________________"<<endl;
}
}
int main()                      //模块四
{
cout<<"***************欢迎使用课程表建立系统 ^-^***************"<<endl<<endl;;   //系统进入
kecheng ke;
cout<<" *************** 请输入相关课程信息***************"<<endl<<endl;;
ke.setvalue();               //若没有则输出空格用
ke.showke();
return 0;
}

[解决办法]
修改了下,自己编译下



#include <iostream>
#include <string>   
#include <iomanip>
#include <stdlib.h>
#include <iostream>
#include <fstream>

using namespace std;

class kecheng           //模块一
{
public:                //公有数据
    void setvalue();      //输入函数
    void showke();      //处理、输出函数
    string ming[16];     //课程名


    string jiao[16];      //教师名
    string di[16];       //教室地点
    int qi[16];         //课程起始周
    int jie[16];         //课程结束周
    int xing[16];       //星期
    int tang[16];       //第几堂
};

void kecheng::setvalue()  //模块二
{
    for(int i=0;i<16;i++)  //for循环控制输入
    {
        cout<<"*请输入课程名称(请简写 不要超过6个字)"<<endl;
        cin>>ming[i];
        cout<<"*请输入课程教师"<<endl;
        cin>>jiao[i];
        cout<<"*请输入教室"<<endl;
        cin>>di[i];
        cout<<"*请输入课程的起始周"<<endl;
        cin>>qi[i];

        if(qi[i]>20)
        {
            cout<<"输入错误!  请重新输入"<<endl;   //错误判断
            cin>>qi[i];                            //重新输入
        }

        cout<<"*请输入课程的结束周"<<endl;
        cin>>jie[i];

        if(jie[i]>20)                           //错误判断
        {
            cout<<"输入错误!  请重新输入"<<endl;
            cin>>jie[i];                        //重新输入
        }

        cout<<"*请输入课程一周有几天有"<<endl; //一门课一周几节的处理
        int s;
        cin>>s;                               //输入节数

        for(int u=0;u<s;u++)                 //for循环控制多节输入
        {
            ming[i+u]=ming[i];
            jiao[i+u]=jiao[i];
            di[i+u]=di[i];
            qi[i+u]=qi[i];
            jie[i+u]=jie[i];

            cout<<"*请输入第"<<u+1<<"次课是星期几"<<endl;
            cin>>xing[i+u];

            if(xing[i+u]>7)
            {
                cout<<"输入错误!  请重新输入"<<endl;
                cin>>xing[i+u];
            }

            cout<<"*请输入课程是第几堂"<<endl;
            cin>>tang[i+u];

            if(tang[i+u]>5)
            {
                cout<<"输入错误!  请重新输入"<<endl;
                cin>>tang[i+u];
            }
        }
        i=i+s;
        cout<<"*请问是否继续下一个课程?(Y/N)"<<endl;  //是否继续输入
        char num;
        cin>>num;
        if(num=='Y'


[解决办法]
num=='y') continue;                  //继续下一个
        else break;                                    //结束输入
    }
}

void kecheng::showke()                                //模块三
{
    // 保存cout流缓冲区指针
    streambuf* coutBuf = cout.rdbuf();

    ofstream of("kechen.txt");
    // 获取文件kechen.txt流缓冲区指针
    streambuf* fileBuf = of.rdbuf();

    // 设置cout流缓冲区指针为out.txt的流缓冲区指针
    cout.rdbuf(fileBuf);
    
    cout<<"                                   ////////////////////////////////"<<endl;                              //课表的页眉
    cout<<"                                   //课           程           表//"<<endl;
    cout<<"                                   ////////////////////////////////"<<endl;
    cout<<"_____________________________________________________________________________________________________"<<endl;
    cout<<"         
[解决办法]
     一     
[解决办法]
     二     
[解决办法]
     三     
[解决办法]
     四     
[解决办法]
     五     
[解决办法]
     六     
[解决办法]
     日     
[解决办法]
   "<<endl;
    cout<<"_____________________________________________________________________________________________________"<<endl;

    for(int i=1;i<6;i++)
    {
        int j,l;                          //用l来检测此项是否有内容输出
        switch(i)                       //课表的一天节数 输出
        {
            case 1:cout<<"一(1-2)  
[解决办法]
";break;
            case 2:cout<<"二(3-4)  
[解决办法]
";break;
            case 3:cout<<"三(5-6)  
[解决办法]
";break;
            case 4:cout<<"四(7-8)  
[解决办法]
";break;
            case 5:cout<<"五(9-10) 
[解决办法]
";break;
        }

        for(j=1;j<8;j++)
        {
            l=0;
            for(int n=0;n<16;n++)
            {
                if(tang[n]==i&&xing[n]==j)
                {


                    cout<<setw(12)<<ming[n]<<"
[解决办法]
";  //课名输出
                    l=1;
                }
            }

            if(l==0)
            {
                cout<<"            
[解决办法]
";           //若没有则输出空格
            }
        }

        cout<<endl;
        cout<<"         
[解决办法]
 ";

        for(j=1;j<8;j++)
        {
            l=0;
            for(int n=0;n<16;n++)
            {
                if(tang[n]==i&&xing[n]==j)
                {
                    cout<<setw(10)<<jiao[n]<<" 
[解决办法]
 ";  //教师输出
                    l=1;
                }
            }

            if(l==0)
            {
                cout<<"           
[解决办法]
 ";           //若没有则输出空格
            }
        }

        cout<<endl;
        cout<<"         
[解决办法]
 ";

        for( j=1;j<8;j++)
        {
            l=0;
            for(int n=0;n<16;n++)
            {
                if(tang[n]==i&&xing[n]==j)
                {
                    cout<<setw(11)<<di[n]<<"
[解决办法]
 ";    //地点输出
                    l=1;
                }
            }

            if(l==0)
            {
                cout<<"           
[解决办法]
 ";          //若没有则输出空格
            }
        }
    
        cout<<endl;
        cout<<"         
[解决办法]
";

        for( j=1;j<8;j++)
        {
            l=0;
            for(int n=0;n<16;n++)


            {
                if(tang[n]==i&&xing[n]==j)
                {
                    cout<<" ("<<setw(2)<<qi[n]<<" -"<<setw(2)<<jie[n]<<")周 ";  //总周数输出
                    cout<<"
[解决办法]
";
                    l=1;
                }
            }

            if(l==0)
            {
                cout<<setw(12)<<"          ";     //若没有则输出空格
                cout<<"
[解决办法]
";
            }
        }

        cout<<endl;
        cout<<"_____________________________________________________________________________________________________"<<endl;
    }

    of.flush();
    of.close();

    // 恢复cout原来的流缓冲区指针
    cout.rdbuf(coutBuf);
}

int main()                      //模块四
{
    cout<<"***************欢迎使用课程表建立系统 ^-^***************"<<endl<<endl;;   //系统进入
    kecheng ke;
    cout<<" *************** 请输入相关课程信息***************"<<endl<<endl;;
    ke.setvalue();               //若没有则输出空格用
    ke.showke();
    system("pause");
    return 0;
}

热点排行