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;
}


汇编语言(王爽)实验十 编写子程序

标 题: 汇编实验10—— 编写子程序 作 者: XHS_12302 时 间:  链 接: 实验10编写子程序   在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和掌...
  • XHS_12302
  • XHS_12302
  • 2016年07月28日 16:09
  • 11897520

王爽《汇编语言》实验10:编写子程序dtoc 解答

assume cs:code data segment ;保存转换后的ASCII db 10 dup(0) data ends code segment start: mov ax,1266...
  • lixiang0522
  • lixiang0522
  • 2012年12月17日 14:22
  • 5208

王爽《汇编语言》实验10:编写子程序show_str

;实现把一段内存中的一串确定长度的代码打印出来,用02; ;注意行列号,万一debug看到变化 ;cls清屏 assume cs:code data segment db 'welcome to...
  • SHENGLI_509
  • SHENGLI_509
  • 2017年03月24日 21:12
  • 347

汇编语言 第三版 王爽 实验10-1 编写子程序 之 显示字符串

用子程序显示字符串,注意体会参数传入的思想
  • think_ycx
  • think_ycx
  • 2015年10月15日 11:56
  • 2566

王爽《汇编语言》第十章实验十 子程序2(divdw) 题目解答

; 子程序:divdw; 要求:进行不会除法溢出的除法运算,被除数为dword,除数为word,结果为dword; 参数:(ax) = 被除数dword型的低16位;  (dx) = 被除数dword...
  • dylgsy
  • dylgsy
  • 2009年03月18日 15:57
  • 2536

王爽汇编第二版实验10

王爽汇编第二版实验10
  • seanbill
  • seanbill
  • 2016年10月03日 15:25
  • 985

王爽《汇编语言》实验10:编写子程序show_str 解答

assume cs:code,ds:data data segment db 'Welcome to masm!',0 data ends code segment start: mov d...
  • lixiang0522
  • lixiang0522
  • 2012年12月14日 14:17
  • 5343

《汇编语言(第3版)》王爽 第十章实验

实验10 编写子程序  1、显示字符串 assume cs:code data segment db 'Welcome to masm!',0 data ends stack se...
  • lipanxu
  • lipanxu
  • 2016年12月18日 17:04
  • 863

数据结构实验十 排序算法

头文件 #include #include #include using namespace std; #define MAX 500000 /*从文件中读入数据存入数组a*/ int readD...
  • Summer__show_
  • Summer__show_
  • 2016年12月10日 15:09
  • 428

(这篇文章我决定至少看十遍以上)十天内掌握线性代数:惊人的超速学习实验

看我怎么驾驭MIT计算机科学的课程 我老想着学快一点,再快一点,并为此兴奋不已。掌握那些重要的学问吧,专业知识与娴熟技艺将是你的职业资本,帮你赚取金钱与享受生活。如果过得好是你的目标,学问能引你到向...
  • a2657222
  • a2657222
  • 2012年11月23日 11:29
  • 1787
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 实验十
举报原因:
原因补充:

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