C程序设计教案(第5章 实验5)5篇

时间:2019-05-13 01:17:37下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C程序设计教案(第5章 实验5)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C程序设计教案(第5章 实验5)》。

第一篇:C程序设计教案(第5章 实验5)

实验 5 一维数组和二维数组一、二、实验学时:2课时 实验目标:

1.熟悉掌握一维数组的定义、赋值和输入输出的方法。2.掌握对10个整数排序的方法。

3.掌握二维数组的定义、赋值和输入输出的方法。

三、实验要求:

1.在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

2.所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、实验步骤和内容

【启动Visual C++】  【新建工程】

 选中【C++ Source File】项,【新建源程序文件】  编辑程序  执行程序

【例5.3】用随机函数产生10个0~100之内的整数,按从小到大排列输出。/* 源文件名:Li5_3.c 功能:产生10个0~100之内的整数,按从小到大排列输出 */ 使数组从小到大排序的规则如下:

⑴设数组为a[0],a[1],…,a[n-1],构造i循环从0,1,…,n-2变化,构造j循环从i+1,i+2,…,n-1变化,即j>i。

⑵对于任何一个a[i],如果a[i]>a[j],表面前面有一个元素a[i]比它后面的元素a[j]大,a[i]应该在后面,a[j]应该在前面,交换a[i]与a[j]。

⑶对于任何一个a[i],都循环一次j,j循环完成后a[i]必不大于a[i+1],…,a[n-1],重复i循环,i循环结束后数组从小到大排序。

#include #include void main(){ int a[10],i,j,k;

/*定义a数组,i、j为循环变量,k为临时变量*/ for(i=0;i<10;i++)

a[i]=rand()%100;

/*给a数组随机赋0~100之内的整数*/

printf(“排序之前的数据”);for(i=0;i<10;i++)printf(“%d”,a[i]);

/*输出a数组的值,未排序*/

putchar(‘n’);

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

for(j=i+1;j<50;j++)

if(a[i]>a[j])

{ k=a[i];a[i]=a[j];a[j]=k;}

/*数组排序*/ for(i=0;i<10;i++)

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

/*输出a数组的值,已排序*/ putchar(‘n’);}

1)观查执行结果,是否与教材相同。2)重新输入10个不同的数,再查看结果

【例5.5】定义一个a[5][6]的整数数组,用随机函数值填写每个单元,找出最大值的单元,输出其行号及列号。

/* 源文件名:Li5_5.c 功能:找出二维数组中最大值的单元,输出其行号及列号。*/ #include #include void main(){ int a[5][6];

/*定义a二维数组*/

int i,j,k,l,max;

/*定义i、j为循环变量,k、l为最大值所在的行和列,max为最大值*/ for(i=0;i<5;i++)

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

a[i][j]=rand()%100;

/*给a二维数组赋值*/

max=a[0][0];k=0;l=0;

/*把a[0][0]假设为最大值*/ for(i=0;i<5;i++)for(j=0;j<6;j++)

if(a[i][j]>max)

{ k=i;l=j;max=a[i][j];}

/*保存最大值及其行号k及列号l*/ printf(“数组是n”)for(i=0;i<5;i++);

{

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

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

/*输出a二维数组的值*/ printf(“n”);

}

printf(“最大值是a[%d][%d]=%dn”,k,l,max);}

1)观查执行结果,是否与教材相同。2)重新输入不同的数据,再查看结果

五、思考题

1)【例5.3】若改为从小到大排序,该如何修改?

2)【例5.5】一开始为什么要把a[0][0]赋值给max,能把0直接赋值给max吗?

六、实验小结:

第二篇:《C程序设计》实验教案

《C程序设计》实验教案

一、实验的目的与任务:

《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。

二、实验项目与要求

实验一:C程序的运行环境和运行一个C程序的方法(2学时)

实验性质:验证性实验

一、实验目的

1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容

1.调用编辑程序,输入教材第一章习题1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.输入并运行教材第一章中习题1.4。

3.输入并运行教材第一章中习题1.9,了解如何在运行时向程序变量输入数据。

实验二 数据类型、运算符和表达式(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容

1.输入并运行教材第三章例3.6.即: #include void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 2 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}

实验三 最简单的C程序设计(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

1.输入并运行以下程序: #include

void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;

unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;

f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e);

printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;

f=3157.890121;g=0.123456789; d=f;e=g;

p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。

② 在①的基础上将printf语句改为:

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);

printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。

2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

实验四 选择结构程序设计(2学时)

实验性质:设计性实验

一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数

xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~

10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

实验五 循环控制(4学时)

实验性质:设计性实验

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x-4x+3x-6=0在1.5附近的根。

32实验六 数组(4学时)

实验性质:设计性实验

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编程序并上机调试运行。

1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。

实验七 函数(4学时)

实验性质:设计性实验

一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

二、实验内容

编程序并上机调试运行。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变 量。

(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

实验八 预处理命令(2学时)

实验性质:设计性实验

一、实验目的

1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。

实验九 指针(4学时)

实验性质:设计性实验

一、实验目的 1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;

二、实验内容

编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。

2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:

17 133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。

实验十 结构体和共用体(4学时)

实验性质:设计性实验

一、实验目的

1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。

二、实验内容

编程序,然后上机调试运行。

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5 8 个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

2.输入和运行以下程序:

#include

union data {int i[2]; float a; long b; char c[4]; };

void main(){union data u;

scanf(“%d,%d”,&u.i[0],&u.i[1]);

printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。

然后将scanf语句改为: scanf(“%ld”,&u.b);

输入60000给b。分析运行结果。

实验十一 文件(2学时)

实验性质:设计性实验

一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。

二、实验内容

1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。

实验十二 学生成绩管理(4学时)

实验性质:综合性设计性实验

一、实验目的

1.综合运用C程序设计知识,解决实际问题。

二、实验内容

1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

学生的原有数据为:

91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为:

91108 Xin 90,95,60 10

第三篇:C语言程序设计实验教案

C语言程序设计实验教案

实验一visual c++编译环境的使用..............................................................................2 实验二 顺序程序设计...............................................................................................6 实验三 选择结构程序设计........................................................................................9 实验四 循环结构程序设计......................................................................................13 实验五 函数...........................................................................................................17 实验六 指针...........................................................................................................22 实验七 数组...........................................................................................................25 实验八 结构体........................................................................................................32

实验一visual c++编译环境的使用

实验目的:

1.掌握c程序设计编程环境visual c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。

2.掌握c语言程序设计的基本框架,能够编写简单的c程序。3.了解程序调试的思想,能找出并改正c程序中的语法错误。实验内容:

1.在“我的电脑”上新建一个文件夹,用于存放c程序,文件夹名字可以是学号姓名。2.调试示例,在屏幕上显示一个短句“Hello World!”。

源程序

#include void main(){ printf(“Hello World!n”);} 运行结果:

Hello World!基本步骤:(要求熟练掌握)1)启动VC++ “开始”->“程序”->“Microsoft Visual Studio 6.0”->“Microsoft Visual C++6.0”进入VC++编程环境。2)新建文件(*.cpp)

“文件”->“新建”,单击“文件”选项卡,选择“C++Source Files”,修改文件保存“目录”和“文件”(文件名),单击“确定”。

3)编辑和保存(注意:源程序一定要在英文状态下输入,即字符标点都要在半角状态下,同时注意大小写,一般都用小写)

在编辑窗口输入源程序,然后执行“文件”->“保存”或“文件”->“另存为” 4)编译(*.obj)

用来检查语法错误

“编译”->“编译”或Ctrl+F7,在产生的工作区队话框中,选择“是”。5)连接(*.exe)“编译”->“构件”或F7 6)运行

“编译”->“执行”或Ctrl+F5 7)关闭程序工作区

“文件”->“关闭工作区” 8)打开文件

“文件”->“打开”

9)查看C源文件、目标文件和可执行文件的存放位置。

源文件在保存目录下,目标文件和可执行文件在“保存目录Debug”中

3.编程,在屏幕上显示一个短句“this is my first c program.”。4.调试示例,在屏幕上显示一个短句“welcome to you!”。源程序(有错误的程序)#include void mian(){ printf(Welcome to You!n”)} 运行结果(改正后的运行结果)Welcome to You!操作步骤:

1)按照实验2中介绍的步骤1)~3)输入上述源程序并保存。

2)编译,“编译”->“编译”(Ctrl+F7),信息窗口中显示编译出错信息,如下图所示。3)找出错误,在信息窗口中依次双击出错信息,编辑窗口就会出现一个箭头指向程序出错的位置,一般在箭头的当前行或上一行,可以找到出错语句。

第4行,出错信息:Welcome是一个未定义的变量,但Welcome并不是变量,出错的原因是Welcome前少了一个双引号。

4)改正错误,重新编译,得下如下图所示出错信息。

出错信息:“}”前少了分号。

5)再次改正错误,在“}”前即printf()后加上“;”(英文状态),生新编译,显示正确 6)连接,“编译”->“构件”(F7),出现如下出错信息。

出错信息:缺少主函数。

7)改正错误,即把“mian”改为“main”后,重新连接,信息窗口显示连接正确。8)运行,“编译”->“执行”(Ctrl+F5),观察结果是否与要求一致。5.改错,改正下列程序中的错误,在屏幕上显示以下3行信息。

**************** Welcome **************** 源程序(有错误的程序)#include void main(){ Printf(“****************n”);

}

实验报告要求

将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

Printf(“

Welcome”)Printf(“****************n”);

实验二 顺序程序设计

【实验目的】

1.学会顺序程序设计的思想

2.进一步熟悉Turbo C集成编译环境的使用,达到熟练使用的目的 3.熟练掌握各种数据类型的输入输出格式,并学会使用输入输出函数 4.学会使用表达式

【实验内容】

1.在屏幕中输出一行文字“Hello,Welcome!” 说明:

(1)只需要在屏幕中显示一行文字即可 参考程序如下:

#include main(){

printf(“Hello,Welcome!n”);}

2. 输入一个华氏温度,要求输出摄氏温度。公式为

输出要求有文字说明,取两位小数

说明:

(1)摄氏温度F和华氏温度c都应用float类型变量存储(2)注意表达式书写中的各变量的顺序问题(3)输出时只需输出两位小数 参考程序如下:

#include main(){

float F,c;

printf(“input F:”);

scanf(“%f”,&F);

c=5*(F-32)/9;

printf(“c=%.2fn”,c);}

3.输入三角形三边长a、b、c,求三角形周长和l面积s。用scanf输入数据,输出计算结果,输出时要求有文字说明,取消书店后两位小数。说明:

(1)程序设计中使用的所有变量均为float类型 c59F32(2)三角形周长公式:labc

abc2(3)三角形面积公式;sp(pa)(pb)(pc),其中

p

(4)注意应保证输入数据能够构成三角形

(5)需要使用开根号函数sqrt,在程序顶部加上#include一句(6)以a3.0,b4.0,c5.0运行程序,查看执行结果 参考程序如下:

#include #include main(){

float a,b,c,l,s;

float p;

printf(“input a,b,c:”);

scanf(“%f,%f,%f”,&a,&b,&c);

l=a+b+c;

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf(“l=%.2fn”,l);printf(“s=%.2fn”,s);}

4.设圆半径r1.5,圆柱高h3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取消书店后两位小数。说明:

(1)程序设计中使用的所有变量均为float类型(2)圆周长公式:l2r(3)圆面积公式:S1r(4)圆球表面积公式:S24r

V14322(5)圆球体积公式:

r3

(6)圆柱体积公式:V2rh 参考程序如下:

#include #define PI 3.14

2main(){

float r=1.5,h=3;

float l,s1,s2,v1,v2;

l=2*PI*r;

s1=PI*r*r;

s2=4*PI*r*r;

v1=4*PI*r*r*r/3;

v2=PI*r*r*h;

printf(“l=%.2fn”,l);printf(“s1=%.2fn”,s1);printf(“s2=%.2fn”,s2);printf(“v1=%.2fn”,v1);printf(“v2=%.2fn”,v2);}

实验三 选择结构程序设计

【实验目的】

1.了解C语言的逻辑运算 2.学会使用if语句和switch语句 3.熟练掌握选择结构程序设计方法

【实验内容】 1.有一函数

y x

x1 1x10 2x

13x11

x10

写一程序,输入x,输出y值 说明:

(1)根据输入x的不同求y的值,使用if语句

(2)分别输入三个分段中的三个数,判断输出结果是否正确,测试程序正确与否 参考程序如下:

#include main(){

float x,y;

printf(“input x:”);

scanf(“%f”,&x);

if(x<1)

y=x;

if(x>=1 && x<10)

y=2*x-1;

if(x>=10)

y=3*x-11;printf(“y=%fn”,y);}

2.从键盘输入一个字符,可以是数字、字母、或是标点符号,对输入的字符进行判断,如果是数字则输出“* is a number!”,如果是字母则输出“* is a letter!”,如果是其他的字符怎输出“* is the other!”(*为输入的字符)说明:

(1)从键盘输入一个字符,用char类型变量存储(2)使用if语句作判断(3)判断条件根据输入字符的ASCII码值的范围,具体的ASCII码值参看书后的ASCII码表

参考程序如下:

#include main(){

char c;

printf(“input a char:”);

scanf(“%c”,&c);

if(c>=48 && c<=57)

printf(“%c is a number!n”,c);

else if((c>=65 && c<=90)||(c>=97 && c<=122))

printf(“%c is a letter!n”,c);

else

printf(“%c is the other!n”,c);}

3.输入两个实数a、b,保证变量a中存储的是较大的数,变量b中存储的实较小的数,并按照由大到小的顺序输出。说明:

(1)需要对输入的两个数进行比较,判断是否需要交换两个数(2)按照从大到小的顺序输出两个数 参考程序如下:

#include main(){

float a,b;

float temp;

printf(“input a,b:”);

scanf(“%f,%f”,&a,&b);

if(a

{

temp=a;

} printf(“%f,%fn”,a,b);} 4.输入一年份,判断该年是否是闰年。说明:

(1)判断闰年的条件:能够被4整除,但不能被100整除或者能被100整除,又能被400整除

(2)使用一个变量来代表是否是闰年 a=b;b=temp;10(3)如果是闰年则输出“* is a leap year!”,否则输出“* is not a leap year!”。*代表输入的年份

参考程序如下:

#include main(){

int year;

int flag=0;

printf(“input a year:”);

scanf(“%d”,&year);

if((year%4==0 && year%100!=0)||(year%100==0 && year%400==0))

flag=1;

if(flag==1)

printf(“%d is a leap year!n”,year);

else

printf(“%d is not a leap year!n”,year);}

5.从键盘输入一个月号,显示输出该月号的英文名称 说明:

(1)使用if语句较为麻烦,因为需要做12次比较(2)使用switch语句

(3)如果输入月份超出范围,则应当输出错误信息 参考程序如下:

#include main(){

int month;

printf(“input a month:”);

scanf(“%d”,&month);

switch(month)

{

case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: printf(“January!n”);printf(“February!n”);break;break;printf(“March!n”);break;printf(“April!n”);break;printf(“May!n”);break;printf(“June!n”);break;printf(“July!n”);break;printf(“August!n”);break;printf(“September!n”);break;case 10: printf(“October!n”);break;case 11: printf(“November!n”);break;case 12: printf(“December!n”);break;

} } default: printf(“input error!n”);12

实验四 循环结构程序设计

【实验目的】

1.学会使用while、do-while、for语句 2.熟练掌握循环结构程序设计方法 3.掌握选择结构与循环结构的嵌套

【实验内容】

201.求和说明: n!n1(即求1!+2!+„„+20!)

(1)首先要求出每一项的n!的值

(2)然后把各项相加得到所求的值

(3)存储求和运算结果的变量的初始值应为0(4)存储求积运算结果的变量的初始值应为1 参考程序如下: ①使用while循环

#include main(){

float sum=0;

float mid=1;

int n=1;

while(n!=21)

{

mid=mid*n;

} printf(“sum=%fn”,sum);}

②使用for循环

#include main(){

float sum=0;

float mid=1;

int n;

for(n=1;n<=20;n++)

{

mid=mid*n;n++;sum=sum+mid;

sum=sum+mid;} printf(“sum=%fn”,sum);}

2.求出100到200以内最大的素数和最小的素数,并求出两者的差值 说明:

(1)素数的概念:只能被1和自身整除的正整数

(2)分别求出这个两个素数,并输出,输出格式为:

big one:*

small one:*

最小的素数正序找出

最大的素数倒序找出

(3)求出两者的差,并输出,输出格式为:

result:* 参考程序如下:

#include main(){

int big,small;

int result;

} for(i=200;i>=100;i--){

int i,j;int flag;for(i=100;i<200;i++){ flag=0;for(j=2;j

} if(i%j==0){

} flag=1;break;if(flag==0){

} small=i;break;flag=0;for(j=2;j

{

} if(flag==0){

} big=i;break;if(i%j==0){ flag=1;break;}

} result=big-small;printf(“big:%dn”,big);printf(“small:%dn”,small);printf(“reslut:%dn”,result);}

3.输入两个正整数m和n,求其最大公约数和最小公倍数 说明:

(1)最大公约数:能够被m和n同时整除的最大正整数(2)最小公倍数:m和n相乘的积除以最大公约数

(3)使用for循环,将m和n同时除以1到m(m为m和n两者中较小者),直到找出最大的正整数即为最大公约数(4)输出格式如下:

The greatest common divisor is *!

The least common multiple is *!参考程序如下:

#include main(){ int m,n,temp;int i;int great,least;

printf(“input m,n:”);

scanf(“%d,%d”,&m,&n);if(m>n){

temp=m;m=n;

n=temp;} for(i=1;i<=m;i++){

if(n%i==0 && m%i==0)

great=i;} least=m*n/great;printf(“The greatest common divisor is %dn”,great);printf(“The least common multiple is %dn”,least);}

4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本书。例如,153是一水仙花数,因为153153 说明:(1)“水仙花数”是三位数,所以范围是从100到999(2)使用for循环

(3)循环中需要把数字的每一位都分离出来,然后求和,同原数字比较,进行判断 参考程序如下:

#include main(){ int a,b,c;

int i;int temp;for(i=100;i<1000;i++){ a=i/100;b=(i-a*100)/10;c=i%10;temp=a*a*a+b*b*b+c*c*c;if(i==temp)printf(“%dn”,i);

33} }

实验五 函数

【实验目的】

1.掌握C语言函数的定义、声明以及函数的调用方法 2.了解主调函数和被调函数之间的参数传递方式 3.熟练掌握数组作为函数参数的用法

【实验内容】

1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。说明:

(1)判断素数的函数名为Prime(2)传递参数为int类型的变量(3)输出格式为:

* is a prime!或者* is not a prime!参考程序如下:

#include Prime(int num){ int i;int flag=0;for(i=2;i

if(num%i==0)

{

} flag=1;break;} if(flag==0)printf(“%d is a prime!n”,num);else

printf(“%d is not a prime!n”,num);} main(){ int num;printf(“input a num:”);scanf(“%d”,&num);Prime(num);} 2.写一个函数,用“冒泡法”对输入的10个数字由小到大顺序排列,并输出。说明:

(1)排序的函数名为Sort(2)排序前后的输入输出都应在主函数中完成(3)使用数组作为函数参数(4)使用“冒泡法”排序 参考程序如下:

#include Sort(int num[]){ int i,j;int temp;for(i=0;i<=8;i++){

} } main(){ int num[10];int i;printf(“input 10 numbers:”);for(i=0;i<10;i++)

scanf(“%d”,&num[i]);Sort(num);printf(“the sorted numbers:”);for(i=0;i<10;i++)

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

3.写一函数,使给定的一个二维数组(5×5)转置,即行列互换。说明:

(1)使用5×5的二维数组存放数据

(2)矩阵转置的函数名为Turn(2)转置前后的输入输出都应在主函数中完成(3)使用数组作为函数参数 for(j=0;j<9-i;j++){

} if(num[j]>num[j+1]){ temp=num[j];

} num[j]=num[j+1];num[j+1]=temp;18 参考程序如下:

#include void Turn(int num[5][5]){ int i,j;int temp;for(i=0;i<5;i++){

} } main(){ int num[5][5]={{1,2,3,4,5},{6,7,8,9,0},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};

int i,j;printf(“Before array be turned:n”);for(i=0;i<5;i++){ for(j=0;j<5;j++)printf(“%2d ”,num[i][j]);for(j=i;j<5;j++){

} temp=num[i][j];num[i][j]=num[j][i];num[j][i]=temp;

printf(“n”);} Turn(num);printf(“After array be turned:n”);for(i=0;i<5;i++){

} }

4.写一函数,使输入的字符串反序存放,在主函数中输入和输出字符串。说明:

(1)字符串反序的函数名为Reverse(2)反序前后的输入输出都应在主函数中完成(3)使用数组作为函数参数 for(j=0;j<5;j++)printf(“%2d ”,num[i][j]);printf(“n”);19(4)需要使用strlen函数得到字符串长度,需要在源文件头部加入#include 参考程序如下:

#include #include void Reverse(char str[]){ int length;int i;char temp;length=strlen(str);for(i=0;i

} } main(){ char str[50];printf(“input a string:”);scanf(“%s”,str);Reverse(str);printf(“After reversed is %sn”,str);}

5.写一函数,将两个字符串连接。

说明:

(1)连接两个字符串的函数名为:Connect(2)将连个字符串存入两个字符串数组中,要保证第一个字符串的长度能够容纳两个字符串之和

(3)连接两个字符串主要是找到第一个字符串的结尾,然后将第二个字符串连接到第二个字符串的后边

(4)输出格式为:

The connected string is *!(5)使用数组作为函数参数

(6)连接前后的字符串输出都要在主函数中完成,自定义函数只完成连接功能 参考程序如下:

#include void Connect(char str1[],char str2[]){ int i,j;for(i=0;str1[i]!='';i++);for(j=0;str2[j]!='';j++,i++)temp=str[i];str[i]=str[length-1-i];str[length-1-i]=temp;

str1[i]=str2[j];str1[i]='';} main(){ char str1[50],str2[20];int i,j;printf(“input string1:”);scanf(“%s”,str1);getchar();printf(“input string2:”);scanf(“%s”,str2);Connect(str1,str2);printf(“The connected string is %sn”,str1);}

6.写一函数,求字符串的长度,并编写主函数。说明:

(1)求字符串长度的函数名为:Count(2)字符串结束的标志是’’(3)输出格式为:

The length of string is *!(4)使用数组作为函数参数 参考程序如下:

#include int Count(char str[]){ int i;for(i=1;str[i]!='';i++);return i;} main(){ char str[10];int length;printf(“input the string:”);scanf(“%s”,str);length=Count(str);printf(“The length of string is %d!n”,length);}

实验六 指针

【实验目的】

1.掌握C语言指针变量的定义、声明和赋值 2.学会使用指针变量的程序设计 3.掌握指针作为函数参数的用法

【实验内容】

1.使用指针作为函数参数,写一交换两个数的函数 说明:

(1)交换两个数的函数名为:Swap(2)使用指针变量作为函数参数

(3)在主函数中输入输出,自定义函数只完成交换功能 参考程序如下:

#include Swap(int *p1,int *p2){ int temp;temp=*p1;*p1=*p2;*p2=temp;} main(){ int a,b;int *p1,*p2;printf(“input a,b:”);scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;printf(“Before swap a=%d,b=%dn”,a,b);Swap(p1,p2);printf(“After swap a=%d,b=%dn”,a,b);}

2.使用指针作为函数参数,写一求数组中最大值和最小值的函数。说明:

(1)函数名为:MaxAndMin(2)使用指针指向一维数组

(3)最大值和最小值的输出必须要在主函数中 参考程序如下:

#include MaxAndMin(int *array,int *max,int *min){ int i;

*max=array[0];*min=array[0];for(i=0;i<10;i++){ if(*maxarray[i])*min=array[i];

} } main(){ int array[10]={0,1,2,3,4,5,6,7,8,9};int max,min;int *p1,*p2;p1=&max;p2=&min;MaxAndMin(array,p1,p2);printf(“max=%dnmin=%dn”,max,min);}

3.找出以下程序的错误,并加以修改。①交换两个数

#include Swap(int *p1,int *p2){ int *temp;

temp=p1;

p1=p2;

p2=temp;} main(){ int a,b;int *pointer_1,*pointer_2;

scanf(“%d,%d”,&a,&b);

pointer_1=&a;pointer_2=&b;Swap(pointer_1,pointer_2);

}

②输出数组重点全部元素

#include printf(“n%d,%dn”,a,b);main(){ int *p,i,a[10];p=a;for(i=0;i<10;i++)

*p++=i;

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

printf(“a[%d]=%dn”,i,*p++);}

4.写一函数,求出矩阵中的最大值和最小值,要求使用指针作为函数参数。说明:

(1)使用二维数组存放矩阵元素(2)只用指针变量指向数组(3)函数名为:ArrayMaxAndMin 参考程序如下:

#include ArrayMaxAndMin(int *array,int *max,int *min,int n){ int i=0,j=0;*max=*(array+i*n+j);

*min=*(array+i*n+j);for(i=0;i

} if(*max<*(array+i*n+j))*max=*(array+i*n+j);if(*min>*(array+i*n+j))*min=*(array+i*n+j);

} } main(){ int array[3][3]={1,2,3,4,5,6,7,8,9};int max,min;int *p,*p1,*p2;p=array;p1=&max;p2=&min;ArrayMaxAndMin(p,p1,p2,3);printf(“max=%dnmin=%dn”,max,min);}

实验七 数组

【实验目的】

1.掌握一维数组和二维数组的定义、赋值和初始化的方法 2.掌握字符数组的使用

3.熟练掌握与数组相关的各种算法

【实验内容】

1.从键盘输入10个整数,对这个十个数进行排序,并输出 说明:

(1)将这10个整数存入一个含有10个元素的一维数组中

(2)冒泡法:从第一个数开始依次让相邻的两个数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍比较后,最大的数已放在最后,第二遍只需考虑剩下的数,以此类推直到最后两个数比较后就可以完成排序。(3)比较完成后将数组中元素依次输出 参考程序如下:

#include main(){ int num[10];int i,j;int temp;printf(“input 10 numbers:”);for(i=0;i<10;i++)

scanf(“%d”,&num[i]);for(i=0;i<=8;i++){

for(j=0;j<9-i;j++){

if(num[j]>num[j+1]){

temp=num[j];num[j]=num[j+1];num[j+1]=temp;

} } } printf(“the sorted numbers:”);printf(“%d ”,num[i]);for(i=0;i<10;i++)

}

2.从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符也需要从键盘输入),并输出个数

说明:

(1)输入时需要用到的输入格式控制字是%s(2)字符串存入一个足够大的字符数组中,保证输入的字符个数不要超过最大个数(3)使用循环控制语句,需要了解字符数组的结束标志是’’,作为循环的结束标志(4)输出格式如下:

The number of * is *!参考程序如下:

#include main(){ char str[50];char ch;int count=0;int i=0;printf(“input a string:”);scanf(“%s”,str);getchar();printf(“input the char:”);scanf(“%c”,&ch);while(str[i]!='')

{

if(str[i]==ch)count++;i++;} printf(“The number of %c is %d!n”,ch,count);}

注意:

程序中多了一行getchar(),这并不是多余的,而是因为在输入完字符串后,键入的回车被放入到内存的输入缓冲区中,在输入特殊字符的时候ch得到了上一个回车,而无法得到我们要输入的字符,因此需要使用一行getchar()将缓冲区中的回车读出,相当于清除缓冲区的作用。

3.青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

说明:

(1)将10位评委的打分放入一个含有10个元素的一维数组中(2)程序设计重点是排序

(3)排序后只要用中间的8个元素即可(4)输出格式为:

The average is *!参考程序如下:

#include main(){ float score[10];float average=0;float sum=0;int i,j;float temp;printf(“input the 10 score:”);for(i=0;i<10;i++)

scanf(“%f”,&score[i]);for(i=0;i<=8;i++){

for(j=0;j<9-i;j++){

if(score[j]>score[j+1]){

} temp=score[j];score[j]=score[j+1];score[j+1]=temp;} } for(i=1;i<=8;i++){ sum=sum+score[i];

} average=sum/8;printf(“The average is %f!n”,average);}

4.将两个字符串连接起来,不要使用strcat函数。

说明:

(1)将连个字符串存入两个字符串数组中,要保证第一个字符串的长度能够容纳两个字符串之和

(2)连接两个字符串主要是找到第一个字符串的结尾,然后将第二个字符串连接到第二个字符串的后边

(3)输出格式为:

The connected string is *!参考程序如下:

#include main(){ char str1[50],str2[20];int i,j;

printf(“input string1:”);scanf(“%s”,str1);getchar();printf(“input string2:”);scanf(“%s”,str2);for(i=0;str1[i]!='';i++);for(j=0;str2[j]!='';j++,i++)

str1[i]=str2[j];str1[i]='';printf(“The connected string is %sn”,str1);}

5.已有一个已排好序的数组,从键盘输入一个数,要求按原来排序的规律将它插入数组中。说明:

(1)需要保证数组的元素据个数比插入前多1(2)需要找到在数组中插入的位置

(3)可倒序查找:假设从小到大排序,从最后一个开始查找,如果要插入元素比当前数组元素小则将该数组元素赋予后边一个元素,继续比较;否则将要插入元素赋予该数组元素的下一个元素,然后break结束循环(4)输入该数组即可 参考程序如下:

#include main(){ int a[10]={0,1,2,4,5,6,7,8,9};int b=3;int i;for(i=8;i>=0;i--){

if(a[i]>b)a[i+1]=a[i];else {

} a[i+1]=b;break;} printf(“The new sorted array is ”);for(i=0;i<10;i++)

} printf(“%d ”,a[i]);6.将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。说明:

(1)只要将原来数组中的值以中间值为中心交换

n1(2)交换次数为2次

(3)注意此时的n是数组最后一个元素的下标 参考程序如下:

#include main(){ int num1[10]={0,1,2,3,4,5,6,7,8,9};int num2[9]={1,2,3,4,5,6,7,8,9};int i;int temp;for(i=0;i<(9+1)/2;i++){

temp=num1[i];

num1[i]=num1[9-i];num1[9-i]=temp;} for(i=0;i<(8+1)/2;i++){ temp=num2[i];num2[i]=num2[8-i];num2[8-i]=temp;

} printf(“The converted array1 is ”);for(i=0;i<10;i++)

printf(“%d ”,num1[i]);printf(“nThe converted array2 is ”);for(i=0;i<9;i++)

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

7.求一个3×3矩阵的对角线元素之和 说明:

(1)使用3×3的二维数组存储数据

(2)使用for循环嵌套,判断数组中元素是否是对角线元素,如果是则相加(3)对角线元素的特点是行号和列号相同 参考程序如下:

#include main(){

int array[3][3]={1,2,3,4,5,6,7,8,9};int sum=0;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){

} if(i==j)sum=sum+array[i][j];{

} printf(“summary is %dn”,sum);} 8.设计一个较为复杂的一维数组操作程序,实现对一维数组的基本操作 说明:

(1)通过输入函数实现对一维数组的输入,可以将数组定义为100个整型元素,输入其中的10个元素

(2)在屏幕上将数组中的10个元素输出

(3)往数组中插入一个元素,并将插入后的11个元素输出(4)从数组中删除一个元素,并将删除后的10个元素输出

(5)从数组中查找一个元素,并将查找后的元素下标输出,如果元素不存在,给出提示 参考程序如下: #include main(){

int a[100],i,j;int ins,del,find,pos;printf(“input the data: ”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);printf(“The array is ”);for(i=0;i<10;i++)printf(“%d ”,a[i]);printf(“ninsert a data: ”);scanf(“%d”,&ins);for(i=0;i<10;i++){

if(ins

for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=ins;break;

} } if(i==10)

a[i]=ins;printf(“nAfter insert: ”);for(i=0;i<11;i++)printf(“%d ”,a[i]);printf(“ndelete a data: ”);scanf(“%d”,&del);for(i=0;i<11;i++){

if(del==a[i])

{

for(j=i;j<10;j++)

a[j]=a[j+1];break;

} } if(i==11)

printf(“nnot foundn”);else {

printf(“nAfter delte: ”);

for(i=0;i<10;i++)printf(“%d ”,a[i]);} printf(“nfind a data: ”);scanf(“%d”,&find);for(i=0;i<10;i++){

if(find==a[i])

{

pos=i;

break;

} } if(i==10)

printf(“nnot foundn”);else

printf(“npos=%dn”,pos+1);}

实验八 结构体

【实验目的】

1.掌握C语言结构体变量的定义和使用 2.学会设计简单的结构体程序

【实验内容】

1.有一学生信息包含学号、姓名、性别、年龄、电话等信息,要求设以一个结构体用于存储该学生信息,实现学生信息的输入和显示。说明:

(1)使用结构体实现学生信息的存储(2)按照序号顺序排列学生信息(3)实现按照序号查找学生信息 参考程序如下:

#include struct student { char num[10];char name[10];char sex[5];int age;};main(){ struct student stu[3];int i;int choice;printf(“You can input three studentsn”);for(i=0;i<3;i++){

if(i==0)printf(“The first onen”);if(i==1)printf(“The second onen”);if(i==2)printf(“The third onen”);printf(“ input number:”);scanf(“%s”,stu[i].num);printf(“ input name:”);scanf(“%s”,stu[i].name);printf(“ input sex:”);scanf(“%s”,stu[i].sex);printf(“ input age:”);scanf(“%d”,&stu[i].age);

}

printf(“Which one do you want to see?(1,2,3)”);scanf(“%d”,&choice);choice--;printf(“ The number is %sn”,stu[choice].num);printf(“ The name is %sn”,stu[choice].name);printf(“ The sex is %sn”,stu[choice].sex);printf(“ The age is %dn”,stu[choice].age);}

第四篇:实验二 定时器程序设计121

一、实验目的学会使用单片机定时器产生定时中断,并利用定时中断产生更长时间延时。

二、实验设备及器件

IBM PC机

一台

DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台

三、实验内容

1.实验二 定时器程序设计

2.编写程序,使P10端口来控制LED闪烁 3.C语言程序

//1ms定时中断实现100ms发光管闪烁 #include“REG51.h” sbit LED=P1^0;void main(void){ TMOD = 0x01;//设置定时器模式 16位定时器

TL0 = 0x18;//设置定时初值

TH0 = 0xFC;//设置定时初值

TR0 = 1;//定时器T0开始计时

ET0=1;//开定时器中断

EA=1;

//开总中断

while(1);}

//******************** //1ms void pit0(void)interrupt 1(中断程序){ static unsigned char ms_cnt=0;//16 ffff TL0 = 0x18;//设置定时初值

TH0 = 0xFC;//设置定时初值

if(++ms_cnt==100){

ms_cnt=0;

LED=!LED;} } 定时器的由程序

直接汇编语言 ORG 0 AJMP MAIN ORG 0BH AJMP PIT0 MAIN: MOV TMOD,#01H MOV TH0,#18H MOV TL0,#0FCH SETB TR0 SETB ET0 SETB EA SJMP $

生成;********************************** PIT0: MOV TH0,#18H MOV TL0,#0FCH INC R7 CJNE R7,#100,PIT0_R MOV R7,#0 CPL P1.0 PIT0_R: RETI END

四 实验要求

学会使用并掌握单片机定时器中断来实现LED100ms闪烁。

五 实验步骤

1.调试运行本节实验程序。若程序无错误,编译并进行二进制转换,下载程序。

2.连接线路,将A2区的P10端口连接到D1区的任意LED接口。3.观察LED灯闪烁情况

第五篇:Java程序设计实验

学 生 实 验 报 告 册

课程名称:

学生学号:

所属院部:

(理工类)

专业班级:

学生姓名:

指导教师: ——20 学年 第 学期

金陵科技学院教务处制

实验报告书写要求

实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。

实验报告书写说明

实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。

填写注意事项

(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。

(3)尽量采用专用术语来说明事物。

(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明

实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

金陵科技学院实验报告

实验项目名称: 面向对象编程实验 实验学时: 8 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:

金陵科技学院实验报告

实验1 面向对象编程实验

一、实验目的和要求

(1)理解Java概念、掌握JDK环境配置(2)熟悉Java开发过程

(3)掌握Java面向对象编程基础:封装、继承、多态(4)掌握Java接口编程,理解开发模式

二、实验仪器和设备

奔腾以上个人计算机,windows操作系统。

配置好JDK环境,安装集成开发环境(Eclipse)

三、实验内容与过程

1、JDK环境配置

2、面向对象的封装性

范例:设计一个表示学生的类,里面有学生的三项成绩:计算机成绩、数学成绩、英语成绩。要求可以求总分、平均分、最高分、最低分,并且可以输出一个学生的完整信息。代码如下: class Student{ private String name;private int age;private float english;private float computer;private float math;public Student(){} public Student(String n,int a,float e,float c,float m){

this.setName(n);

this.setAge(a);

this.setEnglish(e);

this.setComputer(c);

this.setMath(m);} public float sum(){

return english + computer + math;} public float avg(){

return this.sum()/ 3;} public float max(){

float max = computer>math?computer:math;

max = max>english?max:english;

return max;} public float min(){

float min = computer

min = min

return min;

金陵科技学院实验报告

} public String getInfo(){

return “学生信息: n” +

“t|-姓名:” + this.getName()+ “n” +

“t|-年龄:” + this.getAge()+ “n” +

“t|-数学成绩:” + this.getMath()+ “n” +

“t|-英语成绩:” + this.getEnglish()+ “n” +

“t|-计算机成绩:” + this.getComputer();} public void setName(String n){

name = n;} public void setAge(int a){

age = a;} public void setEnglish(float e){

english = e;} public void setComputer(float c){

computer = c;} public void setMath(float m){

math = m;} public String getName(){

return name;} public int getAge(){

return age;} public float getEnglish(){

return english;} public float getComputer(){

return computer;} public float getMath(){

return math;} } public class ExecDemo{ public static void main(String args[]){

Student stu = new Student(“张三”,30,89.0f,91.0f,87.0f);

System.out.println(“总分:” + stu.sum());

金陵科技学院实验报告

}

} System.out.println(“平均分:” + stu.avg());System.out.println(“最高分:” + stu.max());System.out.println(“最低分:” + stu.min());System.out.println(stu.getInfo());对照范例写出如下题目:

(1)编写并测试一个代表地址的Address类,包括以下的属性:国家、省份、城市、街道、邮编。注意:

1、体现封装

2、构造方法(最少2个)

3、要有输出(可以从此地址类中得到一个完整的地址信息)。

4、测试 主类 main

(2)定义并测试一个代表员工的Employee类。它的属性包括“员工姓名”、“员工号码”、“员工基本薪水”;它的方法包括“构造方法”、“获取员工姓名”、“获取员工号码”、“获取员工基本薪水”、“设置姓名”、“设置员工号码”、“设置基本薪水”。测试(3)、定义一个圆形类(半径属性),封装、构造、整个输出、可以返回圆的面积与周长。测试

(4)、思考设计:一个人有一本书,一本书属于一个人。

3、面向对象的继承性

范例:要求定义一个数组类Array,里面定义了一个整型数组,但是此整型数组属于动态分配大小,即:所有的大小由程序指定,并在此基础上实现以下的两个子类:

反转类:可以将数组的内容反转排列

排序类:可以对数组进行排序的操作 class Array{ private int temp[] = null;// 只是声明数组,但是大小未知

private int foot = 0;// 用于保存下一个的记录点

public Array(int len){

if(len>0){

this.temp = new int[len];// 此时大小由外部决定

}else{

this.temp = new int[1];// 至少开辟一个空间

} } public boolean add(int i){ // 加入数据操作

if(this.foot

this.temp[this.foot] = i;// 加入内容

this.foot++;// 改变长度

return true;// 加入成功返回true

}else{

return false;// 加入失败

} } public int[] getArray(){ // 返回全部的数组

return this.temp;}

金陵科技学院实验报告

} class SortArray extends Array{ public SortArray(int len){

super(len);} public int[] getArray(){

java.util.Arrays.sort(super.getArray());// 排序操作

return super.getArray();// 返回的是排序后的内容

} } class ReverseArray extends Array{ public ReverseArray(int len){

super(len);} public int[] getArray(){

int rt[] = new int[super.getArray().length];// 根据大小开辟新数组

int count = rt.length-1;

for(int x=0;x

rt[count] = super.getArray()[x];

count--;

}

return rt;} } public class ArrayDemo{ public static void main(String args[]){

ReverseArray arr = new ReverseArray(6);

System.out.println(arr.add(3));

System.out.println(arr.add(23));

System.out.println(arr.add(1));

System.out.println(arr.add(5));

System.out.println(arr.add(6));

System.out.println(arr.add(8));

System.out.println(arr.add(11));

System.out.println(arr.add(16));

print(arr.getArray());} public static void print(int i[]){

for(int x=0;x

System.out.print(i[x] + “、”);

} } }

金陵科技学院实验报告

对照范例写出如下题目:

(1).创建GrandFather类,其中包括

a)属性:姓名(name),年龄(age)

b)方法getGrandFather():显示爷爷的信息

c)构造方法:给爷爷的姓名,年龄赋值(2).创建Father类,继承Grandfather类 a)属性:除了继承爷爷的属性以外,还要增加自己的属性:“职业”(occupation)b)构造方法:显式调用父类的构造方法,为Father类的姓名和年龄赋初始值。再为职业输入初始值。

c)方法getFather(): 显示父亲的相关信息

(3).创建ClassMain()类,定义main()方法,构造GrandFather类的对象和Father类的对象,并分别显示详细信息。

3、面向对象多态性

范例:计算柱体的体积。柱体体积计算公式是:底部面积乘以高度 柱体底部分为 圆形和矩形 要求:通过抽象类和多态实现 package cn.jit.demo;abstract class Bottom { //父类抽象类 底部

public abstract double calculatorArea();} class CircleBottom extends Bottom{ //圆形底

/** * 半径

*/ private double radius;

@Override public double calculatorArea(){

return Math.PI * radius * radius;} public double getRadius(){

return radius;} public void setRadius(double radius){

this.radius = radius;} public CircleBottom(double radius){

super();

this.radius = radius;} } class SquareBottom extends Bottom{ //矩形底

private double sideA;

金陵科技学院实验报告

private double sideB;public double getSideA(){

return sideA;} public void setSideA(double sideA){

this.sideA = sideA;} public double getSideB(){

return sideB;} public void setSideB(double sideB){

this.sideB = sideB;} @Override public double calculatorArea(){

return sideA * sideB;} public SquareBottom(double sideA, double sideB){

super();

this.sideA = sideA;

this.sideB = sideB;} } class ZhuTi { //柱体类,完成形状的拼装

/** * 底

*/ private Bottom bottom;/** * 高

*/ private double height;/** * 计算体积

* @return */ public double calculatorVolumn(){

return bottom.calculatorArea()* height;} public ZhuTi(Bottom bottom, double height){

super();

this.bottom = bottom;

this.height = height;

金陵科技学院实验报告

} public Bottom getBottom(){

return bottom;} public void setBottom(Bottom bottom){

this.bottom = bottom;} public double getHeight(){

return height;} public void setHeight(double height){

this.height = height;} public void changeBottom(Bottom bottom){

this.bottom = bottom;} } public class VolumnTest { //测试类

public static void main(String[] args){

Bottom bottom = new CircleBottom(1.0);

double height = 1.0;

ZhuTi zhuTi = new ZhuTi(bottom,height);

double result = zhuTi.calculatorVolumn();

System.out.println(“圆柱体的体积是:” + result);

bottom = new SquareBottom(1.0,1.0);

zhuTi.changeBottom(bottom);

result = zhuTi.calculatorVolumn();

System.out.println(“立方体的体积是:” + result);} } 范例:接口和多态的应用,例如:电脑上实现了USB接口,U盘,打印机等等也都实现了此标准。interface USB{ public void start();// 开始工作

public void stop();// 结束工作 } class Computer{ public static void plugin(USB usb){

usb.start();

usb.stop();} };class Flash implements USB{ public void start(){

金陵科技学院实验报告

System.out.println(“U盘开始工作。”);} public void stop(){

System.out.println(“U盘停止工作。”);} };class Print implements USB{ public void start(){

System.out.println(“打印机开始工作。”);} public void stop(){

System.out.println(“打印机停止工作。”);} };public class InterPolDemo02{ public static void main(String args[]){

Computer.plugin(new Flash());

Computer.plugin(new Print());} };对照范例,写出以下程序:(1)乐器(Instrument)的标准为弹奏(play),而乐器类型分为:钢琴(Piano)和小提琴(Violin),各种乐器的弹奏方法各不同。编写代码实现不同乐器的弹奏。(2)计算机模拟

四、实验结果与分析(程序运行结果及其分析)

五、实验体会

金陵科技学院实验报告

实验项目名称: 类集

实验学时: 4 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:

金陵科技学院实验报告

实验2 类集

一、实验目的和要求(1)理解类集概念

(2)熟悉Collection接口、List接口、Set接口和Map接口(3)掌握ArrayList类、HashSet类和TreeSet类(4)理解TreeMap、HashMap

二、实验仪器和设备

奔腾以上个人计算机,windows操作系统。

配置好JDK环境,安装集成开发环境(Eclipse)

三、实验内容与过程

1、类集应用

范例:实现一个超市管理系统,要求可以添加货物,删除货物和查询货物:

。代码如下:

public interface Goods { public String getName();// 得到商品名称

public int getCount();// 得到商品数量

public float getPrice();// 得到商品价格 }

public class Book implements Goods {

private String name;private int count;private float price;

public Book(){ }

public Book(String name, int count, float price){

this.name = name;

this.count = count;

this.price = price;}

public String getName(){

return name;}

public void setName(String name){

this.name = name;

金陵科技学院实验报告

}

public int getCount(){

return count;}

public void setCount(int count){

this.count = count;}

public float getPrice(){

return price;}

public void setPrice(float price){

this.price = price;}

public boolean equals(Object obj){

if(this == obj){

return true;

}

if(!(obj instanceof Book)){

return false;

}

Book b =(Book)obj;

if(b.name.equals(this.name)&& b.count == this.count

&& b.price == this.price){

return true;

} else {

return false;

} }

public int hashCode(){

return this.name.hashCode()+ new Integer(this.count).hashCode()

+ new Float(this.price).hashCode();}

public String toString(){

return “书名:” + this.name + “;书的价格:” + this.price + “;书的数量:”

+ this.count;}

金陵科技学院实验报告

}

import java.util.ArrayList;import java.util.Iterator;import java.util.List;

public class SuperMarket { private List allGoods;

public SuperMarket(){

this.allGoods = new ArrayList();}

public void add(Goods goods){

this.allGoods.add(goods);}

public void remove(Goods goods){

this.allGoods.remove(goods);}

public List search(String keyWord){

List temp = new ArrayList();

Iterator iter = this.allGoods.iterator();

while(iter.hasNext()){

Goods g = iter.next();

if(g.getName().indexOf(keyWord)!=-1){

temp.add(g);

}

}

return temp;}

public List getAllGoods(){

return this.allGoods;} }

import java.util.Iterator;import java.util.List;

public class Test {

金陵科技学院实验报告

public static void main(String[] args){

SuperMarket mak = new SuperMarket();

mak.add(new Book(“Java”, 2, 30.9f));

mak.add(new Book(“C++”, 3, 10.9f));

mak.add(new Book(“JSP”, 5, 80.9f));

print(mak.search(“J”));

mak.remove(new Book(“Java”, 2, 30.9f));

print(mak.search(“J”));}

public static void print(List all){

Iterator iter = all.iterator();

while(iter.hasNext()){

System.out.println(iter.next());

} } } 对照范例写出如下题目:

(1)宠物商店,要求可以添加、删除和查找宠物(2)实现以下两个关系

A、一个学校可以有多个学生,所有学生属于一个学校

B、一门课程可以有多个学生选,一个学生可以选多门课程

四、实验结果与分析(程序运行结果及其分析)

五、实验体会

金陵科技学院实验报告

实验项目名称: Java IO操作

实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:

金陵科技学院实验报告

实验3 Java IO操作

一、实验目的和要求

(1)理解输入输出流概念(2)掌握文件输入输出流

(3)掌握键盘的输入、显示器的输出(4)理解其他输入输出流

二、实验仪器和设备

奔腾以上个人计算机,windows操作系统。

配置好JDK环境,安装集成开发环境(Eclipse)

三、实验内容与过程

1、编写类模拟命令Copy

范例:实现文件的复制代码。参考代码如下:

File file1 = new File(“d:”+File.seperator +”demo.txt”);

// 找到第一个文件的File对象

File file2 = new File(“d:”+File.seperator +”cemo.txt”);// 找到目标文件路径 InputStream input = new FileInputStream(file1);// 输入流 OutputStream output = new FileOutputStream(file2);// 输出流 int temp = 0;// 定义一个整数表示接收的内容

while((temp = input.read())!=-1){ // 表示还有内容可以继续读

output.write(temp);// 写入数据 } input.close();// 关闭 output.close();// 关闭

2、通过键盘的输入,实现简单的选项操作。

*********XXXX管理系统***********

[1]添加

[2]删除

[3]修改

[4]查询

[5]退出

3、编写一个简单管理系统,实现真实的操作。

四、实验结果与分析(程序运行结果及其分析)

五、实验体会

金陵科技学院实验报告

实验项目名称: JDBC

实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:

金陵科技学院实验报告

实验4 JDBC

一、实验目的和要求(1)理解JDBC分类

(2)掌握JDBC数据库连接步骤

(3)掌握JDBC连接MySQL数据库代码(4)理解JDBC连接其他数据库方式

二、实验仪器和设备

奔腾以上个人计算机,windows操作系统。

配置好JDK环境,安装集成开发环境(Eclipse)

三、实验内容与过程

1、安装MySQL数据库,配置好数据库

创建一个数据库表,按要求给出详细的字段设计

pid name age birthday salary

主要操作:

2、创建Eclipse项目,配置驱动包

每个数据库厂商都会提供对Java开发技术的支持,即都会提供对应的Java驱动,也就是一个jar包

主要操作:

3、项目中建立一个详细例子,按照要求连接、操作、关闭数据库

按照标准的步骤完成对MySQL数据库的操作

主要代码:(添加、修改、删除和查询)

金陵科技学院实验报告

4、试着连接其他类型数据库。

四、实验结果与分析(程序运行结果及其分析)

五、实验体会

下载C程序设计教案(第5章 实验5)5篇word格式文档
下载C程序设计教案(第5章 实验5)5篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    UML程序设计实验指导书

    《UML程序设计》 实验指导教程 适合专业:计算机类专业 浙江树人大学信息科技学院 2016.02 课程与实验综述 第一部分实验综述 一.课程简介及实践要求: 《UML程序设计》是以介绍......

    UML程序设计实验指导书

    《UML程序设计》 实验指导教程 适合专业:计算机科学技术09 浙江树人大学信息科技学院 2012.02 课程与实验综述 第一部分实验综述 一.课程简介及实践要求: 《UML程序设计》是以......

    vb程序设计实验心得(大全)

    vb程序设计实验心得 vb程序设计实验心得一:数据库VB课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的......

    Java程序设计实验2

    学 生 实 验 报 告 册 课程名称: 学生学号: 所属院部: (理工类) 专业班级: 学生姓名: 指导教师: 20 ——20 学年 第 学期 金陵科技学院教务处制 实验报告书写要求 实验报告......

    C程序设计教案(第7章 实验9)专题

    实验9 指针使用和数组的指针 一、 二、 1. 2. 3. 4. 实验学时:2课时 实验目标 掌握指针的概念、指针变量的定义和使用指针变量; 掌握指针变量的运算(取地址运算&、取内容运算*......

    C程序设计教案(第9章 实验 12次)

    实验 12 位运算 一、 二、 实验学时:2课时 实验目标 1. 掌握按位运算的概念和方法,学会使用位运算符。 2. 学会通过位运算实现对某些位的操作。 三、 实验要求: 1. 在上实验......

    C程序设计教案(第7章 实验10)

    实验10 字符串的指针和函数的指针 一、 二、 实验学时:2课时 实验目标 1. 学会使用字符串的指针和指向字符串的指针变量; 2. 学会使用指向函数的指针变量; 3. 了解指向指针的指......

    C程序设计教案(第5章 实验6)

    实验 6 字符数组和字符串函数 一、 二、 实验学时:2课时 实验目标 1. 熟悉掌握字符数组的使用。 2. 掌握与数组有关的算法。 三、 实验要求: 1. 在上实验课之前,每一个同学必......