C++实验题

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 #include #include using namespace std; struct Iformation {

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 0002

0003 using namespace std; 0004

输出样例:

0005 int main() 0006 {

0007 cout << \0008 return 0; 0009 }

本机测试时,可在项目的当前路径下建立一个名为SrcData.txt的源文本文件。

提示:

利用getline函数读取行数据;利用setfill和setw格式控制符设置输出格式。

来源:

#include #include #include using namespace std;

int main()

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4