• 新闻热点
  • 文化视野
  • 主题活动
  • 文件资料
  • 百姓关注
  • 民间风俗
  • 文化艺术
  • 教育科研
  • 古都名人
  • 旅游出行
  • 范文大全
  • 文档下载
  • 当前位置: myyuju个人图书馆 > 古都名人 > 正文

    C#综合实验报告

    时间:2020-09-16 07:37:22 来源:myyuju个人图书馆 本文已影响 myyuju个人图书馆手机站

    贵州大学实验报告

     学院: 专业:网络工程 班级:

     姓名

     学号

     实验组

     实验时间

     2012.6.7

     指导教师

     成绩

     实验项目名称

     综合实验

     实验目的1. 了解文件流的概念。

     2. 学会文本文件的读写。

     3. 学会序列化及二进制随机文件的读写。

     实验内容

     1.设计如下窗体,A.要求用户点击添加按钮时将当前学生信息添加到指定文本文件中(如源文件中有内容,不覆盖)。B.输入时,要求采用异常处理,针对输入学号、姓名为空,输入年龄、分数小于0的情况,弹出相应的出错对话框进行提示。C.点击显示按钮,将当前文件中内容显示出来。(提示:异常处理时要自定义异常,具体方法见参考程序)

     

     2. A.封装一个学生类对象,将以上程序学生信息采用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;

     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;

      public 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(ExceptionSno )

      { 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 ExceptionSage();

      sb.Write(st.sage);

      }

      catch (ExceptionSage )

      { MessageBox.Show("我自己定义的异常,年龄不能小于0!"); }

      st.sgra = int.Parse(SGra .Text );

      try

      {

      if (st.sgra < 0)

      throw new ExceptionSgra();

      sb.Write(st.sgra);

      }

      catch (ExceptionSgra)

      { MessageBox.Show("我自己定义的异常,分数不能小于0!"); }

      sb.WriteLine();

      sb.Close();

      }

      private void button2_Click(object sender, EventArgs e)

      {

      string str = "";

      FileStream fs = File.OpenRead(path);

      StreamReader sr = new StreamReader (fs,Encoding.UTF8 );

      fs.Seek (0, SeekOrigin.Begin );

      while (sr.Peek() > -1)

      str = str + sr .ReadLine () + "\r\n";

      sr.Close();

      fs.Close();

      textBox1 .Text = str;

      }

      }

     }

     2、代码如下:

     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;

     using System.Runtime.Serialization;

     using System.Runtime.Serialization.Formatters.Binary;

     namespace Proj_Zongheshiyan2

     {

      public partial class Form1 : Form

      {

      string path = "E:\\student.bat";

      [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 { 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);

      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 == "")

      {

      MessageBox.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;

      }

      }

      }

     }

     实验结果

     及

     分析

     运行界面如下:

     程序运行结果:

     实验总结

     此次试验花费了不少时间,但却在试验中整合了整合了不少知识点。虽然我对编程没有什么天赋,但是通过了这学期实验,我学会了更多的解决问题的办法,比如很多问题我们都可以通过网络查询解决。当然,书上的知识也能够对这个实验有很好的引道,通过对各个例子运行,渗透每个程序的真是含义

     指导教师意见

     签名:

      年 月 日

    • 新闻热点
    • 文化视野
    • 主题活动
    • 文件
    • 关注
    • 风俗
    • 文化艺术