h = 0; flag = 0; }
else if (a[i] == 'S') {
city[j].direct = 'S'; k = 0; h = 0;
city[j].stop[k, h] = Convert.ToInt32(a.Substring(i + 1, 4));
h++; flag = 0; }
break; } } }
for (int x = 0; x < 3958; x++) for (int y = 0; y < 3958; y++) dis[x, y] = 9999;
for (int x = 0; x < 3958; x++) for (int y = 0; y < 3958; y++) rec[x, y] = 0;
for (int j = 1; j <= 520; j++) {
for (int x = 0; city[j].stop[0, x] > 0; x++) for (int y = x; city[j].stop[0, y] > 0; y++) {
if (dis[city[j].stop[0, x], city[j].stop[0, y]] > (y - x) * 3) {
dis[city[j].stop[0, x], city[j].stop[0, y]] = (y - x) * 3;
rec[city[j].stop[0, x], city[j].stop[0, y]] = j; } }
for (int x = 0; city[j].stop[1, x] > 0; x++) for (int y = x; city[j].stop[1, y] > 0; y++) {
if (dis[city[j].stop[1, x], city[j].stop[1, y]] > (y - x) * 3) {
41
dis[city[j].stop[1, x], city[j].stop[1, y]] = (y - x) * 3;
rec[city[j].stop[1, x], city[j].stop[1, y]] = j; } } }
for (int x = 1; x < 3958; x++) {
output[0] = string.Empty; outputs[0] = string.Empty; for (int y = 1; y < 3958; y++) {
output[0] = output[0] + dis[x, y].ToString() + \ outputs[0] = outputs[0] + rec[x, y].ToString() + \ }
sw[0].WriteLine(output[0]); rsw[0].WriteLine(outputs[0]); }
for (int x = 0; x < 3958; x++) for (int y = 0; y < 3958; y++) tmp_dis[x, y] = dis[x, y];
flag = 1;
for (int n = 1; n < 7; n++) {
if (flag == 0) {
textBox1.Text = \ return; } else
flag = 0;
for (int x = 0; x < 3958; x++) for (int y = 0; y < 3958; y++) rec[x, y] = 0;
for (int x = 1; x < 3958; x++) for (int y = 1; y < 3958; y++) for (int i = 1; i < 3958; i++)
42
{
if (dis[x, i] + dis[i, y] + 5 < tmp_dis[x, y]) {
tmp_dis[x, y] = dis[x, i] + dis[i, y] + 5; rec[x, y] = i; flag = 1; } }
} } }
for (int x = 1; x < 3958; x++) for (int y = 1; y < 3958; y++) {
dis[x, y] = tmp_dis[x, y]; } for (int x = 1; x < 3958; x++) {
output[n] = string.Empty; outputs[n] = string.Empty; for (int y = 1; y < 3958; y++) {
output[n] = output[n] + dis[x, y].ToString() + \ outputs[n] = outputs[n] + rec[x, y].ToString() + \ }
sw[n].WriteLine(output[n]); rsw[n].WriteLine(outputs[n]); } sw[n].Close(); rsw[n].Close(); 43
} 程序三(第一题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 {
44
textBox1.Text = \ return; }
FileStream doc = new FileStream(textBox1.Text, FileMode.Open, FileAccess.ReadWrite),
abc = FileMode.OpenOrCreate, FileAccess.Write), abc1 = FileMode.OpenOrCreate, FileAccess.Write), abc2 = FileMode.OpenOrCreate, FileAccess.Write), abc3 = FileMode.OpenOrCreate, FileAccess.Write), abc4 = FileMode.OpenOrCreate, FileAccess.Write), abc5 = FileMode.OpenOrCreate, FileAccess.Write), abc6 = FileMode.OpenOrCreate, FileAccess.Write), abc7 = FileMode.OpenOrCreate, FileAccess.Write), abc8 = FileMode.OpenOrCreate, FileAccess.Write), abc9 = FileMode.OpenOrCreate, FileAccess.Write), record = FileMode.OpenOrCreate, FileAccess.Write), record1 = FileMode.OpenOrCreate, FileAccess.Write), record2 = FileMode.OpenOrCreate, FileAccess.Write), record3 = FileMode.OpenOrCreate, FileAccess.Write), record4 = FileMode.OpenOrCreate, FileAccess.Write), record5 = FileMode.OpenOrCreate, FileAccess.Write), record6 = FileMode.OpenOrCreate, FileAccess.Write), record7 = FileMode.OpenOrCreate, FileAccess.Write), record8 =
45
new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\new FileStream(\