第一篇:C语言实验题目
求两个数之和。在两种情况下完成:
①数据在程序内部定义变量时赋初值,或者通过赋值语句赋值。②数据通过scanf()函数输入。静态输入:
#include
#include
设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆柱表面积、圆柱体积。要求用scanf 输入数据,输出计算结果。#include
l=%6.2fn”,l);printf(“圆的面积为
s=%6.2fn”,s);printf(“圆柱的表面积为
sq=%6.2fn”,sq);printf(“圆柱的体积为
vz=%6.2fn”,vz);}
输入a、b、c三个整数,求出其中最大者,并连同三个源数据一起输出。#include
if(x>z)
max=x;
else
max=z;} else {
if(y>z)
max=y;
else
max=z;} return(max);} void main(){ int max(int x,int y,int z);
int a,b,c,w;
printf(“请您输入三个整数:”);
scanf(“%d,%d,%d”,&a,&b,&c);
printf(“您输入的三个数是:%d,%d,%dn”,a,b,c);
w=max(a,b,c);
printf(“这三个数中最大的是:%dn”,w);}
给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。要求输入一个成绩并打印出对应的等级制成绩。要求用switch语句完成。#include
printf(“您输入了一个错误的成绩!请重新输入n”);
scanf(“%d”,&grade);} c=grade/10;switch(c){ case 10: case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;default: grade='E';} printf(“您输入的成绩的等级为:%Cn”,grade);}
计算当n为何值时,不等式sum=1 + 1/2 + 1/3 +… + 1/n >limit成立,输出n对应的sum(limit从键盘输入,要求用while、或do...while 语句,limit=10)。#include
n++;
sum=sum+1/n;} printf(“此时sum的值是:%fn”,sum);printf(“此时n的值为%fn”,n);}
计算M=11+ 22+ 33+…+ NN,直到N等于15为止,输出N和对应的M。(要求用for语句做)
#include
M=M+(n+10*n);} for(n=10;n<=15;n++){
M=M+(n+100*n);} n--;printf(“当n是%d时,M的值为%fn”,n,M);}
100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马一匹驮0.5担,计算大、中、小马数目并输出。#include
for(small=0;small<100;small+=2)
for(mid=0;mid<50;mid++)
{
if(3*big+2*mid+small/2==100&&big+mid+small==100)
{
printf(“big:%dt,mid:%dt,small:%dn”,big,mid,small);
sum++;
}
}
printf(“一共有%d种组合方式n”,sum);}
求 sum=1!+2!+3!+...+10!,并输出结果。#include
t=t*n;
s=s+t;} printf(“1!+2!+3!+...+10!的和是:%en”,s);} 注意该程序的结果为:1!+2!+3!+...+10!的和是:4.037913e+006 是以科学计数法表示的结果,因为int的定义范围只能以此表示,如果用long int来输出,则可以得到正常表示的结果 #include
t=t*n;
s=s+t;} printf(“1!+2!+3!+...+10!的和是:%ldn”,s);}
1!+2!+3!+...+10!的和是:4037913
设数列为1,3,5,7,9,11,13,15,17,19,动态输入在数组array中,然后顺序打印输出该数列,再逆序打印输出该数列。#include scanf(“%d”,&array[i]);printf(“您输入的10个整数的顺序排列是:n”);for(i=0;i printf(“%-4d”,array[i]);printf(“n”);printf(“您输入的10个整数的逆序排列是:n”);for(i=N-1;i>=0;i--) printf(“%-4d”,array[i]);printf(“n”);} 将3x3阶二维数组的关于主对角线对称的元素互换。二维数组的第1至3行元素分别为1、2、3、4、5、6、7、8、9。用矩阵形式分别输出互换前、后的数组元素值。#include for(j=0;j<3;j++) printf(“%5d”,array[i][j]); printf(“n”);} for(i=1;i<3;i++) for(j=0;j { t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } printf(“After Exchanged:n”); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(“%5d”,array[i][j]); printf(“n”); } } 定义两个字符数组s1、s2,并用赋初值的方法把两个字符串“Computer”和“Language” 分别存放到s1、s2中,要求不用库函数strcat(),把s2连接到s1的尾部,然后以%s格式输出连接后的字符串s1。#include char s1[80],s2[40]; int i=0,j=0; printf(”input string1:“); scanf(”%s“,&s1); printf(”input string2:“); scanf(”%s“,&s2); while(s1[i]!=' ') i++; s1[i]=' '; i++; while(s2[j]!=' ') s1[i++]=s2[j++]; s1[i] = ' '; printf(”The new string is:%sn“,s1);} 用赋初值的方法把字符串”C is a general purpose, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.“存放到字符数组s中,编程统计其中的大写字母、小写字母、数字、空格、逗号的个数。#include char s[512] = ”C is a general purpose, procedural, imperative “ ”computer programming language developed in 1972 by Dennis“ ”Ritchie at the Bell Telephone Laboratories for use with “ ”the Unix operating system.“;int upper=0,lower=0,digit=0,space=0,comma=0;int i=0;while(s[i]) { if(s[i]>='A'&&s[i]<='Z')upper++; if(s[i]>='a'&&s[i]<='z')lower++; if(s[i]>='0'&&s[i]<='9')digit++; if(s[i]==' ')space++; if(s[i]==',')comma++; i++; } printf(”这串字符串有大写字母%d个,小写字母%d个,数字%d个,空格%d个,逗号%d个n“,upper,lower,digit,space,comma);} 试从主函数输入10个数据到数组中,编写对偶数项求和的子函数,它将计算结果返回给主函数,由主函数输出。#include int i,s;s=0; for(i=1;i s=s+a[i]; return(s);} void main(){ int a[10];int i,s;printf(”请您在数组内输入10个数:“);for(i=0;i<10;i++) scanf(”%d“,&a[i]);s=oqh(a,10);printf(”这个数组的偶数项的和是:%dn“,s);} 注意:oqh并无其他含义,是本人定义的一个函数名,偶数项求和的缩写。编写一个判断素数的程序,其中主函数用于完成输入一个整数并给出判断结果,单独编写一个函数用于判断其参数是否为素数,其返回值为1表示为素数,为0表示为非素数。#include if(n%i==0) { m=0; break; } if(i>t) m=1; else continue;} return(m);} void main(){ int n;int i;printf(”请输入你要判断的数:n“);scanf(”%d“,&n);while(n<=1){ printf(”您输入了一个错误的数据,请重新输入:n“); scanf(”%d“,&n);} if(prime(n)) printf(”您输入的是一个素数n“);else printf(”您输入的不是一个素数n“); } 输入三个整数,按由小到大的顺序输出。(要求使用指针来排序输出)#include t=*a; *a=*b; *b=t;} if(*a>*c){ t=*a; *a=*c; *c=t;} if(*b>*c){ t=*b; *b=*c; *c=t;} } void main(){ int a,b,c;printf(”请您输入三个整数:“);scanf(”%d %d %d“,&a,&b,&c);sort(&a,&b,&c);printf(”它们由小到大的排列顺序是:%d %d %dn“,a,b,c);} 或者是 #include void swap(int *p1,int *p2); int a,b,c; int *p1,*p2,*p3; printf(”请您输入三个整数:“); scanf(”%d %d %d“,&a,&b,&c); p1=&a; p2=&b; p3=&c; if(a>b)swap(p1,p2); if(a>c)swap(p1,p3); if(b>c)swap(p2,p3); printf(”它们由小到大的排列顺序是:%d %d %dn“,a,b,c);} void swap(int *p1,int *p2){ int p; p=*p1; *p1=*p2; *p2=p;} 输入十个整数,放在数组list中,然后用指针法从后向前输出该数组中的整数。#include int list[10],i,*p=list; printf(”请您输入10个整数:n“); for(i=0;i<10;i++) scanf(”%d“,&list[i]); printf(”这10个整数的逆序序列是:n“); for(i=9;i>=0;i--) printf(”%-4d“,*(p+i));} 如果输入的数字个数不定的情况,下面的代码可行 #include scanf(”%d“,&list[i]);p=&list[0];sort(p,n);printf(”这%d个整数的逆序序列是:n“,n);for(i=0;i printf(”%-4d“,list[i]);printf(”n“);} void sort(char *p,int m){ int i;char t,*p1,*p2;for(i=0;i p1=p+i; p2=p+(m-1-i); t=*p1; *p1=*p2; *p2=t;} } 编写一个函数,它能对一个字符串(“I am a student”)测出长度,要求函数的形参是一个指针变量,函数返回值是字符串的长度。#include n++; p++;} //*p=' ';//n++;return(n);} 若要统计结果包含结束符,则启用*p=' ';n++;两条语句 编一个函数cstrcmp实现两个字符串的比较,具体为: int cstrcmp(char *p1, char *p2)p1,p2分别指向字符串s1,s2;若s1=s2则函数返回0;若s1>s2,则函数返回1;若s1 return 0;} if(strcmp(p1,p2)>0){ return 1;} if(strcmp(p1,p2)<0){ return-1;} } void main(){ char *a;char *b;input();printf(”这两个字符串比较的结果是:%dn“,cstrcmp(a,b));} 如果要求返回的是不相同字母的ASCII码值: #include if(*(p1+i++)==' ')return(0); return(*(p1+i)-*(p2+i));} 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,用赋初值的方法输入5个学生的数据到结构体数组中,输出每个学生3门课的平均成绩。#include { char num[6]; char name[8];int score[3];float avr;}stu[5]={{”101“,”Zhou“,93,89,87},{”102“,”Yang“,85,80,78},{”103“,”Chen“, 77,70,83},{”104“,”Qian“,70,67,60},{”105“,”Li“,72,70,69}};void main(){ int i,j,sum;for(i=0;i<5;i++) { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0;} printf(”number name score1 score2 score3 averagen“);for(i=0;i<5;i++){ printf(”%3s%10s“,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(”%7d“,stu[i].score[j]); printf(”%10.2fn“,stu[i].avr);} } 如果按平均成绩由高到低排序后,输出每个学生的成绩 #include { char num[6]; char name[8]; int score[3];float avr; }stu[5]={{”101“,”Zhou“,93,89,87},{”102“,”Yang“,85,80,78},{”103“,”Chen“, 77,70,83},{”104“,”Qian“,70,67,60},{”105“,”Li“,72,70,69}},temp;void main(){ int i,j,sum; for(i=0;i<5;i++){ sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0;} for(i=0;i<4;i++) for(j=i;j<4;j++) if(stu[j].avr { temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } printf(”number name score1 score2 score3 averagen“); for(i=0;i<5;i++) { printf(”%3s%10s“,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(”%7d“,stu[i].score[j]); printf(”%10.2fn",stu[i].avr); } } (三)年级 【实验题目】研究根的作用 时间:3月13日 【实验目的】会设计观察实验;知道根有吸收作用。【实验器材】带根的的植物、试管、花生油。【实验过程】 1、在试管中加入适量的水。 2、把植物放入试管中。 3、在试管里滴入花生油,防止水分蒸发。 4、用橡胶塞(中间钻孔、切成两半利于固定植物)固定好植物,并在管壁处做标记。 5、把植物放在向阳的地方,观察试管中液面的变化。 6、实验现象:玻璃杯中的液面会逐渐下降。 【实验结论】根有吸收作用。在吸收水分的同时,把溶解在水中的养分也吸收了。 (三)年级 时间:3月19日 实验题目: 植物茎的作用 实验目的:认识植物茎有支撑植物和运输水分和养料的作用。 实验材料:(教师准备)一段新鲜芹菜、烧杯、红色水、小刀、解剖盘、放大镜 实验过程: 1.取一段新鲜芹菜和装有红色水的烧杯。2.将芹菜放入烧杯中。 3.将烧杯放在阳光下晒两小时左右,观察芹菜的变化。4.拿到实验室实验。观察烧杯中的水是增加了,还是减少了? 5.将芹菜茎用清水冲洗后,用小刀将芹菜横切开,观察它的横切面;然后纵 切,观察切面。 6.观察到的现象:将芹菜放入烧杯中,发现水逐渐减少了。将芹菜横切开,发现它的横 切面有一些小红点,很像红水流经的一个个导管。 实验结论: 植物的茎具有支撑植物和运输水分和养料的作用。 实验一 Java语言概述 【实验目的】 1.掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。2.熟悉Java应用程序的基本结构,并能联合编译应用程序所需要的类。 文件保存要求:在D:盘新建文件夹“学号”,在“D: 学号”下新建文件夹“timu1”。题目1的文件保存在“timu1”中,以下依次类推。 【题目1】 1、实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。 2、程序模板:请按模板要求,将【代码】替换为Java程序代码。 3、实验后的练习 a.编译器怎样提示丢失大括号的错误。b.编译器怎样提示语句丢失分号的错误。 c.编译器怎样提示将System写成system这一错误。d.编译器怎样提示将String写成string这一错误。 【题目2】 1、实验要求:编写3个源文件:ClassRoom.java、Teacher.java、Student.java,每个源文件只有一个类。ClassRoom.java含有应用程序的主类(含有main方法),并使用了Teacher和Student类。将3个源文件保存到同一目录,D:timu2,然后编译ClassRoom.java。 2、程序模板:请按模板要求,将【代码】替换为Java程序代码。 3、实验后的练习 a.将ClassRoom.java编译通过后,不断地修改Teacher.java源文件中的【代码2】。比如,在命令行窗口输出“我是语文老师”或“我是数学老师”。要求每次修改Teacher.java源文件后,单独编译Teacher.java,然后直接运行应用程序(不要再编译ClassRoom.java)。 b.如果需要编译某个目录下的全部Java源文件,如D:1001目录,可以使用如下命令: D:1001>javac *.java 请练习上述命令。 【题目3】 1、实验要求:课本第15页习题1.9 2、实验后的练习 习题8.(4) 实验四 类与对象 【实验目的】 1.掌握使用类来封装对象的属性和行为。2.掌握对象的组合以及参数传递。 3.掌握类变量与实例变量,以及类方法与实例方法的区别。 文件保存要求:在D:盘新建文件夹“shiyan04”,在“D: 20120shiyan04”下新建文件夹“timu1”。题目1的文件保存在“timu1”中,以下依次类推。 【题目1】 1、实验要求:编写一个Java应用程序,该程序中有两个类:Tank(用于刻画坦克)和Fight(主类)。具体要求如下:(1)Tank类有一个double类型的变量speed,用于刻画坦克的速度;一个int型变量bulletAmount,用于刻画坦克的炮弹数量。定义了speedUp()和speedDown()方法,体现坦克有加速、减速行为;定义了setBulletAmount(int p)方法,用于设置坦克炮弹的数量;定义了Fire()方法,体现坦克有开炮行为。(2)在主类Figtht的main方法中用Tank类创建坦克,并让坦克调用方法设置炮弹的数量,显示坦克的加速、减速和开炮等行为。 2、程序运行效果如下图所示: 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 4、实验后的练习 (1)改进speedUp方法,使得Tank类的对象加速时不能将speed值超过220。 (2)增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成0。 【题目2】 1、实验要求: 编写一个Java应用程序,模拟在计算机中放入光盘,即计算机将CD类型的对象作为自己的一个成员变量。具体要求如下。(1)有三个源文件:Computer.java、CD.java和User.java,其中CD.java中的CD类负责创建光盘对象。Computer.java中的Computer类有类型是CD,名字是includeCD的成员变量,Computer类负责创建计算机对象。User.java是主类。(2)在主类的main方法中首先使用CD类创建一个对象:dataCD,然后使用Computer类再创建一个对象:ComputerIMB,ComputerIMB对象将CD类的实例“dataCD”的引用传递给ComputerIMB对象的成员变量“includeCD”。 2、程序运行效果如下图所示: 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 4、实验后的练习 主类中再增加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。 【题目3】 1、实验要求:编写程序模拟一个家庭成员的姓名:姓名由两部分构成:姓氏和名字。编写一个FamilyPerson类,该类有一个静态的String型成员变量surname,用于存储姓氏、一个实例的String型成员变量name,用于存储名字。在主类MainClass的main方法中首先用类名访问surname,并为surname赋值,然后FamilyPerson创建3个对象:father,sonOne和sonTwo,并分别为father,sonOne和sonTwo的成员变量name赋值。 2、程序运行效果如下图所示: 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 4、实验后的练习 (1)【代码3】是否可以是FamilyPerson.setSurname(“张”);(2)能否将主类中的代码: sonOne.setName(“抗日”);修改为: FamilyPerson.setName(“抗日”); 【题目4】 1、实验要求:课本P,参考代码编写Rational类,和主类。 实验五 继承与接口 【实验目的】 1.理解子类的继承性,掌握子类对象的创建过程以及方法的继承与重写。2.掌握重写的目的以及使用super关键字。 3.掌握上转型对象的使用,理解不同对象的上转型对象调用同一方法可能产生不同的行为,即理解上转型对象在调用方法时可能具有多种形态(多态)。 文件保存要求:在D:盘新建文件夹“2012..shiyan05”,在“D:2011..shiyan05”下新建文件夹“timu1”。题目1的文件保存在“timu1”中,以下依次类推。 【题目1】 1、实验要求:编程模拟中国人、美国人,北京人。除主类外,程序中有4个类:People、ChinaPeople、AmericanPeople和BeijingPeople类。要求如下:(1)People类有权限是protected的double型成员变量:height和weight,以及public void speakHello()、public void averageHeight()和public void averageWeight()方法。(2)ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。(3)AmericanPeople类是People的子类,新增了public void americanBoxing()方法。要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。(4)BeijingPeople类是 ChinaPeople的子类,新增了public void beijingOpera()方法。要求BeijingPeople重写父类的public void averageHeight()和public void averageWeight()方法。 2、程序运行效果如下图所示: 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 【题目2】 1、实验要求:教材P136,第10题 【题目3】 1、实验要求: (1)编写一个abstract类,类名为Geometry,该类有一个abstract方法: public abstract getArea();(2)编写TotalArea类,该类用Geometry对象数组:tuxing作为成员,以便计算各种图形的面积之和。Geometry类中定义一个public double computerTotalArea()方法,该方法返回tuxing的元素调用getArea()方法返回的面积之和。 (3)在主类MainClass的main方法中创建一个TotalArea对象,让该对象计算若干矩形和圆的面积之和。 2、程序运行效果如下图所示: 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 4、实验后的练习 再增加一种几何图形,比如梯形,并让主类中tuxing的某些元素是梯形的上转型对象。 实验六 接口、内部类和异常类 【实验目的】 1.掌握上转型对象的使用,理解不同对象的上转型对象调用同一方法可能产生不同的行为,即理解上转型对象在调用方法时可能具有多种形态(多态)。 2.掌握类怎样实现接口,理解面向接口编程思想。3.了解内部类的用法。4.掌握使用try-catch语句。 文件保存要求:在eclipse中设置工作空间为“D:2012..shiyan06”,新建Java项目,本次实验所有文件都在该项目中完成。 【题目1】 1、实验要求:天气可能出现不同的状态,要求用接口封装天气的状态。具体要示如下:(1)编写一个接口WeatherState,该接口有一个名字为void showState()的方法。 (2)编写Weather类,该类中有一个 WeatherState接口声明的变量state。另外,该类有一个show()方法,在该方法中让接口state回调showState()方法。 (3)编写若干实现WeatherState接口的类,负责刻画天气的各种状态。(4)编写主类,在主类中进行天气预报。 2、程序运行效果如下图所示: 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 【题目2】 1、实验要求:红牛农场饲养了特殊种类的红牛,但不希望其他农场饲养这种特殊种类的牛,那么这种类型的农场就可以将创建这种特殊种类的牛作为自己的内部类。编写一个RedCowForm类(模拟农场),RedCowForm类中定义名字为RedCow的内部类(模拟红牛)。 2、程序运行效果如下图所示。 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 【题目3】 1、实验要求:车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出:“危险品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常对象。程序在主类的main方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try-catch语句的catch部分处理危险品。 2、程序运行效果如下图所示。 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 实验七 常用实用类 【实验目的】 1.掌握String类的常用方法。 2.掌握怎样使用StringTokenizer类的对象从字符串中解析出所需要的数据。3.掌握使用Date类与Calendar类处理时间与日期。文件保存要求:在eclipse中设置工作空间为“D: 2011..shiyan07”,新建Java项目,本次实验所有文件都在该项目中完成。 【题目1】 1、实验要求: 图书信息如下: 书名:Java程序设计 出版时间:2011.10.01 出版社:清华大学出版社 价格:29.8元 页数:389页 编写一个Java应用程序,判断图书信息中是否含有“程序”,单独输出图书信息中的出版日期,判断图书信息中的价格是否大于 29、页数是否小于360.2、程序运行效果如下图所示。 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 【题目2】 1、实验要求: 购物小票的内容如下: “牛奶:89.8元,香肠:12.9元 啤酒:69元 巧克力:132元” 编写一个Java应用程序,输出购物小票中的价格数据,并计算出总价格。 2、程序运行效果如下图所示。 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 【题目3】 要求:教材P198页,例9.16 【题目4】 要求:教材P208页,第9题 实验八 Java Swing图形用户界面(1) 【实验目的】 1.熟悉Java 图形用户界面开发过程。2.掌握ActionEvent事件的处理。 文件保存要求:在eclipse中设置工作空间为“Z: 2012.shiyan08”,新建Java项目,本次实验所有文件都在该项目中完成。 【题目1】 1、实验要求:编写一个算术测试小软件,用来训练小学生的算术能力。程序有3个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。 2、程序运行效果如下图所示。 3、程序模板:请按模板要求,将【代码】替换为Java程序代码。 4、实验后的练习 (1)参考本实验代码,再增加“小学生”级别。(2)给上述程序增加测试乘法的功能。 【题目2】 1、实验要求:教材P271,第4题 实验九 Java Swing图形用户界面(2) 【实验目的】 1.熟悉Java 图形用户界面开发过程。2.理解并掌握事件处理机制。 文件保存要求:在eclipse中设置工作空间为“Z: 2012.shiyan09”,新建Java项目,本次实验所有文件都在该项目中完成。 【题目1】 1、实验要求:教材P271,第4题 【题目2】 1、实验要求:设计并实现某信息管理系统。系统包含一个窗口,实现用户注册功能,要求至少包含两个命令按钮。 A:“提交”按钮,单击时将用户提交信息显示在窗口中的一个文本域中。B:“重置”按钮,单击时清空用户填入的各类信息。 建议补充功能(选做): A :用户名输入框后增加一标签,用于提示用户名命名要求(规则自定,如字符个数等)。用户名输入完成后,检测用户名是否合法,不合法则在输入框后的标签给出红色提示。B:提供密码二次输入,在第二个密码框后增加一标签。第二次密码输入完成后,检测两个密码框的内容是否一致,不一致则在标签上以红色字给出提示。 实验题目 本学期网络实验的内容写8次,分别为: 1.压接线的制作与测试(跳线的制作与测试内容可省略); 2,RCMS系统的熟悉。(RCMS系统即锐捷控制管理系统); 3,交换机的基本配置; 4,虚拟局域网(单交换机端口隔离或者跨交换机都可); 5,冗余链路; 6,路由器的基本配置; 7,静态路由; 8,动态路由(RIP或OSPF任选一)。 实验报告必须在下周之前完成并上交到系里,否则会影响该门课期末总成绩。切记。另外,系部还安排《计算机网络》这门课程有课程设计,事出突然,我也正在查找资料中,通知大家先上网查找一些设计,下周我会列出一些设计内容,大家可选做,也可自己查找些资料自行设计一些课题来做。 程军 微机原理与接口技术实验(1) 实验一 汇编语言程序上机过程 1 实验二 屏幕字符显示程序 3 实验三 音乐程序 5 实验四 键盘和窗口程序 7 实验五 活动图形显示程序 9 实验六 磁盘文件操作程序 12 实验 一、实验二必做,其余可以选做 实验一 汇编语言程序上机过程 实验目的: 1、掌握常用工具软件 PE,MASM和LINK的使用。 2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。 3、利用的 1号功能实现键盘输入的方法。 4、了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。程序: data segment message db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data ends stack segment para stack 'stack' db 50 dup(?)stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov dx,offset message mov ah,9 int 21h again: mov ah,1 int 21h cmp al,1bh je exit cmp al,61h jc nd cmp al,7ah ja nd and al,11011111b nd: mov dl,al mov ah,2 int 21h jmp again exit: mov ah,4ch int 21h code ends end start 实验步骤: 1、用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。 2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。 3、用TYPE命令显示1产生的.LST文件。 4、用LINK将.OBJ文件连接成可执行的.EXE文件。 5、在DOS状态下运行LINK产生的。EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。若未出现预期结果,用DEBUG检查程序。实验报告: 1、汇编,连接及调试时产生的错误,其原因及解决办法。 2、思考: 1)若在源程序中把INT 21H的'H'省去,会产生什么现象? 2)把 INT 21H 4CH号功能改为 INT 20H,行不行? 实验二 屏幕字符显示程序 实验目的: 通过实验掌握下列知识: 1、8086指令: JMP,ROR,XOR,HLT。 2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。 3、直接向视频RAM(VRAM)送ASCII码进行屏幕显示的方法。 4、IBM-PC机的ASCII码表及控制字符。 5、命令(。COM)文件及使用方法。 6、利用^Break退出程序的方法及局限性。实验内容及步骤: 一、利用INT 21 0AH号功能调用显示字符串。 1、用A命令在100H处键入下列程序: MOV AH, 9 MOV DX,110 INT 21 INT 20 2、用A命令在110H处键入下列字符串的ASCII码: DB 'This is a sample!$' 3、用N命令和W命令将此程序(包括数据区)存入文件名为AA。COM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。 4、用Q命令退出DEBUG。 5、在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。 二、利用INT 21H 2号功能显示字符: 1、用A命令在100H处键入下列程序: XOR DL,DL MOVCX,100 LOP:MOV AH,2 INT 21 INC DL PUSH CX MOV CX,8 DELY: PUSH CX MOV CX,0 J: LOOP J POP CX LOOP DELY POP CX LOOP LOP INT 20 2、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同? 3、按CTRL+BREAK退出此程序,若一次不行可多做几次。 三、直接向VRAM送ASCII码显示字符 1、用A命令在100H处键入下列程序: MOV AX,B000 MOV DS,AX XOR AL,AL XOR BX,BX MOV CX,100 LOP: MOV [BX],AL INC BX INC AL PUSH CX MOV CX,8 DELY: PUSH CX MOV CX,0 J: LOOP J POP CX LOOP DELY POP CX LOOP LOP INT 20 2、用N命令和W命令将此程序存入BB.COM文件中。(一定要先存入!) 3、用G命令运行此程序,仔细观察每一个ASCII码显示结果,并和字符表及上一道程序运行情况进行对照,其控制字符区(07-0DH)显示结果和INT 21H2号功能调用有何不同? 四。自编一个程序,要求显示AX的内容,即能显示AX=xxxx。 调试时AX的内容可用R命令赋值,也可用MOV指令赋值。实验报告要求: 1、各项实验记录及观察体会。 2、利用INT 21H显示和直接向VRAM送ASCII码显示方法在显示结果上有什么不同? 3、自编程序草稿及调试结果。 实验三 音乐程序 实验目的: 1、掌握PC机发音原理及音乐程序编制方法。2、8086指令: IN,OUT,DIV,OR 实验内容: 一、发音程序。 1、用DEBUG输入下列程序: MOV DX,4000H IN AL,61H AND AL,FCH LOP: XOR AL,02H OUT 61H,AL MOV CX,0140H DEY: LOOP LOP DEC DX JNE LOP INT 21H INT 20H 2、在DEBUG下运行此程序,改变延时时间常数,注意声音高低变化。 二、音乐程序。 1、输入,汇编,连接并运行下列程序: stacksg segment para stack dw 32 dup(?)stacksg ends datasg segment tiger db 0ah,0dh,'two tiger。$' tig_freq dw 2 dup(262,294,330,262)dw 2 dup(330,349,392)dw 2 dup(392,440,392,349,330,262)dw 2 dup(294,196,262),0ffffh tig_time dw 10 dup(25),50,25,25,50 dw 2 dup(12,12,12,12,25,25)dw 2 dup(25,25,50)datasg ends codesg segment assume cs:codesg,ds:datasg,ss:stacksg start: mov ax,datasg mov ds,ax lea dx,tiger mov ah,9 int 21h lea si,tig_freq lea bp,ds:tig_time call play mov ah,4ch int 21h play proc freq: mov di,[si] cmp di,0ffffh je end_ply mov bx,ds:[bp] call sound add si,2 add bp,2 jmp freq end_ply: ret play endp sound proc mov al,0b6h out 43h,al mov dx,14h mov ax,4f38h div di out 42h,al mov al,ah out 42h,al in al,61h mov ah,al or al,3 out 61h,al wait: mov cx,5000 spkr_on: loop spkr_on dec bx jnz wait mov al,ah out 61h,al ret sound endp codesg ends end start 2、修改程序,使它能演奏一首你所喜爱的歌曲。 3、若歌曲中有休止符,怎么办? 实验报告: 1、实验记录和体会。 2、自编程序。 实验四 键盘和窗口程序 实验目的: 1、掌握利用INT 16H 2号功能调用实行键盘输入的方法。 2、熟悉键盘的扫描码和ASCII码的关系。 3、掌握利用INT 10H功能调用实现窗口功能的方法。实验内容: 一、键盘输入程序 1、程序: PRO_NAM AGAIN: BINIHEX ROTATE: PRINT: SEGMENT ASSUME CS:PRO_NAM ORG 100H MOV AH,0 INT 16H MOV BX,AX CALL BINIHEX MOV AH,2 MOV dl,20h INT 21H MOV DL,BL MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H JMP AGAIN INT 20H PROC NEAR MOV CH,4 MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINT ADD AL,7 MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ ROTATE RET BINIHEX ENDP PRO_NAM ENDS END AGAIN 2、输入,汇编,连接此程序,并将它转变成。COM文件。 3、运行此程序,观察并记录各个键的扫描码,ASCII码及对应字符。 二、窗口程序: 1、程序: code segment assume cs:code,ss:code org 100h start: mov ax,600h mov cx,0 mov dx,184fh mov bh,7 int 10h pos: mov ah,2 mov dx,101eh mov bh,0 int 10h mov cx,20 get: mov ah,1 int 21h cmp al,1bh jz exit loop get mov ax,601h mov cx,81eh mov dx,1031h mov bh,7 int 10h jmp pos exit: int 20h code ends end start 2、将此程序输入并转变成。COM文件。 3、运行此程序,观察按不同键所产生的效果。 4、此程序所产生的窗口效果有何缺陷?试修改之。实验报告: 1、实验记录。 2、自编程序。 实验五 活动图形显示程序 实验目的: 1、掌握利用INT 10H实现活动图形的方法。 2、INT 10H 的 2号,6号,0AH号功能。实验内容: 参考下列程序自编一活动的复合图形显示程序。程序一 活动字符图形显示程序: stack segment stack db 256 dup(0)stack ends code segment assumecs: code,ss:stack move: mov cx,0 mov dx,184fh mov bh,7 mov ax,0618h int 10h mov dx,0 mov cx,1 mov bh,0 rept: mov ah,2 int 10h mov ah,10 mov al,0fh int 10h call dely mov al,20h mov ah,10 int 10h inc dh inc dl inc dl cmp dh,25 jne rept mov ah,4ch int 21h dely proc push cx push dx mov cx,5 lop: mov dx,0 lop1: dec dx jne lop1 loop lop pop dx pop cx ret dely endp code ends end move 程序二静止复合图形显示程序: stack segment stack db 256 dup(0)stack ends data segment chrtab dw 7 db 0dbh,0,0,0dbh,0,1 db 0dbh,0,1,52h,0,1 db 1,-1,-1,9,2,0 db 9,0,-2 data ends code segment assume cs:code,ss:stack,ds:data start: mov ax,data mov ds,ax mov cx,0 mov dx,184fh mov bh,7 mov ax,0618h int 10h lea di,chrtab mov cx,[di] mov dx,400h add di,2 next: add dh,[di+1] add dl,[di+2] mov ah,2 mov bh,0 int 10h push cx mov cx,1 mov ah,10 mov al,[di] int 10h pop cx add di,3 loop next mov ah,4ch int 21h code ends end start 实验报告: 1、自编程序。 2、调试中产生的问题。 实验六 磁盘文件操作程序 实验目的: 1、掌握利用FCB进行磁盘文件读写的方法。 2、掌握利用HANDLE进行磁盘文件读写的方法。 3、INT 21H 0FH,10H,14H,15H,16H,1AH号功能调用。 4、INT 21H 3CH,3DH,3FH,40H号功能调用。实验内容: 一、文本文件内容显示程序: stack segment stack db 100h dup(?)stack ends data segment fcb db 36 dup(0)count db 0 char db 0 dta db 0 errmsg db 'file access error' data ends code segment main proc far assume cs:code,ss:stack start: push ds sub ax,ax push ax mov ax,data mov es,ax assume es:data mov si,5ch mov di,offset fcb mov cx,12 cld rep movsb mov ds,ax assume ds:data mov dx,offset dta mov ah,1ah int 21h mov dx,offset fcb mov ah,0fh int 21h cmp al,0 jnz error mov word ptr fcb+0ch,0 mov word ptr fcb+0eh,1 again: tab: eof: error: display disp1: mov fcb+20h,0 lea dx,fcb mov ah,14h int 21h cmp al,0 jnz error mov al,dta cmp al,1ah jz eof cmp al,9 jz tab call dispchar inc char cmp dta,0ah jnz again mov char,0 inc count cmp count,24 jnz again mov ah,0 int 16h mov count,0 jmp again mov al,' ' call dispchar inc char test char,7 jz again jmp tab lea dx,fcb mov ah,10h int 21h ret lea bx,errmsg call display ret proc mov cx,30 mov al,[bx] call dispchar inc bx loop disp1 mov al,0dh call dispchar mov al,0ah call dispchar ret display endp dispchar proc push bx mov bx,0 mov ah,14 int 10h pop bx ret dispchar endp main endp code ends end start 1、输入,汇编,连接此程序,用DEBUG将目的程序带参数调入,用D命令观看并记录 PSP中的FCB内容。 2、运行此程序。 二、磁盘文件拷贝程序(参考): stack segment stack db 100h dup(9)stack ends;data segment sfile db 64 db ? db 64 dup(' ')dfile db 64 db ? db 64 dup(' ')ask1 db 0ah,0dh,'please input source' db 'file name:','$' ask2 db 0ah,0dh,'please input destnation' db 'file name:','$' note db 0ah,0dh,'please insert diskettes' db 'and strike any when ready ','$' er1 db 0ah,0dh,'create error $' er2 db 0ah,0dh,'open error$' er3 db 0ah,0dh,'read error$' er4 db 0ah,0dh,'write error$' er5 db 0ah,0dh,'close source file error' er6 db 0ah,0dh,'close dest file error' bufr dw ? data ends code segment assume cs:code,ds:data,ss:stack start proc push sub push mov mov mov lea call lea far ds ax,ax ax ax,data ds,ax es,ax dx,ask1 disp dx,sfile call mov xor mov mov lea call lea call mov xor mov mov lea call mov int call ret start endp disp proc mov int ret disp endp inpt proc mov int ret inpt endp copy proc mov lea mov int inpt cl,sfile+1 ch,ch si,cx [si+sfile+2],0 dx,ask2 disp dx,dfile inpt cl,dfile+1 ch,ch si,cx [si+dfile+2],0 dx,note disp ah,7 21h copy ah,9 21h ah,0ah 21h ah,3ch dx,dfile+2 cx,20h 21h lea mov jc mov mov mov lea int lea mov jc r_w: mov mov lea int lea jc or je mov lea xchg int lea jc xchg jmp exit: mov int lea jc xchg mov int lea jc ret err: mov int xchg mov int call ret copy endp dx,er1 bx,ax err bufr,ax ah,3dh al,0 dx,sfile+2 21h dx,er2 bx,ax err cx,10h ah,3fh dx,sfile+2 21h dx,er3 err ax,ax exit ah,40h dx,sfile+2 bufr,bx 21h dx,er4 err bufr,bx r_w ah,3eh 21h dx,er5 err bufr,bx ah,3eh 21h dx,er6 err ah,3eh 21h bufr,bx ah,3eh 21h disp ends end start 按COPY AAA BBB 格式要求改写此程序,取消人机对话,源文件和目的文件名由 命令行输入。实验报告: 1、自编程序原稿和调试后的正确清单。 2、实验中产生的问题及体会。 3、实验记录。code第二篇:实验题目
第三篇:实验题目
第四篇:计算机网络实验题目
第五篇:实验一 语言实验