c#实验报告(完整版)

  • 格式:doc
  • 大小:291.50 KB
  • 文档页数:19

C#实验报告

班级:

姓名:

学号:

实验一 文本编辑器

一:实验目的及要求

1.熟悉VisualC#.NET的可视化界面,掌握控件的使用。

2.掌握System.IO类的文件流操作,会处理文件。

二:实验内容:

1、假设有要排序的20个数存在文件Data.txt中。编写程序,打开该文件并将排好序的数重新写回该文件。

2、重新打开第1题创建的文件,在文件的结尾再添加10个随机数。

3、参考Windows的记事本程序,编写一个简单的文本编辑器程序。

4、编写程序,在用户选择了一个目录后,找出该目录及其子目录中所有后缀名为doc的文件。

5、假设有文本文件1.txt和2.txt。编写程序,创建一个新的文本文件,将1.txt中的内容和2.txt中的内容重复两遍,交替写入新的文本文件,并删除1.txt和2.txt。

三:实验环境

Windows XP操作系统,Visual 2005

四:实验源程序及关键代码的解释

主界面:

(1)排序/添加随机数 程序代码:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace 文本编辑器设计 {

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)

{

FileStream fs = new FileStream("D:\\1.txt", FileMode.Open,

FileAccess.ReadWrite);

StreamReader sr = new StreamReader(fs);

richTextBox1.Text = sr.ReadToEnd();

sr.Close();

fs.Close();

}

private void button1_Click(object sender, EventArgs e)

{

FileStream fs = new FileStream("D:\\1.txt", FileMode.Open,

FileAccess.ReadWrite);

StreamReader sr = new StreamReader(fs);

string[] myDate = sr.ReadToEnd().Split(',');

sr.Close();

fs.Close();

for (int i = 0; i < myDate.Length; i++)

{

for (int j = 0; j < myDate.Length - i - 1; j++)

{

if (Convert.ToInt32(myDate[j]) > Convert.ToInt32(myDate[j +

1]))

{

string t;

t = myDate[j];

myDate[j] = myDate[j + 1];

myDate[j + 1] = t;

}

}

}

foreach (string s in myDate)

{

Console.WriteLine(s);

}

//将排好序的数写回到文件中

FileStream fs1 = new FileStream("D:\\1.txt", FileMode.Open, FileAccess.ReadWrite);

StreamWriter sw = new StreamWriter(fs1);

for (int i = 0; i < myDate.Length - 1; i++)

{

sw.Write(myDate[i]);

sw.Write(",");

}

sw.Write(myDate[myDate.Length - 1]);

sw.Close();

fs1.Close();

FileStream fs2 = new FileStream("D:\\1.txt", FileMode.Open,

FileAccess.ReadWrite);

StreamReader sr2 = new StreamReader(fs2);

richTextBox2.Text = sr2.ReadToEnd();

sr2.Close();

fs2.Close();

}

private void button2_Click(object sender, EventArgs e)

{

Random newRandom = new Random();//声明产生随机数对象

FileInfo fi = new FileInfo("D:\\1.txt");

using (StreamWriter sw = fi.AppendText())

{

//写入随机数

for (int i = 0; i < 10; i++)

{

sw.Write(',');

sw.Write(newRandom.Next());

}

sw.Write(newRandom.Next());

FileStream fs2 = new FileStream("D:\\1.txt", FileMode.Open,

FileAccess.ReadWrite);

StreamReader sr2 = new StreamReader(fs2);

richTextBox2.Text = sr2.ReadToEnd();

sr2.Close();

fs2.Close();

}

}

private void button3_Click(object sender, EventArgs e)

{

this.Close();

}

}

} 运行结果

(2)文本编辑器

界面:

源程序

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text; using System.Windows.Forms;

using System.IO;

namespace 文本编辑器设计

{

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Clear();

this.Text = "新建文件";

}

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Select();

}

private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Cut();

}

private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Paste();

}

private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Copy();

}