Part.2

// 合并两个文件内容到一个新文件中。
// 文件名均从键盘输入
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
string filename1, filename2, newfilename;
cout << "输入要合并的两个文件名: " ;
cin >> filename1 >> filename2;
cout << "输入合并后新文件名: " ;
cin >> newfilename;
ofstream fout; // 输出文件流对象
ifstream fin; // 输入文件流对象
fin.open(filename1); // 将输入文件流对象fin与文件filename1建立关联
if(!fin.is_open()) { // 如果打开文件失败,则输出错误提示信息并退出
cerr << "fail to open file " << filename1 << endl;
system("pause");
exit();
}
fout.open(newfilename); // 将输出文件流对象fout与文件newfilename建立关联
if(!fin.is_open()) { // 如果创建/打开文件失败,输出错误提示信息并退出
cerr << "fail to open file " << newfilename << endl;
system("pause");
exit();
}
char ch;
// 从文件输入流对象fin中获取字符,并将其插入到文件输出流对象fout中
while(fin.get(ch))
fout << ch;
fin.close(); // 关闭文件输入流对象fin与文件filename1的关联
fout << endl; // 向文件输出流对象fout中插入换行
fin.open(filename2); // 将输入文件流对象fin与文件filename2建立关联
if(!fin.is_open()) { // 如果打开文件失败,则输出错误提示信息并退出
cerr << "fail to open file " << filename2 << endl;
system("pause");
exit();
}
// 从文件输入流对象fin中获取字符,并将其插入到文件输出流对象fout中
while(fin.get(ch))
fout << ch;
fin.open("3.txt",ios_base::app);
fout<<"\nmerge successfully."<<endl;
fin.close(); // 关闭文件输入流对象fin与文件filename2的关联
fout.close(); // 关闭文件输出流对象fout与文件newfilename的关联
system("pause");
return ;
}

part2

part3

1. 已知名单列表文件list.txt。编写一个应用程序,实现从名单中随机抽点n位同学(n由键盘输入),在屏幕上显 示结果,同时也将结果写入文本文件,文件名自动读取当天系统日期,如20190611.txt。

#include <iostream>
#include<fstream>
#include <string>
#include <cstdlib>
#include<sstream>
#include<ctime>
#include "utils.h" using namespace std; int main() {
ifstream fin;
ofstream fout;
string filename;
int n, totalline = ;
cout << "输入名单列表文件名:";
cin >> filename;
cout << "输入随机抽点人数:";
cin >> n;
fin.open(filename, ios_base::in);
if (!fin.is_open()) {
cerr << "fail to open file " << filename << endl;
system("pause");
exit();
}
string s, a[];
if (fin) {
while (getline(fin, s)) {
a[totalline++] = s;
}
fin.close();
}
string filename1;
filename = getCurrentDate() + ".txt";
cout << "随机抽点中..." << filename1<< endl;
srand(std::time());
for (int i=;i<=n;i++) {
int num;
int rand0 = rand();
num= rand() % totalline;
cout << a[num] << endl;
fout.open(filename, ios_base::app);
fout << a[num] << endl;
fout.close();
}
system("pause");
return ;
}

main.cpp

#include <string>
using std::string;
string getCurrentDate();

utils.h

#include "utils.h"
#include <ctime>
using std::string;
const int SIZE = ;
// 函数功能描述:返回当前系统时间
// 参数描述:无参数
// 返回值描述:以string类型返回系统当前日期,格式诸如20190611
string getCurrentDate() {
time_t time_seconds = time();
struct tm now_time;
localtime_s(&now_time, &time_seconds); // 使用了更安全的localtime_s()
char date[SIZE];
strftime(date, SIZE, "%Y%m%d", &now_time);
return (string(date));
}

utils.cpp

part 3

#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std; int main(){
string filename;
ifstream fin;
ofstream fout; int num=,num1=,line=;
cout<<"输入要统计的英文文本文件名:";
cin>>filename;
fin.open(filename);
if(!fin.is_open()){
cout<<"fail to open"<<endl;
exit();
} string a;
string b[];
int i,j;
while (getline(fin,a)){
b[line]=a;
line++;
j=a.length();
for(i=;i<j;i++){
if(a[i]==' ')
num1++;
}
num1++;
}
for(i=;i<line;i++){
j=b[i].length();
num+=j;
}
fin.close();
cout<<"字符数:"<<num<<endl;
cout<<"单词数:"<<num1<<endl;
cout<<"行数:"<<line<<endl;
return ;
}

C++ 实验六的更多相关文章

  1. VMware vSphere服务器虚拟化实验六 vCenter Server 添加储存

                                                                          VMware vSphere服务器虚拟化实验六 vCente ...

  2. 实验六 CC2530平台上P2P通信的TinyOS编程

    实验六 CC2530平台上P2P通信的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的掌握射频通信TinyOS编程方法 学生通过本实验应理解TinyOS中 ...

  3. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验六:数码管模块

    实验六:数码管模块 有关数码管的驱动,想必读者已经学烂了 ... 不过,作为学习的新仪式,再烂的东西也要温故知新,不然学习就会不健全.黑金开发板上的数码管资源,由始至终都没有改变过,笔者因此由身怀念. ...

  4. 实验 六:分析linux内核创建一个新进程的过程

    实验六:分析Linux内核创建一个新进程的过程 作者:王朝宪  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...

  5. Linux内核分析实验六

    Linux内核分析实验六 进程控制块PCB——task_struct(进程描述符) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_s ...

  6. MySQL数据库实验六:存储过程建立与调用

    实验六  存储过程建立与调用 一.实验目的 理解存储过程的概念.建立和调用方法. 二.实验环境 三.实验示例 1.定义一个函数,按性别计算所有学生的平均年龄. CREATE FUNCTION aver ...

  7. 实验六 DIV+CSS的综合应用

    实验六 DIV+CSS的综合应用 [实验目的] 1.掌握DIV布局的方法: 2.利用CSS对DIV进行美化: 3.利用CSS对文本图像等网页元素进行美化 [实验环境] 连接互联网的PC ,Win7操作 ...

  8. 《图形学》实验六:中点Bresenham算法画圆

    开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 500 ...

  9. 实验六 序列信号检测器的VHDL设计

    一.实验目的 (1)进一步熟悉Quartus II软件和GW48-PK2S实验系统的使用方法: (2)用状态机实现序列检测器的设计,了解一般状态机的设计与应用 二.实验内容 1. 基本命题 利用Qua ...

  10. 实验六:分析Linux内核创建一个新进程的过程

    原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题目自拟,内容围绕对Linu ...

随机推荐

  1. 工作的时候 用到了 获取时间 DateTime 整理了一下

    获得当前系统时间: DateTime dt = DateTime.Now; Environment.TickCount可以得到“系统启动到现在”的毫秒值 DateTime now = DateTime ...

  2. python学习之图形界面编程:

    一 tkinter:tkinter是python自带的支持tk的库,python代码调用tkinter->tk->操作系统提供的本地GUI(TKL语言开发))完成界面开发,不需要安装任何第 ...

  3. arcengine geometry union操作

    以前得到的结果老是某一个,用下面的方法就可以获取合并后的结果 IGeometry pUnionGeo = null; var bFirst = true; foreach (IGeometry pGe ...

  4. 将Object转换成Dictionary方法

    如果Object是Dictionary类型,直接返回 如果Object是NameValueCollection类型,则添加到Dictionary里 如果Object是Hashtable类型,添加到Di ...

  5. phpstorm类似sublime ctrl + alt +down多光标下移

    http://blog.jetbrains.com/phpstorm/2014/03/working-with-multiple-selection-in-phpstorm-8-eap/ 评论有一条回 ...

  6. [转](不理想)Ubuntu下更改主显示器

    参考链接:http://www.cnblogs.com/feng_013/archive/2012/03/05/2380111.html 查看显示器信息: fdm@fdm-OptiPlex-780:~ ...

  7. zuul filter

    前言 过滤器是Zuul的核心组件,这篇文章我们来详细讨论Zuul的过滤器.下面话不多说,来看看详细的介绍吧. 过滤器类型与请求生命周期 Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标 ...

  8. Linux基础知识介绍

    1.Linux知识说明1)文件位置 1)/etc/inittab2)模式介绍 0:挂起模式-不推荐 1:单用户模式-只有管理员可以进入该模式,可以修改root密码,处理有登录权限而没有修改文件的权限问 ...

  9. Servlet Context

    Servlet Context Container Provider 负责提供ServletContext的实现. A ServletContext is rooted at a known path ...

  10. ios push Payload

    https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotifi ...