VC课程设计报告pm.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XX大学计算机软件技术基础(VC)课程设计报告 学院 XX班级 XX姓名XX 学号XX 成绩 __ ____ 一、题目: 求线性代数方程组的解(高斯消去法)(35) 二、设计思路 1、总体设计 1)程序的功能:通过列主元高斯消去法来求解线性代数方程组的解。 2)系统总体结构: main函数功能:输入方程和未知量个数,调用enter、remove、judge函数,求解线性代数方程组的解。 enter函数功能:在确定了方程个数和未知量个数的情况下,输入由未知量系数和等式右边常数确定的矩阵(增广阵)。 remove函数功能:利用列主元消去法实现方程组的消元,即将增广阵转化到上三角阵。 judge函数功能:通过求由未知量系数构成的矩阵(系数阵)和增广阵的秩,返回给主函数不同的值,用以判断方程组的解的情况(无解、无穷多解或唯一解)。 2、各功能模块的设计: main函数实现方法:定义两个整型变量row和col用于接收方程的个数和未知量的个数加一,定义double型的二维数组a[100][100]用于接收增广阵,调用enter函数输入增广阵(相当于输入所求方程组),调用remove函数用列主元消去法得到增广阵对应的上三角阵(相当于为方程组消元),调用judge函数得到增广阵和系数阵的秩,从而得到判断方程解的情况的返回值,再根据返回值判断方程组的解的情况,在无解和无穷多解得情况下输出提示信息,在有唯一解的情况下,得到并输出唯一解。 enter函数实现方法:通过定义指针数组*p[10]和二级指针*pp将a[0][0]的地址和row和col作为实参传递给enter函数的形参,从而在enter函数中对a[100][100]进行操作,即输入增广阵。 remove函数实现方法:通过定义指针数组*p[10]和二级指针*pp将a[0][0]的地址和row和col作为实参传递给enter函数的形参,从而在enter函数中对增广阵进行操作,从i=0开始,找到a[i][i]所在列中a[i][i]及以下元素中的最大值,并通过换行将这个最大值换到第i列,经检查a[i][i]即以下元素不都为零后,经过行与行之间的四则运算将换行以后的a[i][i]以下元素都消为0,倒数第二个主对角线元素所在的行,最终实现将增广阵化为上三角阵,即为方程组消元的目的。 judge函数实现方法:定义一个整型变量,将其初始值定义为0,作为增广阵中元素全都是零的行数的累加器,又另定义一个整型变量,将其初始值定义为0,作为每一行中0的个数的累加器,根据两个累加器最终的值得到增广阵地秩,同样方法得到系数矩阵的秩,从而使函数返回出用于判断解的情况的值。 3、设计中的主要困难及解决方案 在这部分论述设计中遇到的主要困难及解决方案。 1)困难1:在实现将增广阵化为上三角阵地过程中,多次用到for循环,虽然编译连接无错,但是多次出现循环语句只执行一次,即使循环条件满足也不继续循环的情况,还有多次出现循环后所得执行结果不正确的情况。 解决方案:将多重循环拆开成多个单循环,尽量减少循环的次数,根据所需验证的循环编写简单容易的小程序,用以鉴别这个循环是不是错的,从而一步步缩小范围,找到出现错误的小循环后在针对这个小循环再通过编写简单容易的小程序进行检查和验证,最终发现问题所在,将程序中出错的地方改正后,使得循环正常,得到正确运行结果。 2)困难2:判断出方程组有唯一解后,对于通过什么样的程序解除方程组的解无从下手。 解决方法:将C++编程问题暂时放到一边,而是转向实际线性方程组通过高斯消元法求解的问题,通过在实际问题中分析发现唯一解时求解每一个未知量所用的方法和所遵循的规律,再将这些方法和规律通过C++程序体现出来,从而得到求解所用的正确程序。 4、你所设计的程序最终完成的功能 1)编制的程序能完成的功能:按要求在输入一个线性方程组的方程个数、未知量个数和未知量前的系数以及等式右边的常数后,能够判断出此方程组解的情况,在无解和有无穷多解时输出相应的提示信息,在有唯一解时输出相应的提示信息以及该方程组的解。 2)准备的测试数据及运行结果 3X1+2X2+X3=14 X1+X2+X3=10 2X1+3X2-X3=1 运行结果: X1+2X2+3X3=4 0X1+0X2+0X3=9 5X1+6X2+7X3=8 运行结果: X1+X2+X3=4 X1+X2=6 运行结果: 三、程序清单 本程序包含main.cpp、enter.h、remove.h、judge.h四个文件 1、main.cpp文件清单 #includeiostream.h #includemath.h #include enter.h #include remove.h #inclu

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档