当前位置:文档之家› 2012级通信工程专业面向对象课程设计要求与指导

2012级通信工程专业面向对象课程设计要求与指导

2012级通信工程专业面向对象课程设计要求与指导
2012级通信工程专业面向对象课程设计要求与指导

2012级《面向对象课程设计》要求与指导

专业:通信工程

指导教师:任世卿,刘洋,马玉峰,李晓静

一、课程设计的目的

面向对象课程设计是通信工程专业非常重要的实践性环节之一,是学完面向对象程序设计课程后的一次全面的综合练习。本课程设计主要在于巩固学生对面向对象程序设计的基础理论的理解,掌握面向对象程序设计开发的基本方法,进一步提高学生综合运用所学知识的能力。

二、课程设计的要求及内容

(一)课程设计的基本要求

以Microsoft Visual C++ 6.0作为集成开发环境,完成面向对象课程设计。要求每人完成一个题目,题目由指导教师指派,学生与题目之间一一对应(即两个学生的题目不能重复),学生进行程序分析、设计、编程与调试、功能测试,并最终完成课程设计报告。其中每个题目必须采用类与对象进行编程,每个题目的程序必须用两种工程实现,一种是Win32 Console Application,输入输出采用传统DOS的字符式交互界面;另一种是MFC AppWizard(exe),输入输出采用基于Windows的图形式交互界面。

(二)各题目具体要求

1.分数类的设计与实现

建立用于完成分数形式运算的类RationalNumber。编写一个测试该类的程序。用整数变量表示类的私有数据(即分子和分母)。给类提供一个能够对所声明的对象初始化的构造函数。为了能够在不提供初始化值的情况下也能对对象初始化,构造函数中应该包含默认的值。构造函数还应该以最简分数的形式存储数据,即2/4应该在对象中存储成分子为1、分母为2的形式。公有成员函数应该有以下功能:

(1)两个有理数相加,以最简形式保存结果;

(2)两个有理数相减,以最简形式保存结果;

(3)两个有理数相乘,以最简形式保存结果;

(4)两个有理数相除,以最简形式保存结果;

(5)以a/b的形式输出有理数(a是分子,b是分母);

(6)以浮点形式输出有理数。

2.一维数组类模板的设计与实现

建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float 等多种数据类型,类中的成员函数主要包括:

(1)排序函数,能够对数组元素进行升序排列;

(2)查找函数,能够在输入待查元素后,输出其在数组中的下标;

(3)构造函数,初始化输入数组元素,这里要求数组元素的个数n是一个变量;

(4)析构函数,释放数组元素所占用的堆内存;

(5)Set函数,可以为指定的数组元素赋值;

(6)Get函数,可以读取指定数组元素的值;

(7)Print函数,可以输出数组元素的值。

(8)编写一个测试该模板类的程序。

3.向量类的设计与实现

编写一个实现n维向量各种操作的类,功能包括:

(1)构造函数实现n维向量的初始化构造,这里n可变;

(2)析构函数实现向量动态内存的释放;

(3)拷贝构造函数实现向量的拷贝构造;

(4)重载赋值运算符‘=’,实现两个向量之间的赋值;

(5)编写成员函数求两个向量的内积;

(6)编写成员函数求两个向量的外积;

(7)编写成员函数求两个向量的和;

(8)编写成员函数求两个向量的差;

(9)编写成员函数判断两个向量之间的线性相关性。

(10)编写一个主函数测试多项式类的上述功能。

4.多项式类的设计与实现

开发多项式类Polynomial,多项式的每一项用链表的结点表示,每项包含一个系数和一个指数。例如:2x4的指数为4,系数为2。请开发一个完整的Polynomial类,包括构造函数、析构函数以及“get”函数(读取值)和“set”函数(设置值)。该类还要提供以下重载的运算符:

(1)重载加法运算符+,将两个多项式相加。

(2)重载加法运算符-,将两个多项式相减。

(3)重载赋值运算符=,将一个多项式赋给另外一个多项式。

(4)重载加法运算符*,将两个多项式相乘。

(5)编写一个主函数测试多项式类的上述功能。

5.基于成员函数的方阵类设计与实现

设计一个能够实现n×n矩阵操作的类,这里的n可变,主要功能包括:

(1)使用构造函数完成方阵的初始化赋值;

(2)使用析构函数完成矩阵动态内存的释放;

(3)使用函数实现两个矩阵的和;

(4)使用函数实现两个矩阵的差;

(5)使用函数实现两个矩阵的积;

(6)使用函数实现矩阵的转置;

(7)使用函数求矩阵中的最大值;

(8)使用函数求矩阵中的最小值。

(9)编写一个主函数测试上述功能。

6.基于运算符重载的方阵类设计与实现

设计一个能够实现n×n矩阵操作的类,这里的n可变,主要功能包括:

(1)使用构造函数完成方阵的初始化赋值;

(2)使用析构函数完成矩阵动态内存的释放;

(3)重载加法运算符+,实现两个矩阵的和;

(4)重载加法运算符-,实现两个矩阵的差;

(5)重载加法运算符*,实现两个矩阵的积;

(6)重载加法运算符=,实现两个矩阵之间的赋值;

(7)使用拷贝构造函数完成方阵的拷贝构造;

(8)重载加法运算符<<,实现矩阵按照行列的格式输出;

(9)编写一个主函数测试上述功能。

7.复数类的设计与实现

设计一个复数类,复数类的数据成员是real和imag,它们的数据类型是double,分别表示复数的实部和虚部,要求如下:

(1)编写一个带有缺省参数的构造函数,默认值为(0,0),实现一个复数的构造。

(2)编写一个拷贝构造函数,实现一个复数的拷贝构造。

(3)编写一个析构函数,在函数中输出(real,imag)被析构,例如:如果复数的实部为1,虚部为2,则被析构时程序输出:“(1,2)被析构”。

(4)重载运算符“+”为复数类的成员函数,其功能是返回两个复数的相加的结果。

(5)重载运算符“-”为复数类的成员函数,其功能是返回两个复数的相减的结果。

(6)重载运算符“*”为复数类的友元函数,其功能是返回两个复数的相乘的结果。

(7)重载运算符“/”为复数类的友元函数,其功能是返回两个复数的相除的结果。

(8)重载单目运算符“-”为复数类的友元函数,其功能是返回当前复数的相反数。

(9)重载运算符“>>”为复数类的友元函数,其功能是按照以格式(real,imag)(10)输入复数。例如:如果复数的实部为1,虚部为2,则输入的格式是“(1,2)”。

(11)重载运算符“<<”为复数类的友元函数,其功能是按照以格式(real,imag)

(12)输出复数。例如:如果复数的实部为1,虚部为2,则输出的结果是“(1,2)”。

(13)以上函数在类的内部写出函数原型,在类的外部写出函数实现代码,最后编写一个主函数main测试以上的函数功能。

8.单链表类的设计与实现

编写一个实现学生信息单链表各种操作的类,学生信息包括学号、姓名和成绩,类实现以下功能:

(1)初始化单链表为空表;

(2)实现单链表的插入操作的成员函数;

(3)实现单链表的删除操作的成员函数;

(4)实现单链表的查找操作的成员函数(给定学号,查找其学号、姓名和成绩);

(5)实现求单链表长度的成员函数;

(6)实现建立单链表的成员函数,单链表节点的个数不确定。

(7)编写一个主函数测试上述功能。

9.大整数类的设计与实现

计算机中表示整数的位数是有限的,设计并实现一个能够进行任意长度整数准确计算的类,完成以下功能:

(1)用构造函数实现大整数的构造。

(2)重载“+”运算符,实现两个大整数的相加运算;

(3)重载“-”运算符,实现两个大整数的相减运算;

(4)重载“*”运算符,实现两个大整数的相乘运算;

(5)重载“<<”运算符,实现大整数的输出。

提示:长整数用一维字符型数组来存储,数组的每一个元素顺序存储长整数的一位数字。

设有k位长整数m,用数组a[]存储:

m=a[k]*10^(k-1)+a[k-1]*10^(k-2)+...+a[2]*10^1+a[1]*10^0

并用a[0]存储长整数m的位数,即a[0]=k。

10.小型人员信息管理系统的设计与实现

某小型公司主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。

人员编号基数为1000,每输入一个人员信息编号顺序加1。

程序要有对所有人员提升级别的功能。本例中为简单起见,所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,推销员认为1级。

月薪计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4%提成;销售经理即拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。

要求为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。要求编写程序实现

上述功能,并且可以通过实例演示上述功能。

11.大学教师工资的计算与存储

某大学的教师的职称等级决定其工资等级,教师共有四种职称等级:助教,讲师,副教授,教授,其月薪分别为:助教900元/月,讲师1000元/月,副教授1300元/月,教授1600元/月。编写一个计算教师工资的程序,要求如下:

(1)建立一个抽象基类Teacher,其数据成员有:教师姓名name,教师职称position,教师工资Salary;成员函数有:纯虚函数CalcSalary( )计算教师工资,纯虚函数Show( )输出教师的姓名、职称和工资。

(2)分别从抽象基类Teacher中派生出四个具体类Assistant,Lecture,AssociateProfessor,Professor,分别表示助教,讲师,副教授,教授。在每一个类中实现三个成员函数,构造函数为教师初始化姓名和职称;CalcSalary( )函数计算教师工资;Show( )输出教师的姓名、类别和工资,其中输出格式为:

姓名:name,职称:position,工资:Salary元

(3)教师的姓名和职称信息包含在磁盘文件teacher.txt中,要求建立teacher.txt 文本文件,并输入如下信息:

王刚助教

李铭讲师,

张莉副教授

赵蒙教授

程序从Teacher.txt文件中读取上述信息,作为工资计算依据。

(4)编写一个主函数main测试以上各类,要求用一个基类的指针分别指向派生类对象分别计算每一个人的工资,并将输出结果保存到Teacher.txt文件中。例如输出如下结果:王刚助教900

李铭讲师 1000

张莉副教授 1300

赵蒙教授 1600

12.小型教师与干部管理信息系统的设计与实现

分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:

(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。

(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Techear_Cadre类中还包含数据成员wages(工资)。

(3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。

(4)在类体中声明成员函数,在类外定义成员函数。

(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工

资。

(6)人员的基本信息分别存储在磁盘文件Teacher.txt,Cadre.txt和Teacher_Cadre.txt文件中,Teacher.txt的格式是:(姓名、年龄、性别、地

址、电话、职称),Cadre.txt的格式是:(姓名、年龄、性别、地址、电话、

职务),Teacher_Cadre.txt的格式是:(姓名、年龄、性别、地址、电话、职

称、职务、工资),要求在操作系统中建立上述文件,并按照上述格式手工录入

几条记录,程序首先从文件中读取相应数据,然后完成上述功能。

13.图形面积的计算与存储

写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle(圆形)、Squre(正方形)、Rectangle(矩形)、Trapezoid(三角形)。用虚函数分别计算几种图形面积,并求它们的和。要求用基类指针数组,使它的每个元素指向一个派生类对象。要求将计算的各种图形面积以及它们和的结果存到磁盘文件ShapeArea.txt中。

14.约瑟夫环问题的求解与仿真

约瑟夫环(Joseph)问题的一种描述是:编号为1,2,…,n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。试通过类的设计求解约瑟夫环问题的出列顺序。具体的要求和说明如下:(1)利用单向循环链表存储结构模拟此过程,按照出列的顺序输出个人的编号。

(2)m的初值为20;n=7,7个人的密码依次为:3,1,7,2,4,8,4,首先m的值为6(正确的出列顺序应为:6,1,4,7,2,3,5)。

(3)程序运行后,首先要求用户指定初始报数的上限值,然后读取个人的密码。可设n<=30,此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。

(4)将上述功能改为在顺序结构上实现。

15.集合类的设计与实现

通过类与对象的设计,编制一个能演示执行集合的并、交和差运算的程序,要求如下:(1)集合的元素限定为小写字母字符[‘a’,…,’z’]。

(2)演示程序以用户和计算机的对话方式执行。

(3)以有序链表表示集合。

(4)可进一步实现集合的元素判定和子集判定运算。

16.基于插入排序方法的类模板设计与实现

建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float 等多种数据类型,并对数组元素实现插入类排序。主要完成如下功能:

(1)实现数组数据的输入和输出;

(2)实现直接插入排序功能;

(3)实现2-路插入排序功能;

(4)实现希尔排序功能;

(5)将每种排序功能作为类的成员函数实现,编写主函数测试上述排序功能。

17.基于交换排序方法的类模板设计与实现

建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float 等多种数据类型,并对数组元素实现交换类排序。主要完成如下功能:

(1)实现数组数据的输入和输出;

(2)实现单向起泡排序功能;

(3)实现双向起泡排序功能;

(4)实现快速排序功能;

(5)将每种排序功能作为类的成员函数实现,编写主函数测试上述排序功能。

18.基于选择排序方法的类模板设计与实现

建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float 等多种数据类型,并对数组元素实现选择类排序。主要完成如下功能:

(1)实现数组数据的输入和输出;

(2)实现简单选择排序功能;

(3)实现树形选择排序功能;

(4)实现堆排序功能;

(5)将每种排序功能作为类的成员函数实现,编写主函数测试上述排序功能。

19.静态查找类模板的设计与实现

建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float 等多种数据类型,并对数组元素进行静态查找。主要完成如下功能:

(1)实现数组数据的输入和输出;

(2)对数组进行顺序查找;

(3)对有序数组进行折半查找(递归算法);

(4)对有序数组进行折半查找(非递归算法);

(5)将每种查找功能作为类的成员函数实现,编写主函数测试上述查找功能。

20.动态查找类模板的设计与实现

实现以二叉排序树为代表的动态查找表类模板,数据元素可以是char, int, float等多种数据类型,包括以下功能:

(1)采用二叉链表存储结构实现二叉排序树的存储;

(2)实现二叉排序树的建树;

(3)实现二叉排序树结点的插入;

(4)实现二叉排序树结点的删除;

(5)实现二叉排序树结点的查找;

(6)将上述功能作为类的成员函数实现,编写主函数测试上述查找功能。

21.基于开放地址法的哈希表类模板设计与实现

实现哈希表类模板,数据元素可以是char, int, float等多种数据类型,包括以下功能:

(1)实现哈希表的建立,散列函数采用除留余数法;

(2)使用开放地址法处理冲突;

(3)实现哈希表元素的插入;

(4)实现哈希表元素的删除;

(5)实现哈希表的查找;

(6)将上述功能作为类的成员函数实现,编写主函数测试上述查找功能。

22.基于链地址法的哈希表类模板设计与实现

实现哈希表类模板,数据元素可以是char, int, float等多种数据类型,包括以下功能:

(1)实现哈希表的建立,散列函数采用除留余数法;

(2)使用链地址法处理冲突;

(3)实现哈希表元素的插入;

(4)实现哈希表元素的删除;

(5)实现哈希表的查找;

(6)将上述功能作为类的成员函数实现,编写主函数测试上述查找功能。

23.赫夫曼编码的设计与实现

进行赫夫曼编码类的设计并实现,包括以下功能:

(1)设计类的数据成员和成员函数,实现赫夫曼树的存储;

(2)根据给定的通信字符出现的概率,实现赫夫曼树的建立;

(3)遍历赫夫曼树,求赫夫曼编码;

(4)给出一段字符串,进行赫夫曼编码;

(5)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

25.队列类模板的设计与实现

进行队列类模板的设计并实现,队列采用循环队列实现,数据元素可以是char, int, float等多种数据类型,包括以下功能:

(1)实现初始化队列操作,建立一个空队列;

(2)实现清空队列操作;

(3)实现判断队列是否为空的操作;

(4)实现求队列长度的操作;

(5)实现返回队首元素的操作;

(6)实现入队操作;

(7)实现出队操作;

(8)实现队列的遍历操作,输出队列的每个元素。

(9)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

26.栈类模板的设计与实现

进行栈类模板的设计并实现,栈采用链式存储结构,数据元素可以是char, int, float 等多种数据类型,包括以下功能:

(1)实现初始化栈操作,建立一个空栈;

(2)实现清空栈操作;

(3)实现判断栈是否为空的操作;

(4)实现求栈长度的操作;

(5)实现返回栈顶元素的操作;

(6)实现入栈操作;

(7)实现出栈操作;

(8)实现栈的遍历操作,输出栈的每个元素。

(9)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

27.表达式求值的设计与实现

表达式求值是程序设计语言编译中的一个最基本问题,要求进行类的设计与实现,采用算符优先法实现表达式求值。具体要求如下:

(1)用顺序栈作为表达式求值过程中运算符栈和操作数栈的实现;

(2)用二维数组存储算符间的优先关系;

(3)采用算符优先法实现表达式求值;

(4)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

28.基于Dijkstra算法的最短路径问题求解

进行类的设计与实现,解决最短路径问题。具体要求如下:

(1)采用图的邻接矩阵或邻接表实现最短路径问题中图的存储;

(2)采用Dijkstra算法求从某个源点到其余各顶点的最短路径;

(3)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

29.基于Floyd算法的最短路径问题求解

进行类的设计与实现,解决最短路径问题。具体要求如下:

(1)采用图的邻接矩阵或邻接表实现最短路径问题中图的存储;

(2)采用Floyd算法求每一对顶点的最短路径;

(3)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

30.基于DFS算法的图的遍历问题求解

进行类的设计与实现,解决图的遍历问题。具体要求如下:

(1)采用图的邻接矩阵或邻接表实现最短路径问题中图的存储;

(2)采用递归程序实现图的深度优先搜索(DFS);

(3)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

31.基于BFS算法的图的遍历问题求解

进行类的设计与实现,解决图的遍历问题。具体要求如下:

(1)采用图的邻接矩阵或邻接表实现最短路径问题中图的存储;

(2)采用队列实现图的广度优先搜索(BFS);

(3)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

32.基于Prim算法的最小生成树问题求解

进行类的设计与实现,解决无向连通图的最小生成树的遍历问题。具体要求如下:

(1)采用图的邻接矩阵或邻接表实现最短路径问题中图的存储;

(2)采用普里姆(Prim)算法实现最小生成树问题的求解;

(3)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

33.字符串类的设计与实现

进行字符串类的设计,具体要求如下:

(1)使用堆分配存储表示实现字符串的存储;

(2)实现串赋值操作StrAssign(&T, chars);

(3)实现串比较操作StrCompare(S,T);

(4)实现求串长操作StrLength(S);

(5)实现串连接操作Concat(&T,S1,S2)

(6)实现求子串操作SubString(&Sub,S,pos,len)

(7)实现清空子串操作ClearString(&S);

(8)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

三、课程设计时间安排

本课程设计在学完面向对象程序设计课程后进行,具体时间为第17~19周,共3周。

四、课程设计考核办法

(1)课程设计报告

不少于5000字,报告除了在封面中应有题目、班级、姓名、学号和课程设计日期以外,其正文一般包括需求分析、类与对象设计、算法设计、图形界面设计、调试问题分析、参考文献等部分。课程设计报告字体格式采用宋体,小四,行距为最小值20磅,具体可参照后

面的课程设计报告范例。

(2)程序演示和验收答辩情况

在课程设计的后期,指导教师在实验室进行课程设计程序的验收与答辩,由学生演示编制的程序,并回答教师提出的问题,教师检查学生程序的编写情况。

(3)课程设计的考勤与纪律遵守情况

五、课程设计报告范例

下面给出了一个课程设计报告范例,作为同学撰写课程设计报告的参考。

封皮

(按学校要求手工填写)

24.二叉树类模板的设计与实现

进行二叉树类模板的设计并实现,数据元素可以是char, int, float等多种数据类型,包括以下功能:

(1)采用顺序存储结构或链式存储结构实现二叉树的存储;

(2)实现二叉树的建树;

(3)实现二叉树的前序、中序、后序遍历;

(4)能够求解二叉树的结点总数和叶子结点总数;

(5)能够求解二叉树的高度;

(6)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

课程设计任务书

目录

1 需求分析............................................................................................ - 1 -

2 算法基本原理 ................................................................................... - 1 -

3 类设计................................................................................................ - 2 -

4 详细设计............................................................................................ - 3 -4.1类的接口设计 . (3)

4.2类的实现 (5)

4.3主函数设计 (10)

5 DOS界面程序运行结果及分析 ..................................................... - 11 -5.1程序运行结果 .. (11)

5.2运行结果分析 (12)

6 基于MFC的图形界面程序开发................................................... - 13 -6.1基于MFC的图形界面程序设计.. (13)

6.2程序测试 (17)

6.3MFC程序编写总结 (19)

7 参考文献.......................................................................................... - 19 -

1 需求分析

(1)很多自然科学和工程技术中的问题的解决最终都归结到线性方程组的求解,高斯消去法是线性方程组解法中很经典的算法,由它改进、变形得到的全选主元消去法,是一种效率很高、较为常用的线性方程组解法。

(2)线性方程组的一般形式为Ax=b ,其中A 是线性方程组的系数矩阵,x 是列向量,是方程组的解,b 也是列向量,这里假定A 是非奇异矩阵。

(3)程序测试数据来自徐士良先生编著的《C 常用算法程序集》中,所选的方程是:

(1)

2 算法基本原理

设有n 元线性方程组:

(2)

将(2)写成矩阵形式b Ax =,其中, (3)

将系数矩阵A 和向量b 放在一起,形成增广矩阵B :

(4)

全选主元消去就在这个B 矩阵上进行,整个过程分为两个步骤:

??????

?=+++=+++=+++=+++5471

.11490.01397.01245.01161.16471.11871.01768.01675.11581.07471.12271.02168.12071.01968.08471.12671.12568.02471.02368.03210321032103210x x x x x x x x x x x x x x x x ??

?

??

?

?=+++=+++=+++----------1

11,111,100,1111,1111010011,0101000n n n n n n n n n n b x a x a x a b x a x a x a b x a x a x a ???

??

?

??????=????????????=?

?

???????

???=------1101101,11

,10

,1,11110

,00100,

,n n n n n n n n b b b b x x x x a a a a a a a a a A ?

??????????

?==-----1101,11,10,1,11110,00100

),(n n n n n n n b b b a a a a a a a a a b A B

第一步,消去过程。

对于k 从0开始到n-2结束,进行以下三步:

(1)首先,从系数矩阵A 的第k 行、k 列开始的子矩阵中选取绝对值最大的元素作为主元素,例如:

(5)

然后交换B 的第k 行与第i1行,第k 行与第j1列,这样,这个子矩阵中的具有最大绝对值的元素被交换到第k 行、k 列的位置。

(2)其次,进行归一化计算。计算方法为: (6)

(3)最后,进行消去运算:

(7)

第二步,回代过程。

(8)

在这里,只是列出简要地给出了全选主元高斯消去法的算法步骤,具体推导及详细过程可参考数值分析方面的有关资料。

3 类设计

从上面的算法分析可以看到,本设计面临的计算问题的关键是矩阵运算。可以定义一个矩阵类Matrix 作为基类,然后由矩阵类派生出线性方程组类Linequ 。矩阵类Matrix 只处理n ×n 类型的方阵,方阵用一个一维数组来存放,矩阵类Matrix 的数据成员包括数组的首地址和n ,矩阵类Matrix 的功能有设置矩阵的值SetMatrix( )和显示矩阵PrintM( )等。

从问题的需要来看,线性方程组类Linequ 的数据除了由矩阵类Matrix 继承过来用于存放系数矩阵A 的成员外,还应该包括存放解向量x 和方程右端向量b 的数组首地址。线性方程组类Linequ 的主要操作有设置SetLinequ( )、显示PrintL( )、求解Solve( )及输出方程的解showX( )。可以通过定义线性方程组类Linequ 的新增成员函数来实现这些针对方程组求解的功能。

max 1,1≠=<≤≤≤ij n

j k n i k j i a a 1

,,2,1,

/-++==n k k j a a a kk kj kj kk

k k a b b /=1

,,2,1,,

-++=-=n k k i j a a a a kj ik kj ij 1

,,2,1,

-++=-=n k k i b a b b k ik i i 1

,111/----=n n n n a b x 0

,,1,2,

1

1

--=-

=∑-+=n n i x a

b b n i j j ij

i i

矩阵类Matrix和线性方程组类Linequ的组成及相互关系如图1所示。

图1 Matrix类和Linequ类的派生关系的UML图形表示在线性方程组的求解过程中,在线性方程组类Linequ的成员函数Solve中需要访问基类矩阵类Matrix的数据成员,利用公有继承方式派生,同时将Matrix 类中的数据成员的访问控制设置为保护类型。这样,经过公有派生之后,基类的保护成员在派生类中依然是保护成员,可以被派生类的成员函数访问。

4 详细设计

整个程序分为三个独立的文档,Linequ.h文件中包括矩阵类Matrix和线性方程组类Linequ的声明,Linequ.cpp文件中包括这两个类的成员函数实现文件;main.cpp文件包括程序的主函数,主函数中定义了一个类Linequ的对象,通过这个对象求解一个四元线性方程组。

4.1 类的接口设计

//Linequ.h文件,实现类的声明

#include

#include

using namespace std;

class Matrix //基类Matrix声明

{

public: //外部接口

Matrix(int dims=2); //构造函数

~Matrix(); //析构函数

void SetMatrix(double *rmax); //矩阵赋初值

void PrintM(); //显示矩阵

protected:

int index; //方阵的行数

double* MatrixA; //矩阵存放数组首地址

};

class Linequ:public Matrix //公有派生类Linequ声明

{

public: //外部接口

Linequ(int dims=2); //构造函数

~Linequ(); //析构函数

void SetLinequ(double *a, double *b); //方程赋值

void PrintL(); //显示方程

int Solve(); //全选主元高斯消去法求解方程

void ShowX(); //显示方程的解

private: //私有数据

double *sums; //方程右端项

double *solu; //方程的解

};

经过公有派生,Linequ类获得了除构造函数、析构函数之外的Matrix类的全部成员,由于基类的成员是公有和保护类型,因此在派生类中的成员函数中,基类继承来的成员全部可以访问,而对于建立Linequ类对象的外部模块来讲,基类的保护成员是无法访问的。通过保护访问类型和公有的继承方式,实现了基类Matrix的数据的有效共享和可靠保护。在程序中,方程的系数矩阵、解以及右端项全部采用了动态内存分配技术,这些工作都是在基类、派生类的构造函数

中完成,它们的清理工作在析构函数中完成。

4.2 类的实现

//Linequ.cpp文件,类实现

#include "linequ.h" //包含类的声明头文件

//Matrix类的实现

void Matrix::SetMatrix(double *rmatr) //设置矩阵

{

for(int i=0;i

MatrixA[i]=rmatr[i]; //矩阵成员赋初值}

Matrix::Matrix(int dims) //矩阵Matrix类的构造函数

{

index=dims; //矩阵行数赋值

MatrixA=new double[index*index]; //动态内存分配}

Matrix::~Matrix() //矩阵Matrix类的析构函数

{

delete[] MatrixA; //内存释放

}

void Matrix::PrintM() //显示矩阵元素

{

cout<<"The Matrix is:"<

for (int i=0;i

{

for (int j=0;j

cout<<*(MatrixA+i*index+j)<<" ";

cout<

}

//派生类Linequ的实现

Linequ::Linequ(int dims):Matrix(dims) //派生类Linequ的构造函数{ //使用参数调用基类构造函数sums=new double[dims]; //动态内存分配

solu=new double[dims];

}

Linequ::~Linequ() //派生类Linequ的析构函数

{

delete[] sums; //释放内存

delete[] solu;

}

void Linequ::SetLinequ(double *a,double *b) //设置线性方程组

{

SetMatrix(a); //调用基类函数

for (int i=0;i

sums[i]=b[i];

}

void Linequ::PrintL() //显示线性方程组

{

cout<<"The line equation is:"<

for (int i=0;i

{

for (int j=0;j

cout<<*(MatrixA+i*index+j)<<" ";

cout<<" "<

}

}

void Linequ::ShowX() //输出方程组的解

c++面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机 1001 学号 01 姓名 指导教师李珍辉陈淑红李杰军 2011年 12 月 28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号 01 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期 2011 年 11 月 15 日 任务完成日期 2011 年 12 月 28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

通信原理课程设计报告书

通信原理课程设计 题目:脉冲编码调制(PCM)系统设计与仿真 院(系):电气与信息工程学院 班级:电信04-6班 姓名:朱明录 学号: 0402020608 指导教师:赵金宪 教师职称:教授

摘要 : SystemView 仿真软件可以实现多层次的通信系统仿真。脉冲编码调制(PCM )是现 代语音通信中数字化的重要编码方式。利用SystemView 实现脉冲编码调制(PCM)仿真,可以为硬件电路实现提供理论依据。通过仿真展示了PCM 编码实现的设计思路及具体过程,并加以进行分析。 关键词: PCM 编译码 1、引言 随着电子技术和计算机技术的发展,仿真技术得到了广泛的应用。基于信号的用于通信系统的动态仿真软件SystemView 具有强大的功能,可以满足从底层到高层不同层次的设计、分析使用,并且提供了嵌入式的模块分析方法,形成多层系统,使系统设计更加简洁明了,便于完成复杂系统的设计。 SystemView 具有良好的交互界面,通过分析窗口和示波器模拟等方法,提供了一个可视的仿真过程,不仅在工程上得到应用,在教学领域也得到认可,尤其在信号分析、通信系统等领域。其可以实现复杂的模拟、数字及数模混合电路及各种速率系统,并提供了内容丰富的基本库和专业库。 本文主要阐述了如何利用SystemView 实现脉冲编码调制(PCM )。系统的实现通过模块分层实现,模块主要由PCM 编码模块、PCM 译码模块、及逻辑时钟控制信号构成。通过仿真设计电路,分析电路仿真结果,为最终硬件实现提供理论依据。 2、系统介绍 PCM 即脉冲编码调制,在通信系统中完成将语音信号数字化功能。PCM 的实现主要包括三个步骤完成:抽样、量化、编码。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。根据CCITT 的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A 律和μ律方式,我国采用了A 律方式,由于A 律压缩实现复杂,常使用 13 折线法编码,采用非均匀量化PCM 编码示意图见图1。 图1 PCM 原理框图 下面将介绍PCM 编码中抽样、量化及编码的原理: (a) 抽样 所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。 (b) 量化 从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。如图2所示,量化器Q 输出L 个量化值k y ,k=1,2,3,…,L 。k y 常称为重建电

《面向对象程序设计》课程设计要求和任务书

《面向对象程序设计》课程设计任务书 课程设计名称:面向对象程序设计指导老师:王淮亭 课程设计周(时)数:2周 课程设计授课单位:计算机基础教学部指导方式:集体辅导与个别辅导相结合 课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料: 《C++程序设计》谭浩强编著,清华大学出版社 《C++程序设计教程学习辅导》谭浩强编著,清华大学出版社 服务课程名称:面向对象程序设计 一、课程设计的目的要求 《面向对象程序设计课程设计》是计算机专业及相关专业学生的一门实践课程。本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。 本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。 二、课程设计内容及安排 1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明 确问题要求做什么?(而不是怎么做?)限制条件是什么? 2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以 数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图; 3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中, 要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。 详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;

课程设计:通信工程课程设计解析

网络工程课程设计 设计说明书 2B1Q编码与译码的设计与仿真 学生姓名李成 学号1118064050 班级网络1102班 成绩 指导教师李征 数学与计算机科学学院 2013年 9 月 13 日

课程设计任务书 2013 —2014 学年第一学期 课程设计名称:网络工程课程设计 课程设计题目:2B1Q编码与译码的设计与仿真 完成期限:自2013 年9 月 1 日至2013 年9 月14 日共 2 周 设计内容: 本次课程设计的任务是2B1Q编码与译码的设计,并用MA TLAB仿真软件进行验证,要求能根据随机信源输入的二进制信息序列给出对应的编码译码输出结果,并以图形化的方式显示出波形,并且要求对设计的内容有必要的说明。 通过本次的实践,要求学生完成以下任务: (一)对课本知识的全面复习,了解2B1Q的编码与译码原理; (二)对MA TLAB仿真软件的学习,能够使用该工具进行2B1Q的仿真验证; (三)通过交流合作,完成2B1Q编码与译码的设计,并用MA TLAB软件进行仿真验证; (四)课程设计的结果全面正确,功能模块清晰分明; (五)加强团队合作精神,开拓创新能力; (六)文档资料完整规范。 指导教师:李征教研室负责人: 课程设计评阅

摘要 对2B1Q的编码与译码进行设计,利用Matlab软件进行2B1Q编码与译码的仿真实验验证。在2B1Q中,2个二进制码元用1个四元码表示,即可以用10表示1,01表示0,即把1变换为1/0中间下降沿代表1,把0变换为0/1中间上升沿表示0。Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示“1”,用上跳变表示“0”。因此,可以用曼彻斯特码的编码规律来解决这一课设问题。 关键词:2B1Q;Manchester码;跳变沿

C#面向对象课程设计--拼图游戏

《C#程序设计》课程设计 题目:拼图游戏 专业:计算机科学与技术 学号: 姓名: 指导老师: 完成日期: 2012/12/26

《C#课程设计》评分标准 题目:拼图游戏专业:计算机科学与技术学号:姓名:

目录 1 前言 (4) 2 需求分析 (4) 要求 (4) 任务 (4) 运行环境 (4) 开发工具 (4) 3 概要设计与详细设计 (5) 系统流程图 (5) 结构功能图 (5) 4 编码与实现 (6) 编码分析 (6) 具体代码实现(附源代码) (9) 5 课程设计总结 (18) 参考文献 (19)

1.前言 拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。拼图的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼机会。拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个拼图游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。一个3×3的魔板,有一个格子是空的,其他格子内随机放置1-8共8个编号的方块,通过单击任意一个与空格子相邻的方块可以把该方块移入空格子,不断的移动方块,直到方块按照图片的原来的顺序排好。 2 需求分析 要求 (1)用C#语言实现程序设计; (2)利用PictureBox控件来实现图片的移动 (3)超过200步提示重新来 (4)界面友好(良好的人机互交),程序要有注释。 任务 (1)制作流程图 (2)编写代码; (3)程序分析与调试。 运行环境 (1)WINDOWS2000/XP/win7系统 (2)编译环境 开发工具

软件综合课程设计任务书

软件综合课程设计任务书

————————————————————————————————作者: ————————————————————————————————日期: ?

软件综合课程设计任务书 一、课程设计的目的、要求 目的:软件综合课程设计是一个综合性的设计型实验教学环节,旨在使学生通过软件开发的实践训练,进一步掌握设计开发软件的方法与技术,学会数据的组织方法,提高软件开发的实际能力,培养创造性的工程设计能力和分析、解决问题的能力。 实现以下目标: 1.深化已学的理论知识,完成理论到实践的转化 通过软件开发的实践,进一步加深对软件工程方法和技术的了解,将所学的理论知识运用于开发实践中,并在实践中逐步掌握软件工具的使用。 2. 提高分析和解决实际问题的能力 课程设计不仅是一次软件工程实践的模拟训练,同时通过软件开发的实践,积累经验,提高分析问题和解决问题的能力; 3. 培养“开拓创新”能力 大力提倡和鼓励在开发过程中使用新方法、新技术,激励学生实践的积极性和创造性,开拓思路,设计新算法、新创意,培养创造性的工程设计能力; 要求:学生组成开发小组(2~4人),以小组为单位选择并完成一个规模适度的软件项目,在教师的指导下以软件设计为中心,独立完成从需求分析到软件测试的开发过程。 二、设计步骤安排 1.确定课题 由教师命题并给出各课题的具体需求,学生根据课题涉及的知识领域及自己对该领域的熟悉程度和对该课题的兴趣,选择课题,经教师调整审定后确定; 2. 需求分析 建立系统的分析模型,这是系统开发的重要阶段。主要工作是: 分析确定系统应具备的功能、性能,并从经济上、技术上进行可行性分析,建立“需求分析模型”确定开发计划。 3. 软件设计 具体工作是:对系统的分析模型进行修改、细化,进行系统的结构设计,用户界面设计,数据管理部件设计(若系统涉及到数据库,要对数据库结构进行设计) 4. 编码与测试 根据项目的应用领域及语言的特点,选择编程语言进行编码,要求给出程序的详细注释(包括模块名、模块功能、中间过程的功能及变量说明); 由开发小组进行除验收测试以外的测试工作(包括单元测试、组装测试与系统(确认)测试)。所有测试过程都要求采用综合测试策略,先进行静态分析,再进行动态测试。要求制定测试计划、记录测试过程与结果、保留测试用例、写出测试报告。 5. 验收测试 由教师组织验收测试的实施,内容包括:系统能否正确运行,实际系统与设计方案是否一致,是否实现了需求所确定的功能与性能,系统设计有无特色,算法有无创新,系统结构是否合理、新颖,系统界面是否友好、美观,操作是否简单,使用是否方便。6.总结和整理课程设计报告

面向对象课程设计任务-可选题

面向对象课程设计任务书 一、设计基本要求 1、利用面向对象的方法和C++编程思想来完成系统的分析和设计; 在设计过程中,建立清晰的类层次;用UML画出类及类间的关系图; 程序中包含面向对象的基本知识:封装、继承、多态,基本的信息应该能长期保存(用文件存放) 2、系统启动运行时读取存储在文件中的记录解析成对象数据放入内存(以STL向量或链表存放) 3、基本的信息管理包括:读数据(从文件中读到内存)、增加、删除、查询、修改、存盘(将内存中数据写回文件)。可以自己根据题目要求增加新的功能。增、删、改、查操作在内存中进行(针对STL向量或链表的操作而不是针对文件的操作) 4、系统关闭前将内存数据存入文件(可以新建文件或覆盖原有文件) 5、类中属性以private或protected属性为主 6、层次分明,结构合理,加上简单界面的设计,如菜单,界面清新美观,维护容易 7、按照指导书的要求编写文档。 二、使用的主要技术 C++编程:基础编程,文件流,STL,必要的异常处理机制 环境:VC++6.0 三、设计的方法和步骤 设计步骤: 第一步:进行完整的需求分析,写出需求分析报告。 第二步:进行详细设计,写出详细的设计报告。 第三步:各模块编码实现。 第四步:合并调试并试运行,记录实现过程中出现的问题及解决方案。 第五步:提交完整可执行软件,准备答辩。 第六步:答辩,演示软件,评分。 第七步:整合各报告,修改并提交。 四、主要参考资料 1.课程教材 2. 面向对象程序设计实用教程张海藩清华大学出版社 3. C++语言程序设计(第1版)吕凤翥清华大学出版社 4. C++语言程序设计(第1版)郑莉清华大学出版社 5.C++及Windows可视化程序设计刘振安清华大学出版社 6.其他相关的书籍及网络资源 五、选题 以下为一组可选的选题,每个选题可以从中选择一部分来实现,但需要达到基本要求。 1. 班主任工作管理系统 班主任的日常工作非常繁琐,需要管理学生的信息、班级的日常活动等。结合班主任工作实际,开发一个管理系统,系统主要功能如下: (1)学生资料管理:提供学生基本档案、学生评语、家访记录的维护,并可以按照年

数据通信课程设计报告

《计算机控制技术》 课程设计 目录一....................................................................... 课程设计目的.. (3) 二....................................................................... 课程设计题目和要求. (3) 2.1 课程设计题目 2.2课程设计要求 三....................................................................... 设计内容 (4) 3.1 设计方案的选定与说明 3.2 系统总体框图 3.3论述方案的各部分工作原理; 3.4 设计说明书 四....................................................................... 设

计总结 (11) 参考书目 (11)

一.课程设计目的 通过本课程设计主要目的是实现两台西门子1200PLC之间的通信,利用PLC1发 送指令给PLC2 PLC2接到指令后控制电动机的启停,主要训练和培养学生的以下能 力: (1).查阅资料:搜集与本设计有关的资料(包括从已发表的文献中或者通过网络 交流平台搜集)的能力; (2).软件使用:了解并掌握西门子S7-1200软件的使用,明白网络通信实现的机 理与过程; (3).用简洁的文字,清晰的图表来表达自己设计思想的能力。 .课程设计题目和要求 2.1课程设计题目 题目:当一台S7-1200上发出一个启停信号时,另一台S7-1200收到信号,并启停一台电动机 1)主要软硬件配置 一套Step7 Basic v10.5(或以上版本),一根网线,2台CPU 1214C 2)相关指令:TSEND_C (发送数据指令),TRCV_C(接受数据指令) 3)硬件组态与编程 新建工程--- 添加硬件--- 用子网连接两个cpu ----- 编写主控cpu程序----- 调整主控cpu连接参数 --- 编写另一台cpu程序----- 调整另一台cpu连接参数

轨道工程课程设计任务书、指导书及设计要求

轨道工程课程设计任务书 一、出发资料 1.机车车辆条件:韶山Ⅲ(SS3)型电力机车;机车轴列式30-30,轴距布置为230+200+780+200+230 (cm),轮重。 2.线路条件: (1)线路设计速度80km/h,最小曲线半径500m(实设超高为100mm),规划采用有砟轨道结构。 (2)线路铺设成无缝线路,铺设地区为福州,铺设线路长度为10km。 (3)道床顶面的容许应力为,路基顶面的容许应力为。 二、设计任务 (1)进行有砟轨道结构设计,包括钢轨和扣件的选型,轨枕的类型及布置根数,道床的等级及尺寸,并检算强度是否满足使用要求。 (2)进行无缝线路设计,包括设计锁定轨温确定、缓冲区设计、预留轨缝确定、轨条布置。 三、提交的成果 (一)、设计计算说明书 (1)轨道结构选型。 (2)轨道结构强度检算。 (3)无缝线路设计计算。 (二)、设计图图纸 (1)轨道结构组装图及选型说明。(1张A3)

(2)轨道结构受力图(3张A4:钢轨弯矩和挠度1张,轨枕三个支承状态的弯矩分布,道床顶面、路基顶面、路基第二区域、路基第三区域应力)。 (3)无缝线路设计图(1张A4或A3,基本温度力图、轨条布置图及相关说明)。 设计指导书

一、课程设计的基本步骤: 课程设计的步骤如图1所示: 图1 课程设计步骤 二、设计方法 (一)、轨道结构选型设计 根据机车车辆和线路条件,确定钢轨、轨枕、扣件的类型及刚度、道床的等级及主要尺寸(厚度、顶宽和边坡坡度)。钢轨、轨枕及扣件的可选用类型从教材中选择,道床的等级及主要尺寸也参考教材的内容确定。 以下两点说明: 1、道床厚度的选择 道床厚度设计根据《铁路轨道设计规范》(TB10082-2005)和《地铁设计规范》(GB50157-2003)进行,为方便可根据运营条件从教材表1-1中选择。我们的轨道类型可参考中型轨道结构。 2、钢轨支座刚度D 钢轨支座刚度D的意义是使钢轨支点顶面产生单位下沉时所必须施加于支点顶面上的力,单位一般采用kN/mm表示。 D值的计算:1/D=1/D1+1/D2 教材(7-3) 式中D1为扣件刚度,其值由设计确定;D2为道床支承刚度,计算

通信原理课程设计心得体会

通信原理课程设计心得体会 、时分解复用原理 为了提高信道利用率,使多路已抽样的信号组合起来沿同一信道传输而互相不干扰,称时分多路复用。时分复用的解调过程称为时分解复用。目前采用较多的是频分多路解复用和时分多路解复用。频分多路解复用用于模拟通信,而时分多路解复用用于数字通信。为了实现TDM传输,要把传输时间分成若干个时隙,在每个时隙内传输一路信号,将若干个原始的脉冲调制信号在时间上进行交错排列,从而形成一个复合脉冲串,该脉冲串扰码后经信道传输到达接收端。时分解复用通信,是把各路信号在同一信道上占有不同时间间隙进行通信分离出原来的模拟信号。由抽样定理可知,将时间上离散的信号变成时间上连续的信号,其在信道上占用时间的有限性,为多路信号沿同一信道传输提供了条件。时分解复用是建立在抽样定理的基础上的,因为抽样定理连续的基带信号由可能被在时间上离散出现的抽样脉冲所代替.具体说,就是把时间分成一些均匀的时间间隙,将各路信号的传输时间分配在不同的时间间隙,以达到互相分开,互不干扰的目的。抽样脉冲占据时间一般较短,在抽样脉冲之间就留出间隙.利用这些空隙便可以传输其他信号的抽样,因此,就可能用一条信道同时传送若干个基带信号,并且每一个抽

样值占用的时间越短,能够传输的数据也就越多.时分解复用信号在接收端只要在时间上恰当地进行分离,各个信号就能分别互相分开,互不干扰并不失真地还原出原来的模拟信号。 在通信系统中,同步具有相当重要的地位。通信系统能否具有有效、可靠地工作,在很大程度上依赖有无良好的同步系统。同步可分为载波同步、位同步、帧同步和网同步几大类型。他们在通信系统中都具有相当重要的作用。时分解复用通信中的同步技术包括位同步和帧同步,这是数字通信的又一个重要特点。时分解复用的电路原理就是先通过帧同步信号和位同步信号把各路信号数据分开,然后通过移位寄存器构成的并/串转换电路输出串行的数据,把时分复用的调制信号不失真的分离出来。 位同步 位同步的目的是确定数字通信中的个码元的抽样时刻,即把每个码元加以区分,使接受端得到一连串的码元序列,这一连串的码元列代表一定的信息。位同步是最基本的同步,是实现帧同步的前提。位同步的基本含义是收、发两端机的时钟频率必须同频、同相,这样接收端才能正确接收和判决发送端送来的每一个码元。因此,接收端必须提供一个确定抽样判决时刻的定时脉冲序列.

面向对象程序设计课程设计

《面向对象程序设计》课程设计 课程代码:*****(采用现行5位数字的课程代码) 课程名称:面向对象程序设计课程设计 设计周数:1周 学分:0.5学分 课程类别:必修课 一、课程设计的目的与任务 面向对象程序设计课程设计是计算机科学与技术、网络工程、信息管理与信息系统等专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。通过课程设计,学生可以将本课程所学知识点融会贯通,举一反三,加深实践与理解,提高学生综合运用所学知识的能力;另一方面,在参与一系列子项目的实践过程中,能使学生获得相关项目管理和团队合作等众多方面的实践经验。其目的在于加深对面向对象程序设计理论和基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,使学生掌握基本的信息系统分析方法、设计方法和上机操作的各种技巧,对培养学生的逻辑思维能力、团队合作精神、创新能力、动手操作能力各方面素质有提供了良好的实践平台,为后续课程的学习打下一定的基础。 二、本课程设计的基本理论 本课程设计使用面向对象程序设计的方法解决实际问题,涵概了课程的所有重要知识点,如类与对象、继承与组合、虚函数与多态性等。 三、课程设计的形式与基本要求 形式:召开课程设计动员会,根据学生的学习水平和特长进行分组,每组选择指定课程设计的题目和内容。学生在规定的时间内,经过小组的协同工作和指导教师的辅导,完成所选课题的设计,最后由指导教师进行验收及评定。 基本要求:要求学生做好预习,认真分析设计过程中涉及到的算法,并确定所选课题的功能模块,详细描述各模块的具体内容;用流程图描述实现算法,根据算法进行代码的编写,最后进行反复上机调试修改,直到输出正确结果为止。 认真写好课程设计报告,根据每组学生的分工,各自写出对解决问题的详细分析、模块功能、调试结果,最后将课程设计报告上交给指导教师。 四、课程设计的内容 选题一:员工管理信息系统 (1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、部门、参加工作时间和年龄(必须计算得到)。

课程设计任务书(2级)

电子技术课程设计任务书 题目一:信号发生器 一、设计目的 根据常用的电子技术知识,以及可获得的技术书籍与电子文档,初步形成电子设计过程中收集、阅读及应用技术资料的能力;熟悉电子系统设计的一般流程;掌握分析电路原理、工程计算及对主要技术性能进行测试的常见方法;最终,完成从设计图纸到实物搭建的整个过程,并调试作品。 二、任务与要求 1、熟悉信号发生器的组成和基本原理,了解单片集成信号发生器的功能特点; 2、掌握信号波形参数的调节和测试方法的应用; 3、电路能够产生正弦波、方波、锯齿波; 4、掌握信号发生器的设计测试方法; 5、工作电源为+5~+15V 连续可调。 参考方案: 图1、ICL8038原理框图 参考原理: ICL8030内部由恒流源I 1、I 2、电压比较器A 和B 、触发器、缓冲器和三角波变正弦波变换电路组成。外接电容C 经过两个恒流源进行充放电,电压比较器A 、B 的参考电压分别为电源电压(U CC +U CE )的2/3和1/3。恒流源的恒流源I 1、I 2的大小可通过外接电阻调节,但必须I 2>I 1。当触发器的输出为低电平时,恒流源I 2断开,I1给电容充电,其两端电压U C 随时间上升,当U C 上升到电源电压的2/3时,电压比较器A 的输出电压发生跳变,使触发器输出由低电平变为高电平,恒流源I 2接通,由于I 2>I 1(设I 2=2I 1),恒流源I 2加到C 上反充电,相当于C 由一个净电流I 1放电,C 两端电压U C 转为直线下降,当下降到电源电压1/3时,电压比较器B 的输出电压发生跳变,使触发器的输出由高电平变为原来的低电平,恒流源I 2断开,I 1对C 充电,如此重复,产生振荡信号。 若通过调节外接电阻使得I 2=2I 1,触发器的输出为方波,反向缓冲后由9脚输出;C 上

通信工程专业课程设计

专业课程设计任务书 一、总体要求及课程设计题目 总体要求: 对学生大学整个阶段知识积累的总结是毕业设计,而对一门课程的阶段性总结手段就是课程设计。如果学生经过的是一个完善的课程设计环节,不仅可以提升学习兴趣、总结所学知识,更重要的是可以将学过的知识进行系统的整合,是一个有效的知识的再提高、再丰富的过程。 此次课程设计其目的在于加深对专业基础课与专业课基本知识的理解,掌握运用Multisim 软件对电路进行设计和仿真。 1)可以查找相关资料,使用网上免费信息资源,但要符合题目要求功能; 2、设计完成时进行答辩,答辩不通过为不合格。 设计题目: 1)2ASK 调制与解调系统的设计(4人组) 主要技术指标: 1.数字信号用施密特电路实现 2.载波信号用LC 振荡器实现(频率:1MHz ) 频率稳定度00f f ?≤4 105-?/小时 输出电压的峰峰值为P P V -≥1V 3.数字信号占空比可调(选作) 4.误码率(选作) 2)2FSK 调制与解调系统的设计(4人组) 主要技术指标: 1.数字信号用施密特电路实现 2.载波信号用LC 振荡器实现(频率:1MHz ) 频率稳定度00f f ?≤4 105-?/小时 输出电压的峰峰值为P P V -≥1V 3.数字信号占空比可调(选作) 3)频率发生器的设计(3人组) 主要技术指标: 1. 用单片机设计一个频率发生器

2. 产生100HZ 到100KHZ 之间的频率(100HZ 、500HZ 、1KHZ 、5 KHZ 、10 KHZ 、 50 KHZ 、100 KHZ ) 3. 占空比可调 4).集电极调幅电路的设计(4人组) 已知条件:+Vcc =12V, 晶体管为3DG130(3DG12),回路电感根据所定频率选用活自 绕,可用环形磁芯,也可用高频骨架绕制。 主要技术指标: 1.中心频率0f =(根据设计及级联电路的要求自行决定,将你所选择的频率填上) 2.输出功率0P ≥ 100 mw ,效率η> 40% , 调幅度a m ≥0.3 ,负载L R =51Ω 5).变容二极管直接调频电路(4人组) 已知条件:+Vcc =12V, 晶体管为3DG100, 负载L R =1K Ω,变容二极管2CC1C, 回路电感根据所定频率选用或自绕 主要技术指标: 1.中心频率 0f =(根据设计及级联电路的要求自行决定,将你所选择的频率填上。) 2. 频率稳定度00f f ?≤4 105-?/小时,输出电压的峰峰值为P P V -≥1V 3. 最大频偏m ax f ?=20KHz , 调制灵敏度V KHz S f /14= 6)晶体振荡器(2人组) 已知条件:+Vcc =12V, 晶体管为3DG100, 负载L R =1K Ω 主要技术指标: 1.主振频率0f =(根据设计及级联电路的要求自行决定,将你所选择的频率填上。) 2.频率稳定度00f f ?≤5 105-?/小时 3.输出电压的峰峰值为P P V -≥1V 7) DSB 调制与解调系统的设计(4人组) 要求:1)录制一段2s 左右的语音信号,并对录制的信号进行8000Hz 的采样, 画出采样后语音信号的时域波形和频谱图; 2)采用正弦信号和自行录制的语音信号(.wav 文件)进行DSB 调制与解调;信道 使用高斯白噪声;画出相应的时域波形和频谱图。 主要技术指标:

面向对象课程设计任务书

面向对象课程设计任务书

河南城建学院 《面向对象语言程序设计》课程设计任务书 班级0814101/2 专业计算机科学与技术 课程名称面向对象语言程序设计 指导教师耿永军刘荣辉周二强 计算机科学与工程系 2012年06月

《面向对象语言程序设计》课程设计任务书 一、设计时间及地点 1、时间:第19周 2、地点:计算机系实验中心、本班教室10#A103 二、设计目的和要求 本课程设计是在学习C++基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 三、设计题目和内容 主要有以下设计题目: 题目1 高校人事管理系统 一、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握C++程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的C++程序设计问题。 2、基本要求: (1)要求利用C++的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法; (4)在系统的设计中,要求运用C++的机制(继承、派生及多态性)来

面向对象程序课程设计任务书

面向对象程序设计课程设计任务书 课程性质:设计 总学时数:1周 适用专业:软件工程10 1-6 嵌软10 1-2 软件学院 2012-6

一、课程设计目的和任务 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 二、设计内容和基本要求 设计任务书提供设计题目供学生选择。在指导教师同意的情况下,学生也可以自己选择感兴趣的设计题目,以调动学生参加创新设计的积极性和创造性,给学生充分的自主空间。 基本要求: ?设计工作量为完成一个中小型规模的软件和1份软件设计报告书 ?设计必须根据进度计划按期完成 三、课程设计参考题目 以下题目列出的仅为完成的基本功能,可根据需要完善与课题相关的其他功能。以下题目涉及窗体的设计、菜单设计、数据库设计、文件的读写等多种编程的实现,根据题目的要求自行进行编程设计。 1、设计一个GUI猜数字游戏程序 该游戏可以由程序随机产生四个0到9之间的整数,且不重复。玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。假设随机数据为3792 时,分析如下 数据:3792 输入:1234 0A2B 输入:5678 0A1B 输入:0867 0A1B 输入:9786 1A1B 输入:1794 2A0B 输入:2793 2A2B

输入:3792 4A0B 2、编写一个记事本程序,要求如下: (1)用图形用户界面实现。 (2)能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 3、设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。要求如下: (1)具有简单的录入,查询和修改功能。 (2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改; (3)使用文件存储数据。 (4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专 业、班级自我简介,其余可自行丰富。 (5)具有对姓名,出生日期和身份证号进行简单效验的功能。 4、日历记事本 要求:带有日程提醒功能的日历。 (1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询 下一个月的日期。 (2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信 息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 (3)查询信息:用户可以查询到某个月的所有的提示信息。 5、ATM柜员机模拟程序 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: (1)查询余额功能:初始余额为10000元 (2)ATM取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 (3)ATM存款功能:不能出现负存款。 (4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

北邮移动通信课程设计综述

信息与通信工程学院移动通信课程设计 班级: 姓名: 学号: 指导老师: 日期:

一、课程设计目的 1、熟悉信道传播模型的matlab 仿真分析。 2、了解大尺度衰落和信干比与移动台和基站距离的关系。 3、研究扇区化、用户、天线、切换等对路径损耗及载干比的影响。 4、分析多普勒频移对信号衰落的影响,并对沿该路径的多普勒频移进行仿真。 二、课程设计原理、建模设计思路及仿真结果分析 经过分析之后,认为a 、b 两点和5号1号2号在一条直线上,且小区簇中心与ab 连线中心重合。在此设计a 、b 之间距离为8km ,在不考虑站间距的影响是默认设计基站间距d 为2km ,进而可求得a 点到5号基站距离为2km ,b 点到2号基站距离为2km ,则小区半径为3/32km,大于1km ,因而选择传播模型为Okumura-Hata 模型,用来计算路径损耗;同时考虑阴影衰落,本实验仿真选择阴影衰落是服从0平均和标准偏差8dB 的对数正态分布。实验仿真环境选择matlab 环境。 关于路径损耗——Okumura-Hata 模型是根据测试数据统计分析得出的经验公式,应用频率在150MHz 到1 500MHz 之间,并可扩展3000MHz;适用于小区半径大于1km 的宏蜂窝系统,作用距离从1km 到20km 经扩展可至100km;基站有效天线高度在30m 到200m 之间,移动台有效天线高度在1m 到10m 之间。其中Okumura-Hata 模型路径损耗计算的经验公式为: terrain cell te te te c p C C d h h h f L ++-+--+=lg )lg 55.69.44()(lg 82.13lg 16.2655.69α 式中,f c (MHz )为工作频率;h te (m )为基站天线有效高度,定义为基站天线实际海拔高度与天线传播范围内的平均地面海拔高度之差;h re (m )为终端有效天线高度,定义为终端天线高出地表的高度;d (km ):基站天线和终端天线之间的水平距离;α(h re ) 为有效天线修正因子,是覆盖区大小的函数,其数字与所处的无线环境相关,参见以下公式: 22(1.1lg 0.7)(1.56lg 0.8)(), 8.29(lg1.54) 1.1(), 300MHz,3.2(lg1.75) 4.97(), 300MHz,m m m m f h f dB h h dB f h dB f α---??-≤??->?中、小城市()=大城市大城市 C cell :小区类型校正因子,即为:

面向对象程序设计课设题目

2012计算机科学与技术专业 面向对象课程设计题目 一设计要求 每个题目可以1人或至多两人,按题目要求完成程序设计及课程设计报告。 (若两人一个题目,需各自独立完成,题目相同者的课程设计报告不能完全相同。)二题目列表 三题目内容及要求 题目1 矩阵运算 内容及要求: 定义矩阵类,实现矩阵加法、减法、乘法、矩阵转置、求矩阵的逆矩阵等。 用程序实现验证n*n矩阵的如下定理: A(BC)=(AB)C。

题目2 填XO游戏程序 内容及要求: 游戏规则和胜利条件: 棋盘共有5行5列: 选择难度(1):两个斜对角之一都为X或O,则玩家胜。一横行都为X或O则玩家胜。)一竖行都为X或O则玩家胜。 选择难度(2):两个斜对角之一都为X或O,则玩家胜。 选择难度(3):两个斜对角都为X或O,则玩家胜。 输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键; 玩者下一步X或O,计算机也自动下一步X或O。 程序运行示例: 题目3 统计学生成绩 内容及要求: 要求编写一个“Student”类及用来存取文件的save()和load()函数,使用函数及运算符重载技术完成如下操作: (1)计算每个学生的平均成绩,将数据存入文件stud.dat中并验证是否正确地存入了文件。(2)要求对“<<”和“>>”运算符进行重载。 (3)把学生姓名和平均成绩抽取出来,建立一个简明文件stud_mean.dat,并验证是否正确地存入了。 (4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息: 学号姓名算术语文平均 (5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件bad.dat中。 (6)编写能检索文件中某个学生信息的子程序。如无此学生,输出“未查到”信息。 (7)使用多文件编程和菜单操作。 题目4 会议记录管理系统 内容及要求: 定义会议信息类class Conference

课程设计要求

数据结构课程设计任务书 课程设计名称:数据结构课程设计 课程设计编号:CSE03704 课程设计学分:2 课程设计周(时)数:2周 课程设计授课单位:信息工程学院计算机系 指导方式:集体辅导与个别辅导相结合 课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料: 《数据结构课程设计》,滕国文编著,清华大学出版社,2010年; 《数据结构课程设计》,陈越钦铭雁编著,浙江大学出版社,2009年 《数据结构课程设计案例教程》, 马巧梅等编著, 人民邮电出版社,2012年

一、课程设计教学目的及基本要求 1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。 二、设计内容 题目1:模拟停车场管理问题 问题描述: 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到来的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 基本要求: 试为停车场编制按上述要求进行管理的模拟程序。在这里假设汽车不能从便道上开走。试设计一个停车场管理程序。 实现提示: 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,例如:('A',1,5)表示一号牌照车在5这个时刻到达,而('D',5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为('E',0,0)时结束。对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车, 题目2:哈夫曼编码和译码 问题描述: 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 基本要求: 一个完整的系统应具有以下功能: (1)初始化及文本的频率统计。从终端读入字符集大小n,以及n个字符和n个权值,完成文本的频率统计。建立哈夫曼树,并将它存于文件中。 (2)编码。利用已建好的哈夫曼树,从文件中读入,对正文进行编码。然后将结果存入文件"CodeFile-姓名"中。 (3)译码。利用已建好的哈夫曼树将输入的代码进行译码,将文件"CodeFile-姓名" 中的代码进行译码,结果存入文件"Decoding-姓名"中。

通信工程课程设计——信号与线性系统课程设计

信号与系统课程设计报告课题二心电信号分析系统的设计与仿真 班级: 姓名: 学号: 组号及同组人: 指导教师:王宝珠 日期:2015年1月5日

心电信号分析系统的设计与仿真 摘要:本文利用MATLAB对MIT-BIH数据库中的心电信号进行分析,利用MATLAB软件、simulink平台、GUI图形用户界面、LABVIEW软件对心电信号进行读取、插值、高通低通滤波等处理。并画出时域、频域波形进行比较分析。同时将滤波器的系统函数进行读取,分析,画出滤波的信号流程图,并画出系统的冲击响应、幅频响应、相位响应和零极点图来判断系统的稳定性。 关键词:MATLAB,simulink,心电信号,数字滤波器,GUI,LABVIEW Abstract:This article makes use of MATLAB to analyze ECG signal of MIT-BIH ECG Database .To ECG signal .we collect it first.then we make linear interpolation.finally we carry a variable of filter including lowpass and High Pass.we will compare differences after painting the time domain and frequency domain waveform .at the same time we read and analyze the system function of filter with painting its the flow chart of the signal.fanally we paint system shock response along with amplitude-frequency response and phase response.we judge system stability by Zero pole figure. Key words:MATLAB, simulink, ECG signal, digital filter, GUI, LABVIEW 一、课程设计目的、意义 本设计课题主要研究数字心电信号的初步分析方法及滤波器的设计与应用。通过完成本课题的任务,拟主要达到以下几个目的: 1.了解MATLAB软件的特点和使用方法,熟悉基于Simulink的动态建模和仿真的步骤和过程; 2. 了解LabVIEW虚拟仪器软件的特点和使用方法,熟悉采用LabVIEW进行信号分析、系统设计及仿真的方法。 3.了解人体心电信号的时域特征和频谱特征; 4.通过设计具体的滤波器进一步加深对滤波器性能的理解; 5.掌握数字心电信号的分析方法,学会系统设计与软件仿真方法; 6.通过本课题的训练,培养学生运用所学知识分析和解决实际问题的能力。

相关主题
文本预览
相关文档 最新文档