




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈 阳 航 空 工 业 学 院 课程设计学 号2008040201105班 级 84020103姓 名 李荣飞指导教师 尹 航2009年 9月 11 日沈阳航空工业学院课程设计任务书电子信息工程学院 电子信息工程专业 84020103班 学号2008040201105一、课程设计题目:用高斯列主元消元法解线性方程二、课程设计工作自2009年9月6日起至2009年9月11日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:请用高斯列主元消元法解下列方程组:四、课程设计要求:程序质量:l 贯彻结构化程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l
2、 用户界面中的菜单至少应包括“输入数据”、“开始计算”、 “退出”3项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l 封面l 课程设计任务书l 目录l 需求分析(分析题目的要求)l 程序流程图(总体流程图和主要功能模块流程图)l 核心技术的实现说明及相应程序段l 个人总结l 参考资料l 源程序及适当的注释指导教师:_ 学生签名:_沈 阳 航 院 设 计 用 纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段8四、个人总结11五、参考文献11六、源程序1114一、需求分析经过对程序设
3、计题目的分析可知,整个程序的设计实现大致分为三个模块,分别是:输入方程组,计算方程组,继续运算/退出。计算方程组模块对应三个函数,其函数名和功能如下:一、交换行的距函数(huanhang):主要实现线性代数高斯列主元消元法求解线性方程组中的初等行变换。二、比较系数大小的函数(bijiao):实现比较系数大小的算法。三、实现菜单选择的函数(caidan):使用户界面友好,操作方便。 除上面介绍的功能之外,程序还具有“继续运算/退出”功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要,终止程序的执行。二、程序流程图1、程序总体结构图图1: 程序总体结构图 输出: 用Gauss列主元消元法
4、解线性方程组 输出: 解方程组请按1.输出: 退出程式请按2.输入:所须选择的序号. 根据输入信息进行选择2 1 其他退出 调用 输出 error Yunsuan 调用 caidan() 调用 caidan() 图1程序总体结构图2、具体功能框图(1)界面 caidan函数图2 caidan函数输出: 继续运算按 1 ,退出程序按 2! 根据getcher()值选择Enter Ecs 其他调用 退出 输出: 不合法的输入!Yunsuan 调用 caidan()(2) 比较 bijiao函数图3: bijiao函数 temp=0 i=k 当itemp 真 假 temp=Aik的绝对值flag=i
5、 return(temp) (3) 交换行的矩函数 huanhang函数 i=1 当i=u+1时 A0i=Ari i+ i=1 当i=u+1时 Ari=Aki i+ i=1 当i=u+1 时 Aki=A0i i+ 图4: huanhang函数(4) 运算 yunsuan函数输出: 输入方程组的维数:n=输入:n输出: 现在输入系数矩阵A和向量b: i=1 当i=n 输出:请输入系数和向量 j=1 当 i=n+1时 输入Aij j+ i+ k=1 当k=n-1时 ark=bijiao(k) ark=0 真 假 输出:此方程组不合法!error! flag!=k真 假 调用caidan() 调用h
6、uanhang()并代入flog,k的值 i=k+1 (接下页) 当 接上一页: i=k+1 (接上一页) 当i=n i=k+1 当 j=1时 me=0 j=k+1 当i=n me=me+Akj*Xj j+ xk=(Akn+1-me)/Akk k- i=1 (接下一页) 接上一页: i=1(接上一页) 当i=n时 输出: i,xi i+ 调用caidan()图5: yunsuan函数三、核心技术的实现说明及相应程序段本程序一共由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,比较系数大小的函数、运算函数是程序中较为核心的部分,下面分别进行
7、说明。1、比较系数大小的函数 比较系数大小的函数主要是为 运算函数 所做准备的, fabs是求双精度浮点数的绝对值的函数。 输入参数是双精度浮点数,计算结果送返绝对值,也是双精度浮点数这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:float bijiao(int k) /*比较系数大小的函数*/int i;float temp=0;for(i=k;itemp)temp=fabs(Aik);flag=i;return temp;2、运算函数 运算函数是本程序的主要部分,首先输入系数和向量后存入数组,判断方程是否合法,不合法则返回菜单,然后通过循环解二维数组,最后输出结果i,xi,具体
8、程序段如下: float yunsuan()float xNUMBER; /*此数组用于存放方程解*/int r,k,i,j;printf(nn 输入方程组的维数:n=);scanf(%d,&n);printf( nn现在输入系数矩阵A和向量b:);for(i=1;i=n;i+ )printf(nn请输入a?-a%d%d系数和向量b%d:,i,i,n); /*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/for(j=1;j=n+1;j+ ) /*将刚才输入的数存入数组*/scanf(%f,&Aij);for(k=1;k=n-1;k+ ) ark=bijiao(k);
9、if(ark=0) /*判断方程是否为线性方程,即是否合法*/printf(nn此方程组不合法!error!);caidan(); else if(flag!=k)huanhang(flag,k);for(i=k+1;i=n;i+ )for(j=k+1;j=1;k-)float me=0;for(j=k+1;j=n;j+ )me=me+Akj*xj;xk=(Akn+1-me)/Akk;for(i=1;i=n;i+ )printf( nnx%d=%f,i,xi);四、个人总结这次课设让我更熟悉的掌握了通过C语言运用高斯定理解方程组,也使我对二维数组的认识更加深入了解,也对C语言有了更深入的学习研
10、究,我已感觉到我已经从C语言的门口迈入了殿堂,对C语言有了更好的认识。在完成程序中,遇到过较大的困难,但通过重新深入教材和对资料的理解,最终逐步完成。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#define NUMBER 20float ANUMBERNUMBER+1 ,ark;int flag,n;huanhang(int r,int k);float bijiao(int k);caidan();float yunsuan();char cel
11、ect;void main()printf(nn用Gauss列主元消元法解线性方程组);printf(nn1.解方程组请按1.);printf(nn2.退出程式请按2.);celect=getchar();switch(celect)case 2 :exit(0);case 1 :yunsuan();default:printf(error);caidan();caidan();float yunsuan()float xNUMBER; /*此数组用于存放方程解*/int r,k,i,j;printf(nn 输入方程组的维数:n=);scanf(%d,&n);printf( nn现在输入系数矩
12、阵A和向量b:);for(i=1;i=n;i+ )printf(nn请输入a0-a%d%d系数和向量b%d:,i,i,n);printf(n(即将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定)n); /*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/for(j=1;j=n+1;j+ ) /*将刚才输入的数存入数组*/scanf(%f,&Aij);for(k=1;k=n-1;k+ ) ark=bijiao(k);if(ark=0) /*判断方程是否为线性方程,即是否合法*/printf(nn此方程组不合法!error!);caidan(); els
13、e if(flag!=k)huanhang(flag,k);for(i=k+1;i=n;i+ )for(j=k+1;j=1;k-)float me=0;for(j=k+1;j=n;j+ )me=me+Akj*xj;xk=(Akn+1-me)/Akk;for(i=1;i=n;i+ )printf( nnx%d=%f,i,xi);return caidan();huanhang(int r,int k) /*交换行的矩函数*/int i;for(i=1;i=n+1;i+ )A0i=Ari;for(i=1;i=n+1;i+ )Ari=Aki;for(i=1;i=n+1;i+ )Aki=A0i;float bijiao(int k) /*比较系数大小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冬季绿化养护与管理
- 宣传写作课件学习
- 宠物日常护理课件图片
- 二零二五年度新能源电池采购合同协议
- 2025版茶叶品牌重塑与市场拓展合同
- 二零二五年度个人消费贷款借款合同
- 二零二五年度测绘仪器采购与测绘项目验收服务合同
- 2025版跨国公司财务全球税务筹划合同
- 2025版高端医疗器械采购合同作废及供应商变更协议
- 二零二五年度阿拉尔经济技术开发区土地经营权流转合同
- 2025年农村经济与农业发展考试试题及答案
- 14.3角的平分线第1课时角的平分线的性质课件人教版数学八年级上册
- 2024年云南省文山州州属事业单位选调工作人员笔试真题
- 加油站气象灾害综合应急预案 2024
- 国家职业标准 -碳排放管理员
- 党支部书记培训考试题及答案
- 房地产企业开发成本财务培训
- GB/T 9144-2025普通螺纹优选系列
- 药厂车间员工管理制度
- 【物化生 山东卷】2025年山东省高考招生统一考试高考真题物理+化学+生物试卷(真题+答案)
- 肛周良性疾病诊疗要点
评论
0/150
提交评论