安徽机电职业技术学院实验报告
课程 名称 系部 实验 时间 面向对象程序设计 信息工程系 班级 网络3101 实验实验7 方法参数与文件操作 名称 姓名 陈鑫鑫 年 月 日 时 分~ 时 分 1101103030 地点 机位 2414 学号 一、实验目的
1、掌握方法参数的按值传递和按引用传递。 2、掌握数组作为方法参数的使用。
3、了解System.IO命名空间File类和Directory类的使用; 4、掌握StreamReader和StreamWriter类的使用; 5、熟悉对象浏览器的使用 二、实验内容
程序1、熟悉方法参数的引用传递。“CSharp示例\\第7课\\RefCall”应用程序是通过GetSumAndAverage方法来计算总和与平均值,该程序不能正确完成计算,请修改程序使其能正确计算。
程序2、参照第8课的课堂示例,编写一个能对文本文件进行读写的简单的文本编辑器,界面请自行设计。 三、实验步骤
1、按照“二、实验内容”的要求,分别完成2个程序。
2、将完成的源程序压缩后,连同本实验报告,一同交给指导教师。 四、程序运行结果截图
程序1运行结果截图:
程序2运行结果截图:
实验7 方法参数与文件操作 第 1 页 共 4 页
安徽机电职业技术学院实验报告 面向对象程序设计(C#)
实验7 方法参数与文件操作 第 2 页 共 4 页
安徽机电职业技术学院实验报告 面向对象程序设计(C#)
五、程序源代码(用Winrar压缩后用附件提交,源代码中要有比较完备的注释),以下代码请粘贴于此:
程序1:请将程序1调试正确后,然后在下面的程序中作对应地修改。你添加或修改的部分请加粗或使用其它颜色显示
private void btnRun_Click(object sender, EventArgs e) {
int a = 20, b = 30, c = 45; int sum = 0;
double average = 0;
GetSumAndAverage(a, b, c,ref sum,ref average);
Output(String.Format(\"和是:{0}, 平均值是:{1}\",sum,average)); }
private static void GetSumAndAverage(int a, int b, int c, ref int sum, ref double aver) {
sum = a + b + c;
aver = (a + b + c) / 3.0;
}
程序2中有关读取文本文件的代码(要求有注释,说明主要语句的作用):
private void button1_Click(object sender, EventArgs e) {
string filename = tbFileName.Text; if (!File.Exists(filename)) {
MessageBox.Show(\"文件\" + filename + \"不存在!\"); return; }
StreamReader sr = new StreamReader(filename); tb.Text = sr.ReadToEnd(); sr.Close();
}
实验7 方法参数与文件操作 第 3 页 共 4 页
安徽机电职业技术学院实验报告 面向对象程序设计(C#)
程序2中有关保存文本文件的代码(要求有注释,说明主要语句的作用):
private void button2_Click(object sender, EventArgs e) {
string filename = tbFileName.Text; try {
StreamWriter sw = new StreamWriter(filename); sw.Write(tb.Text); sw.Close(); }
catch {
MessageBox.Show(\"保存文件时出错了!\"); }
}
六、思考题:
1、ref关键字和out关键字都是指明方法的参数是按引用传递的,这两者有什么区别?
答:通过使用关键字out,可以避免多余的初始化,但是ref 正好相反。
2、使用“对象浏览器”,查找StreamReader类的ReadLine方法的信息。该方法的作用是什么?如何判断文件已经读取结束?请写出能实现该判断的表达式。
答:StreamReader:用于从文件中输入文本。每个文件可以文件结束标记(EOF)结束,也可在指定字节数结束。
3、使用“对象浏览器”,查找File类的SetAttributes方法的信息,并记录下该方法的完整的说明信息。该方法的作用是什么?如何设置磁盘上某文件(如当前文件夹下的file.txt文件)为只读?请写出能实现该操作的语句。
答:File类用于操纵文件,Directory类用于操纵文件夹。File类不能直接读写文件,需要使用FileStream类或其派生类。
4、(选做)程序2中,使用StreamReader类读取文本文件,如果希望能够在显示每一行前加上行号,如何实现?请写下实现加行号显示的代码在下面。(提示:使用StreamReader类的ReadLine方法)
实验7 方法参数与文件操作 第 4 页 共 4 页
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务