}
private void button1_Click(object sender, EventArgs e) {
for (int i = 0; i < 10; i++) route[i] = 0;
count = 0; goal = 2; money = 99; distance = 9999;
//loop(Convert.ToInt32(textBox2.Text), Convert.ToInt32(textBox3.Text));
textBox1.Text = money.ToString() + \ + \ + \ + \ + \ + \ + \
} } }
36
程序二(第一题Floyd算法时间最优程序): using System; using System.IO;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text;
using System.Windows.Forms; using System.Globalization; using System.Collections;
using System.Windows.Forms.Design;
namespace model {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); }
public struct line {
public char price; public char direct; public int[,] stop; }
private void button1_Click(object sender, EventArgs e) {
OpenFileDialog fileDialog1 = new OpenFileDialog(); fileDialog1.InitialDirectory = \
fileDialog1.Filter = \ fileDialog1.FilterIndex = 1;
fileDialog1.RestoreDirectory = true;
if (fileDialog1.ShowDialog() == DialogResult.OK) {
textBox1.Text = fileDialog1.FileName; } else {
37
textBox1.Text = \ return; }
FileStream doc = new FileStream(textBox1.Text, FileMode.Open, FileAccess.ReadWrite),
abc = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), abc1 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), abc2 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), abc3 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), abc4 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), abc5 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), abc6 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record1 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record2 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record3 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record4 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record5 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write), record6 = new FileStream(\FileMode.OpenOrCreate, FileAccess.Write);
StreamReader sr = new StreamReader(doc); StreamWriter[] sw = {new StreamWriter(abc), new StreamWriter(abc1), new StreamWriter(abc2), new StreamWriter(abc3), new StreamWriter(abc4), new StreamWriter(abc5), new StreamWriter(abc6)};
38
StreamWriter[] rsw = {new StreamWriter(record), new StreamWriter(record1), new StreamWriter(record2), new StreamWriter(record3), new StreamWriter(record4), new StreamWriter(record5), new StreamWriter(record6)};
int flag = 0;
int[,] dis = new int[3958, 3958], tmp_dis = new int[3958, 3958]; int[,] rec = new int[3958, 3958]; string a = string.Empty;
string[] output = new string[7], outputs = new string[7]; line[] city = new line[521];
a = sr.ReadToEnd(); sr.Close();
for (int i = 0, j = 0, h = 0, k = 0; i < a.Length; i++) {
switch (flag) {
case 0: {
if (a[i] == 'S') {
city[j].stop[k, h] = Convert.ToInt32(a.Substring(i + 1, 4));
h++; }
else if (a[i] == 'D') {
k = 1; h = 0; flag = 0; }
else if (a[i] == 'L') {
if (k == 0) {
if (city[j].direct == 'S')
for (int scan = 0; scan < h; scan++) {
39
city[j].stop[1, scan] = city[j].stop[0, h - 1 - scan];
}
else if (city[j].direct == 'C')
for (int scan = 1; scan < h; scan++) {
city[j].stop[0, scan + h - 1] = city[j].stop[0, scan];
} } j++;
city[j].stop = new int[2, 170]; flag = 1; }
break; } case 1: {
if (a[i] == 'M') {
city[j].price = 'M'; flag = 2; }
else if (a[i] == 'F') {
city[j].price = 'F'; flag = 2; }
break; } case 2: {
if (a[i] == 'U') {
city[j].direct = 'U'; k = 0; h = 0; flag = 0; }
else if (a[i] == 'C') {
city[j].direct = 'C'; k = 0;
40