软件 学 院 软件+会计 专 业 班
课程设计(文)题目 : 求解理数分式方程
二课程设计(文)工作 2014 年 6 月 20 日起 2014 年 6 月 26 日止
三课程设计(文) 点 创新楼
四课程设计(文)容求:
1 课程设计目
(1)掌握C++语言程序设计方法
(2)理联系实际进步提高学生软件开发技术
(3)培养学生分析解决问题力
(4)提高学生实践文撰写力
2 课程设计务求
1) 基求:
(1) 系统需完成功分析
(2) Visual C++编译器进行程序编译
(3) 提出系统设计方案
(4) 设计源程序进行调试
2) 创新求
基求达进行创新设计
3) 课程设计文编写求
(1)理设计部分课程设计文形式提交格式必须课程设计文标准
格式进行书写装订
(2)课程设计报告(文)包括设计务分析(包括设计务书设计运行环境组员分工等)系统总框图模块设计分析列出定义函数说明存问题足策附程序源代码
(3)A4纸印出文档(附源代码)封面教务处购买写效代码少50行18周机检查程序交设计报告
4) 课程设计评分标准:
(1)学态度:20分
(2)系统演示:15分
(3)回答问题:15分
(4)文撰写:40分
(5)创新思想:10分
成绩评定实行优秀良中等格格五等级格者需重做
5) 参考文献:
(1)谢昕等编著C++程序设计北京邮电出版社 201012
(2)谭浩强编著C++面象程序设计清华学出版社 20061
6) 课程设计进度安排
1准备阶段(4学时):选择设计题目解设计目求查阅相关资料
2程序模块设计分析阶段(4学时):程序总体设计详细设计
3代码编写调试阶段(8学时):程序模块代码编写调试测试
4撰写文阶段(4学时):总结课程设计务设计容撰写课程设计文
7) 课程设计题目具体求:
设计Rational(理数)类求解理数分式方程理数两整数
率通常表示ab中a称分子b称分母分母0开发Rational
类目标创建种类型该类型象基类型定义象样
感觉然
学生签名:
年 月 1日
课程设计(文)评审意见
(1)学态度(20分):优( )良( )中( )般( )差( )
(2)系统演示(15分):优( )良( )中( )般( )差( )
(3)回答问题(15分):优( )良( )中( )般( )差( )
(4)文撰写(40分):优( )良( )中( )般( )差( )
(5)创新思想(10分):优( )良( )中( )般( )差( )
综合评定等级:
评阅: 职称:
年 月 日
目 录
第1章 设计务分析 1
第2章 功实现详细设计 2
第3章 功测试 6
第4章 源代码 9
第5章 结 15
参考文献 16
第章 设计务分析
功分析:
做求解理数分式方程设计Rational(理数)类实现理数分式方程输入计算针程序设计需实现理数输入输出理数分式方程系数输入输出方程求解分式浮点数转换分式化简
次设计定义Rational类定义公私成员函数构造函数重载输入输出流运算符
组成员:
组分工:X:菜单分子分母输入输出
X:分式化简分式浮点数转换
X:理数较理数四运算理数分式方程求解
次课程设计中负责:菜单分子分母输入输出
需考虑问题
v 设计菜单界面
v 分子分母输入输出问题例形式
cin<cout>>i 13 输出
实现操作需重载输入输出流运算符
第2章 功实现详细设计
设计思路算法
1 设计菜单界面
首先编写菜单驱动程序输入14间意数字进入相应选择项
思路提示:for语句switch…case语句实现菜单功循环选择
部分参考代码:
void main()
{
for( )
{
switch(menu_select())
{
case 1
Y0() 输入输出理数
break
case 2
Y1() 理数换算
break
case 3
Y2() 理数求解方程
break
case 4
cout<<\t见\n
return
}
}
}
int menu_select() 菜单选择函数
{
char s[2]
int cn
for(int i0i<24i++)
{
cout<<* 1检测理数输入输出*\n
cout<<* 2理数换算 *\n
cout<<* 3解理数方程 *\n
cout<<* 4退出 *
cout<
{
gets(s)
cnatoi(s) 输入字符串转变数字
}
return cn
}
语句cnatoi(s)输入字符串转变数字便switch中case语句应
数字13符合求输入求重新输入
2分子分母输入
重载流运算符格式构造输出输入
*重载输出流运算符
ostream& operator<<(ostream& ostrconst Rational& x)
{
ostr<
}
输入流需保证正确格式首先保证分母等零然调Standardize()Reduce()函数调整格式
第3章 设计调试分析
运行效果参考
1界面
2实现种理分数输入输出
3
第4章 源代码
#include
#include
#include
class Rational
{
private
long numden
long gcd(long mlong n)const
public
Rational(long p0long q1)
Rational(double x)
void Standardize(void)
void Reduce(void)
double zhuanhua(void)
void PrintMixedNumber(void)
friend istream& operator>>(istream& istrRational& x)
friend ostream& operator<<(ostream& ostrconst Rational &x)
Rational operator+(const Rational& x)
Rational operator(const Rational& x)
Rational operator*(const Rational& x)
Rational operator(const Rational& x)
Rational operator(void)
int operator<(const Rational &x)
int operator<(const Rational &x)
int operator(const Rational& x)
int operator(const Rational &x)
int operator>(const Rational &x)
int operator>(const Rational &x)
}
RationalRational(long plong q)
{
nump
denq
}
void RationalStandardize(void)
{
if(den<0)
{
numnum
denden
}
}
long Rationalgcd(long mlong n)const
{
static long x
if(m>n)
{
if(n0)xm
else gcd(nmn)
}
else
{
if(m0)xn
else gcd(mnm)
}
return x
}
void RationalReduce(void)
{
long bigdivisortempnumerator
tempnumerator(num<0)numnum
if(num0)
den1
else
{
bigdivisorgcd(tempnumeratorden)
if(bigdivisor>1)
{
numbigdivisor
denbigdivisor}
}
}
istream& operator>>(istream& istrRational& x)
{
char c
istr>>xnum>>c>>xden
if(xden0)
{
cerr< exit(1)
}
xStandardize()
xReduce()
return istr
}
ostream& operator<<(ostream& ostrconst Rational& x)
{
ostr<
}
Rational Rationaloperator+(const Rational &x)
{
Rational a
anumden*xnum+xden*num
adenxden*den
aStandardize()
aReduce()
return a
}
Rational Rationaloperator(const Rational &x)
{
Rational a
anumnum*xdenxnum*den
adenxden*den
aStandardize()
aReduce()
return a
}
Rational Rationaloperator*(const Rational &x)
{
Rational a
anumnum*xnum
adenden*xden
aStandardize()
aReduce()
return a
}
Rational Rationaloperator(const Rational &x)
{
Rational a
anumnum*xden
adenden*xnum
aStandardize()
aReduce()
return a
}
Rational Rationaloperator(void)
{
return Rational(numden)
}
int Rationaloperator<(const Rational &x)
{
if(num*xden>den*xnum) return 1
else return 0
}
int Rationaloperator<(const Rational &x)
{
if(num*xden>den*xnum) return 1
else return 0
}
int Rationaloperator(const Rational &x)
{
if(num*xdenden*xnum) return 1
else return 0
}
int Rationaloperator(const Rational &x)
{
if(num*xdenden*xnum) return 1
else return 0
}
int Rationaloperator>(const Rational &x)
{
if(num*xden>den*xnum) return 1
else return 0
}
int Rationaloperator>(const Rational &x)
{
if(num*xden>den*xnum) return 1
else return 0
}
double Rationalzhuanhua(void)
{
return double(num)den
}
void RationalPrintMixedNumber(void)
{
long wholepartlong(numden)
Rational fractionpart
fractionpartdenden
fractionpartnumnumwholepart*den
if(fractionpartRational(0L))
cout<
{
fractionpartReduce()
if(wholepart<0)
fractionpartfractionpart
if(wholepart0)
cout<
cout<
}
RationalRational(double x)
{
double vallval2
vall100000000L*x
val210000000L*x
numlong(vallval2)
den90000000L
Reduce()
}
void Y0()
{
Rational x
cout<<请输入理数x<
cout<
void Y1()
{
double xy
Rational ijkl
cout<<1请输入整数
cin>>x
cout<<理数形式<
cin>>i
cout<<等效浮点数<
cout<<2数相加<
lRationalRational(y)
cout<<转化理数<
lPrintMixedNumber()
}
void Y2()
{
Rational xyz
cout<<理数方程形式<
if(xRational(0L))
cout<<方程解<
cout<<解<<(zy)x<
int menu_select()
{
char s[2]
int cn
for(int i0i<24i++)
cout<<*
cout<
cout<<第八组梁欣仪 邓雅倩 涂华\n
cout<<********^^********\n
cout<<* 1理数输入输出*\n
cout<<* 2理数换算 *\n
cout<<* 3解理数分式方程 *\n
cout<<* 4退出 *
cout<<********^^********\n
cout<
cout<<*
cout<
{
cingetline(s2)
cnatoi(s)
if(cn<1||cn>4)
cout<<\n\t输入错误重选范围14
else
break
}
return cn
}
void handle_menu()
{
for( )
{
switch(menu_select())
{
case 1
Y0()
break
case 2
Y1()
break
case 3
Y2()
break
case 4
cout<<\t拜拜BYE\n
return
}
}
}
void main()
{
handle_menu()
}
第5章 结
学期C++程序设计学解相似C语言程序设计C++程序学许东西
通次C++课程设计体会学东西首先加强C++程序设计门课程认识复前学知识次课程设计中组学遇时课堂考试中会出现问题考验问题时课轻易解决考验知道书东西学知识学会灵活死记硬背学会东西时锻炼够容面未知难题
没做课程设计前总容易做课程设计发现困难许东西棘手轻易解决选课题选完分析:入手分工程序应该做然写程序调试修改总真复杂世难事怕心终努力程序搞定中深意需历体会
做次课程设计组成员帮助学次询问懂方总会热心帮忙解答时候朋友帮助重感谢老师学期教导
总言次C++程序设计实践收获
参考文献:C++程序设计
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档