最新范文 方案 计划 总结 报告 体会 事迹 讲话 倡议书 反思 制度 入党

《网络程序设计》教师实验报告

日期:2020-06-14  类别:最新范文  编辑:一流范文网  【下载本文Word版

《网络程序设计》教师实验报告 本文关键词:实验,教师,报告,网络程序设计

《网络程序设计》教师实验报告 本文简介:《网络程序设计》教师实验报告学院:信息科学与技术学院专业:学期:2013~2014学年第一学期教师:I目录实验1熟悉C#运行环境11.1实验目的11.2实验预习11.3实验任务1实验2结构化程序设计32.1实验目的32.2实验预习32.3实验任务3实验3使用数组63.1实验目的63.2实验预习63.

《网络程序设计》教师实验报告 本文内容:

《网络程序设计》

教师实验报告

院:信息科学与技术学院

业:

期:2013~2014学年第一学期

师:

I

目录

实验1

熟悉C#运行环境1

1.1

实验目的1

1.2

实验预习1

1.3

实验任务1

实验2

结构化程序设计3

2.1

实验目的3

2.2

实验预习3

2.3

实验任务3

实验3

使用数组6

3.1

实验目的6

3.2

实验预习6

3.3

实验任务6

4.1

实验目的9

4.2

实验预习9

4.3

实验任务9

实验5

继承和接口设计12

5.1

实验目的12

5.2

实验预习12

5.3

实验任务12

实验6

创建Windows

应用程序16

6.1

实验目的16

6.3

实验任务16

实验7

用户界面设计(一)20

7.1

实验目的20

7.2

实验预习20

7.3

实验任务20

实验8

用户界面设计(二)23

8.1

实验目的23

8.2

实验预习23

8.3

实验任务23

24

实验1

熟悉C#运行环境

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

1.1

实验目的

1.了解和掌握C#语言的主要特点。

2.熟悉C#语言的程序开发环境,掌握C#语言的上机步骤。

3.熟练掌握源程序的建立、编辑、编译、保存和运行的基本方法。

4.会编写简单的控制台程序和Windows应用程序。

1.2

实验预习

1.熟悉Visual

C#的启动和退出以及Visual

C#中的编辑、编译、连接和运行命令。

2.了解Visual

C#开发环境的配置。

1.3

实验任务

1.Visual

C#的启动。启动成功的界面截图如下:

2.认识Visual

C#的菜单栏、工具栏,工具箱,解决资源方案管理器,代码编辑窗口。分别截图如下:

3.完成一个简单的控制台程序的编写、运行。并将结果截图。

4.完成一个简单的Windows程序的编写、运行。并将结果截图。

实验2

结构化程序设计

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

2.1

实验目的

1.认识C#语言,熟悉C#语言的语法结构。

2.掌握C#语言中4种基本数据类型的特点、数据类型变量的定义及使用。

3.掌握不同数据类型运算时,数据类型的转换规则。

4.熟练掌握赋值语句。

5.掌握C#语言中表达式语句以及不同运算符的运算规则和优先级。

2.2

实验预习

1.熟悉各种数据类型变量的定义形式。

2.各种数据类型的取值范围。

3.各类运算符的优先级和结合规则。

4.常量与变量的区别和联系。

2.3

实验任务

1.设计一个控制台程序Proj3-8,定义变量int

a=2,b=3;

float

x=3.5f,y=2.5f;并求表达式(float)(a+b)/2+(int)x%(int)y的值。【要求写出代码,并将运行结果截图】

using

System;

using

System.Collections.Generic;

using

System.Text;

namespace

Proj3_8

{

class

Program

{

static

void

Main(string[]

args)

{

int

a

=

2,b

=

3;

float

x

=

3.5f,y

=

2.5f;

Console.WriteLine(“{0}“,(float)(a

+

b)

/

2

+

(int)x

%

(int)y);

}

}

}

2.设计一个控制台程序Proj3-9,定义变量int

a=3,b=4,c=5;

并求表达式(++c-1)

using

System.Collections.Generic;

using

System.Text;

namespace

Proj3_9

{

class

Program

{

static

void

Main(string[]

args)

{

int

a

=

3,b

=

4,c

=

5;

Console.WriteLine(“{0}“,(++c

-

1)

}

}

}

3.设计一个控制台程序Proj3-10,声明一个学生结构类型Stud,包含学号、姓名和出生日期成员,定义Stud结构的两个学生变量s1和s2并赋值,求他们出生在星期几和他们出生相差的天数。【要求写出代码,并将运行结果截图】

using

System;

using

System.Collections.Generic;

using

System.Text;

namespace

Proj3_10

{

enum

WeekDayhz

{星期日,星期一,星期二,星期三,星期四,星期五,星期六};

class

Program

{

struct

Stud//结构类型声明应放在Main函数的外面

{

public

int

xh;//学号

public

string

xm;//姓名

public

DateTime

birthday;//出生日期

}

static

void

Main(string[]

args)

{

Stud

s1,s2;

s1.xh

=

100;

s1.xm

=

“李明“;

s1.birthday

=

new

DateTime(1985,10,18);

s2.xh

=

200;

s2.xm

=

“王丽“;

s2.birthday

=

new

DateTime(1986,2,16);

int

i

=

(int)s1.birthday.DayOfWeek;

Console.WriteLine(“{0}出生在{1}“,s1.xm,(WeekDayhz)i);

i

=

(int)s2.birthday.DayOfWeek;

Console.WriteLine(“{0}出生在{1}“,s2.xm,(WeekDayhz)i);

Console.WriteLine(“{0}和{1}相差{2}天“,s1.xm,s2.xm,s2.birthday

-

s1.birthday);

}

}

}

4.验证课本P56页的例3.7。【要求写出代码,并将运行结果截图】

using

System;

namespace

Proj3_7

{

class

Program

{

static

void

Main(string[]

args)

{

DateTime

d1

=

DateTime.Now;

//定义当前日期时间变量

DateTime

d2

=

new

DateTime(2009,10,1);

//定义一个日期时间变量

Console.WriteLine(“d1:{0}“,d1);

int

i

=

d1.Year;

int

j

=

d1.Month;

int

k

=

d1.Day;

int

h

=

d1.Hour;

int

m

=

d1.Minute;

int

s

=

d1.Second;

Console.WriteLine(“d1:{0}年{1}月{2}日{3}时{4}分{5}秒“,i,j,k,h,m,s);

Console.WriteLine(“d2:{0}“,d2);

Console.WriteLine(“相距时间:{0}“,d2

-

d1);

DateTime

d3

=

d1.AddDays(100);

//d3为d1的100天后的日期

Console.WriteLine(“d3:{0}“,d3);

Console.WriteLine(DateTime.IsLeapYear(i));

Console.WriteLine(DateTime.IsLeapYear(d2.Year));

}

}

}

实验3

使用数组

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

3.1

实验目的

1.掌握C#中数组的声明和使用方法。

2.掌握C#中集合的声明和使用方法。

3.掌握Array类、ArrayList类使用方法。

3.2

实验预习

1.了解数组的定义。

2.了解数组的初始化。

3.了解Array类的属性和方法。

4.了解ArrayList类的属性和方法。

3.3

实验任务

1.验证课本P77例5.1。【将运行结果截图】

2.验证课本P79例5.2。【将运行结果截图】

3.验证课本P79例5.3。【将运行结果截图】

4.验证课本P85例5.4。【将运行结果截图】

5.编写一个控制台程序项目Proj5-6,假设10个整数用一个一维数组存放,求其最大值和最小值。【要求写出代码,并将运行结果截图】

using

System;

using

System.Collections.Generic;

using

System.Text;

namespace

Proj5_6

{

class

Program

{

static

void

Main(string[]

args)

{

int[]

a

=

new

int[10]{1,8,3,4,7,9,6,10,2,5};

int

n=10,max1,max2,i;

max1=a[0]>a[1]?a[0]:a[1];

max2=a[0]>a[1]?a[1]:a[0];

for

(i=2;i=

0)

{

listBox1.Items.Add(listBox2.SelectedItem);

listBox2.Items.RemoveAt(listBox2.SelectedIndex);

}

enbutton();

}

private

void

button4_Click(object

sender,EventArgs

e)

{

foreach

(object

item

in

listBox2.Items)

listBox1.Items.Add(item);

listBox2.Items.Clear();

enbutton();

}

}

}

9.创建一个Windows窗体项目Proj8-4,向其中添加一个窗体Form1,实现用户登录(输入用户名和口令,假设正确的用户/口令是1234/1234),并给出相应的提示信息。规定用户错误输入的次数不超过3次。

10.在Proj8-4项目中添加一个窗体Form2,设计该窗体内容,运行界面如下图。

实验7

用户界面设计(一)

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

7.1

实验目的

1.掌握C#菜单的基本结构和组成。

2.掌握C#下拉式菜单和弹出式菜单的设计方法。

3.掌握通用对话框的使用。

7.2

实验预习

1.了解菜单的基本结构。

2.了解菜单的运行机制。

7.3

实验任务

1.验证课本P207例9.1,掌握下拉式菜单的使用。【要求写出核心代码,并将运行结果截图】

private

void

addop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

+

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

subop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

mulop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

divop_Click(object

sender,EventArgs

e)

{

int

n;

n

=

Convert.ToInt16(textBox1.Text)

/

Convert.ToInt16(textBox2.Text);

textBox3.Text

=

n.ToString();

}

private

void

op_Click(object

sender,EventArgs

e)

{

if

(textBox2.Text==““||

Convert.ToInt16(textBox2.Text)

==

0)

divop.Enabled

=

false;

else

divop.Enabled

=

true;

}

2.验证课本P209例9.2,掌握弹出式菜单的使用。【要求将运行结果截图】

3.验证课本P214例9.3,掌握通用对话框的使用。【要求写出核心代码,并将运行结果截图】

4.验证课本P224例9.4,掌握TreeView的使用。【将运行结果截图】

5.验证课本P231例9.5,掌握单选按钮的使用。【将运行结果截图】

实验8

用户界面设计(二)

院(系):信息科学与技术学院课程名称:网络程序设计教师签名:

班级

信B1211、12

学号

实验室

专业

姓名

计算机号

实验名称

所用软件

实验成绩

8.1

实验目的

1.掌握C#菜单的基本结构和组成。

2.掌握C#下拉式菜单和弹出式菜单的设计方法。

3.掌握通用对话框的使用。

8.2

实验预习

1.了解菜单的基本结构。

2.了解菜单的运行机制。

8.3

实验任务

1.创建一个Windows窗体应用程序项目Proj9-2,添加一个窗体Form1,其中有一个下拉式菜单,包含菜单项如下:

字体(menu1)

…宋体(menu11)

…仿宋(menu12)

…-

…黑体(menu13)

…幼园(menu14)

…楷体(menu15)

大小(menu2)

…28(menu21)

…20(menu22)

…-

…16(menu23)

…12(menu24)

…8(menu25)

当用户单击菜单项时,改变窗体中一个标签的字体和大小。

2.在项目Proj9-2基础上,实现课本P237的上机实验9的内容。

篇2:Java程序设计实验报告2(弹球游戏)1

Java程序设计实验报告2(弹球游戏)1 本文关键词:弹球,程序设计,实验,报告,游戏

Java程序设计实验报告2(弹球游戏)1 本文简介:《Java语言程序设计》课程设计实习报告题目:班级:学号:姓名:同组人员:指导老师:张彬一、实验目的1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行线程的创建、启动等工作。3、培养独

Java程序设计实验报告2(弹球游戏)1 本文内容:

《Java语言程序设计》课程设计

实习报告

题目:

班级:

学号:

姓名:

同组人员:

指导老师:张彬

一、实验目的

1、

掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。

2、

掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行线程的创建、启动等工作。

3、

培养独立查找资料,并解决问题的能力。

二、实验任务

1、

设计并编程实现弹球游戏:

用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。

鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。

程序需提供计时功能,并最终显示玩家能坚持多少秒。

2、

程序要求:

(1)

具备相应界面,并通过事件编程,实现相应的GUI组件功能。

(2)

使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。

(3)

实现鼠标与屏幕四周,以及与小球的碰撞检测。

三、开发工具与平台

1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。

2.开发平台:JDK1.5

四、设计思路

1.界面设计

(1)制作一个简单的面板JFrame,文件保存为bollFrame.java

其中为一public的类

bollFrame,其构造方法为:

bollFrame(int

n){

super();

setTitle(“我的弹球小游戏“);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dimension

dimension

=

Toolkit.getDefaultToolkit().getScreenSize();//得到

电脑屏幕大小

setSize(450,450);

setLocation((dimension.width-game.getWidth())/2-250,(dimension.height-game.getHeight())/2-250);//设置面板显示基中;

this.n

=

n;

myBollPanel

=

new

bollPanel(n);//构造一个画板;

add(myBollPanel);//将画板放入JFrame

createMenu();//创建菜单;

setJMenuBar(bar);

}

(2)构造画板类,文件保存为bollPanel.java

其构造函数如下:

bollPanel(int

n){

this.n

=

n;

//

executorThread

=

Executors.newCachedThreadPool();//创建线程池;

mouse

=

new

mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程;

this.setIsOver(false);//游戏开始线程条件的判断;

for(int

i

=0

;i

myBollThread

=new

bollThread(this);

groupThread.add(myBollThread);

//executorThread.execute(myBollThread);//小球线程加入线程池;

}

addMouseListener(this);

addMouseMotionListener(this);

}

Paint()方法如下构造:

public

void

paint(Graphics

g){

if(!this.getIsOver())

//如果游戏还没结束;

{

super.paint(g);//清除原先的图像

g.setColor(Color.RED);

g.setFont(new

Font(“宋体“,Font.BOLD+Font.ITALIC,15));

g.drawString(“你已坚持:“+getT()+“S“,15,15);//计时器的显示;

for(int

i

=

0;i(getWidth()-23)||xNow(getHeight()-23)||yNow<0){//碰到上下边界;

groupThread.get(i).dy

=

-groupThread.get(i).dy;

}

groupThread.get(i).setxNow(xNow+groupThread.get(i).getdx());//

设置下一个位置;

groupThread.get(i).setyNow(yNow+groupThread.get(i).getdy());

}

}

if(isMouse){

g.drawImage(new

ImageIcon(“boll.gif“).getImage(),mxNow,myNow,40,40,this);//鼠标的图像;

}

}//end

paint();

总体界面如下:

2.逻辑设计

(1).首先,我们考虑到多个小球的运动,实质上是多线程的使用,n个小球我们就同时启动n个线程去控制每个小球的运动。因此我构造出一个类作为一个小球的线程,保存文件为bollThread.java,顾名思义,小球线程类。相关构造方法如下:

public

bollThread(bollPanel

my){

this.myPanel

=

my;

xStart

=

data.nextInt(200);//随机产生开始位置;

yStart

=

data.nextInt(200);

setxNow(xStart);////设置现在的位置;

setyNow(yStart);

setdx();//设置随机方向使用;注意:若不设置为随机,则所有小球将相同一个方向运动;

setdy();

}

(2)再次,小球的出现需要有载体,这就是画板,前面界面设置中已提到过,通过让多个小球共享一个画板,以及通过线程控制小球的重绘,最后通过画板显示给用户。

(3)在第(2)点中提到的画板上我们需要实现鼠标的监听,以下给出几个重要的鼠标事件监听:

public

void

mousePressed(MouseEvent

e)

{//单击启动鼠标事件;

if(e.getButton()==MouseEvent.BUTTON1){

copy.schedule(new

task(),0,1000);//启动定时器;

for(int

i

=0

;i(this.getWidth()-30)||mxNow(this.getHeight()-30)||myNow<=0){//鼠标是否碰到边界;

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“你撞墙了,下次小心点。。。游戏结束“,“提示“,JOptionPane.OK_OPTION);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

for(int

i

=0

;i

int

xNow

=groupThread.get(i).getxNow();

int

yNow

=

groupThread.get(i).getyNow();

if(isPeng(xNow,yNow,mxNow,myNow)){

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“if(你撞球了){“+“/n“+“挑战失败,游戏结束.}“,“提示“,JOptionPane.OK_OPTION);

//System.exit(0);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

//鼠标的上下左右边和

球碰撞的情况,

}

}

(4)

如果游戏开始后我们突然松开鼠标,让我们控制的小球(或“眼睛“)停留在最后松开的点上,那么小球碰到它还会判断是否相撞吗?答案是可以的,我们可以通过编写一个鼠标线程类来实现,保存文件为mouseThread.java;让此线程在我们按下鼠标开始游戏时同时启动,在我们松开鼠标时启动判断相撞事件。

相关的构造方法如下:

mouseThread(int

mxNow,int

myNow,Listgroup,bollPanel

bollpane){

this.mxNow

=

mxNow;//传入鼠标现在位置;

this.myNow

=

myNow;

this.groupThread

=

group;//传入小球线程组;

this.bollpane

=

bollpane;//传入画板对象;

}

3.

程序测试

在程序测试中,先后测试出了,以下几个注意点:

A.

在判断小球与鼠标控制的小球(“眼睛”)相撞时,条件中用到两点之间的距离问题,发现条件不能是两点距离刚好等于两相撞物体半径和,此条件太苛刻,可能引起判断的失误(概率蛮高的呵呵),而应该是小于半径和。

B.

.在小球碰撞或控制的小球(”眼睛“)碰到边界游戏结束时,已经停止了线程,小球竟然还能动,而且是缓慢移动,但是判断是否碰撞及边界问题都能正常执行,与我所意料的完全相反,到现在也不知道是怎么回事,只能在paint()

里进行条件判断,只让bollPanel留下最后一次的个小球及“眼睛”位置。

C.这是最后才调试出来的,也是这个游戏中较难注意到的。

就是一些boolean变量的设置:

private

boolean

isTime;//定时器是否启动;

private

boolean

isGroupThread;//所有小球线程组是否启动;

private

boolean

isMouseThread;//鼠标线程是否启动;

private

boolean

isMouse;//鼠标事件是否启动;

private

boolean

isOver;//游戏是否结束;

刚开始时并没有注意到这些,如果我点击鼠标左键开始游戏时,启动了小球线程,这时要设置变量isGroupThread

=

true标志小球线程组已启动,释放鼠标启动鼠标线程时,isMouseThread

=

true让鼠标线程来控制与小球相撞的判断,定时器也在这时响应启动

isTime

=true开始计时,若不设置这些的话,将发生以下本质上的共同错误:

:等我释放鼠标后想再次控制小球,就必须在一次启动鼠标事件,这时将重新启动一次计时器,重新启动一次小球线程组,重新启动鼠标线程;这样的结果是导致游戏的结果不确定性,没碰到小球(实际上已碰撞)它就检测碰撞结束游戏。以及计时器的计时紊乱等。

具体调试后的相关代码实现见附录.。

五、实验总结

通过这次的程序设计,我更加明白了学以致用的道理,对线程的应用使得我更好更快的掌握了线程的本质,同时,在此次的程序设计中,经过不断地调试,是我明白了一个程序或项目要做到“精致”,是是需要花多大的精力和耐心,总之,学以致用,会将学到的知识应用到实际中才是学之根本。

此次实验也更了解到了线程的知识,比如:一个线程stop后,不能再用start启动,而应当重新实例化,在start()。也就是说线程的状态转换过程(新建-就绪-运行-阻塞-死忙)是不可逆的,这是个人理解,至少从本实验中可以得到验证。

最后,感谢老师的指导和同学们对我的帮助。

6、

附录

以下是调试后的相关算法实现:

A:

public

boolean

isPeng(int

xNow,int

yNow,int

mxNow,int

myNow){//利用两点之间的距离算法,判断是否撞球

int

x1

=

xNow+15,y1

=

yNow+15;

int

x2

=

mxNow+20,y2

=

myNow+20;

int

mulx

=

x1-x2,muly

=

y2

-y1;

double

sum

=

Math.pow(muly,2)+Math.pow(mulx,2);

if(sum

return

true;

else

return

false;

}

B:

public

void

paint(Graphics

g){

if(!this.getIsOver())

//在此判断游戏是否结束;

{

super.paint(g);//清除原先的图像

g.setColor(Color.RED);

g.setFont(new

Font(“宋体“,Font.BOLD+Font.ITALIC,15));

g.drawString(“你已坚持:“+getT()+“S“,15,15);

for(int

i

=

0;i(getWidth()-23)||xNow(getHeight()-23)||yNow<0){//碰到上下边界;

groupThread.get(i).dy

=

-groupThread.get(i).dy;

}

groupThread.get(i).setxNow(xNow+groupThread.get(i).getdx());

groupThread.get(i).setyNow(yNow+groupThread.get(i).getdy());

}

}

if(isMouse){

g.drawImage(new

ImageIcon(“boll.gif“).getImage(),mxNow,myNow,40,40,this);

}

}//end

paint();

C

:

(1)public

void

mousePressed(MouseEvent

e)

{//单击启动鼠标事件;

if(e.getButton()==MouseEvent.BUTTON1){

if(isMouseThread){//鼠标线程是否活着;

mouse.stop();

isMouseThread

=

false;

}

if(!isTime){

copy.schedule(new

task(),0,1000);//启动定时器;

isTime

=

true;

}

if(!isGroupThread){

for(int

i

=0

;i(this.getWidth()-30)||mxNow(this.getHeight()-30)||myNow<=0){//鼠标是否碰到边界;

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“你撞墙了,下次小心点。。。游戏结束“,“提示“,JOptionPane.OK_OPTION);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

for(int

i

=0

;i

int

xNow

=groupThread.get(i).getxNow();

int

yNow

=

groupThread.get(i).getyNow();

if(isPeng(xNow,yNow,mxNow,myNow)){

//

executorThread.shutdown();

this.setIsOver(true);

copy.cancel();

JOptionPane.showMessageDialog(null,“if(你撞球了){“+“/n“+“挑战失败,游戏结束.}“,“提示“,JOptionPane.OK_OPTION);

//System.exit(0);

this.removeMouseListener(this);

this.removeMouseMotionListener(this);

}

//鼠标的上下左右边和

球碰撞的情况,

}

}

篇3:C程序设计课程总结

C程序设计课程总结 本文关键词:程序设计,课程

C程序设计课程总结 本文简介:本课程总结第一章引言目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。了解C语言程序的结构特点,掌握在TurboC集成环境下编辑、运行简单C语言程序的方法。教学重点:C语言程序的结构特

C程序设计课程总结 本文内容:

本课程总结

第一章

引言

目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。

要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。了解C语言程序的结构特点,掌握在Turbo

C集成环境下编辑、运行简单C语言程序的方法。

教学重点:C语言程序的结构特点;在Turbo

C集成环境下运行C程序

教学难点:算法设计和算法描述。

算法:

算法:就是解决问题的方法。

计算机算法可分为两类别:

数值运算算法

—求数值解,用在科学计算。

非数值运算算法

—求非数值解,用在事物处理。

数值运算算法

例如:已知三角形的底a等8,高h等14,求三角形的面积s。则

数值运算算法为:

1、

a=8

a的值等于8

2、

h=14

h的值等于14

3、

s=a*h/2

计算面积S

非数值运算算法

例如从湛江乘火车去北京开会,其算法为:

1、买火车票

2、按时到车站

3、登上火车

4、到北京站后乘电车到会场

5、参加会议

C语言的特点:

C语言的基本结构

(1)函数是组成C程序的基本单位,一个C的源程序有且只有一个main函数,但可以有若干个其它的函数。

(2)一个函数由两个部分组成:

函数的首部:函数的第一行,包括函数名、函数类型、函数参数(形参)名、参数类型等。

函数体:由声明和执行两部分组成。

(3)一个C程序总是从main函数开始执行的,不管main函数在整个程序中的位置如何。

(4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。

(5)每个语句和数据定义的最后必须有一个分号。

(6)C语言本身没有输入输出语句,输入和输出的操作是由库函数scanf和printf等函数来完成的。

(7)可用/*……*/

//……

对C程序中的任何部分作注释,以增加程序的可读性。

标识符与关键字:标识符用来表示函数、类型、变量的名称,使字母、下划线和数字的排列,必须用字母、下划线开头;关键字不能作为变量或函数名来使用。

C语言程序的开发环境:VC、TC

第二章

C语言的基础知识

目的:通过对本章的学习,要求掌握C语言的基本要素:字符集、标示符、关键字;C语言的基本数据类型。

要求:掌握数据类型、常量、变量的概念及变量的定义和使用方法;

教学重点:基本数据类型的表示方法,常量、变量的使用方法;

基本数据的三种类型及表示形式:

整型

int

(十、八-

-以数字0开头、十六进制—以0X开头)

实型

float(十进制制、指数形式----

e之前必须有数字,e之后指数必须为整数)

字符型:char(注意常见的转义字符)

转义字符

转义字符的意义

/n

回车换行

/t

横向跳到下一制表位置

/v

竖向跳格

/b

退格

/r

回车

/f

走纸换页

//

反斜线符“/”

/‘

单引号符

/”

双引号

/a

鸣铃

/ddd

1~3位八进制数所代表的字符

/xhh

1~2位十六进制数所代表的字符

常量和变量:变量类型与变量的定义

运算符:符号、优先级别、结合方向;尤其注意前增、前减、后增、后减和条件运算

表达式:表达式的值及类型(注意类型的强制转换)

第三章

简单语句与顺序结构程序设计

目的:通过本讲学习,达到进行顺序结构程序设计的目的。

要求:了解程序的三种控制结构及其特点,能对任何一种结构绘制流程图;

掌握基本输出输入函数的基本格式及其主要用法;能够设计顺序结构程序。

教学重点:printf()和scanf()函数的基本格式及其主要用法。

1、C语言的基本语句

2、字符输入、输出:putchar()

getchar()

3、格式输入输出:scanf(“%d”,输入序列:123456[ENTER]

结果:x=123,y=45

2:scanf

(“%d,%d:%f“,输入序列:1,2:3.5[ENTER]

结果:x=1,y=2,z=3.5

3:scanf

(“%d%d%d“,输入序列一:1

2

3[ENTER]

输入序列二:1[TAB]2

3[ENTER]

输入序列三:1[ENTER]

2

3[ENTER]

第四章

选择结构程序设计

目的:通过本讲学习,达到能够使用if语句和switch语句进行程序设计的目的。

要求:掌握if语句三种形式(if,if-else,if-else

if)和执行过程,掌握if语句嵌套概念;掌握条件运算;掌握多路分支switch语句的格式和执行过程。

教学重点:if语句和switch语句的格式和执行过程。

关系运算和关系表达式:>、=

、b)

max=a;

else

max=b;

三、多支选择:

int

a=5,b=7,c=9max;

if(a>b)

if(a>c)

max=a;

else

max=c;

else

if(

b>c)

max=b;

else

max=c;

条件语句注意的问题:

1、

if(

)后面一般不跟“;”号。

如:

if(a>c)

;

max=c;

条件不影响后面语句。

2、

else

与if

的配对

3、

比较两个变量是否相等,必须用“=

=”两个等号。

如:

if(a==b)

c=a;

4、

if(

)语句括号内的值为

0,表示条件不成立。非0表示条件成立。

分情况语句switch()语句和break语句的使用

条件语句的应用例题:

1、将字母换成小写。

main()

{

char

c;

scanf(“%d”,%c);

if(

‘A’<=c

printf(“%c”,c);

}

2.

给出一个3位的正整数。按反序打印每位数。

例如:321,应输出123。

main()

{

int

n,a,b,c;

scanf(“%d”,a=n/100;

b=n%100/10;

c=n%10;

printf(“/n%d%d%d”,c,b,d);

}

3.switch语句的例子

例1:

#include

“stdio.h“main()

{

char

s[]=“ABCCDA“;

int

k;char

c;

printf(“/n“);

for(k=1;(c=s[k])!=

/0

;k++)

{switch(c)

{

case

A

:putchar

(

%

);

continue;

case

B

:

++k;break;

default

:putchar(

);

case

C

:putchar(

continue;}

putchar(

#

);}}

答案:#

while((c=getchar())!=

/n

)

switch(c-

2

)

{

case

0:

case

1:putchar(c+4);

case

2:putchar(c+4);break;

case

3:putchar(c+3);

default:putchar(c+2);break;

}

printf(“/n“);}

若输入为2473,则输出是:668977。

例3:func(1)

int

func(int

a)

{

int

b;

switch(a)

{

case

1:

b

=

30;

case

2:

b

=

20;

case

3:

b

=

16;

default:

b

=

0;

}

return

b;

}

第五章

循环结构程序设计

目的:通过本讲学习,达到使用循环控制语句编写循环控制程序的目的。

要求:掌握while、do-while、for三种循环结构格式以及执行流程;掌握三种循环结构的区别。

重点:while、do-while、for三种循环的结构格式以及执行流程、break语句和continue语句的功能及应用。

主要掌握循环三个变量:

循环从哪开始-----初始值

到哪结束----终止值

步长多少。

for(i=0;i<=99;i++)

printf(“%d”,a[i]);

循环语句注意的问题:

1、

for(

)后面一般不跟“;”号。

如:

for(i=0;i<=99;i++);

printf(“%d”,a[i]);

管不了不后面的printf(“%d”,a[i]);

语句。

2、

while()语句的步长变量必须在循环体内改变。

例:i=1;

While(i<10)

{

printf(“%d”,i);

i++;}

否则死循环。

3、

while(

)语句括号内的值为

0,表示条件不成立。非0表示条件成立。

例:

int

i,j;

for(i=5;i;i--)

for(j=1;j<5;j++)

{

}

假若内循环体内不存在中止循环的控制语句,则内循环体执行的总次数为___A___。

A.

20

B.

24

C.

25

D.

30

循环的应用例题:

一、一重循环的应用:

1、输入10个数据到数组a[10].

main()

{

int

i,a[10];

for(i=0;i<=9;i++)

scanf(“%d”,%a[i]);

}

2、已知有十个学生的成绩,

求最高分max和最低分min,所在的下标ma,mi。

main()

{

int

max,mink,ma;

int

a[10]={88,78,76,89,66,65,68,99,77,89};

max=a[0];

ma=0;

for(k=1;k<=9;k++)

if(max

{

max=a[k];

ma=k;}

min=a[0];

for(k=1;ka[k])

{

min=a[k];

mi=k;}

printf(“/n

max=%d,min=%d”,max,min);

}

二重循环的应用:

1、打印图形

例题:打印下面图案:************************

总共打印4行,每行打印6个星号。

分析:

要求打n行.

每行打若干”*”

换行.

main()

{

int

I,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=6;j++)

printf(“*”);

printf(“/n”);

}

}

2、将数组

a[10]={88,78,76,89,66,65,68,99,77,89};从小到大排序

main()

{

int

i,j,ma;

int

a[10]={88,78,76,89,66,65,68,99,77,89};

for(i=0;k<9)

for(j=i+1;ja[j])

{

ma=a[i];a[i]=a[j];a[j]=ma;}

for(i=0;ib?a:b;

return

m;

}

main()

{

float

a,b,m;

Scanf(“%f,%f”,m=max(a,b);

调用子程序max

printf(“%f”,m);

}

2、求出100—500内所有的素数,并按5个一排打印出来。

prim(int

n)

{

int

k,fg;

for(k=2;k<=n/2;k++)

if(n%k=

=0)

{

fg=0;break;}

else

fg=1;

return

fg;

}

main()

{

int

k,x,cnt=0;

for(k=100;k<=500;k++)

{

if(prim(k))

{

if(cnt%5==0)

printf(“/n”);

printf(“%d”,k);

cnt++;}

}}

4、

用函数递归实现求n!

#include

long

fat(int

n)

{

long

y;

if

(n=

=1)

y=1;

else

y=n*fat(n-1);

return

y;

}

void

main()

{int

n;

long

fa;

scanf(“%d”,fa=fat(n);

printf(“%d

!=

%ld/n”,n,fa);

}

4、教材

第72页

例6.3

第74页

例6.5

变量作用域与存储方式:

注意:局部变量、全局变量的概念及特点

动态存储于静态存储比昂两的不同。

例:写出程序运行结果

int

sum(int

a)

{

auto

int

c=0;

static

int

b=3;

c+=1;

b+=2;

return(a+b+c);

}

void

main()

{

int

I;

int

a=2;

for(I=0;I<5;I++)

{

printf(“%d,“,sum(a));

}

}

8,10,12,14,16

预编译处理:

1、宏定义:无参数的宏定义、带参数的宏定义方法和注意事项

2、文件包含

第七章

数组(一维数组和二维数组)

目的:通过本讲介绍,达到使用数组进行基本编程的目的。

要求:掌握一维数组和二维数组的定义和初始化及引用;掌握一维数组的编程应用和二维数组的简单编程应用;了解数组作为函数参数的使用。

重点:一维数组和二维数组的定义、初始化及其数组元素的引用方法。

数组的概念

?

数组:具有相同类型的数据组成的序列,是有序集合

数组定义形式:数据类型

数组名[常量表达式]

数据类型:数组的基本类型

有整型、实型、字符型等。

int

a[10]

float

b[10]

char

c[10]

l

数组名

对数组的标识,遵循C语言标识符规则

l

常量表达式

是数组元素的个数,即数组长度。

int

a[10]

10

它必须是常量。

下标:元素在数组的位置.

下标的上界:

0

下界:

9

数组的成员称为数组元素。

数组的基本应用:(必须掌握)

1.对一组数,求累加数,平均数。

2.对一组数,求最大值或最小值和下标。

3.将最小(大值)调到前面。

4.对一组数,按最大(小)值排序。

5.

将字符数组从小到大排序.

6.

对字符数组,把字母

a换成b,b---c,z---a.

7.对一组数a[],按给出的条件取数,赋给另外一个数组b[]。再对b[]排序。(难,等级考试题)

例题1、对字符数组,把字母

a换成b,b---c,z---a.

main()

{

int

i,j;

/*‘a’---‘b’

‘a’+1*/

char

a[10]={‘a’,’c’,’e’,…’u’};

for(i=0;i=’a’

else

if(a[i]==’z’)

a[i]==’a’;}

}

2、对一组数a[],把偶数的元素,赋给另外一个数组b[]。再对b[]排序。(难,等级考试题)

main()

{

int

b[16],cnt=0,I,j,y;

int

a[16]={12,32,11,33,43,45,66,88,78,46,69,99,98,87,76,65};

for(i=0;i<16;i++)

if((a[i])%2==0)

b[cnt++]=a[i];

for(i=0;i

for(j=i+1;jb[j])

{y=b[i];b[i]=b[j];b[j]=y;}

for(i=0;i

printf(“%d,”,b[i]);

}

第八章

指针(指针基础)

目的:通过本讲介绍,达到应用指针进行基本编程的目的。

要求:掌握指针和指针变量的概念、掌握指针变量的定义、赋值方法,熟练使用指针访问简单变量;掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素;了解指针和二维数组的关系,掌握用指针表示二维数组元素的方法;掌握指针与字符串的关系。

例:a[q

-

p]

int

a[3];

a[0]=0;

a[1]=1;

a[2]=2;

intp,q;

p=a;

q=

float

;

char

;

必须有说明语句,

scanf(“格式符“,

}

必须有输出语句

C程序编写容易犯的错误

1、

有变量运算,没有说明语句。

2、

输入语句

scanf(),变量前面没写”&”地址符。

3、

用到大写字母开头或大写的函数名。如Printf(),SIN(x)

4、

打印语句printf()“格式符”或变量名错。

    以上《《网络程序设计》教师实验报告》范文由一流范文网精心整理,如果您觉得有用,请收藏及关注我们,或向其它人分享我们。转载请注明出处 »一流范文网»最新范文»《网络程序设计》教师实验报告
‖大家正在看...
设为首页 - 加入收藏 - 关于范文吧 - 返回顶部 - 手机版
Copyright © 一流范文网 如对《《网络程序设计》教师实验报告》有疑问请及时反馈。All Rights Reserved