数据结构课程设计题目2010

合集下载

数据结构(代码02331)2010年10月试题及答案

数据结构(代码02331)2010年10月试题及答案

全国2010年10月高等教育自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.数据的四种存储结构是( ) A-P3A.顺序存储结构、链接存储结构、索引存储结构和散列存储结构B.线性存储结构、非线性存储结构、树型存储结构和图型存储结构C.集合存储结构、一对一存储结构、一对多存储结构和多对多存储结构D.顺序存储结构、树型存储结构、图型存储结构和散列存储结构2.若对某线性表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,要使操作时间最少,下列选项中,应选择的存储结构是( ) D-P26(带尾指针)A.无头结点的单向链表B.带头结点的单向链表C.带头结点的双循环链表D.带头结点的单循环链表3.若带头结点的单链表的头指针为head,则判断链表是否为空的条件是( )C P22A.head=NULLB.head->next=NULLC.head!=NULLD.head->next!=head4.若元素的入栈顺序为1,2,3....,n,如果第2个出栈的元素是n,则输出的第i(1<=i<=n)个元素是( )DA.n-iB.n-i+lC.n-i+2D.无法确定5.串匹配算法的本质是( ) C P55A.串复制B.串比较C.子串定位D.子串链接6.设有一个10阶的对称矩阵A,采用行优先压缩存储方式,a11为第一个元素,其存储地址为1,每个元素占一个字节空间,则a85的地址为( ) C P61A.13B.18C.33D.407.若一棵二叉树的前序遍历序列与后序遍历序列相同,则该二叉树可能的形状是( ) BA.树中没有度为2的结点B.树中只有一个根结点C.树中非叶结点均只有左子树D.树中非叶结点均只有右子树8.若根结点的层数为1,则具有n个结点的二叉树的最大高度是( ) AA.nB.C. +1D.n/29.在图G中求两个结点之间的最短路径可以采用的算法是( )A P123A.迪杰斯特拉(Dijkstra)算法B.克鲁斯卡尔(Kruskal)算法C.普里姆(Prim)算法D.广度优先遍历(BFS)算法10.下图G=(V,E)是一个带权连通图,G 的最小生成树的权为( )D P116 A.15 B.16 C.17 D.1811.在下图中,从顶点1出发进行深度优先遍历可得到的序列是( ) B P108 A.1 2 3 4 5 6 7B.1 4 2 6 3 7 5C.1 4 2 5 3 6 7D.1 2 4 6 5 3 712.如果在排序过程中不改变关键字相同元素的相对位置,则认为该排序方法是( ) B P136 A.不稳定的 B.稳定的 C.基于交换的D.基于选择的13.设有一组关键字(19, 14, 23, 1,6,20, 4,27, 5,11, 10, 9),用散列函数H(key)=key%13构造散列表,用拉链法解决冲突,散列地址为1的链中记录个数为( ) C P198 A.1 B.2 C.3D.414.已知二叉树结点关键字类型为字符,下列二叉树中符合二叉排序树性质的是( ) D P17415.若需高效地查询多关键字文件,可以采用的文件组织方式为( ) D P218A.顺序文件B.索引文件C.散列文件D.倒排文件二、填空题(本大题共10小题,每小题2分,共20分)请每小题的空格中填上正确答案。

数据结构课程设计题目

数据结构课程设计题目

题目1:图的遍历功能:实现图的深度优先, 广度优先遍历算法,并输出原图结构及遍历结果。

分步实施:1) 初步完成总体设计,搭好框架;2)完成最低要求:两种必须都要实现,写出画图的思路;3)进一步要求:画出图的结构,有兴趣的同学可以进一步改进图的效果。

要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

题目2:n维矩阵乘法:A B-1功能:设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab-1结果。

分步实施:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:建立一个文件,可完成2维矩阵的情况;3)一步要求:通过键盘输入维数n。

有兴趣的同学可以自己扩充系统功能。

要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

题目3:数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。

分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:完成第一个功能;3.进一步要求:进一步完成后续功能。

有兴趣的同学可以自己扩充系统功能。

要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

题目4:数组应用2功能:读入数组下标,求出数组A靠边元素之和;求从A[0][0]开始的互不相邻的各元素之和;当m=n时,分别求两条对角线上的元素之和,否则打印出m!=n的信息。

10级数据结构课程设计题目

10级数据结构课程设计题目

航空客运订票系统的设计与实现1.设计目的设计一个航班订票系统,提高对信息管理、信息查找和排序算法的应用能力。

2.问题描述航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。

3.数据结构设计(1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户名单。

(2)客户信息:客户姓名、证件号、座位号。

4.功能(函数)设计1)承办订票业务:根据客户提出的要求(飞机抵达城市、起降时间、订票数量)查新该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办理订票手续,输出座位号。

2)承办退票业务:根据客户提供的情况(航班号、订票数量),为客户办理退票手续。

3)查询功能:a) 查询航线信息:根据飞机降落地点,输入下列信息:航班号、飞机号、起降时间、航班票价、票价折扣和剩余位置。

b) 查询客户预订信息:根据客户证件号,输出下列信息:航班号、飞机号和座位号。

5.界面设计6.编码实现7.运行与测试8.设计完成后的思考哈夫曼编/译码的设计与实现一、实验目的:通过对简单哈夫曼编/译码系统的设计与实现来熟练掌握树型结构在实际问题中的应用。

二、问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。

系统应该具有如下的几个功能:接收原始数据、编码、译码、打印编码规则。

三、数据结构设计:1、构造哈夫曼树时使用顺序表作为哈夫曼树的存储结构。

2、求哈夫曼编码时使用一维结构数组作为哈夫曼编码信息的存储。

四、功能(函数)设计1、初始化功能模块模块的功能为从键盘接收字符集大小n,以及n个字符和n个权值。

2、建立哈夫曼树的功能模块此模块功能为使用1中得到的数据按照构造哈夫曼树的算法构造哈夫曼树,即将HuffNode数组中的各个位置的各个域都添上相关的值,并将这个结构体数组存于文件中。

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目数据结构课程设计题目要求:(1)每人选择一题,选好后把选题名单交给学习委员统一上交给老师(2)要求上交源程序和课程设计报告,均为电子版,保存在自己名字的文件夹中(3)上交前,程序调试运行成功才算完成。

(4)最后完成时间2010年1月25日,先做完的可以先交。

(5)课程设计报告参考范例题目:1、课本46页,2-202、课本46页,2-243、课本47页,2-254、课本84页,3-185、课本85页,3-236、课本110页,4-167、课本110页,4-178、课本111页,4-199、课本111页,4-2010、课本126页,5-1911、课本126页,5-2012、课本148页,6-1313、课本148页,6-1614、课本251页,9-2015、课本278页,10-3116、课本310页,11-2717、课本311页,11-2918、课本311页,11-3019、课本311页,11-3120、文章编辑静态存储一页文章,每行最多不超过80个字符,共N行;输入此文章,统计出文字、数字、空格的个数。

要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据可以是大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章。

21、纸牌游戏编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次、6、7的直到以52为基数的翻过。

数据结构课程设计

数据结构课程设计

“数据结构”课程设计报告二叉排序树的查找与性能分析学生姓名:段晓宣,张静指导教师:陈少军所在系:电子信息系所学专业:计算机科学与技术年级: 2010级计算机(1)班目录第一章需求分析1.1选题要求 (3)1.2选题的背景与意义 (3)1.3本组课程设计的目标 (3)1.4人员组成和分工 (3)第2章概要分析 (4)2.1系统数据流图 (4)2.2原始数据 (4)2.3输出数据 (4)2.4对数据的处理 (5)2.5数据结构 (5)2.6模块划分 (5)第3章详细设计 (6)3.1二叉排序树的创建 (6)3.2二叉排序树的插入 (7)3.3二叉排序树的查找 (7)3.4计算多数据的平均查找长度 (9)3.5主函数 (9)第4章用户手册 (10)4.1 用户须知 (10)第5章系统测试 (11)项目总结 (12)参考文献 (13)二叉树排序树的查找与性能分析摘要:21世纪是信息化的时代,计算机深入到生活的各个领域。

随着计算机的发展,许多高科技产品如雨后春笋应运而生。

但究其本质而言,无非是以前的理论加以包装。

对于数据控制、管理及处理等方面也可见一斑。

在如今应用的计算机的数据存储方式仍然主要以线性,树型,图型等为主要的及结构。

因此了解并掌握数据结构的知识是很有必要的。

在此次实训期间,本组人员通过运用所学数据结构的知识,进行以二叉排序树的查找与性能分析为题的课程设计,在同组人员的共同努力下,基本实现了:1.创建二叉排序树2.利用文件存储二叉排序树3.二叉排序树的插入4.二叉排序树的查找5.二叉排序树平均查找长度的算法第1章需求分析1.1选题要求(1)根据输入的先序及递归建立二叉排序树;(2)通过文件,向二叉排序树插入结点,并生成二叉树;(3)设置报名号为关键字,可以根据关键字进行查找;(5)查找的同时可以判断比较的次数;(6)根据查找的算法计算出10000个数据平均查找长度;1.2选题的背景与意义(1)树型存储结构数据存储结构中重要的组成部分,二叉树由是树的重点。

数据结构课程设计题目(最终版)

数据结构课程设计题目(最终版)

数据结构课程设计题目(最终版)数据结构课程设计题目1、医务室模拟。

问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔为0~14分钟之间的某个随机值,每个病人所需处理时间为1~9分钟之间的某个随机值。

试用队列结构进行模拟。

实现要求:要求输出医生的总等待时间和病人的平均等待时间。

程序设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。

当一个病人就诊完毕而下一位还未到达时,时间立即推进为下一位病人服务,中间时间为医生空闲时间。

当一个病人还未结束之前,另有一位病人到达,则这些病人应依次排队,等候就诊。

2、招聘模拟问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(0,1,2,…,m-1)和计划招聘人数,参加招聘的人数有n个(编号为0,1,2,。

,n-1)。

每位应聘者可以申报两个工种,并参加公司组织的考试。

公司将按应聘者的成绩,从高到低的顺序排队录取。

公司的录取原则是:从高分到低分依次对每位应聘者按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其志愿考虑录取。

程序为每个工种保留一个录取者的有序队列。

录取处理循环直至招聘额满,或已对全部应聘者都做了录用处理。

实现要求:要求程序输出每个工种录用者的信息(编号、成绩),以及落选者的信息(编号、成绩)。

3、组织机构问题问题描述:以青岛理工大学为例,实现对我校组织结构的管理。

要求把我校的组织结构以树型结构存储,实现要求:(1)树中每个结点保存部门名称;(2)假定处级部门(含院系)在树中第二层,科级部门在第三层(即最后一层),软件应该能计算出处级部门有几个,有哪几个?(3)软件可以查询某部门下面的具体编制?4、最少换车次数问题问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。

设这些公交车站都是单向的,这n个车站被顺序编号为0~n-1。

数据结构课程设计报告(四维数组应用)

数据结构课程设计报告(四维数组应用)

数据结构课程设计报告(原创)设计题目:数组应用专业班级学生学号指导教师时间目录一、设计任务 (3)二、软件环境 (4)三、程序源代码 (4)四、算法设计思想及流程图 (11)4.1算法设计思想 (11)4.2流程图 (13)4.2.1主要功能模块流程图 (13)4.2.2输入函数流程图 (13)4.2.3输出函数流程图 (14)4.2.4查找函数流程图 (15)五、输入及相应运行结果 (16)六、收获及体会 (19)七、参考文献 (20)八、附录(部分截图) (21)一、设计任务题目:数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。

分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:完成第一个功能;3.进一步要求:进一步完成后续功能。

有兴趣的同学可以自己扩充系统功能。

要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

二、软件环境V C ++6.0三、程序源代码#include<stdio.h>#include<malloc.h>#include<stdlib.h>#define M 100typedef struct{int data;int wei[4];}node;typedef struct{node dat[M];int max_meiwei[4];//每维的长度int m;}shu;void menu(shu *G);void input(shu *G);void output(shu *G);void find(shu *G);void introduce(shu *G); //函数声明/***********************************************************/void input(shu *G)// 输入按行{int i,j,k,l,h,b,n;G->m=1;for(i=0;i<4;i++)//依次输入第一、二、三、四维的长度{printf("\t\t\t请输入第%d维的长度:",i+1);scanf("%d",&G->max_meiwei[i]);G->m*=G->max_meiwei[i]; //维数长度积即为数据个数}n=0;for(i=0;i<G->max_meiwei[0];i++)//坐标{for(j=0;j<G->max_meiwei[1];j++)//初{for(k=0;k<G->max_meiwei[2];k++)//始{for(l=0;l<G->max_meiwei[3];l++)//化{G->dat[n].wei[0]=i;G->dat[n].wei[1]=j;G->dat[n].wei[2]=k;G->dat[n].wei[3]=l;n++;}}}}for(n=0;n<G->m;n++)//依次输入各个结点的坐标值{printf("\t\t\t请输入A[");for(b=0;b<4;b++){printf("%d,",G->dat[n].wei[b]);}printf("\b]的值\n");scanf("%d",&G->dat[n].data);}system("pause");menu(G);}/*******************************************************/void output(shu *G)// 输出按列优先顺序{int i,j,b,k,l,h,n;for(i=0;i<G->max_meiwei[3];i++) //先固定第四维,而后由里到外依次输出{for(j=0;j<G->max_meiwei[2];j++){for(k=0;k<G->max_meiwei[1];k++){for(l=0;l<G->max_meiwei[0];l++){printf("\t\t");for(h=0;h<G->m;h++){if(G->dat[h].wei[3]==i && G->dat[h].wei[2]==j && G->dat[h].wei[1]==k && G->dat[h].wei[0]==l){printf("\t%d",G->dat[h].data);}}}printf("\n");}}}printf("\n");system("pause");menu(G);}/*******************************************************//*******************************************************/void find(shu *G) // 给出任意元素值输出对应的一维数组所在的位置{int i,a,k=0,j;system("cls");printf("\n\n\t\t\t 请输入所查值:");scanf("%d",&a);for(i=0;i<G->m;i++){if(a==G->dat[i].data) //逐个比较,找出数组中和所给值相等的数{printf("\n\t\t\4 \4 \4 \4 \4 \4 \4 \4 \4 \4 \4 \4 \4 \4 \\4 \4");printf("\n\t\t\t对应第一维位置为:%d\n",i);printf("\t\t\5 \5 \5 \5 \5 \5 \5 \5 \5 \5 \5 \5 \5 \5 \5 \5\n");k=1;}}if(k==0){printf("\n\t\t\t~~~~(>_<)~~~~ 对不起,您所查询的数不存在!~~~~(>_<)~~~~ \n");printf("\n\t\t\t继续1\n\t\t\t返回2\n\t\t\t请选择:");scanf("%d",&j);if(j==1){find(G);}else if(j==2){menu(G);}}system("pause");menu(G);}/*******************************************************/ void menu(shu *G)//菜单{int i;system("cls");system("color 9a");printf("\t\t\n\n\n\n\n\n");printf("\t\t\n");printf("\t\t╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬\n"); printf("\t\t║**************************************║\n"); printf("\t\t╬* WELCOME *╬\n"); printf("\t\t║**************************************║\n"); printf("\t\t╬* *╬\n"); printf("\t\t║* *║\n"); printf("\t\t╬* ☆输入(press 1) *╬\n"); printf("\t\t║* ★输出(press 2) *║\n"); printf("\t\t║* ☆查找(press 3) *║\n"); printf("\t\t╬* ★退出(press 0) *╬\n"); printf("\t\t║* *║\n"); printf("\t\t║**************************************║\n"); printf("\t\t╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬\n"); printf("\t\t\t请选择");printf("\n\t\t\t");scanf("%d",&i);switch(i){case 1: input(G);break;case 2: output(G);break;case 3: find(G);break;case 0:{system("cls");printf("\n\n");printf("\t\t \n");printf("\t\t\n");printf("\t\t (.@.@) \n");printf("\t\t+-------oOOo-----(_)-----oOOo---------+\n");printf("\t\t||\n");printf("\t\t|再见! 谢谢使用!! |\n");printf("\t\t||\n");printf("\t\t+----------oooO-------Oooo--------------+\n");printf("\n\n");exit(0);break;}default:menu(G);break;}}/*******************************************************//*******************************************************/void introduce(shu *G){int i;system("cls");printf("\n\n\n\n\t\t ☆此系统的功能有☆\n\n");printf("\t\t★按照行优先顺序将输入的数据建成4维数组\n\n");printf("\t\t★按照列优先顺序输出\n\n");printf("\t\t★给出任意处的元素值,查询相应的一维数组的序号\n\n");printf("\n\n\n\t\t按1返回\n");printf("\n\n\t\t按0退出\n");scanf("%d",&i);if(i==1){menu(G);}else if(i==0){exit(0);}}/*******************************************************/main(){int i,j=1;shu *G;G=(shu *)malloc(sizeof(shu)); //开辟一段空间while(j) //利用j来实现while循环{system("cls");system("color 9e");printf("\n\n\n");printf("\t\t┏━━━━━━━━━━━━━━━━━━━┓\n"); printf("\t\t┃* * * * * * * * * * * * * * * * * * * ┃\n"); printf("\t\t┃* ※欢迎使用数组应用系统※* ┃\n"); printf("\t\t┃* * * * ** * * * * * * * * * * * * * * ┃\n"); printf("\t\t┃* * ┃\n"); printf("\t\t┃* * ┃\n"); printf("\t\t┃* ☆☆☆☆☆☆☆☆* ┃\n"); printf("\t\t┃* ★★★★★* ┃\n");printf("\t\t┃* ☆☆☆☆* ┃\n"); printf("\t\t┃* ★★★★* ┃\n"); printf("\t\t┃* ☆☆☆☆* ┃\n"); printf("\t\t┃* ★★★★* ┃\n"); printf("\t\t┃* ☆☆☆☆* ┃\n"); printf("\t\t┃* ★★★★* ┃\n"); printf("\t\t┃* ☆☆* ┃\n"); printf("\t\t┃* * ┃\n"); printf("\t\t┃* * * * * * * * * * * * * * * * * * * ┃\n");printf("\t\t┗━━━━━━━━━━━━━━━━━━━┛\n"); printf("\n\t\t\t\3\3\3\3\3\3\3\3\3 简介 1 \3\3\3\3\3\3\3"); printf("\n\n\n\t\t\t\3\3\3\3\3\3\3\3\3 登录 2 \3\3\3\3\3\3\3"); printf("\n\n\n\t\t\t\3\3\3\3\3\3\3\3\3 退出 3 \3\3\3\3\3\3\3"); printf("\n\t\t\t请选择:");scanf("%d",&i);switch(i){ //case语句,控制输入情况case 1:j=0;introduce(G);break;case 2:j=0;menu(G);break;case 3:j=0;exit(0);default:printf("输入有误,请重新输入"); //增强程序健壮性j=1;}}return 0;}四、算法设计思想及流程图4.1 算法设计思想首先,在定义四维数组的数据类型时,我选择了整型以方便编程及利于数据的输入和输出。

《数据结构》课程设计题目

《数据结构》课程设计题目

《数据结构》课程设计题目《数据结构》课程设计题目课程设计题一:学生成绩管理系统设计目的:1.2.3. 掌握线性链表的建立。

掌握线性链表的基本操作。

掌握查找的基本算法。

设计内容:利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。

设计要求:1.2.3.写出系统需求分析,并建模。

编程实现,界面友好。

输出操作前后的结果。

课程设计题二:停车场管理系统设计目的:1.2.3.4. 掌握栈和队列的建立。

掌握栈和队列的基本操作。

深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。

加深对栈和队列的理解和认识。

设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。

停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆在依原来的次序进场。

每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。

编制一程序模拟该停车场的管理。

设计要求:1. 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

2. 每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。

3. 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。

10年《数据结构》课程设计参考题

10年《数据结构》课程设计参考题

数据结构课程设计要求1.学生必须仔细阅读《数据结构》课程设计题目,认真主动完成课设的要求。

有问题及时主动与老师联系沟通。

2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况。

3.课程设计完成要求运行界面友好(有菜单)、操作方便、输出结果正确、可读性强,每种操作有验证性输出。

4.按规定时间提交课程设计报告,过期计为0分。

课程设计实习报告封面的书写格式课程设计课程:数据结构题目:专业班级:姓名:学号:设计时间:指导教师:课程设计报告的内容一、设计题目二、运行环境(软、硬件环境)三、算法设计的思想四、算法的流程图五、算法设计分析六、源代码七、运行结果分析八、收获及体会《数据结构》课程设计参考题课程设计题一:排序算法比较一、设计目的1.掌握各种排序的基本思想。

2.掌握各种排序方法的算法实现。

3.掌握各种排序方法的优劣分析及花费的时间的计算。

4.掌握各种排序方法所适应的不同场合。

二、设计内容和要求利用随机函数产生3000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。

--------------------------------------课程设计题二:图的深度周游一、设计目的1.掌握图的邻接表存贮结构。

2.掌握堆栈的基本运算实现。

3.掌握图的邻接表的算法实现。

4.掌握图的深度优先搜索周游算法实现。

二、设计内容和要求对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索周游。

-------------------------------------- 课程设计题三:图的广度周游一、设计目的1.掌握图的邻接表存贮结构。

2.掌握队列的基本运算实现。

3.掌握图的邻接表的算法实现。

4.掌握图的广度优先搜索周游算法实现。

数据结构课程设计题目及要求

数据结构课程设计题目及要求

实验一~实验四任选一题;实验五~实验九任选一题。

实验一运动会分数统计一、实验目的:(1)熟练掌握线性表的两种存储方式(2)掌握链表的操作和应用。

(3)掌握指针、结构体的应用(4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。

二、实验内容:【问题描述】参加运动会的n个学校编号为1~n。

比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。

由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。

写一个统计程序产生各种成绩单和得分报表。

【基本要求】产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。

【测试数据】对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。

【实现提示】可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。

每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。

【选作内容】允许用户指定某些项目可采取其他名次取法。

实验二停车场管理一、实验目的:(1)熟练掌握栈顺存和链存两种存储方式。

(2)掌握栈的基本操作及应用。

(3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

二、实验内容:【问题描述】设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。

汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题⽬《数据结构》课程设计题⽬1. 排序算法的性能分析问题描述设计⼀个测试程序,⽐较⼏种内部排序算法的关键字⽐较次数和移动次数以取得直观感受。

基本要求(1)对冒泡排序、直接排序、选择排序、箱⼦排序、堆排序、快速排序及归并排序算法进⾏⽐较。

(2)待排序表的表长不⼩于100,表中数据随机产⽣,⾄少⽤5组不同数据作⽐较,⽐较指标:关键字参加⽐较次数和关键字的移动次数(关键字交换记为3次移动)。

(3)输出⽐较结果。

选做内容(1)对不同表长进⾏⽐较。

(2)验证各算法的稳定性。

(3)输出界⾯的优化。

2. 排序算法思想的可视化演⽰—1基本要求排序数据随机产⽣,针对随机案例,对冒泡排序、箱⼦排序、堆排序、归并算法,提供排序执⾏过程的动态图形演⽰。

3. 排序算法思想的可视化演⽰—2基本要求排序数据随机产⽣,针对随机案例,,对插⼊排序、选择排序、基数排序、快速排序算法,提供排序执⾏过程的动态图形演⽰。

4. 线性表的实现与分析基本要求①设计并实现线性表。

②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储⽅式③针对随机产⽣的线性表实例,实现线性表的插⼊、删除、搜索操作动态演⽰(图形演⽰)。

5. 等价类实现及其应⽤问题描述:某⼯⼚有⼀台机器能够执⾏n个任务,任务i的释放时间为r i(是⼀个整数),最后期限为d i(也是整数)。

在该机上完成每个任务都需要⼀个单元的时间。

⼀种可⾏的调度⽅案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。

⼀个时间段不允许分配给多个任务。

基本要求:使⽤等价类实现以上机器调度问题。

等价类分别采取两种数据结构实现。

6. ⼀元稀疏多项式计算器问题描述设计⼀个⼀元稀疏多项式简单计算器。

基本要求⼀元稀疏多项式简单计算器的基本功能是:(1)输⼊并建⽴多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相加,建⽴多项式a+b;(4)多项式a和b相减,建⽴多项式a-b;(5)计算多项式在x处的值;(6)计算器的仿真界⾯(选做)7. 长整数的代数计算问题描述应⽤线性数据结构解决长整数的计算问题。

2010年硕士研究生入学考试“数据结构与C语言程序设计”试题与答案

2010年硕士研究生入学考试“数据结构与C语言程序设计”试题与答案

13.C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是 A.单向值传递 B.地址传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 14.C 语言规定,函数返回值的类型是由 A.return 语句中的表达式的类型所决定 B.调用该函数时的主函数的类型所决定 。
3
C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数的类型所决定 15.下面给出的 4 个定义语句中,与 int *p[5]; 等价的是 。 A.int p[5]; B.int *p; C.int *(p[5]); 16.若有以下定义和语句,则值为 1002 的表达式是 。 struct s{ int age; int num; }; static struct s a[3]={1001,20,1002,19,1003,21},*ptr; ptr=a; A.ptr++->num B.(ptr++)->age C.(*ptr).num D.(*++ptr).age 17.若要通过下面的程序段使得指针变量指向一个存储整型变量的动态存储单元,则程序段中的空 。 白处(横线上方)应该是 int *ptr; ptr= malloc(sizeof(int)); A.int B.int * C.(int *) D.(*int ) 。 18.下面关于宏的叙述中,错误的是 A.宏名无类型,其参数也无类型 B.宏定义不是 C 语句,不必在行的末尾加分号 C.宏替换只是字符替换 D.宏定义命令必须写在文件的开头 。 19.下列关于 C 语言文件操作的叙述中,正确的是 A.对文件的操作必须是先打开文件 B.对文件的操作必须是先关闭文件 C.对文件操作之前必须先测试文件是否已打开,然后再打开文件 D.对文件的操作无顺序要求 20.使用 fopen( )函数以文本方式打开或者建立可读写文件。要求:若指定文件不存在,则建立一 个文件,并使文件指针指向其开头;若指定文件存在,则打开该文件,并将文件指针指向其结尾。下列 。 “文件使用方式”中,正确的是 A.“r+” B.“ a+” C.“ w+” D.“a”

约瑟夫环课程设计(数据结构).pptx

约瑟夫环课程设计(数据结构).pptx
1
列编号序列。
2
目录
1 需求分析 ........................................................ 2
1. 功能分析 2 2. 设计平台 2
2 概要设计 ........................................................ 2
数计数器。当随机输入初始密码 m0 时即从第一个人报起,到第 m 时取出 m 并显示,在释放该指针指向 m 的值,从删除位的下一个人开始报起,按该 人的密码为 m 实现对总个链表的输出,指针没报数一次则后移一个节点。 实现代码:pre->next=p->next; printf("%d ",p->n); m0=p->m;free(p); p=pre->next; 3. 异常处理及屏幕清理 clean() system("cls"); 对上次输入的及运行结果是否进行屏幕清理工作。使程序运 行界面不至于太过混乱,也可以将第二次的实验结果和先前的实验结果进行比较 从而可以发现程序是否出现运行错误,便于检查和修改。
==3==
5
3.程序设计主要流程
1. 程序实现流程图(图 3-1)
主菜单
1.输入约瑟夫 环
2.显示约瑟夫环问题的 描述
3.结束界面
==1==
3
1. 需求分析
1. 功能分析 本次选做的课程设计是改进约瑟夫(Joseph)环问题。我选择了和罗源两
个人来完成本次课程设计的作业。约瑟夫环问题是一个古老的数学问题,本次课 题要求用程序语言的方式解决数学问题。此问题仅使用单循环链表就可以解决此 问题。
在建立单向循环链表时,因为约瑟夫环的大小由输入决定。为方便操作,我 们将每个结点的数据域的值定为生成结点时的顺序号和每个人持有的密码。进行 操作时,用一个指针 r 指向当前的结点,指针 H 指向头结点。然后建立单向循环 链表,因为每个人的密码是通过 scanf()函数输入随机生成的,所以指定第一个人 的顺序号,找到结点,不断地从链表中删除链结点,直到链表剩下最后一个结点, 通过一系列的循环就可以解决改进约瑟夫环问题。

数据结构和算法课程设计题目

数据结构和算法课程设计题目

北方民族大学课程设计课程名称:数据结构与算法院(部)名称:信息与计算科学学院组长姓名学号同组人员姓名指导教师姓名:纪峰设计时间:2010.6.7----2009.6.27一、《数据结构与算法》课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员不得重复)1、编写函数实现顺序表的建立、查找、插入、删除运算。

2、编写函数分别实现单链表的建立、查找、插入、删除、逆置算法。

3、编写函数实现双向链表的建立、插入、删除算法。

4、编写函数实现顺序栈的进栈、退栈、取栈顶的算法。

5、编写函数实现链栈的进栈、退栈、取栈顶的算法。

6、编写函数实现双向顺序栈的判空、进栈、出栈算法。

7、编写函数实现循环队列的判队空、取队头元素、入队、出队算法。

8、编写函数实现链环队列的判队空、取队头节点、入队、出队算法。

9、编写函数实现串的,求串长、连接、求字串、插入、删除等运算。

10、分别实现顺序串和链串的模式匹配运算。

11、实现二叉树的建立,前序递归遍历和非递归遍历算法。

12、实现二叉树的建立,中序递归遍历和非递归遍历算法。

13、实现二叉树的建立,后序递归遍历和非递归遍历算法。

14、实现二叉树的中序线索化,查找*p结点中序下的前驱和后继结点。

15、分别以临接表和邻接矩阵作为存储就够实现图的深度优先搜索和广度优先搜索算法。

16、利用线性探测处理冲突的方法实现散列表的查找和插入算法。

(二)参考题目二(每三人一组,任选三个题目完成)1.运动会分数统计(限1人完成)任务:参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目题目1:设计链表结构的相关函数库,以便在程序设计中调用。

要求:(1)实现链表的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。

(限选1-2人)题目2:设计顺序表结构的相关函数库,以便在程序设计中调用。

要求:(1)实现顺序表的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。

(限选1-2人)题目3:设计程序以实现任意两个高次多项式的加法和减法运算。

要求:(1)所设计的数据结构应尽可能节省存储空间;(2)程序的运行时间尽可能少。

(限选1-2人)题目4:设计一个模拟计算机器程序,要求能对包含加、减、乘、除、括号运算符及SQR 和ABS函数的任意整型表达式进行求解。

要求:运算前应先检查有关运算条件,并对错误产生报警。

(限选2-3人)题目5:设计二叉链表结构的相关函数库,以便在程序设计中调用。

要求:(1)实现二叉树的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。

(限选1-2人)题目6:设计树结构的相关函数库,以便在程序设计中调用。

要求:(1)包括树的存储结构及各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。

(限选1-2人)题目7:设计程序以实现构造哈夫曼树的哈夫曼算法。

要求:求解所构造的哈夫曼树的带权路径长度。

(限选1-2人)题目8:设计图结构的相关函数,以便在程序设计中调用。

要求:(1)实现图的存储结构及各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。

(限选1-2人)题目9:设计程序完成如下功能:对给定的图和起点,产生其所有的深度优先遍历序列。

(1-2人)题目10:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的Prim算法。

(限选1-2人)题目11:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的Kruskal算法。

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目(2010级)1.个人帐簿管理系统设计任务:个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。

进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。

要求:根据以上任务说明,设计数据结构,并设计程序完成功能。

2.迷宫问题任务:教材P50。

要求:设计数据结构,并设计程序完成功能。

3. 利用栈求表达式的值(必做)任务:建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括号的整数混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。

(假设这是一个可供小学生练习算术运算的小系统)要求:根据以上任务说明,设计程序完成功能。

4. 一元多项式计算任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出。

要求:根据以上任务说明,设计数据结构,并设计程序完成功能。

5. 文本处理任务:设文本信息(包括英文字母、数字、空格、括号及其他符号)存储于一个文本文件中,编写程序统计出其中英文字母、数字、空格的个数。

要求:(1)分别统计出其中英文字母数和空格数及整篇文章总符号数;(2)统计指定的字符串在文章中出现的次数,并输出;(3)删除指定的字符串,并将后面的字符前移。

提示:设文本文件中的信息按行存储,每行最多不超过80个字符,共N行;使用线性表,逐行从文件中读取字符信息到线性表中,分别用几个子函数实现相应的功能。

6. Huffman编码/译码器(必做)任务:设计一个利用哈夫曼算法的编码和译码系统。

要求:建立一个文本文件,统计该文件中各字符频率,对各字符进行Huffman编码,将该文件翻译成Huffman编码文件,再将Huffman编码文件翻译成原文件。

“压缩文件”即:读文件、统计文件中的字符个数、对文件进行哈夫曼编码和译码、并将编码译码后的字符存储在文件中。

浙江理工大学数据结构与数据库技术2010真题

浙江理工大学数据结构与数据库技术2010真题

浙江理工大学二O一O年硕士学位研究生招生入学考试试题考试科目:数据结构与数据库技术代码:938 (*请考生在答题纸上答题,在此试题纸上答题无效)第一部分:数据结构(本部分共90分)一、程序设计题1. 假设以带头节点的循环链表表示队列,并且只设一个队尾指针rear,不设队首指针,试编写相应的入队列和出队列一个结点的算法。

(20分)2.一颗树的根其层次定义为0。

任何其它结点的层次定义为比它的双亲的层次大1。

树的深度是层次最大的结点的层次。

一颗树的内部路径长度是该树中边的总数。

已知二叉树的根结点为t,其二叉链表结构定义如下:typedef struct node {char data;struct node *lch,*rch;int level;} tnode ;这里,data为结点的名称,lch为其左孩子,rch为其右孩子,level为结点的层次。

试编写非递归程序算法,输出这颗树的深度和内部路径长度。

(25分)3.已知哈希(Hash)函数H(k)=k%p(k为线性表的关键字),用开放地址法处理冲突,其中:d1=H(k),d i=( d i-1+m)%p (i=2,3,,…);试编写程序算法,在H[0~p-1]的散列地址空间中,对关键字序列a[0],a[1],…,a[p-1]构造哈希表(假设每个关键字最终都能找到地址),并计算输出在等概率情况下查找成功的平均查找长度。

(20分)4.已知单链表结构如下所示。

头指针为head,关键字域为key。

试编写程序构造一个单链表,将串s中的每个字符存放到单链表中去(每个结点存放一个字符),同时在已有的单链表基础上,编写程序采用直接插入排序算法将单链表中的各个结点按字符值大小进行升序排序。

(25分)typedef struct node {char key;struct node *next;} lnode;第二部分:数据库技术(本部分共60分)二、解答题(下列各题中任选6小题解答,每小题10分,按得分最多的6小题计算分数,本题得分最多不超过60分)数据库Sales用来存放某企业销售数据,它有4张表,表Products用来存放产品信息(其中合计销售额amount是未知的);表Customers用来存放客户信息;表Orders用来存放订单总体信息;OrderDetails用来存放订单明细信息。

数据结构课程设计哈夫曼编码[1]

数据结构课程设计哈夫曼编码[1]

《数据结构与算法》课程设计(2009/2010学年第二学期第20周)指导教师:王老师班级:计算机科学与技术(3)班学号:姓名:《数据结构与算法》课程设计目录一、前言1.摘要2.《数据结构与算法》课程设计任务书二、实验目的三、题目--赫夫曼编码/译码器1.问题描述2.基本要求3.测试要求4.实现提示四、需求分析--具体要求五、概要设计六、程序说明七、详细设计八、实验心得与体会前言1.摘要随着计算机的普遍应用与日益发展,其应用早已不局限于简单的数值运算,而涉及到问题的分析、数据结构框架的设计以及设计最短路线等复杂的非数值处理和操作。

算法与数据结构的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。

算法与数据结构旨在分析研究计算机加工的数据对象的特性,以便选择适当的数据结构和存储结构,从而使建立在其上的解决问题的算法达到最优。

数据结构是在整个计算机科学与技术领域上广泛被使用的术语。

它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。

数据结构有逻辑上的数据结构和物理上的数据结构之分。

逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。

数据结构是数据存在的形式。

《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。

数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。

学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。

通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。

2.《数据结构与算法》课程设计任务书《数据结构与算法》是计算机专业重要的核心课程之一,在计算机专业的学习过程中占有非常重要的地位。

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

一、数据结构课程设计要求1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。

有问题及时主动通过各种方式与教师联系沟通。

2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。

3.课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上2小时的上机来调试C 或C++语言设计的程序,总共至少要上机调试程序20小时。

属教师安排上机时间学生不得缺席。

二、数据结构课程设计题目1. 运动会分数统计(限1 人完成)任务:参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)功能要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分,3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

5) 数据存入文件并能随时查询6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;2. 飞机订票系统(限1 人完成)任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;3. 文章编辑(限1 人完成)功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;4. 纸牌游戏(限1 人完成)任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?5. 宿舍管理查询软件(限1 人完成)1) 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:A. 采用交互工作方式B. 建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)2) 查询菜单: (用二分查找实现以下操作)A. 按姓名查询B. 按学号查询C. 按房号查询3) 打印任一查询结果(可以连续操作)6. 地图着色问题(限1 人完成)设计要求:已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少。

7. 校园导航问题(限1 人完成)设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

8. 学校超市选址问题(带权有向图的中心点)(限1 人完成)设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。

请为超市选址,要求实现总体最优。

9. 教学计划编制问题(限1 人完成)设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

10. 散列法的实验研究(限1 人完成)散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同。

两者是影响查询算法性能的关键因素。

对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响。

11. 图书借阅管理系统(限1 人完成)主要分为两大功能:1) 图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2) 会员管理(增加会员、查询会员、删除会员、借书信息);12. 学生成绩管理(限1 人完成)实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。

13. 活期储蓄帐目管理(限1 人完成)活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:1) 能比较迅速地找到储户的帐户,以实现存款、取款记账;2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

14. 二叉排序树的实现(限1 人完成)用顺序和二叉链表作存储结构1) 以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;2) 对二叉排序树T作中序遍历,输出结果;3) 输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;15. 最小生成树问题(限1 人完成)设计要求:在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。

存储结构采用多种。

求解算法多种。

16. 通讯录的制作(限1 人完成)设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。

编写一个通讯录管理系统。

以把所学数据结构知识应用到实际软件开发中去。

设计内容:本系统应完成一下几方面的功能:1) 输入信息——enter();2) 显示信息———display( );3) 查找以姓名作为关键字———search( );4) 删除信息———delete( );5) 存盘———save ( );6) 装入———load( ) ;设计要求:1) 每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STA TE)几项2) 作为一个完整的系统,应具有友好的界面和较强的容错能力3) 上机能正常运行,并写出课程设计报告17. 哈夫曼编码/译码器(限1 人完成)【问题描述】设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。

【基本要求】1) 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)2) 分别采用动态和静态存储结构3) 初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;4) 编码:利用建好的哈夫曼树生成哈夫曼编码;5) 输出编码;6) 设字符集及频度如下表:字符空格 A B C D E F G H I J K L M频度186 64 13 22 32 103 21 15 47 57 1 5 32 20字符N O P Q R S T U V W X Y Z频度57 63 15 1 48 51 80 23 8 18 1 16 1【进一步完成内容】1) 译码功能;2) 显示哈夫曼树;3) 界面设计的优化。

18. 图书管理系统(限1 人完成)【问题描述】设计一个计算机管理系统完成图书管理基本业务。

【基本要求】1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;2) 对书号建立索引表(线性表)以提高查找效率;3) 系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。

【进一步完成内容】1) 系统功能的进一步完善;2) 索引表采用树表。

3) 设计内容4) 程序流程图5) 源程序6) 软件测试报告(包括所用到的数据及结果)19. 散列表的设计与实现(限1 人完成)【问题描述】设计散列表实现电话号码查找系统。

【基本要求】1) 设每个记录有下列数据项:电话号码、用户名、地址;2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3) 采用一定的方法解决冲突;4) 查找并显示给定电话号码的记录;5) 查找并显示给定用户名的记录。

【进一步完成内容】1) 系统功能的完善;2) 设计不同的散列函数,比较冲突率;3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

20. 走迷宫游戏(限1 人完成)程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。

游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。

要求:1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;2) 迷宫的墙足够结实,老鼠不能穿墙而过;3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;5) 找出走出迷宫的所有路径,以及最短路径。

利用序列化功能实现迷宫地图文件的存盘和读出等功能21. 顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。

(限1 人完成)设有一元多项式Am(x)和Bn(x).Am(x)=A0+A1x1+A2x2+A3x3+… +AmxmBn(x)=B0+B1x1+B2x2+B3x3+… +Bnxn请实现求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。

相关文档
最新文档