Programming Resources
For Fun and Learning
Charles Cusack
Computer Science
Hope College
main

Python
C++
JAVA
PHP
SQL

Assignments


VerificationAlgs


P3Verify.cpp

/*

Verification for Problem 3 of HW6, CSE310 Fall 2003

Expected as input a file with (x, y) integer coordinates

calculates MST

*/

#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;


struct City
{
        float x, y;
};

int main(int argc, char **argv) {


	int numCities;
	City* myCities;
	int numEdges, To, From;
	float Total = 0, Cost;
	int ActualNumEdges = 0;

        if(argc != 3) {
                cout << "Usage: V3 <datafile> <outputfile>\n" << endl;
                return -1;
        }

	ifstream data, output;
	data.open(argv[1]);
	output.open(argv[2]);
	if(data.fail() || output.fail())
	{
		cout << "Failed to open one or both of the files " << endl;
		return -1;
	}

	//read in datafile
	//FORMAT: Line 1 = number of pairs
	//Each line after: x y coordinates
	data >> numCities;

	myCities = new City[numCities];

	for(int i = 0; i < numCities; i++)
	{
		data >> myCities[i].x;
		data >> myCities[i].y;
	}

	data.close();

/*
	okay reading works
	cout << numCities << endl;
	for(int i = 0; i < numCities; i++)
		cout << myCities[i].x << " " << myCities[i].y << endl;
*/

	//Read in outputfile
	output >> Cost;
	output >> numEdges;

	for(int i = 0; i < numEdges; i++)
	{
		output >> From;
		output >> To;
		From--;
		To--;
		ActualNumEdges++;
		Total = Total + sqrt( (float) (myCities[From].x - myCities[To].x)*(myCities[From].x - myCities[To].x) + 
(myCities[From].y - myCities[To].y)*(myCities[From].y - myCities[To].y) );
	}

	From = 0;
	while(!output.eof())
	{
		output >> From;
		output >> To;
		if(From > 0)
			ActualNumEdges++;
	}

 	output.close();

	cout << "Results: " << endl;
	cout << "==================================" << endl;
	cout << "\tThey Claim \tCalculated \tShould Be" << endl;
	cout << "Cost:\t" << Cost << "\t\t" << Total << "\t\tN/A" << endl;
	cout << "Edges:\t" << numEdges << "\t\t" << ActualNumEdges << "\t\t" << numCities -1 << endl << endl << endl;
	return 1;
}