求助,小弟刚刚学习C++,有有一道题不会做,后天要交,大哥大姐多多帮助啊!(新人第一次发帖求助)

时间:2020-11-27 01:44:08
题目是这样的:
1.建一个文本文件student.txt,保存在自己的目录下备用,内容为一下几行:
Name:abcd
Age:32
Address:Hai Dian distrect,Beijing
Score:90

建立一个头文件student.h,保存在自己的目录下备用,文件内容为student类的声明:
#include<iostream>
#include?<fstream>
#include<list>
#include<string>
using namespace std;

class student{
       string name;
       unsigned int age;
       string address;
       float score;
public:
       student(){}//无参不做任何操作
       student(string file_name);//从文件中读取信息初始化各个数据成员。
friend ostream& operator<<(const & os,const student& stu);//用于向标准输出设备输出student类对象的内容。
friend istream& operator>>(istream & is ,student & stu);//用于从标准输入设备读取信息到stu类对象中。
friend bool operator<(const student & s1,const student & s2 );//用于按年龄比较两个student类对象第一个是否小于第二个。
};
建立一个实现文件student.cc,实现student.cc类中声明的带参构造函数用来从指定文件中读取信息到一个studnet对象中,重载输出运算符(<<)用来把一个student对象的信息输出。
写一个测试程序,从student.txt中读取信息到student类对象中,并把对象显示到屏幕上。程序保存成student_test.cc文件中。
2.修改student.cc文件,实现重载输入算符(>>)用来从键盘读取一个student对象信息,重载小于运算符(<)用来按年龄比较两个student类的对象,如果这个对象年龄小就认为这个对象小。
修改测试程序student.cc,用一个list容器保存5个student对象,5个对象的数据从键盘输入,把5个对象按年龄进行排序,排序后结果同时输出到屏幕和students.cc文件。student.txt格式和student.txt相同。


急需。谢谢各位多多帮助!

18 个解决方案

#1


大哥大姐多多帮忙啊,我刚刚学习C++,是标准的C++菜鸟,谢谢帮助!

#2


作业贴?小心被删除,还是自己先做吧,有问题再问。

#3


我做了,可是错误多多,怎么都运行不下来。
所以才来求助的

#4


....还是不会

#5


先贴你写的程序,发上来大家改错,虽然通常改错比编程序更累,但还是希望看到你写的东西。

#6


哈哈,好久没见过有人来发作业贴了

#7


路过!

#8


我才学习才C++15天,有点难度

#9


一个月前还不知道C++呢,
主要是从文件读数据初始化类那块儿。不知道怎么弄
不知道是用什么,用read(),get()还是getline(),总感觉都不合适。

#10


使用C++建议用流,比如:
ifstream *fs = new ifstream("a",ios::binney);
student dat;
fs->read(&dat,sizeof(dat)); // *fs>>dat
...
delete fs;

#11


ifstream infile("a",ios::in);
student dat;
infile.write((char *)&dat,sizeof(dat));
infile.close;


ofstream outfile("a",ios::out);
student dat;
outfile.read((char *)&sizeof(dat));
cout<<dat.name<<dat.age………………;
outfile.close;

#12


fs->read(&dat,sizeof(dat)); // *fs>>dat
这里不能把读到的数据直接赋值给类吧,read的第一个参数不匹配

#13


student dat;
ifstream si("a",ios::in|ios::binney);
si>>dat;
...
si.close();
ofstream so("a",ios::out|ios::binney);
...
so<<dat;
...
so.close();
你得student不是已经重载了>>和<<了吗,那就好好利用它。

#14


恩,谢谢啊
还正在做呢
作出来后发出来各位给看看

#15


学C++15天就布置这样的作业,你们的老师也太无良了吧,你是上海交大的吧~~~我学了半年也看不懂题目

#16


是啊我们学30节课 就搞工资管理  虽然最简单的 可是也难啊

#17


路过。。。

#18


现在学校里都这样?

#1


大哥大姐多多帮忙啊,我刚刚学习C++,是标准的C++菜鸟,谢谢帮助!

#2


作业贴?小心被删除,还是自己先做吧,有问题再问。

#3


我做了,可是错误多多,怎么都运行不下来。
所以才来求助的

#4


....还是不会

#5


先贴你写的程序,发上来大家改错,虽然通常改错比编程序更累,但还是希望看到你写的东西。

#6


哈哈,好久没见过有人来发作业贴了

#7


路过!

#8


我才学习才C++15天,有点难度

#9


一个月前还不知道C++呢,
主要是从文件读数据初始化类那块儿。不知道怎么弄
不知道是用什么,用read(),get()还是getline(),总感觉都不合适。

#10


使用C++建议用流,比如:
ifstream *fs = new ifstream("a",ios::binney);
student dat;
fs->read(&dat,sizeof(dat)); // *fs>>dat
...
delete fs;

#11


ifstream infile("a",ios::in);
student dat;
infile.write((char *)&dat,sizeof(dat));
infile.close;


ofstream outfile("a",ios::out);
student dat;
outfile.read((char *)&sizeof(dat));
cout<<dat.name<<dat.age………………;
outfile.close;

#12


fs->read(&dat,sizeof(dat)); // *fs>>dat
这里不能把读到的数据直接赋值给类吧,read的第一个参数不匹配

#13


student dat;
ifstream si("a",ios::in|ios::binney);
si>>dat;
...
si.close();
ofstream so("a",ios::out|ios::binney);
...
so<<dat;
...
so.close();
你得student不是已经重载了>>和<<了吗,那就好好利用它。

#14


恩,谢谢啊
还正在做呢
作出来后发出来各位给看看

#15


学C++15天就布置这样的作业,你们的老师也太无良了吧,你是上海交大的吧~~~我学了半年也看不懂题目

#16


是啊我们学30节课 就搞工资管理  虽然最简单的 可是也难啊

#17


路过。。。

#18


现在学校里都这样?