文档库 最新最全的文档下载
当前位置:文档库 › 《C语言》实验书

《C语言》实验书

《C语言》实验书
《C语言》实验书

实验一TC集成环境的使用

一?实验目的

1.熟悉C语言的集成调试环境TC

2.0的使用,学习编辑?运行C语言程序的基本方法?

2.进一步认识程序的两种类型的错误对程序运行的影响,加深对程序调试及测试重要性的认识?

3.认识C语言程序的结构特点,学习程序的基本编写方法

二?实验内容

1.TC

2.0集成环境的使用?编辑运行实现乘法运算的程序,源程序如下:

#include "stdio.h"

main( )

{

int a,b;

a=251; /* 使a具有值251 */

b=8; /* 使b具有值8 */

printf("%d\n",a*b); /* 计算并输出表达式a*b */

}运行结果为2008

2.程序错误:修改上面的程序,观察运行结果?

(1) 将程序中第1个语句的分号删除,编译或运行程序,看有何结果?运行错误

(2) 将程序中的表达式“a*b”的“a”改为“A”,然后运行程序?运行错误

(3) 将程序中的表达式“a*b”修改为“a-b”,然后运行程序?运行结果为243

3.编辑并运行能够对任意两个整数进行乘法运算的程序?

#include "stdio.h"

main()

{

int a,b;

printf("Input a,b:"); /* 在屏幕显示提示信息Input a,b: */

scanf("%d,%d",&a,&b); /* 该语句的作用是实现数据的键盘输入 */

printf("a*b=%d\n",a*b); /* 输出乘法运算的结果 */

}

4.编辑并运行如下程序,分别输入三组数据,记录输出结果,并分析该程序的功能?

main( )

{

int x, y, large;

scanf(“%d, %d”,&x, &y);

large=max(x, y);

printf(“The Max number is %d\n”, large);

}

int max(int x, int y)

{

int z;

if(x>y)

z=x;

else

z=y;

return z; }

5.单步或跟踪运行上题中的程序,体会两种运行方式的特点?

三?实验指导

1.Turbo C

2.0集成环境的使用?

⑴ 启动TC 2.0?

⑵ 使用“File→New”命令或使用“Edit”命令,进入编辑状态,录入编辑源程序并保存?

⑶ 使用“Comple→Compile to OBJ”对源程序进行编译,如果源程序存在语法错误,这时编译系统会把程序中的错误指示出来?发现错误后,需要立即修改源程序,然后重新编译?

⑷ 编译无误后,使用“Comple→Link EXE file”连接目标代码,生成可执行文件,这个文件可由运行命令“Run”运行?

上面的⑶?⑷两个步骤,也可以使用“Comple→Build all”或“F9”功能键一步完成?

⑸连接完成后,使用“Run”命令,或者使用“Ctrl+F9”组合键运行程序?

程序运行过程瞬间结束,要察看程序运行结果,需要切换到运行屏幕,用组合健“Alt+F5”实现?按

Alt+F5后,将看到屏幕显示如下结果:

2008

按任意键,屏幕返回程序状态?

说明:对一个未经编译和连接的源程序,TC2.0也可以直接运行它,方法是编辑好一个源程序后,直接使用Run命令或“Ctrl+F9”组合键运行它?此时系统自动启动编译命令和连接命令,只有当编译?连接正常进行后,程序才会被运行?因此,上面的过程可以简化为两个操作步骤:

⑴ 启动TC2.0,录入编辑源程序,并保存?

⑵ 按“Ctrl+F9”组合键运行程序?

特别提示:

⑴ 保存源程序:

在编辑源程序的过程中或源程序编辑完成后,及时保存源程序是十分必要的,但初学者往往忽视这一环节?操作步骤如下:

① 按“F2”功能键,出现输入文件名的提示框?白色背景窗口显示了系统为当前程序设定的默认存储位置(C:\TC,该存储位置因系统而异,可以改变)和默认文件名NONAME.C?

② 输入新的文件名?为了操作方便,可以使用默认存储位置,指定文件名为mult.c?

操作时只需将NONAME.C改写为mult.c后回车确认即可?

⑵ 使用Windows的记事本程序提高源程序编辑效率?

① 启动Windows的记事本程序,录入编辑乘法源程序?

② 保存程序,选择合适的存储位置,如上面使用的TC2.0的默认程序目录C:\TC;输入指定的文件名,如mult.c;选择保存类型为“所有文件”?

③ 启动或激活TC2.0,按“F3”功能键,出现提示框?在“Load File Name”框中键入步骤②使用的文件名mult.c,回车确认后将源程序调入TC系统,然后按组合键“Ctrl+F9”运行程序?

2.程序错误?

第一项内容用于说明语句结束的分号的重要性及语法错误?

第二项内容用于验证C语言中标识符的特性,当用“A”取代“a”后,程序将不能运行,说明作为标识符“A”和“a”是不等价的?

请读者自己进行类似的替换,然后察看程序的运行结果?如,将程序中的“printf”改为“PRINTF”,然后运行程序看结果?

第三项实验内容说明了程序的逻辑错误情况?若把“a*b”误写为“a-b”,程序会顺利编译运行,但显然不是乘法运算的结果?

3.编辑并运行能够对任意两个整数进行乘法运算的程序?

编辑该程序前,首先使用“File→New”命令使TC2.0进入新程序编辑状态,然后编辑运行该程序?程序运行后,屏幕将显示下面的提示信息:

Input a,b:

此时,应从键盘输入两个整数数据,然后回车确认?下面是一个输入实例:

20,35

下面是程序的输出结果:

a*b=700

特别提示:

程序的输入数据往往有格式规定,只有按照正确的格式输入数据,才会得到正确的结果?

运行上面的程序时,输入的两个数据必须以“,”分隔,否则将得不到正确的结果?

请读者再次运行程序,对输入的两个数据以空格分隔,察看执行结果?例如:

Input a,b:20 35

再次运行程序,然后输入两个很大的整数,察看运行结果?例如:

Input a,b:20000,35000

显然,上面两次运行的结果都是不正确的?这说明,既没有语法错误,也没有逻辑错误的程序,运行后也会得不到正确的结果?第一种情况出错,是因为输入数据时数据之间的分隔形式不符合程序的要求?第二种情况,输入数据的格式没有问题,但输入的数据超出了程序能够允许的整数范围?

这项实验内容提醒读者,在上机实现一个C语言程序时,各种错误的情况都可能出现?即便是一个看上去很好的程序,仍然会有许多需要改进之处?从算法的角度理解,就是任何算法,都可能存在进一步完善的空间?

4.编辑并运行如下程序,分析该程序的功能?

(1)程序开始运行后,将首先进入用户屏幕状态(即黑屏),并有光标闪烁,此时用户需输入数据?

(2)输入数据的格式:两个整数,中间用逗号分开,最后按回车键结束?

四?实验要求

1.实验前充分预习,熟悉操作方法?

2.实验过程中,记录程序运行结果?现象及出错信息,并分析原因?

3.实验中随时注意保存源程序,要指定适当的文件名,以备检查?

4.实验总结,对实验内容中的有关问题进行说明?

五?思考题

1.编辑并运行将自然数1-100累加的程序?

2.进一步熟悉TC2.0集成环境的功能,写出下列操作所使用的菜单命令及快捷键?

(1)新建程序文件

(2)保存程序文件

(3)打开程序文件

(4)程序文件换名保存

(5)程序编译(6)程序编译并连接

(7)程序编译?连接并运行

(8)查看程序运行结果

(9)单步运行程序

(10)添加监示变量

3.程序中的语法错误和逻辑错误对程序运行及结果有何影响?

实验二数据类型?运算符及表达式

一?实验目的

1.了解C语言数据类型的概念,熟悉各种类型常量的表示及用法

2.掌握整型?字符型和实型三种基本类型变量的定义?赋值和使用方法?

3.掌握算法?关系?逻辑表达式的特点及用法?

4.熟悉自增?自减运算的特点,掌握自增?自减运算符的用法?

5.进一步认识C语言程序的结构特点,学习简单程序的编写方法?

二?实验内容

1.整型变量及算术运算:

要求:编辑运行下列程序,分析运行结果?

#include “stdio.h”

main( )

{

int m,a,b,c,d,e;

printf(“m=”);

scanf(“%d”,&m);

a=m+1;

b=m-2;

c=m*3;

d=m/4;

e=m%5;

printf(“a=%d,b=%d,c=%d,d=%d,e=%d\n”,a,b,c,d,e);

}

2.实型变量及运算:

#include “stdio.h”

main( )

{

float m,n,s;

printf(“m=”);

scanf(“%f”,&m);

printf(“n=”);

scanf(“%f”,&n);

s=m*n;

printf(“s=%f\n”,s); }运行结果为256

3.字符型变量及运算:

(1)输出字符程序:

#include “stdio.h”

void main( )

{

char c1,c2;

c1=’a’;

c2=’b’;

printf(“%c %c\n”,c1,c2); }运行结果为a,b

(2)字符程序分析:

#include

main( )

{

char c1=’A’,c2=’B’,c3=’C’,c4=’\101’,c5=’\x4D’; printf(“%d\t%c\t%d\n”,c1,c2,c3);

printf(“%c\t%c\n”,c4,c5); }

4.关系运算和逻辑运算:

(1)用程序计算关系表达式的值:

表达式:x+6>=y>x*3 (x=5,y=8)

(2)用程序计算逻辑表达式的值:

从键盘任意输入整数x?y的值,计算下面逻辑表达式的值?

表达式:x>=y||Y>x*3&&!(x>=25)

5.自增和自减运算:

(1) #include

main( )

{

int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d\n”,i,j,m,n); }

(2)分别将上述程序作如下改动并运行?

①将第4?5行改为:

m=i++;

n=++j;

②程序改为:

main()

{ int i,j;

i=8;

j=10;

printf(“%d, %d\n”,i++,j++);

}

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

printf(“%d, %d\n”,++i,++j);

④再将printf语句改为:

printf(“%d, %d,%d,%d\n”,i,j,i++,j++);

⑤程序改为:

main()

{ int i,j,m=0,n=0;

i=8;j=10;

m=i--;

n=--i;

printf(“i=%d, j=%d,m=%d,n=%d\n”,i,j,m,n);

printf(“i=%d, j=%d,m=%d,n=%d\n”,--i,j--,m,n);

}

(3) main( )

{

int x=6,y,z;

x*=9+1;

printf(“%d\n”,x--);

x+=y=z=10;

printf(“%d\n”,x);

x=y==z;

printf(“%d\n”,-x++); }

三?实验要求:

1?充分预习实验内容,写出实验所需程序,分析给出源程序的运行结果?

2?实验中,记录各程序运行结果?出错信息及现象,并分析说明出错原因?

3?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

4?对比各程序的分析结果与实际运行结果的差异,并分析原因?

四?思考题

1?x=++i;与x=i++;两语句在执行时有何区别?

2?字符常量与字符串常量有什么区别?

3?字符型常量或变量能否参与算术?关系及逻辑运算?若能,应如何运行运算? 4?常用的调试方法有哪两种?

实验三顺序结构程序设计

一?实验目的

1.掌握printf()?scanf()?putchar()?getchar()等基本输出?输入函数的格式及其主要用法?

2.熟练掌握顺序结构的程序设计?

二?实验内容

1.基本输出函数的用法?编辑运行下面的程序,并根据执行结果分析程序中各个语句的作用?#include “stdio.h”

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=5.67; e=-6.78;

f=1234.56789; g=0.123456789;

m=50000; n=-60000;

p=32768; q=40000;

printf("a=%d,b=%d\nc1=%c,c2=%c\n",a,b,c1,c2);

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

printf("f=%15.6f,g=%15.10f\n",f,g);

printf("m=%ld,n=%ld\np=%u,q=%u\n",m,n,p,q); }

2.基本输入输出函数的用法?编辑运行下面的程序,并分析各个语句的作用?

#include “stdio.h”

main( )

{

int a,b;

float c,d;

long e,f;

unsigned int u,v;

char c1,c2;

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

scanf(“%f,%f”,c,d);

scanf(“%ld,%ld”,e,f);

scanf(“%o,%o”,u,v);

scanf(“%c,%c”,c1,c2);

printf(“\n”);

printf(“a=%7d,b=%7d\n”,&a,&b);

printf(“c=%10.2f,d=%10.2f\n”,&c,&d);

printf(“e=17ld,f=%17ld\n”,&e,&f);

printf(“u=%o,d=%o\n”,&u,&v);

printf(“c1=%c,d=%c\n”,&c1,&c2);

这个程序有语法错误吗?为什么?

3.顺序结构程序设计?

(1)输入一个小写字母,输出其大写字母及对应的ASCII码值?

(2)输入一个整数,输出其最低位数字及最高位数字?

(3)已知圆柱体横截面圆半径 r,圆柱高h?编写程序,计算圆周长l?圆面积s和圆柱体体积v,并输出计算结果?

(4)输入两个复数,输出其和与差?

三?实验指导

1.基本输出函数的用法?

⑴ 运行所给出的源程序,对照结果分析各语句的作用?

⑵ 将程序中的第二?第三个printf语句修改为如下形式,然后运行程序,察看结果?

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

printf("f=%-15.6f,g=%-15.10f\n",f,g);

⑶ 将上述两个printf语句进一步修改为如下形式,然后运行程序, 察看结果?

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

printf("f=%-15.6f\tg=%-15.10f\n",f,g);

⑷ 将程序的第10-15行修改为如下语句:

a=61;b=62;

c1='a';c2='b';

f=1234.56789;g=0.123456789;

d=f;e=g;

p=a=m=50000;q=b=n=-60000;

运行程序,并分析结果?

⑸ 修改⑴中的程序,不使用赋值语句,而用下面的scanf语句为a?b?c1?c2?d?e输入数据:

scanf("%d%d%c%c%f%f",&a,&b,&c1,&c2,&d,&e);

① 请按照程序中原来的数据,选用正确的数据输入格式,为上述变量提供数据?

② 使用如下数据输入格式,为什么得不到正确的结果?

输入数据:61 62 a b 5.67 -6.78

⑹ 进一步修改⑸中使用的程序,使f和g的值用scanf()函数输入?

⑺ 进一步修改上面的程序,使其他所有变量的值都改用scanf()函数输入?

① 参考程序

② 数据输入格式

Input(a,b,c1,c2,d):61 62ab5.67 -6.78

Input(f,g):1234.567890 0.1234567890

Input(m,n,p,q):50000 -60000 32678 40000

⑻ 修改⑺中的程序,使c1?c2的数据用getchar()函数输入,用putchar()函数输出?

① 可按照如下方法修改程序:

将程序中的“scanf("%d%d%c%c%f%f",&a,&b,&c1,&c2,&d,&e);”语句用以下四个语句替换: scanf("%d%d% ",&a,&b);

c1=getchar();

c2=getchar();

scanf("%f%f",&d,&e);

② 使用与⑺相同的数据输入格式输入数据?

③ 请分析:使用如下格式为a?b?c1?c2输入数据时会出现什么结果?运行程序验证所分析的结论?输入数据格式:

61 62

a

b

2.基本输入输出函数的使用:

(1)调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:

a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=’a’,c2=’b’

分析运行结果?特别注意输入c1,c2的值是什么?为什么?

(2)将输入e和f的语句改为:

scanf(“%d,%d”,&e,&f);

再用上述测试数据测试并分析结果?

(3)将输入u?v的语句改为:

scanf(“%d,%d”,&u,&v);

再用上述测试数据测试并分析结果?

(4)将输出e?f的语句改为:

printf(“e=%17d,f=%17d\n”,e,f);

再用上述测试数据测试并分析结果?

(5)将输出u?v的语句改为:

printf(“u=%u,v=%u\n”,u,v);

printf(“u=%d,v=%d\n”,u,v);

再用上述测试数据测试并分析结果?

(6)scanf(“%c,%c”,&c1,&c2);语句之前加一个语句:getchar( );

(7)请读者自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出?

四?实验要求:

1?充分预习实验内容,写出实验所需程序,分析给出源程序的运行结果?

2?实验中,记录各程序运行结果?出错信息及现象,并分析说明出错原因?

3?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

4?对比各程序的分析结果与实际运行结果的差异,并分析原因?

五?思考题:

1.在“基本输出函数的用法”内容⑶中,e和g都是用“\t”进行格式控制,但为什么没有显示在同一列的位置上?

2.说明输入?输出字符型?整数?长整型?浮点型及双精度浮点型数据时分别应使用的格式字符?

3.简述格式化输出函数printf的格式化字符串中可使用的转义字符及其功能

实验四 选择结构程序设计

一?实验目的:

1.学会使用逻辑表达式描述问题中的条件?

2.掌握if 语句三种形式及其用法?

3.掌握switch 语句的格式及使用?

4.学会设计有实用价值的选择结构程序? 二?实验内容:

1?判断任意一年是否为闰年,输入年份,执行程序后输出是否为闰年? 2?输入四个实数,输出其最大值与最小值? 3?输入三个实数,按从小到大的顺序输出? 4?输入x 值(实数),输出对应的函数值? -x 2+x-1 (x<-10) y= 10 (-10≤x<0)

x+1 (0≤x ≤5) 1+x (5

5?由键盘输入一个字符,判断它是字母?数字还是空白(空格?换行?Tab 键),并输出相应的提示信息? 6?输入某学生的成绩,输出相应的信息:成绩在90~100之间输出“Very good!”;在70~89之间输出“Good!”;在60~69之间输出“Pass!”;60分以下输出“No pass!”?要求:

(1)用if 语句编写程序;(2)用switch 语句编写程序?

7?编写一个能够进行加减法运算的程序,要求:从键盘任意输入两个实数,然后输入一个运算符,当运算符为“+”时对两个数进行加法运算,为“-”时对两个数进行减法运算,其他符号时,只显示输入的符号不进行运算?

8?已知某公司员工的保底薪水为500元,某月所接工程的利润profit(整数)与利润提成的关系如下(单位:元):

profit ≤1000 没有提成 1000

从if 语句?switch 语句中任选一种编程:根据输入的profit 值计算并输出员工的薪水(=保底薪水+提成)?

9?编辑如下程序,并调试正确?

程序功能:求分段函数的值并输出??????-+=1

1

2x x y 1011≤<≤x x

include “stdio.h” main( ) { float x;

scanf(“%d”,&x); if(x ≤10);

if(x ≤1) y=12

+x else

y=sqrt(x-1)

printf(“y=%f \n,y);

else

printf(“undefined value!\n”); }

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查? 3?记录主要的调试过程?错误信息及运行结果? 四?实验总结:

1?if 语句能否完全代替switch 语句进行程序设计?

2?在if 语句的嵌套结构中,如何确定else 与if 的匹配关系?

实验五循环结构程序设计

一?实验目的:

1.熟练掌握while?do-while和for三种循环控制语句的特点及其编程应用?

2.掌握break?continue语句的功能及应用?

3.掌握二重循环结构程序的设计方法?

4.掌握循环结构程序的调试方法?

二?实验内容:

1?输入10个实数,输出其和?平均值及最大值?(分别用while?for语句编程实现)

2?数据统计问题:从键盘输入一批任意数量的正整数,统计其中不大于100的数值个数?

3?编写并调试程序,使用for循环控制语句实现上面的数据统计问题?

4?输入一个正整数,判断并输出其是否为素数?

5?输入一行字符,剔除如下字符后,再按原来的输入顺序输出?要剔除的字符为:K?a?h?5?#?

6?从键盘输入一串字符(按回车结束),统计其中字母?数字及其它字符的个数并输出?

7?输入一个正整数,输出其各位数字之和?

8?输出如下图案:

#

###

#####

#######

#####

###

#

9?输入一个正整数n,求1!+2!+…+n!并输出?

10?输入以下程序,并调试正确:

程序功能:输入一串字符,将其中的大写字母转换成对应的小写字母并输出?如输入:ABCD987EF#$,则输出:abcdef

#include “stdio.h”

main( )

{

char ch;

getchar( );

while(ch≠”\n”);

{ if(“A”≤ch≤”Z”)

ch1=ch-32;

printf(“%c” ch1);

scanf(“%d”,&ch);

}

}

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?四?实验总结:

1?C程序可以用几种方法实现循环结构?

2?while (1) 代表什么意思?

3?用for语句可以代替do while语句吗?

实验六数组(一)

一?实验目的

1.了解数组的特点,掌握一维数组的定义?初始化及其使用方法?

2.掌握二维数组的定义?初始化及其使用方法?

3.掌握用数组解决实际问题的思路及方法?

4.掌握程序的调试方法?

二?实验内容

1.最大值问题?为一维数组输入10个整数,输出其最大值及其在数组中的位置?

2.数据分类问题?向一维数组输入10个整数,并把所有的负数存储在数组的前部,其他数据存储在负

数的后面,然后输出?

3.为一维数组输入一组整数,将其逆序存放并输出?

4?输入10个整数,将其按降序排列并输出(选择法?冒泡法择其一)?

5?以下程序是将十进制数转换为二进制数,二进制数的最低位上的数字放在下标为0的元素中,其他依次类推?请填空,并输出当x=17时的结果?

main( )

{int x,k=0,r;

printf(“input x(10jinzhi):”);

scanf(“%d”,&x);

do

{

r=x% ;

b[k++]=r;

x/= ;

}while(x);

printf(“output b(2jinzhi):”);

for(i=k-1;i>=0;i--)

printf(“%d”, );

}

6?数组中数据查找?有15个数存放在一个数组中,输入一个数,要求找出该数是数组中第几个元素的值?如果该数不在数组中,则输出“无此数”?这 15个数用赋初值的方法在程序中给出?要找的数用scanf函数输入?

7?为一个4行5列的二维数组输入数据,求各行的最小值并输出?

8?为一个4行4列的二维数组输入整数,分别输出值为奇数?偶数的元素之和?

*9?利用二维数组求矩阵的和与积?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?数组中各元素的数据类型是否可以不同?

2?数组元素引用时,其下标从多少开始使用? 3?处理数组中的数据,适合使用哪种结构编程?

4?通过本次实验,你对一维?二维数组的使用有哪些新的认识和收获?还有哪些疑问?

实验七数组(二)

一?实验目的

1.掌握一维?二维数组的特点及编程应用?

2.掌握字符数组的定义?赋值和输入输出的方法及常用的字符串操作函数?

3.掌握字符数组和字符串函数的使用?

4.掌握程序的动态调试方法?

二?实验内容

1.奇偶数问题?设有一维整型数组共有20个元素,且偶数与奇数各占一半,将该数组变换为2×10的二维数组且偶数和奇数各成一行?

2.编辑运行以下程序,记录输出结果?并说明该程序实现的功能是什么?

main()

{int i,j,row,col,m;

int arr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

m=arr[0][0];

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

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

if(arr[i][j]

{ m=arr[i][j]; row=i; col=j; }

printf(“%d,%d,%d\n”,m,row,col);

}

3.使用二维数组设计一个打印“杨辉三角形”的程序?

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

4.字符分类统计问题?输入一个长度小于80的字符串(包含空格),存放到一维数组中,并分别统计其中字母字符?数字字符?其它字符的个数?

5.以下程序的功能是:使一个字符串按逆序存放,请填空,并运行且记录其结果?

main()

{char m,str[30];

int i,j;

gets(str); /* 或scanf(“%s”,str);*/

for(i=0,j=strlen(str)-1;i< ;i++,j--)

{m=str[i];

str[i]= ;

str[j]=m;

}

puts(str); /* 或printf(“%s”,str);*/

}

6.从键盘上输入两个字符串,不用库函数strcat()连接两个字符串,连接后的字符串放到另一个字符数组中,然后输出连接后的字符串?

7.输入一个字符串存放到一维字符数组中,再将其中各字符逆序存放并输出?

8.删除字符串中指定的字符后输出?如输入字符串:abcdefad,删除a字母后输出为:bcdefd?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?二维数组与一维数组有什么关系?

2?二维数组定义时什么情况下可以缺省第1维的长度(即行数可省)?

3?C语言一般用什么符号作为字符串的结束标记?

4?在C语言中字符串通过什么进行处理?

5?通过本次实验,你对字符数组及字符串的使用有哪些新的认识和收获?还有哪些疑问?

实验八函数(一)

一?实验目的

1.掌握自定义函数的一般结构及函数定义?函数声明?函数调用的一般方法?

2.掌握形参?实参?函数原型等重要概念,理解参数传递的过程?

3.掌握数组作为函数参数?函数的嵌套和递归在编程中的应用?

4.掌握程序的动态调试方法?

二?实验内容

1.求三角形面积函数?编写一个求任意三角形面积的函数,并在主函数中调用它,计算任意三角形的面积?

2.输入整数n值,求1!+2!+3!+…+n!?

(1)阶乘求值用函数实现?

(2)阶乘求值用递归函数实现?

3.编写一个在一行中连续输出指定个数字符的函数,并在主函数中调用它输出如下

图案:

4.分别编写求两个整数的最大公约数和最小公倍数的函数,并在主函数中调用它们

(要求结果在主函数中输出)?

5.求素数函数?

(1)编写一个判断素数的函数,当一个数为素数时,函数返回值为1,否则为0?

(2)在主函数中从键盘任意输入10个整数,求所有的素数之和?对素数的判断要求

调用上面的素数函数实现?

6?写一个判定素数的函数,在主函数输入一个整数,输出是否素数的信息?

本程序应当准备以下测试数据:17?34?2?1?0?分别输入数据,运行程序并检查结果是否正确

7?从键盘接受m和n的值,然后计算Cnm.?Cnm=m!/(n!*(m-n)!)?要求设计一函数能求阶乘X!,在主函数中多次调用该函数以达到求Cnm?

8?上机调试下面的程序,记录系统给出的出错信息,指出出错原因,并调试正确?

main()

{

int,y;

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

int sum(a,b)

{

int a,b;

return(a+b);

}

}

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?为什么要在编程时使用函数?有什么好处? 2?函数的定义应注意什么?什么是嵌套定义?嵌套调用?是否可以嵌套定义?是否可以嵌套调用? 3?函数是否可以没有返回值?

4?何为嵌套定义?何为嵌套调用?

5?通过本次实验,你对函数的定义?声明和调用有哪些新的认识和收获?还有哪些疑问?

*

*** ***** ******* ***** *** *

实验九函数(二)

一?实验目的

1.掌握自定义函数的一般结构及定义?声明和调用函数方法?

2.理解掌握数组作函数参数的使用方法?

3.理解掌握变量的作用域和存储类型?

二?实验内容

1.计算|a3|?要求编写函数计算a3,再编写函数调用上述函数计算绝对值,在主函数中输入a值,并输

出结果?

2.编写函数fun1求n!,另一个fun2函数调用fun1并求1!+2!+…+m!?在主函数中输入一个整数,调

用fun2求阶乘之和,并输出结果?

3.分别编写对一维数组中所有元素求平均值?最大值的函数,在主函数中调用它们(用数组名作参数)

并输出结果?

4.设计一个通用的排序函数(能接受不同的排序数据?个数),要求在主函数中输入要排序的数据,输

入数据以-999表示结束,然后调用排序函数执行排序功能,再在主函数中显示排序结果

5.编写一个函数,将字符串中的大写字母转换成对应的小字字母?在主函数中输入一个字符串,并调

用上述函数进行处理,结果在主函数中输出?

6.编写函数求指定字符串的长度,主函数中输入一个字符串,并调用前述函数,输出结果?

7.编写函数将主函数中的字符串逆序存放,结果在主函数中输出?

8.输入10个学生5门课的成绩,用二维数组作参数,分别用函数求:

1)每个学生的平均分

2)每门课程的平均分

9.输入以下程序,并进行调试,分析程序中各变量的作用域和存储类别:

#include “stdio.h”

int A=2;

int B=2;

main()

{

int fact();

int n=2;

int i;

printf(“a(1)=%-5d\t”,A);

printf(“b(1)=%-5d\t”,B);

printf(“n(1)=%d\n”,n);

{

int n=100;

int A=100;

B=100;

printf(“a(2)=%-5d\t”,A);

printf(“b(2)=%-5d\t”,B);

printf(“n(2)=%d\n”,n);

{

n++;

printf(“a(3)=%-5d\t”,A);

printf(“b(3)=%-5d\t”,B);

printf(“n(3)=%d\n”,n);

}

printf(“a(4)=%-5d\t”,A);

printf(“b(4)=%-5d\t”,B);

printf(“n(4)=%d\n”,n);

}

printf(“a(5)=%-5d\t”,A);

printf(“b(5)=%-5d\t”,B);

printf(“n(5)=%d\n”,n);

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

printf(“k(%d)=%-5d\t”,i,fact());

printf(“\n”);

printf(“a(6)=%-5d\t”,A);

printf(“b(6)=%-5d\t”,B);

}

int fact()

{

static k=3;

k=k+1;

A=A+1;

B=B+1;

return b;

}

请分析程序后,写出运行结果?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?数组名作为参数与变量作为参数的区别是什么?

2?通过本次实验,你对数组元素和数组名作函数参数有哪些新的认识和收获?还有哪些疑问?

实验十指针(一)

一?实验目的

1.掌握指针和指针变量的概念?

2.掌握简单指针变量的定义?赋值及使用方法?

3.学会使用数组的指针和指向数组的指针变量?

二?实验内容

1.输入整型变量a?b的值,利用指针交换它们的值,并输出交换后a?b的值?

2.从键盘输入三个整数,要求设三个指针变量p1,p2,p3,使p1指向三个数的最大者,p2指向次大

者,p3指向最小者,然后按由小到大的顺序输出这三个数?

3.用指针法在一维有序数组中插入数据?输入一个含有8个整数的升序数列,存储在一维数组中,要

求在其中插入任意一个整数后数列仍然有序?

4.运用指针操作编程实现:为含10个浮点数的一维数组输入数据,并求其最小值及下标?元素和及平

均值并输出?

5.输入10个整数存放到一维数组中,利用指针将各元素逆序重新存放并输出?

6.用指针操作实现冒泡法排序?输入8个整数,将其升序排序并输出?

7.指出下面程序错误的原因,并调试正确?

main( )

{

int x=10,y=5,*px,*py;

px=py;

px=&x;

py=&y;

printf(“*px=%d,*py=%d,*px,*py);

}

8?下面的程序试图有如下运行结果:

which style you want to :

C apital ( 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);

}

分析出错原因?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?指针变量用来存放什么?

2?*p在定义与使用时的区别是什么?

3?若p为指针变量,则执行P++后p的值如何变化?

4?如何定义指向一维数组的指针变量?如何通过指向一维数组的指针变量访问数组中各元素经?

5?通过本次实验,你对简单指针变量及一维数组指针变量的使用有哪些新的认识和收获?还有哪些疑问?

实验十一指针(二)

一?实验目的

1.掌握指向字符串的指针变量的定义?赋值及编程应用?

2.掌握指针作函数参数时的特点?数据访问方法及编程应用?

3.学会使用指向函数的指针变量?

二?实验内容

1.利用指向字符串的指针变量将从键盘输入的两个字符串连接到一起?(不用strcat( )函数)

2.利用指向字符串的指针变量查找输入的字符串中指定字符的出现次数?

3.将一个3×3的矩阵转置,用一函数实现之?

在主函数中用 scanf函数输入矩阵元素?(内容自定)

将二维数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函中输出已转置的矩阵

4.编写函数,将一维整型数组中的负数变为其绝对值,结果在主函数输出?

5.编写函数把任意十进制正整数转换成二进制数,结果在主函数中输出?

6.编写函数,将指定字符串中的小写字母变成对应大写形式,并在主函数中调用它,结果在主函数中

输出?

7.编写函数实现字符串复制(不用strcpy函数),在主函数中调用它并输出结果?

8.用一个函数实现两个字符串的比较,即自己写一个比较函数(strcmp),函数原型为:int

strcmp(char *p1,char *p2);

设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;若s1<>s2,则返回它们二者第一个不相同字符的ASCII码差值;若s1>s2,则输出正值;若s1

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

9.输入并运行以下程序,请写出程序的功能:

main()

{

int max(int,int);

int (*p)();

int a,b,c;

p=max;

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

c=(*p)(a,b);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

int max(int x,int y)

{

int z;

if (x>y) z=x;

else

z=y;

return z;

}

11.想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的?

swap(int *p1,int *p2)

{

int *p;

p=p1;p1=p2;p2=p;

}

main()

{

int a,b;

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

pt1=&a;pt2=&b;

if(a

printf(“%d,%d\n”,*pt1,*pt2);

}

上机调试此程序?如果不能实现题目要求,指出原因,并修改之?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?指针作函数参数,对形参和实参有什么要求?是如何进行参数传递的?

2?如何定义?使用指向函数的指针变量?

3?通过本次实验,你对指向字符串的指针变量及指针作函数参数的使用有哪些新的认识和收获?还有哪些疑问?

实验十二结构体

一?实验目的

1?掌握结构体类型变量的定义和使用;

2?掌握结构体类型数组?结构体指针的概念和应用;

3?掌握链表的概念,初步学会对链表进行操作;

4?掌握共用体的概念与使用?

二?实验内容

1.定义一个包含学生学号?姓名?性别及三科成绩的结构体变量,从键盘输出具体数据,输出其姓名

及平均成绩

2.学生成绩问题?有10个学生,每个学生的数据包括学号?姓名?3门课的成绩?从键盘输入10个学生

数据,要求输出每门课的总平均成绩及最高分学生的数据(用结构体数组实现)?

3.用指向结构体数据的指针变量编程实现第2题中的问题?

4.输入10个学生的信息(包含学号?姓名?成绩),将其按成绩的升序排序并输出?

5.用函数实现第4题中的排序功能?

6.有五个学生,每个学生的数据包括学号?姓名?3门课的成绩,从键盘输入5个学生数据,要求打印

出3门课总平均成绩,以及最高分的学生的数据(包括学号?姓名?3门课的成绩,平均成绩)?

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

7.输入和运行以下程序

union data

{

int i[2];

float a;

long b;

char c[4];

}

main()

{ union data u;

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

printf(“i[0]=%d, i[1]=%d\na=%f\nb=%ld\nc[0]=%c,c[1]=%c,

c[2]=%c,c[3]=%c”u.i[0],u.i[1],u.a,u.b,u.c[0],

u.c[1], u.c[2], u.c[3]);

}

将上述文件保存到exp12_4.c,进行编译?连接?运行?

输入两个数10000,20000给u.i[0],u.i[1]

分析运行结果?

然后将scanf语句改为

scanf(“%ld”,&u.b);

输入60000给b,分析运行结果?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录主要的调试过程?错误信息及运行结果?

四?实验总结:

1?如何定义结构体变量?类型名如何定义?

2?用链表可以实现动态存储分配,它的“头指针”变量用来放什么?

3?如何建立一个链表?

4?通过本次实验,你对结构体数据类型?变量?数组及指针变量的使用有哪些新的认识和收获?还有哪些疑问?

实验十三位运算

一?实验目的

1.掌握位运算的概念和规则?

2.掌握位运算(&?|?^?~ 等)的使用方法?

3.掌握有关位运算的用法?

二?实验内容

1.编一个程序,将一个整数的高字节和低字节分别输出(用位运算方法)?

2.二进制数的数位翻转?编写程序,使一个二进制整数的低4位(0-3位)翻转,用十六进

制数输入和输出?

3.将一个整数i的各位循环左移4位,设i的值为十六进制数fe13?

4.设计一个函数,当给定一个整数后,能得到该数的补码(应考虑该整数是正数或负数)?

5.取二进制数的指定数位?编写一个函数getbits( ),从一个16位的单元中取指定的连

续数位?函数调用形式为:getbits(value,n1,n2)

value为该16位数的值,n1为欲取出的起始位,n2为欲取出的结束位?

6.循环移位?编写一函数用来实现循环左右移位?函数名为move,调用方法

为:move(value,n)

其中,value为被循环移位的数,n为要循环移位的位数?当n<0时为左移位,n>0时为右移位?如n=3表示要循环右移3位,而n=-5表示要循环左移5位?

三?实验要求:

1?课前充分预习实验内容,准备好实验所需的程序?

2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?

3?记录运行结果及主要的调试过程?错误信息?

四?实验总结:

通过本次实验,你对位运算的规则及使用有哪些新的认识和收获?还有哪些疑问?

JAVA课程设计任务书 - 科学计算器

《高级语言程序设计(2)》课程设计报告 专业:班级:学号:姓名: 完成日期: 指导教师: 1、程序设计说明书 【设计题目】科学计算器 【问题描述】本程序为设计一个科学计算器,用于进行数值计算。可以进行数据的加减乘除,对数等计算。 【软件功能】 1 图形界面:应用AWT和Swing设计工作界面,按下数字时显示数字,按下“=”时显示结果。 2 计算器基本功能:加减乘除四则运算,倒数,开平方等。 3 附加运算功能:三角函数,对数,阶乘,度转化为弧度等。 4 计算器的存储功能:清除中间结果,使用中间结果,存储中间结果及累加中间结果 5 用不同颜色进行分区 【算法思想】 本程序设计一个主类和四个内部类。通过在主类中调用四个类来实现程序的各个功能。 【类的设计】 1主类SmartCalculator类,继承了JFrame类 ○1成员变量 tf是JTextField对象,单行文本框,用来显示数据。 panel1,panel2,panel3,panel4是JPanel对象,用来盛放按钮。Panel1盛放“←”,“CE”,“C”按钮,Panel2盛放功能区按钮,Panel3盛放记忆区按钮,Panel4盛放面板Panel1和Panel2 isResult,flag是布尔型变量 result是double型变量,存储结果 SpecialNumActionListener是SpecialNum类的对象,监听特殊数字按钮 df是DecimalFormat类的对象,控制输出格式 ○2方法 SmartCauculator是构造方法,完成面板的布局并调用init方法 init方法调用addButton方法向面板中增加按钮 addButtion方法统一设置按钮的使用方式,参数包括panel,name,action,color,每次完成向面板添加按钮,设置名字,添加键盘监听器和设置按钮颜色 getResult方法实现四则运算,并输出 main方法,程序入口 2内部类FunctionSigns,继承接口ActionListener,实现接口的actionProform抽象方法,完成开平方,求对数等操作 3内部类ClearArea,继承接口ActionListener,实现接口的actionProform抽象方法,对清除区三个按钮“←”,“CE”,“C”进行监听,实现删除功能。 4内部类SpecialNum,继承接口ActionListener,实现接口的actionProform抽象方法,对π,e,及数字键监听 5 Dot对小数点进行监听 【用户界面】

产学研合作协议书模板

产学研合作 协议书 二O一六年十月 产学研合作协议书 甲方:杭州全维技术股份有限公司 乙方: 为更好地使高校教学科研与生产实际相结合,更好地利用高等学校和企业单位的人才资源、科学研究和生产实践的优势,促进企业单位技术创新、进步,以及高等教育人才培养目标的实现,杭州全维技术股份有限公司(以下简称甲方)与(以下简称乙方)本着互利互惠的原则,经过双方友好协商,决定在人才培养、科学研究、科技创新、技术咨询、人员培训等方面开展全面合作,特达成以下协议: 一.合作原则 本着“真诚合作,资源共享,讲究实效,共同发展”的原则,双方发挥各自优势,通过多形式、多层次的科学技术交流与合作,共同构建产学研联盟的新体系,建立产学研长期合作关系,共同推进企业与高校的全面技术合作,努力实现“校企合作、产学双赢”。 二.合作方式 1.发挥双方在生产和科研中的联合科技优势,双方应积极组织、协调双

方力量组成科研生产联合体,对国家和地方重点工程项目、重大科技项目和高技术产品进行联合投标、联合攻关、联合开发。 2.双方应加强相互的信息沟通和有效合作,乙方在制定中长期科技、产业发展规划时,根据需要优先邀请甲方有关专家参加,并向甲方通报企业的有关信息和存在问题(需要保密的除外);甲方及时向乙方传递有关部门最新信息和参加国内外重大科技交流和学术活动的有关信息,双方定期或不定期召开协调会议,不断提高并改进设计研究水平,并努力解决项目设计中的实际问题。 3.双方在人才培养方面加强合作。乙方高级专家参加甲方学院相关学科专业建设委员会工作,担任兼职教授,共同研究、制定并完善学科专业的建设规划、研究方向、发展目标、教材建设、人才培养方案与课程体系设置等。甲方电气工程专业专任教师可作为研究人员参加乙方科学研究、学术交流、工程设计与管理、培训等工作。 4.双方以学校相关实验研究条件为依托,充分发挥资源优势,联合申报科研课题,共同开展科技咨询,为生产设计和技术研发服务。 5.由双方共同合作研发的科研成果、工艺及产品等皆为双方营业机密所保护,不得泄漏,不得转让第三方。 6.甲方为乙方在信息技术领域工程硕士、研究生课程进修班、专业技能、资质培训等各层次人才培养方面提供优质服务与方便。乙方选派具有丰富实践经验的高级工程技术人员,阶段性地参与学校的本科及研究生的教学工作;到学校开展学术讲座等学术活动,介绍工程设计方面的最新进展情况。 7.双方商定的科技协作项目、实习安排和人才培训,将另行签订专项协

简易计算器设计说明书

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。计算器的出现给我们的生活带来了巨大的便利,计算器在我们的生活中随处可见,也是我们日常生活中不可缺少的工具。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除简单的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用按键作为计算器的键盘的输入。显示采用字符LCD 静态显示。软件方面使用C语言编程,并用PROTUES仿真。 单片微型计算机简称单片机。它是在一块芯片上集成中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口电路等部件,构成一个完整的微型计算机。它的特点是:高性能,高速度,体积小,价格低廉,稳定可靠,应用广泛。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。本文介绍了单片机的产生发展、功能特点、应用开发等内容。 【关键词】简单计算器单片机 LCD 应用发展

背景 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 本设计采用80c51 芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LCD 显示.如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。LCD液晶显示器是Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。 现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。故采用LCD.设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四则运算,并在LCD上显示相应的结果;设计电路采用AT89C51单片机为主要控制电路,显示采用字符LCD静态显示;软件方面使用C 语言编程,并用PROTUES仿真i。

C语言实验指导书

《C语言》实验指导书 2016年10月

实验一C程序得运行环境与运行方法 一、实验目得 1。掌握所用得C语言环境得基本操作方法、 2.掌握编辑、编译、连接与运行C程序。 二、实验内容与要求 1、学习使用Visual C++6.0环境开发C程序。 (1)在磁盘上建立自己得文件夹,用于存放C程序,如“e:\cexam”。 (2)启动Visual C++6。0、执行“开始”-—“所有程序”——“Microsoft Visual Studio 6。0"——“Microsoft Visual Studio 6.0”命令,进入VC++编程环境,如图1 所示。 图1 MicrosoftVisual Studio6、0窗口 (3)新建C 程序文件。 执行“文件”——“新建”命令,单击如图2所示得“文件”选项卡,选中“C++So urceFile”;

图 2 新建文件 在“文件”文本框中输入文件名test1, 则C源程序被命名为test1。cpp,若想指定扩展名为.c,则需在“文件”文本框中输入文件名test1.c;在“目录”下拉列表框选择已经建立得文件夹,如,单击“确定”按钮,就新建了C源程序文件,并显示编辑窗口与信息窗口,如图3所示,然后在编辑窗口中输入程序。 (4)保存程序。 在如图3得界面输入程序代码。由于完全就是Windows 界面,输入及修改可借助鼠标与菜单进行,十分方便。当输入结束后,执行“文件”——“保存”命令,保存源文件。 图3编辑源程序(5)编译程序。信息窗口编辑窗口

执行“组建”--“编译[test1、cpp]”命令,弹出消息框,如图4所示,单击“就是"按钮,开始编译,并在信息窗口中显示编译信息。如果信息窗口中显示“test1.obj-0error(s),0 warning(s)",表示编译正确,没有发现错误与警告,并生成了目标文件test1、obj、 图4产生工作区消息框 如果显示错误信息,说明程序中存在严重得错误,必须改正,双击某行出错信息,程序窗口中会指示对应出错位置,根据信息窗口得提示分别予以纠正;如果显示警告信息,说明这些错误并未影响目标文件得生成,但通常也应该改正。 (6)连接程序。 执行“组建”——“组建[test1.exe]”命令,开始连接,并在信息窗口中显示连接信息、如果信息窗口中出现“test1.exe—0 error(s),0 warning(s)”,表示连接成功, 并生成了可执行文件test1、exe。 (7)运行程序。 执行“组建"——“执行[test1、exe]”命令,自动弹出运行窗口,如图5所示,显示运行结果。其中“Pressany key to continue”提示用户按任意键退出运行窗口,返回到VC++编辑窗口。 图 5 显示运行结果 (8)关闭程序工作区。 当一个程序编译连接后,VC++系统自动产生相应得工作区,以完成程序得运行与调试。若想执行第二个程序时,必须关闭前一个程序得工作区,然后通过新得编译连接,产生第二个程序得工作区。否则得话运行得将一直就是前一个程序。 执行“文件"--“关闭工作区命令",弹出得对话框如图 6所示,单击“就是”按钮,关闭工作区。 图 6 关闭所有文档窗口 (9)打开文件、 如果要再次打开C源文件,可以执行“文件”——“打开”命令,在查找范围中找到

编写一个计算器程序课程设计报告 范例

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院 XX 系 2017年 月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 五.设计 体会: 题目: 用Python 编写简易计算器程序 学 号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); 2)有求倒数、退格和清零功能。 3.创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。图形界面采用继承windowadapter类,采取调用类方法来注册监听! 4.设计要求: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。

2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 二、原理与分析 1.开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 2.设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 3.设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图一计算器运行界面 三、设计过程 1.程序思路: 1)本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p 加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); (事件监听器); 2)事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完

产学研合作协议书-模板WORD版

产学研合作协议书 二O一六年十月

产学研合作协议书 甲方:杭州全维技术股份有限公司 乙方: 为更好地使高校教学科研与生产实际相结合,更好地利用高等学校和企业单位的人才资源、科学研究和生产实践的优势,促进企业单位技术创新、进步,以及高等教育人才培养目标的实现,杭州全维技术股份有限公司(以下简称甲方)与(以下简称乙方)本着互利互惠的原则,经过双方友好协商,决定在人才培养、科学研究、科技创新、技术咨询、人员培训等方面开展全面合作,特达成以下协议: 一.合作原则 本着“真诚合作,资源共享,讲究实效,共同发展”的原则,双方发挥各自优势,通过多形式、多层次的科学技术交流与合作,共同构建产学研联盟的新体系,建立产学研长期合作关系,共同推进企业与高校的全面技术合作,努力实现“校企合作、产学双赢”。 二.合作方式 1.发挥双方在生产和科研中的联合科技优势,双方应积极组织、协调双方力量组成科研生产联合体,对国家和地方重点工程项目、重大科技项目和高技术产品进行联合投标、联合攻关、联合开发。 2.双方应加强相互的信息沟通和有效合作,乙方在制定中长期科技、产业发展规划时,根据需要优先邀请甲方有关专家参加,并向甲方通报企业的有关信息和存在问题(需要保密的除外);甲方及时向乙方传递有关部门最新信息和参加国内外重大科技交流和学术活动的有关信息,双方定期或不定

期召开协调会议,不断提高并改进设计研究水平,并努力解决项目设计中的实际问题。 3.双方在人才培养方面加强合作。乙方高级专家参加甲方学院相关学科专业建设委员会工作,担任兼职教授,共同研究、制定并完善学科专业的建设规划、研究方向、发展目标、教材建设、人才培养方案与课程体系设置等。甲方电气工程专业专任教师可作为研究人员参加乙方科学研究、学术交流、工程设计与管理、培训等工作。 4.双方以学校相关实验研究条件为依托,充分发挥资源优势,联合申报科研课题,共同开展科技咨询,为生产设计和技术研发服务。 5.由双方共同合作研发的科研成果、工艺及产品等皆为双方营业机密所保护,不得泄漏,不得转让第三方。 6.甲方为乙方在信息技术领域工程硕士、研究生课程进修班、专业技能、资质培训等各层次人才培养方面提供优质服务与方便。乙方选派具有丰富实践经验的高级工程技术人员,阶段性地参与学校的本科及研究生的教学工作;到学校开展学术讲座等学术活动,介绍工程设计方面的最新进展情况。 7.双方商定的科技协作项目、实习安排和人才培训,将另行签订专项协议或合同,明确双方的责任、权利和义务,确保各项合作项目能顺利开展。 三、合作期限 合作期限暂定五年,自协议签订之日起开始计算。合作过程中,未尽事宜可根据双方的合作意愿和实际情况,另行协商并签定补充协议。 四、其他 1、合作期间双方共同保守合作项目和企业的技术和商业秘密。

项目一 简易计算器

项目一简易计算器 项目要求: C语言具有功能强大,灵活,可移植性好等特点,可用其开发各类应用系统。本项目要求用C语言完成一个简易计算器的开发。相关要求如下: 1.能够实现两个数的算术运算功能(加、减、乘、除)。即依次输入第一个操作数、运算符、第二个操作数,然后输出运算结果。 例如:输入:2 + 5 输出:2+5=7 2.能实现单运算符表达式运算功能。 例如:输入:13*8 输出:13*8=104 3.开发工具与运行环境。 ●操作系统:windows xp/2000/ME等。 ●开发工具:VC++ 6.0。 4.附加功能。 ●实现各类进制之间的转换,输入/输出格式根据个人理解确定; ●带函数功能; ●良好的操作界面与提示信息。 教学目标: 1.能力目标。

●进一步熟悉自顶向下,逐步细化的程序设计方法; ●掌握结构化程序开发过程。 2.知识目标。 ●函数的定义、说明、调用方法; ●局部变量、全局变量的概念。 3.核心能力目标。 ●成员之间的交流沟通能力; ●成员之间的协调配合意识与能力。 教学方法: 1.直观教学法。将需要完成的简易计算器展示给各位同学,演示各项功能。启发学生思考系统的整体结构与模块划分和各个功能的实现方法,调动学生学习的积极性与主动性。 2.学法。(1)模仿练习;(2)通过网络查找其它计算器的功能及实现方法,小组讨论改善系统功能,力求实现更多的功能。 课时及教学环境: 1.课时:课内8+课外8; 2.教学环境:机房+网络。 项目实施前准备: 复习C语言的基本数据类型,运算符,表达式,基本语句,上网查找与计算器相关的资料,了解软件系统开发的过程。 引导文(函数): 函数是实现模块化设计的基础,C语言中用函数来实现模块功能。C语言函数分为两

《C语言》实验指导书

内江职业技术学院 上机实验指导书 科目:C语言程序设计 系别:电商学院 班级:15软件1班 教师:王刚 2015—2016学年第一学期

《计算机基础》课程实验指导书 目录 实验一C语言概述 (1) 实验二基本数据类型 (3) 实验三输入输出和算法 (6) 实验四选择和循环结构 (10) 实验五循环结构和函数 (13) 实验六模块化设计 (14) 实验七一维数组和字符串 (18) 实验八多维数组和指针 (20) 实验九指针 (22) 实验十指针和结构体 (23) 实验十一链表和共同体 (26) 实验十二文件 (27) 教材和参考书 1、教材: 《谭浩强、张基温,《C/C++程序设计教程》,高等教育出版社。 2、参考书: (1)《(美)H.M.Deitel,P.J.Deitel著,薛万鹏译,《C程序设计教程》,机械工业出版社。 (2)杨路明,《C语言程序设计教程》,北京邮电大学出版社。

实验一C语言概述 一、实验目的 1、了解所用的计算机系统。 2、了解在该系统上如何进行编辑、编译、连接和运行一个C程序。 3、通过运行简单的C程序了解C程序的特点。 二、实验内容 1、熟悉C语言集成环境。 2、利用C语言集成环境进行编辑、编译、连接和运行一个C程序。 3、运行一个自己编写的程序,程序的功能是输出两行文字。 三、实验设备及环境 微机若干台,并安装有C语言软件。 四、实验步骤 1、熟悉所用的系统。了解Windows资源管理器的使用方法:文件的查看、复制、运行等方法,C所在目录,文本文件的建立方法。 2、进入C,并新建一个C源程序文件。 3、熟悉C的集成环境,了解各菜单项有哪些子菜单。 4、输入下面的程序,注意区分大小写。 #include void main() { printf("This is a C program.\n"); } 编译并运行程序。 5、关闭工作区,新建一个程序,然后输入并运行一个需要在运行时输入数据的

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

产学研合作协议书-模板WORD版

产学研合作 协议书 O 一六年十月 产学研合作协议书 甲方:杭州全维技术股份有限公司 乙方: 为更好地使高校教学科研与生产实际相结合,更好地利用高等学校和企业单位的人才资源、科学研究和生产实践的优势,促进企业单位技术创新、进步,以及高等教育人才培养目标的实现,杭州全维技术股份有限公司(以下简称甲方)与_____________________ (以下简称乙方)本着互利互惠的原则,

经 过双方友好协商,决定在人才培养、科学研究、科技创新、技术咨询、人员培训等方面开展全面合作,特达成以下协议: 一.合作原则 本着“真诚合作,资源共享,讲究实效,共同发展”的原则,双方发挥各自优势,通过多形式、多层次的科学技术交流与合作,共同构建产学研联盟的新体系,建立产学研长期合作关系,共同推进企业与高校的全面技术合作,努力实现“校企合作、产学双赢”。 二.合作方式 1. 发挥双方在生产和科研中的联合科技优势,双方应积极组织、协调双方力量组成科研生产联合体,对国家和地方重点工程项目、重大科技项目和高技术产品进行联合投标、联合攻关、联合开发。 2. 双方应加强相互的信息沟通和有效合作,乙方在制定中长期科技、产 业发展规划时,根据需要优先邀请甲方有关专家参加,并向甲方通报企业的有关信息和存在问题(需要保密的除外);甲方及时向乙方传递有关部门最新信息和参加国内外重大科技交流和学术活动的有关信息,双方定期或不定期召开协调会议,不断提高并改进设计研究水平,并努力解决项目设计中的实际问题。 3. 双方在人才培养方面加强合作。乙方高级专家参加甲方学院相关学科专业建设委员会工作,担任兼职教授,共同研究、制定并完善学科专业的建设规划、研究方向、发展目标、教材建设、人才培养方案与课程体系设置等。甲方电气工程专业专任教师可作为研究人员参加乙方科学研究、学术交流、工程设

简单计算器设计

计算机程序训练任务书简单计算器设计 学院:材料科学与工程学院 专业:材料成型及控制工程 班级:07050103 学号:0705010318 姓名:郭炯

目录 一.训练目的 二.设计内容和要求 三.设计思路 四.该程序功能分析 五.系统用到的数据类型及函数六.基本算法 七.程序流程图及屏幕运行截图八.参考文献 九.设计心得 十.源程序代码

计算机程序训练设计报告 一.训练目的: 计算机程序设计训练是学习完《计算机程序设计》课程后进行的一次全面的综合性上机实验。其目的在于为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。 二.设计内容和要求: 用C语言作为工具制作一个简单的windows计算器,根据课程设计1周时间的安排选择适当大小的设计课题,根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明书。最后上机调试通过,并进行验收,交上机报告和程序的原代码。 设计题目设计一个简单计算器 具体内容在功能上功能尽量模拟windows操作系统中的计算器,系统界面 不做强制要求。 三.设计思路 大体框架是用两个while语句来实现相应的计算,用goto 语句来实现多次进入while语句进行相应的计算,第一个while语句用于新的两个数来进行计算,第二个while语句是用上一次储存的计算结果来与另外的数进行相应的运算。 每个while语句嵌套switch语句来实现加减乘除以及三角函数等运算。 每种运算都是调用自定义的函数来实现相应运算的。 四.该程序功能分析: 该程序主要功能是计算简单运算,以及简单的三角函数的计算,优点是一次运算结束后会提醒是否将运算的结果储存下来,如果储存则与另外的数继续进行下一次运算,如果不储存,则会执行新的运算,如果不计算了即可跳出界面。同时计算开方。 五.系统用到的数据类型及其函数: 1.整型变量num 用于判断需要进行什么运算。 整型变量l 用于决定进入哪个while循环语句。 实型变量a,b,x,t a,b,x用于放置需要计算的数,t用于放置每次运算的结果。

C语言实验指导书

《C语言程序设计》实验指导书 每次实验(10分)一共100分,最后折合成50分计入最终成绩。 第一次实验(一星期完成) ●内容一:熟悉编译环境和工具 在VS中键入以下的这段程序 1)关键字变色,自动缩近,智能提醒 2)代码风格和注释 3)编译出错,连接出错。修改错误 4)调试,断点,监控变量,进入函数,跳出函数。监控内存,监控堆栈 在linux中键入以下这段程序 1)熟悉VIM程序,gcc编译程序(开两个终端窗口) 2)熟悉GDB调试程序的基本技巧。(list,backstrac; break, watch,delete; next, continue, run; print,set,help) 其中,help命令是一个非常的参考,如果忘记了某条具体的命令,可以随时去参考help命令来得到相关的细节。 3)介绍《鸟歌的私房菜》这本书 ●内容二:登陆https://www.wendangku.net/doc/203800656.html,网站,在线提交。 1)熟悉基本的提交方法和规则 2)现场演示反作弊程序的效果 ●程序: 输入:两个整数,用空格分隔, 输出:两个整数的和,计算两个整数的和的功能,要求用函数实现,同时如果输入有错误,例如(12 abc)程序能够给出“error input”的提示。 参考输入: 12 33 参考输出: 45 参考输入: 12 abc 参考输出:

error input ●思考和扩展(无标准答案) 如果用户输入12 12abc 如何判断并终止程序,输出“error input”的提示 第二次实验(一星期完成) ●内容一:登陆ACM,演示OJ系统 1)介绍这个网站,有兴趣的同学可以去尝试一下() ●内容二:计算工资/小时程序 1)强制类型转换 2)一共有多少位的算法 3)整形数的溢出,以及针对特定问题,如何解决溢出问题 注意:linux编译下应该加上–lm 开关。 ●程序: 输入:工资数,小时数(整数,空格分隔)。 输出:工资/小时数(精确到小数点后2位),并根据四舍五入取整,然后将取整的数平方后计算一共有几位,后三位分别是什么? 参考输入: 2345 2 ←input (separate by space) 参考输出: 1172.50 ←average salary 1173 ← round off to integer 7 ← number of digit 0 2 5 ← the last three digit (separate by space) 第三次实验(两星期完成) ●内容一:介绍linux 下的grep,并给出相应的实例。重点介绍下面要用到的四个符号。 ●内容二:正则表达式 ^ 代表字符串开始 . 代表任意字符 $ 代表字符串末尾

课程设计任务书

电子技术课程设计任务书 项目1交通灯控制设计 一、设计目的 根据常用的电子技术知识,以及可获得技术书籍与电子文档,初步形成电子设计过程中收集、阅读及应用技术资料的能力;熟悉电子系统设计的一般流程;掌握分析电路原理、工程计算及对主要技术性能进行测试的常见方法;使学生学会使用电路仿真分析软件(Multisim)在计算机上进行电路设计与分析的方法。要求学生所选课题必须在计算机上通过虚拟设计确定设计方案,通过虚拟仿真建立系统,完成设计要求。 二、任务与要求 设计一个十字路口控制交通秩序的交通灯,满足以下条件: 显示顺序为其中一组方向是绿、黄、红;另一方向是红、绿、黄。设臵一组数码管以倒计时的方式显示语序通行或禁止通行时间,其中支通道绿灯的时间是20s,另一个方向上主通道的绿灯亮的时间是30s,黄灯亮的时间都是5s. 选做:当任何一个方向出现特殊情况,按下手动开关,其中一个方向通行,倒计时停止,当特殊情况结束后,按下自动控制开关恢复正常状态。 三、课程设计报告要求 1、任务说明 2、目录 3、正文 (1)总体方案框图设计 (2)单元电路具体设计 (3)计算器件参数值 (4)选择相关元器件 (5)画出总体设计电路图 (6)利用Multisim软件调试,对调试过程中出现的问题给出定性的的分析,最终能实现预计的效果。 4、课程设计的收获及体会 5、参考文献 四、评分标准

五、任务安排 六、所需调试工具 Multisim软件。

项目2用移位寄存器实现彩灯控制 一、设计目的 根据常用的电子技术知识,以及可获得技术书籍与电子文档,初步形成电子设计过程中收集、阅读及应用技术资料的能力;熟悉电子系统设计的一般流程;掌握分析电路原理、工程计算及对主要技术性能进行测试的常见方法;使学生学会使用电路仿真分析软件(Multisim)在计算机上进行电路设计与分析的方法。要求学生所选课题必须在计算机上通过虚拟设计确定设计方案,通过虚拟仿真建立系统,完成设计要求。 二、任务与要求 采用移位寄存器设计一个彩灯循环控制器,要求有两种变化花样。 三、课程设计报告要求 1、任务说明 2、目录 3、正文 (1)总体方案框图设计 (2)单元电路具体设计 (3)计算器件参数值 (4)选择相关元器件 (5)画出总体设计电路图 (6)利用Multisim软件调试,对调试过程中出现的问题给出定性的的分析,最终能实现预计的效果。 4、课程设计的收获及体会 5、参考文献 四、评分标准 五、任务安排

C语言实验指导书

C语言程序设计实验指导书 沈岚岚吕元长编写 桂林电子科技大学信息科技学院 2012.03

前言上机实验的目的和要求 一上机实验的目的 上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。学习程序语言,上机实验的目的如下: 1 加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上机,就能自然、熟练地掌握语法规定。 2 了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的系统时便会触类旁通,很快学会。 3 学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。 4 在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。 二上机实验前的准备工作 1 了解所用的计算机系统的性能和使用方法; 2 复习和掌握与本实验有关的教学内容; 3 准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序; 4 准备好调试和运行时所需的数据。 三上机实验的步骤 1 调出C语言编译系统,进入C语言工作环境; 2 输入自己编制好的程序; 3 检查输入是否有错,及时更正; 4 进行编译和连接; 5 运行程序,分析结果。 四、实验结束,整理实验报告 实验报告应包括以下内容: 1 上机题目; 2 程序清单; 3 运行结果; 4 对结果的分析和本次获得的经验和体会。

硬件课程设计简易计算器设计

中国矿业大学徐海学院 单片机课程设计 姓名:XXX学号: 22090XXX 专业:计算机09-4班 题目:硬件课程设计 专题:简易计算器设计 指导教师: XXX 设计地点:嘉园时间: 2011-12-23 20011年12月

单片机课程设计任务书 专业年级计算机09-4 学号22090XXX 学生姓名XXX 任务下达日期:2011年12 月15日 设计日期:2011 年12 月15 日至2011 年12 月23日 设计题目:硬件课程设计 设计专题题目:简易计算器设计 设计主要内容和要求: 摘要: 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器。 主要能实现 1.加法:能够计算四位以内的数的加法。 2减法:能计算四位数以内的减法。 3乘法:能够计算两位数以内的乘法。 4除法:能够计算四位数的乘法 5有清零功能,能随时对运算结果和数字输入进行清零。 关键词:单片机; 计算器 ; 加减乘除 指导教师签字:

目录 1 系统概述 (1) 1.1硬件知识概述 (1) 1.1.1 单片机 (1) 1.1.2 C语言 (1) 1.1.3 ISP (1) 1.2设计基本思想 (1) 2硬件电路设计 (2) 2.1 单片机最小系统 (2) 2.2键盘接口电路 (2) 2.3数码管显示电路 (3) 3 软件设计 (4) 3.1 复位电路 (4) 4.系统调试 (5) 4.1 软件流程图 (5) 4.1.1系统软件系统流程图 (5) 5.结束语 (6) 参考文献 (7) 附录 (8)

1 系统概述 1.1硬件知识概述 1.1.1 单片机 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 1.1.2 C语言 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。 1.1.3 ISP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP 方式擦除或再编程。本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机中进行调试 1.2设计基本思想 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器,用四位一体数码管显示计算数值及结果。要求用Protel 画出系统的电路原理图,绘出程序流程图,并给出程序清单。 主要能实现 1.加法:能够计算四位以内的数的加法。 2减法:能计算四位数以内的减法。 3乘法:能够计算两位数以内的乘法。 4除法:能够计算四位数的乘法 5有清零功能,能随时对运算结果和数字输入进行清零。

简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

C语言实验指导书

实验1 C语言初步与编程环境介绍(2学时) 1.目的要求 1)熟悉C语言基本结构, 2)熟悉VC控制台应用程序设计的使用方法。 2.实验内容 (1)创建项目,分别将教材P13和P14程序输入并编译。 (2)下列程序能正确运行吗?如果能,写出运行结果;如果不能,指出错误原因并改正。 Main() { printf("hello\n"); } 附:VC 6.0 环境的使用方法介绍 Microsoft Visual C++ (简称VC)是微软公司生产的基于其Windows系统的软件开发工具。它具有使用灵活,并与32位Windows内核(使用于Windows 95/98/NT/2000)高度兼容的特点,从而被Windows程序员们广泛使用。同时,VC同样可以加工处理C语言程序,与标准的ANSI C语言兼容。VC提供了一种控制台操作方式,本实验课程主要在控制台方式下进行设计运行。 一、什么是控制台程序? Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互时通过一个标准的文本窗口,通过标准的输入输出流(I/O Streams)进行。 一个最简单的控制台程序如下: #include // 包含使用标准输入输出库的头文件声明 main() { printf(”Hello World!”); //输出一个字符串 } 二、如何使用MSVC编写控制台程序?

控制台程序按照下面几个步骤进行。 1、打开VC集成开发环境。 双击桌面图标“Microsoft Visual C++ 6.0”,或者从系统菜单“开始”/“程序”/“Microsoft Visual Studio 6.0”/“Microsoft Visual C++ 6.0”(如图1),打开VC 开发环境(如图2)。 图 1 从开始菜单中打开VC开发环境 图 2 VC开发环境界面

程序设计课程设计计算器设计

枣庄学院 信息科学与工程学院课程设计任务书题目:迷你计算器的设计与实现 学号:200912210140 姓名:王晓杰 专业:计算机科学与技术 课程:程序设计方法学 指导教师:刘梦琳职称讲师 完成时间:20 11 年6月----20 11 年7 月 枣庄学院信息科学与工程学院制 2011年6 月20日

课程设计任务书及成绩评定 课程设计的任务和具体要求 1、课程设计教学基本内容 高级语言课程设计不仅是对程序设计能力的综合锻炼,更是对团队合作、软件开发与项目管理过程的训练。因此,课程设计根据题目的难度由小组合作完成,每个小组1-4人。整个课程设计分为以下几个阶段进行:选题与开题、系统设计、系统编码实现、系统测试、撰写课程设计报告、系统评价与验收。 2、课程设计教学的要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。 指导教师签字:日期: 指导教师评语 成绩:指导教师签字:日期:

课程设计所需软件、硬件等 系统:Windows XP VisualBasic 6.0 语言:C/C++ java 课程设计进度计划 起止日期工作内容备注 自11年6月到11年7 月 收集资料 程序设计 撰写论文 经过该实践环节, 培养学生的探索精神和 新能力 参考文献、资料索引 序号文献、资料名称编著者出版单位 [1] 《VA大学实用教程实验指导》耿祥义子工业出版社 [2] 《程峰等译,JAVA2核心技术》邓欧鑫机械工业出版社 [3] 《JAVA语言入门》王克宏清华大学出版社 [4] 《JAVA2核心技术》朱志等编著机械工业出版 [5] 《JAVA 1.1使用大全》旭日工作室编著工业出版社 [6] 《JAVA语言Applet编程技术》王克宏清华大学出版社

相关文档