C++ 实验十

原创 2013年12月03日 11:30:53


实验十
I/O 流库
【实验目的】
1、 理解流、流类、流类体系的概念;
2、 学会用预定义格式控制函数设置输出格式(数制、宽度、小数点等) ;
3、 掌握文本文件的使用方法;
4、 初步掌握二进制文件的使用方法。
【实验内容】
1、 定义描述职工工资的类 Laborage,数据成员为职工号(No)、姓名(Name[8])、
应发工资(Ssalary)、社保金(Security)、实发工资(Fsalary)。
•定义公有成员函数 Input(),在 Input()函数内输入职工号、姓名(用 getline
函数)、应发工资、社保金,实发工资由公式:Fsalary=Ssalary-Security 计算;
•定义输出职工工资的成员函数 Show()。在显示函数 Show()中,职工号、 姓
名的输出域宽为 8、左对齐,其余数据的输出域宽为 10、右对齐、保留小数点后
两位,输出格式均用预定义格式控制函数设置;
•在主函数中用 Laborage 类定义职工对象数组 a[3]。 用 Input()输入职工工资,
用 Show()显示每个职工的工资。(提示:用 getline 输入姓名后,必须用回车结束
姓名输入);
2、
将一个源文件复制为两个不同名目的文件,源文件与目的文件均用构造函
数打开,使用成员函数 get 与 put 复制第一个目的文件,使用 getline 与插入运算
符复制第二个目的文件。 (提示:用 get 函数将输入文件流对象的指针指向文件
尾后, 无法将该指针移到文件首位置。所以只能定义两个输入文件流对象打开同
一源文件,用于两种方式的文件复制。 )
实验数据:
源文件:e:\ex\a.txt,文件内容为 souce file
目的文件 1:e:\ex\b.txt
目的文件 2:e:\ex\c.txt
3、 将存放在源文件(e:\ex\array1.txt)中学生成绩读入二维整型数组 a[3][5]中,数
组 a 的第 0 列存放学号,第 4 列存放平均成绩。计算出每个学生的平均成绩, 用
擂台法对数组 a 按平均成绩升序排序后,存放在目的文件(e:\ex\array2.txt)中。学
生的学号与成绩如实验数据所示。编写程序实现上述要求

1.

#include <IOSTREAM>
#include <string>
using namespace std;
class Laborage{
public:
	void Input(){
		cin.clear();
		cin>>No;
		getchar();
		cin.getline(Name,8,'\n');
		cin>>Ssalary>>Security;
		Fsalary=Ssalary-Security;
	}
	void Show(){
		cout.width(8);
		cout<<left<<No<<Name;
		cout.width(10);
		cout<<right;
		cout.width(10);
		cout<<Ssalary;
		cout.width(10);
		cout<<Security;
		cout.width(10);
		cout<<Fsalary<<endl;
		//printf("%-8s%-8s%10.2lf%10.2lf%10.2lf",No.c_str(),Name,Ssalary,Security,Fsalary);
	}
private:
	string No;
	char Name[8];
	double Ssalary,Security,Fsalary;
	
};
int main(){
	Laborage a[3];
	for(int i=0;i<3;i++)
	{
	a[i].Input();
	}
	for(i=0;i<3;i++)
	{
	a[i].Show();
	}
	return 0;
}

2.

#include <IOSTREAM>
#include <string>
#include <FSTREAM>
using namespace std;
int main(){
	ifstream sourceFile("a.txt");
	ofstream output1("b.txt");
	char tmp;
	sourceFile.clear();
	output1.clear();
	while((tmp=sourceFile.get())!=EOF)
	{
		output1.put(tmp);
	}
	output1.close();
	sourceFile.close();

	ifstream sourceFile2("a.txt");
	ofstream output2("c.txt");
	string tmpStr;
	while(getline(sourceFile2,tmpStr))
	{
		output2<<tmpStr<<endl;
	}
	sourceFile2.close();
	output2.close();
	return 0;
}


3.

#include <IOSTREAM>
#include <FSTREAM>
#include <sstream>
using namespace std;
void sort(int array[][5]){
	int max=array[0][4];
	int max_row=0;
	for(int i=1;i<3;i++){
		if(array[i][4]>max)
		{
			max=array[i][4];
			max_row=i;
		}
	}
	if(max_row!=2)
	{
		for(i=0;i<5;i++)
		{
		int tmp=array[max_row][i];
		array[max_row][i]=array[2][i];
		array[2][i]=tmp;
		}
	}

	if(array[0][4]>array[1][4])
	{
		for(i=0;i<5;i++){
			int tmp=array[0][i];
			array[0][i]=array[1][i];
			array[1][i]=tmp;
		}
	}
}
int main(){
	ifstream sourceFile("array1.txt");
	string tmpStr;
	int a[3][5];
	int row=0;
	while (getline(sourceFile,tmpStr))
	{
		stringstream ss(tmpStr);
		for(int i=0;i<5;i++)
		{
			ss>>a[row][i];
		}
		row++;
	}
	sort(a);
	ofstream outputFile("array2.txt");
	for(int j=0;j<3;j++)
	{
		for(int k=0;k<4;k++){
			outputFile<<a[j][k]<<"\t";
		}
		outputFile<<a[j][k]<<"\n";
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++程序设计实验报告(十一)

第12周报告: 实验目的:学会使用循环控制语句解决实际问题,并强化注重效率的观念 实验内容:用循环控制语句编写程序,完成表达式的计算 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明...

C++程序设计实验报告(二十六)

第18周报告2:二维数组 实验目的:学会二维数组的操作 实验内容:二维数组的操作 * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学...

C++实验4

C++实验4

《C++第十六周实验报告3-1》---电子词典

/* 【任务 3】电子词典 做一个简单的电子词典。在文件 dictionary.txt 中,保存的是英汉对照的一个词典,词汇量近 8000 个, 英文、中文释义与词性间用’\t’隔开。建一个表示...

C++ 第十一周实验报告2

实验目的:学会使用循环控制语句解决实际问题 实验内容:编程序生成一张从英尺到米的转换表 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声...

C++实验3-项目一

编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入

C++第1次实验--复习 (2016-03-11) 循环T1

一、问题及代码: /* * 文件名称: 01.c * 作 者: 郭宇辉 * 完成日期:2016 年 03 月 11 日 * 版 本 号:v6.0 * 对任务及求解方法的描述部分: ...

《C++第九周实验报告2-1》---接第8周任务2,定义Time类中的<<和>>运算符重载,实现时间的输入输出

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: CTim...

c++实验-项目二

一、问题及代码 项目二:本月有几天?/* 文件名称:pok classes * 作 者:余新 * 完成日期:2017 年4 月 7日 * 版 本 号:v1.0 * 对任务及求解方法...

C++程序设计实验报告(十二)----计算sin和cos的近似值

第13周报告2: 实验目的:学会使用自定义函数解决实际问题 实验内容:定义自定义函数,计算sin和cos的近似值 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)