高分求Java程序翻译成C++(矩阵乘法)

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:04:30
要求:从两个TXT文件中各读取一个超级大的矩阵,将读取出的两矩阵相乘,将所得的第三个矩阵写到第三个TXT文件中,读取的矩阵和输出的矩阵中,每行的两个相邻数用逗号隔开,计算运算时间,并将时间写入第三个文件中。
运行程序时跟JAVA的有所区别,要求用main的参数实现选择输出,格式如下:一 D:\>Matrix.exe 1 s.txt 要求把计算结果和执行时间显示到屏幕上,并保存在D盘的S.txt文件中。
二 D:\>Matrix.exe 2 要求把计算结果和执行时间显示到屏幕上,不把结果写到文件中。
三 D:\>Matrix.exe 3 要求不显示结算结果,只把执行时间显示到屏幕上。
另附已经写好的JAVA源码如下:

import java.util.*;
import java.io.*;

public class Matrix {
public static void main(String[] args) {

Date date = new Date();
long previousTime = date.getTime();
long lastTime = 0;

//设置1个参数,如果等于1,则计算并把结果写入文件,且计算时间,如果等于2,计算并计算时间,不写文件,但计算结果,在 屏幕输出 如果等于3,only计算,不在屏幕输出结果,只显示计算时间~
int choose = 0;

choose = Integer.parseInt(args[0]);

//将结果输出到文件中
File f = new File("f://1.txt&

//编译通过,测试了一个3*2、2*3的相乘

#include <vector>
#include <fstream>
#include <sstream>
#include <string>
#include <iostream>
#include "windows.h"
using namespace std;

typedef vector<double> row;
typedef vector<row> matrix;

int main(int argc, char * argv[])
{
int choice =1;
if(argc==2)choice=atoi(argv[1]);

matrix my_matrix1,my_matrix2,my_matrix3;
ifstream file1("g:\\dataspool\\my_matrix1.txt");
ifstream file2("g:\\dataspool\\my_matrix2.txt");
ofstream file3("g:\\dataspool\\my_matrix3.txt");

string line;
while (getline(file1, line)){
istringstream iss(line);
row my_row;
int my_cell;

while (iss >> my_cell){
my_row.push_back(my_cell);
iss.ignore(1024,','); // skip the