




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳航空工业学院课程设计学号 2008040201105班级 84020103姓名李荣飞指导教师尹航2009年 9月 11日沈阳航空工业学院课程设计任务书电子信息工程学院 电子信息工程专业84020103班 学号2008040201105一、课程设计题目:用高斯列主元消元法解线性方程二、课程设计工作自2009年9月6日起至2009年9月11日止三、课程设计内容:运用所学的c语言知识,编制和调试程序,具有如下功能: 请用高斯列主元消元法解下列方程组:2%j+2x2+5x33西+4x2+7x3%!+3x2+3x3r四、课程设计要求: 程序质量: 贯彻结构化程序设计思想。 用户界面友好,功能明确,操
2、作方便;可以加以其它功能或修饰。 用户界面中的菜单至少应包括“输入数据”、“开始计算”、“退 出” 3项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: 封而 课程设计任务书 目录 需求分析(分析题目的要求) 程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段 个人总结 参考资料 源程序及适当的注释指导教师: 学生签名:目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段8四、个人总结10五、参考文献11六、源程序11一、需求分析经过对程序设计题目的分析可知,整个
3、程序的设计实现大致分 为三个模块,分别是:输入方程组,计算方程组,继续运算/退岀。计算方程组模块对应三个函数,其函数名和功能如下:一、交换行的距函数(huanhang):主要实现线性代数高斯列主元 消元法求解线性方程组中的初等行变换。二、比较系数大小的函数(bijiao):实现比较系数大小的算法。三、实现菜单选择的函数(caidan):使用户界面友好,操作方便。除上面介绍的功能之外,程序还具有“继续运算/退出”功能, 可以在程序的一次运行当中循环执行所有的功能,并根据需要,终 止程序的执行。、程序流程图1、程序总体结构图图1:程序总体结构图输出:用gauss列主元消元法解线性方程组输出:解方程
4、组请按1.输出:退出程式请按2.图1程序总体结构图2、具体功能框图(1)界面caidan函数图2 caidan函数输出:继续运算按1,退出程序按2!根据getcher()«选择enterecs其他调用退出输出:不合法的输入!yunsuan调用 caidan()比较bijiao函数图3: bijiao函数temp=0-iit(3)交换行的矩函数huanhang函数i=l当iv=u+l时aoi=ari14-4-i=l当iv=u+l时ari=akii+i=l-当 iv=u+l 时 a|k|i=a|oj|i i+图 4: huanhang 函数(4)运算yunsuan函数输出:输入方程组的维
5、数:n二 输入:n 输出:现在输入系数矩阵a和向量b:i=l当 iv二n输出:请输入系数和向量j=l当 i<=n+l时输入 aijlf+i+当k<=n-l吋ark=bijiao(k)ark=o假输出:此方程组不合法!error!调用 caidanq调用huanhango并 代入flog,k的值i=k+l (接下页)接上一页:i二k+l (接上一页)当 iv=n匸k+l当 j<=n+laij=aij-akj*aik/akkj+i+k+xn=ann+l/annk=n-l当k>=l时 me=o当 iv=nme=me+a k j *x j ak=(akn+l-me)/akl&l
6、t;i=l (接下一页)接上一页:i=l(接上一页)当i<=n时输出:i,xii+调用 caidanq图5: yunsuan函数三、核心技术的实现说明及相应程序段木程序一共由四个自定义函数和一个主函数组成,其中主函数 以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当 屮,比较系数大小的函数、运算函数是程序屮较为核心的部分,下 面分别进行说明。1、比较系数大小的函数比较系数大小的函数主要是为 运算函数 所做准备的,fabs是 求双精度浮点数的绝对值的函数。输入参数是双精度浮点数,计 算结果送返绝对值,也是双精度浮点数这样才可以保证以前已经存 在的数据不丢失。具体的程序段如下:fl
7、oat bijiao(int k) /*比较系数大小的函数*/int i;float temp=0;for(i=k;i<=n;i+)if(fabs(aik)>temp)temp=fabs(aik);flag=i;return temp;2、运算函数运算函数是本程序的主要部分,首先输入系数和向量后存入数 组,判断方程是否合法,不合法则返回菜单,然后通过循环解二维 数组,最后输出结果i,xi,具体程序段如下:float yunsuan()float xnumber; /*此数组用于存放方程解*/ printf(nnn输入方程组的维数:n=n); scanf(m%dm,&n);p
8、rintf(h nn现在输入系数矩阵a和向量b:n);for(i=l;i<=n;i+ ) printf(f,nn 请输入 a?-a%d%d 系数和向量 b%d:",i,i,n);/*实现将每一行中的系数和向量一次性输入,数之间用空格格开, 输完后回车确定*/for(j=l;j<=n+l;j+ )/*将刚才输入的数存入数组*/ scanf("%f&aij);for(k=l ;k<=n-l ;k+)ark=bijiao(k);if(ark=0) 判断方程是否为线性方程,即是否合法勺printf(mnn 此方程组不合法!error!");cai
9、dan();else if(flag!=k)huanhang(flag9k);for(i=k+l;i<=n;i+)for(j=k+l;j<=n+l;j+)aijuj=aij-aku*aik/akk;xn=ann+l/ann;for( k=n-l;k>=l;k)float me=0;for(j=k+l;j<=n;j+)me=me+akj*xj;xk=(akn+l-me)/akk;for(i=l;i<=n;i+)print" nnx%d=%ri,xi);四、个人总结这次课设让我更熟悉的掌握了通过c语言运用高斯定理解方 程组,也使我对二维数组的认识更加深入了解
10、,也对c语言有了更 深入的学习研究,我已感觉到我已经从c语言的门口迈入了殿堂, 对c语言有了更好的认识。在完成程序中,遇到过较大的困难,但 通过重新深入教材和对资料的理解,最终逐步完成。五、参考文献1谭浩强.c程序设计.北京:清华大学出版社,20052刘成等.c语言程序设计实验指导与习题集.北京:中国铁道 出版社,2006六、源程序#includestdio. h> #include<math. h> #include<process. h> ttdefine number 20 float anumbernumber+1 , ark; int flag, n;h
11、uanhang(int r, int k);float bijiao(int k);caidan ();float yunsuan();char celect;void main()printfcnn用gauss列主元消元法解线性方程组); printf (nnl解方程组请按1.");printf (nn2退出程式请按2."); celect=getchar();switch(celect)case ' 2 :exit (0);case ' 1 : yunsuan ();default: printf ("error") jcaidan(
12、) ;caidan ();float yunsuan()float x number; /*此数组用于存放方程解*/int r, k, i, j;printf (z,nn输入方程组的维数:n=);scanf (d,&n);printf(,z nn现在输入系数矩阵a和向量b:);for(i=l;i<=n;i+ )printf ("nn 请输入 aoa%d%d 系数和向量 b%d:", i, i, n); printf(,zn(bp将每一行中的系数和向量一次性输入,数之间用空 格格开,输完后回车确定)n);/*实现将每一行中的系数和向量一次性输入,数之间用空格格开
13、, 输完后回车确定*/for(j=l; j<=n+l; j卄)/*将刚才输入的数存入数组*/scanf ("%f", &ai j);for (k=l;k<=nl;k+ )ark=bijiao(k);辻(ark=0) /*判断方程是否为线性方程,即是否合法*/printf (nn 此方程组不合法! error! ); caidan ();else if (flag!=k)huanhang(flag, k);for (i=k+l;i<=n;i+ )for(j=k+l;j<=n+l;j+ )ai j二ai j-ak j*ai k/ak k;xn=a
14、n n+l/an n;for ( k=n-l;k>=l;k-)float me=0; for(j=k+l;j<=n;j+ ) me二me+ak j*xj;xk = (ak n+l-me)/ak k;for(i=l;i<=n;i+ )printf (/z nnx%d=%f", i, xi);return caidano ;huanhang(int r, int k) /*交换行的矩函数*/int i;for(i=l;i<=n+l;i+ )a0i=ari; for(i=l;i<=n+l;i+ ) ar i二ak i; for (i=l;i<=n+l:i+ ) aki二a0i;float bijiao(int k) /*比较系数大小的函数*/ int i;float temp=0; for(i=k;i<=n;i+ )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管道工程社会责任与企业文化建设考核试卷
- 糖批发企业品牌推广策略考核试卷
- 刨花板生产过程中的质量控制与品质提升考核试卷
- 机电组件的绿色制造与循环经济考核试卷
- 航空器维修与故障排除考核试卷
- 跨境电商与国际市场的投资机遇与风险考核试卷
- 营养师职业素养与伦理考核试卷
- 盐的采集与利用中的产品质量控制考核试卷
- 货运火车站操作规程与实践考核试卷
- 装饰材料陈列展示技巧考核试卷
- 门诊口腔院培训
- 园林植物养护管理 项目4 任务4.5行道树整形修剪学习资料
- 房地产交易律师见证书范文
- 2025年高考作文备考训练:歌曲《世界赠予我的》
- 消费心理学-理论、案例与实践-综合练习题及答案
- 《深度解析张旭课程》课件
- 【重庆】2024年度重庆房地产市场研究报告正式版
- 测绘设备投入计划
- 2025年复旦大学自主招生个人陈述范文分享
- 2025年度新能源充电桩建设运营合同意见书
- 中华人民共和国工会法课件
评论
0/150
提交评论