中南大学大一下学期c++程序设计实验报告1.0

中南大学大一下学期c++程序设计实验报告1.0
中南大学大一下学期c++程序设计实验报告1.0

中南大学

本科生课程设计(实践)任务书、设计报告(C++语言程序设计)

题目多功能集成程序系统

学生姓名闵杰

指导教师罗芳

学院材料科学与工程

专业班级材料类1003

学生学号0607100313

计算机基础教学实验中心

2011 年 6 月 30 日

《集合简单计算、信息管理、绘图及多媒体系统设计》

C++实践报告

关键词:

C++程序设计 MFC[.exe] 面向对象计算信息管理绘图播放器

一、引言

1.1实践任务:

1、计算程序设计。如:计算器、一元二次方程的求解、华氏温度和摄氏温度之间的转换、求阶乘等。

2、文本编辑程序设计。

3、绘图程序设计。如:吹泡泡程序、曲线等图形绘制。

4、信息管理程序设计。能完成信息的添加、删除和修改等功能。

5、多媒体程序设计。如:音频播放器、flash动画播放器等。

1.2实践目的:

当今社会是信息时代,科技的高速发展要求我们能过熟练掌握并运用新的科学技术。而信息的获取需要我们能够掌握应用程序的深层代码,运用所掌握的计算机程序知识对数据进行管理。

C++是由C发展而来的,与C兼容。所以它可以用于面向过程的结构化程序设计,但是它又有自己的特点,它也可以用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。通过本次实践,

1、可以加深我们对面向对象的认识,巩固C++的基础知识,了解基于对话框的应用程序、文档/视图应用程序的框架结构和运行机制,初步掌握创建MFC应用程序的方法、过程。

2、掌握常用的控件的重要属性、主要消息、常用成员函数,并熟练地应用这些控件设计应用程序。

3、掌握绘制图形的方法、定时器的使用,鼠标消息处理函数和键盘消息处

理函数的编写、对话框使用和菜单设计的技术。

4、培养我们的独立思考、设计综合程序的能力;同时培养自学能力;训练小论文撰写能力。

因此,计算机程序设计是大多数专业的必修课。随着软件工程技术的不断发展,面向对象的程序设计方法已成为当今软件开发的主流技术,我们肩负着博采众长的使命,运用好该程序将使我们受益匪浅。

1.3前期软件准备系统分析

需求分析

首先,这是一个基于MFC的对话框应用程序。然后,根据用户的需要,可以对电脑随机产生的数据或用户指定的数据进行排序。排序的方法有四种:快速排序、插入排序、冒泡排序和归并排序。并且,可以计算每种排序方法的时间复杂度和交换次数。最后,对数据和计算结果进行显示和保存。

可行性分析

排序程序主要涉及两方面内容:一是运算,包括各种排序的算法以及相应的时间复杂度和交换次数的计算。二是显示,包括文件的读写、保存以及对话框中各个空间的显示。

(i)MFC编程

MFC 是Visual C++ 的核心。虽然在Windows 应用程序中可以直接调用API 函数,但是一般不经常直接调用,而是从MFC 类创建对象并调用属于这些对象的成员函数。MFC 是Microsoft 公司提供的用来编写Windows 应用程序的C++ 类库,MFC 大约有200 多个类,可以分成两种:一是Cobject 类的派生类,它们以层次结构的形式组织起来,几乎每个子层次结构都与一个具体的Windows 实体对应;二是非Cobject 派生类,这些都是独立的类,如表示点的Cpoint 类,表示矩形的Crect 类。

在Visual C++ 中,可以创建以下 3 类典型的Windows 应用程序,它们都是通过MFC AppWizard(exe) (以下简称AppWizard )向导创建的:基于对话框的应用程序:这类程序适合于文档较少而交互操作较多的应用场合,如Windows 自带的计算器程序。

单文档界面(SDI )应用程序:这类程序一次只能打开一个文档,如

Windows 自带的Notepad 程序。

多文档界面(MDI )应用程序:这类程序可以同时打开多个文档并进行处理,处理的过程中很容易地进行切换,如Microsoft Word 。

(ii)基于对话框的Windows应用程序

对话框是一种特殊类型的窗口,绝大多数Windows程序都通过对话框与用户进行交互。在Visual C++中,对话框既可以单独组成一个简单的应用程序,又可以成为文档/视图结构程序的资源。

二、多功能集成程序系统开发设计思想

第一步,根据用户的需要进行有关数据的操作。若需要创建新的数据,则计算机根据用户的要求随即创建指定个数个数据。第二步,对数据进行排序操作。这其中包含以下几小步:1.将数据从指定文件中读出,存入某一变量中。2.对变量中的数据进行排序。这其中会进行一些必要的数据类型转换。3.进行时间复杂度和交换次数的计算,并将计算结果显示在指定的控件上。4.对排序结果和计算结果进行保存。最后,用户退出程序。

通过对C++一学期的基础知识理解和一个星期的针对面向对象的程序设计的补充,我发现面向对象程序的广泛性和通用性。

于是通过不断地思考和实践,我打算做一个集合简单计算、信息管理、绘图及多媒体程序的一个综合应用程序系统,包容课上所讲的内容。

具体框架如下:

计划通过本系统的建立,方便普通运算、增强信息的管理功能、添加图片及其他的娱乐功能。融合了多个模块,通过一个主界面管理四个小的项目更加方便用户的使用。在各个项目的根目录下再添加程序对话框的链接地址,方便快捷地调用用户所需的应用程序界面。

对于子目录下的文件管理,我们需要掌握其地址,并通过文件代码的编写,通过MFC应用程序的对话框的编译,实现面向对象的C++程序设计,已达到基本的C++面向对象的程序实践任务。

三、多功能集成程序系统功能及系统设计介绍

具体功能在各个小标题中已有注释,在此只介绍部分系统的编辑过程。

3.1简单计算

3.1.1求解一元二次方程

对话框上有5个静态文本框、5个编辑框和2

个命令按钮。编辑框按表连接变量,其余控件不需要连接变量.

为了要计算b 2 -4ac 的平方根,需要使用sqrt() 函数,因此在TESTDlg.cpp 文件的开始添加”math.h”文件包含命令。便可以对方程进行求解。

3.1.2华氏温度与摄氏温度的转化

最主要的是对按钮“计算”进行编辑,通过自己编写相应的代码,实现两种温度之间的转换。

3.1.3简单计算器

此程序同3.1.2,即主要是对4种按钮“加”“减”“乘”“除”编辑,链接3个编辑框的输入数据即可完成。

3.2信息管理

3.2.1文本加密

通过对代码的编辑将大写字母转换成小写、将小写字母转换成大写、换行符和回车符不变、其余字符转换为“*”。此处的关键在:要将编辑框连接变量m_e1变为(Control )CEdit。

3.2.2文本复制

本程序较为简单,我们详细简述:

( 1 )建立基于对话框的MFC 应用程序

框架。

①选择“文件| 新建”命令;

②在“工程”选项卡中,选定“ MFC

AppWizard(exe) ”,输入工程名称,选择“确定”。

③选定“ D 基本对话”,即创建基于对话框

的应用程序,选择“完成”。

( 2 )放置控件

?删除原有的控件。

?放置所需的控件:两个编辑框和两个命令按钮。方法是:先单击控件工具栏上的控件图标选择所需的控件,然后在对话框设计界面上按住鼠标左键拖拉出所需要的大小后释放。

( 3 )设置控件属性

选定控件,在其快捷菜单中选择“属性”命令,在弹出如图所示的对话框中进行设置。

上面编辑框的属性设置为:

?选定“ Multiline ”复选框,编辑框中可以输入多行文本。

?选定“ V ertical scroll ”和“ Auto Vscroll ”,编辑框将有垂直滚动条。

?选定“ Want return ”。

下面编辑框属性的设置与上面编辑框基本一样,只是可以不选定“ Wa nt return ”。

3.2.3教师基本信息统计

该程序我觉得是这里面最难得一个,包含了编辑框、复选按钮、单选按钮、组合框、水平滚动条、还有基本的静态文本框及其他基本组件。

个人觉得其中的重点就是滚动条的编辑,当用户在滚动条上进行操作时,滚动条接收不到任何消息。但是对话框却能接收到WM_Hscroll (水平滚动条)或WM_Vscroll (垂直滚动条)消息,也就是说,程序对滚动条的操作只能在OnHScroll() 或OnVScroll() 中编写代码。这要求我们添加一个类,再对它进行初始化这就是本环节的关键。

3.2.4财务采购统计

此处只采用了组合框,关键在组合框的初始化。在属性的Data中输入,按着Ctrl和Enter输入下一组。

3.2.5学生选课系统管理

该程序是3.2.3的一个小类,只是需要列表框的添加,在此简要介绍下:

( 1 )界面设计

首先创建一个对话框应用程序框

架,然后放置按钮。列表框和命令按钮

按表连接变量,其余控件不需要连接变量。

( 2 )初始化

列表框的选项在对话框的初始化函数中用AddString 函数添加。

BOOL CTESTDlg::OnInitDialog()

(3 )消息处理函数

3.3图形绘制

这些程序都是用单文档建立的。

3.3.1正弦函数的图像

这里的关键是添加头文件“math.h”。再在指定的地方添加相关代码就可以了

3.3.2中南大学的校训显示

这个程序较为简单,运用了OnDraw类,画了一个矩形框。其余的就是代码的添加了。

3.3.3吹泡泡

本程序也蛮复杂,要添加几个类,再在相关的类中添

加代码。这里还要求泡泡的颜色变化,程序代码繁琐。

3.4播放器

多媒体是Windows下一个比较复杂的过程,涉及

许多设备的控制及音视频的解码等诸多复杂操作。但

是Windows内置的Windows Media Player组件可以极

大地简化普通程序播放音视频文件的编程复杂度。所

以,在此不展开细说。

通过查阅资料,对自带的Player进行修饰后本播放器具有快进、快退、暂停、打开文件、音量调试及最小化的功能。

四.总结

通过这次课程设计和实践,复习了以前所学的编程知识,练习了在课设期间所学的新知识,发现了自己知识上的缺陷,主要有以下几点:

通过编写这个基于MFC的对话框应用程序,掌握了在MFC中对控件、消息、响应函数等的操作,学习到了一些基于MFC的新函数,例如MessageBox().

复习了以前有关数据排序的算法,如冒泡发排序,同时学习到了一些新的排序方法,如归并法排序。

程序完成的操作有:随即创建数据并保存,对数据进行排序并保存排序后的结果等。对于一些题目要求,没能完成。时间复杂度和交换次数的显示没能完成,从用户指定的路径打开文件中的数据并进行排序操作也没有完成。前者原因是没能对列表框的操作函数理解透彻,不能灵活运用,特别是SetItemText 和InsertItem函数没能弄明白。后者是因为没能掌握从文件中读数据的函数File.Read()。正是因为这个原因,才不能完成从用户指定的路径打开文件中的数据并进行排序。而且,数据类型之间的转换也不熟练。

自己的编程本领还很薄弱,以后要好好努力。

通过对本次实践的资料查询环节,丰富了我的课外知识,并且提高了我的材料收集能力,受益匪浅。

本次实践调动了我对计算机这门学问的兴趣,提高了对计算机程序的认识。

参考文献

[1] https://www.360docs.net/doc/9119108776.html,

[2] 张荣梅,Visual C++程序设计案例教程。北京:北京大学出版社,2009。

[3] 文东,华进。Visual C++程序设计基础与项目实训。北京:北京科海电子出版社,2009。

[4] 杨红云,尹利民。Visual C++程序设计视屏教程。北京:北京电子工业出版社,2005。

[5] https://www.360docs.net/doc/9119108776.html,

[6] 周进,朱训林。Visual C++实用教程。北京:北京人民邮电出版社,2008

操作系统实验报告-中南大学

操作系统原理试验报告 班级: 学号: 姓名:

实验一:CPU调度 一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。 三、实验题目 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 四、实验要求 PCB内容: 进程名/PID; 要求运行时间(单位时间); 优先权; 状态: PCB指针; 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度 4、最好采用图形界面; 5、可随时增加进程; 6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备 队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。 7、每次调度后,显示各进程状态。 实验二:内存管理 一、实验内容 主存储器空间的分配和回收 二、实验目的 帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 三、实验题目 在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验要求 1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 2、结合实验一,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针} 3、采用最先适应算法分配主存空间; 4、进程完成后,回收主存,并与相邻空闲分区合并 .1、Vo类说明(数据存储结构) 进程控制块PCB的结构: Public class PCB{ //进程控制块PCB,代表一个进程 //进程名,作为进程的标识; private String name; //要求运行时间,假设进程运行的单位时间数; private int time; //赋予进程的优先权,调度时总是选取优先数小的进程先执行; private int priority; //状态,假设有“就绪”状态(ready)、“运行”状态(running)、 //“后备”状态(waiting)、“挂起”状态(handup) private String state; //进程存放在table中的位置 private int start; //进程的大小 private int length; //进程是否进入内存,1为进入,0为未进入 private int isIn; //进程在内存中的起始位置 private int base; //进程的大小 private int limit; //一些get和set方法以及构造器省略… };

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

中南大学电工电子课程设计实验报告

中南大学 电工电子技术课程设计报告 题目:可编程乐曲演奏器的设计 学院:信息科学与工程学院 指导老师:陈明义 专业班级: 姓名: 学号:

前言 随着科学技术发展的日新日异,电工电子技术在现代社会生产中占据着非常重要的地位,因此作为二十一世纪的自动化专业的学生而言,掌握电力电子应用技术十分重要。 电工电子课程设计的目的在于进一步巩固和加深所学电工电子基本理论知识。使学生能综合运用相关关课程的基本知识,通过本课程设计,培养我们独立思考的能力,学会和认识查阅学习我们未学会的知识,了解专业工程设计的特点、思路、以及具体的方法和步骤,掌握专业课程设计中的设计计算、软件编制,硬件设计及整体调试。设计过程中还能树立正确的设计思想和严谨的工作作风,达到提高我们的设计能力的目标。 从理论到实践,往往看似简单,实则是有很大的差距的,通过课程设计,可以培养我们学到很多东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的学到知识,从而提高自己的实际动手能力和独立思考的能力。 在次,特别感谢老师给我们以实践动手的机会,让我们对以前的知识以复习,整合,并从理论走向实践,相信我们都会在这次课程设计中学到很多!!!

目录 前言 (2) 正文 第一章系统概述 (4) 系统功能 (4) 系统结构 (4) 实验原理 (4) 整体方案 (5) 第二章单元电路的设计与分析 (5) 2.1 音频发生器的设计 (5) 2.2 节拍发生器的设计 (6) 2.3 读取存储器数据 (7) 2.4 选择存储器地址 (8) 2.5 控制音频电路设计 (8) 第三章电路的安装与调试 (9) 第四章结束语 (9) 元器件明细表 (10) 参考文献 (10) 附录 (11)

2017中南大学人工智能实验报告

“人工智能”实验报告 专业: 班级: 学号: 姓名: 2017年4月日

实验一搜索策略 (一)实验内容 1. 熟悉和掌握启发式搜索的定义、估价函数和算法过程;比较不同算法的性能。 2. 修改八数码问题或路径规划问题的源程序,改变其启发函数定义,观察结果的变化,分析原因。 (二)实验思路 1.利用已有程序“search.jar”,利用已有的“简单搜索树”图或自行构建一个图,选择DFS/BFS/Lowest Cost First/Best-First/Heuristic Depth First/A*等不同的搜索策略,观察程序运行中,OPEN表和CLOSED表的变化,观察搜索过程的变化,理解各个算法的原理。 2.任选八数码问题或路径规划问题的源程序,思考程序如何解决该问题,并对其启发函数进行修改,观察结果的变化,并分析原因 (三)程序清单 此处我选择了路径规划问题:由于篇幅原因,只附上启发函数的定义部分。 原启发函数: floatMapSearchNode::GoalDistanceEstimate( MapSearchNode&nodeGoal ) { floatxd = fabs(float(((float)x - (float)nodeGoal.x))); floatyd = fabs(float(((float)y - (float)nodeGoal.y))); return (xd + yd); } 第一次修改后的启发函数: float MapSearchNode::GoalDistanceEstimate( MapSearchNode&nodeGoal ) { float xd = fabs(float(((float)x - (float)nodeGoal.x))); float yd = fabs(float(((float)y - (float)nodeGoal.y))); float d=sqrt(xd*xd+yd*yd); return d; } 第二次修改后的启发函数: float MapSearchNode::GoalDistanceEstimate( MapSearchNode&nodeGoal ) { float xd = fabs(float(((float)x - (float)nodeGoal.x))); float yd = fabs(float(((float)y - (float)nodeGoal.y))); float d=3*sqrt(xd*xd+yd*yd); return d; } 第三次修改后的启发函数: float MapSearchNode::GoalDistanceEstimate( MapSearchNode&nodeGoal ) { float xd = fabs(float(((float)x - (float)nodeGoal.x)));

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

中南大学电工技术完整答案

电工技术II习题 电工电子教学实验中心 中南大学 2011年上学期

目录 习题1——电路模型和电路定律 (1) 习题2——等效电路分析方法 (4) 习题3——支路电流法、回路电流法和结点电压法 (8) 习题4——电路基本定理 (11) 习题5——正弦稳态电路的分析 (16) 习题6——正弦电路的谐振 (22) 习题7——三相交流电路 (29) 习题8——动态电路 (32) 习题9——二端口网络 (32)

习题1——电路模型和电路定律 1-1 根据图示参考方向,判断各元件是吸收还是发出功率,其功率各为多少? 解:元件1吸收10W ;元件2吸收10W ;元件3发出10W ;元件4发出10W ; 1-2 各元件的条件如图所示。 (1)若元件A 吸收功率为10 W ,求I a ; (2)若元件B 产生功率为(-10 W),求U b ; (3)若元件C 吸收功率为(-10 W),求I c ;(4)求元件D 吸收的功率。 解:I a =-1A; U b =-10V; I c =-1A; P =-4mW. 1-3某直流电源的额定功率为P N =200W ,额定电压为U N =50V ,内阻R 0=0.5Ω,负载电阻R 可以调节,如图所示,试求: (1) 额定状态下的电流及负载电阻; (2) 空载状态下的电压; (3) 短路状态下的电流。 解:(1) P N =U N ×I N ----> I N =4A; E= U N + R o ×I N I N =E /(R o +R ) (2) U =E= U N + R o ×I N (3) I st =E /R 0 1-4 某有源支路接在U =230V 得电路中的电流I =10安培。求: (1)该有源支路的电动势E ; (2 解:(1)E= U + R o ×I =235V (2)P =U ×I >0, 输送 1-5 (1)求图 (a)(2)求图 (b)解:(a )U 1=3×4 =12V ,受控电压源的端电压×24 =72W (b )I 2=0.5A ,受控电流源的电流6I 2=3A ,P 吸=5×3 =15W 1-6 求图示各电路中的U ab ,设端口a 、b 均为开路。 解:(a )U ab =-2+4=2V (b )U ab =-1+8=7V (c )i =5/20 =0.25 A U ab =3i +10i =3.25V (d )U ab =-3+5×1=2V E E

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

中南大学制造系统自动化技术实验报告整理

制造系统自动化技术 实验报告 学院:机电工程学院 班级:机制**** 姓名:张** 学号: *********** 指导教师:李** 时间: 2018-11-12 实验一柔性自动化制造系统运行实验 1.实验目的 (1)通过操作MES终端软件,实现对柔性制造系统的任务下达和控制加工,让学生

了解智能制造的特征及优势。 (2)通过创意性的实验让学生了解自动化系统总体方案的构思。 (3)通过总体方案的构思让学生了解该系统的工作原理,并学会绘制控制系统流程图,掌握物料流、信息流、能量流的流动路径。 (4)通过总体方案的构思让学生掌握各机械零部件、传感器、控制元器件的工作原理及性能。 (5)通过实验系统运行让学生了解运行的可靠性、安全性是采用何种元器件来实现的,促进学生进行深层次的思考和实践。 2.实验内容 (1)仔细观察柔性自动化制造系统的实现,了解柔性自动化制造系统的各个模块,熟悉各个模块的机械结构。 (2)了解各种典型传动机构的组装、工作原理、以及如何实现运动方向和速度的改变; (3)学习多种传感器的工作原理、性能和使用方法; (4)了解典型驱动装置的工作原理、驱动方式和性能; (5)理解柔性制造系统的工作原理,完成柔性制造系统的设计、组装; (6)实现对柔性制造系统的控制与检测,完成工件抓取、传输和加工。

3.实验步骤 (1)柔性制造系统的总体方案设计; (2)进行检测单元的设计; (3)进行控制系统的设计; (4)上下料机构的组装与检测控制; (5)物料传输机构的组装与实现; (6)柔性制造系统各组成模块的连接与控制; (7)柔性制造系统各组成单元的状态与工件状态位置的检测; (8)对机器人手动操作,实现对工件的抓取、传输。 4. 实验报告 ①该柔性自动化制造系统由哪几个主要的部分组成; 主要由:总控室工作站、AGV小车输送物料机构、安川机器人上下料工作站、法那科机器人上下料工作站、ABB机器人组装工作站、视觉检测及传送工作站、激光打标工作站、堆垛机及立体仓储工作站。 ②画出该柔性自动化制造系统的物料传输系统结构简图;

C程序设计实验报告

实验1 C程序运行环境、数据类型、运算符和表达式 一、实验目的 1. 掌握Turbo C集成环境的进入与退出、Turbo C集成环境各种窗口的切换,了解Turbo C集成环境的设置。 2. 掌握C语言源程序的建立、编辑、修改、保存及编译和运行等操作。 3. 学会使用C语言的基本运算符(主要是算术运算符、赋值运算符)及其表达式。 4. 掌握C语言源程序的结构特点与书写规范。 二、实验要求 1. 根据题目要求,进行各种程序测试与验证,并记录结果。 2. 上机调试程序。按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根 据这些信息找到程序中的错误所在,然后修改程序,直至正确。 3. 详细记录数据的输入、输出信息,按要求写出实验报告。 三、实验内容 1. 开机;进入Turbo C集成工作环境,了解Turbo C集成工作环境及其菜单的使用,输入如下C语言源程序,并以exl.C存盘。 / *ex1.c* / #include main() { printf("Hello!\n"); printf("This is C program!\n"); } 试编译、连接、运行该程序,并按Alt+F5查看运行结果。 运行结果是: 2. 输入并调试运行以下程序,查看运行结果 (由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。 main() { printf("char\t%d bytes\n",sizeof(char)); printf("short\t%d bytes\n",sizeof(short)); printf("int\t%d bytes\n",sizeof(int)); printf("long\t%d bytes\n",sizeof(long)); printf("float\t%d bytes\n",sizeof(float)); printf("double\t%d bytes\n",sizeof(double)); } 运行结果是: 3. 输入并调试运行以下程序。 main() {int i,j,m,n; i=8;j=10;

算法实验报告

算法分析与设计实验报告 学院:信息科学与工程学院 专业班级: 指导老师: 学号: 姓名:

目录 实验一:递归与分治 (3) 1.实验目的 (3) 2.实验预习内容 (3) 3.实验内容和步骤 (3) 4.实验总结及思考 (5) 实验二:回溯算法 (6) 1.实验目的: (6) 2.实验预习内容: (6) 3. 实验内容和步骤 (6) 4. 实验总结及思考 (9) 实验三:贪心算法和随机算法 (10) 1. 实验目的 (10) 2.实验预习内容 (10) 3.实验内容和步骤 (10) 4. 实验总结及思考 (13)

实验一:递归与分治 1.实验目的 理解递归算法的思想和递归程序的执行过程,并能熟练编写快速排序算法程序。 掌握分治算法的思想,对给定的问题能设计出分治算法予以解决。 2.实验预习内容 递归:递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。 一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数). 分治:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 3.实验内容和步骤 快速排序的基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 源代码: #include using namespace std; int num; void swap(int &a,int &b) { int temp=a; a=b; b=temp; } void printarray(int *arr) { for (int i=1;i<=num;++i) cout<

C+程序设计实验报告-2013

C++程序设计 实验报告 专业计算机科学与技术班级 ____________ 学号 ____________ 姓名 ____________ 指导教师 __许加兵_ 信息与电子工程学院2013年9月-12月

C++程序设计实验报告 专业__________班级__________学号__________姓名__________ 成绩____________ 指导教师____________ 日期____________ 实验1 C++集成开发环境与C++函数程序设计 一、实验目的 1、了解和使用Visual Studio 2010的C++集成开发环境; 2、熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、学会完整的C++程序开发过程; 4、学习并掌握C++函数程序设计; 二、实验内容 1、安装、了解和使用Visual Studio 2010的C++集成开发环境; 2、通过以下的C++函数程序设计,熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、通过以下的C++函数程序设计,学会完整的C++程序开发过程; 4、完成以下的C++函数程序设计和调试: 1)编写一个函数print(),将一个整型向量输出到cout。此函数接受两个参数:一个字符串(用于“标记”输出)和一个向量。 2) 编写一个函数,接受一个vector 参数,返回一个vector ,其每个元素值是对应字符串的长度。此函数还找出最长和最短的字符串,以及字典序第一个和最后一个字符串。 三、简要说明C++开发环境安装和配置的过程

中南大学 计算机体系结构实验报告

计算机体系结构课程设计 学院:信息科学与工程学院 专业班级: 指导老师: 学号: 姓名:

目录 实验1 对指令操作码进行霍夫曼编码 (3) 一、实验目的 (3) 二、实验内容 (3) 三、设计思路 (4) 四、关键代码 (4) 五、实验截图 (5) 六、源代码 (5) 实验2 使用LRU 方法更新Cache (8) 一、实验目的 (8) 二、实验内容 (8) 三、设计思路 (9) 四、程序截图 (9) 五、实验代码 (9) 实验总结 (16) 参考文献 (16)

实验1 对指令操作码进行霍夫曼编码一、实验目的 了解和掌握指令编码的基本要求和基本原理 二、实验内容 1. 使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果以及对指令码的长度进行评价。与扩展操作码和等长编码进行比较。 2. 问题描述以及问题分析 举例说明此问题,例如: 下表所示: 对此组指令进行 HUFFMAN 编码正如下图所示: 最后得到的HUFFMAN 编码如下表所示:

最短编码长度为: H=0.45*1+0.30*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=-1.95. 要对指令的操作码进行 HUFFMAN 编码,只要根据指令的各类操作码的出现概率构造HUFFMAN 树再进行 HUFFAM 编码。此过程的难点构造 HUFFMAN 树,进行 HUFFAM 编 码只要对你所生成的 HUFFMAN 树进行中序遍历即可完成编码工作。 三、设计思路 观察上图,不难看出构造 HUFFMAN 树所要做的工作:1、先对各指令操作码的出现概率进行排序,构造一个有序链表。2、再取出两个最小的概率节点相加,生成一个生的节点加入到链表中,同时从两表中删除此两个节点。3、在对链表进行排序,链表是否只有一个节点,是则 HUFFAN 树构造完毕,否则继续做 2 的操作。为此设计一个工作链表(链表的元素时类,此类的功能相当结构。)、HUFFMAN 树节点、HUFFMAN 编码表节点。 四、关键代码 哈夫曼树重点在于如何排列权值大小不同的结点的顺序 private int leafNum; //叶子结点个数 private HaffmanNode[] hnodes; //哈夫曼树的结点数组 public HaffManCode(double[] weight) //构造指定权值集合的哈夫曼树 { int n = weight.length; //n个叶子结点 this.leafNum = n; this.hnodes = new HaffmanNode[2*n-1]; //n个叶子结点的哈夫曼树共有2n-1个结点 for(int i=0; i

C程序设计上实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

中南大学电工电子实习报告

本页面为作品封面,下载文档后可自由编辑删除! 实 习 报 告 单位: 姓名: 时间: 中南大学电工电子实习报告

中南大学电工电子实习报告(一) 一、实习内容: (1)学习识别简单的电子元件与电子线路; (2)学习并掌握收音机的工作原理; (3)按照图纸焊接元件,组装一台收音机,并掌握其调试方法。 二、实习器材介绍: (1)电烙铁:由于焊接的元件多,所以使用的是外热式电烙铁,功率为30w,烙铁头是铜制。 (2)螺丝刀、镊子等必备工具。 (3)松香和锡,由于锡它的熔点低,焊接时,焊锡能迅速散步在金属表面焊接牢固,焊点光亮美观。 (4)两节5号电池。

三、实习目的: 电子技术实习的主要目的就是培养我们的动手能力,同金工实习的意义是一样的,金工实习要求我们都日常的机械车床,劳动工具能够熟练使用,能够自己动手做出一个像样的东西来。而电子技术实习就要我们对电子元器件识别,相应工具的操作,相关仪器的使用,电子设备制作、装调的全过程,掌握查找及排除电子电路故障的常用方法有个更加详实的体验,不能在面对这样的东西时还像以前那样一筹莫展。有助于我们对理论知识的理解,帮助我们学习专业知识。使我们对电子元件及收音机的装机与调试有一定的感性和理性认识,打好日后深入学习电子技术基础。同时实习使我获得了收音机的实际生产知识和装配技能,培养理论联系实际的能力,提高分析问题和解决问题的能力,增强独立工作的能力。同时也培养同学之间的团队合作、共同探讨、共同前进的精神。 具体目的如下: 熟悉手工焊锡的常用工具的使用及其维护与修理。 基本掌握手工电烙铁的焊接技术,能够独立的完成简单电子产品的安装与焊接。熟悉电子产品的安装工艺的生产流程。 熟悉印制电路板设计的步骤和方法,熟悉手工制作印制电板的工艺流程,能够根据电路原理图,元器件实物设计并制作印制电路板。

中南大学人工智能实验报告

“人工智能”实验报告 专业 班级 学号 姓名

目录 一、实验八自动规划实验群 (3) 二、实验一生产式系统实验群 (6) 三、实验二搜索策略实验群 (7) 四、实验七神经网络 (9) 五、实验心得和体会 (10)

实验八自动规划实验群 姓名班级指导老师日期2011.12 实验目 的 熟悉和掌握自动规划的基本原理,方法和主要技术。 实验原理规划是一种问子题求解技术,它从某个特定的问题状态出发,寻求一系列行为动作,并建立一个操作序列,直到求得目标状态为止。简而言之,规划是一个行动过程的描述。一个总规划可以含有若干个子规划。 实验环 境 转载相 关源文 件 实验环境 转载相关源文件 实现过 程 单步观察实验算法

算法结果分析 观测结果通过规定规则,确定initial state和goal state,使得移动臂按照规则进行移动。分别进行clear holding pickup putdown putdowntable等实现对木块的移动。 实现过程先进行逆向推理选择,找出途径后再进行移动。 学生结论对于不同的规则将会出现不同的移动过程。通过规定不同的动作可实现不通过的移动。

实验一生产式系统实验群 姓名指导老师日期2011.12 实验目的熟悉和掌握产生式系统的运行机制,掌握基 于规则推理的基本方法。 推理方 法 逆向推理 建立规则库建立事实库 该动物是哺乳动物<- 该动物有毛发. 该动物是哺乳动物<- 该动物有奶. 该动物是鸟<- 该动物有羽毛. 该动物是鸟<- 该动物会飞&会下蛋. 该动物是食肉动物<- 该动物吃肉. 该动物是食肉动物<- 该动物有犬齿&有爪&眼盯前方. 该动物是有蹄类动物<- 该动物是哺乳动物&有蹄. 该动物是有蹄类动物<- 该动物是哺乳动物& 是嚼反刍动物. 该动物是金钱豹<- 该动物是哺乳动物&是食肉动物&是黄褐色&身上有暗斑点. 该动物是虎<- 该动物是哺乳动物&该动物是食肉动物&是黄褐色&身上有黑色条纹. 该动物是长颈鹿<- 该动物是有蹄类动物&有长脖子&有长腿&身上有暗斑点. 该动物是斑马<- 该动物是有蹄类动物&身上有黑色条纹. 该动物是鸵鸟<- 该动物是鸟&有长脖子&有长腿&不会飞&有黑白二色. 该动物是企鹅<- 该动物是鸟&会游泳&不会飞&有黑白二色. 该动物是信天翁<- 该动物是鸟&善飞. %------动物识别系统事实集: %会游泳. %--该动物是企鹅 %不会飞. %有黑白二色. %该动物是鸟. %-------- %--该动物是鸟 %该动物会飞. %会下蛋. %----该动物是金钱豹<- 该动物是哺乳动物&是食肉动物&是黄褐色&身上有暗斑点. %该动物有毛发. %是食肉动物. %是黄褐色. %身上有暗斑点. %----该动物是虎<- 该动物是哺乳动物&该动物是食肉动物&是黄褐色&身上有黑色条纹. %该动物是哺乳动物. %是食肉动物. %是黄褐色. %身上有暗斑点. %----该动物是长颈鹿<- 该动物是有蹄类动物&有长脖子&有长腿&身上有暗斑点. %该动物是有蹄类动物. %有长脖子. %有长腿. %身上有暗斑点. 预测结果假设目标为该动物是金钱豹,则结果为true. 实验过程及结果(注意观测规则的匹配过程和方法) (1)假设这个动物是金钱豹。为了检验这个假设,根据规则, 要求这个动物是哺乳动物&是食肉动物&是黄褐色&身上有暗 斑点. (2)必须检验这个动物是否为哺乳动物。先由规则库中的: 该动物是哺乳动物<- 该动物有毛发.该动物是哺乳动物<- 备注(原因等) 根据逆向推理可以逐步 确定

c程序设计实验报告.docx

. C++ 程序设计 实 验 报 告 : 班级: 学号: 指导教师:

. 实验一VC6.0 环境入门与简单程序设计 一、实验目的: 1、熟悉 VC++6.0 开了环境并编写简单的C++ 程序。 3、使用 C++ 语言编写简单的输入输出程序。 4、使用 VC++6.0 的 DEBUG 调试功能:单步执行、设置断点、观察变量值。 二、实验内容: 1、使用 VC++ 建立一个标准C++ 程序,编译、运行如下程序: #include Int main() { Cout<< ”Hello World!\n”; Cout<< ”Welcome to C++!\n”; } 2、编程计算图形的面积。程序可计算圆形、长方形、正方形等的面积,运行时首先提 示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来。 #include using namespace std; void circle_area(); void rectangle_area(); void square_area(); int main()

. { int i; while(1) { cout<<" 请输入图形类型(1:圆形; 2:长方形; 3:正方形; 4:退出。): "; cin>>i; switch(i) { case 1:circle_area();break; case 2:rectangle_area();break; case 3:square_area();break; case 4:return 0; default:cout<<"输入错误!\n"; } } } void circle_area() { float r,s; cout<<" 输入圆的半径:"; cin>>r; s=3.14*r*r; cout<<" 该圆的面积是:"<>a>>b; s=a*b; cout<<" 该长方形的面积是:"<>a; s=a*a; cout<<" 该正方形的面积是:"<

相关文档
最新文档