C语言设计课程实训报告

时间:2019-05-12 04:29:16下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言设计课程实训报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言设计课程实训报告》。

第一篇:C语言设计课程实训报告

昆明理工大学城市学院

课程设计报告

课 程 名 称: 课程设计题目: 姓

名:

系:

业: 年

级: 学

号: 指 导 教 师:

C语言设计课程设计

万年历

信息工程系

计算机科学与技术

2012

2013 年月 12 日

任 务 书

实训的目标

1.进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。

2.针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

3.掌握C语言的编程技巧和上机调试程序的方法。4.掌握程序设计中的常用算法。

任务名称:万年历

项目功能:

1、能够显示当前月的日历以及标志出当前日期。

2、可以翻页、翻年。

3、可以输入年月日查看输入的年月的日历。

4、拥有记事本的功能。

教师签名:

目录

一、实训要求:................................................................................................................4 1.掌握时间函数的运用。................................................................................................4 2.掌握在WinTC下的动画制作。...................................................................................4 3.掌握bioskey和随机函数的运用。.............................................................................4 4.学会边界的判断。........................................................................................................4 5.掌握链表和文件。........................................................................................................4 6.综合所学内容编写一个程序。....................................................................................4

二、实训题目:.......................................................................................................................4 1.①给出时间计算与几天的差值;②给出天数计算日期;③给出两个日期计算差值。4

2.①让一个圆在屏幕上动起来;②制作一个太阳、地球、月亮的动画。................4 3.①区域内有障碍物使方块不能穿过;②小球在区域内运动,碰到边界后随机改变方向继续运动。...................................................................................................................4 4.①创建一个结构体;②创建链表并输出;③删除已有链表中的一个节点;④在已有链表中增加一个节点。...................................................................................................4 5.万年历............................................................................................................................4

三、实训过程:.......................................................................................................................4 1.时间函数:....................................................................................................................4 思考过程:.......................................................................................................................4 2.动画制作:....................................................................................................................4 思考过程:.......................................................................................................................4 障碍物(边界判断)...........................................................................................................4 思考过程...........................................................................................................................4 链表及文件:.......................................................................................................................4 思考过程...........................................................................................................................4 1.课程设计:万年历(带记事本功能)........................................................................5 ① 思考过程.....................................................................................................................5 ②源代码:.......................................................................................................................5 ③ 运行结果...................................................................................................................10

四、实训心得:.....................................................................................................................11

一、实训要求:

1.掌握时间函数的运用。

2.掌握在WinTC下的动画制作。3.掌握bioskey和随机函数的运用。4.学会边界的判断。5.掌握链表和文件。

6.综合所学内容编写一个程序。

二、实训题目:

1.①给出时间计算与几天的差值;②给出天数计算日期;③给出两个日期计算差值。2.①让一个圆在屏幕上动起来;②制作一个太阳、地球、月亮的动画。

3.①区域内有障碍物使方块不能穿过;②小球在区域内运动,碰到边界后随机改变方向继续运动。

4.①创建一个结构体;②创建链表并输出;③删除已有链表中的一个节点;④在已有链表中增加一个节点。5.万年历

三、实训过程:

1.时间函数:

a)思考过程: 第一小题:先把系统当前时间用time函数转换成秒,再把输入的天数用24乘3600秒转换成秒,再与系统当前的秒数相加减,最后用ctime函数以字符串输出。第二小题:调用localtime取得系统当前年月日,然后把当前年月日提取出来用自己输入的年月日进行替换,用mktime把该年月日转换成秒,然后再把系统当前时间转换成秒,两个秒数进行相加减,把加减后的结果除以(24*3600)就得到相差的天数。第三小题和第二小题同理,输入两个日期、转换成秒以后相加减,最后除以(24*3600),就得到了两个日子相差的天数。

2.动画制作:

思考过程:做个循环,先用白色画一个圆,然后再用背景色画一个圆把当前圆覆盖,然后改变圆心,然后在画圆再覆盖~最后循环完之后,再用白色在用位置画个圆,因为不这样干的话,屏幕上就没有最好运行的位置了…第二小题同理~ 障碍物(边界判断);

① 思考过程:第一小题:判断出上下左右移动的时候能运动的范围(即控制外边界),然后再把范围内的某些不能通过的点的范围找出来,把他们分别排除在外,其他的坐标点就是可以任意移动的了,用bioskey计算按下的键的键值,然后判断可以移动之后,就在当前位置用背景色画一个方框,然后在移动之后的位置用白色画方框和障碍物等。第二小题划定一个匡,然后在匡的范围再把小球的半径减去,就是最后小球能运动的范围了…然后我设置的是让小球逆时针转动,然后用随机函数(系统时间做种子)来控制小球偏移的位置(或者说角度)。

链表及文件: ① 思考过程:第一个问题需要做的是结构体的认识并运,定义一个结构体,然后输入内容,然后再输出之前输入的内容。第二个问题则是创建链表并输出,将一个节点分成了两份,一边是指针域,一边是数据域,而指针域,指针域是下一节点的地址,我把头结点不存储数据,以方便之后两题的操作;第三个问题是删除链表,首先定义一个空的字符串,P,P1,P2,把头指针赋值给P,随后让用户输入要删去数据的名字,储存在字符串中,利用strcmp函数进行查找,随后如果第一个有数据的节点就符合要求,就把第二个节点的地址赋值给头节点的指针域后跳出循环,如果不是第一个节点符合要求就执行循环,让P赋值给P2,再把p->next赋值给P,这时P就到了下一个节点,再把p->next赋值给P1,也就是让P1得到第三个节点的首地址,P指向第二个节点,P2指向第一个节点,再进行循环,还是没找到就把P,P1,P2同时向后移动一个节点,如果找到了,就把P2的值赋给p->next,再把p->next的值赋给P,这时P就回到了上一个节点,再把p->next直接指向P1,就把中间的那个节点跳过,完成了删除功能;第四个问题则是增加节点,同样定义一个整型数据(即学号),P,P1,P2,P3,让用户键入想要添加的位置,之后让头指针赋值给P,p->next就赋值给P1,也就是让p1指向下一个节点,随后执行循环,让用户输入想学号和每个节点内的学号比较,如果找到了,就创建一个新的链表,并让P3指向它,让用户输入添加的信息,并且把p->next赋值给P2和P,这是P就到了下一个节点,再把p->next赋值给P1,也就是让P1指向第二个,P和P2都指向第一个,返回循环,如果符合要求就让p3->next指向P1,p2->next指向P3,这样,新的节点就进入了链表中,满足要求,最后在主函数中先输入数据,然后执行一个死循环,让用户选择功能,如果选择1就删除一个节点,选择2就增加一个节点,选择0就跳出循环结束程序。1.课程设计:万年历(带记事本功能)

① 思考过程:用localtime取得当前的系统时间,并且提取出年月日,然后把公元元年到今年一月一日前的天数计算出来,把这个天数除7取余为a,然后就获得了今年元旦前的一天是星期几。然后循环、从一月循环到当前月的上一月的最后一天,在这个循环中,循环一次a+1;当a=7时a置零,这个是用来计算当前月的上一月的最后一天是星期几,然后从新在次循环外另开一个循环来输出当前月的日历,并标记出今天用()标记,然后用bioskey读取用户按下的键值,并实现相应的翻页、标记特殊日子、记事本、从新输入年份等功能…

②源代码:

#include #include #include void f();

/*计算公元元年到某年某月的时间*/ void f1(long int t,long int n,int y,int r);

/*按日历模式输出要得到的那个月的日历*/ void w();

/*当前月的日历*/ void s();

/*输入某个年份和月份*/ void m(long int n,int y,int r);

/*记事本功能的函数*/

struct jishiben

/*记事本的结构体定义*/ {

long int a;

char name[100];};

void w()

/*输出当前月的日历*/ {

int y,r,a,b,c;

/*分别定义月份日期以及记录键值记录日期以及某月最后一天*/

long int n;

/*定义年份的变量*/

time_t timep;

struct tm *p;

time(&timep);

p=localtime(&timep);/*取得当地时间*/

printf(“%d--%d--%d n”,(1900+p->tm_year),(1+p->tm_mon), p->tm_mday);/*输出当前的年月日*/

n=(1900+p->tm_year);

/*获得当前年份*/

y=(1+p->tm_mon);

/*获得当前月份*/

r=p->tm_mday;

/*获得当前的是几号*/

for(;;)

{

printf(“jin tian shi %d--%d--%d n”,(1900+p->tm_year),(1+p->tm_mon), p->tm_mday);

/*输出当前年月日*/

f(n,y,r);

/*调用函数f获得某年某月的日历*/

printf(“an fang xiang jian ke tiao jie nian huo yuen”);

printf(“ru xu shu ru nian fen qing an hui ge jian n”);

printf(“ruo xu shi yong ji shi ben qing an hui chen”);

if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)c=31;

if(y==4||y==6||y==9||y==11)c=30;

if(y==2&&(((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0))))c=29;

if(y==2&&((n%4!=0)||((n%100==0)&&(n%400!=0))))c=28;

/*判断月份及最后一天*/

a=bioskey(0);

/*取得按下的键值*/

if(a==18432)n=n-1;

/*按方向键向上则年份减一*/

if(a==20480)n=n+1;

/*按方向键向下则年份加一*/

if(a==19200){y=y-1;if(y==0){y=12;n=n-1;}}

/*按方向键向左则月份减一*/

if(a==19712){y=y+1;if(y==13){y=1;n=n+1;}}

/*按方向键向右则月份加一*/

if(a==18488){b=r;r=r-7;if(r<1)r=b;}

/*按小键盘8则上一周*/

if(a==19509){b=r;r=r+7;if(r>c)r=b;}

/*按小键盘5则下一周*/

if(a==19252){b=r;r=r-1;if(r<1)r=b;}

/*按小键盘4则上一日*/

if(a==19766){b=r;r=r+1;if(r>c)r=b;}

/*按小键盘则下一日*/

if(a==7181)m(n,y,r);

/*调用m函数 进行记事本功能*/

if(a==3592)s();

/*按回格键调用函数s 出入年份和月份*/

if(a==283)exit(0);

/*按esc键 直接退出程序*/

system(“CLS”);

} } void f(long n,int y,int r)

/*计算公元元年一月一号到某年的天数n y r为年月日*/ { long int i,t;

/*定义 i为循环变量

t为天*/ t=0;for(i=1;i

if(((i%4==0)&&(i%100!=0))||((i%100==0)&&(i%400==0)))/*判断闰年*/

t=t+366;

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

/*判断平年*/

t=t+365;

if(t%7==0)

/*为防止数据过大 所以当t除7的余数是0的时候,让t=0;*/

t=0;} f1(t,n,y,r);

/*调用函数f输出某月的日历*/ }

void f1(long int t,long int n,int y,int r)

/*按日历模式输出某月的日历n y r为年月日*/ { int i,j,k,a;

/*a为记录星期的*/ a=t%7;for(i=1;i

/*循环到某月的前一个月*/

{

for(j=1;;j++)

{

a=a+1;

if(a==7)a=0;

if((i==1||i==3||i==5||i==7||i==8||i==10||i==12)&&j==31)break;

if((i==4||i==6||i==9||i==11)&&j==30)break;

if(i==2&&(((((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0)))&&j==29)||(((n%4!=0)||((n%100==0)&&(n%400!=0)))&&j==28)))break;

}

}

printf(“%ld nian %d yue ri lin”,n,y);printf(“ 1 n”);printf(“MON TUE WED THU FRI SAT SUNn”);for(k=0;k

”);for(j=1;;j++)

/*按日历模式输出某月*/ {

if(j==r)printf(“(%2d)”,j);

/*标记出当前的日子以及特殊的日期*/

else printf(“ %2d ”,j);

a=a+1;

if(a==7){a=0;printf(“n”);}

/*当循环一个星期以后,输出一个换行符*/

if((y==1||y==3||y==5||y==7||y==8||y==10||y==12)&&j==31)break;

if((y==4||y==6||y==9||y==11)&&j==30)break;

if(y==2&&(((((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0)))&&j==29)||(((n%4!=0)||((n%100==0)&&(n%400!=0)))&&j==28)))break;/*判断这个月的最后一天时跳出循环*/ } printf(“n”);}

void s()

/*输入年月的函数*/ { long int n;int y,r,a;for(;;){

printf(“qing shu ru nian he yuen”);

scanf(“%ld%d”,&n,&y);

if(y<12&&y>0)break;

/*判断输入的月份是否正确*/

else printf(“yue fen shu ru cuo wun”);} for(;;){ r=0;

/*这里不需要标记处某天,所以令r=0*/ f(n,y,r);

/*调用函数f来输出需要的某月的日历*/ printf(“an fang xiang jian ke tiao jie nian huo yuen”);printf(“ru xu shu ru nian fen qing an hui ge jian n”);printf(“an r jian fan hui dang qian yuen”);a=bioskey(0);if(a==18432)n=n-1;

/*按方向键上键 则年份减一*/ if(a==20480)n=n+1;

/*按方向键下键 则年份加一*/ if(a==19200){y=y-1;if(y==0){y=12;n=n-1;}} /*按方向键左键月份减一*/ if(a==19712){y=y+1;if(y==13){y=1;n=n+1;}} /*按方向键右键 月份加一*/ if(a==283)exit(0);

/*按esc退出程序*/ system(“CLS”);

/*清屏*/ if(a==4978)w();

/*按小写的r 则调用函数w显示当前月的日历*/ if(a==3592)s();

/*按回格键 调用它自己 从新输入一个年月*/ } } void m(long int n,int y,int r){

long int c;

/*c是用来计算结构体长度的*/

long int s=r+100*y+10000*n;

/*转换年月日 例如2013-7-10 就转换成20130710*/

struct jishiben kefu;

/*定义结构体*/

FILE *fp;

/*定义文件指针*/

c=sizeof(struct jishiben);/*计算结构体需要的长度*/

system(“CLS”);

/*清屏*/

if((fp=fopen(“qw2.txt”,“a+”))==NULL)

/*判断这个文件是否存在*/

{printf(“da kai shi bai qing xian chuang jian gai wen jiann”);exit(-1);}

else

{

for(;!feof(fp);){fread(&kefu,sizeof(kefu),1,fp);if(kefu.a==s)break;} /*筛选数据*/

if(kefu.a==s)

{

printf(“ri qi %ld---%s n”,kefu.a,kefu.name);}

/*若得到了需要的数据 则显示出来*/

else

/*否则录入数据*/

{

/*录入前先把文件关闭掉

然后再从新以追加方式打开*/

fclose(fp);

fp=fopen(“qw2.txt”,“a”);

fseek(fp,-c,2);

printf(“qing shu ru xing xi n”);

kefu.a=s;

/*令长整型变量等于s 方便筛选*/

printf(“qing shu ru nei rongn”);

printf(“%ldn”,kefu.a);

gets(kefu.name);

/*输入字符*/

fwrite(&kefu,c,1,fp);

/*把数据写入*/

}

getch();

fclose(fp);

/*关闭文件*/

}

w();

/*返回w函数再进行相应的操作*/ }

int main(){ w();

/*调用函数w来开始第一次运行*/ getch();} ③ 运行结果

按回车实现记事本功能:

按回车返回记事本:

在特殊日子下按回车,查询是否有要做的事情:

四、实训心得:

通过为期三个星期是实训,让我收获很多,比之前在课堂上的对c语言的理解更加的深刻了。在第一周学习了时间函数的使用和用c语言来画动画;第二周学习了怎么创建和使用链表、并且学习了文件的操作,虽然在文件操作方面我学习的还是不是很熟练,但是还是能够自己写个记事本了~最后一周,我们自己写了自己的课程设计,在课程设计的过程中,不断加强自己的程序的功能,这对我们来说虽然有些难度,但是经过自己的努力,还是实现了一些曾经自己都不敢接触的东西。这次的实训,让的对c语言有了更加深刻的理解、增加的对c语言的兴趣,并且比之前更加的能够熟练的使用c语言了;我相信在以后对c的更深入的学习和c++、java的学习中,我也能够通过实训加强自己的~

第二篇:C语言课程实训总结

计算机专业实践教学总结

为了进一步增强实践教学效果,提高学生计算机编程能力,更好的理论联系实际,根据我院计算机专业专科实践性教学环节中的实践部分的要求,计算机教研室组织2011级计算机专业学生于2012年7月5日至7月12日进行了C语言课程设计实训,对2010级计算机专业进行了网页设计课程实训,须取得了较好的效果。现将本次实训总结如下:

一、课程设计实训的教学安排

1.实习内容安排

指导2010级学生分组开放一个关于书城的网站,2011级学生用C语言开发一个应用系统,实训以集中授课形式,首先由教师提供实训题目,指导学生,期间由指导教师管理、督促、指导,按照要求及实训的规定完成实训任务。

根据学生的实际情况,进行分组选题,五人一组。C语言的主要的课程设计题目如下(学生也可自主选题):

1、图书管理系统

2、学生信息管理系统

3、学生成绩管理系统

4、学生通讯录管理系统

5、职工信息管理系统

6、学生试卷分数统计

课程设计采用学生自主设计和指导老师辅导相结合的方式。

各组在中加学院机房完成编程题目,写出实验报告,程序要调试通过,最后指导教师根据所编程序以及实验报告的优劣给予评分。

2.教师安排及备课安排

通过实训,使学生了解网站开发工具Asp和编程语言C语言的基本语法知识和编程要点,通过这次实训可以进一步加强对计算机语言理论知识的消化吸收,通过编程将课本知识融会贯通。

在实训中,请了计算机企业的王皓然经理讲解了一些C语言在企业中的应用案例和C语言的编程技巧等内容。在课程设计过程中,由高琴和杨焕海老师对学生设计过程中提出的问题进行解答指导,并督促学生按时完成程序设计和实验报告的书写。

二、课程设计实训的实施

1.备课过程

本着对学生负责的态度,指导教师做了大量的前期准备工作。首先指导教师根据学生学习情况和学生的特点,精心选择实训内容,尽量选择应用性较强,对学生知识点考查将全面的系统让学生去实现。在将实训题目发给学生之前先自己分析实训题目的设计流程和编程思路,更好的为学生的课程设计题目提供合理的建议。

2.教学过程

在指导学生实训时,首先介绍所提供设计题目的目的及要求,使学生对自己要开发的系统有一个总体的、明确的认识;然后要求学生分组并确定每组开发的系统;指导学生对所选系统进行分析,设计流程图,并合理划分各个模块;指导小组成员进行各个模块设计;设计过程中对学生的系统随时检查,尽早发现程序的错误并指导学生改正;程序设计完成后,对学生最终的系统进行调试验收,运行不能通过的程序指导学生进行调试修改;最后指导学生完成实训报告。

三、课程设计实训的效果

本次实训达到了实践教学的预期目的,学生普遍感到应用计算机语言的编程能力有很大的提高,同时也激发了大家对计算机语言的学习兴趣;大多数学生认为通过具体的程序设计能学以致用,将理论专业知识紧密联系实际,这样的实训非常有必要,取得了非常好的效果。

四、课程实训教学存在的问题

在实训教学指导中,出现的问题也很多,基本上是随时发现问题随时加以解决。通过教师和学生两方面的反馈意见来看,较为突出的问题是:

1.理论教学课时少,讲解内容不够全面

有学生反映,实训中用到的部分内容在课程理论教学中没有涉及到,尤其是C语言由于课时较少,而内容较多,很多内容在课堂教学中没能讲到。C语言是计算机专业的基础课程,对学生计算机语言的学习是一个重要基础。计算机学院将C语言课程放到两个学期来讲,课时较多,将C语言的知识点全面覆盖,对以后学生学习“数据结构”、“数据库原理”等计算机核心课程有很大帮助。建议加大C语言的课时。

2.实训课程内容应提前提供给学生

大部分学生建议将课程设计内容在课程教学期间提供给他们,他们可以提前

准备。在实训的期间,完成一个大系统的设计,从需求分析、总体设计、模块设计、详细设计,以及代码的逐行调试,时间比较仓促,学生实训完成的质量不高,采纳学生的建议,以后教师在讲课过程中题目提供给学生,让他们提供准备,高质量完成实训任务。

总之,这次课程实训教学工作取得了不错的效果,让学生巩固了已学知识,提高了计算机编程能力,还进一步激发了他们学习热情,同时也提升了学生对专业的热爱。学生们在程序设计中出现的种种错误、问题,也让他们认识到实际工作与理论学习之间的距离;踏踏实实做程序,编程能力才能真正得到提高,才能学好自己的专业课程。

第三篇:Java 课程实训报告

《JAVA

学 院: 组 长: 组其他成员: 专 业: 年 级: 指 导 教师:

语言编程》实训报告

目录

第一章

实训目的和要求..................................................................................................................................1 1.1 实训目的.............................................................................................................错误!未定义书签。1.2 实训要求.............................................................................................................错误!未定义书签。第二章 课程实训选题......................................................................................................................................2 第三章

需求分析............................................................................................................错误!未定义书签。

3.1 系统设计思想...................................................................................................错误!未定义书签。3.2 系统功能概述...................................................................................................错误!未定义书签。3.3 业务流和数据流...............................................................................................错误!未定义书签。第四章: 系统数据模型设计.............................................................................................错误!未定义书签。

4.1主界面模块..........................................................................................................错误!未定义书签。4.2控制模块..............................................................................................................错误!未定义书签。4.3 功能模块设计.....................................................................................................错误!未定义书签。4.3.1 系统功能设计..................................................................................................错误!未定义书签。4.4 系统开发与运行环境.........................................................................................错误!未定义书签。第五章

系统实现............................................................................................................错误!未定义书签。

各模块的具体实现....................................................................................................错误!未定义书签。第六章 结 论............................................................................................................错误!未定义书签。参考文献………………………………………………………………………………………………..………8

第一章

实训目的和要求

第二章

课程实训选题

第四篇:电子设计课程实训报告(本站推荐)

目录 设计任务与要求................................................................2 3 设计方案与论证................................................................2 3.1设计方案.......................................................................2 3.2 设计论证......................................................................3 4 设计原理及功能说明.........................................................3 4.1 NE555的使用................................................................3 4.2 CD4017的工作原理......................................................4 5 单元电路的设计................................................................5 5.1 电源装置......................................................................5 7 总结与体会...........................................................................6

一、产品介绍........................................................................8

二、课程设计要求................................................................8

三、课程设计原理................................................................8

四、焊接步骤及注意事项.....................................................9 注意事项:..........................................................................10 附录三 制作实物图............................................................11

设计目的

本次设计本着锻炼学生的动手能力和思考能力的目的,把所学知识与实际相结合。学生通过理论设计和实际制作解决相应的实际问题,巩固和运用在《数字电子技术》一书中所学的理论知识和实验技能,掌握模拟电子系统的一般设计方法,提高设计能力和实际动手能力,为以后从事电子产品打下良好的基础。

提高学生的就业竞争力,激发我校大学生事实就是,刻苦钻研,发扬团队合作精神,培养学生的创新思维和动手实践能力。加强学生对专业前沿技术的学习和能力的培养。例如,焊接技术,自我解决问题的能力。

同时在设计以及实践的过程中不仅可以充分运用所学知识于实际中,还可锻炼学生的思维能力和知识拓展完成力,调动学生学习电子信息技术的积极性。设计任务与要求

所设计的电路,并且能够顺利实现所要达到的目的。充分运用所学知识,焊接技术娴熟,排版合理。

1,打印《模拟电子技术》课程设计说明书一份,给出课程的设计和制作调试过程; 2,根据技术指标的要求画出设计电路图,画出印制电路版图; 3,设计时间:一周;

4,写出模电课程设计报告电子稿一份,在规定时间内上交给老师,并达到老师的要求; 5,人员分组为三、四人一组,在一个班级内不能选用同一课题设计; 6,制作PCB版。设计方案与论证 3.1设计方案

本电路由555组成的多谐振荡器和CD4017十进制计数器/脉冲分配器组成。10颗发光二极管模拟幸运物,当按下启动键1秒以上,发光二极管高速循环点亮,几秒钟后旋转速度越来越慢并最终随机停止于某

颗灯上。可以将每颗灯旁边标上幸运物品作为摇奖器。47μF电解电容的数值决定延迟时间,1μF的电解电容数值决定循环速度。电源供电电压为直流5V,也可以采用3节1.5V电池供电。

3.2 设计论证

若当按下开关1秒以上,发光二极管高速循环点亮,几秒钟后旋转速度越来越慢并最终停于某颗灯上。重复试验,停留的位置随机。则设计成功,否则,设计失败。设计原理及功能说明 4.1 NE555的使用

NE555(Timer IC)为8脚时基集成电路,大约在1971年由Corporation发布,在当时是唯一非常快速且商业化的Timer IC,在往后的30年中非常普遍被使用,且延伸出许多的应用电路,后来基于CMOS技

术版本的Timer IC如MOTOROLA的MC1455已被大量的使用,但原规格的NE555依然正常的在市场上供应,尽管新版IC在功能上有部份的改善,但其脚位劲能并没变化,所以到目前都可直接的代用

Pin 1(接地)-地线(或共同接地),通常被连接到电路共同接地。

Pin 2(触发点)-这个脚位是触发NE555使其启动它的时间周期。触发信号上缘电压须大于2/3 VCC,下缘须低于1/3 VCC。

Pin 3(输出)-当时间周期开始555的输出输出脚位,移至比电源电压少1.7伏的高电位。周期的结束输出回到O伏左右的低电位。于高电位时的最大输出电流大约200 mA。Pin 4(重置)-一个低逻辑电位送至这个脚位时会重置定时器和使输出回到一个低电位。它通常被接到正电源或忽略不用。

Pin 5(控制)-这个接脚准许由外部电压改变触发和闸限电压。当计时器经营在稳定或振荡的运作方式下,这输入能用来改变或调整输出频率。

Pin 6(重置锁定)-Pin 6重置锁定并使输出呈低态。当这个接脚的电压从1/3 VCC电压以下移至2/3 VCC以上时启动这个动作。

Pin 7(放电)-这个接脚和主要的输出接脚有相同的电流输出能力,当输出为ON时为LOW,对地为低阻抗,当输出为OFF时为HIGH,对地为高阻抗。

Pin 8(V +)-这是555个计时器IC的正电源电压端。供应电压的范围是+4.5伏特(最小值)至+16伏特(最大值)。

图4—1 NE555内部结构图

4.2 CD4017的工作原理

十进制计数/分频器CD4017,其内部由计数器及译码器两部分组成,由译码输出实现对脉冲信号的分配,整个输出时序就是O0、O1、O2、…、O9依次出现与时钟同步的高电平,宽度等于时钟周期。

CD4017有10个输出端(O0~O9)和1个进位输出端~O5-9。每输入10个计数脉冲,~O5-9就可得到1个进位正脉冲,该进位输出信号可作为下一级的时钟信号。

CD4017有3个输(MR、CP0和~CP1),MR为清零端,当在MR端上加高电平或正脉冲时其输出O0为高电平,其余输出端(O1~O9)均为低电平。CP0和~CPI是2个时钟输入端,若要用上升沿来计数,则信号由CP0端输入;若要用下降沿来计数,则信号由~CPI端输入。设置2个时钟输入端,级联时比较方便,可驱动更多二极管发光。

由此可见,当CD4017有连续脉冲输入时,其对应的输出端依次变为高电平状态,故可直接用作顺序脉冲发生器。

图4-2 CD4017引脚图 图4-3 CD4017工作原理图

单元电路的设计 5.1 电源装置

一般情况下,我们使用的电源信号都是交流电源即220V,50HZ。,而我们所设计的幸运大转盘所采用的5V直流电源信号,由于这种信号不是很常见,所以我们应设计信号转换装置。在此我们选用220V的转换为5V的电压,此装置包括变压器、整流电路、稳幅。其中整流电路是单相桥式整流电路,稳幅电路是一个三端集成稳压管。若实现稳压电源,首先就要就电路进行稳压。在稳压方面可选用变压器来完成。由输入交流电压变为直流则须对电路进行整流。本次设计选用全波桥式整流电路进行整流,然后要对输入的电压进行调节,在调节方面可选用可调节三端正电压稳压器进行调节(LM317)。通过整流后得电流幅值变化很大,所以需要用电容对电流进行滤波。如此下去,便得到全波整流电压。5.2 应用电路设计

我们设计的是电子幸运转盘,主题是NE55和CD4017的连接装置,从电路图到实际电路的转换,需要注意元器件的串并联。4017是一个十进计数器集成电路,16脚及8脚分别为正及负电源接脚,可在3-18 V下工作。14脚是时钟脉冲输入端,每当输入由低电位(约0V)转高电位(近正电源电压)时令输出脚(共十脚)依次序轮流输出高电位。13脚是输入时钟脉冲控制端,一般接低电位,若接高电位会令14脚暂停作用。15脚是置零脚,一般接零电位,若接高电位则使输出置零,即Q0输出脚”3”永远为高电位,失去计数作用。12脚是进位脚,用来接下一个十进计数器用,变成双位计数器,现在的电路不用,故空接。在4017的14脚接上一脉冲产生器便可成为电子幸运轮盘。脉冲产生器是一个用定时器集成电路555设计而成的无稳态多谐波(方波)振荡器,产生高低变化不停的方型脉冲波。当按一下按钮式开关(时,C1会实时充电至电源电压9V,此电压经晶体管(TR)缓冲放大器后施加在IC555无稳态多谐波(方波)振荡器的重置脚即4脚上,令其开始振荡,在第3脚输出方波脉冲。当按钮式开关放开后,C1会经R1放电,其电压徐徐下降,IC2第4脚的电压也跟随下降。在一定的时间后(由C1乘R1的时间常数决定,一般约十秒内),IC2第4脚的电压变得很低,令振荡停止,第3脚 停止输出方波脉冲。IC2 555在起动时,第3脚输出约等于电源电压的高位电压,经R3向C3充电,当C3电压升至 2/3电源电压时,经第六 脚触发内部的电压比较器,令第3脚 变为接近零的低电位。之后C3经R3 放电,当C3电压下降至1/3电源电压 时,经第二脚触发内部另一个电压比较器,使第3脚变回高输出电位,再次重复向C3充电。结果C3不停经R3充电和放电,555第3脚不停输出方型脉冲波。R3及C3数值越大,频率越低。R3及C3数值越小,频率越高。6 硬件的制作与调试

当作品完成后,我们首先进行各种各样的检测。实践证明一个电子装置,即使按照设计的电路参数进行安装,在测试的过程中也难以达到预期的效果。根据此完成的电路图,印刷出电路板,进行电路板的腐蚀,打孔,上元器件等一系列的工作,后得到了计的电路板。

在PCB板的制作中要注意许多细节问题,例如元器件的摆放,及线路布置,腐蚀的时间控制,焊接时不能熔断电路板的线路等等。若有细小的不注意,就会使得印刷出的电路板出现问题,所以在此过程中我们特别细心。一旦出现问题就会使得打出的空的大小与元器件的大小不相符合,在电路板上修改会造成许多不必要的麻烦,最后会因为不清楚元器件的焊接点,使得整个电路报废。其它方面的问题,自己在制作过程中也得注意,这样才能让电路更加完善,减小错误出现的概率。经过认真处理后,得到实物图。

根据原理,发现问题,找到解决问题的方法,发现元器件的选择规格不够精确。过反复调试后,采取有效的措施加以改进使装置达到预定的技术指标。经调试试验后,发现该作品基本能达到预期效果。总结与体会

时光匆匆而过,一周转眼即逝。在过去的这两周时间里,原本以为会比较轻松的设计任务却让我觉得有点措手不及。虽然困难重重,但是在遇到的各种问题中,我学会的耐心,也学会了坚持,也学会了以前掌握不太牢固的数电和模电知识收获颇丰。在这次电子创新设计中,我们小组的题目是电子幸运轮盘。设计的时候并不顺利,芯片的选择和电路的接法对于我 这种从来没有实际操作过的学生还是有一定难度的。经过我们大家的集体 讨论后,我们还是把最终的电路图设计了出来。这让我充分体会到了团队了力量,团结才能让大 家把事情干好。一个人的力量始终太渺小,集思广益才能让我们进步得更快,让我们学习到更多知识。最让我头疼的是在 实际操作过程中,我们经常会因一个小失误,比如线接错了,有的线没有接上等等问题让实验板的灯无法亮起来。这些都是让我始料未及的。由于不细心的地方太多,老是求快,想早点完成设计和焊接,但是这反而导致了很多次的失败,当时甚至有放弃的念头。但是我们坚持下来了,当最终看到成品的时候,我觉得一切都是值得的。记得老师说过细节决定成败。以前感触不深,没有注意太多的细节,总是抱着差不多就行或者放纵自己的心态来面对学习和生活中的问题。但是我现在明白了,这是不对的。对于科学我们就应该保持严谨态度。我从这次设计中感受到了坚持的重要性。做事不能轻言放弃,虽然过程不顺利,但是只要我们能坚持,朝自己既定的目标前进,就一定会走到终点。一点小小的挫折实际上是在为美景做铺垫,当我们守得云开见月明的时候,就会发现沿途的曲折实际上是在考验我们对目标是否坚定。坚持下来,我们会收获丰硕的果实。电子创新设计,不仅让我的知识掌握的 更牢固,还让我意识到了我们所学的知识可以跟现实生活紧密的联系起来。这让我对自己有了更多的信心,因为我们在大学里面不是混日子,而是在学习真正对我们生活有帮助的知识能力。我会更加珍惜现在这么好的学习环境,努力学习知识,让自己在激烈的社会竞争中立足,也把自己学到的知识运用到生活实际来回报社会。附录一 总体电路原理图

附录二

制作实物图

一、产品介绍

该迷你音箱可以作为MP3或笔记本及台式机的功放。如果从电脑取电,可以从USB,也可以直接从主机中引出12V,现在有些电脑电源带有供液晶显示器用的12V电源接口,更是方便。如果从USB取电,要注意占用一个独立的USB口,不要和其他USB设备共用。TDA2822M采用5V供电时的工作电流只有200mA~300mA,只要主板质量合格,不会有什么问题。本套件制作容易,是提高初学者学习电子技术兴趣的良好套材。

在拿到本套件后,请对照材料清单清点一遍,并用万用表粗略的(因出厂已测量过)测量一下各元件的参数,先检查元件有没有出错,对照装配图安装元件,有没有虚假错焊,只要元件安装无误,一般情况下是能够成功的。

二、课程设计要求

制作一个有源音箱,能够连接电脑.手机.mp3.收音机等播放设备,能够精确的调节音量和较好的保真度。元件清单:

三、课程设计原理

通过音频线将MP3.MP4等设备的左.右两路音频信号输入到立体声盘式电位器的输出端,2路音频信号在分别经过R1.C1.R2.C2耦合到功率放大集成电路TDA2822的输入端6.7脚,经过IC(TDA288)内部功率放大后其1.3脚输出经过放大后的音频信号以推动左.右两路扬声器工作。电路中的发光二级管LED起电源通指示作用。拨动开关SW可以控制电源的开或关自流电源插座DC起电路可以外接电源的作用。带为其VOL是用来控制音量的大小。

设计原理图

根据印刷版的图形标志选择不同器件进行焊接,图形中有的圆表示电容,并且虚线区域表示电容的负极。注意在GRL三个焊孔中,G必须接导线的金黄的线,R L可以随意接。在两空之间用直线连接起来表示器件插入其两个孔内。

电路印刷电路图

四、焊接步骤及注意事项

1按元件清单清点所有元件,分类摆放以便于拿取。用万用表检测,如有坏损的○ 请选出来,更换。

②对照原理图元件清单安装元件,参照电路板元件符号确定元件的安装方向、高度。注意:电解电容的极性,电解电容应紧贴线路板,按丝印方向安装以免影响封盖。尽量把元件上的字符朝向一致,置于易观察的位置,以利于检查。

③焊接元件要快时间要短,用锡量要适量,避免拖锡而造成短路。

④焊接元件先小后大,分类分批焊接完成后,剪去过长引脚,检查所有焊点有无虚焊及漏焊。电位器和外接电源插孔与底板对保持水平再焊机。

⑤发光二极管指示最后焊接。约留1cm引脚长度弯折以便从外壳孔中露出。⑥最后焊接电源和左右声道喇叭引线,并在根部用热熔胶棒固定。

调试封装完成以后安装上4节七号电池打开开关以后就可以工作了。B50K元件是调节音量的。将立体声插头插入MP3播放器检查是否正常工作。那么一个简约时尚的迷你音箱就做完了

注意事项:

1、清单清点元件数量,检测元件是否完好。

2、向电路板安放元器件时注意元件大小、层次、安装方式。

3、注意虚焊、漏焊、焊点短路及毛刺等问题。剪脚长度

4、注意区分排线连接扬声器和导线连接电源。

5、安装外壳时要注意不要压到导线和排线。

五、总结

作为机械专业的学生,电路板焊接这样的经验对我们来说十分珍贵,首先,我们综合运用了在模拟电子课上学习到的知识,并动手,实践了相关的学习内容,增强了对学科知识的了解与理解。

这次是直接按照图纸进行焊接工作,可以说是独立完成,是对我们基本能力的考验,焊接过程姑且不计,有幸一次性成功音箱工作状态非常理想音质很棒,第一次用上了自己亲手制作的音箱。此次课程设计拓宽了我的认知面在原来的基础上又认识并掌握了一些元器件的使用,自己的焊接技术也得到了锻炼,在第一次用到PCB板心中难免有些紧张,不过随着焊接的继续,就习惯了这样的工作,很享受这样的过程,从中学到了很多,并且提高了自己的动手能力。搞些老师这两个星期的辛苦付出,很期待下一次的课程设计的到来。

附录一

材料清单

附录二

PCB装配图

附录三 制作实物图

第五篇:课程实训报告格式

绍兴职业技术学院计算机系

《》课程实训报告

专业__________班级_______学号_________姓名小组成员指导老师实训名称实训日期:年月日

一、实训目的(列出本实训所要掌握技能)

二、实训环境(描述实训的软件、硬件环境)

(注明实训地点,列出本实训所需的软件、硬件环境)

三、实训内容、步骤与过程分析

(列出实训内容,阐明实训步骤及中间的结果或现象、最终结果和现象,对这些结果和现象进行分析,若出现误差也予以分析误差原因)

四、实训总结

(说明实训过程中遇到的问题及解决办法;未解决/需进一步研讨的问题;介绍本实训中的收获和经验等)

第一页

下载C语言设计课程实训报告word格式文档
下载C语言设计课程实训报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


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

相关范文推荐

    C语言编程实训报告(合集)

    设计题目及要求设计题目及要求设计题目及要求设计题目及要求 1.综合应用实例——学生成绩管理 编写一个菜单驱动的学生成绩管理程序。实现如下管理功能: (1) 能输入并显示 n 个......

    程序设计实训课程项目报告

    《程序设计实训》课程项目报告IMAP4及MIME协议剖析班级:01五专2班 学号:01661430 姓名:徐莉 指导教师:袁梅冷聂哲2005年12月 一、IMAP4协议剖析 IMAP是Internet Message Access......

    国际结算实训 课程报告

    《国际结算实务模拟操作》课程报告 经济管理系(部)国际经济与贸易专业姓名 王博学号12612125 一. 课程过程 DAY1:主要以开立信用证申请书,制商业发票,以及对信用证进行审核。商业......

    销售管理课程实训报告

    第一页: 销售管理实训报告 实训项目:XX品牌2010年度销售计划班级: 小组成员(学号+姓名): 指导老师:刘相勇 实训时间:二O一O年十月十一日下午 递交报告时间:二O一O年十月二十五日下午......

    模型制作课程实训报告范文大全

    模型制作课程实训报告 一、实训的目的和意义 专业实训是我们必修的课程,是培养学生实践能力的重要环节,也是我们进入产品设计前的实践准备。实训可以增强学生的感性认识,帮......

    关于商务礼仪实训课程的报告

    关于商务礼仪实训课程的报告 前言: 商务礼仪是指人们在商务交往中相互遵循的礼仪规范,是以一定的、约定俗成的程序或方式来表示尊重对方的过程和手段。在经济飞速发展的今天,......

    实训课程心得体会[定稿]

    课程心得体会 为期一周的《企业经营决策与管理综合实训》课程已经接近尾声,这短短几天的学习不仅让我认识了来自不同学院不同专业的同学,结交了新朋友,更重要的是,我对企业从建......

    课程实训总结大全

    20 -20 学年度第 学期 《 》课程实训总结 任课教师: 《基础会计》是会计专业学生必修的专业基础课程,在本专业的培养方案中所处的地位相当重要。作为一门强化学生专业知识的课......