1、C#综合实验报告贵州大学实验报告学院: 专业:网络工程 班级:姓名学号实验组实验时间201267指导教师成绩实验项目名称综合实验实验目的1. 了解文件流的概念。2. 学会文本文件的读写。3. 学会序列化及二进制随机文件的读写。实验内容1.设计如下窗体,A.要求用户点击添加按钮时将当前学生信息添加到指定文本文件中(如源文件中有内容,不覆盖)。B.输入时,要求采用异常处理,针对输入学号、姓名为空,输入年龄、分数小于0的情况,弹出相应的出错对话框进行提示。C.点击显示按钮,将当前文件中内容显示出来。(提示:异常处理时要自定义异常,具体方法见参考程序) 2. A.封装一个学生类对象,将以上程序学生信息
2、采用B.序列化方式写入二进制文件,并可C.输入学号随机查找相应记录信息显示在文本框中,查找记录时,也要求用D.异常处理处理输入学号为空的情况。 实验环境Pc机VS 2010环境(具体环境自己调整)实验程序1、代码如下: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
3、;namespace Proj_Zongheshiyan public partial class Form1 : Form class ExceptionSno : Exception class ExceptionSname : Exception class ExceptionSage : Exception class ExceptionSgra : Exception string path = E:StudentTest.bat; struct Student public string sno; public string sname; public string ssex; p
4、ublic int sage; public int sgra; public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Student st = new Student(); StreamWriter sb = new StreamWriter(path, true); st.sno = SNo.Text; try if (st.sno = ) throw new ExceptionSno(); sb.Write(st.sno); catch(ExceptionS
5、no ) MessageBox.Show(我自己定义的异常,学号不能为空!); st.sname = SName.Text; try if (st.sname = ) throw new ExceptionSname(); sb.Write(st.sname); catch (ExceptionSname ) MessageBox.Show(我自己定义的异常,姓名不能为空!); st.ssex = SSex.Text; st.sage = int.Parse(SAge .Text ); sb.Write(st.ssex ); try if (st.sage 0) throw new Excep
6、tionSage(); sb.Write(st.sage); catch (ExceptionSage ) MessageBox.Show(我自己定义的异常,年龄不能小于0!); st.sgra = int.Parse(SGra .Text ); try if (st.sgra -1) str = str + sr .ReadLine () + rn; sr.Close(); fs.Close(); textBox1 .Text = str; 2、代码如下:using System;using System.Collections.Generic;using System.ComponentM
7、odel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;namespace Proj_Zongheshiyan2 public partial class Form1 : Form string path = E:student.ba
8、t; Serializable public class Student private int no; private string name; private string sex; private int age; private int gra; public int sno get return no; set no = value; public string sname get return name; set name = value; public string ssex get return sex; set sex = value; public int sage get
9、 return age; set age = value; public int sgra get return gra; set gra = value; public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Student s = new Student(); s.sno = int.Parse ( Sno.Text); s.sname = Sname.Text; s.ssex = Ssex.Text; s.sage = int.Parse(Sage.Text
10、); s.sgra = int.Parse(Sgra.Text); FileStream fs = new FileStream(path, FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, s); fs.Close(); private void button2_Click(object sender, EventArgs e) int n, reclen, currp; textBox1 .Text = ; if (comboBox1.Text = ) M
11、essageBox.Show(请输入学号,再查找!); else string str; FileStream fs = File.OpenRead(path); BinaryReader sb = new BinaryReader(fs, Encoding.Default); reclen = (int)(fs.Length / 3); n = int.Parse(comboBox1.Text); currp = (n - 1) * reclen; fs.Seek(currp ,SeekOrigin .Begin ); str = sb.ReadInt32() + t + sb.ReadString() + t + sb.ReadString() + t + sb.ReadInt32() + t + sb.ReadInt32(); sb.Close(); fs.Close(); textBox1.Text = str; 实验结果及分析运行界面如下:程序运行结果:实验总结此次试验花费了不少时间,但却在试验中整合了整合了不少知识点。虽然我对编程没有什么天赋,但是通过了这学期实验,我学会了更多的解决问题的办法,比如很多问题我们都可以通过网络查询解决。当然,书上的知识也能够对这个实验有很好的引道,通过对各个例子运行,渗透每个程序的真是含义指导教师意见签名: 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1