制图课程设计报告5篇

网友 分享 时间:

【请您参阅】下面供您参考的“制图课程设计报告5篇”是由阿拉网友精心整理分享的,供您阅读参考之用,希望此例范文对您有所帮助,喜欢就复制下载支持一下小编了!

制图课程设计报告篇1

课程设计总结

经过一个学期对《c++程序设计》的学习,我学习到了基本的理论知识,了解到了c++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。在为期近两周的c++课程设计中,我体会颇多,学到了很多东西。我加强了对c++程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像职工信息表这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题,这并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是学会了在visual c++中如何调试程序的方法。当然,老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。

在老师和同学的帮助下,通过自己的努力,终于完成了这次职工信息表的简单课程设计。我经过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。

通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。

虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!

总而言之,这次c++程序设计实践让我收获很大。

计算机科学与技术13-2班

2010年7月4日

本文地址:http:///zuowen/

制图课程设计报告篇2

c++实验报告

面向对象程序设计实验报告

课 程: 学 院: 班 级: 姓 名: 学 号: 课题名称: 起止时间: 教 师:

面向对象程序设计 电子信息学院 计算机科学与技术

画图软件 ~

c++实验报告

1.程序功能介绍:

通过多种成员函数的定义和函数的重载与不同类的灵活应用,实现画图操作,如:具有鼠标拖动画图功能,左键按下开始画图,移动鼠标改变图形,右键按下取消绘制图形,且单独右键按下绘制背景色圆以擦去图形,左键抬起结束画图; 具有设置不同线宽功能; 具有设置不同颜色功能;

至少实现矩形、圆、椭圆、直线这几种图形的功能; 具有绘制实心和空心图形的功能;

要求采用抽象类作为所有图形类的基等,所有功能已经通过验证。

2.课程设计要求

(1)具有鼠标拖动画图功能,左键按下开始画图,移动鼠标改变图形,右键按下取消绘制图形,左键抬起结束画图;

(2)具有设置不同线宽功能;(3)具有设置不同颜色功能;

(4)至少实现矩形、圆、椭圆、直线这几种图形的功能;(4)具有绘制实心和空心图形的功能;(5)要求采用抽象类作为所有图形类的基

3.对课程题目的分析与注释

1.建矩形类,圆类,椭圆类,直线类;

2.用不同的flag分别用作:表示形状,判断鼠标位置,颜色。

4.程序设计思路和说明

5.课程设计中遇到的问题及解决方法

(1)画出图形有重影;

原因:flag识别鼠标左键按下状态,在程序中持续默认左键按下状态;

修改前鼠标程序:case wm_lbuttondown://左键按下;

= ;1

c++实验报告

= ; =!;//开始画图或者停止画图 break;

解决方法:

(2).向右画圆总会进入左侧项目区域

原因:鼠标进入图标框区域flag记为零,向右拖动不会识别为零

解决方案:讲画圆函数设置半径的if函数,一旦识别到左侧进入图标框即flag为0;

1. 课程设计结果(最终运行程序截图)

2.还存在的不足之处

3.对课程设计的感想和心得体会

在题目刚发下来时,我觉得题目很难,自己绝对不会做的,可是后来在书上找了对应的内容看了看,发现程序这座堡垒其实不是多么的不可攻破,只要愿意花时间,这些都不是问题。还有一点,一个好的编程习惯会对你的改错和检查有很大的帮助,比如在某些行后面加上注释,这样有利于自己一一对应的找。

做数学题目时是一环一环相扣的,其逻辑性就是一条线,而编c++时,其逻辑就像一个神经细胞,而每一个细胞有好多主突触(函数)和细胞(主函数)相连,每一个主突触又可以连很多其他突触,形成一个大枝节,而每个大支节又可以连接很多突触。所以每个程序就是通过主函数连接在一起的整体。程序就是有函数构成的。

制图课程设计报告篇3

c++课程设计报告

设计题目:

院: 专业班级: 学生姓名: 学生学号: 指导教师:

计算机技术与科学

3班 樊冠男 40912140 马军亮

提交时间:

2011/1/12 成绩:

目录

c++课程设计报告

第一章 引言

c++课程设计报告

第二章 概要设计

c++课程设计报告

第三章 软件实现

c++课程设计报告

第四章 结果与讨论

制图课程设计报告篇4

课程设计心得体会

学生成绩管理是高等学校教务管理的重要组成部分,其内容较多,要完成能够实现人员的信息录入、查询、修改、删除、统计、保存、显示等操作。系统具体实现的功能如下:

1.添加新的联系人

2.删除所有联系人

3.删除某个联系人

4.查询某个联系人

5.查询所有联系人

6.将电话本导出到文件

7.从文件导入电话本

8.查询并编辑某个联系人

9.全班同学的平均分

大概的算法分析

学生成绩管理软件的数据结构

学生成绩一般都是以每个成员为单位进行管理的,一个学生学号用一个结点来表示。考虑到添加、查询和删除的方便,这些以学号为单位的结点用链表方式组成一个主目录。每个结点有四个域:

(1)学生代号;

(2)课程情况;

(3)成绩信息管理情况;

各函数的功能和实现(学生成绩管理的相关功能由对应的函数来实现)(1)添加新的联系人

用代码实现输入及输出添加新的联系人的学号,姓名,性别,生日、语文成绩,数学成绩;完成添加工作。

(2)删除某个联系人

首先输入要删除的姓名,然后要在系统中查看是否有此记录,再用分支结构实现删除链表中此员工结点并修改学校员工链表及未找到这条记录;因为可能系统中不存在此记录。

(3)删除所有联系人

此功能要逐条删除联系人,则我们采用分支、循环结构实现首先遍历是否有给记录,输出读取记录或没有该记录;再到文件是否读完,若没读完则要循环继续读取,否则已删除了所有记录。

(4)查询某个联系人

因此功能会出现还没有任何记录、未找到这条记、输出该联系人信息三种情况,我们则选用简单的三分支结构;首先要请输入要查询联系人的姓名,输出有记录或还没有任何记录,有记录则遍历所有人,最后是未找到这条记录,输出该联系人信息。

(7)从电话本导入文件的流程图

首先查看是否有记录,输出没有任何记录或打开“”,历遍链表,、关闭文件,。

其余的函数功能实现相似则不重复。

心得体会

刚放假不久,我们组的积极分子们就张罗着要开始编写程序了,编写这个程序我们经历了讨论选题,编写代码,调试,写设计报告等。在这期间我们查阅了很多相关的资料,曾盯着课本发呆过,我们成员之间也曾进行过激烈的口舌论战。经过这个暑假来的实践学习,使我们对c++语言有了更进一步的认识和了解,要想学好它,则重在实践,要通过不断的上机操作及实例运用才能更好地深入体会它,当然通过实践,我们也发现我们的好多不足之处。就比如我们对c++语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,一些经常出现的错误也不能很好地处理。我们编写这个程序使用的是比较简单的函数及结构,由于我们的水平有限,还不能很好的使用一些效率高的方式来编写,所以也没有突出的创新点。在做题的时候我们都是分工合作。分工完成结构体、函数设计、算法分析等,这些过程中总是有很多错误出现,有好多的小问题都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的操作,类的使用等等这些使用我们都琢磨了很久,在解决错误时我们有时几乎焦头烂额了。但是我们与队友之间都会不断的相互鼓励、支持,彼此都努力维护着将作业写完。虽然这设计有点枯燥无味,但是当最后我们大功告成时,回味起来还是美滋滋的。总的来说我们真的是在设计的过程中受益匪浅。

制图课程设计报告篇5

i++;

} while(i<=10);cout<<“sum=”<

#include

using namespace std;void main(){ int i(1),sum(0);

for(i;i<=10,i++)

{

sum+=i;

}

cout<<“sum=”<

using namespace std;const float pi=;void main(){ int itype;

cout<<“不是合法的输入”<

using namespace std;struct riqi { int year;int mon;int day;int hour;int minut;int second;};void main(){ riqi a;cout<<“输入时间日期”<

>;cout<<“输入月份”<

实验

三、函数的应用(2学时)

1、实验目的:

掌握函数的定义和调用方法。练习重载函数使用。练习函数模板的使用 练习使用系统函数。

在main()函数中提示输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。程序名:。

编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算fibonacci级数。公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1。使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:。

7)调试操作步骤如下:

选择菜单命令build|start debug |step in,系统进入单步执行状态,程序开始运行,并出现一个dos窗口,此时光标停在main()函数的入口处。

把光标移到语句answer=fib(n)前,从debug菜单单击run to cursor,在程序运行的dos窗口中按提示输入数字10,这时回到可视界面中,光标停在第11行,观察一下n的值。

从debug菜单中单击step into,程序进入fib函数,观察一下n的值,把光标移到语句return(fib(n-2)+fib(n-1))前,从debug菜单单击run to cursor,再单击step into,程序递归调用fib函数,又进入fib函数,观察n的值。

继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。

再试试debug菜单栏中的别的菜单项,熟悉debug的各种方法。

4、实验原理

c++中函数的重载使得同样的函数名下,只要参数类型、数目不同时,即可根据输入的数据进行相应的函数调用,使用起来简单方便。

5、思考与体会

c++中,函数的运用与之前学过的c语言既有相同之处,也有着不同的地方。相同的地方在于格式、用法等框架上的不变。但是c语言中对于同样的函数名是只能够申明一种函数的,倘若有相同的函数名出现系统即会报错,所以用起来有时是极为不便

0

//参数为两个双精度浮点形的函数 int max1(double a,double b){ a=a>b?a:b;return a;} //参数为三个双精度浮点形的函数 int max1(double a,double b,double c){ a=a>b?a:b;a=a>c?a:c;return a;} void main(void){ int a;double b;a=max1(1,2);cout<

lab3_3: #include

using namespace std;int max1(int a,int b){ a=a>b?a:b;return a;} int max1(int a,int b,int c){ a=a>b?a:b;a=a>c?a:c;return a;}

int main(){ int i,j,k;cout<<“请输入要比较的3个数:

”<

2131415

public: rank rank;int frequency;float voltage;cpu(rank r,int f,float v){

//构造函数

cout<<“构造了一个cpu”<

rank=r;

frequency=f;

voltage=v;} void run(){

cout<<“cpu开始运行”<

} void stop(){

cout<<“cpu停止运行”<

cout<<“rank=”<

cout<<“frequency=”<

cout<<“voltage=”<

};

int main(){ cpu cpu(p5,500,2000);();();();return 0;}

lab4_2 #include

using namespace std;enum rank{p1=1,p2,p3,p4,p5,p6,p7};//cpu类 class cpu{ public:

//析构函数-17

computer(rank r,int f,float v){

cpu cpu(r,f,v);

//定义cpu对象

ram ram(1);

//定义ram对象

cdrom cdrom(1);

//定义cdrom对象

();

();

();} };int main(){ computer com(p4,300,3000);return 0;}

实验

七、继承与派生(一、二)4学时

1、实验目的:

学习定义和使用类的继承关系,定义派生类。熟悉不同继承方式下对基类成员的访问控制。学习利用虚基类解决二义性问题

2、实验任务 a)定义一个基类animal,有私有整型成员变量age,构造其派生类dog,在其成员函数setage(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。b)定义一个基类baseclass,有整型成员变量number ,构造其派生类derivedclass,观察构造函数和析构函数的执行情况。c)定义一个车(vehicle)基类,具有maxspeed、weight等成员变量,run、stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(seatnum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。

3、实验步骤

编写程序定义基类animal,成员变量age定义为私有的。构造派生类dog,在其成员函数setage(int n)中直接对age赋值时,会出现类似以下的错误提示:

error c2248:’age’:cannot access private member declared in class ‘animal’

error c2248:’age’:cannot access private member declared in class ‘animal’

把age改为公有成员变量后重新编译就可以了。程序名为:

0

确方便我们编程。

6、部分参考代码

lab7_1 #include

using namespace std;

class animal{

public: int age;};

class dog:public animal{ public: int setage(int n){

age=n;

return age;} };

void main(void){ int age;dog d;age=(3);cout<<“age=”<

lab7_2 #include

using namespace std;class baseclass{ public: int number;baseclass(){

cout<<“这是父类的构造函数”<

cout<<“这是父类的析构函数”<

//motorcycle继承bicycle和motorcar类

class motorcycle:public bicycle,public motorcar{ public: motorcycle(int seat,double h,double ms,double w){

seatnum=seat;

height=h;

maxspeed=ms;

weight=w;} void show(){

cout<<“seatnum=”<

cout<<“height=”<

cout<<“maxspeed=”<

cout<<“weight=”<

int main(){ motorcycle che(3,,,500);();return 0;} 实验

八、多态性2学时

1、实验目的:

掌握运算符重载的方法

习使用虚函数实现动态多态性。

2、实验任务

a)定义point类,有坐标x,y两个成员变量;对point类重载“++”、“--”运算符,实现对坐标值的改变。

定义一个车(vehicle)基类,有run、stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有run、stop等成员函数。观察虚函的作用。

3、实验步骤

编写程序定义point类,在类中定义整型的私有成员变量x,y,定义成员函数point& operator++();point operator++(int);以实现对point类重载“++”运算符,定义成函数point& operator –();point operator

也就是函数的重载。

6、部分参考代码

lab8_1 #include

using namespace std;

class point{ public: point(double x=,double y=):xray(x),yray(y){} point operator++(int);point operator--(int);void show();private: double xray;double yray;};

point point::operator++(int){ return point(xray++,yray++);}

point point::operator--(int){ return point(xray--,yray--);}

void point::show(){ cout<<“x坐标为”<

int main(){ point p(,);cout<<“进行运算前的情况:”<

show(&v);return 0;}

48 1965577
");