C语言课程设计 (3)

合集下载

《C语言程序设计》课程设计任务书-建电11412

《C语言程序设计》课程设计任务书-建电11412

《C语言》课程设计任务书一、性质与目的:本课程设计是学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力。

通过实习,加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时通过查询资料,培养学生自学、接受新知识能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,培养学生实际上机调试能力。

二、基本要求:1、选题规定2、设计结束后,要求每个学生上交一份打印的实习报告。

3、设计期间,学生要服从指导教师统一安排,遵守机房制度。

4、严格遵守纪律,不迟到,不早退。

对于无故缺勤者,成绩按不及格处理。

三、设计内容:题目见后边附录四、课程设计的成绩评定a)实习期间的平时表现;b)设计任务的考核成绩;c)设计报告的批阅成绩。

根据以上的成绩由指导教师进行综合评定,成绩分优、良、中、及格和不及格五个等级。

五、实习进程实习为期一周,共22学时,周一至周四每天利用半天时间查阅资料,另外半天到计算机房调试程序(上机的具体时间遵照机房的安排),周五对所设计的软件进行上机考核验收,考核合格者书写设计报告(电子版和打印版),下周一交给指导教师。

六、设计报告格式首先是封面(如下图)其次是目录(要求根据报告内容自动生成)一、设计思路二、程序流程图三、源程序清单四、程序运行结果五、设计总结六、教师评语(学生不要填写)然后是根据目录而写的具体内容附录:(一)基础部分:1.输入一个五位整数,将它反向输出。

例如输入12345,输出应为54321。

(15分)2.用两种循环结构分别编程计算1+2+3…+100的值。

运行结果为“1+2+…+100=5050”(15分)3. 从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。

c语言课程设计

c语言课程设计

课程设计报告正文1、目的:1) 对C各部分知识的综合应用能力2) 提咼程序设计的能力3) 提升对于较大程序的抽象分析设计能力4) 学习调试和测试的技巧2、所做题目的意义:通讯录管理系统在当今这个信息发达的社会是必不可少的,这个通讯录管理系统可以方便的为我们添加、管理联系人,不必一定要记住这些庞大的信息,可以很方便的调用出自己所需要的信息,随时的修改这些信息,这些在这个时代是非常的必要的。

3、本人所作的工作:(1)、写出了预习报告。

从图书馆搜集了些这方面的资料(2)、想好思路,写出了程序代码(3)、调试程序,找出其中的错误,最终成功的运行出程序(4)、写出课程设计报告4、系统的主要功能:该系统的是一个小型的通讯系统,它具有一般的通讯系统都具有的功能该程序具有查找、添加、修改、删除功能,其讯录包括:街道,城市,省,邮编。

5、、系统的总体设计:系统的基本要求和容:该系统要求具有查找,添加,修改,删除功能,其讯录包括:、,街道,城市,省,邮编。

但在实际设计中增加了一项,那就是末尾添加,可以在已有的记录末尾再次添加,不必每次都重新添加,方便用户描绘及绘制出系统的功能结构框图、程序设计组成框图,流程图等:此系统共分为九大模块,分别为以下的模块:第一模块:主函数ma in ()的功能是:根据选单的选项调用各函数,并完成相应的功能。

第二模块:quitRec()的功能是:退出选单。

第三模块:createRec()的功能是:创建新的通讯录。

第四模块:addRec()的功能是:在通讯录的末尾写入新的信息,并返回选单第五模块:findRec()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。

第六模块:alterRec()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回。

第七模块:deleteRec()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。

大一c语言课程设计

大一c语言课程设计

大一c语言课程设计一、课程目标知识目标:1. 理解C语言的基本语法,掌握变量定义、数据类型、运算符和表达式等基础知识;2. 学会使用C语言控制结构,如顺序、选择和循环结构,并能运用其编写简单程序;3. 熟悉C语言数组和字符串操作,掌握基本排序和查找算法;4. 掌握C语言函数定义、调用和参数传递,理解函数封装和模块化编程思想;5. 了解C语言指针的概念和使用方法,包括指针与数组、函数的关系。

技能目标:1. 能够使用C语言编写简单程序,解决实际问题;2. 能够阅读和分析C语言代码,理解程序运行过程和逻辑;3. 能够运用数组和函数对数据进行处理和分析;4. 能够运用指针优化程序性能,提高代码质量;5. 学会使用集成开发环境(IDE)进行C语言编程和调试。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学习积极性;2. 培养学生严谨的编程习惯,注重代码规范和可读性;3. 培养学生面对编程挑战时的耐心和毅力,勇于克服困难;4. 培养学生团队协作意识,学会与他人分享和交流编程经验;5. 培养学生具备良好的信息素养,关注编程技术的发展和应用。

本课程针对大一学生,以C语言为基础,注重理论与实践相结合。

根据学生特点和教学要求,课程目标具体、可衡量,旨在帮助学生掌握C语言编程基础,培养编程技能和良好编程习惯,同时提高学生解决问题的能力和团队协作精神。

后续教学设计和评估将围绕这些具体学习成果展开。

二、教学内容本课程教学内容紧密结合课程目标,依据教材章节进行科学性和系统性安排。

具体内容包括:1. C语言概述:介绍C语言发展历史、特点和应用领域,引导学生认识C语言的重要性。

- 教材章节:第1章 C语言概述2. 基本数据类型和运算符:讲解基本数据类型、变量定义、运算符和表达式。

- 教材章节:第2章 数据类型与运算符3. 控制结构:介绍顺序结构、选择结构(if-else、switch)和循环结构(for、while、do-while)。

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书一、课程设计的目的(1)加深对讲授内容的理解,尤其是一些语法规则。

(2)熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用。

(3)能够综合运用所学知识,编程解决实际问题。

(4)培养团队分工合作的意识,最终使学生提高编程技能和解决实际问题的能力。

二、课程设计基本要求2.1.组织管理1.由院、系指派经验丰富的专业教师担任指导教师。

2.课程设计实行课程负责人与指导教师共同负责制。

3.课程负责人主要进行课设的命题、指导教师的考核、技术把关和全面管理。

4.指导教师全面负责所承担班级的课程设计指导、管理和考核评定工作。

2.2设计要求1.自选题目、小组管理、团队合作、小组评测。

2.模块化程序设计。

3.锯齿型书写格式。

4.必须上机调试通过。

三、选题要求:每个题目限定1-2人,每人必须负责一部分功能,并独立完成,推举出一个组长,负责任务分工,汇总到班长处,然后交给指导教师。

四、设计报告格式及要求:1、题目2、设计目的3、总体设计(程序设计组成框图、流程图)4、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)5、运行结果及分析6、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施7、课程设计心得及体会8、源程序清单和执行结果:清单中应有足够的注释五、课程设计成绩评定5.1基本要求:(1)每个人必须有程序运行结果;(2)每个人必须交《C语言课程设计》报告5.2、成绩评定和打分标准由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量、设计结果的验收和答辩情况进行综合考核。

具体评定标准如下:(1)上机考勤:注重平时上机考勤与遵守纪律情况20%(2)结果验收:学生能运行、讲述或调试自己的程序,回答教师提问,每个人必须有程序运行结果40%(3)小组自评成绩结果10%(4)设计报告:每个人必须交《C语言课程设计》报告和《C语言课程设计》日志30%以上四项缺一不可,否则不能到得相应学分依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。

中职C语言教案:C语言图形程序设计(全3课时)

中职C语言教案:C语言图形程序设计(全3课时)
#include<stdio.h>
main()
{int i,j;
for(i=1;i<=3;i++)
{ for(j=1;j<=6;j++)
printf(“%d”,j);
}
printf(“\n”);
}
教学环节
教学活动内容及组织过程
个案补充




4.如果变成如下的图形呢?
1 2 3 4 5 6
1 2 3 4 5 6
printf(“*”);
}
printf(“\n”);
}
5.观察以下图形输出程序
*
***
*****
试写出此程序的典型程序段
#include<stdio.h>
main()
{int i,j;
for(i=1;i<=3;i++)
{ for(j=1;j<=4-i;j++)
printf(“ ”);
for(j=1;j<=2*i-1;j++)
printf(“*”);
}
printf(“\n”);
}
方法二:
#include<stdio.h>
#include<math.h>
main()
{int i,j;
for(i=-2;i<=2;i++)
{ for(j=1;j<=abs(i);j++)
printf(“ ”);
for(j=1;j<=5-abs(i);j++)
C语言

c语言课课程设计

c语言课课程设计

c语言课课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程思想,培养学生编写简单程序的能力。

具体目标如下:1.知识目标:–了解C语言的发展历史和特点。

–掌握C语言的数据类型、变量、运算符和表达式。

–熟悉C语言的控制结构,包括条件语句和循环语句。

–理解函数的定义和调用。

2.技能目标:–能够使用C语言编写简单的程序,实现基本的输入输出、计算和控制流程。

–能够阅读和理解简单的C语言程序。

–能够对程序进行简单的调试和优化。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和好奇心。

–培养学生解决问题的能力和创新精神。

–培养学生团队合作和分享的意识。

二、教学内容根据教学目标,本节课的教学内容主要包括以下几个部分:1.C语言的发展历史和特点:介绍C语言的起源、发展和特点,让学生了解C语言的重要性和应用领域。

2.数据类型、变量、运算符和表达式:讲解C语言的基本数据类型、变量的声明和使用、运算符的用法和表达式的计算。

3.控制结构:讲解条件语句和循环语句的用法,让学生能够编写简单的分支和循环程序。

4.函数的定义和调用:讲解函数的定义、声明和调用方式,让学生了解函数的基本概念和使用方法。

5.编程实践:通过编写简单的程序,让学生实践和巩固所学的知识。

三、教学方法为了达到教学目标,本节课将采用以下几种教学方法:1.讲授法:教师讲解C语言的基本概念和语法,引导学生理解和掌握相关知识。

2.案例分析法:通过分析典型的C语言程序,让学生了解编程思想和方法。

3.实验法:让学生动手编写和运行C语言程序,培养学生的编程能力和实践能力。

4.讨论法:鼓励学生之间的交流和讨论,培养学生的团队合作和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。

2.参考书:提供一些经典的C语言编程书籍,供学生课后阅读和参考。

3.多媒体资料:制作精美的PPT和教学视频,提高学生的学习兴趣和效果。

c语言课程设计

c语言课程设计

课程设计任务书一、设计题目(一)学生成绩排名(二)根据条件进行学生成绩排名(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)(四)学生成绩文件管理(五)一个综合系统(学生成绩管理系统)二、主要内容(一)学生成绩排名先采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。

(二)根据条件进行学生成绩排名在函数中进行10个学生成绩从高到低排名,再改进函数,进行n个学生成绩从高到低排名, 排名方式根据函数的style参数进行,如style为‘a'按升序排,style为' d ' 按降序排(a:ascending 升,d:descending 降)。

编写多个不同函数,使之能实现不同的排序算法(3种以上),再编写一个通用输出函数,(要求用函数指针做参数)能分别打印不同排序算法的结果。

(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)建立一个动态链表,将学生数据(学号,成绩)存入链表结构中,实现链表的访问(求学生成绩的平均分,找到最高分,最低分,将其数据输出)。

删除指定学号的学生数据,对学生数据进行排序,分别在链表头部,中间,末尾插入学生数据。

(四)学生成绩文件管理定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,将10个学生的相关数据,存入文件中,再从文件中读出,按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件中,再从文件中读取第 1 ,3 , 5 ,7,9个学生的数据。

(五)学生成绩管理系统设计:数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩2、成绩3、平均成绩、总成绩。

要求具有以下功能:(1)添加、删除任意个记录。

c语言课程设计的内容

c语言课程设计的内容

c 语言课程设计的内容一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符和表达式等基础知识;2. 学会使用C语言进行顺序、选择和循环结构的编程,并能运用逻辑判断和循环控制解决实际问题;3. 掌握C语言中的数组和字符串操作,能够运用数组进行批量数据处理;4. 了解函数的定义和调用方法,能够编写简单的自定义函数。

技能目标:1. 能够运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 学会使用调试工具,能够调试并修复程序中的错误;4. 提高逻辑思维能力,学会分析问题、设计算法并转化为C语言程序。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学生的创新意识;2. 培养学生严谨、细心的学习态度,提高团队协作能力;3. 使学生认识到编程在现代社会中的重要作用,树立正确的价值观;4. 引导学生遵守编程道德规范,遵循国家法律法规,养成良好的社会责任感。

课程性质:本课程为C语言编程入门课程,旨在让学生掌握C语言的基本知识和编程技能,为后续学习打下基础。

学生特点:学生处于初中或高中年级,具有一定的逻辑思维能力和数学基础,对编程感兴趣,但可能缺乏实际编程经验。

教学要求:结合学生特点,采用任务驱动的教学方法,注重实践操作,让学生在动手实践中掌握编程技能。

同时,注重培养学生的编程兴趣和团队协作能力,提高学生的综合素质。

通过本课程的学习,使学生能够达到上述课程目标,并在后续的学习中不断提高。

二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式;2. 控制结构:顺序结构、选择结构(if、switch)、循环结构(for、while、do-while);3. 数组:一维数组、二维数组、字符数组与字符串;4. 函数:函数定义、函数调用、函数声明、局部变量与全局变量;5. 编程实践:编写简单的计算器程序、排序算法实现、字符串处理等;6. 调试与优化:使用调试工具(如Turbo C)、程序错误类型及解决方法、代码优化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析上机实验报告东北大学软件2011年姓名闫三木学号20093514 班级软件工程0908 指导教师邵新慧实验名称曲线拟合最小二乘法线性方程组迭代法开设学期2010 – 2011第二学期评定成绩评定人签字评定日期课题三 解线性方程组的迭代法一. 实验内容1、设线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--------------------------136824381004120291372642212341791110161035243120536217758683233761624491131512013012312240010563568000121324⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-2119381346323125x *= ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 )T 2、设对称正定阵系数阵线方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----------------------19243360021411035204111443343104221812334161206538114140231212200420424⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡87654321x x x x x x x x = ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---4515229232060x * = ( 1, -1, 0, 2, 1, -1, 0, 2 )T 3、三对角形线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡------------------4100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x = ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----5541412621357x *= ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 )T试分别选用Jacobi 迭代法,Gauss-Seidol 迭代法和SOR 方法计算其解。

二. 实验要求1、体会迭代法求解线性方程组,并能与消去法做以比较;2、分别对不同精度要求,由迭代次数体会该迭代法的收敛快慢;3、对方程组2,3使用SOR 方法时,选取松弛因子ω=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。

三. 目的和意义1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、体会上机计算时,终止步骤∞+-)()1(k k x x < ε 或k >(予给的迭代次数),对迭代法敛散性的意义;4、体会初始解 x )0(,松弛因子的选取,对计算结果的影响。

四. 流程图设计 1.主要部分流程2.Jacobi 算法流程3.GS 算法流程图4.SOR算法流程五.结构程序设计#include<iostream>using namespace std;#define N 40const int n=10;int jacobi(fl oat *p,float b[],fl oat X[],fl oat x[],int n); int GS(float *p,fl oat b[],float X[],float x[],int n); int SOR(float *p,fl oat b[],float X[],float x[],int n); void print(fl oat *a,int r);void main(){fl oat A[10][10]={4,2,-3,-1,2,1,0,0,0,0,8,6,-5,-3,6,5,0,1,0,0,4,2,-2,-1,3,2,-1,1,9,4,0,-2,1,5,-1,3,-1,1,9,4,-4,2,6,-1,6,7,-3,3,2,3,0,2,-1,3,-4,2,5,3,0,1,16,10,-11,-9,17,34,2,-1,2,2,4,6,2,-7,13,9,2,0,12,4,0,0,-1,8,-3,-24,-8,6,3,-1};fl oat a[10]={7,5,-13,2,6,-12,14,-4,5,-5};fl oat X1[10]={0,0,0,0,0,0,0,0,0,0};fl oat x1[10];fl oat B[8][8]={4,2,-4,0,2,4,0,0,2,2,-1,-2,1,3,2,0,-4,-1,14,1,-8,-3,5,6,0,-2,1,6,-1,-4,-3,3,2,1,-8,-1,22,4,-10,-3,4,3,-3,-4,4,11,1,-4,0,2,5,-3,-10,1,14,2,0,0,6,3,-3,-4,2,19};fl oat b[8]={0,-6,6,23,11,-22,-15,45};fl oat X2[8]={0,0,0,0,0,0,0,0};fl oat x2[8];fl oat C[10][10]={4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4};fl oat c[10]={7,5,-13,2,6,-12,14,-4,5,-5};fl oat x3[10];fl oat X3[10]={0,0,0,0,0,0,0,0,0,0};fl oat *p[3];p[0]=&A[0][0];p[1]=&B[0][0];p[2]=&C[0][0];cout<<"Jacobi迭代法解第1个方程:"<<endl; jacobi(p[0],a,X1,x1,10);cout<<"Jacobi迭代法解第2个方程:"<<endl; jacobi(p[1],b,X2,x2,8);cout<<"Jacobi迭代法解第3个方程:"<<endl; jacobi(p[2],c,X3,x3,10);cout<<"Gauss-Seidel迭代法解第1个方程:"<<endl; GS(p[0],a,X1,x1,10);cout<<"Gauss-Seidel迭代法解第2个方程:"<<endl; GS(p[1],b,X2,x2,8);cout<<"Gauss-Seidel迭代法解第3个方程:"<<endl; GS(p[2],c,X3,x3,10);cout<<"SOR迭代法解第1个方程:"<<endl;SOR(p[0],a,X1,x1,10);cout<<"SOR迭代法解第2个方程:"<<endl;SOR(p[1],b,X2,x2,8);cout<<"SOR迭代法解第3个方程:"<<endl;SOR(p[2],c,X3,x3,10);}int jacobi(fl oat *p,float b[],fl oat X[],fl oat x[],int n) {int k,i,j;fl oat m,R,r,e;cout<<"请输入精度e:";cin>>e;for(k=0;k<N;k++){R=0;for(i=0;i<n;i++){m=0;for(j=0;j<n;j++){m=m+(*(p+i*n+j))*X[j];}x[i]=X[i]+(b[i]-m)/(*(p+i*n+i));r=x[i]-X[i];if(r<0)r=X[i]-x[i];if(r>R)R=r;}print(x,n);cout<<"迭代次数为:"<<k+1<<endl;return k;}for(j=0;j<10;j++)X[j]=x[j];}print(x,n);cout<<"迭代次数为:"<<k<<endl;cout<<"方程解发散,无法用Jacobi方法解此方程!"<<endl; return 0;}int GS(float *p,fl oat b[],float X[],float x[],int n){int i,j,k;fl oat t,R,r,e;cout<<"请输入精度e:";cin>>e;for(k=0;k<N;k++){for(i=0;i<n;i++){t=0;for(j=0;j<n;j++){if(j<i)t+=(*(p+i*n+j))*x[j];if(j>i)t+=(*(p+i*n+j))*X[j];}x[i]=(b[i]-t)/(*(p+i*n+i));}for(i=0;i<10;i++){r=x[i]-X[i];if(r<0)r=X[i]-x[i];}if(R<=e&&R>0){print(x,n);cout<<"迭代次数为:"<<k+1<<endl;return k;}for(j=0;j<8;j++)X[j]=x[j];}print(x,n);cout<<"迭代次数为:"<<k<<endl;cout<<"方程解发散,无法用Gauss-Seidel方法解此方程!"<<endl; return 0;}int SOR(float *p,fl oat b[],float X[],float x[],int n){int i,j,k;fl oat t,R,r,e,w;cout<<"请输入松弛因子w(0<w<2):";cin>>w;cout<<"请输入精度e:";cin>>e;for(i=0;i<n;i++)x[i]=X[i];for(k=0;k<N;k++){R=0;for(i=0;i<n;i++){t=0;for(j=0;j<n;j++)t+=(*(p+i*n+j))*x[j];r=w*(b[i]-t)/(*(p+i*n+i));x[i]+=r;if(r<0)r=-r;R=r;}if(R<=e&&R>0){print(x,n);cout<<"迭代次数:"<<k+1<<endl;return k;}}print(x,n);cout<<"迭代次数:"<<k<<endl;cout<<"方程解发散,无法使用SOR方法解此方程!!!!"<<endl; return 0;}void print(fl oat *a,int n){int j;fl oat *t=a;cout<<"x=( ";for(j=0;j<n-1;j++)cout<<*(t+j)<<",";cout<<*(t+j)<<")"<<endl;}六.结果讨论和分析程序运行截图:七.小结和体会通过这次实验,我对线性方程组的迭代算法有了更深的理解。

相关文档
最新文档