第一篇:河北工业大学程序设计C++求线性代数方程组的解
编号C13 河北工业大学计算机软件技术基础(VC)课程设计报告
学院 XX 班级 XX 姓名 刘来 __ 学号 XXXXXXX_
成绩 __ ____
一、题目:
求线性代数方程组的解(高斯消去法)
二、设计思路
1、总体设计
1)分析程序的功能
通过高斯消去法求线性代数方程组的解
2)系统总体结构:设计程序的组成模块,简述各模块功能。1.方程组的系数矩阵和常数矩阵的输入函数 2.高斯消去法的算法函数(包括消元和回带)3.输出方程组的解函数
2、各功能模块的设计:说明各功能模块的实现方法
1.执行主函数调用输入函数,输入系数矩阵和常数矩阵 2.输入后主函数调用算法矩阵进行验证解情况和消元 3.消元后主函数调用回带函数计算方程组的解 4.计算后主函数调用输出函数输出方程组的解
3、设计中的主要困难及解决方案
在这部分论述设计中遇到的主要困难及解决方案。1)困难1 实现消元的函数处理
解决方案
通过依次进行的各行消元实现方程组的简化 2)困难2 方程无解的情况
解决方案
检查方程组第k到第n行方程中的第k列上的元素是否为0,如是则方程组无解或得不到唯一解
4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能
解决求解中小规模线性方程组(阶数不要太高,例如不超过1000)的问题 2)准备的测试数据及运行结果
测试数据1:方程有解的情况
第1页/共6 页
编号C13
测试数据2:方程无解的情况
三、程序清单
新的高斯消去法.cpp #include
第2页/共6 页
编号C13 #include j=0;while(j { cin>>a[i][j];// j++;} 变量数组的定义 调用函数输入 调用函数消元 调用函数回带 调用函数输出 函数输入的定义 输入矩阵到系数矩阵 第3页/共6 页 编号C13 } void xiaoyuan(double a[s][s],double b[s],int n)//函数消元的定义 { int i,j,l;double p,q,max;for(l=0;l max=fabs(a[l][l]);//调用绝对值函数,选出绝对值最大者 j=l;for(i=l;i if(max } for(i=l;i } 第4页/共6 页 i++;} cout<<“输入常数矩阵:n”;i=0;while(i } cin>>b[i];//输入矩阵到常数矩阵 i++;max=fabs(a[i][l]);j=i;p=a[l][i];a[l][i]=a[j][i];a[j][i]=p; 编号C13 p=b[l];//交换常数行 b[l]=b[j];b[j]=p;for(i=l+1;i } void huidai(double a[s][s],double b[s],double x[s],int n)//函数回带的定义 { double p;int i,j;x[n-1]=b[n-1]/a[n-1][n-1];i=n-2;while(i>=0){ p=0;j=i+1;while(j 第5页/共6 页 } { } q=a[i][l]/a[l][l];for(j=l;j b[i]-=q*b[l];//消元后的常数矩阵 编号C13 } void shuchu(double x[s],int n,double a[s][s])//函数输出的定义 { int i;if(a[n-1][n-1]==0)//方程无解的情况 cout<<“方程无解!n”;} else { cout<<“方程组的解是:n”;i=0; } while(i } } cout<<“x”< 四、对该设计题目有何更完善的方案 1、对自己完成程序进行自我评价。 实现了用高斯消去法求低阶线性方程组的解,用四个函数实现了输入,消元,回带,输出,基本达到了题目要求。 2、对课题提出更完善的方案 高斯消去法程序过于繁杂,通过克拉默法则可以方便实现求线性方程组解的过程,程序比较简单。 五、收获及心得体会 1、通过本次课程设计,自己在哪些方面的能力有所提高。 对c++有了更深入的了解,可以通过编程解决一下简单的问题,综合运用了所学到的知识。 2、收获和心得体会。 对编程产生了浓厚的兴趣。 2011年X月X日 第6页/共6 页 河北工业大学计算机软件技术基础(VC)课程设计报告 学院 管理 班级 管理104班 姓名 杨立宝 __ 学号 101707____ 成绩 __ ____ 一、题目: 求线性代数方程组的解(高斯消去法)(C13) 二、设计思路 1、总体设计 1)分析程序的功能 第一:编写输入程序,通过键盘先输入对应的已知量及函数的大小n和系数a[i]和得数b[i]。 第二:编写中间程序,通过函数的调用先定义线性代数方程,然后通过程序求出方程的梯形矩阵系数,并最终得出结果。 第三编写输出程序,输出最终结果。 2)系统总体结构:设计程序的组成模块,简述各模块功能。模块一:各函数的具体内容 A:三个输入函数,分别输入n,一维数组,二维数组。即输入已知量。 B:中间运算函数,计算是使得方程系数所成的矩阵成梯形矩阵,未知数的结果。即计算中间变量及结果。 C:最后输出函数,输出最后计算结果。模块二:各函数原型的声明 a写头文件。 b变量声明:存放输入数据的数组的声明,存放中间变量的数组的声明,存放运算结果的数组的声明。分别存放对应数据。c输入有关操作的文字 d函数调用,在运算中自动调用对应的函数解决对应问题。模块三:主函数 2、各功能模块的设计:说明各功能模块的实现方法 模块一:各个函数的声明,直接声明。 模块二:各函数都通过for循环来实现各个数组之间的基本运算。 3、设计中的主要困难及解决方案 在这部分论述设计中遇到的主要困难及解决方案。1)困难1 函数调用是怎么用? 解决方案: 仔细阅读课本,以及同学之间的讨论,和老师的帮助。 4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能 输入线性代数的系数后,运行程序即可得到梯形矩阵和结果。2)准备的测试数据及运行结果 三、程序清单 如果是使用一个文件完成的程序,只需列出程序代码。如果是使用多文件完成的程序,首先说明程序中的代码存放在哪些文件中,说明文件名(例如:本程序包含first.cpp、second.cpp、third.cpp和all.h四个文件);然后依次给出每个文件名及该文件清单,例如: #include result = double(b[n-1]/a[n-1][n-1]);else //计算其他x值(对于公式中的求和部分,需要调用getm()函数)result = double((b[i]-getm(a,x,i,n))/a[i][i]); return result;} void main(){ //double a[N][N] = {{2},{1,3,2},{1,2,2}};//double b[N] = {4,6,5};double a[N][N];//系数矩阵 double b[N];//右端项 double x[N];//方程组解 int i,j,k;int n=N;//矩阵大小 /*用户手工输入矩阵*/ cout<<“请输入系数矩阵的大小:”;cin>>n;cout<<“请连续输入矩阵值:”;for(i=0;i /*进行高斯消去*/ for(j=0;j /*显示处理后矩阵*/ cout<<“高斯消去后矩阵n”;for(i=0;i /*回代方式解方程组*/ for(i=n-1;i>=0;i--){ x[i] = getx(a,b,x,i,n);} /*显示方程组解*/ cout<<“nn方程组解n”;for(i=0;i 四、对该设计题目有何更完善的方案 1、对自己完成程序进行自我评价。设计过程中遇到很多问题,但经过和同学讨论,以及老师的解答和查阅资料加上我的努力最终写出了程序。 五、收获及心得体会 1、通过本次课程设计,自己在哪些方面的能力有所提高。 通过对该程序的编写,使我对数组,for循环以及函数的调用有了深刻的认识,锻炼了自己对c++更深一步的了解。 2、收获和心得体会。 明确的知道了数组,for循环以及函数的调用有的运用。明白了编程是一种严谨的工作,锻炼了自己的思维能力,并将努力培养自己严谨的思维。 日期: 2011年 6月 23日 《Visual C面向对象程序设计》课程教学大纲 适用对象:计算机科学与技术、软件工程等本科专业 一、课程的性质、目的和任务 本课程为计算机科学与技术及软件工程专业学科基础课,通过本课程的学习,使学生掌握Visual C++语言中的数据类型,运算,语句结构及其程序设计的基本方法,了解面向对象程序设计的基本概念与方法,培养学生具有面向对象的程序设计的思想,进而学会利用C++语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。 二、教学基本要求 1.熟悉Visual C++运行环境 2.掌握C++程序的基本语法 3.熟悉面向对象的基本原理 4.掌握类和对象的关系 5.掌握多态性和虚函数 6.掌握C++的I/O流库 7.掌握内联函数和函数重载 三、课程内容及学时分配 ++第一章 VC 6.0概述(2学时) 1.1 VC的特点 1.2 VC 6.0新增功能 1.3 MFC类库概述 第二章 面向对象的基本概念(2学时) 2.1 结构化程序设计方法的回顾 2.2 面向对象的系统开发方法 2.3 类、对象、消息和实现方法 2.4 类的继承性 2.5 类的封装性 2.6 类的多态性与虚拟函数 第三章 VisualC程序设计基础(2学时)3.1 HelloVC——第一个VisualC程序 3.2 VisualC程序中的基本数据类型 3.3 Windows编程约定 第四章 VC的文本处理(2学时) 4.1 文本输出函数 4.2 文本属性的控制 4.3 文本的字体 4.4 获取文本信息 4.5 综合实例详解 第五章 VC的图形处理(2学时) 5.1 图形设备接口 5.2 窗口内绘图 5.3 使用绘图属性 5.4 与绘图有关的两个消息 第六章 键盘与鼠标消息(2学时) 6.1 Windows字符的输入过程 6.2 Windows的消息处理机制 6.3 键盘消息 6.4 字符消息 6.5 虚拟键 6.6 鼠标消息 6.7 综合实例 第七章 菜单(2学时) 7.1 菜单的机制与功能 7.2 CMenu类 7.3 菜单程序设计 第八章 工具栏与状态栏 8.1 工具栏 8.2 状态栏 8.3 综合实例 第九章 对话框的制作(2学时) 9.1 对话框的组成与分类 9.2 创建对话框 9.3 CDialog类与对话框过程函数调用顺序 9.4 综合实例 9.5 通用对话框 第十章 常用控件(2学时) 10.1 控件概述 10.2 标准Windows控件 10.3 公共控件 10.4 综合实例 第十一章 位图操作(2学时) 11.1 位图简介 11.2 GDI位图与DIB位图 11.3 位图与位操作 11.4 BMP文件 11.5 位图文件的显示 五、教材及参考文献 教 材《C++语言基础教程》吕风翥 清华大学出版社 参考文献《C++大学教程》邱仲潘等译 电子工业出版社 《C++程序设计语言》徐宝国译 机械工业出版社 科目名称:C/C++语言程序设计 适用专业:083500 软件工程 一、考试性质 《C/C++程序设计》是河北工程大学为招收软件工程专业硕士研究生而设置的全国研究生招生考试业务课程考试科目,属学校自行命题的性质。《C/C++程序设计》是软件工程专业的一门专业基础课。它的评价标准是高等学校优秀本科毕业生能达到的及格或及格以上水平,以保证被录取者具有基本的C/C++程序设计知识并有利于招生学校在专业上择优选拔。 二、考试的学科范围 应考范围包括:C/C++语言概述、数据类型和表达式、结构化程序设计、数组、指针、函数、结构体与枚举、类与对象、继承和派生、虚函数和多态性、输入与输出流等内容。 三、评价目标 《C/C++程序设计》考试的目标在于考查考生对C/C++程序设计的基础知识、基本理论和基本技能的掌握情况,考察考生综合运用所学知识分析和解决问题的能力。考生应能: 1.理解C/C++语言程序设计的基本概念,掌握C++程序语言的基础知识。 2.能够编写具有一定难度的C/C++程序,并具有基本的纠错和调试程序的能力。 3.理解面向对象程序语言和面向对象程序设计的基本概念,能够采用面向对象的编程思路和方法编写应用程序。 4.能够熟练运用C(C++)语言来解释数据结构的相关问题。 四、考试形式与试卷结构 1.答卷方式:闭卷,笔试;试卷中的所有题目按试卷要求回答。 2.试卷分数:满分为150分。 3.试卷结构及题型比例:试卷主要分为三大部分,即:基本概念题、基本理论分析题,约30%;简答作图题,约40%;综合分析、编程题,约30%。 五、考试内容要点 C语言部分: 1.C语言程序的结构 a.程序的构成,main函数和其他函数。 b.头文件,数据说明,函数的开始和结束标志以及程序中的注释。 c.源程序的书写格式。 d.C语言的风格。 2.数据类型及其运算 a.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。b.C运算符的种类、运算优先级和结合性。 c.不同类型数据间的转换与运算。 d.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 3.基本语句 a.表达式语句,空语句,复合语句。 b.输入输出函数的调用,正确输入数据并正确设计输出格式。 4.选择结构程序设计 a.用if语句实现选择结构。 b.用switch语句实现多分支选择结构。 c.选择结构的嵌套。 5.循环结构程序设计 a.for循环结构。 b.while和do-while循环结构。 c.continue语句和break语句。 d.循环的嵌套。 6.数组的定义和引用 a.一维数组和二维数组的定义、初始化和数组元素的引用。 b.字符串与字符数组。 7.函数 a.库函数的正确调用。 b.函数的定义方法。 c.函数的类型和返回值。 d.形式参数与实在参数,参数值传递。 e.函数的正确调用,嵌套调用,递归调用。 f.局部变量和全局变量。 g.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。 8.编译预处理 a.宏定义和调用(不带参数的宏,带参数的宏)。 b.“文件包含”处理。 9.指针 a.地址与指针变量的概念,地址运算符与间址运算符。 b.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。 c.用指针作函数参数。 d.返回地址值的函数。 e.指针数组,指向指针的指针。 10.结构体(即“结构”)与共同体(即“联合”) a.用typedef说明一个新类型。 b.结构体和共用体类型数据的定义和成员的引用。 c.通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。 11.位运算 a.位运算符的含义和使用。 b.简单的位运算。 12.文件操作 只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。 a.文件类型指针(FILE类型指针)。 b.文件的打开与关闭(fopen,fclose)。 c.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数的应用),文件的定位(rewind,fseek函数的应用)。 C++部分: 1.熟练掌握类与对象的相关知识 a.类的定义方式、数据成员、成员函数及访问权(public,private,protected)。b.对象和对象指针的定义与使用。 c.构造函数与析构函数。 d.静态数据成员与静态成员函数的定义与使用方式。 e.常数据成员与常成员函数。 f.This指针的使用。 g.友元函数和友元类。 h.对象数组与成员对象。 2.掌握类的继承与派生知识 a.派生类的定义和访问权限。 b.继承基类的数据成员与成员函数。 c.基类指针与派生类指针的使用。 d.虚基类。 3.了解多态性概念 a.虚函数机制的要点。 b.纯虚函数与抽象基类,虚函数。 c.了解运算符重载。 4.模板 a.简单了解函数模板的定义和使用方式。 b.简单了解类模板的定义和使用方式。 5.输入输出流 a.掌握C++流的概念。 b.能够使用格式控制数据的输入输出。 c.掌握文件的I/O操作。 六、主要参考教材 1.谭浩强编著.c程序设计,北京:清华大学出版社,2010 2.谭浩强编著.c++程序设计,北京:清华大学出版社,2006第二篇:C++课程设计高斯消元法求线性代数方程组的解
第三篇:河北科技大学 Visual C++面向对象程序设计课程教学大纲
第四篇:2014年河北工程大学C++语言程序设计考研大纲硕士研究生入学考试大纲