数据结构_各种内排序性能比较_课程设计报告纯代码版

数据结构_各种内排序性能比较_课程设计报告纯代码版
数据结构_各种内排序性能比较_课程设计报告纯代码版

数据结构课程设计报告

题目:各种内排序性能的比较

学生姓名:

学号:

班级:

指导教师:

2012-6-10

实现部分

各个核心算法的代码:

#include

#include

using namespace std;

const int M=100;

int compareN=0,changeN=0; //快速排序中元素比较的次数和交换的次数

int compareN1=0,changeN1=0,K=0; //合并排序中元素比较的次数和交换的次数

void display(int r[], int n)

{

for(int i=0;i

{

cout.width(4);

cout<

}

cout<

}

void insertsort(int r[],int n) //直接插入法排序

//待排序元素用一个数组r表示,数组有n个元素

{

int a=0,b=0,k=1;//a表示元素比较的次数,b表示元素交换的次数,k 表示趟数

cout<<"插入排序的每一次的结果如下:"<

cout<<"初始状态:";

display(r,n);

for(int i=1;i

{

int temp=r[i]; //把待排序元素赋给temp

int j=i-1;

while((j>=0)&&(temp

{

a++;

r[j+1]=r[j];j--; //顺序比较和移动

}

a++;

r[j+1]=temp;

b++;

cout<<"第"<

k++;

display(r,n);

}

cout<<"\t\t\t\t -->元素比较次数为

"<

cout<<"\t\t\t\t -->元素交换次数为"<

}

void bubblesort(int r[],int n) //冒泡排序

{

int a=0,b=0,k=1,flag=1; //当flag=0时停止排序(flag用于判断元素是否进行过交换)

cout<<"冒泡排序的每一次的结果如下:"<

cout<<"初始状态:";

display(r,n);

for(int i=1;i

{

flag=0; //开始时元素未交换

for(int j=n-1;j>=i;j--)

{

a++;

if(r[j]

{

//发生逆序

int t=r[j];

r[j]=r[j-1]; //元素后移

r[j-1]=t;flag=1; //交换,并标记发生了交换

b++;

}

flag=1;

if(flag==0)break;

}

cout<<"第"<

k++;

display(r,n);

}

cout<<"\t\t\t\t -->元素比较次数为"<

cout<<"\t\t\t\t -->元素交换次数为"<

}

void selectsort(int r[],int n)//直接选择排序

{

int i,j,m,t,a=0,b=0,k=1;

cout<<"选择排序的每一次的结果如下:"<

cout<<"初始状态:";

display(r,n);

for(i=0;i

{

m=i;

for(j=i+1;j

if(r[j]

{

a++;

m=j;

}

if(m!=i) //找到最小的后与前面的交换,以此类推

{

t=r[i];

r[i]=r[m];

r[m]=t;

b++;

}

cout<<"第"<

k++;

display(r,n);

}

cout<<"\t\t\t\t -->元素比较次数为"<

cout<<"\t\t\t\t -->元素交换次数为"<

}

//递归形式的快速排序

void quicksort(int r[],int left,int right,int n)//快速排序,递归调用,使用全局变量,结果在main函数中实现

{

int i=left,j=right,k=1;

int temp=r[i];

while(i

{

while((r[j]>temp)&&(j>i))//同时满足两个条件时才会执行j--,即向前移动j,并且如果没有发现r[j]中没有比temp小的则当i=j时停止{

compareN++; //compareN用于快速排序中计算元素比较的次数

j=j-1;

}

if(j>i) //r[j]中存在比temp小的值

{

r[i]=r[j];

i=i+1;

changeN++; //changeN用于快速排序中计算元素交换的次数

cout<<"第"<

K++;

display(r,n);

}

while((r[j]<=temp)&&(j>i))

{

compareN++;

i=i+1;

}

if(i

{

changeN++;

r[j]=r[i];

j=j-1;

}

}

r[i]=temp; //一次划分得到基准值的正确位置

if(left

quicksort(r,left,i-1,n); //递归调用左子区间

if(i+1

quicksort(r,i+1,right,n); //递归调用右子区间

}

//合并排序

void merge( int r[],int a[],int s,int m,int t)//将两个子区间人r[s]~r[m]和r[m+1]~r[t]合并,结果存入a

{

int i,j,temp;

i=s;

j=m+1;

while((i<=m)&&(j<=t))

{

compareN1++;

if(r[i]>=r[j])

{

changeN1++;

temp=r[j];

for(int k=j-1;k>=i;k--)

{

r[k+1]=r[k];

}

r[i]=temp;

j++;

}

else

{

i++;

}

}

for(int l=s;l<=t;l++)

a[l]=r[l];

}

void mergepass(int r[],int a[],int n,int c)

//对r数组做一趟归并,结果存入a数组中,n为元素个数,c为区间长度

{

int i,j;

i=0;

while(i+2*c-1<=n-1)

{ //长度均为c的两个区间合并成一个区间

merge(r,a,i,i+c-1,i+2*c-1);

i+=2*c;

}

if(i+c-1

merge(r,a,i,i+c-1,n-1);

else //仅剩一个区间时直接复制到a 中

for(j=i;j<=n-1;j++)

a[j]=r[j];

}

void mergesort(int r[],int n) //二路归并

{

int c=1,i=0,k=1;

int a[M];

cout<<"二路归并排序的每一次的结果如下:"<

cout<<"初始状态:";

display(r,n);

while(c

{

mergepass(r,a,n,c); //一次合并,结果存入a中

i=i+1;

cout<<"第"<

k++;

display(r,n);

c*=2;

mergepass(a,r,n,c); //再次合并,结果存入r中

i=i+1;

cout<<"第"<

k++;

display(r,n);

c*=2;

}

}

void menu()

{

cout<<"

"<

cout<<" 各种内排序性能比较"<

cout<<" ----------------------------- "<

cout<<"

"<

cout<<" 1. 插入法"<

cout<<" 2. 冒泡法"<

cout<<" 3. 选择法"<

cout<<" 4. 快速法"<

cout<<" 5. 合并法"<

cout<<" 0. 退出"<

cout<<" ------------------------------ "<

cout<<"请选择您要排序的方法: ";

}

int main()

{

int k; //K表示排序的元素个数int *R1 =new int [20]; //因为是地址传递,所以要用到两个数组

int *R2=new int [20];

cout<<"系统将随机产生数组元素请输入要产生的元素个数K: ";

cin>>k;

cout<

cout<<"以下是随机生成的数组:"<

for(int i=0;i

{

R2[i]=rand()%100;

}

display(R2,k);

do

{

for(int i=0;i

R1[i]=R2[i];

menu();

int select;

cin>>select;

switch (select)

{

case 0:

delete [] R1;

delete [] R2;

exit(0);

case 1:

insertsort(R1,k); //插入排序

break;

case 2:

bubblesort(R1,k); //冒泡排序

break;

case 3:

selectsort(R1,k); //选择排序

break;

case 4:

{

cout<<"快速排序的每一次的结果如下:"<

if(compareN!=0)

compareN=0;

if(changeN!=0)

changeN=0;

quicksort(R1,0,k-1,k); //快速排序

cout<<"\t\t\t\t -->元素比较次数为"<

cout<<"\t\t\t\t -->元素

交换次数为"<

break;

}

case 5:

{

if(compareN1!=0)

compareN1=0;

if(changeN1!=0)

changeN1=0;

mergesort(R1,k); //合并排序

cout<<"\t\t\t\t -->元素比较次数为"<

cout<<"\t\t\t\t -->元素交换次数为"<

break;

}

default:

{

cout<<"输入错误!请重新输入...."<

break;

}

}

}while(1);

return 0;

}

程序测试

程序运行的主界面(数组下标以及数组中的各个元素均由随机函数产生)①插入法

各算法运行界面

②冒泡法

③选择法

④快速法

⑤合并法

总结

这次课程设计虽然做得很辛苦,但很有成就感;当看到自己的程序完成运行成功,那种感觉比什么都爽,可能那就是成

就感吧,呵呵。

这次课程设计是用C++和数据结构的方法做的,一开始感觉很难,无从下手。但后来只要先把各种功能算法设计好,想

好它要怎样去实现,如可用函数去实现这个算法,而不是急于

去乱动手做,那样只会浪费更多的时间。再者是多找找资料,

多问问厉害的同学,这样你会无意间学到许多新鲜的东西哦。

课程设计评分表

学生姓名:班级:学号:课程设计题目:

结构力学课程设计报告

一. 课程设计的目的 1. 通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要 功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2. 通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规 律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打 下坚实的基础 二. 课程设计的内容 (1).对图示两类桁架进行分析 在相同荷载作用下,比较各类桁架的受力特点; 讨论各种杆件(上弦杆,下弦杆,竖杆,斜杆)内力随 随高跨比变化的规律; 若增加杆件使其成为超静定桁架,内力有何变化。 (2).两种结构在静力等效荷载作用下,内力有哪些不同? 平行弦桁架 1/2 1 1 1 1 1 1/2 三角桁1/2 1 1 1 1 1 1/2

(3)、用求解器自动求解功能求a=2和a=1.0时的各杆内力。比较两种情况内力分布,试用试算法调整a 的大小,确定使弯矩变号的临界点a 0,当a=a 0时结构是否处于无弯矩状态? (4) 、图示为一个两跨连续梁,两跨有关参数相同(l =6m ,E =1.5*106kPa ,截面0.5*0.6m 2,线膨胀系数1.0*10-5)。第一跨底部温度升高60oC ,分析变形和内力图的特点。 (4) 、计算下支撑式五角形组合屋架的内力,并分析随跨高 比变化内力变化规律。当高度确定后内力随f 1,f 2的比例不同的变化规律(四个以上算例)。 1/4 11×(1/2) 1/4 1/2 1 1 1 1 1 1/2 a a a a 3 6m 6m

一. 课程设计的数据 1. 第(1)题数据 1) 平行弦桁架 a) 高跨比1:4(每小格比例2:3) 输出图形: 输出内力值: 内力计算 杆端内力值 ( 乘子 = 1) ----------------------------------------------------------------------------------------------- 3m 3m 3m 3m f 2 f 1 f =1.2m q =1kN/m

数据结构课程设计

1.一元稀疏多项式计算器 [问题描述] 设计一个一元稀疏多项式简单计算器。 [基本要求] 输入并建立多项式; 输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序; 多项式a和b相加,建立多项式a+b; 多项式a和b相减,建立多项式a-b; [测试数据] (2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3) (1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1) (x+x3)+(-x-x3)=0 (x+x2+x3)+0=(x3+x2+x) [实现提示] 用带头结点的单链表存储多项式,多项式的项数存放在头结点中。 2.背包问题的求解 [问题描述] 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2) [实现提示] 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”因此自然要用到栈。 3.完全二叉树判断 用一个二叉链表存储的二叉树,判断其是否是完全二叉树。 4.最小生成树求解(1人) 任意创建一个图,利用克鲁斯卡尔算法,求出该图的最小生成树。 5.最小生成树求解(1人) 任意创建一个图,利用普里姆算法,求出该图的最小生成树。 6.树状显示二叉树 编写函数displaytree(二叉树的根指针,数据值宽度,屏幕的宽度)输出树的直观示意图。输出的二叉树是垂直打印的,同层的节点在同一行上。 [问题描述] 假设数据宽度datawidth=2,而屏幕宽度screenwidth为64=26,假设节点的输出位置用 (层号,须打印的空格数)来界定。 第0层:根在(0,32)处输出;

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

结构力学求解器求解示例

结构力学(二)上机试验结构力学求解器的使用 上机报告 班级: 姓名: 学号: 日期:

实验三、计算结构的影响线 1.实验任务 (1)作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器:D M 的影响线 观览器:QD F 的影响线 D |F=1 3 365

编辑器: 结点,1,0,0 结点,2,3,0 结点,3,6,0 结点,4,12,0 结点,6,6,1 结点,5,17,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,0 单元,3,6,1,1,0,1,1,0 单元,6,5,1,1,0,1,1,0 结点支承,1,3,0,0,0 结点支承,4,1,0,0 结点支承,5,3,0,0,0 影响线参数,-2,1,1,3 影响线参数,-2,1,1,2 End

作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器: D M 的影响线 QD F 的影响线

编辑器: 结点,1,0,0 结点,2,2,0 结点,3,4,0 结点,4,6,0 结点,5,8,0 结点,6,0,1 结点,7,8,1 结点,8,2,1 结点,9,4,1 结点,10,6,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,4,5,1,1,1,1,1,0 单元,1,6,1,1,1,1,1,0 单元,6,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,7,1,1,0,1,1,0 单元,7,5,1,1,0,1,1,0

数据结构课程设计(内部排序算法比较_C语言)

数据结构课程设计 课程名称:内部排序算法比较 年级/院系:11级计算机科学与技术学院 姓名/学号: 指导老师: 第一章问题描述 排序是数据结构中重要的一个部分,也是在实际开发中易遇到的问题,所以研究各种排算法的时间消耗对于在实际应用当中很有必要通过分析实际结合算法的特性进行选择和使用哪种算法可以使实际问题得到更好更充分的解决!该系统通过对各种内部排序算法如直接插入排序,冒泡排序,简单选择排序,快速排序,希尔排序,堆排序、二路归并排序等,以关键码的比较次数和移动次数分析其特点,并进行比较,估算每种算法的时间消耗,从而比较各种算法的优劣和使用情况!排序表的数据是多种不同的情况,如随机产生数据、极端的数据如已是正序或逆序数据。比较的结果用一个直方图表示。

第二章系统分析 界面的设计如图所示: |******************************| |-------欢迎使用---------| |-----(1)随机取数-------| |-----(2)自行输入-------| |-----(0)退出使用-------| |******************************| 请选择操作方式: 如上图所示该系统的功能有: (1):选择1 时系统由客户输入要进行测试的元素个数由电脑随机选取数字进行各种排序结果得到准确的比较和移动次数并 打印出结果。 (2)选择2 时系统由客户自己输入要进行测试的元素进行各种排序结果得到准确的比较和移动次数并打印出结果。 (3)选择0 打印“谢谢使用!!”退出系统的使用!! 第三章系统设计 (I)友好的人机界面设计:(如图3.1所示) |******************************| |-------欢迎使用---------| |-----(1)随机取数-------| |-----(2)自行输入-------| |-----(0)退出使用-------|

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

结构力学课程设计(word)

结构力学课程设计 专业: 班级: 姓名: 学号: 指导老师: 日期:2015年7月5日

目录 前言 (1) 问题一: (3) 问题描述: (3) 程序说明: (3) 全选主元高斯约当消去法: (3) 全选主元高斯约当消去法的程序及注解如下: (4) 运行结果: (6) 问题二: (6) 问题描述: (6) 方法一:追赶法 (7) 程序说明: (7) 追赶法带型的计算程序及注解: (7) 运行结果: (9) 总结与思考: (9) 方法二:列选主元高斯消去法算带型问题 (10) 程序说明: (10) 列选主元高斯消去法算带型计算程序及注解: (10) 运行结果: (12) 反思与对比(收获): (12) 问题三: (13) 问题描述: (13) 程序框图: (14) 程序特点: (14) 1.主要变量: (15) 2.子例行子程序哑元信息: (15) 3.文件管理: (16) 4.数据文件格式: (16) 源程序: (17) 输入数据如下(input.txt): (23) 输出数据如下(output.txt): (23) 程序运行后输出数据结果如下(需要手动打开output.txt文件): (24) 总结与收获: (25) 参考文献: (26)

前言: 经过这学期的学习与积累,对结构力学这门课程有所收获,结构力学这门课程对我们学习飞行器设计与专业的学生来说,那就是手足的关系,因为我感觉任何航空、航天器都离不开结构的设计,只要有结构就牵涉到结构力学的分析与计算,因为航空器在空中飞行要遇到很多“挫折”,结构力学就是来分析这些个“挫折”下,看航空器能不能经受得了。结构力学课程从内容上讲,主要涉及机构的几何组成分析,求解静定、超静定结构内力的虚功原理。具体分析问题的方法包括力法、位移法等。但对于复杂结构来讲,简单的手算的方法过于繁琐。因此,由于课程设计偏重于利用Fortran 语言编写有限元子程序来完成复杂结构的内力计算,我就恶补了好几天的与Fortran有关的知识,下面就现学现卖的计算了王老师给的三个问题,肯定有不妥之处,希望读者纠错。

数据结构课程设计-排序

一、问题描述 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,分别表示待排序序列的起始下

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

结构力学个人总结

结构力学个人总结 本页是精品最新发布的《结构力学个人总结》的详细文章,。篇一:结构力学心得体会 结构力学心得体会 本学期结构力学的课程已经接近尾声。主要是三部分内容,即渐近法、矩阵位移法和平面刚架静力分析的程序设计。通过为期八周的理论课学习和六次的上机课程设计,我收获颇丰。 而对结构力学半年的学习,也让我对这门学科有了很大的认识。结构力学是力学的分支,它主要研究工程结构受力和传力的规律以及如何进行结构优化的学科。工程力学是机械类工种的一门重要的技术基础课,许多工程实践都离不开工程力学,工程力学又和其它一些后绪课程及实习课有紧密的联系。所以,工程力学是掌握专业知识和技能不可缺少的一门重要课程。 首先,渐近法的核心是力矩分配法。计算超静定刚架,不论采用力法或位移法,都要组成和验算典型方程,当未知量较多时,解算联立方程比较复杂,力矩分配法就是为了计算简洁而得到的捷径,它是位移法演变而来的一种结构计算方法。其物理概念生动形象,每轮计算又是按同一步骤重复进行,进而易于掌握,适合手算,并可不经过计算节点位移而直接求得杆端弯矩,在结构设计中被广泛应用,是我们应该掌握的基本技能。本章要

求我们能够熟练得运用力矩分配法对钢架结构进行力矩分配和传递,然后计算出杆端最后的弯矩,画出钢架弯矩图。 其次,与上一学期所学的力法和位移法那些传统的结构力学基本方法相比,本学期所学的矩阵位移法是通过与计算机相结合,解决力法和位移法不能解决的结构分析题。其核心是杆系结构的矩阵分析,主要包括两部分内容,即单元分析和整体分析。矩阵位移法的程序简单并且通用性强,所以应用最广,范文 TOP100也是我们本学期学习的重点和难点。本章要求我们掌握单位的刚度方程并且明白单位矩阵中每一个元素的物理意义,可以熟练的进行坐标转换,最为重要的是能够利用矩阵位移法进行计算。 最后,是平面钢架静力分析的程序设计。其核心是如何把矩阵分析的过程变成计算机的计算程序,实现计算机的自动计算。我们所学的是一种新的程序设计方法—PAD软件设计方法,它的程序设计包括四步:1、把计算过程模块化,给出总体程序结构的PAD设计;2、主程序的PAD设计;3、子程序的PAD设计;4、根据主程序和子程序的PAD设计,用程序语言编写计算程序。要求我们具备结构力学、算法语言,即VB、矩阵代数等方面的基础知识。在上机利用VB 进行程序设计解答实际问题的过程中,我们遇到了各种各样的难题,每一道题得出最后的结果都不会那么容易轻松。第一,需要重视细节,在抄写程序代码时,需要同组人的分工合作,然后再把每一部分的代码合成一个整体然后运行,这

数据结构课程设计排序实验报告

《数据结构》课程设计报告 专业 班级 姓名 学号 指导教师 起止时间

课程设计:排序综合 一、任务描述 利用随机函数产生n个随机整数(20000以上),对这些数进行多种方法进行排序。(1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。 (2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 要求:根据以上任务说明,设计程序完成功能。 二、问题分析 1、功能分析 分析设计课题的要求,要求编程实现以下功能: (1)随机生成N个整数,存放到线性表中; (2)起泡排序并计算所需时间; (3)简单选择排序并计算时间; (4)希尔排序并计算时间; (5)直接插入排序并计算所需时间; (6)时间效率比较。 2、数据对象分析 存储数据的线性表应为顺序存储。 三、数据结构设计 使用顺序表实现,有关定义如下: typedef int Status; typedef int KeyType ; //设排序码为整型量 typedef int InfoType; typedef struct { //定义被排序记录结构类型 KeyType key ; //排序码 I nfoType otherinfo; //其它数据项 } RedType ; typedef struct { RedType * r; //存储带排序记录的顺序表 //r[0]作哨兵或缓冲区 int length ; //顺序表的长度 } SqList ; //定义顺序表类型 四、功能设计 (一)主控菜单设计

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

最新数据结构实训总结

精品文档 这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。 通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。 通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for的多重循环,舍弃多余的循环,提高了程序的运行效率。在编写这个程序的过程中,我复习了之前学的基本语法,哈弗曼树最小路径的求取,哈弗曼编码及译码的应用范围,程序结构算法等一系列的问题它使我对数据结构改变了看法。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,也从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 精品文档

结构力学课程设计

结构力学课程设计报告 系别:() 专业:() 班级:() 姓名:() 指导教师:()

一、绪言 1、课程设计目的或意义: 1、通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2、通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打下坚实的基础 2、结构的工程应用背景简介: 此次设计的结构是桥梁结构,在生活中桥梁在交通运输中起着重要的作用,比如架在江湖、峡谷之间的桥梁起着连接两地的纽带作用。桥梁之上可以过行人、汽车、火车。极大的缩短了两地之间的距离,方便又快捷。 3、课程设计的主要内容: 一:了解明确课程设计的目的,查找工程实际中的桥梁结构 二:参考实际结构设计自己的桥梁结构。 三:估计轴力,初步选择桥梁的钢材。 四:做出内力图。 五:校核,再择钢材。 六:总结优化。

二、结构设计与荷载简化 1、结构简介 此结构形状主要由三角形组成的的下承式组合结构 2、结构参数: 本次设计的桥梁结构跨度为四十米,高二十米。结构中杆件间主要以铰接连接。根据桥梁及承载要求,材料为Q235刚,极限压应力为300MPa,E=210GPa 选择20b号工字型刚,截面面积为46.5平方厘米 3、荷载简化与分析: 设计的结构为火车通道,主要承受火车的质量。将火车看作质量分布均匀的,所受均布荷载为50KN/m

三、结构内力和变形分析 1、结构计算简图 2、内力分析 结构轴力图 结构剪力图 1 11

数据结构课程设计排序算法总结

排序算法: (1) 直接插入排序 (2) 折半插入排序(3) 冒泡排序 (4) 简单选择排序 (5) 快速排序(6) 堆排序 (7) 归并排序 【算法分析】 (1)直接插入排序;它是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的序的有序表中,从而得到一个新的、记录数增加1的有序表。 (2)折半插入排序:插入排序的基本操作是在一个有序表中进行查找和插入,我们知道这个查找操作可以利用折半查找来实现,由此进行的插入排序称之为折半插入排序。折半插入排序所需附加存储空间和直接插入相同,从时间上比较,折半插入排序仅减少了关键字间的比较次数,而记录的移动次数不变。 (3)冒泡排序:比较相邻关键字,若为逆序(非递增),则交换,最终将最大的记录放到最后一个记录的位置上,此为第一趟冒泡排序;对前n-1记录重复上操作,确定倒数第二个位置记录;……以此类推,直至的到一个递增的表。 (4)简单选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之。 (5)快速排序:它是对冒泡排序的一种改进,基本思想是,通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 (6)堆排序: 使记录序列按关键字非递减有序排列,在堆排序的算法中先建一个“大顶堆”,即先选得一个关键字为最大的记录并与序列中最后一个记录交换,然后对序列中前n-1记录进行筛选,重新将它调整为一个“大顶堆”,如此反复直至排序结束。 (7)归并排序:归并的含义是将两个或两个以上的有序表组合成一个新的有序表。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止,这种排序称为2-路归并排序。 【算法实现】 (1)直接插入排序: void InsertSort(SqList &L){ for(i=2;i<=L.length ;i++) if(L.elem[i]L.elem[0];j--) L.elem [j+1]=L.elem [j]; L.elem [j+1]=L.elem[0]; } } (2)折半插入排序:

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

结构力学设计

科学技术学院 课程设计报告 2012----2013学年第二学期 学生姓名: 学号: 专业班级: 时间: 17周(6.17-6.21) 理工学科部

一、课程设计目的 1. 通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2.通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打下坚实的基础。 二、课程设计内容 (一)对三类桁架进行受力分析 1、平行弦桁架分析 变量定义,h=1,l=6 变量定义,c=1/6,h=c*l 结点,1,0,0 结点,2,1/6l,0 结点,3,2/6l,0 结点,4,3/6l,0 结点,5,4/6l,0 结点,6,5/6l,0 结点,7,6/6l,0 结点,8,6/6l,h 结点,9,5/6l,h 结点,10,4/6l,h 结点,11,3/6l,h 结点,12,2/6l,h 结点,13,1/6l,h 结点,14,0/6l,h 单元,1,2,1,1,0,1,1,0 单元,2,3,1,1,0,1,1,0 单元,3,4,1,1,0,1,1,0 单元,4,5,1,1,0,1,1,0 单元,5,6,1,1,0,1,1,0 单元,6,7,1,1,0,1,1,0 单元,7,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,11,1,1,0,1,1,0 单元,11,12,1,1,0,1,1,0 单元,12,13,1,1,0,1,1,0单元,13,14,1,1,0,1,1,0 单元,14,1,1,1,0,1,1,0 单元,14,2,1,1,0,1,1,0 单元,2,13,1,1,0,1,1,0 单元,13,3,1,1,0,1,1,0 单元,3,12,1,1,0,1,1,0单元,12,4,1,1,0,1,1,0 单元,4,11,1,1,0,1,1,0 单元,4,10,1,1,0,1,1,0 单元,10,5,1,1,0,1,1,0 单元,5,9,1,1,0,1,1,0 单元,9,6,1,1,0,1,1,0 单元,6,8,1,1,0,1,1,0结点支承,1,3,0,0,0结点支承,7,1,0,0结点荷载,14,1,0.5,-90结点荷载,13,1,1,-90结点荷载,12,1,1,-90结点荷载,11, 1,1,-90结点荷载,10,1,1,-90结点荷载,9,1,1,-90结点荷载,8,1,0.5,-90

数据结构课程设计(附代码)

上海应用技术学院课程设计报告 课程名称《数据结构课程设计》 设计题目猴子选大王;建立二叉树;各种排序;有序表的合并;成绩管理系统;院系计算机科学与信息工程专业计算机科学与技术班级 姓名学号指导教师日期 一.目的与要求 1. 巩固和加深对常见数据结构的理解和掌握 2. 掌握基于数据结构进行算法设计的基本方法 3. 掌握用高级语言实现算法的基本技能 4. 掌握书写程序设计说明文档的能力 5. 提高运用数据结构知识及高级语言解决非数值实际问题的能力 二.课程设计内容说明 1. 项目一 (1) 对设计任务内容的概述 学生成绩管理** 任务:要求实现对学生资料的录入、浏览、插入和删除等功能。 输入:设学生成绩以记录形式存储,每个学生记录包含的信息有:学号和各门课程的成绩,设学生成绩至少3门以上。存储结构:采用线性链式结构。 (2) 详细设计 LinkList *create():输入学生成绩记录函数; void print(LinkList *head):显示全部记录函数 LinkList *Delete(LinkList *head):删除记录函数 LinkList *Insert(LinkList *head):插入记录函数 void menu_select():菜单选择 void ScoreManage():函数界面

(3) 程序流程图 (4) 程序模块及其接口描述 该程序可以分为以下几个模块: 1、菜单选择:void menu_select(); 提供五种可以选择的操作,在main函数中通过switch语句调用菜单menu_select()函数,进入不同的功能函数中完成相关操作。

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

相关文档
最新文档