CAD课程设计报告 | 您所在的位置:网站首页 › cad课程设计报告内容旋风除尘器 › CAD课程设计报告 |
CAD课程设计报告
时间:2023.7.19
中南大学 《工程CAD》课程设计报告 学院: 班级: 姓名: 学号: 20xx年x月x日 目 录 一、 课程设计目的 ………………………………………2二、 课程设计的内容……………………………………2 三、 绘制平面图的操作流程……………………………2 四、 关键与难点问题…………………………………………5 五、 课程设计心得……………………………………………5 一.课程设计的目的 本课程设计是在课程结束后,为复习巩固所学基本理论、基本知识,加强学生对房屋建筑的感性认识,尽快了解建筑专业方面的有关情况,有针对性地安排实践性教学环节,培养学生观察问题、思考问题的能力,并对房屋建筑的组成产生一定认识。同时,为适应当今工程制图的计算机绘图化,培养学生使用计算机绘制工程图样的能力,提高学生计算机操作水平,使学生掌握AutoCAD软件包,更加熟练的运用之前学到的CAD中的各种指令,学到更多的制图方法和操作技巧 用计算机绘制建筑施工图,可以为今后从事计算机辅助设计工作打下基础。 Auto CAD设计领域正在经历着由传统设计工具向数字设计工具的革命性转变。AutoCAD 20xx新功能、安装、AutoCAD设计中心、二维图形的绘制和编辑、尺寸和文本标注、图层、图块、线型及颜色、图案填充、面域和查询、三维图形的绘制和编辑、实体造型、着色与渲染、AutoCAD的定制与开发、AutoCAD文件数据管理、AutoCAD的网络功能等。 通过练习绘制建筑平面图,让我们进一步了解各种命令按钮和方法的使用,各种属性和格式的设置,使最后的成图既美观又实用;通过识图工程施工图,加强学生阅读工程施工图的能力。在反复的操作中更加熟练的掌握CAD这个软件。同时作为测绘工程的学生,学习好CAD这门课并且不断进行练习操作,是十分重要的。 二.课程设计的内容 熟悉Auto CAD中各项功能,对中南大学校门口十字路口实地测量后设计地下通道,并利用Auto CAD软件绘制,二维,三维及效果图 三.绘制三维图的操作流程 三维及二维图的绘制大体由如下几个步骤组成: 1、环境设置 ①设置单位 单位设置为cm ②设置图层 图形包含了楼梯、楼梯扶手、雨棚栏杆、雨棚玻璃、衬砌、人行道、等图层。 ②设置捕捉模式(选择交点、端点、中点等) 2 、三维绘图 ①先绘制墙体 在“衬砌”图层上绘制地下通道的墙体,口字型布局,两横两竖共四个通道组成,步骤为绘制长方形,偏移,拉伸,移动,差集,旋转,移动,并集后组成 口字型通道 ,并保留一个未掏空的通道用以和土体差集 ②绘制楼梯 打开“楼梯”图层,改为左视图绘制,用多线段绘制闭合的楼梯左视图,通过拉伸得到楼梯,再用复制,旋转,移动等操作得到四个出口的楼梯 ③绘制楼梯扶手 仅打开“楼梯扶手”与“楼梯”两个图层,绘制1.2m高的线段,复制得到栏杆,用多线段绘制水平栏杆,画圆采用扫掠操作使其变为三维实体,在水平栏杆两端绘制球体,并集使其成为一个整体,再用复制,旋转,移动等操作得到四个出口的楼梯扶手 ④绘制雨棚基础 打开“雨棚基础”图层,绘制雨棚基础,运用并集等操作 ⑤绘制雨棚栏杆 打开“雨棚栏杆”图层,先用线段及多线段绘制雨棚栏杆,在绘制10*15的长方形,通过扫掠操作绘制栏杆 ⑥绘制雨棚玻璃 用多线段绘制玻璃左视图拉伸即可 ⑦绘制地下通道周围土体 打开“路面”图层绘制长方形,拉伸,用未掏空的通道用以和土体差集 ⑧绘制路边的人行道 打开“人行道 ”图层,运用直线,圆角,合并等操作绘制路边区域再拉伸15cm 3.渲染 仅打开要渲染的图层,关闭其他图层,在制材浏览器中选择适当的制材添加到活动的工具选项板,并渲染 4.补充 为使图的效果更好一些,在新建的一幅图中绘制了中南大学校门,路灯及广告牌,通过复制,粘贴至三维图中并移动至适当位置 5.绘制平面图 绘制完三维图后,二维图较简单,由三维图数据绘制二维图,包括俯视图,左视图 6.标注 对图形进行标注,添加文字。通过综合应用线性标注和连续标注,快速地将图形大体标注上,对于图内部的标注,在标注的时候我更改标注文字高度,运用旋转命令,使标注更加合理化和美观化。在图上添加说明文字时,我先新建了3种基本的文字类型,(其他的都与这三种的格式一样),通过复制和修改文字内容的方法将之注写完。 1.标注尺寸:需要改变标注样式,选择线性标注、连续标注等; 2.标注各种文字说明:采用“DTEXT”命令或直接选择“文字”按钮。 7.出图 进入布局卡,插入图框,填写标题栏,设置打印属性,最终打印成图。 四.关键与难点问题 这个建筑平面图比较复杂,刚开始觉得有点无从下手,需要极大的耐心去完成它并把它做到最好。在此次课程设计中,我遇到了以下问题: 1、一开始设置图层的时候有点迷茫,不知道要设置多少图层、哪些图层; 2、创建块“Block”时要注意基点的选择,否则会出现错位,还有,对于块的使用还不是很熟练,老是出现错误,这一点还有待加强; 3、使用CAD绘图时,没有想到此软件的特点,刚开始还是采用手工绘图的思想,并没有比手工绘图简便多少,例如,可以创建“块”等等; 4、标注的时候没有设置好标注样式,导致标注有点混乱,插入文字时也需要设置文字样式,这些运用都不是很熟练。 这幅图要画好,不仅要能熟练的运用各个键,还要有CAD绘图的思想:简便快速。 五.课程设计心得 经过一周的课程设计,我进一步熟悉了CAD的基本操作,在绘图前必须要进行以下基本的操作, 图形界限的设置在这次的设计过程中采用的是A4图幅。线型的加载,全局线型比例设置,在图层设置的过程中,需要按图上要求设置,图层的设置应遵循在够用的基础上越少越好。此外还有颜色、线型、线宽等设置都随层,这样会简单很多,但都需按照要求进行。 通过这几天的学习,使我对CAD有了进一步的了解,一开始觉得它不是一个轻易学好的软件,觉得用处不是很大。但几天的学习下来,使我对这个软件的 看法彻底改变了,不但用处很大,我们可以用它作出工程、建筑等方面的图画来,而且易学,就是把那些基本的套路把握熟悉了以后就很简单了,现在的速度比以 前那是快很多了,不管是在设置还是在标注上,都有了很大的提高。 CAD课程的学习,我真切地体会到了这种绘图系统的实用性。同时也感觉到,绘图作为建筑设计过程中设计思想的载体,具备良好的绘图能力是每一个设计人员最基本的素质。 说到它的使用性,相信许多同学都有同感。以前我们土木建筑物图是手工画,画一张完整的图也得很长时间,令大家倍感疲惫。而且要注意图纸的整洁,线条的宽度,字体的美观,绘制过程花费很多时间。现在用CAD就完全没有这方面的问题,粗细线条全用“特性”来规范,一目了然。尺寸也相当准确,在命令提示行里输入多少就是多少,也不用拿着丁字尺在图纸上比来比去,到头来还是达不到十分准确。画线线连结的时候CAD尺寸方面的优势就更加明显,比如画圆与直线相切的时候,手工绘图只能凭感觉觉得差不多就画上去,每一条画得都不一样,怎么看都不对称。用CAD画,打开对象捕捉就能把切点给抓进来,又快又准!尺寸标注更是快捷,两个点一拉,左键一点就完成一个标注,不用画箭头,不用标文字,只要自己设计好标注格式,计算机就能按要求标出来。插入文字也很方便,在多行文本编辑器里输入文字内容就能出来绝对标准的国标字,比起我们手写的字就美观漂亮的多!粗糙度、基准符号、标题栏等做成块就可以随意插 入,用不着一个一个地画了,用起来确实很快! 总之,在本周的CAD设计中,我感觉我学到的东西比一个学期学的东西还多,绘图技巧在平常的学习中是学不到,我希望以后能够有更多的这种实训的机会,这一周感觉过的很充实,我也真正的融入到了学习当中去,别无他思,一切都还不错,感觉非常好 如果要我用三个字来表达我对CAD的感觉,就是快、准、美!结合我自身的情况,我将继续练习使用CAD,做到能够把它运用得得心应手、挥洒自如,使它成为我今后学习和工作的助手。同时,也要培养良好的绘图习惯,保持严谨的态度,运用科学的学习方法,不断地提高自己,完善自己! 第二篇:Cad课程设计报告Cad课程设计报告 经历了几周的课程设计,大家的身心都得到了很大的发展和成长,:学生CAD课程设计心得(一)。在技术方面,同学们在每天的练习绘图过程中,切身体会到了CAD操作的精髓所在,我们这样的课程设计,正是学习中将理论应用于实践,再进一步在实践中检验理论并发现新的问题的阶段。以前总认为CAD的操作和作用仅仅局限于书本上所教授的内容,但是这次亲身体验了之后,才发现CAD在实际的操作上有很多很多书本上学不到的细节问题和小技巧,在实际的操作过程中,同学们不断遇到新的问题,进而不断解决新的问题,大家一起讨论,共同进步。自主学习真是一个快乐的过程,在这一方面,我感觉非常的高兴。 通过此次课程设计,使我更加扎实的掌握了有关绘图方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。 我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。 此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。 土木一班 谌劲松 学号:63 第三篇:《C语言程序设计》课程设计报告(小组)东莞理工学院 《C语言程序设计》课程设计 题 目: 院 系: 专 业: 年 级:班 别: 指导教师:组 长: 同组成员:图书信息管理系统 电子工程学院 电子信息工程 2009 2班 侯家利 黄培周(200941301208) 邹日宙 (200941301211) 陈俊杰(200941301239) 叶毅杰(200941301225) 目录 一、目的 ..................................................................................................... 1 二、需求分析............................................................................................. 1 三、概要设计............................................................................................. 1 四、详细设计............................................................................................. 3 五、调试分析............................................................................................. 4 六、测试结果............................................................................................. 5 七、用户使用说明 ................................................. 错误!未定义书签。 八、课程设计总结..................................................................................错误!未定义书签。 附录:参考代码 ..................................................... 错误!未定义书签。 图书信息管理系统 ........................................... 错误!未定义书签。 一 目的 本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。 二 需求分析 根据图书馆图书信息管理的需要,建立一个“图书信息管理系统”,以方便对图书的各项管理操作。开发目的如下: 1、图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。 2、图书信息管理系统,提供以下功能: 1)图书信息录入功能(图书信息用文件保存)--输入; 2)图书信息浏览功能--输出 ; 3)查询和排序功能:--算法 ; 4)按书名查询 ; 5)按作者名查询 ; 6) 按登录号从大到小排列; 7)图书信息的删除与修改 三 概要设计 程序总体功能框架: 采用结构: struct tsxx{ long dlnum; char bname[10]; char aname[10]; char scnum[10]; char plname[10]; char time[11]; float price; struct tsxx * next; }; //定义结构 //定义登录号 //定义书名 //定义作者名 //定义分类号 //定义出版社名 //定义录入时间 //定义价格 //定义指向下一个结构的首地址 链表结构: head 各功能独立自定义的函数: 1、插入图书信息(按登录号从大到小排序): struct tsxx * zengjia(struct tsxx * head) //传递链表的首地址,并返回链表的首地址 //传递链表的首地址 2.、浏览全部的图书信息: void Ptrint_Stu_Doc(struct tsxx *head) void Check(struct tsxx * head) 3、查询图书信息(包括书名查询和作者名查询): //传递链表的首地址 //传递链表的首地址,并返回链表的首地址 //传递链表的首地址,并返回链表的首地址 4、删除图书信息: struct tsxx * Delete(struct tsxx * head) 5.、修改图书信息: struct tsxx * revise(struct tsxx * head) 其他一些变量的定义: long size; //定义结构的大小 FILE * fp; //定义文件指针,指向文件 struct tsxx * head; //定义链表的首地址 struct tsxx * p; //定义结构指针 char choice; //定义选择变量 四 详细设计 1、 设计思路: 首先,输入一些图书信息,申请一个结构类型的动态内存,把图书信息赋值到动态内存内,每一快动态内存存放一本图书的信息,并形成一条链表,比较登录号的大小,按登录号从大到小排列; 然后,建立并打开一个文件,把链表中的数据写入文件中,然后关闭文件; 最后,插入功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表,输入你想要插入的图书信息,比较登录号的大小,然后把新的图书信息按照登录号的大小顺序插入链表里面,新建一个文间,把新的链表写入文件中; 浏览功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表,然后链表头开始,把结构中的数据一个一个输出到界面上; 查询功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表;选择你要查询的方式:1是按书名查询,2是按作者名查询。输入你的选择,判断你的查询方式。 书名查询:输入你要查询的书名,在链表中查找你这本书,然后把这本书的信息输出到界面上; 作者名查询:输入你要查询的作者名,在链表中查找对应作者名的图书的信息,并把信息输入到界面上; 修改功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表,输入你要修改的图书的登录号,在链表中查找对应登录号的图书信息的结构,重新输入你要修改的图书的全部信息,并把这些新的图书信息赋值给找到的结构,覆盖旧的图书信息,新建一个文件,存放新的图书信息; 删除功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表,输入你要删除的图书的登录号,在链表中查找对应登录号的图书信息的结构与前一个结构,让前一个结构的next指向对应登录号结构的下一个结构,释放动态内存,新建一个新的文件,存放新的图示信息; 2、数据结构的选择: 据图书信息表特点,决定选用链表这种数据结构(也可用其它的数据结构)来作为组成成绩数据库的基本框架。链表是最简单也是最常用的一种动态数据结构。它是对动态获得的内存进行组织的一种结构。选用链表有得好处: 1.即用即申请,不会造成内存空间的浪费; 2.是数据之间既有独立性,又便于数据的相互连系; 3.便于数据的添加及删除等优点。 3、设计思想的选择: 用模块化程序设计理念,对各个功能定义不同函数,分块处理,这样有利于后期调试及今后对功能的完善。 五 调试分析 1、把数据从文件中拿出来时,当文件是空的,它也会读数据,这时的数据时0;当文件不空时,最后的数据会被读两次。因此,这样读出来的文件就会出现一些小差错,必须做适当的调整。当文件为空,把链表的首地址head赋值为NULL,然后释放动态内存;当文件不为空时,把链表的最后第二个结构的next赋值为NULL,然后释放动态内存。 2、因为开始时定义choice为整型变量,所以只能输入整数,如果不小心输入字符数时,整个程序就出现错误,不能继续运行。因此,我们把choice重新定义成字符型,这样就可以输入字符数,所以后面用switch时,也要改成字符型。 3、一开始运行程序是,因为还没有创建文件,所以在读取文件中的数据时,就会出现“不能打开文件”的错误。因此,在一开始运行程序时必须要先创建一个文件,以后程序就会自动建立一个新的文件。 4、在作者名查询那里,一开始是当查找到一条对应的结构数据时,因为用了break,所以就直接退出了循环,因此如果一个作者有多本书是,以只能查询一本书的信息。调试后,我们把break删掉,这样它就会一直循环,直到链表的最后一条数据,它才会跳出循环。这样就能把一个作者全部的书都显示出来。 ???? 六 测试结果 1、数据的输入: 新建一个文件,并把数据写入文件中: 增加功能: 查询功能: 浏览功能: 修改功能: 删除功能: 七 用户使用说明 一开始运行程序时,就会出现一个让你选择的界面,1.是增加数据,2是查询数据,3是浏览数据,4是修改数据,5是删除数据,6是输入数据,并新建一个文本存这些数据,0是退出程序。 当你输入1时,界面就会输出“Enter the static(lognum bookname authorname scorenum publishname time price):”,接着你就输入你要增加的图书的信息就可以了。 当你输入2时,就会在出现一个让你选择的界面,1是书名查询,2是作者名查询。 当你输入1时,如果文件时空的,界面就会输出“N0 Records”,如果文件不是空的,界面就会输出“Input bname:”,就着你就输入你要查询的图书的书名,如果文件中没有你要查询的这本书,界面就会输出“There isn't this static!”,当文件中有你要查询的这本书时,界面就会输出这本书的全部信息。 当你输入2时,如果文件时空的,界面就会输出“N0 Records”,如果文件不是空的,界面就会输出“Input aname:”,就着你就输入你要查询的图书的作者名,如果文件中没有你要查询的这本书,界面就会输出“There isn't this static!”,当文件中有你要查询的这本书时,界面就会输出这本书的全部信息。 当你输入3时,界面就会输出全部图书的全部信息; 当你输入4时,界面就会输出“Input the lognum:”,接着你要输入你要修改的图书的登录号,如果文件时空的,界面就会输出“Not records!”,如果文件不是空的,但没有你所输入的登录号的图书,界面就会输出“There isn't this static!”,如果文件不是空的,并且有你输入的登录号的图书,界面就会输出这本书的全部信息,很“Retype the static:”,接着你重新输入这本书的全部信息就可以了。 当你输入4时,界面就会输出“Input dlnum:”,接着你就输入你要删除的图书的登录号就可以了。 当你输入6时,界面就会输出“Enter the static(lognum bookname authorname scorenum publishname time price):”,接着你就输入你要增加的图书的信息就可以了。 当你输入0时,就退出程序 当你输入的是其他的数字或是字符时,界面就会输出“Enter error!”。 八 课程设计总结 做为这个小组的组长,我觉得我们所设计的程序今本上已经能够实现题目的要求,并且运用的链表,还用文件来存数据。但是,我觉得我们的程序还是存在着一些不足之处。首先建立一个文件是文件名和拓展名都已经被规定好的,其次是当文件为空时,程序运行时,当你输入得选择不是6是,会发生错误,所以一开始要先运行选择6,后才能运行其他选择,最后是运行查询、修改、删除功能,你输入的信息要跟文件中的一致,才能实现,如果稍有不同,就不够实现这些功能了。 另外,我想感谢我的组员,因为我们是分工合作的,他们有的负责一个功能,有的负责两个功能,而我主要是些主函数,在他们的积极配合下,我们很快就把总程序写好,并调试完毕。所以我想感谢他们的配合。因为集体的力量是强大的,只有我们的积极合作,才能够准时的完成这个课程设计。 最后,我觉得在这个课程设计的过程中,我学到了很多东西。第一是耐心,当你在调试程序中,看到了你设计的程序出现了那么多错误,或者当显示0错误0警告,却不能运行,或者是运行结果不是你所期望时,我觉得这时候最是考验耐心的时候,也只有耐心和永不言败的信念,才能支持你逆流而上,解决所有的困难。在这个过程中,我试过用了几个钟的时间找一个错误,而结果只是打错了一个定义。第二是沟通,因为我对C语言也比较熟了,有一些同学比较陌生,所以他们来问我,在我解答他们的问题是,我深刻的体会了沟通的重要性,因为只有你沟通的好,他们容易理解,你也不用浪费口舌去讲一些不必要的知识点?? 程序参考代码: /*...............................................主函数.................................................*/ #include #include #include struct tsxx{ //定义结构 long dlnum; char bname[10]; char aname[10]; char scnum[10]; char plname[10]; char time[11]; float price; struct tsxx * next; }; long size; FILE * fp; struct tsxx * vitil(void) //从文件中拿出数据 { struct tsxx * p1,* p2,* p3; long dlnum; char bname[10]; char aname[10]; char scnum[10]; char plname[10]; char time[11]; float price; long i=0; if((fp=fopen("程序设计.txt","r"))==NULL) //打开文件 { printf("can not open file 程序设计.txt!\n"); exit(0); } while(! feof(fp)) { if(i>=1) p3=p1; if((p1=(struct tsxx *)calloc(1,size))==NULL) { printf("Not able to allocate memory.\n"); exit(1); } fscanf(fp,"%ld%s%s%s%s%s%f",&dlnum,bname,aname,scnum,plname,time,&price); p1->dlnum=dlnum; strcpy(p1->bname,bname); strcpy(p1->aname,aname); strcpy(p1->scnum,scnum); strcpy(p1->plname,plname); strcpy(p1->time,time); p1->price=price; if(i==0) p2=p1; else p3->next=p1; i++; } if(p2->next==p1) p2->next=NULL; else p3->next=NULL; free(p1); fclose(fp); //关闭文件 return p2; } void inputchoice(void) { printf("\n Choice:\n"); printf("1.Add\n"); printf("2.Check\n"); printf("3.Scan\n"); printf("4.Revise\n"); printf("5.Delect\n"); printf("6.Enter the stactic\n"); printf("0.Exit\n"); } void write_to_txt(struct tsxx * head) //写入文件 { struct tsxx * p; if((fp=fopen("程序设计.txt","w"))==NULL) { printf("can not open file 程序设计.txt!\n"); exit(0); } for(p=head;p;p=p->next) { fprintf(fp,"%ld %s %s %s %s %s %f\n",p->dlnum,p->bname,p->aname,p->scnum,p->plname,p->time,p->price); } fclose(fp); } #include"check_and_delect.c" //查询和删除 #include"zengjia.c" //增加 #include"xiugai.c" //修改 main() { struct tsxx * head=NULL,* p; char choice; size=sizeof(struct tsxx); inputchoice(); scanf("%s",&choice); while(choice!='0') { switch(choice) { case '1': head=vitil(); //把数据从文件中取出来 head=zengjia(head); //增加数据 write_to_txt(head); //写入文件 break; case '2': head=vitil(); //把数据从文件中取出来 Check(head); //查询 break; case '3': head=vitil(); //把数据从文件中取出来 Ptrint_Stu_Doc(head); //浏览 break; case '4': head=vitil(); //把数据从文件中取出来 head=revise(head); //修改 write_to_txt(head); break; case '5': head=vitil(); //把数据从文件中取出来 head=Delete(head); //删除 write_to_txt(head); break; case '6': head=zengjia(head); write_to_txt(head); break; default: printf("Enter error!\n"); break; } inputchoice(); scanf("%s",&choice); } while(head!=NULL) //释放链表 { p=head; head=head->next; free(p); } } /*......................................................增加功能...............................................*/ struct tsxx * zengjia(struct tsxx * head) //增加数据 { struct tsxx * p1,* p2,*p3; long dlnum; char bname[10]; char aname[10]; char scnum[10]; char plname[10]; char time[11]; float price; if((p1=(struct tsxx *)calloc(1,size))==NULL) { printf("Not able to allocate memory.\n"); exit(1); } printf("Enter the static(lognum bookname authorname scorenum publishname time price):\n"); scanf("%ld%s%s%s%s%s%f",&dlnum,bname,aname,scnum,plname,time,&price); p1->dlnum=dlnum; strcpy(p1->bname,bname); strcpy(p1->aname,aname); strcpy(p1->scnum,scnum); strcpy(p1->plname,plname); strcpy(p1->time,time); p1->price=price; p2=head; if(head==NULL) { head=p1; head->next=NULL; } else { while((p1->dlnum>p2->dlnum)&&(p2->next!=NULL)) { p3=p2; p2=p2->next; } if(p1->dlnumdlnum) { if(head==p2) head=p1; else p3->next=p1; p1->next=p2; } else { p2->next=p1; p1->next=NULL; } } return head; } /*....................................................查询功能...................................................*/ void Check(struct tsxx * head) //查询,书名,作者名 { struct tsxx * ptr; char a; char bname[10]; char aname[10]; printf("\n Choice:\n"); printf("1:bname\n2:aname\n"); scanf("%s",&a); if(head==NULL) printf("\nN0 Records\n"); else //链表非空 { switch(a) { case '1': //按书名查询 printf("Input bname:"); scanf("%s",bname); for(ptr=head;ptr;ptr=ptr->next) { if(strcmp(ptr->bname,bname)==0 ) { printf(" dlnum bname aname scnum plname time price\n"); printf("%5ld %10s %10s %10s %10s %10s %8f\n",ptr->dlnum,ptr->bname,ptr->aname, ptr->scnum,ptr->plname,ptr->time,ptr->price); if(ptr==NULL) printf("There isn't this static!\n"); } } break; case '2': //按作者名查询 printf("Input aname:"); scanf("%s",aname); for(ptr=head;ptr;ptr=ptr->next) { if(strcmp(ptr->aname,aname)==0) { printf(" dlnum bname aname scnum plname time price\n"); printf("%3ld %3s %3s %3s %3s %3s %3f\n",ptr->dlnum,ptr->bname,ptr->aname, ptr->scnum,ptr->plname,ptr->time,ptr->price); if(ptr==NULL) printf("There isn't this static!\n"); } } break; default: printf("Enter error!\n"); break; } } } /*..................................................浏览功能..............................................*/ void Ptrint_Stu_Doc(struct tsxx *head)//浏览 { struct tsxx * ptr; if(head==NULL) printf("\nNo Records\n"); else { printf("\nThe Books Information Are: \n"); printf(" dlnum bname aname scnum plname time price \n"); ptr=head; while(ptr!=NULL) { printf(" %ld %s %s %s %s %s \n",ptr->dlnum,ptr->bname,ptr->aname,ptr->scnum,ptr->plname,ptr->time,ptr->price); ptr=ptr->next; } } } /*.................................................修改功能.........................................................*/ struct tsxx * revise(struct tsxx * head) { struct tsxx * p1; long dlnum; char bname[10]; char aname[10]; char scnum[10]; char plname[10]; char time[11]; float price; printf("Input the lognum\n"); scanf("%ld",&dlnum); if(head==NULL) printf("Not records!\n"); else { for(p1=head;p1;p1=p1->next) { if(p1->dlnum=dlnum) %6.3f { printf("%ld %s %s %s %s %s %f\n",p1->dlnum,p1->bname,p1->aname,p1->scnum,p1->plname,p1->time,p1->price); printf("Retype the static:\n"); scanf("%ld%s%s%s%s%s%f",&dlnum,bname,aname,scnum,plname,time,&price); p1->dlnum=dlnum; strcpy(p1->bname,bname); strcpy(p1->aname,aname); strcpy(p1->scnum,scnum); strcpy(p1->plname,plname); strcpy(p1->time,time); p1->price=price; } break; } if(p1==NULL) printf("There isn't this static!\n"); } return head; } /*.............................................................删除功能...................................................*/ struct tsxx * Delete(struct tsxx * head) //删除 { struct tsxx * ptr1,* ptr2; long dlnum; printf("Input dlnum:\n"); scanf("%ld",&dlnum); if(head==NULL) //链表空 return NULL; else { while(head!=NULL && head->dlnum==dlnum) //要被删除结点为表头结点 { ptr2=head; head=head->next; printf(" dlnum bname aname scnum plname time price\n"); printf("%5ld %10s %10s %10s %10s %10s %8f\n",ptr2->dlnum,ptr2->bname,ptr2->aname, ptr2->scnum,ptr2->plname,ptr2->time,ptr2->price); free(ptr2); } //要被删除结点为非表头结点 ptr1=head; ptr2=head->next; while(ptr2!=NULL) { if(ptr2->dlnum==dlnum) //ptr2所指结点符合删除要求 { ptr1->next=ptr2->next; printf(" dlnum bname aname scnum plname time price\n"); printf("%5ld %10s %10s %10s %10s %10s %8f\n",ptr2->dlnum,ptr2->bname,ptr2->aname, ptr2->scnum,ptr2->plname,ptr2->time,ptr2->price); free(ptr2); } else ptr1=ptr2; //ptr1后移一个节点 ptr2=ptr1->next; //ptr2指向ptr1的后一个节点 } } return head; } 更多相关推荐: 《C语言程序设计》课程设计报告(小组)东莞理工学院C语言程序设计课程设计题目院系专业年级班别指导教师组长同组成员图书信息管理系统电子工程学院电子信息工程20xx2班侯家利黄培周20xx41301208邹日宙20xx41301211陈俊杰20xx41... c语言课程设计报告C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体设计四详细设计五运行结果六课程设计体会一实验目的1通过课程设计加深对结构化程序设... C语言课程设计报告河南理工大学计算机科学与技术学院课程设计报告20082009学年第一学期课程名称设计题目小学算术运算测试学生姓名马坤明学号310709010216专业班级计算机072班指导教师刘小燕20xx年9月12日河南理工... C语言课程设计报告范例C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的难点及解决办法四小结五附录原程序2一课程设计题目及所涉及知识点一课程设计题目1基... 厦门理工学院11级C语言C语言程序设计课程设计报告C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求1二方案实现与调试221掷骰子游戏222射击游戏323汽车... C语言程序设计课程设计报告C语言程序设计课程设计报告20xx20xx学年第1学期专业计算机科学与技术班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求3二方案实现与调试321掷骰子游戏322汽车加... c语言程序贪吃蛇课程设计报告山东工商学院信电学院自动111班第一组贪吃蛇课程设计报告高级语言程序设计课程设计报告ExperimentDesigningreporter课程名称高级语言程序设计英文名称CProgramExperimentDe... C语言课程设计报告电子版C语言课程设计报告姓名张林班级计算111班学号11060101241A类基本题1围绕着山顶有10个圆形排列的洞狐狸要吃兔子兔子说可以但必须先找到我我就藏身于这十个洞中的某个洞你从号洞找下次隔个洞即3号洞找第三次... c语言课程设计报告书C语言课程设计报告题目院系组别成员指导老师20xx年月日114目录一课程设计题目3二课程设计要求3三数据结构设计描述31问题描述32设计思想33涉及数据结构知识34各变量的定义和作用35功能模块详细设计3四程序... C语言课程设计报告C语言课程设计参考例例子职工信息管理系统1用户分析11用户目的设计一个职工信息管理系统使之能提供以下功能1录入职工信息2显示职工信息3查询职工信息4修改职工信息5删除职工信息14用户需求职工信息包括职工号姓名性... c语言课程设计报告-西安邮电大学西安郵電大學C语言课程设计报告书学院名称:计算机学院学生姓名:专业名称:班级:学号:指导教师:时间:20XX年06月03日至20XX年06月12日实验题目:学生通讯录管理系统一、实验目的通过本次实习,进一步巩固… C语言课程设计报告1前言设计一个算法求出两个序列的所有LCS分析最坏情况用会计方法证明利用bij求出所有LCS的算法在最坏情况下的需求分析根据最长公共子序列问题的性质即经过分解后的子问题具有高度重复性并且具有最优子结构性质采用动... c语言程序设计课程设计报告(34篇) |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |