第一篇:c 课程设计实践报告
c++课程设计实践报告
班级:83121
姓名:张弛
学号:XX1000491
题目
一、题目描述: 已知银行整存整取存款不同期限的月息利率(采用复利 方式,即利滚利)分别为 % 期限一年 % 期限二年 月息利率= % 期限三年
% 期限五年 % 期限八年 要求输入存钱的本金和期限(以整数年为单位),求到期时能从银行 得到的利息与本金的合计。提示:可以用嵌套的 if-else 结构或 switch 结构实现,核心函数 pow(1+月利率,月份)。请思考年份是四、六、七或八年以上的情况。
设计思路:(一)使用 switch 选择语句 对应年份
(二)明确核心函数 pow 是计算复利的(例如:x 的 n 次方);由于 是以年为计算期限的,而所给的利率是月利率,所以计算时 应该在年的基础上乘以 12;(三)复利计算就是一种幂运算,I=p*(1+i)^n,本金和利率都是变
动的(四)在除了 1、2、3、5 和 8 年之外的其他年份中,要注意“就低 不就高”的原则,尤其是在 8 年之后,也是套用期限八年的利率。
附源程序如下: #include #include void main(){ int years;float capital,sum;
scanf(“%f %d”,&capital,&years);switch(years){ case 1:sum=capital*pow(1+*,12);break;
case case 2:sum=capital*pow(1+*,24);break;3:sum=capital*pow(1+*,36);break;
case 4:sum=capital*pow(1+*,48);break;case 5:sum=capital*pow(1+*,60);break;case
case case 6:sum=capital*pow(1+*,72);break;7:sum=capital*pow(1+*,84);break;8:sum=capital*pow(1+*,96);break;default:sum=capital*pow(1+*,12*years);printf(“%f”,sum);}
}
题目
二、题目描述: 简单计算器。用 switch 语句编写一个程序计算表达式: data1 op data2 的值。其中 op 为运算符+、-、*、/。
设计思路:(一)明确计算器是怎样进行计算的;(二)细节,比如很多地方需要分号,在遇到字符时,我们应该用 ‘’,而不是“”;(三 Switch 语句主要用于多分支选择,此题有+、-、*、/,这就是 选择。使用 switch 每个 case 对应+-* /符号 程序涉及到至
少三个量,运算符 op 和两个数字;先让用户输入两个数字和运算符,两个数字的计算在后面的程序中用 swith 结构运行。运 行 效 果 截 图 :
附源程序如下:#include int main(){ float data1,data2,c;
char op;printf(“请输入表达式中两个数字 data1 和 data2”);//打印 scanf(“%f%c%f”,&data1,&op,&data2);//输入
printf(“请输入运算符+、-、*、/”);// 打印 switch(op)//switch(){case stick:break;} 这个是个选择结构
如果 OP = stick 则执行这一句 如果没有 则执行 default 后面 的语句 { case '+':c=data1+data2;break;case
'-':c=data1-data2;break;
case case '*':c=data1*data2;break;'/':c=data1/data2;break;default:printf(“输入错误”);break;} printf(“%f”,c);return 0;} 题目三 题目描述:编写程序,用二分法求方程 2x3-4x2+3x-6=0 在(-10,10)之间的根。提示: ① 用 do-while 语句实现。
② 二分法的计算步骤:(1)准备 计算 f(x)在有根区间端点处的值 f(a),f(b)(2)二分 计算 f(x)在区间中点(a+b)/2 处的值 f(3)判断若 f=0,则即是根,计算过程结束。否则,检测: A.若 f与 f(a)异号,则根位于区间内,这时以(a+b)/2 代替 b;B.若 f与 f(a)同号,则根位于区间内,这时以(a+b)/2 代替 a;反复执行步骤 2 和 3,直到区间长度缩小到允许的误差范围之 内,此时中点(a+b)/2 即为所求的根 设计思路:(一)二分法是指在整个算法中,让计算值无限趋近于根的值,利用 数学知识可知,当了两个点的结果异号时,函数的根就在这两个数之 间,利用二分法可以无限的把根的范围缩小,直到可以确定为止;(二)do-while 是循环语句,先执行一次指定的循环体语句,然后 判别表达式,当表达式的值为非零(真)时,返回重新执行循环语句,如此反复,直到表达式的值等于 0(假)为止才结束。(三)Void main()是声明函数,并且是对主函数的声明。题目所 给的范围是(-10,10),因此在声明函数中定义一个 a 和 b 来代替区 间的范围,而用 c 来代指中间指也是最后的结果,在这个程序中 a、b、c 都是随着范围不断变化的变量。如果(-10,10)的范围过大,就需要循环语句来缩小区间范围,即 a=c 或 b=c。当函数值在(-10,10)中任意一点取得 0 时,就正是我们所要的结果。循环条件是当区间 a 和 b 的函数值小于精度。运行效果截图:
附源程序如下: #include “" float f(float x){ float y;y=2*x*x*x-4*x*x+3*x-6;return y;} void main(){ float a=-10,b=10,c;
do{c=f((a+b)/2);if(c==0)break;if(c*f(a)>0)a=c;else b=c;} while(f(b)*f(a)题目四 题目描述:编写程序,给定一个整数 i,请求出另一个整数 j,使 i 和 j 在用 8 位二进制表示时互为逆序。例如:给定 i=3 时,应得到 j=192(3 的二进制为:00000011,192 的二进制为 11000000)。提示: ① 十进制整数转换为二进制整数用“除 2 求余”法。② 二进制整数转换为十进制整数用“按权相加”法。
设计思路:(一)二进制整数转化为十进制整数用“按权相加”法(二)二十进制整数转化为二进制整数用“除 2 求余”,用&转化。
(三)运算符:>是指右移一位,a 是指 b 向右移 a 位,左移一位相当于乘 2 右移 1 位相当于除 2(四)在交换时,用的是中间法
运行效果截图: 附源程序如下:#include ”“ void main(){ int i,j,s=1,a;printf(”请输入一个整数 i:“);scanf(”%d“,&i);for(j=0;j
printf(”%d“,(a>1)|(a>>3)|(a>>5)|(a>>7));}
题目五 题目描述:编写程序,抓交通肇事犯。一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没 有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相 同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位 数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索求 出车号。提示: ① 按照题目的要求,造出一个前两位数相同、后两位数相同且相互 间又不同的整数,然后判断该整数是否是另一个整数的平方。② 用穷举法解此题。穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特征。穷举法的关键是要确定穷 举的范围,既不能过分扩大穷举的范围,也不能过分缩小穷举的 范围,否则程序的运行效率会很低,或有可能遗漏正确的结果而 产生错误。
设计思路:
(一)11 11
到 11
在
11 这样 穷举
判断是否一个
数的平方 则是 将这个数开方
取整 再取平方 是否还是原来的数
(二)此题需要满足三个条件:①前两个数相同,后两个数相同;② 前后两数分别不相同;③这个数是一个整数的平方。需要每个条件都 满足,if 才为真。(三)主要思路是穷举。穷举是指在适当的范围内举出一个数。运 行 效 果 截 图 :
附源程序如下: #include void main(){ int a,b;for(a=32;a
{ b=a*a;if(b/1000==b%1000/100 b%100!=(b/1000)*10+b%1000/100)printf(”The license plate is:%d“,b);} } && b%100/10==b%10 &&
题目六 题 目 描 述 : 从 终 端 输 入 实 数 ex=1+x+x2/2!+x3/3!+?+xn/n!的值。设计思路: 先输入一个 x 的值;再设计一个子函数,计算 1!,2!,3!?n!的值;之后用 sum 函数,和 pow 函数处理分子,用累加的方式进行分 子计算,并形成等式;最后输出结果。x,用 递 推 法 求
附源程序如下:#include ”“ int f(int x,int n){ int i,m=0;for(i=0;i
for(i=0,s=0;f(x,i)题目七 题目描述:打印出以下的杨辉三角形(要求打印出 10 行)。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ?? ?? ??
设计思路:(一)二维数组主要用于处理多行的问题,而且第一行在数组之中是 第 0 行。(二)杨辉三角有一个明显的特点:每一行的最后一个数字与第一个 数是相同的,此外,下(三)一行的第二个数是由上一行的第一个数和第二个数相加之和,以此类推。
定义指针是为了让整个程序不那么复杂。运行效果截图:
附源程序如下: #include int main(void){ int a,(*p)=a,i,j;
for(i=0;i
*(*(p+i)+0)=1;*(*(p+i)+i)=1;} for(i=2;i 题目八 题目描述:找出一个二维数组的“鞍点”,即该位置上的元素在该行 上最大,在该列上最小。提示: ① 一个二维数组可能有鞍点也可能没有鞍点,若有鞍点,则只有一 个。
② 准备两组测试数据:(1)二维数组有鞍点: 9 80 205 90-60 210 40
1 89
-3 101
(2)二维数组没有鞍点: 9 80 205 90-60 210 40 1 89
196
-3 101 7
156
③用 scanf 函数从键盘输入数组各元素的值,检查结果是否正确。如 果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而 不必用 scanf 函数。请同学们修改程序以实现之。
设计思路:(一)先找出一行中值最大的元素,然后看它是不是该列中的最小值,由于 一个二维数组最多有一个鞍点,所以如果是则鞍点存在且它就是鞍 点,输出该鞍点;如果不是,则再找下一行的最 大数,以此类推。如果每一行的最大数都不是鞍点,则此数组无鞍点(二)在程序中,先令 a最大赋值给 maxi,在 for 循环的比较中,把
符合条件的行的最大值赋给 maxi,将每一次比较后的最大的列数赋 值给 maxj,从而找出 i 行最大的那个。再假设那个数就是鞍点,将最大数和同列的数值相比,如果 maxj 不 是最小的,则不是鞍点,继续找。(三)引入一个参数 flag=1,若不存在鞍点则 flag 为 0,若存在鞍 点则 flag 依旧为 1
运行效果截图:
附源程序如下:#include ”“ #define S 80 #define T 80 void main(){ int m,n,i,j,t,maxh,maxl,flag,a;printf(”请输入二维数组的行数 m 和列数 n:“);scanf(”%d %d“,&m,&n);printf(”请输入二维数组的各个元素:“);
for(i=0;ia)t=a;maxh=i;maxl=j;} for(i=0;i
a=%d”,maxh,maxl,a);}
题目九 题目描述:某班期终考试科目为高数 MT、英语 EN 和物理 PH,有 30
个人参加考试。为评定奖学金,要求统计并输出一个表格,表格内容 包括学好、各科分属、总分和平均分,并标出 3 门课均在 90 分以上 者(该栏标志输出为 Y,否则为 N),表格形式如下: NO MT EN PH SUM V >90 1 2 3 97 87 92 276 92 92 91 90 273 91 90 81 82 253 84......N Y N
#include “" void main()
设计思路:由于是对 30 个学生的数据进行输入与统计,所以建立二 维数组,根据各位置的条件来定义其内容,第 8 个数据是字符型数据,所以另设一数组进行存储,最后在将数据整合输出。
附源程序如下:#include ”“ void main(){ int i,j,sum,flag,a;printf(”请输入 30 个考生的三科成绩:“);
for(i=0;i90)flag=1;else flag=0;} a=sum;a=sum/3;if(flag=1)a='Y';else a='N';
} printf(”NO MT EN PH SUM V >90 “);for(i=0;i }
题目十 题目描述下面是一个 5*5 阶的螺旋方阵,试编程打印出此形式的 n*n(n 设计思路:定义一个 n*n 维数组存放该方阵,m 为该方阵的圈数,一个大循环中嵌套了
四个小循环,每一圈为一个大循环,第一个小循环按顺序写出第一行的数,第二个小循环按 顺序写出最后一列的数,第三个小循环按顺序写出最后一行的数,第四个小循环按顺序写出 第一列的数,再进行第二次大循环,循环完毕后再进行循环输出数组中的 n*n 个数,该螺旋 方阵就出来了。
附源程序如下: #include ”“ void main(){ int i, j, k = 0, m, n,a;printf(”请输入方阵行列数 n(n k++;a=k;} for(j=i+1;j=i;j--){ k++;a =k;} for(j=n-i-2;j>=i+1;j--){ k++;a=k;} } for(i=0;i
printf(“%5d”, a);printf("");} } 附:
实习总结与心得体会
经过 C 语言实习,让我加深了对 C 语言的了解,而不只是单单 的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编 写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理 论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实习,逐渐积攒了一些经验,有些错误可以很快就 看出来。这次实习有很大的收获,让我对 C 语言有了更深的认识,平时 在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技 能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣 就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技 能,让我对 C 语言有了浓厚的兴趣和更深层的认识。C 语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实习我也知道了自己的不足,存在的很多问题。比如自己写 的写的小程序出了问题,不会解决了就叫老师帮忙,但是会养成一种 依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以
以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身 边的时候也可以完成一些简单的程序编写与错误排除。还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破 口。通过实习,逐渐理清了顺序,对于简单的程序和一些相对比较繁 琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基 础知识掌握了,然后有条不紊的分析,一步一步理解,C 语言还是很 有意思的课程。自己亲自动手编写程序让我增加了对 C 语言程序开发环境的了 解,在上课的时候老师就讲,学习C 语言最重要的是学习C 语言的 逻辑思维,不管以后从事什么行业,学习C 语言都对自己的职业很 有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的 编程工作可能不用 C 语言,但是拥有扎实的 C 语言基础是对工作很 有用的。当初在初步接触 C 语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!感谢学校安排这次实习和老师的耐心讲解,让我学到了很多知 识,在实习过程中,同学之间的相互探讨,老师的循循善诱,最终让 我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之 间的感情。希望以后还会有更多类似的实习课程,在有限的大学时间 内学到更多的实用技能,为以后的生活和工作打下一个良好的基础。
第二篇:课程设计电工实践报告
20XX 报 告 汇 编 Compilation of reports
报告文档·借鉴学习word 可编辑·实用文档
新疆大学
实习(实训)报告
实习(实训)名称:
电工技能实践
学
院:
电气工程学院
专
业、班
级:
电气
15--3 3 班
指
导
教
师:
娄
毅
赵
力
报
告
人:
学
号:
时
间:2017 年 年 6 6 月 月 9 19 日
报告文档·借鉴学习word 可编辑·实用文档
主要目的及内容:
目的:
内容:
主要收获体会 :
存在的问题:
指导教师意见:
指导教师签字:
2017 年 6 月 27 日 备注:
报告文档·借鉴学习word 可编辑·实用文档 1
电机的启动和点动
1.1 目的要求 a..通过操作加深对电机启动原理的理解 b..能正确连线,并安全启动 1.2 线路 图
电机启动电路图
主电路:
(1)隔离开关 QS(2)熔断器 FU(3)接触器 KM1 的常开主触点(4)电动机 M 控制电路(1)开关 SB3、SB1 和 SB2(2)接触器 KM1 线圈的常开辅助触点(3)SB2 的常闭触头1.3 启动 原理 在定子绕组上通三相交流电,定子绕组内(结合定子铁心)就会产生旋转磁场,当磁力线切割转子绕组时,转子绕组会在电磁感应作用下产生电流,结果就形成自己的磁场。在定子磁场与转子磁场相互作用时,转子就随定子磁场旋转而转动。(电动机就启动了)电能---------磁能------电磁感应------电能------磁能。磁能与磁能相互作用。电能就转变成机械能。1.4 步骤
1)
起动电动机 合上三相隔离开关 QS,合上开关 SB3、SB1、SB2 常开触点,接触器 KM1 吸引线圈得电,3 对常开主触点闭合,将电动机 M 接入电源,电动 机开始起动。
2)
停止电动机 断开开关 SB1,SB2 常开触点,接触器 KM1 的线圈失电,报告文档·借鉴学习word 可编辑·实用文档 其主触点和辅助触点均断开,电动机脱离电源,停止运转。1.5 实际 接线图
电机启动实物图
报告文档·借鉴学习word 可编辑·实用文档 2
三相异步电动机的正反转2.1 目的要求
a..通过操作加深对电机启动原理的理解; b..能正确连线,并安全启动; 2 2.2 线路 图
由两条启动支路构成,且在对方支路中相互串联上彼此的常闭辅助触头,使一个接触器线圈得电吸合后另一个接触器因所串联的常闭辅助触头断开而受到制约无法得电,保证了 KM1,KM2 不能同时得电,从而可靠地避免了两相电源短路事故的发生,电路安全、可靠。这种在一个接触器得电动作时通过其常闭辅助触头使另一个接触器不能得电动作的作用称为联锁。
电机正反转电路图
正、反转控制按钮 SB1、SB2 对应的常闭触头串联到分别串联到含 SB2、SB1的常开触头支路中构成联锁完成正反转控制。这样电动机改变转向时,可直接按下反转(相对于另一转向)按钮即可,而不必先按停止按钮,同时保证了两个接触器 KM1、KM2 线圈不会同时得电闭合。例如,KM1 吸合电动机正转时,按下反转按钮 SB2,串联在 KM1 线圈支路中 SB2 的常闭触头先断开,使 KMI 线圈失电,其主触头、自锁辅助触头断开,电动机断电但仍惯性运转。SB2 按下后经过一定的行程,其常开触头闭合,接通反转控制电路,电动机反转。
电路要求接触器 KM1 和接触器 KM2 不能同时接通电源,否则它们的主触头将同时闭合,造成任意交换的两相电源短路。为此在 KM1 和 KM2 线圈各自支路中相互串联对方的一对辅助常闭触头以保证接触器 KM1 和 KM2 不会同时接通电源。这两对辅助常闭触头就叫联锁或互锁触头。
2.3 控制原理
报告文档·借鉴学习word 可编辑·实用文档
正向启动过程:按下起动按钮 SB3,SB1,接触器 KM1 线圈通电,与 SB1 并联的 KM1 的辅助常开触点闭合,以保证 KMl 线圈持续通电,串联在电动机回路中的 KM1 的主触点持续闭合,电动机连续正向运转。
现象 :
与 KM1 并联的电压表:电压表有示数指示灯:指示灯常亮;电机正向转动。
停止过程 :
按下停止按钮 SB1,接触器 KMl 线圈断电,与 SB2 并联的 KM1的辅助触点断开,以保证 KMl 线圈持续失电,串联在电动机回路中的 KMl 的主触点持续断开,切断电动机定子电源,电动机停转。
报告文档·借鉴学习word 可编辑·实用文档 反向起动过程:
:按下起动按钮 SB3、SB2,接触器 KM2线圈通电,与 SB3 并联的 KM2 的辅助常开触点闭合,以保证 KM2 线圈持续通电,串联在电动机回路中的 KM2 的主触点持续闭合,电动机连续反向运转。
现象:与 KM2 并联的指示灯:常亮;电动机反向转动。
备注:对于这种控制线路,当要改变电动机的转向时,就必须先按停止按钮 SB1,再按反转按钮 SB2,才能使电机反转。如果不先按 SB1,SB3,电动机是不会反转的。这样的控制线路可以保证接触器 KM1、KM2 不会同时通电,这种作用称为互锁,这两个接触器的常闭触点称为互锁触点,这种通过接触器常闭触点实现互锁的控制方式称为接触器互锁又称为电气互锁。
2.4 停止控制 按下SB1,SB1常闭触点断开。KM1、KM2均失电,其常开触点均断开。电动机停止转动 原理:
要实现电动机的正反转,只要将接至电动机三相电源进线中的任意两相对调接线,即可达到反转的目的。
2.5 实际接线图
三相异步电动机正反转实物图 2.6 检验1)检查主电路:
断开控制电路,检查主电路有无开路或短路现象。检测主电路是否有开路的报告文档·借鉴学习word 可编辑·实用文档 范围分别是 L1—U 相、L2—V 相、L3—W 相,万用表的读数应都为“0”。检测短路的范围是 L1、L2、L3 三相两两之间是否有短路的现象,读数应为“∞”。2)检查控制电路:检查KM1、KM2正反转支路:
(1)
首先断开主电路,将万用表表棒分别搭在 L1、L2 线端上,读数应为“∞”。按下 SB3 时,读数应为接触器 KM1 的直流电阻值。SB1 不放开,按下 SB2,读数应为“∞”,或者手动按下交流接触器 KM2,此时读数也应为“∞”。
(2)手动压下交流接触器KM1,此时读数应为接触器KM1的直流电阻值,按下SB3或者压下接触器KM2,读数应为“∞”。
报告文档·借鉴学习word 可编辑·实用文档 3
同时具有电气互锁和机械互锁的正反转3.1 目的要求
a:通过操作加深对电器互锁和机械互锁的正反转的理解
b: 加强复杂接线的能力 2 3.2 电路组成同时具有电气互锁和机械互锁的正反转电路图
主电路:隔离开关、熔断器、接触器 KM1、KM2 的常开主触点和电动机 M 组成主电路。
控制电路:开关 SB3、SB1 和 SB2、接触器 KM1 的常开辅助触点、接触器 KM2的常开辅助触点、接触器 KM1 线圈的常闭辅助触点、接触器 KM2 的常闭辅助触点,SB2 的常闭触点,SB1 的常闭触点,与 KM1 并联的电压表、指示灯,与 KM2 并联的指示灯,组成控制电路。3..3 3 工作原理
采用复式按钮,将 SB 1 按钮的常闭触点串接在 KM 2 的线圈电路中;将 SB 2 的常闭触点串接在 KM 1 的线圈电路中;这样,无论何时,只要按下反转起动按钮,在 KM 2 线圈通电之前就首先使 KM 1 断电,从而保证 KM 1 和 KM 2 不同时通电;从反转到正转的情况也是一样。这种由机械按钮实现的互
锁也叫机械或按钮互锁。
3..4 4 整体接线图
报告文档·借鉴学习word 可编辑·实用文档
同时具有电气互锁和机械互锁的正反转实物图
报告文档·借鉴学习word 可编辑·实用文档 4
实验室实际接线图
配电柜
第三篇:中南大学 课程设计实践报告
中南大学
本科生课程设计(实践)任务书、设计报告
(大学计算机基础)
题 目 理想世界 学生姓名 李杰 指导教师 邵自然 学 院 湘雅医学院 临床医学与医学技术
专业班级 1105班
学生学号
2211110512
计算机基础教学实验中心
年 月 日
课程设计实践报告 理想世界 李杰
我选的主题是理想世界,我的思想是从图片来展现理想世界的样子,用图片表达我想说的内容。
设计的步骤:从以上两个方面入手,目录作为主页,主页内容是理想世界中frontpage的一些介绍,并且引入一些优美的图片,再一个个的建立超链接。在引入一些解决手段,创建连接理想世界。在理想世界这个链接中从图片来展现理想世界的样子,用图片表达我想说的内容。,也可以用一些flash动画,还可以使用word链接一些图片。在理想世界这个链接中,也可使用word链接一些先驱的行动,与我们自己的所处的世界对比,ppt制作幻灯片来演示一些有效提示,让我的理想世界最好的展现给大家。
采取的方法与手段:用Frontpage制作网页,通过链接使word文档、Powerpoint幻灯片、Flash动画得以展示。在网页制作中,可以通过添加图片来使页面更加美丽,在word文档中可以展示艺术字、建立文本。通过powerpoint可以把某些保护环境的行动展示。Flash动画是以链接的方法来参与展示。在需要一些资料的时候,可在网络上寻找,由于不是文件,这时就可以通过复制粘贴操作来获取资料。
遇到的问题:(1).在网页制作中,刚开始的时候连网页的表格布局都弄不出来,不知道该如何制作,从哪些方面入手。解决方法:先看了几遍课本,然后跟着课本的步骤上机实践,但是发现制作过程还是太慢,而且不熟悉frontpage网页制作工具,因此,开始几次的实践都是在慢慢熟悉该工具。直到熟悉该工具后才开始去制作。在word文档制作中,因为以前在中学的时候用过该工具,现在还有一些印象,所以经过一系列重温操作后,word文档的制作就熟悉了。在Powerpoint幻灯片制作中,因为是第一次接触和使用,许多功能和手段都不知道,较难制作出符合人意的幻灯片。通过多次实验操作来了解和熟悉它,然后就可以使用了。(2)在flash动画制作过程中,虽然老师上课讲过制作过程,但还是遇到了难题:制作的动画中,元件不随引导层而动,而是在关键帧之间走直线,这
个问题导致了我做不出动画,我只好一次次的尝试去做,最后成功做出来。有时还有一些小技巧,都是从同学手中问过来的。在设置背景图片时,会发现图片太小的话,背景就会变成多张重复的图片拼在一起,后来经过向同学询问后,使用图片编辑器对背景大小做了调整,使得背景和网页内容能够很好地融合在一起。二,网页制作好后浏览时图片显示不出来,改文件名或者换了文件夹储存都会导致图片无法显示,后来经过询问学习之后,才知道原因即任何图片的显示都是依靠路径来寻找来源,要设成相对路径有利于在其他机子上打开。在设置主题之前插好图片。三,刚开始做PPT时,不知道怎么插进去背景音乐和让它连续播放,后来经过多次实践后,发现可以在效果中设置这些。四,刚开始不会弄超链接,然后经过向同学询问后才明白,在选定对象之后点击右键,超链接,再选中连接的对象就可以了
总结:首先我们应该学会独立思考和自我解决问题的能力,因为实践和理论毕竟不同,在实践中会遇到一些我们不了解的东西,这时候应该先自己摸索,实在不行就去向同学和老师询问,一定要仔细阅读课本,巩固理论知识。否则很盲目,自信心也会受到打击2,做计算机作业有时候也是一种享受,因为你会为你自己的一点点进步一点点成功而高兴,增加生活情趣、3,做作业时要坚持不懈,不能在半途放弃。中途可能会遇到一些挫折,要记住“世界上没有谁能随随便便成功”,只有经历过多次失败,才能寻找到解决问题的最好方法。4,在制作网页的过程中,我的思想和人格也得到了升华,对大自然和地球的认识又提升到了一个另一个高度,令我受益匪浅。在全制作过程中,所有的难题都是有解决方法的,不要放弃制作机会,有难题可以去问别的同学或老师,也可以自己多次实践来找到解决方法。我在制作过程中大部分都是自己摸索的,这样不仅加强了自己对工具的熟悉度,同时也加强了对键盘的熟悉,我认为当我们自己去制作的时候,不管好坏都有助于自己,做得好,自己更有信心,鼓励下次还能做得更好,做的不好,还可以找出错误,提醒自己在什么地方应该注意,在什么地方可以改正。这样就可以更好的去改错。有时候可以去看一看别人的作品,看一下别人是怎么做的,想一想哪里值得借鉴,如果是自己,怎么做会更好。这样,在看的时
候可以加强对工具的熟悉,了解一些技巧,增加自己的见识。
这次的网页制作对于我来说与有很大的收获,我学会了,如何制作网页,如何在网页上表达自己的观点,以及网页制作的一些基本技巧,和网页制作过程中 最常见,最基本问题的解决。By临床与医技1105 李杰 2211110512 4
第四篇:课程设计项目实践
项目实践、设计与产品制作
本专题实践是专为电气工程专业的高年级学生,进入专业学习前所进行的专题培训,目的是为了更好地使学生适应专业学习和毕业设计,重点培养同学们动手实践和自我规划课题的能力。
专业专题实践分硬件和软件两类。其中硬件类实践是在微机原理与应用、单片机、DSP等课程基础上,结合实际的小项目,通过项目调研、方案设计、实验调试、总结报告,进行具体项目的综合训练。在整个实践过程中,希望同学们有意识地注意以下几个方面的训练:调研,方案设计,系统,控制软件方法设计,调试,总结。
同学们首先要站在宏观角度审视一个具体项目,通过调研,制定技术方案;然后按照所确定的技术路线进行相应的设计、制作、编程、调试和测试,最后进行总结和提高。希望同学们以非常认真的态度,珍惜难得的实践机会,认真完成实践任务。
需要提醒的是,专业专题实践不同于其它课程,它是项目型教学,主要是发挥同学们自己的主观能动性,自主学习性,不要依赖教师。在实践中教师是在宏观上辅导(如帮助分析方案和解答疑惑问题),所起的作用是辅助性的。更多的是需要靠同学们自己主动去调研、设计方案、实验、总结。项目型实践课程与平时的实验课不同,实验课有详细、具体的实验指导书,告诉同学们具体的实验步骤。项目实践课并不给出具体详细实践步骤和方法,需要同学们自己通过调研、与老师或同学讨论、合理分工完成。这里不仅培养同学们的自主学习(自主研发)精神和能力,也培养大家主动型的学习习惯,同时更是培养大家相互协作精神、发现问题和解决问题的能力以及研究性学习的能力。
一、实践要求
1. 每个实验项目3人一组,分工进行,提倡好的合作精神; 2. 专题实践以设计、实践为主,共四周时间;
3. 爱护设备,不随意更换设备,如有要求,请与老师联系;
4. 做硬件实验时,注意断电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,严禁带电操作;
5. 坚持复查制度,例如通电前的复查:一人接线另一人检查,重要结果和现象复查实行二人制;
6. 每天实验完毕(包括中午),请恢复桌椅原位,保持实验室的整洁,关闭所用实验设备电源,再离开实验室;
7. 注意人身、实验仪器和设备安全,防止发生事故。万一发生事故,应立即切断电源,保护人员,保存现场,并立即向教师报告,检查事故原因,总结并吸取教训;
8. 电热设备(如烙铁)用毕必须随手拔下电源插头,以免过热引起火灾;平时注意实验板上的带电情况,测量和调试中防止触电、短路;注意示波器高频探头的地极是通过示波器电源插头的中心端接地的,切勿将该地极与交流电源的火线相接,否则将发生短路事故;
9. 参考文献或芯片、器件手册阅读量要求:20篇以上; 10. 要求每日记录工作日志和实验情况,参见简要工作日志格式。
二、实践报告及成绩评定
1. 以小组(3人名义)形式需要完成3份报告:(1)开题报告;(2)中期报告;(3)结题报告。报告要求见后面要求。注意:
2. 每人需要完成1份个人小结,第5周五前前提交,延期扣分。报告格式见后面要求。3. 实施2次检查,(1)中期检查,第2周周5;(2)结题检查,第4周周5。4. 成绩评定依据:
开题10分;中期考核10分;态度10分; 项目工作完成情况40分:
项目完成的质和量是考核的重点,还要考核同学们专题实践的主动性,项目组成员之间的合作情况,仪器设备、芯片的正确使用情况,项目验收时汇报和答辩情况等; 项目报告30分:
报告质量情况、总结的深度是考核的重点,兼顾认真程度和格式等。建议结题报告按学位论文格式完成,要求有:摘要、综述(文献阅读、任务分析、工作安排等)、正文论述、项目结论、参考文献等。
鼓励同学们自主创新,如有专利、论文等的思路或草稿,可以考虑适当加分。
.结题报告格式(每组只交一份,第2周末交)要求按毕业设计论文模板书写结题报告。报告包括以下内容: 1. 报告摘要;
2. 课题论述:包括专题实验目的,文献阅读、项目的综述,项目要求、技术要点、难点;
3. 设计方案说明,包括设计方案研究、分析、总体方案思路,所采取的技术路线,工作和时间安排,人员分工;
4. 设计内容,包括具体的项目设计,软硬件设计,调试,讨论;
资源:单片机的选择论述,软件资源的利用等; 硬件:电路原理图、PCB图(如果有的话); 软件:结构、流程、源程序和程序注释; 调试:调试过程、问题的发现和解决;
5. 课题实验、调试记录,完成情况,存在问题及可能的解决方案,工作总结; 6. 项目结论(实验结果和结论、成果、遗憾、后续工作);
7. 附录(包括列出所用软件工具、找到的各种电子参考资料、参考文献等)
个人实践小结(每人交一份),第2周末交
主要写个人对项目的理解、投入、贡献、收获,并对自己的项目工作做简单评估,按五个等级自评:优(90~100),良(80~89),中(79~70),及格(60~69),差(60以下)。请实事求是评价个人工作,过高或过低评价都不推荐。
项目1 微机继电保护的设计与实现
一.实验目的
学习和实践交流信号数据采集和微机保护算法,学习微机保护的软、硬件原理,设计微机保护原理型样机,使用学校现有单片机教学实验箱或实验板完成原理型微机继电保护装置并实现其主要功能。
二.实验任务
1. 学习一种单片机(如Intel8051、MC、ARM、瑞萨9等)或DSP(2407、2812、28335等)原理和使用,学习其编程方法;
2. 学习A/D转换技术,搭建单片机外围模拟交流信号(A/D转换器外围信号)采集环节,用信号发生器模拟继电保护电流信号(互感器输出),测试瞬时性继电保护(如电流速断)动作特性(动作和返回,返回系数0.9); 3. 设计交流信号的数据采集和微机保护算法,设计数字滤波算法,编写继电保护软件,常用有效值算法,例如半周波积分算法、差分算法、傅立叶算法等;
4. 编写实时显示程序,实现显示功能:显示交流信号有效值(折算出虚拟CT原边电流,例如100/5A,5A/2V),如能设计通讯,使用PC机做上位监控计算机实时显示测量值最好;
5. 编写延时过电流保护逻辑的微机保护软件,并实现延时过电流保护; 6. 设计实验电路板(原理图和PCB电路板),并评估。
三.相关资料和实验平台
1. 单片机或DSP实验主板,单片机或DSP资料和datasheet; 2. 继电保护、微机继电保护参考书;
3. 微机继电保护参考文献,软件流程和交流采样算法文献; 4. 实验板、部分外围芯片(如运放)、信号发生器、示波器等 5. C++编程或Lab View界面编程语言。
四.提示
请同学编写继电保护软件,主要是设计交流数据采集策略和算法,让单片机实时显示被采集的交流信号有效值,比较保护定值,决定保护动作(驱动指示灯实时点亮)。
五.选题对象
限已经选修数字和模拟电子电路、单片机课程的同学,学习过微机继电保护最好。3人一组,合理分工。
项目2 变频器的设计与实现
暂缓
一、实验目的
学习变频调速原理,学习正弦波PWM控制方法,掌握设计和实现变频调试器的方法。本任务拟采用纸上谈兵方式进行,主要是考核同学们具体任务的分析问题和解决问题的能力。要求给出设计方案、方法、作出设计、以及实现方式。
二.实验任务
1. 利用IPM设计变频器的主电路;
2. 利用瑞萨单片机、MSP430或DSP设计变频器的控制系统(主要是PWM); 3. 调试变频器的软、硬件系统,最终能带三相小型异步电机;
4. 设计相关的控制算法、控制软件,产生变频PWM信号或功率输出,实现:
(1)变频器的变频输出、V/F特性(V/F=const);
(2)电机的起动和停止特性、电机运行中的变频控制、调压控制等;(3)评估逆变器输出波形。
三.实验平台和有关资料
1. 变频器样机(供设计参考,该样机资料有限,开放性较差,能开发的余地小); 2. 提供变频器主电路板及相关器件,可在此基础上完成变频器主电路系统;
3. 自选单片机(实验室已有的)做控制平台,依据该单片机Datasheet编写相关控制软件并调试;
4. 相关的一些网站:TI公司 DSP网站上面有许多介绍变频器控制的软件、方法、甚至源代码;三菱公司网站,介绍IPM模块、整流模块;
一些变频器网站介绍变频器:如http://www.xiexiebang.com等; 5. 图书馆可借阅一些变频器相关书籍、文献。
四.选题对象
限已经选修过电力电子、数字和模拟电子电路、单片机课程的同学。
第五篇:EDA课程设计专题实践
EDA课程设计专题实践
结课论文
题目:出租车自动计费器
专业:电子信息工程
班级:电子z1301 姓名:阳家昆 学号:1310910422
一、设计题目:出租车自动计费器
二、设计目标:
1、掌握出租车的计费功能
2、进一步熟悉用VHDL语言编写出租车计费程序
三、设计要求:
1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用三位数码管显示总金额,最大值为99.9元;
2、行车里程单价1.7元/公里,等候时间单价1元/5分钟,起价8元(3公里起价)。
3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里。
4、用两个数码管显示行驶公里数;两个数码管显示等待时间;三个数码管显示收费金额。
5、设置一个复位清零按键,可将计程公里数、计时数、应付费用清零;
6、设置一个刹车按键,当松开按键时公里数开始计程,按下时停止计程,开始计时;
四、设计原理:
根据设计要求,系统的输入信号clk,计价开始信号start,等待信号stop,里程脉冲信号fin。系统的输出信号有:总费用数C0—c3,行驶距离k0—k1,等待时间m0—m1等。系统有两个脉冲输入信号clk_48m,fin,其中clk_48m将根据设计要求分频成17hz,2hz和1hz分别作为公里计费和时间计费的脉冲。两个控制输入开关start,stop;控制过程为:start作为计费开始的开关,当start为高电平时,系统开始根据输入的情况计费。当有乘客上车并开始行驶时,fin脉冲到来,进行行驶计费,此时的stop需要置为0;如需停车等待,就把stop变为高电平,并去除fin输入脉冲,进行等待计费;当乘客下车且不等待时,直接将start置为0,系统停止工作;价格开始归为起步价8.0元。整个设计由分频模块,计量模块,计费模块,控制模块和显示模块五个部分组成。其中计量模块是整个系统实现里程计数和时间计数的重要部分;控制模块是实现不同计费方式的选择部分,根据所设计的使能端选择是根据里程计费还是根据等待时间计费,同时设计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采用1hz的驱动信号,计费模块采用17hz,2hz的驱动信号;计量模块每计数一次,计量模块就实现17次或者2次计数,即为实现计时的0.2元/min,计程时的1.7元/km的收费。
三、设计内容: 1.分频模块
由于实验箱上没有17hz和2hz的整数倍时钟信号,因此采用频率 较大的48mhz进行分频,以近似得到17hz,2hz和1hz的时钟频率。通过以上三种不同频率的脉冲信号实行出租车行驶,等待两种情况下的不同计费。模块元件如下:
图1分频模块实体图 Library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity pulse is port(clk_48m:in std_logic;
clk_17:buffer std_logic;
clk_2:buffer std_logic;
clk_1 : buffer std_logic);
end pulse;architecture one of pulse is signal q_17:integer range 0 to 2823528;
signal q_2:integer range 0 to 23999999;signal q_1:integer range 0 to 47999999;begin
process(clk_48m)begin If(clk_48m' event and clk_48m='1')then If q_17=2823528 then q_17<=0;clk_17<=not clk_17;
else q_17<=q_17+1;
end if;
If q_2=23999999 then q_2<=0;clk_2<=not clk_2;
else q_2<=q_2+1;
end if;
If q_1=47999999 then q_1<=0;clk_1<=not clk_1;
else q_1<=q_1+1;
end if;
end if;end process;end;2.计量模块
计量模块主要完成计时和计程功能。计时部分:计算乘客的等待累积时间,本模块中en1使能信号变为1;当clk1每来一个上升沿,计时器就自增1,计时器的量程为59min,满量程后自动归零。计程部分:计算乘客所行驶的公里数,当行驶里程大于3km时。本模块中en0使能信号变为1;当clk每来一个上升沿,计程器就自增1,计程器的量程为
99km,满量程后自动归零。
图2计量模块实物图 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jiliang is port(start:in std_logic;
fin:in std_logic;
stop:in std_logic;
clk1:in std_logic;
en1,en0:buffer std_logic;
k1,k0:buffer std_logic_vector(3 downto 0);
m1,m0:buffer std_logic_vector(3 downto 0));
end jiliang;architecture rt2 of jiliang is signal w:integer range 0 to 59;
begin
process(clk1)begin if clk1'event and clk1='1' then
if start='1' then
w<=0;en1<='0';en0<='0';m1<=“0000”;
m0<=“0000”;k1<=“0000”;k0<=“0000”;elsif stop='0' then
if w=59 then
w<=0;
else w<=w+1;end if;if m0=“1001” then
m0<=“0000”;if m1=“0101” then
m1<=“0000”;else m1<=m1+1;end if;else m0<=m0+1;end if;if stop='0' then en0<='0';en1<='1';
else en1<='0';end if;elsif fin='1' then
if k0=“1001” then k0<=“0000”;if k1=“1001” then k1<=“0000”;
else k1<=k1+1;end if;else k0<=k0+1;end if;if stop='1' then en1<='0';if k1&k0>“00000010” then
en0<='1';
else en0<='0';end if;end if;end if;end if;end process;end rt2;3.控制模块
本模块主要是通过计量模块产生的两个不同的输入使能信号en0,en1,对每个分频模块输出的17hz,2hz的脉冲进行选择输出的过程;本模块实现了双脉冲的二选一;最终目的为了计费模块中对行驶过程中不同的时段进行计价。
图3控制模块实物图 Library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity kongzhi is port(en0,en1:in std_logic;
clk_in1:in std_logic;
clk_in2:in std_logic;
clk_out:out std_logic);
end kongzhi;architecture rt3 of kongzhi is begin process(en0,en1)begin
if en0='1' then
clk_out<=clk_in1;
elsif en1='1' then
clk_out<=clk_in2;
end if;end process;end rt3;4.计费模块
当计费信号start一直处于高电平即计费状态时,本模块根据控制模块选择出的信号从而对不同的单价时段进行计费。即行程在3km内,起步价8元;3km外以每公里1.7元计费,等待时间则按每分钟1.3元计费。c0,c1,c2分别表示费用的显示。
图4计费模块实物图 Library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity jifei is port(clk2:in std_logic;
start:in std_logic;
c0,c1,c2:buffer std_logic_vector(3 downto 0));end jifei;architecture rt4 of jifei is begin process(clk2,start)begin if start='1'then c2<=“0000”;c1<=“1000”;c0<=“0000”;
elsif clk2'event and clk2='1'then
if c0=“1001” then c0<=“0000”;
if c1=“1001” then c1<=“0000”;
if c2=“1001” then c2<=“0000”;
else c2<=c2+1;
end if;
else c1<=c1+1;
end if;
else c0<=c0+1;
end if;end if;end process;end rt4;5.显示模块
显示模块完成计价,计时和计程数据显示。计费数据送入显示模块进行译码,最后送至以十元,元,角为单位对应的数码管上显示。计时数据送入显示模块进行译码,最后送至以分为单位对应的数码管上显示。计程数据送入显示模块进行译码,最后送至以km为单位的数码管上显示。
图五显示模块实物图 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi is
port(clk:in std_logic;
b,c,d,e,f,g,h:in std_logic_vector(3 downto 0);
sg:out std_logic_vector(6 downto 0);
dian:out std_logic;
bt:out std_logic_vector(7 downto 0));
end;architecture one of xianshi is signal cnt8 : std_logic_vector(2 downto 0);signal a : std_logic_vector(3 downto 0);signal xiao:std_logic;begin p1:process(cnt8)
begin
case cnt8 is
when “000”=>bt<=not“00000001”;a<=b;
when “001”=>bt<=not“00000010”;a<=c;
when “010”=>bt<=not“00000100”;a<=d;
when “011”=>bt<=not“00010000”;a<=e;
when “100”=>bt<=not“00100000”;a<=f;
when “101”=>bt<=not“01000000”;a<=g;
when “110”=>bt<=not“10000000”;a<=h;
when others=>null;
end case;
if cnt8=“001” then xiao<='0';
else xiao<='1';end if;end process p1;p2:process(clk)
begin
if clk'event and clk='1' then
if cnt8<“110” then cnt8<=cnt8+1;
else cnt8<=“000”;
end if;
end if;
end process p2;p3:process(a)
begin
case a is
when “0000”=>sg<=not“0111111”;when “0001”=>sg<=not“0000110”;
when “0010”=>sg<=not“1011011”;when “0011”=>sg<=not“1001111”;
when “0100”=>sg<=not“1100110”;when “0101”=>sg<=not“1101101”;
when “0110”=>sg<=not“1111101”;when “0111”=>sg<=not“0000111”;
when “1000”=>sg<=not“1111111”;when “1001”=>sg<=not“1101111”;
when others=>null;
end case;
end process p3;
dian<=xiao;
end;
6.频率计模块
频率计模块为扫描电路提供高频率的时钟脉冲,是扫描电路正常工作。
图6频率计模块
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pulse1 is
port(clk: in std_logic;
--d:
in std_logic_vector(7 DOWNTO 0);
Fout: out std_logic);end;architecture one of pulse1 is signal full:std_logic;begin
p_reg:process(clk)
variable cnt8:integer range 48000000 downto 0;
begin
if clk'event and clk='1'then
if cnt8 =2399 then
cnt8:=0;
full<='1';
else cnt8:=cnt8+1;
full<='0';
end if;
end if;end process p_reg;p_div:process(full)
variable cnt2:std_logic;
begin
if full'event and full='1' then
cnt2:=not cnt2;
If cnt2='1'then fout<='1';
else fout<='0';
end if;
end if;end process p_div;end;
7、总结构图
四、实验现象
当start为按下时里程数开始计数,当里程数小于3时总金额恒为8元钱,当里程数大于3时总金额以17hz的频率加1。当按下stop时,里程数停止计数,时间开始计数,同时总金额以2hz的频率加1。当松开stop里程数又开始计数,当start松开时,总金额变为8元,里程数和时间都变为0.五、实验感想 经历这次实验是我对EDA编程有了新的认识,在自己编写出程序之后运行没有报错并不代表你的程序就对了。因为结果不一样那么程序还是存在着问题,那么这时应该一个模块一个模块的检查。在检查的时应该对相应模块做出波形图没看时候和自己的功能一样,是否达到所要的结果。在实在不知道哪里错了没我们可以请教老师,或者自己查询网络。我觉的编程时构思是相当重要的,这决定你的程序的复杂程度,越复杂的的程序出错的几率越大,当你修改的时候将会越困难,当然一个好的构思并不是你想的那么简单,这必须是多次编程累计的经验。当变得程序越多,你对程序了解的也就越深,自然而然你对编程的熟练度也就有很大的提升。这也就告诉我们,应盖在学习的时候好好学习才对,别老想着滥竽充数。