第一篇:UG课设说明书
华东交通大学机电工程学院
UG加工课程设计说明书
学院 机电工程学院 专业 材料成型及控制工程 班级 一 姓名 王星福 周武斌 学号 20090310040128(29)
题目 肥皂盒下壳
指导老师 周慧兰__ 实训时间 第17周
华东交通大学机电工程学院
2.通过拉伸、、旋转、剪切以及倒圆角的各种工具获得三维造型。
三维造型俯视图
三维造型地面外观
华东交通大学机电工程学院
4.通过复制,分型面拉伸,并且进行合并处理获得分型面。
华东交通大学机电工程学院
下图所示:
8.用proe打开cavity.prt文件,通过保存副本的方式将型腔零件转换成“**.stp”格式。于是变获得了可供UG进行CAM处理的cavity.stp文件。
华东交通大学机电工程学院
五. 型腔零件的UG数控加工设计
1.建模模式下,利用长方体工具绘制毛坯,毛坯比型腔的四周及上面高出2mm,留予加工表面。2.开始---加工,开始设计加工工序,“指定部件”选择调入的型腔零件,“指定毛坯”选择刚绘制的毛坯。
华东交通大学机电工程学院
4.模型树中,复制第一道工序,并进行粘贴,右键编辑粘贴得到的工序。每刀深度改为1mm.每齿进给量0.1nn/z,切削速度m/min,加工余量0.2mm,刀具改为(参数由金属切削手册查得):
该工序加工的效果
5.第三道工序----腔体内精铣
该工序的加工余量为0,刀具为立铣刀,每刀深度改为0.2mm.每齿进给量0.1nn/z,切削速度m/min,加工余量0.2mm,刀具改为:
华东交通大学机电工程学院
7.利用平面铣加工浇口浇道,具体方法为,先在建模模式下绘制直线。
以此作为参照选为“部件边界”,“指定底面”则通过平面的偏距获得浇口、浇道的底部平面。这里的加工为选用与要加工槽大小相同刀具一次成型。
三把刀的刀具参数如下:
浇口,浇道的加工效果:
华东交通大学机电工程学院
固定孔的加工效果
9.到此肥皂盒型腔零件的CAM设计完成。最终加工效果图如下
第二篇:ug课程设计说明书
三维CAD 课程设计说明书
题 目: 二级圆柱齿轮减速器造型设计 院(部): 机械工程学院 专业: 机械设计制造及其自动化 班级:0801 学生姓名: 李维 指导教师:
何丽红 谭加才 完成日期: 2011年1月 8日
目录
第1章 前言.........................................................3 1.1引言..........................................................3
1.1.1减速器的功能..............................................3 1.1.2减速器传动方案............................................3 1.2任务安排......................................................4 1.2.1基本任务:....................................................4 1.2.2设计内容及要求................................................4 1.2.3进度安排:....................................................5 第2章 减速器零件建模...............................................5 2.1引言..........................................................5 2.2零件的建模....................................................6 2.2.1大的直齿轮建模............................................6 第3章 工程制图.....................................................9 3.1箱盖的转换....................................................9 第4章 虚拟装配....................................................12 4.1引言.........................................................12 4.2总装配图.....................................................12 4.2.1总装配图...................................................12 心得体会...........................................................15 参考文献...........................................................17
第1章 前言
1.1引言
目前大学生就业压力极大,要想毕业后找到一份不错的工作的话,就一定要有足够的知识水平,作为一个工程技术人员,掌握UG绘图的本领是必须的。
另外现在的实际生产中,手工制图已经成为历史,为此熟练掌握至少一项的制图软件是十分用必要的,此外将二维图转为三维图也是十分重要的一项技能。是作为工程型人才必备的基本素质。
1.1.1减速器的功能
本品为二级减速器,其功能为连接电动机和工作机,将电动机相对于工作机高速的动力经过其内部的两对齿轮转变为较为低速的。
1.1.2减速器传动方案
高速端连接电动机的,其为一对直齿轮传动,再由一对斜齿轮传动至工作机。
传动方案一般用运动简图表示。拟定传动方案就是根据工作机的功能要求和工作条件,选择合适的传动机构类型,确定各类传动机构的布置以及各组部分的联接方式,绘出传动装置的运动简图
54213图1.1二级圆柱齿轮减速器传动方案
1-电动机 2-联轴器 3-减速器 4-联轴器 5-工作机
1.2任务安排
1.2.1基本任务:
结合各人已完成机械原理、机械设计等课程设计成果,综合应用UG等CAD软件完成齿轮减速器三维实体造型及工程图设计。
1.2.2设计内容及要求
1)减速器零部件三维造型设计。
建模必须依据设计图纸表达出零件的主要外形特征与内特征,对于细部结构,也应尽量完整的表达。
2)应用工程图模块转化生成符合国家标准二维工程图。
装配图上应标注外形尺寸、安装尺寸、装配尺寸以及技术特性数据和技术要求,并应有完整的标题栏和明细表。
零件工程图上应包括制造和检验零件所需的内容,标注规范(如形位公差、粗糙度、技术要求,对齿轮还要有啮合参数表等)。
3)减速器虚拟装配。
将各零件按装配关系进行正确定位,并生成爆炸图。4)撰写课程设计说明书。
说明书应涵盖整个设计内容,包括总体方案的确定,典型零件造型的方法,工程图生成过程,虚拟装配介绍,心得体会(或建议)等,说明书的字数不少于3千字。
1.2.3进度安排:
第一天:布置设计任务,查阅资料,拟定方案,零部件造型设计; 第二天:零部件造型设计; 第三天:工程图生成;
第四天:虚拟装配、撰写说明书; 第五天:检查、答辩。
第2章 减速器零件建模
2.1引言
UG软件建模是基于特征的复合建模,是显示建模、参数化建模、基于约束的建模技术的选择性组合。
显示建模:显示建模的对象是相对于模型空间,而不是相对于彼此建立。对一个或多个对象所做的变化不影响其他对象。
参数化建模:将用于模型定义的尺寸参数和参数值随模型存储,参数变量可以彼此引用。从而建立模型的各个特征之间的关系。可以通过编辑参数变量改整
个模型。
基于约束的建模:模型几何体的一组设计规则的定义,称之为约束。模型是通过约束或求解的。这些约束可以是尺寸约束或几何约束。
2.2零件的建模如图2.1
图2.1 2.2.1大的直齿轮建模
建立齿轮的平面图进行回转并建键槽如图2.2
图2.2
在齿轮腹板开减重孔如图2.3
图2.3
输入表达式如图2.4 7
图2.4
生成渐开线如图2.5
图2.5
生成齿如图2.6 8
图2.6
第3章 工程制图
3.1箱盖的转换
打开箱盖模型图如图3.1 9
图3.1
设置图纸为A3建立基本视图如图3.2
图3.2
将图导出CGM如图3.3 10
图3.3
将图导出DXF/DWG在CAXA中打开调入A3图框如图3.4
图3.4
第4章 虚拟装配
4.1引言
零件之间的装配关系就是零件之间的位置约束,也可以见零件组装成组件,然后再将多个组件装配成总装配件。
根据装配的模型和零件模型的引用关系,UG软件有3种创建装配体的方法,即从顶向下装配、从底向上装配和混合装配。
自顶向下装配:如果装配模型中的组件存在关联,可以基于一个组件创建一个组件,即首先完成装配级的装配模型,然后再根据装配级模型创建其子装配件。也可以首先完成顶层装配模型文件,然后在装配体中创建零部件模型,再将其中的子装配体另外存储。
从底向上装配:先创建零件模型,再组合成子装配模型,最后由子装配模型生成总装配件的装配方法。
混合装配:混合装配是将自顶向下装配和从底向上装配结合在一起的装配方法,这将增加装配设计的功能。例如,用户开始用从底向上的装配方法,然后为了设计的顺利进行改用自顶向下装配的方法,这两种方法之间互相转换
4.2总装配图
4.2.1总装配图
根据配对与中心的方法装配好端盖如图4.1 12
图4.1
同样方法装好轴承如图4.2
图4.2
把轴装好如图4.3 13
图4.3
装好齿轮如图4.4
图4.4
盖好盖并装好其余零件如图4.5 14
图4.5
心得体会
说句实话,在没搞UG课程设计之前,我对UG这个制图软件还很不熟练很所东西都不会,CAD还马马虎虎,但是在这一个星期的UG课程称设计中,我学到了很多,从基本不会到慢慢熟悉,这种过程真的很美妙,这一个星期我感觉真的很充实,不过期间我也搞得很烦燥,有的时候也想干脆不搞算了,但是做事情没有一帆风顺的,一个人要想成为一个能在社会上立足的人的话,就一定要在失败,困难中学到知识,所以我还是在老师和同学的帮助下完成了本次设计任务,课程设计其实很长知识,很有意义。
这次UG课程设计加深了我对这款软件的认识,通过这次课程设计,使我熟悉了很多以前不懂得不熟悉的操作及其功能,通过查阅书籍或上网查阅资料并询问同学,使自己对这款软件印象更深刻了,既巩固了以前所学的知识也学到了很多书本上没有学到过的知识。使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有所学的理论与实践相结合起来,从理论中得出结论才能真正为啥社会服务,从而提高自己的实际动手能力和独立思考的能力。
这次课程设计跟我们以后的工作性质很相似,很多机设专业的学生毕业工作后去从事技术研发,这就要求自己有一定的专业素养,并且有独立的思考能力,会熟练的利用一门或几门制图软件,这次整个三维设计均是利用UG软件制图,它运用方便,易修改,速度快,且易学好懂,不过还有很多不是太熟练的地方,这就要求我以后多加练习,更加熟练的运用此款软件,为以后找工作加些坚实的筹码。
本次的课程设计,培养了我综合应用机械设计课程及其他课程的理论知识和理论联系实际,应用生产实际知识解决工程实际题目的能力;在设计的过程中还培养出了我们的团队精神,同学们共同协作,解决了很多个人无法解决的题目;在今后的学习过程中我们会更加努力和团结。
这次课程设计使我收获颇大,真切感受到ug的强大功能,作为一名机械专业的学生,我们应该熟练掌握ug的各项功能,快速制作出三维实物,还使我学到了很多的专业知识,也经历了不少艰辛,培养了我独立思考的能力,也体会到了团队的力量,与同学们一起解决难题,也锻炼了我的毅力,不怕困难不怕失败,拥有恒心去解决任何的困难,这正是以后我们工作中所需要的,对以后的学习和生活有着重要的影响。通过这次课程设计我也找到了自己在很多方面的额不足,以后认真学习各项技能,充实自己,在实践中学习,为以后走向社会打下坚实的基础。
参考文献
[1]李丽华,赵娟,唐宏伟等。UG NX6.0 入门与提高。电子工业出版社。2010.1 [2]王昆。机械设计课程设计。高等教育出版社。1996.12 [3]朱理.机械原理.北京;高等教育出版社;2004.4 [4]徐锦康.机械设计.北京;高等教育出版社;2004.4
第三篇:UG减速器课程设计说明书
UG NX 7.0装配与运动仿真课程设计说明书
设计内容——(二级齿轮减速器
专 业 :机械设计制造及其自动化
班 级 : 1201 班
姓 名 : 闫佳荣
学 号 : 20121804141 指导老师 : 马利云
吕梁学院学院 矿业工程系
完成时间 : 2015 年
月日)
目 录
第一章 前言.............................................................(3)
第二章 减速器零部件三维造型设计.........................................(3)
2.1 箱座建模主要参数及主要过程.....................................(3)
2.2 大端盖建模主要参数及主要过程...................................(7)
2.3轴及轴上零件建模主要参数及主要过程.............................(8)
第三章 虚拟装配..........................................................(11)
3.1制作装配图.....................................................(11)
第四章 心得体会..........................................................(13)第五章 参考文献..........................................................(14)
机械设计课程设计
第一章 前言
计算机辅助设计(CAD)技术是现代信息技术领域中设计技术之一,也是使用最广泛的技术。UG作为中高端三维CAD软件,具有功能强大、应用范围广等优点,应此被认为是具有统一力的中高端设计解决方案。
UG由许多功能模块组成,每一个模块都有自己独立的功能,可以根据需要调用其中的一个或几个模块进行设计。还可以调用系统的附加模块或者使用软件进行二次开发工作。下面介绍UG集成环境中的四个主要CAD模块。
1.基础环境 基础环境是UG启动后自动运行的第一个模块,是其他应用模块运行的公共平台。
2.建模模块 建模模块用于创建三维模型,是UG中的核心模块。UG软件所擅长的曲线功能和曲面功能在该模块中得到了充分体现,可以自由地表达设计思想和进行创造性的改进设计,从而获得良好的造型效果和造型速度。3.装配模块 使用UG的装配模块可以很轻松地完成所有零件的装配工作。在组装过程中,可以采用自顶而下和自下而上的装配方法,可以快速跨越装配层来直接访问任何组件或子装配图的设计模型。
4.制图模块 使用UG三维模型生成工程图简单方便,只需对自动生成的视图进行简单的修改或标注就可以完成工程图的绘制。同时,如果在实体模型或工程图二者之一做任何修改,其修改结果就会立即反应到另一个中,使得工程图的绘制更加轻松快捷。
这次二级减速器造型设计能够使我们学习机械产品UG设计基本方法,巩固课程知识,提高动手实践能力,进一步提高运用计算机进行三维造型及装配设计、工程图绘制方面的能力,了解软件间的数据传递交换等运用。
第二章
减速器零部件三维造型设计
2.1 箱座建模主要参数及主要过程
1、绘制箱座底座,如图2.1-1所示
利用草图和拉伸操作完成箱座大至尺寸的建模
机械设计课程设计
图2.1-1
2、箱体的壁厚取12,如图2.1-2所示
图2.1-2
3、利用腔体操作完成箱座内腔、布尔操作将箱座的组成单元求和、求差如图2.1-3 2.1-4 2.1-5
图2.1-3
机械设计课程设计
图2.1-4
图2.1-5
4、箱体通过拉伸打孔等特征操作最后箱体如图2.1-6
图2.1-6
5、利用孔、螺纹特征工具制作油塞孔、视孔、通气器孔及吊环孔,如图2.1-7所示
机械设计课程设计
图2.1-7
8、油塞螺纹孔的创建参数如图2.1-8所示
图2.1-8
9、倒圆角、倒斜角操作完善箱座建模
图2.1-9
9、用到的其他特征和操作:插入垫块,建立平面和基准
机械设计课程设计
图2.1-10 2.2 大端盖建模主要过程
1、建立草图、拉伸完成箱盖大至外形建模2.2-1
图2.2-1
4、运用拉伸、利用孔完成凸台上螺栓沉头孔的建模如图2.2-2
图2.2-2
5、运用镜像操作,完成箱盖主体建模即完成大端盖建模如图2.2-3
机械设计课程设计
图2.2-3
6、建立草图、拉伸、布尔操作,完成箱座顶部透气盖板处的建模;孔操作和矩形阵列完成透气盖板安装螺栓孔如图2.2-4
图 2.2-4
7、利用倒斜角、倒圆角完善箱盖建模,完成效果图如图2.2-5
图 2.2-5
2.3轴及轴上零件建模主要参数及主要过程
1、轴的建模:建立草图、回转(台阶轴)——草图,拉伸、布尔操作(键槽)
机械设计课程设计
——倒斜角如图2.3-1
图2.3-1
2、利用UG斜齿轮建模插件,输入参数,自动生成斜齿轮
图2.3-2
3、运用键特征生成键如图2.3-3
图2.3-3
4、运用拉伸和倒角特征完成最后零件如图2.3-4
机械设计课程设计
图2.3-4
5、轴承端盖:草图——回转——孔——倒斜角、倒圆角如图2.3-5
图 2.3-5
6、通气盖板 草图——拉伸——孔——矩形阵列——倒圆角
图 2.3-6
7、通气塞
图 2.3-7
机械设计课程设计
8、螺栓和起盖螺钉
图 2.3-8
9、轴承的建模
轴承是标准件,利用UG软件插件获得轴承模型
图 2.3-9
10、轴套按照实际尺寸,建立草图——回转获得
图 2.3-10 第三章虚拟装配
3.1制作装配图
1)新建文件设置如图并打开,开始-装配如图3.1-
1、3.1-2所示
机械设计课程设计
图3.1-1 图3.1-2 2)以轴为基础,将轴承、斜齿轮、健、套筒装配成三个部件——以箱座为基础,装配已装配完成的三个部件、箱盖、通气盖板、通气塞、轴承端盖、螺栓等
3)点击“添加组件”以绝对原点的方式添加零件如图3.1-3
图3.1-3 4)点击“添加组件”以通过约束的方式添加其它组件,如图3.1-4所示
机械设计课程设计
图3.1-4 5)分别添加零部件最后装配图渲染效果如下图3.1-5
图3.1-5
第四章 心得体会
虽然课程设计要求的内容都有完成,不过因为水平有限并且在所难免的无法顾及到方方面面,因此该项课程设计还存在很多不完善甚至是错误的地方。我们希望能利用课程设计之后的时间慢慢将它完善,做到做好。再次感谢同学和老师的帮助,我会更加努力的
通过这次设计,使我认识到上课时的内容虽然已经很很丰富,但如果没有实践的话,学习再多的理论也只是纸上谈兵,就像用到的各种符号,往往就同其它
机械设计课程设计 的一些符号相混,结果往往是张冠李戴。但如果书上的知识没有掌握,在设计的过程中会遇到很多麻烦,就像有许多公式记不起来,结果是弄得自己手忙脚乱,只好再从书上查找;通过这次设计,我查找资料的能力和软件操作能力也得到了很大的提高。
经过这次课程设计,我的三维造型能力得到很大的提高。在这个二级减速器造型设计过程中,我的UG制图知识得到了进一步的巩固,同时还知道了许多的技巧。例如,箱体上螺纹孔的创建。我还有一个收获就是学会了查资料来解决问题,我本来不知道圆柱直齿轮是怎么建模的,于是我到图书馆找了几本书回来看,最后,我才懂得用扫掠的方法来画斜齿轮。所以,我应该感谢这次课程设计使我获得了进一步的提高。
这次的设计,使我也懂得所学的理论知识要做到真正的融会贯通,就必须是理论同实践相结合。在现实生活中要勤于用学过的知识分析遇到的问题。
第五章 参考文献
[1] 槐创锋等.UG NX7.0中文版机械设计从入门到精通.北京:机械工业出版社,2010.[2] 吴宗泽等.机械设计课程设计手册.北京:高等教育出版社,2006.[3] 吴明友.UG NX6.0中文版产品建模.北京:化学工业出版社,2010.[4] 濮良贵等.机械设计.北京:高等教育出版社.北京:高等教育出版社,2006.
第四篇:数据结构课设
数据结构课设 大整数计数器 1.问题描述
实现大整数(200位以内的整数)的加、减、乘、除运算。2.设计要求
设计程序实现两个大整数的四则运算,输出这两个大整数的和、差、积、商及余数。
3.数据结构
本课程设计采用顺序串来实现。4.问题分析
由于整数数据存储位数有限,因此引入串的概念,将整型数据用字符串进行存储,利用字符串的一个字符存储大整数的一位数值,然后根据四则运算规则,对相应位依次进行相应运算,同时保存进位,从而实现大整数精确的运算。具体设计思路如下:
(1)计算大整数加法时,采用数学中列竖式的方法,从个位(即字符串的最后一个字符)开始逐位相加,超过或达到10则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。
(2)计算大整数减法时,首先调用库函数strcmp判断这两个大整数是否相等,如果相等则结果为0,否则用compare函数判断被减数和减数的大小关系,进而确定结果为正数还是负数,然后对齐位依次进行减法,不够减则向前借位,直至求出每一位减法之后的结果。
(3)计算大整数乘法时,首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。
(4)计算大整数除法时,类似做减法,基本思想是反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数,这样便可计算出大整数除法的商和余数。
需求分析(1)任何一个表达式都是由操作数、运算符和界限符组成的,我们称之为单词.(2)表达式求值首先要符合四则运算规则: ① 先乘除,后加减 ② 从左到右进行运算 ③ 先括号内,后括号外(3)功能实现: ① 若当前单词为数字串,则压入数值栈 ② 若当前单词为运算符并大于运算栈的栈顶符号,则进栈 ③ 若当前单词为运算符并等于运算栈的栈顶符号,去括号,输出 ④ 若当前单词为运算符并小于运算栈的栈顶符号,则进行运算
课程设计的目的 通过课程设计全面掌握《C语言程序设计》关键知识点,掌握C语言中数组、指针、结构体、文件等方面的基本知识。
通过课程设计了解并掌握C语言程序设计的方法,熟悉C程序设计的开发环境及C程序的
调试过程。
培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研有关问题,学会自己分析、解决问题的方法。
课程设计的任务和要求 任务: 编程求出输入的两个正整数之和,这两个正整数的可能达到200位。
要求:
输入:
共有两行,第一行为第1个正整数;第二行为第2个正整数。
输出:
2个正整数之和。
主要参与成员
姓 名 学 号
系 别 班 级 主要作用(分工)
成果形式
设计 软件 作品 其他:
完成情况及以后的拓展设想 通过用C语言编写函数基本实现了大整数相加这个程序,但该程序仍存在一些不足,还可以加上一些语句使程序具有容错功能,并且可以正确计算一个负数和一个正数相加。
课 程 设 计 鉴 定 情 况 表 小组鉴定意见
小组长签名:
年 月 日
指导教师意见
教师签名:
****年**月**日
课程设计成绩 优 良 及格 不及格 教研室意见
年 月 日 备注 《C语言程序设计》课程设计报告书 作者:廖 序 课程设计概述 课程设计名称
大整数相加 任务要求: 编程求出输入的两个正整数之和,这两个正整数的可能达到200位。
输入:
共有两行,第一行为第1个正整数;第二行为第2个正整数。
输出:
2个正整数之和。开发环境: C语言。C语言是目前世界上流行、使用最广泛的高级程序设计语言。1972年,C语言在美国贝尔实验室里问世,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准。
目前,在微机上广泛使用的C语言编译系统有MicrosoftC、Turbo C、Borland C等。这些C语言版本不仅实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
C语言的特点: C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。
此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
参考资料
李铮、叶艳冰、汪德俊,C语言程序设计基础与应用,清华大学出版社,2005 [2]CSDN技术中心
二、概要设计
为了实现大整数相加这个程序,将程序划分为了三个模块: 输入数据。运算。输出结果。
首先定义了子函数Input()来存储用户输入的两个加数,为了满足任意位数的两个大整数相加,在子函数Input()中嵌套调用子函数Init()使sum数组里面存放的数初始化为”0”。
然后定义子函数Long_Add()使两个大整数作加法运算,从后面往前面相加,附带进位。定义子函数Output()实现输出结果。
最后如下图所示,在主函数main中调用Input(),Long_Add(),Output()三个子函数实现程序。
三、详细设计
程序的流程图:
四、调试过程 第一次 测试数据a=***7,b=111111 编译运行后不能输出结果,检查函数后编译正确。再次分析,发现如果直接把a,b,sum定义为unsigned int型的话,计算出来的和的范围只能在0~65535之间,否则就会出现错误。尝试将a,b,sum存放到字符数组中,从个位开始,一位一位相加。
第二次 测试数据a=***7,b=111111 编译运行后仍不能输出结果。分析原因,在用于输出的子函数Output()中,输出数组字符数组sum[]前未确定和的最高非零位。
尝试加入for(i=0;i 第三次 测试数据a=99999919,b=99 编译运行后发现计算出来结果不正确。经过分析,函数中没有对最后 一个进位进行处理。 尝试加入while(carry > 0)语句,再次进行调试。 { tempsum = sum[i]-'0'+carry;sum[i] = tempsum%10+'0';carry = tempsum/10;i--;} 第四次 测试数据a=99999919,b=99 编译运行后得到正确结果。 第五次 随意输入几组数据进行测试,结果都是正确的。程序得到实现。 五、结论与体会 通过不断的调试、修改,本课程设计最终实现了200位以内的两个大整数相加,但程序还 可以进一步完善,程序中仍存在一些不足之处,比如缺少容错功能,不能准确计算负整数加正整数,等等问题 虽然C语言程序设计在上学期做为我们的必修课已经学习过了,但书到用时方恨少,这次课程设计的学习程序设计中暴露出的我自身的问题更是非常明显。 一开始看到题目认为非常简单,直接将两个数都定义为整型。编写程序并运行后发现并不能达到题目的要求,计算出来的和只能小于等于65535,否则就会出现错误。分析后,将数据作为字符串来处理,用for循环语句从存数的字符数组中一位一位的取数出来,按照数位对齐,从个位开始,按位相加,逢十进一的运算规则进行运算。最后用字符输出函数putchar()输出计算出来的结果。由于程序偏大且较复杂,将程序划分为了输入数据、运算、输出数据三个子程序。数次编译调试后,最终使程序得以实现。 经过三个星期的上机实践学习,使我对C语言有了更进一步的认识和了解,让我能够进一步的掌握和运用C语言来编写程序。要想学好C语言要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处和薄弱环节。 首先,基础掌握不牢固,对于C语言中的许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,查阅课本,设计效率很低。 其次,经典算法掌握不牢。在完成作业的过程中还需查阅书籍和借鉴他人。 再次,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。 并且对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 六、源程序清单 #include t;string.h> #define Max 1000 char sum[Max+1];/*和*/ char a[Max],b[Max];/*两个加数*/ int len1,len2;void Input(char a[],char b[]){ int i,len;void Init(char a[]);/*对Init()函数进行声明*/ printf(“Please enter two integer:n”);scanf(“%s %s”,a,b);len1=strlen(a);len2=strlen(b);Init(sum);len=strlen(a);for(i=len-1;i>=0;i--)sum[Max+i-len] = a[i];} void Init(char a[]) { int i;for(i=0;i void Long_Add(char sum[],char new[]){ int i,j;int len;int tempsum;int carry = 0;/*进位*/ len = strlen(new);/*从个位开始,按位相加,逢十进一*/ for(i=Max-1,j=len-1;i>=0,j>=0;i--,j--){ tempsum = sum[i]-'0'+new [j]-'0'+carry;sum[i] = tempsum%10+'0';carry = tempsum/10;} while(carry > 0)/*处理最后一个进位*/ { tempsum = sum[i]-'0'+carry;sum[i] = tempsum%10+'0';carry = tempsum/10;i--;} return;} void Output(char sum[]){int i,n;/*寻找和的最高非零位*/ for(i=0;i Long_Add(sum,b);Output(sum);getch();return 0; 计算机网络应用课程设计 报告 系(院): 计算机科学学院 专业班级: 计科11511 姓 名: 钟灿均 学 号: 201503687 指导教师: 余绍文 设计时间: 2017.6.12-2017.6.23 设计地点: 12教1楼机房 一、课程设计目的和意义 计算机网络课程设计的目的,是为了让我们更深入地掌握计算机网络的核心内容,实现理论与实践相结合。让学生用具体的实践成果,体现对理论知识的掌握程度。有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。其基本目的是: 1. 培养学生理论联系实际的设计思想,训练综合运用所学的基础理论知识,结合生产实际分析和解决网络应用中问题的能力,从而使基础理论知识得到巩固和加深。2. 学习掌握网络应用工程的一般设计过程和方法。 二、设计题目和要求 1.编写程序,实现系统的基本功能; 2.要有用户界面:要求至少采用文本菜单界面;鼓励采用图形菜单界面; 3.写课程设计报告,内容包括: 封面(参见附录I) 需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出功能模块图和流程图。同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。 概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。 详细设计:包括模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等),每个模块的算法设计说明(可以是描述算法的流程图)。其中源程序要按照写程序的规则来编写,结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 运行结果:包括典型的界面、输入和输出数据等; 总结:包括课程设计中遇到的问题,解决问题的过程及体会、收获、对课程设计的认识与思考等。 附录:包括主要程序清单,要有适当的注释,使程序容易阅读。 开发环境:windows 10 开发工具: vs2008 题目3:基于UDP协议的简易聊天机器人 设计目标: 1.了解Socket通信的原理,在此基础上编写一个聊天程序; 2.理解upd原理;课程设计系统组成及模块功能: 此课程设计实现了基于UDP的客户/服务器通信程序,需要实现以下一些基本功能: 1.客户端连接聊天机器人服务器; 2.消息发送:客户端发送消息给机器人服务器。 3.消息接收:客户端接收到机器人服务器发送给他的消息。4.可以有多个客户端同时连接 5.智能回复功能:根据用户发送的消息内容,稍微有点智能回复。 运行效果: 服务器端和客户端截图 三、设计内容 1、UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。 2、UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。 3、UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。 4、UDP传送数据较TCP快速,系统开销也少。 5、由于缺乏拥塞控制(congestion control),需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中增加主机拥塞控制来减小这个潜在的问题。 从以上UDP协议特点可知,UDP提供的是无连接的、不可靠的数据传送方式,是一种尽力而为的数据交付服务。 1.服务端 1.2.3.4.5.加载协议栈; 创建套接字; 将套接字绑定到一个本地地址和端口bind; 等待接收数据recvfrom;关闭套接字; 2.客户端 1.2.3.4.加载协议栈; 创建套接字socket; 向服务器发送数据sendto;关闭套接字; 3.相关代码显示:(客户端) int main(int argc, char* argv[]){ system(“@color 0e”);WORD socketVersion = MAKEWORD(2, 2);WSADATA wsaData;if(WSAStartup(socketVersion, &wsaData)!= 0){ } sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_port = htons(8888);sin.sin_addr.S_un.S_addr = inet_addr(m);int len = sizeof(sin);return 0;以上代码为相关版本信息及热启动的一些操作;; 结构体端口号及相关地址信息以及转化函数,将输入的信息转化为计算机可识别的二进制代码,进行相关构造 char * sendData = new char[255];cout << “主人:”;cin >> sendData;while(strcmp(sendData, “#”)!= 0){ sendto(sclient, sendData, strlen(sendData), 0,(sockaddr *)&sin, len);char recvData[255];int ret = recvfrom(sclient, recvData, 255, 0,(sockaddr *)&sin, &len);if(ret > 0){ } recvData[ret] = 0x00;cout << “机器人:”;printf(recvData);4.相关代码展示:(服务端) SOCKET serSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if(serSocket == INVALID_SOCKET){ } printf(“socket error!”);return 0;3 if(bind(serSocket,(sockaddr *)&serAddr, sizeof(serAddr))== SOCKET_ERROR){ } sockaddr_in remoteAddr;int nAddrLen = sizeof(remoteAddr);char * sendData = new char[255];char recvData[255];while(true){ int ret = recvfrom(serSocket, recvData, 255, 0,(sockaddr *)&remoteAddr, //printf(recvData);if(ret > 0){ } struct Ro { char recv[255];char send[255];recvData[ret] = 0x00;printf(“接受到一个连接:%s rn”, inet_ntoa(remoteAddr.sin_addr));cout << “主人:”;printf(recvData);printf(“bind error!”);closesocket(serSocket);return 0;以上为对套接字的绑定及判断绑定是否成功,以及对于相关信息的初始化 &nAddrLen);}Ro;FILE *fp;fp = fopen(“G:机器人问答机制.txt”, “r”);while(!feof(fp)){ } fscanf(fp, “%s %s”, Ro.recv, Ro.send);if(strcmp(recvData, Ro.recv)== 0){ } else { } strcpy(sendData, Ro.send);break;strcpy(sendData, “对不起,我不知道”);4 fclose(fp);cout << endl;cout << “机器人:” << sendData << endl;sendto(serSocket, sendData, strlen(sendData), 0,(sockaddr *)&remoteAddr, nAddrLen); 四、设计成果以及心得 1.成果 2.心得 通过对课设的相关的操作,加强了对于相关知识的理解,对于知识的应用也得以加强,在课设过程中,聊天机器人制作较为有趣,对于TCP与UDP的通信方式有了进一步的理解和加强,对于socket编程的相关基础也得以进一步的理解和学习。在今后的学习过程中希望可以将所学知识应用于实际,学以致用。而且对于课设中存在的问题和不足,以及通过老师的讲解,对一些算法加以分析和改进,从而不断完善课设内容,对内容的理解得以加深。 指导老师意见: 成绩: 教师签名: 2017年6月23日第五篇:计算机网络课设