| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1617 人关注过本帖
标题:C++输出到文本本档
只看楼主 加入收藏
heyu1826
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-5-26
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
C++输出到文本本档
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
//------------------------------------------------------------------
enum EYear { FRESHMAN, SOPHOMORE, JUNIOR, SENIOR }; //学生年级
enum EStatus { BACHELOR, PART_TIME, TRAINING, OTHER }; //研究生来源
enum ELevel { UNDERGRADUATE, GRADUATE }; //学生类别
//------------------------------------------------------------------
class Student
{
public:
Student( char *name1, char *major1, EYear year,
long id1, float credit1 )
{
name = new char[strlen(name1)+1]; //分配姓名的空间
strcpy(name, name1); //姓名字符组赋值
strcpy(major, major1); //专业
id = id1; //学号
e_year = year; //本科生年级
e_level = UNDERGRADUATE; //学生类别
credit = credit1; //学分
cout<<"Constructing Student class for"<<name<<endl;
}
void print( )
{
cout<<"\n姓名:"<<name<<"\n学号:"<<id<<"\n专业:"<<major
<<"\n类别:"<<l_char(e_level)<<"\n年级:"<<y_char(e_year)
<<"\n学分:"<<credit<<endl;
}
~Student()
{
cout<<"Destructing Student class for"<<name<<endl;
delete name;
}
friend char *y_char (EYear); //友元函数,将枚举值转换成字符串
friend char *l_char (ELevel); //友元函数,将枚举值转换成字符串
private: //基类私有成员在派生类中不可被访问
EYear e_year; //本科生学生所处年级
char major[40]; //本科生专业
protected:
ELevel e_level; //本科生还是研究生
char *name; //姓名
float credit; //学分
long id; //学号
};
//-----------------------------------------------------------------------
class GStudent:public Student
{
private:
EStatus e_status; //研究生来源
char *supervisor; //论文
char thesis[50]; //学分
public:
GStudent(char *name1, char *supervisor1,
EStatus status1, char *thesis1, long id1,
float credit1) : Student(name1, " ", SENIOR,
id1, credit1)
{
supervisor = new char[strlen(supervisor1)+1];
strcpy(supervisor, supervisor1);
e_level = GRADUATE;
e_status = status1;
strcpy(thesis, thesis1);
cout<<"Constructing GStudent class for"<<name<<endl;
}
void print( )
{
cout<<"\n姓名:"<<name<<"\n学号:"<<id<<"\n类别:"
<<l_char(e_level)<<"\n来源:"<<s_char(e_status)<<"\n导师:"
<<supervisor<<"\n论文:"<< thesis<<"\n学分:"<<credit<<endl;
}
friend char *s_char(EStatus); //友元函数,将枚举值转换成字符串
~GStudent( )
{
cout<<"Destructing GStudent class for"<<name<<endl;
delete supervisor;
}
};
//-------------------------------------------------------------------
int main( )
{
ofstream out("a.txt")
s.print();
out<<s.print()<<endl;
gs.print();
out<<gs.print()<<endl; //将输出内容生成文本文本档
return 0;
}
//---------------------------------------------------------------------------
char *l_char(ELevel level)
{
switch (level)
{
case UNDERGRADUATE : return "本科生";
case GRADUATE : return "研究生";
}
}
//---------------------------------------------------------------------------
char *y_char(EYear year)
{
switch(year)
{
case FRESHMAN : return "新生";
case SOPHOMORE : return "二年级";
case JUNIOR : return "三年级";
case SENIOR : return "毕业生";
}
}
//---------------------------------------------------------------------------
char *s_char(EStatus status)
{
switch(status)
{
case BACHELOR : return "应届";
case PART_TIME: return "在职";
case TRAINING : return "代培";
case OTHER: return "其它";
}
}
//===========================================================================


85行 87行的错误怎么改?就是怎么把输出的东西直接输出到文本里
搜索更多相关主题的帖子: 文本 输出 
2010-05-26 15:30
ciweitou163
Rank: 7Rank: 7Rank: 7
来 自:河北 石家庄
等 级:黑侠
威 望:1
帖 子:144
专家分:528
注 册:2008-10-4
收藏
得分:14 
我只看了你的main()函数里
s.print();//这句 你先把这个类实例化,属性值都赋上,然后再调用方法,文件操作没什么问题。


  • 满眼生机转化钧;天工人巧日争新。
2010-05-26 16:51
heyu1826
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-5-26
收藏
得分:0 
回复 2楼 ciweitou163
Student s("张三","计算机科学与技术",SOPHOMORE,2001121021, 45.5);
GStudent gs("张飞","诸葛亮", PART_TIME, "三国演义",1600101,3.0);
加上这两句代码也不行   
2010-05-26 17:00
快速回复:C++输出到文本本档
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018476 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved