C语言课程设计54764

合集下载

c语言课程设计报告详细版

c语言课程设计报告详细版

c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。

2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。

3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。

4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。

技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。

2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。

3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。

4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。

2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。

3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。

4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。

课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。

学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。

教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。

2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。

3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。

二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。

c语言编程课程设计

c语言编程课程设计

c语言编程课程设计C语言编程课程设计一、引言C语言是一种非常重要的程序设计语言,被广泛应用于软件开发领域。

为了帮助学生更好地掌握C语言编程,提高其编程能力和解决实际问题的能力,编程课程设计变得至关重要。

本文将围绕C语言编程课程设计展开讨论,探讨如何设计一个富有挑战性和实用性的编程课程。

二、课程设计目标1. 提高学生对C语言的理解和应用能力;2. 培养学生解决实际问题的能力;3. 培养学生分析和设计软件解决方案的能力;4. 培养学生团队协作和沟通能力;5. 培养学生自主学习和探索的能力。

三、课程设计内容1. 基础知识讲解:介绍C语言的基本语法、数据类型、运算符、控制语句等基本知识,帮助学生建立起对C语言的基本认识。

2. 编程实践:设计一系列编程实践项目,包括但不限于简单的计算器、学生成绩管理系统、图书管理系统等,通过这些实践项目,学生可以巩固所学知识,提高编程能力。

3. 复杂项目设计:引导学生设计一些复杂的实际项目,如游戏开发、简单操作系统开发等,这些项目需要学生综合运用所学知识,培养解决实际问题的能力。

4. 团队合作项目:安排学生组成小组,共同完成一个大型项目,如社交网络平台的设计、电子商务网站的设计等,通过团队协作,学生可以培养团队合作和沟通能力。

5. 案例分析:引导学生分析和研究一些实际案例,如著名的开源软件项目,帮助学生了解实际项目的开发流程和经验,培养学生分析和设计软件解决方案的能力。

四、课程设计方法1. 理论讲解结合实践:在讲解基础知识的同时,引导学生通过编写代码实践所学知识,加深对知识的理解和应用。

2. 项目导向学习:通过设计一系列实际项目,引导学生通过完成项目来学习和掌握C语言编程技巧和解决问题的方法。

3. 实践与反思:在学生完成编程实践项目后,鼓励学生进行代码复盘和反思,总结经验教训,提高编程能力。

4. 指导和辅导:课程设计中应提供充足的指导和辅导,包括课堂教学、实验指导、作业批改等,以帮助学生更好地理解和掌握所学知识。

c语言课程设计报告文档

c语言课程设计报告文档

c语言课程设计报告文档一、课程目标知识目标:1. 理解C语言的基本语法和程序结构,掌握变量定义、数据类型、运算符、表达式等基本概念;2. 学会使用C语言进行顺序结构、分支结构、循环结构的编程,并能运用这些结构解决实际问题;3. 掌握C语言数组和字符串的使用,熟练运用数组进行数据处理;4. 了解C语言函数的定义与调用,学会编写简单的函数,理解函数参数、返回值等概念;5. 了解C语言指针的基本概念,学会使用指针进行内存操作和数据传递。

技能目标:1. 培养学生运用C语言编程解决实际问题的能力;2. 培养学生具有良好的编程习惯,如代码规范、注释清晰等;3. 提高学生调试程序、查找并解决问题的能力;4. 培养学生团队协作能力,学会与他人共同完成项目。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神;2. 培养学生面对编程困难时,具有坚持不懈、勇于克服的品质;3. 增强学生的自信心,使其在编程实践中感受到成就感;4. 引导学生认识到编程对于社会发展的重要性,培养其社会责任感。

本课程旨在让学生掌握C语言的基本知识和技能,培养其编程思维和解决问题的能力,同时注重培养其情感态度价值观,使其成为具有全面素质的计算机编程人才。

在教学过程中,根据学生的年龄特点和认知水平,采用任务驱动的教学方法,以实例为主线,引导学生主动参与、探究学习。

通过课程学习,使学生能够具备一定的编程基础,为后续学习打下坚实基础。

二、教学内容本章节教学内容围绕C语言基础知识,结合课程目标,制定以下教学大纲:1. C语言概述- 了解C语言发展史、特点和应用领域;- 掌握C语言程序的基本结构。

2. 数据类型、变量和常量- 学习基本数据类型(整型、浮点型、字符型);- 掌握变量的定义、赋值和作用域;- 理解常量的概念及其使用。

3. 运算符与表达式- 掌握算术、关系、逻辑运算符及其优先级;- 学习表达式的构成和计算。

4. 顺序结构程序设计- 学习C语言程序的基本输入输出函数;- 编写简单的顺序结构程序。

c语言课程设计

c语言课程设计

c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言基础语法,包括变量声明、数据类型、运算符、控制结构等。

2. 学生能理解函数的定义和调用,掌握模块化编程思想。

3. 学生能运用数组、指针解决实际问题,提高编程能力。

4. 学生了解C语言中的文件操作,能够读写文件,处理数据。

技能目标:1. 学生能运用C语言编写简单的程序,解决实际问题。

2. 学生通过课程学习,培养逻辑思维能力和问题解决能力。

3. 学生能够使用调试工具,如gcc、gdb等,对程序进行编译、调试和优化。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成自主学习习惯。

2. 学生能够体会到编程带来的成就感,增强自信心。

3. 学生在学习过程中,培养团队协作精神,学会分享和交流。

课程性质:本课程为C语言入门课程,以实践为主,理论联系实际,注重培养学生的动手能力和编程思维。

学生特点:学生为初中年级,具备一定的计算机操作基础,对编程有一定兴趣,但缺乏系统的编程知识和实践经验。

教学要求:结合学生特点,课程设计应以案例教学为主,注重实践操作,引导学生主动探索,培养编程兴趣。

同时,注重培养学生的逻辑思维能力和问题解决能力,提高学生的编程素养。

通过分解课程目标为具体学习成果,使学生在课程结束后能够独立编写简单的C语言程序,解决实际问题。

二、教学内容1. C语言基础语法- 变量声明、数据类型- 运算符、表达式- 控制结构(顺序、选择、循环)2. 函数与模块化编程- 函数定义、调用- 参数传递、返回值- 递归函数3. 数组与指针- 一维数组、多维数组- 指针的概念、运算- 指针与数组的关系4. 文件操作- 文件的打开、关闭- 文件的读写操作- 文件指针定位5. 编程实践- 简单的计算器程序- 学生管理系统- 排序算法实现教学安排与进度:第一周:C语言基础语法(1-2章)第二周:函数与模块化编程(3章)第三周:数组与指针(4章)第四周:文件操作(5章)第五周:编程实践与项目开发(6章)教材章节关联:1. C语言基础语法:教材第1-2章2. 函数与模块化编程:教材第3章3. 数组与指针:教材第4章4. 文件操作:教材第5章5. 编程实践:教材第6章教学内容确保科学性和系统性,以教材为基础,结合实践案例,引导学生逐步掌握C语言编程知识。

c语言报告课程设计

c语言报告课程设计

c语言报告课程设计一、教学目标本课程的目标是让学生掌握C语言的基础知识,包括数据类型、变量、运算符、控制结构、函数等,培养学生编写简单的C语言程序的能力。

通过本课程的学习,使学生了解编程的基本思想,培养学生的逻辑思维能力和问题解决能力。

同时,通过编程实践,培养学生的创新意识和团队合作精神,提高学生的学习兴趣和自信心。

二、教学内容教学内容主要包括C语言的基本概念、数据类型、变量、运算符、控制结构、函数等基础知识。

具体包括:1.C语言的基本概念:了解C语言的发展历程、特点和应用领域。

2.数据类型:整型、浮点型、字符型等数据类型的定义和使用。

3.变量:变量的概念、声明、赋值和作用域。

4.运算符:算术运算符、关系运算符、逻辑运算符等运算符的用法。

5.控制结构:顺序结构、选择结构、循环结构等控制结构的实现。

6.函数:函数的定义、声明、调用和返回值。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握C语言的基础知识。

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

3.实验法:通过编写和运行C语言程序,使学生动手实践,巩固所学知识。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C程序设计语言》作为主要教材,辅助以相关参考书籍。

2.多媒体资料:制作PPT、视频等多媒体教学资料,丰富教学手段。

3.实验设备:提供计算机实验室,让学生进行上机实践。

五、教学评估教学评估主要包括平时表现、作业和考试三个部分。

平时表现主要评估学生的课堂参与度、提问和回答问题的积极性等;作业主要评估学生的编程能力和对知识的理解应用能力;考试主要评估学生对C语言基础知识的掌握程度。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排教学安排共分为16周,每周2课时。

教学地点为计算机实验室,以便学生进行上机实践。

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语言课程设计报告

c语言课程设计报告一、课程目标知识目标:1. 让学生掌握C语言的基本语法,包括变量声明、数据类型、运算符、控制结构等;2. 培养学生运用C语言进行程序设计的能力,学会编写简单的程序解决实际问题;3. 使学生了解C语言中的数组、函数和指针等高级概念,并能够灵活运用。

技能目标:1. 培养学生熟练使用C语言编程环境,如Turbo C或Visual Studio等;2. 提高学生的编程技巧,使其能够编写具有逻辑性和可读性的代码;3. 培养学生独立分析问题、设计程序解决问题的能力。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动探索、自主学习的精神;2. 培养学生严谨、细心的学习态度,使其认识到编程过程中细节的重要性;3. 强调团队协作和交流分享,提高学生的沟通能力和团队意识。

分析课程性质、学生特点和教学要求:1. 课程性质:C语言课程属于信息技术学科,具有实践性和应用性强的特点;2. 学生特点:学生为初中生,具有一定的逻辑思维能力和计算机操作基础,但编程经验不足;3. 教学要求:结合学生特点,注重理论与实践相结合,以实例教学为主,引导学生动手实践。

1. 熟练运用C语言编写简单的程序;2. 掌握C语言的基本语法和编程技巧;3. 提高编程兴趣,形成自主学习、团队协作的良好习惯。

二、教学内容1. C语言基础知识:- 变量与常量的概念及其声明- 数据类型:整型、浮点型、字符型- 运算符:算术、关系、逻辑、赋值运算符- 控制结构:顺序结构、选择结构、循环结构2. 函数与数组:- 函数的定义、声明和调用- 数组的定义、初始化和使用- 一维数组、二维数组的操作3. 指针与字符串:- 指针的概念、声明与使用- 指针与数组的关系- 字符串的基本操作4. 编程技巧与实践:- 编程规范与命名规则- 代码调试与优化- 简单算法的实现(如排序、查找)5. 综合案例分析与编程实践:- 结合实际案例,运用所学知识进行程序设计- 针对不同案例,分析问题、设计算法、编写程序- 案例包括:计算器、成绩管理系统、小游戏等教学内容安排与进度:1. C语言基础知识(2周)2. 函数与数组(2周)3. 指针与字符串(2周)4. 编程技巧与实践(1周)5. 综合案例分析与编程实践(3周)教材章节关联:1. C语言基础知识:教材第1-3章2. 函数与数组:教材第4-5章3. 指针与字符串:教材第6章4. 编程技巧与实践:教材第7章5. 综合案例分析与编程实践:教材第8章及课后习题、拓展案例三、教学方法1. 讲授法:- 对于C语言的基本语法、概念和理论,采用讲授法进行教学,确保学生能够系统地掌握知识;- 讲授过程中注重条理清晰、深入浅出,结合实际案例,提高学生的理解和记忆;- 定期进行知识巩固,通过讲解经典例题,帮助学生深化理解。

c语言课程设计文档

c语言课程设计文档

c语言课程设计文档一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符、表达式等基础知识;2. 学会使用控制结构(如顺序、选择、循环)进行程序设计,培养逻辑思维能力;3. 熟悉函数的定义和调用,掌握模块化程序设计方法;4. 掌握数组、字符串、指针等基本数据结构的使用,提高数据处理的效率;5. 了解C语言中的文件操作,能够进行简单的文件读写。

技能目标:1. 能够使用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,如规范命名、注释清晰、代码整洁;3. 学会运用调试工具,如GDB,进行程序调试,提高程序的正确性和稳定性;4. 能够阅读和分析简单的C语言程序,具备一定的程序理解和修改能力;5. 初步具备团队合作意识,学会与他人合作完成程序设计和开发。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,提高学习积极性;2. 培养学生勇于尝试、克服困难的精神,增强解决问题的自信心;3. 培养学生遵守编程规范,树立良好的职业道德观念;4. 培养学生分享知识、互助合作的团队精神,提高人际沟通能力;5. 培养学生关注社会热点问题,学会运用所学知识为社会服务。

本课程针对高中年级学生,结合C语言课程性质和教学要求,旨在培养学生具备扎实的编程基础和实际编程能力,同时注重培养学生的情感态度和价值观,使他们在掌握知识技能的同时,形成良好的职业素养和团队合作精神。

通过具体的学习成果分解,为后续的教学设计和评估提供明确依据。

二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式、语句;教材章节:第一章2. 控制结构:顺序结构、选择结构(if-else)、循环结构(for、while、do-while);教材章节:第二章3. 函数:函数定义、调用、参数传递、递归;教材章节:第三章4. 模块化程序设计:模块划分、代码组织、头文件、库函数;教材章节:第四章5. 数组与字符串:一维数组、二维数组、字符串处理;教材章节:第五章6. 指针:指针概念、指针运算、指针与数组、指针与函数;教材章节:第六章7. 结构体与共同体:结构体定义、结构体数组、结构体指针、共同体;教材章节:第七章8. 文件操作:文件打开、关闭、读写、定位;教材章节:第八章教学内容按照教材章节顺序安排,确保学生能够逐步掌握C语言的基本知识和编程技能。

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

数值分析上机实验报告东北大学软件2011年课题三 解线性方程组的迭代法一. 实验内容1、设线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--------------------------136********4120291372642212341791110161035243120536217758683233761624491131512013123122400105635680000121324⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡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 40 const 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, 8,6,-8,5,7,17,2,6,-3,5, 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;}if(R<=e&&R>0){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>R)R=r;{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;if(r>R)R=r;{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;}六.结果讨论和分析程序运行截图:七.小结和体会通过这次实验,我对线性方程组的迭代算法有了更深的理解。

相关文档
最新文档