C#实训报告书

发布时间:2017-08-17 21:29:22

C#程序设计语言》课程主要面向学生讲授C#程序设计语言的基础知识,而《C#程序设计语言》专业实训则要求学生综合运用理论课所学的知识及技术,在教师指导下完成有一定难度的C#程序,经过分析、设计编写代码、实现程序。因此专业实训与理论课的关系是一个理论与实践的关系,一个分解与综合的关系,一个学习与应用的关系。

C#程序设计是一门应用性很强的专业课,在学习时必须理论与实践相互结合,为此我们开设了本课程的实训,目的就是通过本课程的实训设计使学生能够比较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面的理解、掌握和综合运用所学的知识,提高学生的编程能力,巩固教学效果。

关键词:分析 编写

Abstract

C # Programming Language" course mainly for students to teach C # programming language fundamentals, and "C # programming language" professional training requires students to the integrated use of theory lessons learned knowledge and skills of teachers under the guidance of a a certain degree of difficulty of C # program, through analysis, design, code, implement the program. Therefore, professional training and the relationship between theory and practice is a theoretical relationship, a relationship breakdown and synthesis, a relationship between learning and application.
C # programming is a highly specialized applications in learning theory and practice must be combined with each other, for which we set up this course of training, the purpose is through this training course designed to enable students to more fully grasp about object-oriented programming concepts and development methods in order to more fully understand, grasp and integrated use of knowledge, improve their programming skills, strengthen teaching effectiveness.


Keywords: analytical writing


第一章 实训的目的和任务 1

1.1实训教学的目的 1

1.2实训教学的任务 1

第二章 开发环境简介……………………………………………………………………………..2

2.1 硬件环境 2

2.2 软件环境 2

第三章 项目设计与分析 3

3.1 猜数字游戏 3

3.1.1 猜数字游戏项目的实训目的 3

3.1.2 实训内容 3

3.1.3 实现步骤设计 3

3.1.4 总结 5

3.2 计时器 6

3.2.1 计时器项目的实训目的 6

3.2.2 实训内容 6

3.2.3 实现步骤设计 6

3.2.4 总结 10

3.3 科学计算器……………………………………………………………………………...10

3.3.1 科学计算器项目的实训目的 10

3.3.2 实训内容 11

3.3.3 实现步骤设计 11

3.3.4 总结 13

3.4图片管理器 14

3.4.1图片管理器项目的实训目的 14

3.4.2实训内容 14

3.4.3实现步骤设计 14

3.4.4总结 17

第四章 实训总结…………………………………………………………………………………18

参考文献 20


第一章 实训的目的和任务

1.1实训教学的目的

本课程实训是计算机网络专业重要的实践性环节之一,实在学习完《C语言程序设计》课程后进行的一次全面的综合练习。本课程实训的目的是:

1)巩固和加深学生对C语言课程的基本知识的理解和掌握。

2)掌握C语言编程和程序调试的基本技能。

3)利用C语言进行简单的软件设计的基本思路和方法。

4)提高运用C语言解决实际问题的能力。

利用《C语言程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作过程的程序设计题目,帮助学生掌握编程、调试的基本技能,独立所布置的任务。加强高职计算机专业学生动手能力的培养,通过理论与实践教学 进一步提升专业知识水平。

1.2实训教学的任务

.NET平台上,以Visual Studio 2008为工具完成以下几个项目:

1)猜数字游戏:比较输入的数与随机产生的数进行大小的比较,同时能够显示经过多少次猜对答案,并查看答案。

2)秒表项目:一个秒表,能分记时间,能精确到毫秒。

3)简易计算器:编写一个计算器程序,能实现一些简单的运算,可以实现从十进制转化成二进制、八进制、十六进制。

第二章 开发环境简介

2.1 硬件环境

所谓硬环境,是指由传播活动所需要的那些物质条件、有形条件之和构筑而成的环境。所谓软环境,是指由传播活动所需要的那些非物质条件、无形条件之和构筑而成的环境。就存在形式来说,硬环境是一种物质环境,软环境是一种精神环境。作为物质环境,它被限定或固定在一定的地理位置上(如湖畔的出版大厦,山顶的发射塔)和人为的具体的物质空间之中(如大礼堂、会议室、演播厅)。它独立于人们的意识、体验之外,具有静态的和硬性的特征。作为精神环境,它反映了社会风气、媒介管理、群体风貌、生活状况、信息交流等情况。它是一个被人体验和意识的世界,具有动态的和软性的特征。

2.2 软件环境

软件开发环境(Software Development EnvironmentSDE)是指在基本硬件和基本软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。

软件开发环境的主要组成成分是软件工具。人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种软件工具加工所产生的软件产品或半成品(如源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。工具间的联系和相互理解都是通过存储在信息库中的共享数据得以实现的。


第三章 项目设计与分析

3.1 猜数字游戏

3.1.1 猜数字游戏项目的实训目的

1)掌握窗体应用程序的应用

2)了解if语句的应用

3)熟悉随机函数

3.1.2 实训内

猜数字游戏:比较输入的数与随机产生的数进行大小的比较,同时能够显示经过多少次猜对答案,并查看答案。

3.1.3 实现步骤设计

1 新建1 window应用程序,并把项目命名为“CaiShuZi”。

2)在窗体上放置4button控件分别命名为TijbtnCheckbtnClearbtnRestarbtnText属性分别设置为“提交”,“查看答案”,“清除”,“重新开始”。

3)在窗体上放置3label组件,分别把其中两个Text属性设置“猜数字游戏”,“请输入一个0100的数字”

4)在窗体上放置1Textbox,命名为Resulttxtb

如图所示:

5)选中窗体双击生成Load事件,并双击Tijbtn(提交按钮)产生Click事件。

主要代码如下:

int i;

//计算次数

int count;

private void Form1_Load(object sender, EventArgs e)

{

// 生成一个0~99之间的随机整数

i = new Random().Next(100);

count = 0;

Resultlab.Text = i.ToString();

Resultlab.Visible = false;

}

private void Tijbtn_Click(object sender, EventArgs e)

{

int j = int.Parse(Resulttxtb.Text);

count++;

//比较大小

if (j >= 0 & j <= 100)

{

if (j > i)

{ Windowslab.Text = "你的输入偏大,请重新输入!";}

else if (j < i)

{

Windowslab.Text = "你的输入偏小,请重新输入!";

}

else

{

Windowslab.Text = "恭喜你,你猜对了!" + "一共猜了" + count + "";

}

}

else

{

Windowslab.Text = "输入有误,请重新输入!";

}

}

private void Checkbtn_Click(object sender, EventArgs e)

{

Resultlab.Visible = true;

}

private void Clearbtn_Click(object sender, EventArgs e)

{

Resulttxtb.Text = "";

}

private void Restarbtn_Click(object sender, EventArgs e)

{

i = new Random().Next(100);

count = 0;

Resultlab.Text = i.ToString();

Resulttxtb.Text = "";

Resultlab.Visible = false;

}

3.1.4 总结

1)入的数是否在0100之间,然后进行比较大小。电脑随机产生一个随机数,与输入的数进行比较,经过多次的猜测,从而给出判断是大了还是小了或者是猜对了。

2)在代码中使用了随机函数,输入的数要进行强制转换成整形。以免产生字符串,导致有小数的产生。其次是随机函数在窗体Load事件里,如果在Tijbtn Click事件里,每点击一次就会重新产生一个随机数。

3)代码中Resultlab .Visible = false; 设置Label3Visible属性设置为false,即设置Label3的文本不显示。当点击“查看答案”时,才将随机产生的结果显示出来。

3.2 计时器

3.2.1 计时器项目的实训目的

1)掌握Timerl组件的应用

2)思考代码的实现

3)熟悉自定义方法

3.2.2 实训内容

计时器:设计并实现一个能以毫秒来计数,能够显示多次记录的时间,并可以清楚记录且重新开始计时。

3.2.3 实现步骤设计

1)新建一个window应用程序,并把项目命名为“jishiqi”。

2)在窗体上放置3button控件分别命名为“BtnOk”“BtnClear

BtnRecond.Text属性分别设置为“开始计时”“记录”“清零”。

3)在窗体上放置7lable控件,Text属性分别为“记录1”“记录2”“记录3”,其余4lable属性为“00:00:00:00”。

4)按照图片的格式排放,如图所示:

5)选中窗体双击生成load事件,并双击BtnOk(开始计时按钮)生成Click

主要代码如下:

void MainFormLoad(object sender, System.EventArgs e)

{

this.timer1.Enabled = false;

this.timer1.Interval = 1;

}

//计时函数

public string GetAllTime(int time)

{

string hh, mm, ss, fff;

int f = time % 100; // 毫秒

int s = time / 100; // 转化为秒

int m = s / 60; //

int h = m / 60; //

s = s % 60; //

//毫秒格式00

if (f < 10)

{

fff = "0" + f.ToString();

}

else

{

fff = f.ToString();

}

//秒格式00

if (s < 10)

{

ss = "0" + s.ToString();

}

else

{

ss = s.ToString();

}

//分格式00

if (m < 10)

{

mm = "0" + m.ToString();

}

else

{

mm = m.ToString();

}

//时格式00

if (h < 10)

{

hh = "0" + h.ToString();

}

else

{

hh = h.ToString();

}

//返回 hh:mm:ss.ff

return hh + ":" + mm + ":" + ss + "." + fff;

}

//开始计时按钮单击事件

void BtnOKClick(object sender, System.EventArgs e)

{

if (timer1.Enabled == false)

{

this.btnOK.Text = "停止计时";

this.timer1.Enabled = true;

}

else

{

this.btnOK.Text = "开始计时";

this.timer1.Enabled = false;

}

}

//时钟控件事件

void Timer1Tick(object sender, System.EventArgs e)

{

t = t + 1;//得到总的毫秒数

this.label1.Text = GetAllTime(t);

}

//计时器清零

void BtnClearClick(object sender, System.EventArgs e)

{

t = 0;

i = 0;

lblRecond1.Text = "00:00:00:00";

lblRecond2.Text = "00:00:00:00";

lblRecond3.Text = "00:00:00:00";

//如何正在计时,则先停止再清零,否则直接清零

if (this.timer1.Enabled == true)

{

this.BtnOKClick(sender, e);

label1.Text = GetAllTime(t);

}

else

{

label1.Text = GetAllTime(t);

}

}

int i = 0;

//记录事件

private void btnRecond_Click(object sender, EventArgs e)

{

i++;

if (i == 1)

{

lblRecond1.Text = label1.Text;

}

else if (i == 2)

{

lblRecond2.Text = label1.Text;

}

else if (i == 3)

{

lblRecond3.Text = label1.Text;

3.2.4 总结

通过这次计时器的程序编写,让我认识到了团队合作的精神。这是我们团队一起努力奋斗的成果。虽然在编写代码的过程中我们遇到了一些小问题,但我们还是齐心协力一起解决了。计时器的程序编写让我们对C#程序设计这门课程有了进一步的认识和理解,也进一步奠定了我们学习好C#程序设计这门课程的信心与渴望。

3.3.1 科学计算器项目的实训目的

1)掌握窗体应用程序的应用

2)了解if语句的应用

3)熟悉数据类型的转换

4)掌握单选按钮的使用以及C#中容器的使用

5)掌握从十进制转换成二进制、八进制、十六进制的方法

3.3.2 实训内容

科学计算器:可以进行基本的数据计算以及进制转换,将输入的十进制转换成二进制,八进制和十六进制。

3.3.3 实现步骤设计

1)新建一个Windows应用程序,并把项目命名为“Jisuanqi”。

2)把窗体命名为MainFormText属性为“科学计算器”,KeyPreview属性设置为true

3)在窗体上放置1TextBox,命名为txtResult,将TextAlign属性设置为MiddleRightBorderStyle属性设置为FixedSingleBackColor属性设置为White

4)在窗体上放置23Button4RadioButton,如图所示的简易计算器控件分布图进行命名、设置Text属性。

(5)双击窗体生成一个窗体的Load事件,双击btnCEbtnBS生成Click事件,双击rdo16rdo10 rdo8rdo2生成CheckedChanged事件,选中所有24个按钮,打开事件窗口 ,双击Click事件,为们生成同一个事件,这样所有按钮都共享同一个事件方法。

6)在每个事件方法中输入相应代码,代码程序如下:

if (char.IsDigit(c))

{

if (isSecond || isDone)//0

{

txtResult.Text = "";

isSecond = false;

isDone = false;

}

//txtResult.Text = "";

string s = txtResult.Text + c.ToString();

s = double.Parse(s).ToString();

txtResult.Text = s;

}

else if (c == '+' || c == '-' || c == '*' || c == '/')

{

num1 = double.Parse(txtResult.Text);

oper = c;

isSecond = true;

}

else if (c == '=')

{

num2=double.Parse(txtResult.Text);

double result = 0;

switch (oper)

{

case'+':

result = num1 + num2;

break;

case'-':

result = num1 - num2;

break;

case '*':

result = num1 * num2;

break;

case '/':

result = num1/num2;

break;

}

txtResult.Text = result.ToString();

num1 = result;

isSecond = false;

isDone = true;

}

else if (c == '.')

{

if (txtResult.Text.IndexOf(".") == -1)

{

txtResult.Text += ".";

}

}

i =int.Parse (txtResult.Text);

3.3.4 总结

科学计算器的设计明显比前面两个程序设计复杂,我们小组经过明确的分工合作使得该程序的圆满完成。该程序的编写必须详细理解进制之间的转换,使其才能再C#中顺利运转。这项目的完成加深了我们小组的合作意识也巩固了我们对C#的更深认识理解。

3.4图片管理器

3.4.1图片管理器项目的实训目的

1)掌握多界面的使用

2)控件的使用。

3)学会分析与问题的结合

3.4.2实训内容

制作一个图片管理器,它可以让用户对自己的图片进行分类管理。

3.4.3实现步骤设计

1)新建一个项目,命名为“图片管理器”。

2)在窗体中放置一个ToolStrip控件,命名为tsMainImageScalingSize属性设置为(32,32),

在工具栏上添加5个按钮。分别命名为tsbtnCreateFoldertsbtnDel等其Text属性为新增目录、删除图像等。

如图所示:

具体代码如下:

private void MainForm_Load(object sender, EventArgs e)

{

lvView.Dock = DockStyle.Fill;

tscbInterval.SelectedIndex = 1;

ShowView();

bgBrush = new SolidBrush(lvView.BackColor);

statusStrip1.Items[0].Visible = false;

format.Alignment = StringAlignment.Center;

try

{

if (!Directory.Exists(path))

{

Directory.CreateDirectory(path);

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

DirectoryInfo dir = new DirectoryInfo(path);

foreach (DirectoryInfo d in dir.GetDirectories())

{

Folder folder = new Folder(Application.StartupPath, d.Name);

lstFolder.Items.Add(folder);

}

}

private void tsbtnCreateFolder_Click(object sender, EventArgs e)

{

FrmCreateFolder frmCreateFolder = new FrmCreateFolder(this.lstFolder);

try

{

frmCreateFolder.ShowDialog(this);

}

finally

{

frmCreateFolder.Dispose();

}

}

private void tsbtnLoad_Click(object sender, EventArgs e)

{

if (lstFolder.Items.Count == 0)

{

MessageBox.Show("请先添加目录再导入图片!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);

return;

}

FrmLoadPic frmLoadPic = new FrmLoadPic(this.lstFolder, this.statusStrip1);

try

{

if (frmLoadPic.ShowDialog(this) == DialogResult.OK)

{

LoadTolistView();

}

}

finally

{

frmLoadPic.Dispose();

}

}

3.4.4总结

图片管理器程序的编写是这次实训中最难的一个项目,我们小组经过反复的调试才得出最后正确的答案。中间也走了不少歪路,不难发现这个程序的编写许多地方是比较灵活的,需要我们的组员细心观察。图片管理器项目的完成使我们小组的成果得到了肯定,增加了我们的认识,同时也开阔了我们的视野。


第四章 实训总结

将近一周的时间内,本人和班级其他6个人组成在一起,基于微软.net技术的开发技术,编写ATM服务;软插件;多线程和图书馆系统管理。通过本次实训,感觉.NET是一个很好的开发工具,在使用时很方便,关于界面开发方面:具有很大的优势,都是一些插件性的。比较容易开发,但是经过最近的学习感觉对.NET开发界面的熟悉很重要。当然了,闲暇之时多看一些关于别人设计的界面再去想一想是怎么实现的是一种很好的学习方法。如果说,把C#开发界面,拿到软件工程开发的方法来看,逐步求精是最好的学习方法。因为所有的任务都可以在一个应用程序开发中得到体现,从而也是的该应用程序更加完美!主要培养了自己的规范研发能力,学习了企业项目开发的整个过程和团队项目开发经验,并且加强了.NET新技术的学习,熟练掌握了常用的软件开发工具(如Visual Studio 2008) 的操作规程。

看一看,改一改别人写的代码,养成一个简单程序。看一看比一比就知道,谁的程序好谁的程序更成熟。

看了其他人的代码代码,这是了解他们的代码,也必须了解代码的执行过程。特别是在编译的时候,你会发现的你的进步和不足。在经历无数错误中你也取得的许许多多的经验,这是多少成功的必备之路。

在无数编程过程中,大家都会发现,你的很多英文都会输入错误。都用全叫的句号代替那半角点。这个神奇的点。

大家都喜欢一部登天,那是不可能的事情。无数的错误在积累经验的同时也会把你的自信心会被削弱的。切记切记,不要把自己的自信心打击没有了。从最基本的学起、从简单开始。代码重复利用是快乐的,这样很节省代码的输入量,有信心后再去攻克、再去挑战。

都说当局者迷,可能是很简单的属性设置的问题,或者是那个全角半角的句号,也许是你想不到的边边角角的问题,你却怎么也检查不出来的问题,多和同学交流交流也许很快就解决了。大家要知道,通过网络的搜索,很会找到很多,有关的话题的解决方法,很多你遇到的问题,很有可能,早就被人发现,发现的同时也被其他人解决。你会在寻找问题的答案中,获得进步。

编程和其他事情一样,最烦的就是套用老方式和老办法。你可以充分利用,现有的对象,进行细化和增加新的属性。创新是编程最大的灵感。

不断的总结中,你会发现,你的的进步,同时也存在很多的不足。所以,你要不断的改进你的学习方法,使之不断的进步。编程的本身是一项创造性的工作。灵感来自客户的需要,来自市场的需要,来自用户的便捷操作,来自您对自己的信心。让你在不断的总结中不断的成熟。


参考文献

1)陈广, C#程序设计基础教程》。课本,2008,(2

2)张强, 《程序设计基础》。

C#实训报告书

相关推荐