C#实验报告.doc_第1页
C#实验报告.doc_第2页
C#实验报告.doc_第3页
C#实验报告.doc_第4页
C#实验报告.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.学 生 实 验 报 告(理工类)课程名称:C#程序设计教程 专业班级: 学生学号: 学生姓名: XFS 所属院部: 软件工程学院 指导教师: 蔡群 20162017学年 第 2 学期 金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称: 实验一 实验学时: 2学时 同组学生姓名: XFS 实验地点: A203 实验日期: 2017.3.22 实验成绩: 批改教师: 批改时间: 一、实验目的和要求(1)熟悉使用结构体(2)熟悉使用DATETIME类,并清楚它的各种属性和赋值格式(3)熟悉使用枚举类型,并清除它的各种用法(4)了解并使用函数进行封装二、实验仪器和设备具备装载Microsoft Visual Stdio 2010或者更高级版本的Microsoft Visual Stdio 2012/2013,或者Visual Stdio Ultimate 等的电脑都可以。三、实验过程1.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 class Program enum week 星期日,星期一, 星期二, 星期三, 星期四, 星期五, 星期六 ; struct Student public int no; public string name; public DateTime birthday; static void Main(string args) Student s1, s2; s1.no=1; s2.no=2; = 李明; = 王丽; s1.birthday=new DateTime(1985, 10, 18); s2.birthday=new DateTime(1986, 2, 16); Console.WriteLine(0的生日为1, , s1.birthday.ToShortDateString().ToString(); /ToShortDateString()去除时间 Console.WriteLine(0的生日为1, , s2.birthday.ToShortDateString().ToString(); Console.WriteLine(0出生在1, , (week)(int)s1.birthday.DayOfWeek); /(week)i转换为对应数字的枚举值 Console.WriteLine(0出生在1, , (week)(int)s2.birthday.DayOfWeek); Console.WriteLine(0和1相差2, , , s2.birthday-s1.birthday); Console.ReadLine(); 2.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Experiment3 class Program static void Main(string args) for (int i = 100; i = 999;i+ ) int temp = i; int a = temp % 10; temp /= 10; int b = temp % 10; int c = temp / 10; int sum=a*a*a+b*b*b+c*c*c; if (sum = i) Console.WriteLine(i); Console.ReadLine(); 四、实验结果与分析1.分析:声明Student结构体,里面有no、name、birthday三个成员。输出生日时,用datetime类的ToShortDateString()方法去除时间。输出中文的星期几,要定义一个week枚举,成员为星期日到星期一。2.分析:从100到999进行for循环。对每个数字先对10取余得出第三位,再除以10,去除末位,再对10取余得到第二位,再除以10去除第二位,得到第一位。然后进行判断看是否满足条件,满足即输出。实验项目名称: 实验二 实验学时: 2学时 同组学生姓名: XFS 实验地点: A203 实验日期: 2017.3.28 实验成绩: 批改教师: 批改时间: 一、实验目的和要求(1)熟悉使用数组:包括定义数组、初始化数组(2)掌握如何给数组排序二、实验仪器和设备具备装载Microsoft Visual Stdio 2010或者更高级版本的Microsoft Visual Stdio 2012/2013,或者Visual Stdio Ultimate 等的电脑都可以。三、实验过程1.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Experiment4 class Program /排序前输出 static void print(int no, string name) Console.WriteLine(排序前:); Console.Write(0,-8, 学号:); for (int i = 0; i no.Length; i+) Console.Write(0,-8, noi); Console.WriteLine(); Console.Write(0,-8, 姓名:); for (int i = 0; i name.Length; i+) Console.Write(0,-8, namei); Console.WriteLine(); /按学号输出 static void printByNo(int no,string name) string tempName; int tempNo; /按学号进行排序 for (int i = 0; i no.Length; i+) tempName = namei; tempNo = noi; for (int j = i + 1; j noj) namei = namej; namej = tempName; tempName = namei; noi = noj; noj = tempNo; tempNo = noi; Console.Write(0,-8, 学号:); for (int i = 0; i no.Length; i+) Console.Write(0,-8, noi); Console.WriteLine(); Console.Write(0,-8, 姓名:); for (int i = 0; i name.Length; i+) Console.Write(0,-8, namei); Console.WriteLine(); /按姓名输出 static void printByName(int no, string name) string tempName; int tempNo; /按姓名进行排序 for (int i = 0; i no.Length; i+) tempName=namei; tempNo = noi; for (int j = i+1; j 0) namei = namej; namej = tempName; tempName = namei; noi = noj; noj = tempNo; tempNo = noi; Console.WriteLine(按姓名排序后:); Console.Write(0,-8, 学号:); for (int i = 0; i no.Length; i+) Console.Write(0,-8, noi); Console.WriteLine(); Console.Write(0,-8, 姓名:); for (int i = 0; i name.Length; i+) Console.Write(0,-8, namei); static void Main(string args) int no = 2,4,5,1,3; string name = Smith,John,Mary,Cherr,Tomn; print(no,name); printByNo(no, name); printByName(no, name); Console.ReadLine(); 四、实验结果与分析1.分析:这题实验的难点在于如何按学号进行排序和如何按姓名进行排序。按学号进行排序我用了两个for循环,将每个学号与其后的学号进行比较,其后的学号比它小就进行位置的交换,同时名字也进行交换。按姓名进行排序的原理与上面类似。实验项目名称: 实验三 实验学时: 2学时 同组学生姓名: XFS 实验地点: A203 实验日期: 2017.4.4 实验成绩: 批改教师: 批改时间: 一、实验目的和要求(1)掌握C#中的类声明和对象的定义方法 (2)掌握C#中属性的设计方法(3)掌握C#中索引器的设计方法(4)掌握C#中委托的设计方法(5)掌握C#中事件的设计方法二、实验仪器和设备具备装载Microsoft Visual Stdio 2010或者更高级版本的Microsoft Visual Stdio 2012/2013,或者Visual Stdio Ultimate 等的电脑都可以。三、实验过程1.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Experiment5_1 class Course string cName; int credit; int score; public string CName get return cName; public int Credit get return credit; public int Score get return score; set score = value; public Course(string cName, int credit, int score) this.cName = cName; this.credit = credit; this.score = score; class Student int no; string name; Course course; float oyGPA; /常见算法计算出的GPA分数 float nlGPA; /标准算法计算出的GPA分数 public Student(int no, string name, Course course) this.no = no; = name; this.course = course; /常用方法计算GPA public void countOyGPA() float point=new floatcourse.Length; float dividend=0,divisor=0; /被除数与除数 for (int i = 0; i course.Length; i+) switch (coursei.Score/10) case 10: pointi = 4.0F; break; case 9: pointi = 4.0F; break; case 8: pointi = 3.0F; break; case 7: pointi = 2.0F; break; case 6: pointi = 1.0F; break; default: pointi = 0; break; for (int i = 0; i course.Length; i+) dividend += pointi * coursei.Credit; for (int i = 0; i course.Length; i+) divisor += coursei.Credit; oyGPA = dividend / divisor; /标准方法计算GPA public void countNlGPA() float dividend = 0, divisor = 0; /被除数与除数 for (int i = 0; i course.Length; i+) dividend += coursei.Score * coursei.Credit; for (int i = 0; i course.Length; i+) divisor += coursei.Credit; dividend *= 4; divisor*=100; nlGPA = dividend / divisor; /输出信息 public void print() Console.WriteLine(学号:0 姓名:1,no,name); Console.WriteLine(课程名t学分t分数); for (int i = 0; i course.Length; i+) Console.WriteLine(0t1t2, coursei.CName, coursei.Credit, coursei.Score); Console.WriteLine(常见算法GPA=0:f2,标准算法GPA=1:f2, oyGPA, nlGPA); Console.ReadLine(); class Program static void Main(string args) Course course = new Course(课程1,4,92),new Course(课程2,3,80),new Course(课程3,2,98),new Course(课程4,6,70),new Course(课程5,3,89); Student s = new Student(1,王华,course); s.countOyGPA(); s.countNlGPA(); s.print(); 2.using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Experiment5_2 public delegate void startExamType(DateTime startTime); /声明开始考试委托类型 public delegate void endExamType (string name); /声明结束考试委托类型 class Teacher public event startExamType startExam; /声明开始考试事件委托类型 /引发事件方法 public void declare() Console.WriteLine(教师宣布考试开始); /判断事件是否为空 if (startExam != null) startExam(DateTime.Now); /声明收卷子的时间处理方法 public void accept(string name) Console.WriteLine( 学生 + name + 完成考试开始收卷); class Student public event endExamType endExam; /声明结束考试事件委托类型 string name; Teacher t; public Student(string name) = name; /声明答题的时间处理方法 public void answer(DateTime startTime) Console.WriteLine(学生+name+在+startTime+开始答题); /引发事件方法:提交卷子 public void handin() Console.WriteLine(经过一段时间); endExam(name); class Program static void Main(string args) Teacher t = new Teacher(); Student s=new Studentnew Student(张军),new Student(陈华),new Student(王丽),new Student(许源),new Student(刘畅); foreach(Student i in s) t.startExam += i.answer; /向startExam事件添加时间处理方法 i.endExam += t.accept; t.declare(); /引发事件:宣布开始考试 foreach (Student i in s) i.handin(); Console.Read(); 四、实验结果与分析1.分析:定义Course类和Student类,Course类中存储课程信息、学分、分数,Student类存储学号、姓名、两种GPA得出的成绩、Student对象。Student类中还定义了两种求解GPA的方法,第一种常见算法要用到点数,我使用swtich语句,根据分数不同获得不同的点数。2、分析:第一步声明startExamType委托类型和startExamType事件,第二步在Student类中定义事件处理程序answer(),第三步在mian()函数中,为startExamType事件绑定方法,第四步在Teacher类中定义引发方法declare(),第五步在mian()函数中引发事件。因为Teacher类与Student类互为委托,所以Student类的事件同理。实验项目名称: 实验四 实验学时: 2学时 同组学生姓名: XFS 实验地点: A203 实验日期: 2017.4.26 实验成绩: 批改教师: 批改时间: 一、实验目的和要求(1)掌握C#继承的概念和设计方法(2)掌握C#中多态性的设计方法(3)掌握C#中类对象的转换二、实验仪器和设备具备装载Microsoft Visual Stdio 2010或者更高级版本的Microsoft Visual Stdio 2012/2013,或者Visual Stdio Ultimate 等的电脑都可以。三、实验过程using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Experiment4 class BClass protected string name; public string Name get return name; public BClass(string name) = name; class Book:BClass private string bookName; private int no; public string BookName get return bookName; public int No get return no; public Book(string bookName,string name, int no):base(name) this.bookName = bookName; this.no = no; class Reader:BClass private int libCard; /借书证 private Book book; public int num; public int LibCard get return libCard; public Reader(int libCard,string name):base(name) num = 0; this.libCard = libCard; book = new Book5; public void borrow(Book b) if (num = 5) Console.WriteLine(name+已借满5本,最多只能借5本); return; booknum = b; num+; public void print() Console.WriteLine(读者:t+ name + 所借图书:); for (int i = 0; i num; i+) Console.WriteLine(t+(i+1)+: + booki.BookName + ); class Program static void Main(string args) Reader r1 = new Reader(1234,王华 ); r1.borrow(new Book(C语言,谭浩强,100); r1.borrow(new Book(数据结构, 韩顺平, 110); r1.borrow(new Book(软件工程, 张远, 210); Reader r2 = new Reader(2600, 李兵); r2.borrow(new Book(操作系统, 郝兵, 208); r1.print(); r2.print(); Console.Read(); 四、实验结果与分析分析:本题要有三个类,分别是Bclass类、Book类、Reader类,其中Bclass是基类,其它两个是子类。Reader类的成员有一个是book,它对应的是Book类数组,用来存放借了的书的,它还有borrow方法(借书方法),每调用一个就num+一次,最多借5本,还有print()方法,用来输出借书人和所借的书的相关信息。实验项目名称: 实验五 实验学时: 2学时 同组学生姓名: XFS 实验地点: A203 实验日期: 2017.5.17 实验成绩: 批改教师: 批改时间: 一、实验目的和要求掌握C#窗体的属性和设计方法,窗体类型和调用方法,各种常见的内部控件的特点、属性、方法和事件过程,多窗体之间传递数据的方法,窗体事件的处理机制。二、实验仪器和设备具备装载Microsoft Visual Stdio 2010或者更高级版本的Microsoft Visual Stdio 2012/2013,或者Visual Stdio Ultimate 等的电脑都可以。三、实验过程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;namespace EX9_1 struct Student public int no; public string name; public string sex; public int classId; public DateTime birthday; public Student (int no,string name,string sex,int classId,DateTime birthday) this.no=no; =name; this.sex=sex; this.classId=classId; this.birthday=birthday; public partial class Form1 : Form Student s = new Student3; public Form1() s0.no = 1; = 张三; s0.sex = 男; s0.classId = 99091; s0.birthday = new DateTime(1986,3,5); s1.no = 2; = 李四; s1.sex = 男; s1.classId = 99090; s1.birthday = new DateTime(1985,12,1); s2.no = 3; = 张丽; s2.sex = 女; s2.classId = 99091; s2.birthday = new DateTime(1980,3,2); InitializeComponent(); private void btnOk_Click(object sender, EventArgs e) if (cmbNo.SelectedIndex = 0) txtNo.Text= s0.no.ToString(); txtName.Text = .ToString(); txtSex.Text = s0.sex.ToString(); txtClassId.Text = s0.classId.ToString(); txtBirthday.Text = s0.birthday.ToShortDateString(); if (cmbNo.SelectedIndex = 1) txtNo.T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论