C++课程设计--基于选择排序方法的类模板设计与实现

C++课程设计--基于选择排序方法的类模板设计与实现
C++课程设计--基于选择排序方法的类模板设计与实现

成绩评定表

课程设计任务书

摘要

计算机中存储的数据,初始时没有任何排列规律,根据实际需求,经常要排列成有规律的数据序列也就是将数据序列按关键字升序或降序规律排列。

选择排序是排序法中很经典的算法,选择排序法可以分为简单选择排序、树形选择排序和堆排序。

本文采用C++语言实现了选择排序功能,设计了模板类,实现了int型float型和char 型数组的排序,设计了简单选择排序、树形选择排序和堆排序的三个函数体,采用Visual C++ 6.0的控制台工程和MFC工程分别实现了各类型数组的排序,通过对两种程序的测试结果表明:简单选择排序是选择排序的基础,而树形选择排序和堆排序是简单选择排序的改进。

关键词:模板类;简单选择排序;树形选择排序;堆排序;控制台工程;MFC工程。

目录

1 需求分析 (1)

2 算法基本原理 (1)

3 类设计 (3)

4 基于控制台的应用程序 (3)

4.1类的接口设计 (3)

4.2类的实现 (4)

4.3主函数设计 (9)

4.4基于控制台的应用程序测试 (11)

5 基于MFC的应用程序 (12)

5.1基于MFC的应用程序设计 ......................................................... 错误!未定义书签。

5.1.1 MFC程序界面设计 (13)

5.1.2 MFC程序代码设计 (14)

5.2基于MFC的应用程序测试 (21)

结论 (22)

参考文献 (23)

1 需求分析

(1)当进行数据处理时,经常遇到需要进行查找操作,通常希望待处理的数据按关键字大小有序排序,因为这样就可以采用查找效率较高的查找算法。

(2)对有序的顺序表可以采用查找效率较高的折半查找算法,而对无序的顺序表只能采用顺序查找算法。由此可见排序是计算机程序设计中一种基础性操作,研究和掌握各种排序方法是非常重要的。

(3)排序算法对于计算机信息处理很重要,一个好的排序不仅可以使信息查找的效率提高,而且直接影响着计算机的工作效率。

本实验题目为基于选择排序方法的类模板设计与实现,要求建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float等多种数据类型,并对数组元素实现选择类排序。因此实验采用类模板,可以对不同的数据类型的数据进行排序,并通过函数采用不同的方法进行排序。

2 算法基本原理

(1)简单选择排序

从无序的记录序列中选出一个关键字值最小的记录存入到指定的位置。

//简单选择排序

SelectSort(Type ar[])

{

int i,j;

Type t;

for(i=1;i

for(j=i+1;j<=len;j++)

if(array[i]>array[j])

{t=array[i];array[i]=array[j];array[j]=t;}

}

(2)树形选择排序

树形选择排序的基本思想:树形选择排序又称锦标赛排序(Tournament Sort),是一种按照锦标赛的思想进行选择排序的方法。首先对n个记录的关键字进行两两比较,然后在n/2个较小者之间再进行两两比较,如此重复,直至选出最小的记录为止。

(3).堆排序

堆排序由建初始堆和调整堆两个过程组成。再次,所谓筛选是指对一棵左右子树均为堆的完全二叉树,经调整根节点后使之成为堆的过程。建堆时一定要从最后一个非叶子结点开始。

堆排序的关键是调整堆,建初始堆时也是要从最后一个非叶子结点开始向根结点方向进行调整建堆。假设完全二叉树的第i个结点的左子树,右子树已是堆,则对第i个结点进行调整时,需要将r[2i].key与r[2i+1].key之中的最大者与r[i].key 进行比较,若r[i].key较小则与之交换。这有可能破坏下一级的堆,因此,需要继续采用上述方法调整构造下一级的堆。如此反复,直到将以第i个结点为根的子树构成堆为止。

算法:

HeapSort(Type ar[])

{

int i;

Type t; //循环建立初始堆

for(i=len/2;i>=1;i--)

AdjustTree(array,i,len);

//进行n-1次循环,完成堆排序

for(i=len;i>=2;i--)

{t=array[i];

array[i]=array[1];

array[1]=t;

AdjustTree(array,1,i-1);

}

}

3 类设计

从上面的算法分析可以看到,本设计面临的问题的关键是类模板。可以定义一个模板类sort,模板类sort功能有输入,输出数组,用三种方法对数组进行排序。

从问题的需要来看,在模板类中定义三个成员函数。成员函数SelectSort()对数组进行简单选择排序,成员函数tree_select_sort()对数组进行树形选择排序,成员函数HeapSort()对数组进行堆排序。成员函数AdjustTree()通过始建和调整堆辅助堆排序,而成员函数write( ) 和print( ) 输入输出数组。主函数中应用if( ) 判断语句确定数组数据类型,swich()语句选择使用的排序方法。定义了两个对象分别是整型和字符型的。

类用template 限定,其中的数据类型用type代替,所有的成员函数都用template 修饰,使之能适用于多种数据类型。

4 基于控制台的应用程序

整个程序只用一个独立的文档,文件中包含一个模板类,主函数中定义多个对象来实现调用三个成员函数对数组进行简单选择排序,树形选择排序,堆排序这三种排序,在此定义了三个对象分别是整型、字符型和浮点型的。

4.1 类的接口设计

#include

#include

#include

#include

#define num 50

#define M 50

#define MIN_V ALUE -10000

templateclass Sort

public: //外部接口

void AdjustTree(Type ar[],int n,int k);

void write();

void SelectSort(Type ar[]);

void tree_select_sort(Type arr[],int n);

void HeapSort(Type ar[]);

void print();

int len;

Type array[num];

};

在此定义了模板类,类中所有的成员函数和成员变量均定义为public的公有类型,是类的对外接口,数据类型用type代替。成员函数在类中只有函数类型,函数名,参数,对函数进行内部声明,函数体在类体外定义

4.2 类的实现

//简单选择排序

template

void Sort::SelectSort(Type ar[])

{

int i,j;

Type t;

for(i=1;i

for(j=i+1;j<=len;j++)

if(array[i]>array[j])

{t=array[i];array[i]=array[j];array[j]=t;}

}

template

void Sort::tree_select_sort(Type arr[],int n) //树形选择排序

Type tree[M]; // 树

int baseSize; // 当n是2的幂次时,baseSize是n, 当n不是时,baseSize是大于n的最小的2的幂次

// 就是构造成满二叉树的最下层的大小,即叶子数

int i;

Type max; // 最大值

int maxIndex; // 最大数的下标

int treeSize; // 最终这棵树会达到的大小

baseSize = 1;

while (baseSize < n)

{

baseSize *= 2;

}

treeSize = baseSize * 2 - 1;//满二叉树的所有结点个数等于叶子数的2倍减一

for (i = 0;i < n;i++) // 从数组的后面部分开始填充, 不使用tree[0]

{

tree[treeSize - i] = arr[i];

}

for (;i < baseSize;i++) // 用MIN_V ALUE填充tree,直到一共有baseSize个{

tree[treeSize - i] = MIN_V ALUE;

}

// 构造一棵树

for (i = treeSize;i > 1;i -= 2)

{

// 以arr[i]和arr[i + 1]为子结点的数的根是arr[i]和arr[i + 1]中的较大者tree[i / 2] = (tree[i] > tree[i - 1] ? tree[i] : tree[i - 1]);

n = n - 1; //此时的n表示当前tree[1]应该放到arr中的位置

// 不断把树中值为最大值的结点移走,直到n的值为-1

while (n != -1)

{

max = tree[1];

arr[n--] = max;

maxIndex = treeSize;

// 在叶子上找到最大值对应的下标

while (tree[maxIndex] != max)

{

maxIndex--;

}

tree[maxIndex] = MIN_V ALUE;

// 沿着叶子上的结点到根的路径更新

while (maxIndex > 1) // 当结点还有父结点时

{

if (maxIndex % 2 == 0) // 如果值为最大值的结点是左子结点

{

// 用子结点中较大值代替父结点

tree[maxIndex / 2] = (tree[maxIndex] > tree[maxIndex + 1] ? tree[maxIndex] : tree[maxIndex + 1]);

}

else // 如果不是左子结点

{

// 用子结点中较大值代替父结点

tree[maxIndex / 2] = (tree[maxIndex] > tree[maxIndex - 1] ? tree[maxIndex] : tree[maxIndex - 1]);

}

maxIndex /= 2; // 继续处理父结点

}

}

}

template

void Sort::AdjustTree(Type ar[],int k,int n) //调整堆

{

int i,j;

i=k;

j=2*i; //arrau[j]是array[i]的左孩子

Type temp=array[i];

while(j<=n)

{if(j

if(temp

{

array[i]=array[j]; //array[j]调整到双亲结点

i=j;

j=2*i;

}

else break;

}

array[i]=temp;

}

template

void Sort::HeapSort(Type ar[]) //堆排序

{

int i;

Type t;

for(i=len/2;i>=1;i--) //循环建立初始堆

AdjustTree(array,i,len);

for(i=len;i>=2;i--) //进行n-1次循环,完成堆排序{t=array[i];

array[i]=array[1];

array[1]=t;

AdjustTree(array,1,i-1);

}

}

template

void Sort::write() //输入数组

{

int i,l;

printf("请输入数组长度:");

scanf("%d",&l);

len=l;

printf("请输入数组元素:\n");

for(i=1;i<=l;i++)

cin>>array[i];

}

template

void Sort::print() //输出数组

{int i;

printf("排序后的数组为:\n");

for(i=1;i<=len;i++)

cout<

cout<

}

在类的成员函数实现过程中,系统会自动为类产生构造函数,类的构造函数自动调用,为类动态分配了内存空间,整个调用过程中完全是由系统内部完成。成员函数对成员变量进行操作,实现排序功能,通过for( ) 循环,实现输入输出数组元素的功能。

4.3 主函数设计

在程序的主函数部分,选择了分别以int、char和float型为数据类型的对象作为实际例子来验证算法。首先,选择数据类型;然后,通过write( ) 函数对成员变量数组array[ ] 进行赋值,通过swich()语句选择排序方式,用对象调用对应的成员函数实现数组排序;最后,通过print()函数输出排序后的结果。

void main() //主函数

{ int i,j=1;

Sort s;

Sort p;

Sort z;

cout<<"选择输入类型:1.int 2.char 3.float"<

cin>>i;

if(i==1)

{s.write();

cout<<"请选择排序方式:1.简单选择排序 2.树形选择排序 3.堆排序"<

cin>>i;

switch(i)

{

case 1:s.SelectSort(s.array);break;

case 2:s.tree_select_sort(s.array,s.len+1);break;

case 3:s.HeapSort(s.array);break;

default:break;

s.print();}

else if(i==2)

{p.write();

cout<<"请选择排序方式:1.简单选择排序 2.树形选择排序 3.堆排序<

cin>>i;

switch(i)

{

case 1:p.SelectSort(p.array);break;

case 2:p.tree_select_sort(p.array,p.len+1);break;

case 3:p.HeapSort(p.array);break;

default:break;

}

p.print();}

else if(i==3)

{z.write();

cout<<"请选择排序方式:1.简单选择排序 2.树形选择排序 3.堆排序<

cin>>i;

switch(i)

{

case 1:z.SelectSort(z.array);break;

case 2:z.tree_select_sort(z.array,z.len+1);break;

case 3:z.HeapSort(z.array);break;

default:break;

}

z.print();}

}

4.4 基于控制台的应用程序测试(1)用简单选择排序进行int类型的排序

图1 (2)用树形选择排序进行char类型的排序

图2

(3)用堆排序进行float类型的排序

图3

5 基于MFC的应用程序

MFC的图形界面程序设计可在上述类设计的基础上进行改造,MFC的图形界面程序与DOS界面程序的主要不同点是:MFC图形界面程序与DOS界面程序的输入输出方式不同,DOS界面程序采用字符交互式实现数据输入输出,主要通过cin,cout等I/O流实现,而MFC的图形程序界面采用标准Windows窗口和控件实现输入输出,因此必须在MFC类的框架下加入上面所设计的矩阵和方程组类,并通过图形界面的输入输出改造来完成。

5.1.1 MFC程序界面设计

首先在VC中建立MFC AppWizard(exe)工程,名称为1203060128,并在向导的Step1中选择基本对话框,即建立基于对话框的应用程序,如下图4、图5所示。

图4建立MFC AppWizard(exe)工程

图5 建立基于对话框的应用程序

将对话框资源中的默认对话框利用工具箱改造成如下界面,如图6所示。

图6 选择排序方法的实现界面设计

图3所示的界面中包含了2个Static Text控件,3个Button控件,和10个Edit Box 控件, 控件的基本信息列表如下表1所示。

5.1.2 MFC程序代码设计

为了能够将对话框界面上的控件能够与代码联系起来,需要为10个Edit Box 控件建立Member Variables,按Ctrl+w键进入MFC ClassWizard界面,选择Member Variables选项卡,可显示成员变量设置界面,如图7所示。

图7 成员变量设置界面

通过该界面设置与10个Edit Box控件对应的成员变量,具体如表2所示。

表2 控件基本信息

下面是编写代码的重要阶段

(1)简单选择排序

int a[5];

UpdateData(true);

a[0]=m_l1;

a[1]=m_l2;

a[2]=m_l3;

a[3]=m_l4;

a[4]=m_l5;

int i,j,k;

int temp;

int len=5;

for(i=0;i<=len;i++)

{ k=i;

for(j=i+1;j<=len;j++)

if(a[k]>a[j])

k=j;

if(k!=i)

{

temp=a[k];

a[k]=a[i];

a[i]=temp;

}

}

m_l6=a[0];

m_l7=a[1];

m_l8=a[2];

m_l9=a[3];

m_l10=a[4]; UpdateData(false);

(2)树形选择排序

int a[5];

UpdateData(true);

a[0]=m_l1;

a[1]=m_l2;

软件综合课程设计报告模板

(课程设计封皮一页上用已经设置好的宋体四号来填写各个项目。) 计算机软件综合 课程设计报告 学院、系:吉林大学珠海学院计算机科学与技术系 专业名称:2015级软件工程专业课程设计科目:计算机软件综合课程设计 题目:******* 系统 学生姓名:(小组所有成员的学号、姓名) 指导教师: 完成时间:2017年9月—2018年1月

目录 1引言 (4) 1.1编写目的 (4) 1.2背景说明 (4) 2 需求分析 (4) 2.1系统总体目标 (4) 2.2 系统功能 (4) 2.3数据需求 (4) 2.3数据流图 (5) 3 数据库概念结构设计 (5) 3.1系统E-R模型 (5) 3.2模块E-R模型 (5) 4 数据库逻辑结构设计 (5) 4.1 逻辑结构设计 (5) 4.2物理结构设计 (6) 5 安全性设计 (6) 5.1 身份验证模式 (6) 5.2 登陆管理 (6) 5.3 权限管理 (6) 6 源代码及其实现 (7)

5.1 系统开发技术 (7) 5.2 模块1设计及其实现 (7) 5.3 模块2设计及其实现 (7) 7 总结 (7) 6.1 课程设计心得体会 (7) 6.2 建议 (7) 8 参考文献 (7)

题目(三号,黑体,居中) 说明:一组只写一份报告,即下面内容,自己也可以根据实际情况进行调整和补充。 每个人写一份《课程设计成绩评定表》附在后面。 1引言 1.1编写目的 1.2背景说明 1.系统名称:公交查询系统 2.该项目的提出者:************ 3.开发者:********** ********* 4.运行该软件的单位:公交公司及广大乘客 2需求分析 2.1系统总体目标 2.2 系统功能 详细阐述系统的用户类型及其所属主要功能 2.3数据需求 根据系统功能整理出出系统中和数据相关的信息,要列出数据的详细信息。

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

数据结构课程设计-排序

一、问题描述 1、排序问题描述 排序是计算机程序设计的一种重要操作,他的功能是将一组任意顺序数据元素(记录),根据某一个(或几个)关键字按一定的顺序重新排列成为有序的序列。简单地说,就是将一组“无序”的记录序列调整为“有序”的记录序列的一种操作。 本次课程设计主要涉及几种常用的排序方法,分析了排序的实质,排序的应用,排序的分类,同时进行各排序方法的效率比较,包括比较次数和交换次数。我们利用java语言来实现本排序综合系统,该系统包含了:插入排序、交换排序、选择排序、归并排序。其中包括: (1)插入排序的有关算法:不带监视哨的直接插入排序的实现; (2)交换排序有关算法:冒泡排序、快速排序的实现; (3)选择排序的有关算法:直接选择排序、堆排序的实现; (4)归并排序的有关算法:2-路归并排序的实现。 2、界面设计模块问题描述 设计一个菜单式界面,让用户可以选择要解决的问题,同时可以退出程序。界面要求简洁明了,大方得体,便于用户的使用,同时,对于用户的错误选择可以进行有效的处理。 二、问题分析 本人设计的是交换排序,它的基本思想是两两比较带排序记录的关键字,若两个记录的次序相反则交换这两个记录,直到没有反序的记录为止。应用交换排序基本思想的主要排序方法有冒泡排序和快速排序。 冒泡排序的基本思想是:将待排序的数组看作从上到下排列,把关键字值较小的记录看作“较轻的”,关键字值较大的纪录看作“较重的”,较小关键字值的记录好像水中的气泡一样,向上浮;较大关键字值的纪录如水中的石块向下沉,当所有的气泡都浮到了相应的位置,并且所有的石块都沉到了水中,排序就结束了。 冒泡排序的步骤: 1)置初值i=1; 2)在无序序列{r[0],r[1],…,r[n-i]}中,从头至尾依次比较相邻的两个记录r[j] 与r[j+1](0<=j<=n-i-1),若r[j].key>r[j+1].key,则交换位置; 3)i=i+1; 4)重复步骤2)和3),直到步骤2)中未发生记录交换或i=n-1为止; 要实现上述步骤,需要引入一个布尔变量flag,用来标记相邻记录是否发生交换。 快速排序的基本思想是:通过一趟排序将要排序的记录分割成独立的两个部分,其中一部分的所有记录的关键字值都比另外一部分的所有记录关键字值小,然后再按此方法对这两部分记录分别进行快速排序,整个排序过程可以递归进行,以此达到整个记录序列变成有序。 快速排序步骤: 1)设置两个变量i、j,初值分别为low和high,分别表示待排序序列的起始下

模电课程设计报告

模电课程设计报告 It was last revised on January 2, 2021

模拟电路课程设计 题目:OCL功率放大器 学院:信息学院 专业:自动化 班级学号: 学生姓名: 指导教师;

目录

一、课程设计任务及要求 1、设计目的 ①学习OCL功率放大器的设计方法 ②了解集成功率放大器内部电路工作原理 根据设计要求,完成对OCL功率放大器的设计,进一步加强对模拟电子技术的了解 ④采用集成运放与晶体管原件设计OCL功率放大器 ⑤培养实践技能,提高分析和解决实际问题的能力 2、设计指标 ①频率响应:50Hz≤f≤20KHz ②额定输出功率:P o=8W ③负载电阻:R L=8Ω ④非线性失真尽量小 ⑤输入信号:U i<=100mv

3、设计要求 (1)进行方案论证及方案比较 (2)分析电路的组成及工作原理 (3)进行单元电路设计计算 (4)画整机电路图 (5)写出元件明细表 (6)小结和讨论 (7)写出对本设计的心得体会 分析设计要求,明确性能指标;查阅资料、设计方案分析对比。 4、制作要求 论证并确定合理的总体设计方案,绘制结构框图。 5、OCL功率放大器各单元具体电路设计。 总体方案分解成若干子系统或单元电路,逐个设计,计算电路元件参数;分析工作性能。

6、完成整体电路设计及论证。 7、编写设计报告 写出设计与制作的全过程,附上有关资料和图纸,有心得体会。 二、总体方案设计 1、设计思路 功率放大器的作用是给负载R l提供一定的输出功率,当R I一定时,希望输出功率尽可能大,输出信号的非线性失真尽可能小,且效率尽可能高。放大电路实质上都是能量转换电路。从能量控制的观点来看,功率放大电路和电压放大电路没有本质的区别。但是,功率放大电路和电压放大电路所要完成的任务是不同的。对电压放大电路的主要要求是使其输出端得到不失真的电压信号,讨论的主要指标是电压增益,输入和输出阻抗等,输出的功率并不一定大。而功率放大电路则不同,它主要要求获得一定的不失真(或

综合课程设计报告

综合课程设计报告

摘要 本报告介绍了一个运用c++设计一个个人的记账软件具体过程。实现了添加、查询、删除、修改等功能。能够大致的记录个人的收入支出情况。 开发背景 个人理财在中国得到大众的认可和金融机构的重视是近几年的事情。人们对个人理财的重视程度,与我过市场经济制度不断完善、资本市场的长足发展、金融产品的日趋丰富以及居民总体收入水平的上升等等是分不开的。可是比起发达国家我们的理财观念还远远不足。 可是理财并不困难,并非非要靠个人理财专业人士的建议才能身体力行。只要了解收支状况、设定财务目标、拟定策略、编列预算、执行预算到分析成果这六大步骤,便能够轻松的达成个人的财务管理。至于要如何预估收入掌握支出进而检讨进则有赖于平日的财务记录,也就是需要一款便于记账的软件。 最近越来越多的人具有记账的习惯。家庭、个人的收入支出结构在日益变化,单纯的靠本子记录收入支出无法满足对于收入支出结构的统计分析,因此以个人用户为目标的记账软件应运而生。相应的各种面向家庭以及个人的理财软件也越来越多。可是众多个人理财软件操作专业,对于个人用户而言功能过于强大,分析

数据用语也不易理解。因此开发一个操作简便、统计结果直观并对个人用户理财有参考价值的记账软件无疑能为广大个人用户提供方便。 总而言之,在不久的将来家庭使用理财软件也将成为国内家庭的必须品。能提供简单明了的功能以及操作的记账软件更是被广泛需要。这种软件也会为提升人们的胜过品质发挥它最大的作用。 技术背景 C语言是国内广泛使用的一种计算机语言,学会使用c语言进行程序设计是计算机工作者的一项基本功。对于我们大学生来说,学习这样一门c程序课程更是有必要。此次课程设计我所采用的环境是vc++,使用基本控制结构,如循环和选择,着重实现管理系统的增删改以及查询等典型的功能。程序设计是一门实践性很强的课程,既要掌握概念又要动手编译,更多的是要上机去调试,虽然初学时很麻烦,可是养成习惯后我相信受益匪浅。 开发环境 Vc++,win7. 设计目标 为了满足用户的需要,本系统将实现以下功能: 记录日常收支情况,查找某天的收支情况,插入忘记的收支功

C语言课程设计题目

C语言课程设计 题目1:学生成绩统计管理 1、输入一个班级的学生的基本信息(包括学号,姓名,性别,5门课程成绩)。 2、按姓名或者学号查找、修改、删除和保存各个学生的信息。 3、计算每个学生各门功课总分和平均分,按学号或总分排序输出每个学生 的基本信息及总分、平均分和名次。 4、计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生 的学号,姓名,性别,科目,成绩。 5、显示每门科目中,成绩在90分以上的学生信息,以及每门科目中不及格 的学生信息。 6、用菜单进行管理 7、只有正确输入用户名密码才能使用此系统。 8、所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。 题目2:物业费管理系统 1、新住户信息的添加。(户主姓名、性别、身份证号、联系电话、楼号、 单元号、房号、平米数、每平米物业价格、应缴纳物业费,备注信息) 2、修改住户信息的功能。 3、删除住户信息的功能。 4、应缴物业费自动生成。每月1号,自动生成本月份的物业费。如果该住 户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该 用户应缴纳的物业费。 5、缴费功能。根据用户缴纳金额,修改“应缴纳物业费”。 6、统计功能。 1)能够按楼号分类统计所有未交清物业费的记录。 2)能够按拖欠款项多少,对所有用户信息进行从大到小排序。 7、用菜单进行管理 8、只有正确输入用户名密码才能使用此系统。 9、所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。 题目3:会员卡计费系统 设计一个会员卡计费管理系统。 1、新会员登记。(将会员个人信息及此会员的会员卡信息进行录入。) 2、会员信息修改。 3、会员续费。(会员出示会员卡后,管理人员根据卡号查找到该会员的信 息并显示。此时可以进行续费,续费后,提示成功,并显示更新后的信 息。) 4、会员消费结算。(会员出示会员卡后,管理人员根据卡号查找到该会员 的信息,结算本次费用。提示成功,并显示更新后的信息。)累计消费 满1000元,及自动升级为VIP会员。之后每次消费给予9折优惠。 5、会员退卡。(收回会员卡,并将余额退还,删除该会员信息。) 6、会员卡挂失。(为该会员补办新卡,并将旧卡余额转至新卡。) 7、用菜单进行管理 8、统计功能。

综合课程设计

可用C++(Visual C++ 6.0),JA V A(JSP,STRUTS),C#(https://www.360docs.net/doc/033250043.html, ,Visual Studio 2005),试题目而定。 1、综合购物频道(限最多3人选) 项目描述:是一个在线销售系统,是一个B-C模式的电子商务系统,由前台的B/S模式购物系统和后台的C/S模式的管理系统两部分组成。该电子商务系统可以实现会员注册、浏览商品、查看商品详细信息、选购商品、取消订单和查看订单等功能,前台系统的详细功能。目的:了解项目开发的一个基本流程以及如何运用现行的框架搭建一个大型的综合型系统2、某大型企业内部OA(限最多3人选) 项目描述:采用网络办公自动化系统,不仅能快速提高企业的运作效率,节省大量的办公费用,能全面提升企业的核心竞争力和生产力以及提高工作效率。该企业内部OA系统采用模型组件与WEB技术结合的方式,具有强大的功能,广泛的适用性、可靠安全性和可扩展性。目的:学习运用当前热门的前台技术。 3、产品展示厅(限最多3人选) 项目描述: 在互联网发达的今天,当您想客户宣传自己的产品时,最好的方式是拥有自己的网站,通过网络来传播和展示您的产品信息。产品展示系统,为客户详细介绍自己的产品,提供了一个功能强大的平台。 系统界面友好、功能强大、操作简便,用户可以方便迅速掌握系统的操作。 4人事管理系统(限最多3人选) 项目描述:人事档案完整资料、人事分类管理(员工户口状况、员工政治面貌、员工生理状况、员工婚姻状况、员工合同管理、员工投保情况、员工担保情况)、考勤管理、加班管理、出差管理、人事变动管理(新进员工登记、员工离职登记、人员变更记录)、员工培训管理(员工培训、员工学历)、考核奖惩、养老保险等几大模块。系统具有人事档案资料完备,打印灵活,多样、专业的报表设计,灵活的查询功能等特点。 主要技能:掌握项目的开发流程:需求分析、详细设计、测试等;熟悉VC的多文档的开发技能和技巧;利用ADO技术操作SQL Server数据库;掌握数据库的开发和操作技能。 5、即时通讯系统(限最多3人选) 项目描述:系统采用UDP协议,具有:收发在线和离线消息、添加/删除好友、服务器端存储好友列表、在客户端存储好友资料和聊天记录、添加/删除好友组、可以群发消息、收发文件等功能。 主要技能:掌握项目的开发流程:需求分析、详细设计、测试等;熟悉VC的网络通信的开发技能和技巧,包括:TCP和UDP协议、线程等;利用ADO技术操作SQL Server数据库; 6、推箱子(限最多3人选) 【规则】本游戏的目的就是把所有的箱子都推到目标位置上。箱子只能推动而不能拉动。一次只能推动一个箱子。 经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道~! 7、贪吃蛇(限最多3人选) 【规则】: A 用键盘的方向键控制蛇的上下左右移动。 B 游戏分为三种难度,SLUG为慢速,每吃一朵花得1分;WORM 为中速,每吃一朵花得2分;PYTHON为快速,每吃一朵花得3分。 C 游戏目标:操纵屏幕上那条可爱的小蛇,在黑框中不停吃花,而每吃一朵

模电课程设计

院系:电气工程学院 专业:电气工程及其自动化班级:电自1041班 姓名: 学号:号 指导教师:刘强 2011年11月26日

目录 第一章绪论 第二章系统总体方案设计 2.1功率放大电路 (3) 2.1.1功率放大电路的特点及主要研究对象 2.1.2功率放大电路提高效率的主要途径 2.1.3功率放大电路的工作原理 2.2音频功率放大系统 (5) 2.2.1音频功率放大器的工作原理 2.2.2音频功率放大电路 2.2.3音频功率放大电路的方案 第三章元器件的介绍 3.1LM386 (7) 3.2电容 (9) 3.3BJT9013 (10) 3.4扬声器 (10) 第四章PCB板的布局 4.1PCB布局 (12) 第五章硬件焊接技术及产品调试 5.1硬件的焊接 (14) 5.2产品的调试 (15) 第六章总结与心得 第七章致谢 附录一:参考文献 附录二:原理图

第一章绪论 随着科学技术的发展,电子技术产品给人们的生活带来了许多方便。工农业生产,科学研究,商贸金融,社会管理及至人们日常生活等都离不开电子技术。机械,材料,信息,微电子,生物,能源,测控,仪器仪表,航天,海洋等几乎所有的科学技术领域都与电子技术密切相关。 功率放大器实机电一体化产品中不可缺少的部分,也是其最基本的部分。功率放大器是机电一体化产品中不可缺少的部分,也是其最基本的部分。功率放大器发展至今,有许多种类和应用,在工业方面,有数控机床的电机驱动,有应用于新型磁轴承开关,也有在电力电子控制技术种的应用。在通讯方面,有几百毫瓦的蜂窝电话发射机、有基站几十瓦的功率放大器、也有上千瓦的电视信号发射机。但所有的功率放大器,其设计所遵循的基本规律几乎是相同的。而它的设计包含了电子电路技术、模拟控制理论、测试技术以及实现智能化的单片机控制技术等。 经过对电路和模电知识的学习,掌握了基本电路的组成,及基本电路元件的功能,设计和工作原理,使自己具有基本的电路设计技能,设计并制作一个音频放大器。本次音频放大器设计制作的核心原件使芯片LM386。LM386放大器是一种很流行的固定增益的功率放大器,它能提供大多3W的交流信号功率输出,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。

综合设计报告(模板)

课程设计说明书 课程名称:《综合课程设计》 设计题目:某化纤毛纺织厂全厂总配电所 及配电系统设计 学生姓名:张三 学号: 201107011153 院系:机械与控制工程学院 专业年级:2011级机械制造与自动化专业 指导教师:李四 2016年6月5日

中国石油大学胜利学院《综合课程设计》课程设计说明书 目录 1 原始资料分析 (1) 1.1工程情况分析 (1) 1.2电力系统情况分析 (1) 1.3负荷情况分析 (1) 1.4环境条件分析 (1) 2 设计说明部分 (2) 2.1主接线设计 (2) 2.2变压器 (2) 2.2.1 变压器形式的选择 (2) 2.2.2 变压器台数和容量的确定 (2) 3 设计计算部分 (3) 3.1变压器的选择 (3) 3.2短路计算 (3) 3.2.1 短路电流计算的目的 (3) 3.2.2 短路电流计算方法 (4) 3.2.3 三相短路电流计算 (4) 3.3电气设备选择计算 (7) 3.3.1 选择电气设备原则 (7) 3.3.2 校验电气设备原则 (8) 4.3.3 设备选择及校验 (9) 3.3.4 母线的选择 (12) 3.4继电保护计算 (13) 3.4.1 主变压器继电保护配置与整定 (13) 3.4.2 输电线路继电保护 (17) 3.4.3 站用电设计 (20) 3.5防雷及接地计算 (20) 3.5.1 防雷 (20) 3.5.2 接地计算 (22)

中国石油大学胜利学院《综合课程设计》课程设计说明书 4 结果与结论 4.1 设计结果 4.2 设计结论

中国石油大学胜利学院《综合课程设计》课程设计说明书 1 原始资料分析 1.1 工程情况分析 待设计变电站的电源,由双回220kV线路送到本变电站;在中压侧110kV侧送出8回线路;在低压侧35kV母线,送出10回线路;在本站220kV母线有3回输出线路。 1.2 电力系统情况分析 确定本变电站的电压等级为220/110/35kV,220kV是本变电站的电源电压,110kV 和10kV是二次电压。 1.3 负荷情况分析 110kV侧有8回出线,最大负荷为200MW,cosθ=0.85,一、二类负荷各占50%,每回负荷按25MW考虑,出线最长一回为30km;35kV侧有10回出线,最大负荷为70MW,cosθ=0.8,一、二类负荷各占50%,每回负荷按7MW考虑,出线最长一回为30km。系统的阻抗标幺值为0.018。 1.4 环境条件分析 该变电站年最高气温42℃,年最低气温-10℃,平均气温20℃,年最热月平均气温30℃,年雷暴日为30天,土壤性质以砂质粘土为主。 该变电站位于市郊生荒土地上,地势平坦、交通便利、环境无污染。 1

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

《HTML网页编程技术综合课程设计》教学实施方案

《HTML网页编程技术综合课程设计》教学实施方案

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

《网页编程技术综合课程设计》教学方案 一、课程设计目标 通过该课程设计综合应用本学期所学的网页制作知识,全面建立对网站的认知,建立网站设计与网页制作的基本思想;学会网站功能规划、网站布局、网页制作、网页配色等的基本技巧,掌握网页制作与网站设计相关软件的使用方法;通过课程设计教学环节能够制作有一定实用性的网站;能解决一些实际应用问题并以此为基础进一步扩展到相关的学科上;通过本课程设计提高网页的审美意识;通过团队合作制作网站,培养团队协作精神,初步了解软件企业开发软件系统模式,为将来适应工作打开良好的基础。 二、设计要求 1.本课程设计分小组进行,各小组成员原则上2~4人,不得超过4人,由小组长协调分工,每个组员充分发挥团队协作精神。 2.自选主题,使用Dreamweaver网页设计与制作软件,设计并制作一个内容完整、结构规范合理的静态网站,要求选取内容健康,网站中出现一定数量的图像和多媒体。网站主题应大小适中、内容健康、具有时代气息;网站提供的信息应与网站主题相符合, 主题突出、内容丰富; 3.页面设计合理、美观,有创意,适用于各种显示器的分辨率和颜色。 4.每个页面都要求有导航条和页脚信息,需要将这些信息制作成库项目,然后根据需要将之插入到模板或其它页面中。各个页面都要有标题,而且布局要合理、美观、大方。布局网页时要尽量主流布局方法(必须使用Div、表格等),并要有一定复杂度。 5.页面中需要有文字、图像、多媒体、超链接等,要求达到图文并茂的效果。所使用的文字的大小、字体和颜色要认真处理,除非特殊需要,不能出现空链接,文字不能简单用截图代替;所需图像和多媒体素材尽量自己设计,如有下载,自己必须再作处理,不得直接使用现有商业网站标志。 6. 为了保证页面的设计效果更好地兼容各种浏览器以及便于改版,要求用独立的CSS文件设置页面内容格式。 7.为主页添加背景音乐。 8.需要使用一定量的JavaScript脚本,使网页具有一定的交互功能。每小组必须制作一个表单,表单输入内容需要使用正则表达式进行验证。

模电课程设计范本

模电课程设计

1 绪论 功率放大器(简称功放)的作用是给音频放大器的负载RL(扬声器)提供一定的输出功率。当负载一定时,希望输出的功率尽可能大,输出信号的非线性失真尽可能地小,效率尽可能高。音频放大器的目的是以要求的音量和功率水平在发声输出元件上重新产生真实、高效和低失真的输入音频信号。音频频率范围约为20 Hz~20 kHz,因此放大器必须在此频率范围内具有良好的频率响应。本设计中要求设计一个实用的音频功率放大器。在输入电压=50mV,负载电阻等于8Ω的条件下最大输出不失真功率P o≥5W,功率放大器的频带宽度BW≥50Hz~15KHz。 一、设计目的 根据设计要求,完成对音频功率放大器的设计。 进一步加强对模拟电子技术知识的理解和对Protel软件的应用。 了解集成功率放大器内部电路工作原理,掌握其外围电路的设计与主要性能参数的测试方法。 学习音频功率放大器的设计方法与小型电子线路系统的安装调试方法。 二、设计要求 内容:设计并制作一OCL音频功率放大器和与之匹配的直流

稳压电源。 指标:P oM≥5W; fL≤50Hz,fH≥15KHz; 中点电位≤100mV; 负载:8Ω; 输入电压50mV。 三、方案选择 音频功率放大器的主要作用是向负载提供功率,要求输出功率尽可能大效率尽可能高、非线性失真尽可能小。 输出功率指的是功放提供给负载级的功率,为达到这一要求,功放管的电压和电流变化范围应尽可能大。 功率放大器的效率指的是负载上得到的功率与电源提供的直流电源的功率之比,为达到这一要求必须选择合适的电路,下文中会有描述。 非线性失真要小:功率放大器是在大信号状态下工作的,电压、电流摆动幅度交大,很容易超出管子特性曲线的线性变化范围而进入非线性区,造成输出信号波形的非线性失真。因此,功率放大器比小信号的电压放大器的非线性失真严重。为了减小这种失真,本设计选择下文所述方案。 功率放大器的常见电路形式有单电源供电的OTL电路和正负双电源供电的OCL电路。有集成运放和晶体管组成的功率放大器,也有专用集成电路功率放大器芯片。根据设计指标及要求,

C课程设计题目

C课程设计题目 一、工资管理系统 1、需求分析 工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。 2、总体设计 整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。 3、详细设计 工资信息采用结构体数组: Struct Salary_Info { int Card_No; //工资卡号 Char name[20]; //姓名 int month; //月份 float Init_Salary; //应发工资 float Water_Rate; //水费 float Electric_Rate; //电费 float Final_Salary; //实发工资 }SI[MAX]; //SI[MAX]中每个数组元素对应一个职工工资信息 (1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。 (2)输入模块 按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息。 (3)添加模块 增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式。 (4)浏览模块 通过菜单选择按照工资卡号还是姓名浏览。如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。 (5)排序模块 排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。排序方法可以选择冒泡排序、插入排序、选择排序等。 (6)查询模块 实现按照工资卡号和姓名的查询,采用基本的查找方法即可。 二、学生学籍信息管理系统设计 1、需求分析 学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。

数据结构课程设计之综合排序代码及使用方法

题目1: 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求: 1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结 果保存在不同的文件中。 2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 代码如下: #include //标准输入输出头文件 #include //定义杂项函数及内存分配函数 #include //字符串处理 #include //定义关于时间的函数 #define N 20000 clock_t Start,Now;//时钟 void Wrong()//错误输出 { printf("\n*****按键错误!请重新输入*****\n"); getchar();//从标准输入获取字符并返回下一个字符 } void change(int a[])//十个一行输出 { int i; system("cls");//清除之前的操作 for(i=0;i

模电课程设计题目范例

以下课程设计题目仅供参考,不供选择,请同学们按照感兴趣的方向自己拟定题目及要求,不得与以下题目完全相同。 一、音频功率放大器 1、指标要求: 设计并制作一OCL音频功率放大器并设计制作与之匹配的直流稳压电源。指标:PoM≥5W,fL≤50Hz,fH≥15KHz,中点电位≤100mV。负载:8Ω。以上指标“=”者为及格。输入电压50mV。 2、约束:不能采用音频功放集成电路(扬声器可用8.2Ω电阻代替) 二、串联型直流稳压电源的设计 在输入电压220V 50HZ电压变化范围±10%条件下: ①输出电压可调范围:+9 ~ +12V; ②最大输出电流:300mA; ③测出设计电路的输出电阻(输入电压变化范围±10%下,满载)。 ④测出设计电路的稳压系数( 最低输入电压下,满载),并将稳压系数减到最小。 ⑤学习Mutisim的电路仿真过程,绘制电路图,进行基本的仿真实验对设计的电路进行性能分析 三、温度测量电路 (1) 温度测量范围:-40oC~+125oC.(2) 灵敏度:1mV/ oC(3) 测量精度: ±1oC(4) 工作电压:±5V(5) 测量某处的温度值并转换为0~5V的电压 四、双工对讲机的设计与制作 采用集成运放和集成功放及阻容元件构成对讲电路,实现甲乙双方异地有线通话对讲;用扬声器兼作话筒和喇叭,双向对讲,互不影响;电源电压+5V,功率〈=0.5W,工作可靠,效果良好! 五、声光控制灯感应系统 输入:光强信号、声音信号 输出:开关信号 逻辑:在满足光强(不足)条件下,输入声音信号时,输出“开”信号并延时,自动关断;光强足够时,封锁输出或封锁声音检测电路 要点:光强信号检测要考虑排除脉冲信号干扰,如雷电、爆竹、拍照等闪光,可以通过对光强检测信号的简单滤波达到目的,滤波时间常数为秒级即可 构成:光强检测可以用光电三极管、光电二极管或光敏电阻,电阻成本最低 声音检测用驻极体拾音器,最好设音频选择元件,LC滤波 信号放大、处理,可以用集成运放或比较器,简单的用555电路 驱动可以是三极管驱动小型直流继电器 工作电源,用小型电源变压器+整流+滤波+三段稳压器

人力资源管理综合课程设计报告.

以下txt及图片内容摘取自《人力资源管理综合课程设计报告河南理工大学经济管理学院 09级人力资源管理专业综合课程设计报告 学 院:经济管理学院 专 业:人力资源管理 班 级: 09-1班 姓 名: 姚贺龙 学 号:

综合管理课程设计是我们人力资源管理教学计划的重要组成部分,是锻炼我们理论联系实际、提高专业实际操作水平以及发现问题、分析问题和解决问题能力的集中教学环节。通过结合以前的实习经验和自己的努力刻苦,经过三周的紧张学习,现根据要求书写这一综合课程设计报告。 一、华为技术有限公司基本情况分析 (一)公司简要介绍 华为技术有限公司是一家总部位于中国广东深圳市的生产销售电信设备的员工持股的民营科技公司,总裁任正非,董事长孙亚芳。它1988年成立的时候,是个只有两万元注册资本、20个员工,唯一的资源是人的头脑的默默无名的小公司。20世纪末,旋风一样席卷了国内市场,研发投入与回报间的漫长周期带来了巨大的风险,但他每次都能披荆斩棘,昂首阔步的走下去。可是行业的冬天给这位领军者造成了巨大的伤害,但他没有倒下去,押上命运的决心,把上亿资金、上千人员投入了新的项目。2002年,它拥有员工22000多人,2003年销售额达到317亿元。到今天,它是行业内的领军者,在国内市场占领了巨大的份额,并已经展开国际发展的征程。这个时候,世界第一的思科已紧张地盯着它的主要竞争对手。(二)公司目标体系 愿景:丰富人们的沟通和生活。 使命:聚焦客户关注的挑战和压力,提供有竞争力的通信解决方案和服务,持续为客户创造最大价值。 战略:以客户为中心。 为客户服务是华为存在的唯一理由;客户需求是华为发展的原动力。 质量好、服务好、运作成本低,优先满足客户需求,提升客户竞争力和赢利能力。 持续管理变革,实现高效的流程化运作,确保端到端的优质交付。 与友商共同发展,既是竞争对手,也是合作伙伴,共同创造良好的生存空间,共享价值链的利益。 (三)公司价值观 “管理上学习日本,技术上瞄准美国,始终以世界一流的为目标,为民族通信工业作贡献”的经营观。 (四)公司组织文化 华为秉承了其总裁任正非的众多思想,如“毛泽东思想”、“狼性文化”、“军事化管理”等一系列新式的企业管理文化,华为人认为,企业文化离不开民族文化与政治文化,中国的政治文化就是社会主义文化,华为以高中层管理者的行为带动全体员工的进步。坚持为祖国昌盛、为民族振兴、为家庭幸福而努力奋斗的双重利益驱动原则。团结协作、集体奋斗是华为企业文化之魂。 (五)公司组织结构 水平式组织结构,不同部门负责不同业务。 (六)产品研究开发

[C语言课程设计题目](丁海军)

C语言课程设计设计题 丁海军 本手册提供的设计题大致可分为为3类:第一类侧重于算法设计与实现;第二类侧重于文件操作。 (一)算法设计类题目 1. Fibonacci数列。Fibonacci数列的计算公式如下: fib(1) = 1; fib(2) = 1; fib(n) = fib(n-1) + fib(n-2); //对大于等于3的任意n (1)简单变量“数据平移”方法计算Fibonacci数列的第n项(正整数n通过键盘输入):说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。而后通过“old1=old2; old2=newItem;”进行所谓的“数据平移”。接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。 (2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上:说明数组f用来存放Fibonacci数列的各项之值,且仅初始化前两个元素f[0]=1,f[1]=1,而后通过f[i]=f[i-2]+f[i-1];依次计算出f[2]到f[n-1](注意f[n-1]恰为所要求出的第n项)并将该值显示在屏幕上。 2.编程序,循环进行如下的处理过程:由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。直到用户回答说不再继续做了时结束程序。 提示:可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;而后通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。 3.数的进制转换 (1)将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。 提示:用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w (2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value 上,最后输出该value。 (2)如何把8进制数或16进制数化为10进制数。 (3)如何把某一个k进制的数化为10进制数呢? 4.编程序,输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。

综合课程设计1题目2016-2017.2

综合课程设计1 一、考核方法和内容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%以上; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在10—15页内,报告中不能全是代码,报告中代码总量控制在3页内。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的具体内容 1.想要优,必须实现“提高部分”的功能,但,实现“提高部分”不代表一定优; 2.其他成绩,不用完成“提高部分”。 要求:全部采用数据结构课程中的内容实现,采用C或C++实现,逻辑结构只能选线性结构、树型结构、图型结构、集合结构中的一种,不能用数据库。 1、算术表达式求解 基本要求:给定一个算术表达式,通过程序求出最后的结果。 (1)从键盘输入要求解的算术表达式; (2)采用栈结构进行算术表达式的求解过程;

电子线路综合课程设计分析方案模板

东北石油大学课程设计 2018年7月7日

东北石油大学课程设计任务书 课程电子线路综合课程设计 题目温度报警器设计 专业电子信息工程姓名董奕辰学号120901140410 主要内容、基本要求、主要参考资料等 主要内容: 设计一个环境温度监测报警电路,通过对温度报警电路的设计、安装和调试,掌握温度报警电路的工作原理和运算放大器在实际电子电路中的应用。 基本要求: 1.当温度在15℃~30℃范围内<允许误差±1℃)时,报警器不发声。 2.当温度高于30℃时,报警器发出两种频率交替的“滴—嘟、滴—嘟”声响。 3.当温度低于15℃时,报警器发出间歇式声响。 4.可用5~15V直流稳压电源供电。 5.在保证性能的前提下,尽量减少功耗,降低成本。 主要参考资料: [1] 童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001. [2] 彭介华.电子技术课程设计指导[M].北京:高等教育出版社,1997. [3] 孙梅生.电子技术基础课程设计[M].北京:高等教育出版社,1998. 完成期限 2018年7月7日 指导教师 专业负责人 2018 年 6 月 28 日

东北石油大学课程设计任务书 课程电子线路综合课程设计 题目电网电压异常报警器设计 专业姓名学号 主要内容、基本要求、主要参考资料等 主要内容: 设计一个电网电压异常报警电路,掌握电网电压异常报警电路的工作原理。 基本要求: 1.用压电陶瓷蜂鸣片作为电声元件。 2.设电网电压的正常波动范围为190~250V<单相交流有效值),在此范围内,报警器不发声。 3.当电网电压高于250V<误差不超过±5V)时,报警器发出两种频率交替的“滴—嘟、滴—嘟”声响。 4.当电网电压低于190V<误差不超过±5V)时,报警器发出间歇式声响。 主要参考资料: [1] 童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001. [2] 彭介华.电子技术课程设计指导[M].北京:高等教育出版社,1997. [3] 孙梅生.电子技术基础课程设计[M].北京:高等教育出版社,1998. 完成期限 2018年7月7日 指导教师 专业负责人 2018 年 6 月 28 日

相关文档
最新文档