程序设计基础实验内容

程序设计基础实验内容
程序设计基础实验内容

实验指导

实验一Visual C++6.0开发环境使用

1.实验目的

(1)熟悉Visual C++6.0集成开发环境。

(2)掌握C语言程序的书写格式和C语言程序的结构。

(3)掌握C语言上机步骤,了解C程序的运行方法。

(4)能够熟练地掌握C语言程序的调试方法和步骤

2. 实验内容

输入如下程序,实现两个数的乘积。

#include (stdio.h);

int main()

{

x=10,y=20

p=prodct(x,t)

printf("The product is : ",p)

int prodct(int a ,int b )

int c

c=a*b

return c

}

(1)在编辑状态下照原样键入上述程序。

(2)编译并运行上述程序,记下所给出的出错信息。

(3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论

(1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。

(2)总结C程序的结构和书写规则。

实验二数据类型、运算符和表达式

1.实验目的

(1)理解常用运行符的功能、优先级和结合性。

(2)熟练掌握算术表达式的求值规则。

(3)熟练使用赋值表达式。

(4)理解自加、自减运算符和逗号运算符

(5)掌握关系表达式和逻辑表达式的求值

(1)整数相除

#include

int main()

{

int a=5,b=7,c=100,d,e,f;

d=a/b*c;

e=a*c/b;

f=c/b*a;

printf("d=%d , e=%d ,f=%d\n",d,e,f);

return 0;

}

(2)自加、自减运算

#include

int main()

{

int a=5,b=8;

printf("a++=%d\n",a++);

printf("a=%d\n",a);

printf("++b=%d\n",++b);

printf("b=%d\n",b);

return 0;

}

(3)关系运算和逻辑运算

#include

int main()

{

int a=5,b=8,c=8;

printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a< =c);

printf("%d,%d\n",a<=b||a>=c,a==b||b==c);

printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b));

return 0;

}

(1)在编辑状态下输入上述程序。

(2)编译并运行上述程序。

3.分析与讨论

(1)整数相除有什么危险?应如何避免这种危险?

(2)分析a++和++a的区别。

(3)条件表达式和逻辑表达式的意义是什么,它们取值如何?

(4)如何比较两个浮点数相等?为什么?

实验三格式化输入输出函数的使用

(1)掌握格式字符使用的方法。

(2)掌握printf()进行格式化输出的方法。

(3)掌握scanf()进行格式化输入的方法。

2.实验内容

(1)输入如下程序,观察运行结果

#include

int main()

{

int x=1234;

float f=123.456;

double m=123.456;

char ch='a';

char a[]="Hello,world!";

int y=3,z=4;

printf("%d %d\n",y,z);

printf("y=%d , z=%d\n",y,z);

printf("%8d,%2d\n",x,x);

printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f);

printf("%lf\n",m);

printf("%3c\n",ch);

printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);

return 0;

}

(2)输入下面程序,观察调试信息

#include

int main()

{

double x,y;

char c1,c2,c3;

int a1,a2,a3;

scanf("%d%d%d",a1,a2,a3);

printf("%d,%d,%d\n",a1,a2,a3);

scanf("%c%c%c",&c1,&c2,&c3);

printf("%c%c%c\n",c1,c2,c3);

scanf("%f,%lf",&x,&y);

printf("%f,%lf\n",x,y);

return 0;

}

(1)在VC++6.0集成开发环境中输入上述程序,观察调试结果。(2)如果有错误,请修改程序中的错误。

3.分析与讨论

(1)分析程序错误及运行结果错误的原因。

(2)总结printf()中可使用的各种格式字符。

(3)总结转移字符的使用和功能。

实验四分支结构程序设计

1.实验目的

(1)了解条件与程序流程的关系

(2)了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。

(3)掌握if语句和if else语句的用法

(4)掌握switch语句的用法

2.实验内容

1.从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序。请分别设计下列数据对自己的程序进行测试:

(1)找出各条语句中的错误。

(2)找出各分支中的错误。

(3)找出各条件中的错误。

(4)找出各种条件组合中的错误。

(5)找出各条路径中的错误。

2.用scanf函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。具体要求如下:

(1)用if语句实现分支或switch分支。

(2)在输入百分制成绩前要有提示。

(3)在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩(即大于100分或小于0分)应输出出错信息。

(4)在输出结果中应包括百分制成绩与成绩等级,并要有文字说明。

(5)分别输入百分制成绩:-90,100,90,85,70,60,45,101,运行该程序。

3.编程找出5个整数中的最大数和最小数,并输出找到的最大数和最小数。

3.分析与讨论

(1)总结分支程序设计的方法。

(2)复合语句的使用。

(3)switch语句的注意事项。

实验五循环结构程序设计

1.实验目的

(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。

(2)了解条件型循环结构的基本测试方法。

(3)掌握如何正确地控制计数型循环结构的次数。

(4)了解对计数型循环结构进行测试的基本方法。

(5)了解在嵌套循环结构中,提高程序效率的方法。

2.实验内容

(1)输入一个正整数,并将其颠倒过来。如12345对应为54321。

(2)将一个长整型数s 的每一位数位上的偶数依次取出来,构成一个新的数t 中,高位仍在高位,低位仍在低位,例如:s=87653142时,t 中的数为:8642。

(3)判断101~200之间有多少个素数。

(4)编写程序,输出杨辉三角。

3.分析与讨论

(1)总结条件循环结构的一般方法。

(2)如何测试计数型循环结构的控制表达式中的错误?

(3)从实验中你得到了哪些提高嵌套循环程序效率的启示?

实验六 函数

1.实验目的

(1)掌握C 语言函数定义及调用的规则。

(2)理解参数传递的过程。

(3)掌握函数返回值的大小和类型确定的方法。

(4)理解变量的作用范围

2.实验内容

(1)上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。

#include

int main()

{

int x,y;

printf("%d\n",sum(x+y));

int sum(a,b)

{

int a,b;

return(a+b);

}

return 0;

}

(2)编写一个程序,输入系数a 、b 、c ,求一元二次方程02

=++c bx ax 的根,包括主函数和如下函数。

判断a 是否为零。

计算判别式ac b 42

-

●计算根。

?输出根。

(3)输入下面程序,分析运行结果

#include

int func (int ,int );

int main ( )

{ int k=4,m=1,p1,p2;

p1=func(k,m) ;

p2=func(k,m) ;

printf("%d,%d\n",p1,p2) ;

return 0;

}

int func (int a,int b)

{ static int m=0,i=2;

i+=m+1;

m=i+a+b;

return (m);

}

3.分析与讨论

(1)针对以上实验内容写出相应的参数传递过程并分析结果。

(2)函数在定义时要注意什么?

(3)讨论静态局部变量的继承性?

实验七数组及其应用

1.实验目的

(1)掌握数组定义的规则。

(2)掌握C语言数组的基本用法。

(3)掌握数组名作为函数参数传递的方法

2.实验内容

(1)运行下面的C程序,根据运行结果,可以说明什么?

#include

int main( )

{

int num[5]={1,2,3,4,5};

inti i;

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

printf("%d ",num[i]);

return 0;

}

(2)为一个冒泡排序程序设计测试用例,并测试之。

(3)操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 ×5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。

3.分析与讨论

(1)通过实验,分析定义与引用数组的区别。

(2)数组的作用是什么?

(3)数组名作为参数有什么特点?

实验八指针及其应用

1.实验目的

(1)掌握变量的指针及其基本用法。

(2)掌握一维数组的指针及其基本用法。

(3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。

2.实验内容

(1)对以下程序进行运行,并从中了解变量的指针和指针变量的概念。

# include

int main()

{

int a=5,b=5,*p;

p=&a;

printf("%d ,%ud\n",a,p);

*p=8;

printf("%d ,%ud\n",a,p);

p=&b;

printf("%d ,%ud\n",a,p);

b=10;

printf("%d ,%ud\n",a,p);

return 0;

}

(2)运行以下程序,观察&a[0],&a[i])和p的变化,然后回答以下问题: 1)序的功能是什么?

2)在开始进入循环体之前,p指向谁?

3)循环每增加一次,p的值(地址)增加多少?它指向谁?

4)退出循环后,p指向谁?

5)你是否初步掌握了通过指针变搔引用数组元素的方法?

# include

int main()

{

int i,*p,s=0,a[5]={5,6,7,8,9};

p=a;

for(i=0;i<5;i++,p++)

s+=*p;

printf("s=%d\n",s);

return 0;

}

(3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用

数组元素的各种方法。

#include

int main( )

{

int i,s1=0, s2=0, s3=0, s4=0,*p,a[5]={1,2,3,4,5};

p=a;

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

s1+=p[i];

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

s2+=*(p+i);

for(p=a;p

s3+=*p;

p=a;

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

s4+=*p++;

printf("\n s1=%d, s2=%d, s3=%d, s4=%d",s1,s2,s3,s4);

return 0;

}

(4)编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成:

1)输入10个数;

2)调用此函数进行重排;

3)输出重排后的结果。

3.分析与讨论

(1)指针的定义方法,指针和变量的关系。

(2)数组和指针的关系。

实验九结构体及其应用

1.实验目的

(1)掌握结构体类型变量与结构体数组的定义和使用。

(2)学会使用结构体指针变量和结构体指针数组。

(3)掌握链表的概念,初步学会对链表进行操作。

2.实验内容

(1)输入出10个学生的学号、姓名和成绩,求出其中的高分者和低分者。

#include

struct student

{

int num;

char name[20];

int score;

};

int main( )

说明 每个实验做完以后,按照实验报告模板格式完成相应的实验报告,存储为word 文档,最终提交的实验文档数量种类和命名原则如下例:(不按要求 者拒收) 目录结构图目录实验 1 内的文件种类和命名原则实验报告成绩将作为平时成绩的一部分计算到期末总成绩中。 实验报告严禁相互抄袭,一经发现抄袭和被抄袭者本次实验按零分计算!

实验1 C 的实验环境和C 语言的数据类型 1. 实验目的 ⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C 程序。 ⑵ 通过运行简单的C 程序,初步了解C 源程序的特点。 ⑶ 掌握C 语言数据类型, 熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法。 ⑷ 掌握不同的类型数据之间赋值的规律。 ⑸ 学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ +)和自减(--)运算符的使用。 2. 实验内容和步骤 检查所用的计算机系统是否已安装了C 编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 3. 实验题目 输入下面的程序 # include "stdio.h" void main() { printf( "This is a c program.\n" ); } 程序无误,其运行的结果为:(请填写) ⑵ 输入并编辑一个有错误的 C 程序。 # include “ stdio.h ” void main() { int a,b,sum a=123; b=456; sum=a+b print( “ suism%d n” ,sum); } 运行后程序出现几处错误,请分别指出,并逐一更改: ⑶ 若k,g 均为int 型变量, 则下列语句的输出为, : # include "stdio.h" void main() { int k, g; k=017; g=111;

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

实验指导 实验一 Visual C++开发环境使用 1.实验目的 (1)熟悉Visual C++集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include ; int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容 (1)整数相除 #include<> int main() {

int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include<> int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include<> int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的 (1)掌握格式字符使用的方法。 (2)掌握printf()进行格式化输出的方法。 (3)掌握scanf()进行格式化输入的方法。 2.实验内容 (1)输入如下程序,观察运行结果 #include<>

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

《材料科学基础》实验指导书 (试用) 院系: 班级: 姓名: 学号: 大连理工大学 年月日

实验目录 实验一金相显微镜的使用及金相试样制备方法(2学时)实验二金属材料的硬度(2学时)实验三 Sn-Pb二元平衡相图测试(2学时)实验四金相定量分析方法(2学时)实验五 Fe-C合金平衡组织观察(2学时)实验六材料弹性及塑性变形测定(2学时)实验七碳钢试样的制备及测试综合性实验(4学时)实验八金属塑性变形及回复再结晶设计性实验(6学时)实验九金属凝固组织及缺陷的观察(2学时)

实验一金相显微镜的使用及金相试样制备方法 一、实验目的 1)了解光学显微镜的原理及构造,熟悉其零件的作用。 2)学会正确操作和使用金相显微镜。 3)掌握金相试样的制备过程和基本方法。 二、实验设备与材料 实验设备:x-1型台式光学显微镜,磨样机、抛光机、砂轮机 实验材料:碳钢标准样品 三、实验内容 1.通过本次实验使学生了解光学显微镜并熟悉光学显微镜的构造和使用方法; 2.要求每个学生会实际操作光学显微镜,观察金相样品并测定其放大倍数。 3.演示并初步认识金相试样的制备过程及方法 四、实验报告撰写 撰写实验报告格式要求: 一、实验名称 二、实验目的 三、实验内容 包括:1. 光学显微镜的构造及其零部件的作用 2. 使用光学显微镜观察标准样品的收获 3. 概述金相试样制备过程及方法 四、个人体会与建议

实验二金属材料的硬度 一.实验目的 1.了解布氏、洛氏、维氏硬度的测试原理。 2.初步掌握各种硬度计的操作方法和使用注意事项。 二.实验设备和样品 1.布氏、洛氏、维氏硬度计 2.铁碳合金试样 三.实验内容和步骤 1.通过老师讲解,熟悉布氏和洛氏硬度计的原理、构造及正确的操作方法。 2.演示测定维氏硬度值,演示测定布氏和洛氏硬度值, 注:每个样品测量压痕数,由指导老师根据学生人数确定,保证每位学生可以操作硬度计1-2次。因为实验条件限制,所以不需要严格按照多次测量取平均值的要求进行实验。 四.实验报告内容 1.简述实验目的和步骤。 2.简要叙述布氏、洛氏、维氏硬度计的测量原理和特点。 3.写出测量步骤,附上实验结果。 4.总结各种硬度计的使用注意事项和使用体会。

实验3 逻辑结构程序设计一、实验目的 1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。 2、学会正确使用逻辑运算符和逻辑表达式。 3、熟练掌握if 语句和switch 语句。 4、结合程序掌握一些简单的算法。 5、学习调试程序。 二、实验内容和步骤 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1、改错题。给定程序MODI1.C 的功能是:对于如下函数: 用scanf 函数输入x 的值,求y 值。/* MODI1.C */#include void main() { int x, y; /***********found***********/ scanf ("%d", &x);if ( x < 1 )y = x; /***********found***********/else if ( 1 <=x&& x < 10 ) y = 2*x -1 ; else y = 3*x -11; printf("y = %d\n", y ); } 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! 修改程序后,运行程序,输入x 的值(分别为x<1、1≤x<10、x ≥10三种情况,如0.5、8、15),检查输 出的y 值是否正确。 ?? ? ??≥-<≤-<=)10(113) 101(12)1(x x x x x x y

2、从键盘输入某学生的考试成绩,要求输出成绩等级A 、B 、C 、D 、E 。学生的成绩可分成5个等级,90- 100分为A 级,80-89分为B 级,70-79分为C 级,60-69分为D 级,0-59分为E 级。要求在输入负数时, 给出错误提示。 ① 事先编好程序,要求分别用if 语句和switch 语句实现。运行程序,并检查结果是否正确。 ② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之 能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。 3、给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位 数字,例如:原数据为321,应输出123。(BX4.6) 分别用1位正整数、2位正整数、3位正整数、4位正整数、5位正整数作为测试数据进行测试。 除此之外,程序还应当对不合法的输入作必要的处理。例如:当输入负数时或输入的数超过5位(如123 456)数时。4、输入3 个整数,要求按由小到大的顺序输出。

实验六金属的塑性变形与再结晶 (Plastic Deformation and Recrystallization of Metals)实验学时:2 实验类型:综合 前修课程名称:《材料科学导论》 适用专业:材料科学与工程 一、实验目的 1.观察显微镜下变形孪晶与退火孪晶的特征; 2.了解金属经冷加工变形后显微组织及机械性能的变化; 3.讨论冷加工变形度对再结晶后晶粒大小的影响。 二、概述 1.显微镜下的滑移线与变形孪晶 金属受力超过弹性极限后,在金属中将产生塑性变形。金属单晶体变形机理指出,塑性变形的基本方式为:滑移和孪晶两种。 所谓滑移,是晶体在切应力作用下借助于金属薄层沿滑移面相对移动(实质为位错沿滑移面运动)的结果。滑移后在滑移面两侧的晶体位向保持不变。 把抛光的纯铝试样拉伸,试样表面会有变形台阶出现,一组细小的台阶在显微镜下只能观察到一条黑线,即称为滑移带。变形后的显微组织是由许多滑移带(平行的黑线)所组成。

在显微镜下能清楚地看到多晶体变形的特点:① 各晶粒内滑移带的方向不同(因晶粒方位各不相同);② 各晶粒之间形变程度不均匀,有的晶粒内滑移带多(即变形量大),有的晶粒内滑移带少(即变形量小);③ 在同一晶粒内,晶粒中心与晶粒边界变形量也不相同,晶粒中心滑移带密,而边界滑移带稀,并可发现在一些变形量大的晶粒内,滑移沿几个系统进行,经常看见双滑移现象(在面心立方晶格情况下很易发现),即两组平行的黑线在晶粒内部交错起来,将晶粒分成许多小块。(注:此类样品制备困难,需要先将样品进行抛光,再进行拉伸,拉伸后立即直接在显微镜下观察;若此时再进行样品的磨光、抛光,滑移带将消失,观察不到。原因是:滑移带是位错滑移现象在金属表面造成的不平整台阶,不是材料内部晶体结构的变化,样品制备过程会造成滑移带的消失。) 另一种变形的方式为孪晶。不易产生滑移的金属,如六方晶系的镉、镁、铍、锌等,或某些金属当其滑移发生困难的时候,在切应力的作用下将发生的另一形式的变形,即晶体的一部分以一定的晶面(孪晶面或双晶面)为对称面,与晶体的另一部分发生对称移动,这种变形方式称为孪晶或双晶。 孪晶的结果是:孪晶面两侧晶体的位向发生变化,呈镜面对称。所以孪晶变形后,由于对光的反射能力不同,在显微镜下能看到较宽的变形痕迹——孪晶带或双晶带。在密排六方结构的锌中,由于其滑移系少,则易以孪晶方式变形,在显微镜下看到变形孪晶呈发亮的竹叶状特征。(注:孪晶是材料内部晶体结构上的变化,样品制备过程不会造成孪晶的消失。) 对体心立方结构的Fe -α,在常温时变形以滑移方式进行;而在0℃以下受冲击载荷时,则以孪晶方式变形;而面心立方结构大多是以滑移方式变形的。 2.变形程度对金属组织和性能的影响

福建师范大学闽南科技学 院 程序设计基础实践报告 题目职工工资信息管理系统 学生姓名陈显泽 学院信息科学及工程学院 专业班级土木工程1班 完成时间 2017.4.20 指导教师褚若波

目录 一、课程设计目的和要求................................... 二、课程设计基本内容.................................... 三、程序功能简介........................................ 四、主体内容............................................ 4.1 设计分析...................................... 4.2 程序结构...................................... 4.3 模块的功能及程序说明.......................... 4.4 相关模块源程序................................ 4.5 操作方法(流程)................................ 4.6 试验结果(包括输入数据和输出结果)............. 4.7 设计体会...................................... 4.8 参考文献...................................... 五、用户使用说明........................................ 六、对本设计过程及方法、手段的改进建议..................

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

大学生c语言程序设计实训报告总结 C语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便,,小编整理了大学生c语言程序设计实训报告总结,希望能帮助到您。 大学生c语言程序设计实训报告总结一 C语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,Unix,Linux,Mac,os/2,无一例外,哪一个不是C语言写的?很多新型的语言如,C++,Java,C#,J#,perl...都是衍生自C语言。掌握了C语言,可以说你就掌握了很多门语言。 学习C程序这门课一年了,这是我们学的第一门专业课,在大学里C语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。 在学习一年C语言的过程中我也在慢慢探索怎样才能学好C语言,

并总结了一点经验: 要了解C语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础也是C语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。比如说IFELSE和SWITCHCASE这两种条件语句都是用来判断执行功能的,那我要什么时侯用IF什么时侯用SWITCH 呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选SWITCH 而不会选IF。因为如果条件分支太多时要用IF语句,这样一定会出现IF的嵌套,如果IF的嵌套越多时程序的开销就会随着增大,这样对整个程序的运行效率就大在降底。而SWITCH就不同,它只要比较一次就可以找出条件的结果比起嵌套IF它的效率就大大的提高了很多。不过SWITCH也有它的约束条件,就是它的条件值一定要是一个整型数或是一个字符值,所以碰到它不能解决的问题时我们也会通常使用IF语句,毕竟IF语句它使用起来也比较方便用的范围也比较广。所以说了解语法规则是很重要的,如果没有一个良好的语法基础是很难编出一个好的程序!学习好基础后我们就可以开始来编程了。 大学生c语言程序设计实训报告总结二

实验指导 实验一 Visual C++6.0开发环境使用 1.实验目的 (1)熟悉Visual C++6.0集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include (stdio.h); int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容

(1)整数相除 #include int main() { int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&& a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的

实验报告 实验课程:材料科学基础 学生姓名: 学号: 专业班级: 年月日

实验一浇注和凝固条件对铸锭组织的影响 一、实验目的 1. 研究金属注定的正常组织。 2. 讨论浇注和凝固条件对铸锭组织的影响。 3. 初步掌握宏观分析方法。 二、实验内容说明 金属铸锭(件)的组织一般分为三个区域:最外层的细等轴晶区,中间的柱状晶区和心部的粗等轴晶区。最外层的细等轴晶区由于厚度太薄,对铸锭(件)的性能影响不大;铸锭中间柱状晶区和心部的粗等轴晶区在生产上有较重要的意义,因此认为地控制和改变这两个区域的相对厚度,使之有利于实际产品,有很大意义。 铸锭的组织(晶区的数目、相对厚度、晶粒形状的大小等)除与金属材料的性质有关外,还受浇注和凝固条件的影响。因此当给定某种金属材料时,可借变更铸锭的浇注凝固条件来改变三晶区的大小和晶粒的粗细,从而获得不同的性能。 本实验是通过对不同的锭模材料、模壁厚度、模壁温度、浇注温度及用变质处理和振动等方法浇注成的铝锭的宏观组织的观察,对铸锭的组织形成和影响因素进行初步的探讨,并对金属研究中经常要采用的宏观分析方法进行一次初步的实践。 本实验用以观察的铸锭样品浇注和凝固条件如后表: 三、实验步骤 1. 教师介绍金属宏观分析方法,讲解各样品浇注和凝固条件。 2. 学员轮流观察各种样品,结合已知的浇注和凝固条件分析各样品宏观组织的形成过程。 3. 描述所观察到的各样品的宏观组织。 四、实验报告要求 1. 叙述浇注正常组织的形成过程。 2. 逐一描绘各试样的宏观组织图,分析浇注和凝固条件对铸锭(件)组织的影响。 五、思考题 1. 简述宏观组织的特点及分析方法。

《计算机程序设计基础》实验教学 大纲 课程编号:1303072 实验学时:24课程学分:3.5 课程类型:必修教学对象:全校各非计算机专业先修课程: ㈠实验目的与要求  本实验课程面向文法学院学生,通过本课程的学习与实验,使学生了解程序设计的一些基本概念,掌握计算机程序设计的一般方法,具备使用计算机解决实际问题的初步能力。 在实验教学中提倡“实验前要准备,实验中要认真,实验后要总结”;突出上机实践操作环节,强调在教师指导下的以学生为中心完成每次上机的具体内容和要求;对于普遍问题采用领练、辅导有机

结合的方法;尽量采用 CAI 辅助教学软件。 通过实验教学使学生能够建立计算机程序设计的基本概念;在简单的程序设计过程中掌握Visual Basic可视化设计的步骤,逐步搞清什么是对象、对象的属性以及事件和方法等重要概念。在此基础上,掌握程序设计的3种基本结构。 ㈡实验考核方式与成绩评定方法考核方式: 1.考核学生每次实验完成情况; 2.考核学生的计算机基本操作能力; 3.上机考试 成绩评定:学生应按照每次实验的要求,完成指定的实验任务,并按要求提交实验报告和实验文件,成绩评定由实验指导教师根据学生实验完成情况按照优秀、良好、中等、合格、不合格五个等级给出,实验成绩占20%计入学生课程成绩。  本学期需上交实验报告为三次,实验报告实验要求用本校实验报告册书写。要求填写学号、班级、姓名、实验指导老师、实验日期,报告内容包括实验名称、实验目的、实验内容、详细操作步骤及结果,最好写出自己的上机体会和总结。

㈢ 实验项目设置 根据教学内容和实验教学目的,共设4个实验项目: 项目一,认识Visual Basic,包括2个实验; 项目二,程序设计基础,,包括6个实验; 项目三,常用控件及界面设计,包括2个实验;项目四,文件管理,包括1个实验; 总的实验数为12个实验。 实验项目名称实验内容与学时分配总学时 数 认识Visual Basic 1.Visual Basic 程序设计环 境 2.窗体和最基 本控件 4 程序设计基础1.数据类型及函数 2.顺序程序设计 3.分支结构程序设计4.循环结构程序设计5.数组 6.过程 12 常用控件及界面设计1.常用标准控件 2.界面设计 4 文件管理1.文件管理2

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

材工《材料科学基础》实验指导书湖北工业大学材料科学与工程学院 2013.3

实验1 淬冷法研究相平衡 目的意义 在实际生产过程中,材料的烧成温度范围、升降温制度,材料的热处理等工艺参数的确定经常要用到专业相图。相图的制作是一项十分严谨且非常耗时的工作。淬冷法是静态条件下研究系统状态图(相图)最常用且最准确的方法之一。掌握该方法对材料工艺过程的管理及新材料的开发非常有用。 本实验的目的: 1.从热力学角度建立系统状态(物系中相的数目,相的组成及相的含量)和热力学条件(温度,压力,时间等)以及动力学条件(冷却速率等)之间的关系。 2.掌握静态法研究相平衡的实验方法之一──淬冷法研究相平衡的实验方法及其优缺点。 3.掌握浸油试片的制作方法及显微镜的使用,验证Na2O —SiO2系统相图。 基本原理 从热力学角度来看,任何物系都有其稳定存在的热力学条件,当外界条件发生变化时,物系的状态也随之发生变化。这种变化能否发生以及能否达到对应条件下的平衡结构状态,取决于物系的结构调整速率和加热或冷却速率以及保温时间的长短。 淬冷法的主要原理是将选定的不同组成的试样长时间地在一系列预定的温度下加热保温,使它们达到对应温度下的平衡结构状态,然后迅速冷却试样,由于相变来不及进行,冷却后的试样保持了高温下的平衡结构状态。用显微镜或X-射线物相分析,就可以确定物系相的数目、组成及含量随淬冷温度而改变的关系。将测试结果记入相图中相应点的位置,就可绘制出相图。 由于绝大多数硅酸盐熔融物粘度高,结晶慢,系统很难达到平衡。采用动态方法误差较大,因此,常采用淬冷法来研究高粘度系统的相平衡。 淬冷法是用同一组成的试样在不同温度下进行试验。样品的均匀性对试验结果的准确性影响较大。将试样装入铂金装料斗中,在淬火炉内保持恒定的温度,当达到平衡后把试样以尽可能快的速度投入低温液体中(水浴,油浴或汞浴),以保持高温时的平衡结构状态,再在室温下用显微镜进行观察。若淬冷样品中全为各向同性的玻璃相,则可以断定物系原来所处的温度(T1)在液相线以上。若在温度(T2)时,淬冷样品中既有玻璃相又有晶相,则液相线温度就处于T1和T2之间。若淬冷样品全为晶相,则物系原来所处的温度(T3)在固相线以下。改变温度与组成,就可以准确地作出相图。 淬冷法测定相变温度的准确度相当高,但必须经过一系列的试验,先由温度间隔范围较宽作起,然后逐渐缩小温度间隔,从而得到精确的结果。除了同一组成的物质在不同温度下的试验外,还要以不同组成的物质在不同温度下反复进行试验,因此,测试工作量相当大。实验器材 1.相平衡测试仪 实验设备包括高温炉、温度控制器、铂装料斗及其熔断装置等,如图1-1所示。 熔断装置为把铂装料斗挂在一细铜丝上,铜丝接在连着电插头的个两铁钩之间,欲淬冷时,将电插头接触电源,使发生短路的铜丝熔断,样品掉入水浴中淬冷。 2.偏光显微镜一套,如图1-2所示。

周信东主编版C语言程序设计基础实验一实验报告 The latest revision on November 22, 2020

实验1 C程序的运行环境和最简单的C程序设计 学号:姓名:莫新锋实验日期: 一、实验目的和要求 (1)熟悉C语言程序开发环境(Visual C++),了解开发环境中的编辑、编译、链接和运行命令。 (2)掌握在C语言开发环境中如何编辑、编译、链接和运行一个标准C语言程序。(3)掌握简单C语言程序的查错方法,理解编译错误信息的含义。 (4)掌握C语言数据类型的概念,熟悉如何定义一个整型、字符型、实型变量,以及如何对它们进行赋值。 (5)了解下列命令及函数:#include <>、main、printf、scanf。 (6)通过运行简单的程序,熟悉C语言的基本格式规范,并初步了解它的结构特点。 二、实验内容 实验指导书中的实验一的“基础部分”题目。 三、实验步骤及结果 (一)VC 实验平台的使用 1.简要描述在VC环境下开发一个C程序的主要步骤,并粘贴主要操作窗口的截图。【请填空。截图的操作方法:先点击欲截取的窗口使之置于屏幕最前方,并作适当的缩放,再按快捷键+将窗口截取到内存中,然后打开word将光标移到欲插入图片的位置上进行粘贴即可。也可对图片进行适当剪切,裁剪掉多余部分。注意:截图上必须有你自己的学号或姓名等信息,否则视为抄袭。】 主要步骤: 1: 创建一个工作文件夹。 2:启动 Visual C++。 3:新建一个 C 语言源程序。 4:编辑源程序 5:保存源程序 2.编译、链接、运行程序 (1)输入源程序后,如何编译该程序 【请填空】 输入好后在编译器中有一个编译按钮按一下就能编译 (2)如何链接程序生成可执行文件 【请填空】 得到后缀为obj的目标程序后选择build菜单下的build选项,表示要求连接并建立一个可执行文件 (3)如何运行程序查看结果 【请填空】

实验八晶体结晶过程观察及凝固条件对 铸锭组织的影响 (Observation of the crystallization process of crystalloid and the impact of solidification conditions on ingot structure) 实验学时:2 实验类型:操作 前修课程名称:《材料科学导论》 适用专业:材料科学与工程 一、实验目的 ⒈观察盐类的结晶过程: ⒉分析凝固条件对铸锭组织的影响。 二、概述 盐和金属均为晶体。由液态凝固形成晶体的过程叫结晶。不论盐的结晶,金属的结晶以及金属在固态下的重结晶都遵循生核和长大的规律。结晶的长大过程可以观察到,可是晶核的大小不能用肉眼看到,因为临界晶核的尺寸很小,而在试验中只能见到正在长大的晶粒,此刻已经不再是临界尺寸的晶核。金属和盐类晶体最常见到的是树枝状晶体。通过直接观察透明盐类(如氯化铵等)的结晶过程可以了解树枝状晶体(枝晶)的形成过程。 在玻璃片上滴上一滴接近饱和的氯化铵溶液,观察它的结晶过程。随着液体的蒸发,溶液逐渐变浓,达到饱和,由于液滴边缘最薄,因此蒸发最快,结晶过程将从边缘开始向内扩展。 结晶的第一阶段是在最外层形成一圈细小的等轴晶体,结晶的第二阶段是形成较为粗大的柱状晶体,其成长的方向是伸向液滴的中心,这是由于此时液滴的蒸发已比较慢,而且液滴的饱和顺序也是由外向里,最外层的细小等轴晶只有少数的位向有利于向中心生长,因此形成了比较粗大的、带有方向性的柱状晶。结晶的第三阶段是在液滴的中心部分形成不同位向的等轴枝晶。这是由于液滴的中心此时也变的较薄,蒸发也较快,同时溶液的补给也不足,因此可以看到明显的枝晶组织。

实验8 指针 一、实验目的 1、通过实验进一步掌握指针的概念,会定义和使用指针变量; 2、能正确使用数组的指针和指向数组的指针变量; 3、能正确使用字符串的指针和指向字符串的指针变量; 二、实验内容和步骤 1、改错 (1)指出下面程序错误的原因. main( ) { int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf("*px=%d,*py=%d,*px,*py); } #include void main() { int x=10,y=5,*px,*py; px=&x; py=&y; printf("px=%d,py=%d",*px,*py); } (2)下面的程序试图有如下运行结果: which style you want to : Capital ( c ) or uncapital ( a ):c ↙ COMPUTER Which sytle you want to : Capital ( c ) or uncapital ( a ) : u↙ computer 请调试下面的程序,使其有如上执行结果. #include main () { char s*;char c; printf("which style you want to :ln"); printf("capital ( c ) or uncapital(a):"); c=getchar(); …… if(c='c')strcpy(s,"COMPUTER"); else strcpy(s,"computer"); put(s); } #include #include #include void main() { char *s;char c; printf("which style you want to :\n"); printf("capital(c) or uncapital(a):"); c=getchar();

程序设计综合实践报告 数学与系统科学学院 2015年11月6日

目录 1. 概述 (1) 2. 相关技术 (1) 2.1 数据链表 (1) 2.2 双缓冲 (1) 3. 总体设计与详细设计 (2) 3.1 系统模块划分 (2) 3.2 主要功能模块 (2) 4. 编码实现 (12) 5. 实训中遇到的主要问题及解决方法 (20) 6. 实训体会 (20)

1. 概述 项目:飞机大战 主要功能:本款基于MFC平台所制作的游戏,具有极大的休闲娱乐功能。玩家通过操纵我机,通过发射子弹机会敌机来积分,分数越高说明了玩家坚持的越长。游戏开始界面向玩家进行了游戏按键的功能说明,游戏中设置暂停按键,可以方便玩家继续游戏。游戏还自带无敌模式,以及我机大招,极大地提高了游戏的可玩性。 2. 相关技术 本程序主要运用了链表和双缓冲的技术。链表的应用方便了对数据成员的访问和处理,简化了代码,支持插入和移除表中任意位置上的节点;双缓冲主要用于图像的处理,在内存中重新绘图后复制到前台,同时禁止背景刷新,避免因图像刷新过于频繁导致画面出现闪烁现象。 2.1 数据链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。使用链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。由于常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换,因此链表最大的优点是允许插入和移除表上任意位置上的节点。 在程序运行过程中,根据游戏对象的种类划分不同的链表,每个链表单一的存储一类数据,在进行处理、绘图时,通过对链表的遍历,实现对数据的访问,再根据所要实现的功能,对不同的对象做出不同的处理,对数据成员的插入和移除也变得轻松了许多。 2.2 双缓冲 在图形图象处理编程过程中,双缓冲是一种基本的技术。窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新会引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。于是我们就看到了闪烁现象。

相关文档
最新文档