ostream& operator <<(ostream &out, Rational &p) {
if(p.iUp % p.iDown == 0) {
out << (p.iUp / p.iDown) << endl; } else {
out << p.iUp << '/' << p.iDown << endl; }
return out; }
int main() {
Rational a; cin >> a; Rational b; cin >> b;
Rational c = a + b;
cout << \ Rational d = a - b;
cout << \ Rational e = a * b;
cout << \ Rational f = a / b;
cout << \ Rational g = -a;
cout << \ ++a;
cout << \ --a;
cout << \ Rational a1 = a++;
cout << \ Rational a2 = a--;
cout << \ bool B = a < b;
cout <<\ B = a <= b;
cout << \ B = a > b;
cout << \
B = a >= b;
cout << \ return 0; }
试题查看
标题: 记录文件的读写操作 时 限: 3000 ms 内存限制: 10000 K 总时限: 3000 ms
源数据文件(文本格式)中包含有每个学生的记录:ID(身份识别号)、 Gender(性别)、 Birthday(生日)和EnrollmentDate(入学时间),字段之间以半角逗号分隔,记录之间以换行符分隔。
描述:
要求从源数据文件中读取学生记录并删除重复记录,然后根据ID大小对所有记录按从小到大排序,将排序后的记录保存到目标文件中并同时输出到屏幕上。
输入: 键盘输入源文件和目标文件的文件名 输出: 将处理后的学生记录输出到目标文件和屏幕
源数据文件和目标数据文件名: SrcData.txt DstData.txt 源数据文件内容:
输入样例: 10001,F,1987/4/1,2006/9/1
10005,F,1989/11/30,2008/9/1 10005,F,1989/11/30,2008/9/1 10006,M,1986/3/14,2005/9/1 10002,M,1988/5/5,2006/9/1 10003,M,1985/8/13,2005/4/1 10004,M,1985/12/15,2006/4/1 10003,M,1985/8/13,2005/4/1 目标文件和屏幕打印的内容:
10001,F,1987/4/1,2006/9/1 10002,M,1988/5/5,2006/9/1
输出样例:
10003,M,1985/8/13,2005/4/1 10004,M,1985/12/15,2006/4/1 10005,F,1989/11/30,2008/9/1 10006,M,1986/3/14,2005/9/1
提示: 来源:
#include
int ID;
string GBE; } information[1000];
int main() {
string inname; string outname; int i = 0; string id; int Id;
Iformation exchange;
cin >> inname >> outname; ofstream out(outname.c_str()); ifstream in(inname.c_str()); if(in.fail()||out.fail()) {
cout << \打开文件失败!\ return 0; }
while(!in.eof()) {
getline(in,id,','); Id = atoi(id.c_str()); information[i].ID = Id;
getline(in,information[i].GBE); i++; }
for(int j = 0; j < i - 1; j++ ) {
for(int k = 0; k < i - 1 - j; k++) {
if(information[k].ID > information[k+1].ID)
{
exchange = information[k];
information[k] = information[k+1]; information[k+1] = exchange; } }
}
Iformation save = information[0];
out << save.ID << ',' << save.GBE << endl; cout << save.ID << ',' << save.GBE << endl;
for(int j = 1; j < i ; j++ ) {
if(save.ID == information[j].ID) { ; } else {
save = information[j];
out << save.ID << ',' << save.GBE << endl; cout << save.ID << ',' << save.GBE << endl; } }
return 0; }
试题查看
标题: 简单文本文件的读写 时 限: 3000 ms 内存限制: 10000 K 总时限: 3000 ms 描述:
逐行读取源文件的文本,在每行文本前加上行号,保存到目标文件并同时输出到屏幕。
输入: 键盘输入源文件和目标文件的文件名 输出: 将添加行号后的文本输出到目标文件和屏幕
源文件和目标文件名: SrcData.txt DstData.txt 源文件内容: #include
输入样例:
using namespace std;
int main() {
cout << \return 0; }
目标文件及屏幕输出结果:
0001 #include
0003 using namespace std; 0004
输出样例:
0005 int main() 0006 {
0007 cout << \0008 return 0; 0009 }
本机测试时,可在项目的当前路径下建立一个名为SrcData.txt的源文本文件。
提示:
利用getline函数读取行数据;利用setfill和setw格式控制符设置输出格式。
来源:
#include
int main()