MATLAB语言的程序设计实验报告.docx
- 文档编号:29987714
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:50
- 大小:21.41KB
MATLAB语言的程序设计实验报告.docx
《MATLAB语言的程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB语言的程序设计实验报告.docx(50页珍藏版)》请在冰豆网上搜索。
MATLAB语言的程序设计实验报告
MATLAB语言的程序设计实验报告
MATLAB语言的程序设计
一、实验目的及要求
1.掌握一些矩阵运算的基本函数应用方法
2.熟悉MATLAB程序编辑与设计环境
3.掌握各种编程语句语法规则及程序设计方法
4.会编写程序M文和函数M文
5.初步掌握程序的调式方法
二、实验内容
1.掌握以下矩阵操作函数
实际给定一些数据后,使用各种函数计算,观察运算结果:
zeros(n)
生成nxn的零阵
zeros(n,m)生成n行m列的零阵
ones(n,m)
生成n行m列的全1阵
eye(n)
生成nxn的单位阵
randn(n,m)
生成元素为正态分布随机阵
x=[]
生成空矩阵
1、下列运算是否合法,为什么?
如合法,结果是多少?
(1)
result1
=
a
答>>
result1=a
result1
=
1
4
2
5
3
6
(2)
result2
=
a
b
错误
(3)
result3
=
a
+
b
答>
result3=a+b
result3
=
3
6
2
5
8
11
(4)
result4
=
b
d
答>>
result4=b*d
result4
=
31
22
22
40
49
13
(5)
result5
=
[b
;
c
]
d
答>>
result5=[b;c
]*d
result5
=
31
22
22
40
49
13
-5
-8
7
(6)
result6
=
a
.
b
答>>
result6
=
a.*b
result6
=
2
8
-3
4
15
30
(7)
result7
=
a
.
/
b
答>>
result7=a./b
result7
=
0.5000
0.5000
-3.0000
4.0000
1.6667
1.2000
(8)
result8
=
a
.
c
错误
(9)
result9
=
a
.
/
b
答>>
result9=a./b
result9
=
2.0000
2.0000
-0.3333
0.2500
0.6000
0.8333
(10)
result10
=
a
.
^2
答>>
result10=a.^2
result10
=
1
4
9
16
25
36
(11)
result11
=
a
^2
错误
(12)
result11
=
2
.
^
a
答>>
result12=2.^a
result12
=
2
4
8
16
32
64
2、关系运算与逻辑运算
已知a=20,b=-2,c=0,d=1
(1)
r1
=
a
>
b
答>>
r1=a>b
r1
=
1
(2)
r2
=
a
>
b
if
n1
if
rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
a=[a,n];
end
a
end
答Enter
n,negative
quits:
15
a
=
Columns
1
through
16
15
46
23
70
35
106
53
160
80
40
20
10
5
16
8
4
Columns
17
through
18
2
1
又Enter
n,negative
quits:
72
a
=
Columns
1
through
16
72
36
18
9
28
14
7
22
11
34
17
52
26
13
40
20
Columns
17
through
23
10
5
16
8
4
2
1
2、编程求满足的最小m值。
答i=1;
s=1;
n=0;
while
n
篇2:
C程序设计设计性实验报告
C程序设计设计性实验报告本文关键词:
程序设计,实验,报告,设计
C程序设计设计性实验报告本文简介:
C++程序设计设计性实验C++程序设计设计性实验报告实验项目名称:
高级计算器设计与开发专业班级:
数学061;姓名:
冯凯;学号20xx12021205实验起止日期:
起于2021年11月1日止于2021年12月10日实验目的:
1.学会用C++语言和利用数据结构中的堆栈实现表达式的解析与计算。
2.学会使用
C程序设计设计性实验报告本文内容:
C++程序设计设计性实验
C++程序设计设计性实验报告
实验项目名称:
高级计算器设计与开发
专业班级:
数学061
;姓名:
冯
凯
;学号
20xx12021205
实验起止日期:
起于
2021
年
11
月1日止于
2021
年
12
月10日
实验目的:
1.学会用C++语言和利用数据结构中的堆栈实现表达式的解析与计算。
2.学会使用动态链接库技术进行编程;学会编辑、编译、运行MFC应用程序的基本
过程,并开发一个可以进行表达式运算的高级计算器。
实验要求:
1.
能处理双精度型数值的加、减、乘、除的表达式计算。
2.编程中使用了动态连接库技术。
开发环境要求:
软环境:
windows98/windowsXP/windows2000,Visual
C++
硬环境:
计算机(Pen4CPU,256MRAM,60G以上硬盘,输入输出设备)
技术文档要求:
按照软工程技术文档编写要求进行。
要求流程图绘制规范,模块功能描述清晰,数据字典齐全。
实验内容:
1
C++语言的顺序结构,分支结构,循环结构,函数,结构体,指针。
2
数据结构中的堆栈存贮结构及其操作的实现。
实验具体方案:
按照系统设计要求,用Visual
C++设计和开发一个MFC应用程序---高级计算器,提交由需求分析;系统设计说明(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图);系统技术文档
(包括系统各模块主要流程图,软总体测试方案与测试记录、局部测试方案与测试记录、软调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程序代码为附录构成的实验报告。
需求分析:
普通的功能简单的仅能进行四则运算的计算工具已经不能满足需要,需要一种能进行多种计算工具。
而windows自带的计算器不能处理表达式这是一个缺陷,为此开发一个能处理表达式运算的高级计算器是十分必要的,这为计算提高了更大的方便,可以大幅度提高计算效率。
系统设计说明:
(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图)
主菜单主要包含:
操作说明、相关主题、退出。
整个程序的模块组成:
(1)
Windows基于对话框的资源文模块。
(2)
动态链接库模块,主要提供了表达式的解析与计算。
(3)
其他功能模块如开平方,取平方,进制转换等。
数据字典
m_edit1
//编辑框变量,用于显示输入输出
CString
str1,str2,str3
;
//中间临时字符串变量
char
s[70],s2[70],buffer[20];
//用于CString字符串的转换以及将double型数据转
换为CString型字符串。
stack
//结构体类型
ElemTypestack;
//存栈元素
Int
top
//存栈顶元素的下标位置
int
MaxSiz//存stack数组长度。
void
Initiatestack(Stack
#endif
double
x,y,z;
///////判断优先级的函数
extern
int
Precedence(char
op);
///////将中缀表达式转换为后缀表达式,中缀在str1中,后缀在str2中
extern
int
change(char*
str1,char*str2);
///////计算后缀表达式的值///////////////////////
extern
double
pute(charstr);
///////////////////////////进制转换函数//////////////////////////////
extern
double
tranfrom(double
num,int
r);
//
CAboutDlg
dialog
used
for
App
About
class
CAboutDlg
:
public
CDialog
{
public:
CAboutDlg();
//
Dialog
Data
//{{AFX_DATA(CAboutDlg)
enum
{
IDD
=
IDD_ABOUTBOX
};
//}}AFX_DATA
//
ClassWizard
generated
virtual
function
overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual
void
DoDataExchange(CDataExchange*
pDX);
//
DDX/DDV
support
//}}AFX_VIRTUAL
//
Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg()
:
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void
CAboutDlg:
:
DoDataExchange(CDataExchange*
pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//
No
message
handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//
CCalcDlg
dialog
CCalcDlg:
:
CCalcDlg(CWnd*
pParent
/*=NULL*/)
:
CDialog(CCalcDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CCalcDlg)
m_edit1
=
_T(““);
//}}AFX_DATA_INIT
//
Note
that
LoadIcon
does
not
require
a
subsequent
DestroyIcon
in
Win32
m_hIcon
=
AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void
CCalcDlg:
:
DoDataExchange(CDataExchange*
pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCalcDlg)
DDX_Text(pDX,IDC_EDIT1,m_edit1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCalcDlg,CDialog)
//{{AFX_MSG_MAP(CCalcDlg)
ON_WM_SYSMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_1,OnNO1)
ON_BN_CLICKED(IDC_2,OnNO2)
ON_BN_CLICKED(IDC_3,OnNO3)
ON_BN_CLICKED(IDC_4,OnNO4)
ON_BN_CLICKED(IDC_5,OnNO5)
ON_BN_CLICKED(IDC_6,OnNO6)
ON_BN_CLICKED(IDC_7,OnNO7)
ON_BN_CLICKED(IDC_8,OnNO8)
ON_BN_CLICKED(IDC_0,OnN0)
ON_BN_CLICKED(IDC_9,OnNO9)
ON_BN_CLICKED(IDC_DIAN,OnDOT)
ON_BN_CLICKED(IDC_ADD,OnADD)
ON_BN_CLICKED(IDC_DENG,OnDENG)
ON_BN_CLICKED(IDC_clear,Onclear)
ON_BN_CLICKED(IDC_SUB,OnSub)
ON_BN_CLICKED(IDC_CHENG,OnCheng)
ON_BN_CLICKED(IDC_CHU,OnChu)
ON_BN_CLICKED(IDC_sqrt,Onsqrt)
ON_BN_CLICKED(IDC_powe,Onpowe)
ON_BN_CLICKED(IDC_DUISHU,OnDuishu)
ON_BN_CLICKED(IDC_BUTTON1,Ondelete)
ON_BN_CLICKED(IDC_BUTTON3,Onyoukuohao)
ON_BN_CLICKED(IDC_BUTTON4,Onzuokuohao)
ON_EN_CHANGE(IDC_EDIT1,OnChangeEdit1)
ON_BN_CLICKED(IDC_BUTTON2,OnER_jin_zhi)
ON_BN_CLICKED(IDC_BUTTON5,Onba_jin_zhi)
ON_BN_CLICKED(IDC_BUTTON6,Onshi_liu_jin_zhi)
ON_BN_CLICKED(IDC_BUTTON7,OnCOS)
ON_BN_CLICKED(IDC_BUTTON8,Onsin)
ON_BN_CLICKED(IDC_BUTTON9,OnOP)
ON_BN_CLICKED(IDC_BUTTON10,OnZhuti)
ON_BN_CLICKED(IDC_BUTTON11,Onexit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//
CCalcDlg
message
handlers
BOOL
CCalcDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//
Add
“About.“menu
item
to
system
menu.
//
IDM_ABOUTBOX
must
be
in
the
system
mand
range.
ASSERT((IDM_ABOUTBOX
ASSERT(IDM_ABOUTBOX
AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//
Set
the
icon
for
this
dialog.
The
framework
does
this
automatically
//
when
the
application
s
main
window
is
not
a
dialog
SetIcon(m_hIcon,TRUE);//
Set
big
icon
SetIcon(m_hIcon,FALSE);//
Set
small
icon
//
TODO:
Add
extra
initialization
here
return
TRUE;
//
return
TRUE
unless
you
set
the
focus
to
a
control
}
void
CCalcDlg:
:
OnSysmand(UINT
nID,LPARAM
lParam)
{
if
((nID
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysmand(nID,lParam);
}
}
//
If
you
add
a
minimize
button
to
your
dialog,you
will
need
the
code
below
//
to
draw
the
icon.
For
MFC
applications
using
the
document/view
model,//
this
is
automatically
done
for
you
by
the
framework.
void
CCalcDlg:
:
OnPaint()
{
if
(IsIconic())
{
CPaintDC
dc(this);
//
device
context
for
painting
SendMessage(WM_ICONERASEBKGND,(WPARAM)
dc.GetSafeHdc(),0);
//
Center
icon
in
client
rectangle
int
cxIcon
=
GetSystemMetrics(SM_CXICON);
int
cyIcon
=
GetSystemMetrics(SM_CYICON);
CRect
rect;
GetClientRect(
int
x
=
(rect.Width()
-
cxIcon
+
1)
/
2;
int
y
=
(rect.Height()
-
cyIcon
+
1)
/
2;
//
Draw
the
icon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//
The
system
calls
this
to
obtain
the
cursor
to
display
while
the
user
drags
//
the
minimized
window.
HCURSOR
CCalcDlg:
:
OnQueryDragIcon()
{
return
(HCURSOR)
m_hIcon;
}
void
CCalcDlg:
:
OnNO1()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“1“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO2()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“2“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO3()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“3“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO4()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“4“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO5()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“5“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO6()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“6“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO7()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“7“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO8()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“8“;
UpdateData(false);
}
void
CCalcDlg:
:
OnN0()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“0“;
UpdateData(false);
}
void
CCalcDlg:
:
OnNO9()
{
m_edit1+=“9“;
UpdateData(false);
}
void
CCalcDlg:
:
OnDOT()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“.“;
UpdateData(false);
}
void
CCalcDlg:
:
OnADD()
{
//
TODO:
Add
your
control
notification
handler
code
here
m_edit1+=“+“;
UpdateData(false);
}
void
CCalcDlg:
:
OnDENG()
{
//
TODO:
Add
your
control
notification
handler
code
here
char
s[70],s2[70],buffer1[20];double
r;CString
str1,str2,str3;int
i=0;
str1=m_edit1;
strncpy(s,(LPCTSTR)str1,sizeof(s));
s[sizeof(s)-1]=
/0
;
if(str1.Left
(1)==“+“||s[0]==
-
||s[0]==
||s[0]==
/
||s[0]==
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 语言 程序设计 实验 报告