您的当前位置:首页正文

实验六文件操作

2022-08-16 来源:客趣旅游网


大理学院课程教案

(实验教学)

课程名称: C#面向对象程序设计 课程类型:( 1 )1、必修;2、选修;3、其它

授课对象: 计算机科学与技术 专业(本、专科) 2011 级 1,2班

授课时间: 2012 至 2013 学年第 3 学期 计划学时: 36 学时(其中:理论 36 ,实验: 36 )

任课教师: 杜英国 所属学院: 数学与计算机学院 课程管理部门(教研室): 软件教研室

大理学院教务处 制

大理学院课程教案(教学要求)

课程名称:C#面向对象程序设计

教 材:C#程序设计实用教程 黄兴荣 李昌领 李继良编著 清华大学出版社 授课人1:杜英国 专业技术职务:讲师 学 历:研究生 学 位:硕士 授课人2: 专业技术职务: 学 历: 学 位:

实验题目: C#集成开发环境控制台输入输出程序设计 计划学时:3 实验类型:( 4 )1、演示性 2、验证性 3、综合性 4、设计性 每组实验的学生人数: 1 人 教学目的和要求:

理解文件的概念;掌握文件读和写的使用;掌握文件处理的方法。 实验方法(包括实验中需要注意的问题等): 1. 在VS下,新建一个窗体界面应用程序。 2. 在解决方案资源管理其中创建一个Student类。

3. 通过button1、button2按钮实现Student文件的读写操作,通过button3、button4按钮实现文件的浏览操作。 实验重点(主要解决的问题和达到的目的):

1. 学会编写文件的读写操作代码。 2. 理解文件的基本操作。

实验难点(预计实验过程中会遇到的问题和解决方案): 1.编写文件的读写操作代码。

教学方法(实验前的教学和实验过程中的指导方法):

实验前教师先讲解完文件读写操作内容,学生认真复习文件读写操作内容;在实验过程中结合实验环境教师可先提示性讲解实验内容,再由学生自己完成实验。如果实验完成情况较差,教师统一辅导。

第1页

大理学院课程教案(教学要求)

实验仪器和材料:

计算机,Windows XP, VS2008

实验报告要求和思考题: 提交实验报告。 参考资料:

《C#程序设计项目教程—实验指导与课程设计》

黄兴荣 编著 清华大学出版社第2页

大理学院课程教案(教学内容)

实验六 文件读写操作

一、实验内容与步骤(要求交实验报告的实验项目详细步骤由学生填写) 实验内容:

1.按要求调试下列程序:

构造如下所示界面,完成学生信息的IO操作。学生信息存储在D盘根目录Student.txt文件中。信息显示使用RichTextBox控件。

实现各操作的参考代码如下:

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.IO;

namespace 读写文件 {

第3页

大理学院课程教案(教学内容)

public partial class Form1 : Form {

List stList; Student st;

string[] splitStrings; string[] splitStrings1; string[] splitStrings2; char[] separator = {' '}; char[] separator1 = { '=' }; int i = 0; public Form1() {

InitializeComponent();

stList = new List(); splitStrings = new string[100]; splitStrings1 = new string[100]; splitStrings2 = new string[100]; }

private void button1_Click(object sender, EventArgs e) {

if (textBox1.Text == \"\" ) {

MessageBox.Show(\"学号不能为空!\"); }

else if (textBox2.Text == \"\") {

MessageBox.Show(\"姓名不能为空!\"); }

else if (textBox3.Text == \"\") {

MessageBox.Show(\"班级不能为空!\"); }

else if (textBox4.Text == \"\") {

MessageBox.Show(\"专业不能为空!\"); } else {

FileStream fs = new FileStream(\"d://student.txt\", FileMode.OpenOrCreate | FileMode.Append, FileAccess.Write);

StreamWriter streamWriter = new StreamWriter(fs);

streamWriter.WriteLine(\"学号=\" + textBox1.Text + \" \" + \"姓名=\" + textBox2.Text + \" \" + \"班级=\" + textBox3.Text + \" \" + \"专业=\" + textBox4.Text); textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); streamWriter.Flush(); streamWriter.Close(); }

}

private void button2_Click(object sender, EventArgs e) {

FileStream fs = new FileStream(\"d://student.txt\", FileMode.Open, FileAccess.Read);

第4页

大理学院课程教案(教学内容)

StreamReader streamReader = new StreamReader(fs); this.richTextBox1.Text = \"\";

string strLine = streamReader.ReadLine(); while (strLine != null) {

this.richTextBox1.Text += strLine + \"\\n\"; st = new Student();

splitStrings = strLine.Split(separator);//以空格分隔符拆分字符串 for (int i = 0; i < splitStrings.Length;i++ ) {

splitStrings1 = splitStrings[i].Split(separator1);//以=号分隔符拆分字符串 splitStrings2[i] = splitStrings1[1]; }

st.xh = splitStrings2[0]; st.xm = splitStrings2[1]; st.bj = splitStrings2[2]; st.zy = splitStrings2[3];

stList.Add(st);//还原学生对象并存储在list表里 strLine = streamReader.ReadLine(); }

streamReader.Close();

textBox8.Text = stList[0].xh; textBox7.Text = stList[0].xm; textBox6.Text = stList[0].bj; textBox5.Text = stList[0].zy; }

private void button3_Click(object sender, EventArgs e) {

if((stList.ToArray()).Length<=0) {

MessageBox.Show(\"当前记录为0条\"); }

if (i == 0&&(stList.ToArray().Length>0)) {

textBox8.Text = stList[0].xh; textBox7.Text = stList[0].xm; textBox6.Text = stList[0].bj; textBox5.Text = stList[0].zy; }

if ((i > 0) && (i < stList.ToArray().Length)) {

i = i - 1;

textBox8.Text = stList[i].xh; textBox7.Text = stList[i].xm; textBox6.Text = stList[i].bj; textBox5.Text = stList[i].zy; } }

private void button4_Click(object sender, EventArgs e) {

if ((stList.ToArray()).Length <= 0) {

MessageBox.Show(\"当前记录为0条\"); }

if (i == (stList.ToArray()).Length&&i!=0) {

第5页

大理学院课程教案(教学内容)

textBox8.Text = stList[i].xh; textBox7.Text = stList[i].xm; textBox6.Text = stList[i].bj; textBox5.Text = stList[i].zy; }

if (i >= 0 && i < (stList.ToArray()).Length-1) {

i = i + 1;

textBox8.Text = stList[i].xh; textBox7.Text = stList[i].xm; textBox6.Text = stList[i].bj; textBox5.Text = stList[i].zy; } } } }

学生类定义如下:

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

namespace 读写文件 {

public class Student {

public string xh; public string xm; public string bj;

public string zy;//同学把这些变量改为属性定义 } }

2.参考上述程序,编写一个完成职工信息IO操作的程序。职工信息存储在D盘的Staff文件夹下,文件名为Staff.txt;职工信息包括:编号,姓名,性别,毕业学校,学历,学位,工作部门,联系电话,邮箱地址,住址等。实现职工信息的存储、读取,浏览。

第6页

大理学院课程教案(教学总结)

第7页

因篇幅问题不能全部显示,请点此查看更多更全内容