MATLAB软件设计及应用.docx

上传人:b****5 文档编号:8509460 上传时间:2023-01-31 格式:DOCX 页数:7 大小:185.15KB
下载 相关 举报
MATLAB软件设计及应用.docx_第1页
第1页 / 共7页
MATLAB软件设计及应用.docx_第2页
第2页 / 共7页
MATLAB软件设计及应用.docx_第3页
第3页 / 共7页
MATLAB软件设计及应用.docx_第4页
第4页 / 共7页
MATLAB软件设计及应用.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

MATLAB软件设计及应用.docx

《MATLAB软件设计及应用.docx》由会员分享,可在线阅读,更多相关《MATLAB软件设计及应用.docx(7页珍藏版)》请在冰豆网上搜索。

MATLAB软件设计及应用.docx

MATLAB软件设计及应用

MATLAB软件

软件开发及应用设计文档

 

题目:

MATLAB课程设计

学院:

理学院

专业:

信息及计算科学

班级:

信计一、二班

学号:

姓名:

目录.....................................................2

一、输入日期是此年的第几天的设计方案....................3

1、算法的实现步骤.......................................3

二、对输入的数排序的设计方案............................3

1、算法的实现步骤.......................................3

三、设计工具............................................4

1、MATLAB数学软件......................................4

四、程序流程图..........................................4

1、输入日期是此年第几天流程图...........................4

2、对输入的数排序的流程图...............................4

五、程序主要部分以及函数说明............................5

1、输入日期是此年的第几天算法以及关键代码说明...........5

2、对输入的数排序的算法以及关键代码说明.................6

六、测试及结果..........................................7

1、输入日期是此年的第几天主要用例及结果.................7

2、对输入的数排序的主要用例及结果.......................8

3、开发过程中遇到的问题及解决办法.......................10

七、总结及心得..........................................11

1、收获、总结...........................................11

一、‘输入日期是此年的第几天’设计方案

1、算法的实现步骤

(1)陈述要解决的问题:

编写一个程序——输入日期,输出是这一年的第几天。

(2)考虑用户输入数据:

没有完全输入年月日或输入年月日超出范围。

(3)算法实现的基本方法:

if条件语句,for循环语句,switch分支语句。

(4)设计算法。

(5)编写程序。

二、‘对输入的数排序’设计方案

1、算法的是实现步骤

(1)陈述要解决的问题:

对输入的数排序(升序或降序)。

(2)如何让用户决定排序:

输入‘up’和其他字符串来决定升序排序,输入‘down’来决定降序排序,如果输入空格或者没有输入决定排序的字符,则跳出输入错误的提示。

(3)实现的基本方法:

if条件语句,for循环语句。

(4)设计算法。

(5)编写程序。

三、设计工具

1、MATLAB数学软件

四、程序流程

1、‘输入日期是此年的第几天’流程图

 

2、‘对输入的数排序’流程图

五、程序主要部分以及函数说明

1、输入日期是此年的第几天

(1)算法:

先判断参数是否超出了规定的范围

判断年份为平年还是闰年,若为平年,leapday=0,若为闰年,leapday=1.

若(year,4)==0&&(year,100)~=0||(year,400)==0

Leapday=1

否则leapday=0

根据输入月份,

若month=1,3,5,7,8,10,12

Out=out+31

若month=4,6,9,11

Out=out+30

若month=2

Out=out+28+leapday

输出所求结果

(2)function输出参数列表、dday输入参数列表,Month、theday、year是年月日的参数。

(3)关键代码:

if(isempty(month)||isempty(the_day)||isempty(year))disp('entererror');如果用户输入的年月日有空格或者没有输入,则提示输入错误。

elseif((month>=1&&month<=12)&&(the_day>=0&&the_day<=31)&&(year>=0&&year<=10000));判断输入的年月日是否在范围内,不是则输出disp('enterthescopeofdateerror');则提示说输入的年月日超出范围,否则往下执行。

2、对输入的数排序

(1)算法:

升序通过比较,把最小值及第一个数进行交换,以此类推把数从小到大排列。

Forii=1:

nvals-1

x<-ii

forjj=ii+1tonvals

若a(jj)

X<-jj

若i~=x

交换a(i)及a(x)

降序通过比较,把最大值及第一个数进行比较,以此类推把数从大到小排列。

Forii=1:

nvals-1

x<-ii

forjj=ii+1tonvals

若a(jj)>a(x)

X<-jj

若i~=x

交换a(i)及a(x)

(2)function输出参数列表、ssort输入参数列表,a、str是输入参数。

(3)关键代码:

if((isempty(str)))disp('enterblankspaceornoenter');判断用户输入决定排序的字符串,如果是空或者没有输入,则提示输入空格或没有输入,不执行下面程序。

if((nargin==2&&(strcmp(str,'up')==1))||(nargin==2&&((strcmp(str,'up')==0&&strcmp(str,'down')==0))))这个是判断输入参数列表是否是两个,并且判断输入的字符是否是down,不是则执行升序排序。

六、测试及问题

1、输入日期是此年的第几天的主要测试用例及结果

(1)输入月份超出范围:

Entermonth(1-12):

13

Enterday(1-31):

1

Enteryear(yyyy):

1999

enterthescopeofdateerror

(2)年、月、份输入有空格:

Entermonth(1-12):

Enterday(1-31):

2

Enteryear(yyyy):

2001

entererror

(3)没有输入:

Entermonth(1-12):

Enterday(1-31):

Enteryear(yyyy):

entererror

(4)正常输入:

Entermonth(1-12):

3

Enterday(1-31):

1

Enteryear(yyyy):

2001

thedate3/1/2001isdayofyear60.

2、对输入的数排序的主要测试用例及结果

(1)输入字符串up:

enternumberofvaluestosort:

4

enterastring:

up

entervalue1:

2

entervalue2:

3

entervalue3:

7

entervalue4:

9

sorteddata:

2.00003.00007.00009.0000

(2)输入其他字符串:

enternumberofvaluestosort:

4

enterastring:

sedr

entervalue1:

6

entervalue2:

5

entervalue3:

2

entervalue4:

1

sorteddata:

1.00002.00005.00006.0000

(3)输入字符串down:

enternumberofvaluestosort:

3

enterastring:

down

entervalue1:

4

entervalue2:

7

entervalue3:

2

sorteddata:

7.00004.00002.0000

(4)没有输入字符串:

enternumberofvaluestosort:

3

enterastring:

enterblankspaceornoenter

3、开发过程中遇到的问题及解决办法

在编写程序过程中,原本想用error、nargchk结合来判断输入的参数的个数以及如输入的参数不在范围内,停止程序的执行,所以就用多个if条件语句多次判断。

简单的用书上的例子,如果用户输入空格或者不输入,输入不符合范围,程序就会报错,所以用if条件语句进行筛选,用isempty函数判断输入的空格或者没有输入。

七、总结及心得

1、收获

通过这次小组的合作,从中意识到了大家各方面都存在明显的不足,但是值得高兴的是大家都在齐心协力的做一件事,相互帮助,相互给予安慰、体谅,懂得了团体合作的重要性。

而且这次的软件设计,让大家都再次复习了一遍课本的内容,并且开动了脑筋做了第一次有挑战性的尝试。

由本来对MATLAB课程的模糊理解迈进了一个阶梯,当然更意识到动手的重要性,凡事真的不能纸上谈兵,光读懂课本的内容没有用,要自己真正动手操作才行,就像这次大家一起付出就会有收获。

2、总结

从这次设计课中,看出我们对MATLAB的基础知识还不太熟悉,还需要平时多加练习。

 

任务分配

程序编写:

孔芳霞

算法设计:

范盈盈

调试:

徐翰

方案设计:

吴丹

测试:

曾冬英

文档编写:

刘芬

上面是主要的分工,在过程中有困难,大家都会讨论过程都是相互参及的。

 

学号:

(130710301)26、27、29、30、31、

姓名:

范盈盈、孔芳霞、刘芬、吴丹、曾冬英、徐翰

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1