UML实验七.docx
《UML实验七.docx》由会员分享,可在线阅读,更多相关《UML实验七.docx(11页珍藏版)》请在冰豆网上搜索。
![UML实验七.docx](https://file1.bdocx.com/fileroot1/2023-2/11/3809ad41-572c-4839-ae31-f10d08f70326/3809ad41-572c-4839-ae31-f10d08f703261.gif)
UML实验七
UML实验报告
(一元二次方程的动态演示软件开发)
1需求分析2
1.1实验设计性质和目的2
1.2设计背景2
1.3、程序的实现功能2
2概要设计2
2.1本系统使用到的库函数有:
2
2.2系统定义的函数有:
3
2.3流程图3
3.模型图4
3.1系统用例图4
3.2类图4
3.3时序图5
3.4状态图5
4程序运行结果6
5程序代码7
1需求分析
1.1实验设计性质和目的
学会用类的方法解决实际问题。
掌握一般类的定义、测试、封装、数据隐藏、继承及多态等概念,掌握面向对象程序设计的基本概念和基本方法,掌握C++语言的基本语法和基本内容,并能运用C++语言进行基本的面向对象程序设计,并且通过综合课程设计,提高学生的实践动手技能,培养学生独立分析分析问题和解决问题的能力。
1.2设计背景
现实学习生活中,常会遇到一些自变量较大数据繁杂的方程运算,徒手运算起来很困难,这时候我们就必须用到计算机,所以便着手开发了这个解一元二次方程程序,以便用于自己的学习工作。
现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。
这些大大方便了我们的生活给我们更多的选择和实现方式。
这个程序可以直接输入一元二次方程自变量的系数,不需要任何转换,就可以直接输出方程的解并且操作简单、界面清晰、灵活、实用、方便,一元二次方程的设计使我们所学到的c++知识在现实中得到检验。
1.3、程序的实现功能
用户运行程序后进入系统界面,在主界面用户可以输入一元二次方程自变量的系数,直接输出方程的解。
本系统同时只能对一个方程进行求解操作,不能同时求解多个方程。
2概要设计
2.1本系统使用到的库函数有:
#include
#include
#include
2.2系统定义的函数有:
voidInput();
voidDisplay();
voidFind();
系统定义了类classFindRoot;
2.3流程图
系统设计流程图
3.模型图
3.1系统用例图
3.2类图
3.3时序图
3.4状态图
4程序运行结果
开始界面
系数的输入和根的求值
各种情况的根的求值
程序退出
5程序代码
#include//包含iostream的头文件
#include
#include//字符串处理函数
usingnamespacestd;
classFindRoot//定义类FindRoot
{
private:
floata,b,c;
doubler,q,x1,x2;//定义数据成员类型
intjud;
public:
voidInput();//输入函数
voidDisplay();//显示函数
voidFind();//求根函数
};
//以上是类的声明部分,以下是类的实现部分
voidFindRoot:
:
Input()
{
cout<<"这是一个求解ax2+bx+c=0的根的程序:
"<for(;;)
{
cout<<"输入方程系数a:
";
cin>>a;
if(a==0)
cout<<"错误:
a不能为0!
!
!
:
"<elsebreak;
}//输入a,并对a的可能情况进行判断
cout<<"输入方程系数b:
";
cin>>b;//输入b
cout<<"输入方程系数c:
";
cin>>c;//输入c
}
voidFindRoot:
:
Find()//定义求根的函数
{
floatdelta=b*b-4*a*c;//定义求根公式的数据类型
if(delta<0)
{jud=0;
r=-b/(2*a);
q=sqrt(-delta)/(2*a);//有两个共轭复数根的情况
}
elseif(delta==0)
{
x1=-b/(2*a);
jud=1;//有两个相同的根的情况
}
else
{
x1=(-b+sqrt
(delta))/(2*a);
x2=(-b-sqrt
(delta))/(2*a);
jud=2;//有两个不同的根的情况
}
}
voidFindRoot:
:
Display()//定义显示函数
{
switch(jud)
{
case0:
{cout<<"x1="<cout<<"x2="<case1:
cout<<"x1=x2="<case2:
cout<<"x1="<}
}
voidmain()//主函数
{
while
(1)
{
FindRootf;//定义类型
f.Input();
f.Find();
f.Display();//以上各函数按顺序执行
cout<<"是否退出?
(Y退出,其它任意键继续)"<charm[2];charY[]="Y";chary[]="y";//定义字符串
cin>>m;
if(strcmp(m,Y)==0||strcmp(m,y)==0)
break;//如果退出则终止运行
else
cout<<"请继续……"<}
}