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

合集下载

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目一、题目背景在现代科技发展的背景下,数据结构作为计算机科学的重要基础课程,对于培养学生的编程思维、数据处理能力具有重要的作用。

本篇课程设计将围绕数据结构的实际应用,设计一个能够提升学生数据结构理论与实践能力的题目。

二、题目描述你需要设计一个软件,实现以下功能:能够记录学生信息并进行相关的数据操作。

具体要求如下:1. 学生信息包括:学生学号、姓名、性别、年龄、身高、体重等基本信息;2. 软件需要实现以下操作:a. 添加学生信息:可以手动添加每个学生的详细信息,并将其记录到数据库中;b. 删除学生信息:能够根据学号或姓名删除指定学生的信息;c. 修改学生信息:能够根据学号或姓名修改指定学生的信息;d. 查询学生信息:能够按照学号、姓名、性别、年龄等条件进行学生信息的查询,并将结果以列表形式展示;e. 统计学生信息:能够统计学生的平均年龄、平均身高、平均体重等统计数据,并展示在界面上;f. 数据导入导出:能够将学生信息导入/导出到文件或数据库中,实现数据的持久化存储。

三、设计思路为了实现上述功能,你可以采用以下的设计思路:1. 数据结构选择:可以使用链表、数组、树等数据结构存储学生信息,具体根据功能需求来选择合适的数据结构;2. 界面设计:考虑采用图形界面或者命令行界面,以提供方便的操作方式;3. 数据存储:可以使用文件、数据库等方式进行数据的存储和读取,以实现数据的持久化;4. 算法设计:在实现功能的过程中,需要考虑合适的算法来实现快速的查找、删除和修改等操作;5. 错误处理:在设计过程中,需要考虑各种可能的错误情况,并进行相应的处理和提示。

四、实施步骤为了顺利完成该课程设计,你可以按照以下步骤进行:1. 分析题目需求:仔细阅读以上题目描述,明确实现各项功能的具体要求;2. 设计数据结构:选择合适的数据结构来存储学生信息,考虑数据的增删改查等操作的效率;3. 设计算法:根据功能需求,设计相应的算法来实现各项操作;4. 实现界面:根据选择的界面方式,设计相应的图形界面或命令行交互界面;5. 实现功能:按照题目要求,逐个实现各项功能,并进行测试;6. 完善细节:对界面进行美化,完善用户交互体验,处理各种错误情况;7. 测试与调试:对整个软件进行全面的测试,并进行调试修复可能存在的问题;8. 编写报告:撰写课程设计报告,详细记录设计过程、实现方法、遇到的问题以及解决方案等。

数据结构课程设计题目

数据结构课程设计题目

题目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的信息。

2011《数据结构》课程设计

2011《数据结构》课程设计

《数据结构》课程设计要求一、本课程的地位、目的《数据结构》课程设计是计算机科学技术专业集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。

开设该课程设计的主要目的是:1. 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。

2. 使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。

3. 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。

二、课程设计的内容和要求根据课程设计的时间和个人能力,在老师的协助下选择适当难度的课程设计课题,用C/C++语言实现。

具体内容如下:1、需求分析以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:输入的形式,输出的形式和值的范围;程序所能达到的功能;测试的数据。

2、概要设计说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。

3、详细设计实现概要设计中定义的所有数据类型,对每个操作只需要写出伪代码算法,画出函数的调用关系图。

4、调试分析调试过程中遇到的问题并且是如何解决的以及对设计实现的回顾讨论和分析;算法的时空分析(包括基本操作和主要算法的时空复杂度的分析)和改进设想;经验和体会等5、用户使用说明说明用户如何使用你编写的程序,详细列出每一步的操作步骤。

6、测试结果列出测试结果,包括输入的数据和相应的输出数据。

7、附录详细注释的源程序。

具体要求如下:1. 巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。

2. 培养学生自学参考书籍,查阅手册、图表和文献资料的能力。

3. 通过实际课程设计,初步掌握简单软件的分析方法和设计方法。

4. 了解与课程有关的工程技术规范,能正确解释和分析实验结果。

三、与其它课程的联系先修课程为《C语言程序设计》和《数据结构》等。

四、课程设计报告撰写课程设计报告包括:封面、任务书、目录、正文和参考文献等。

数据结构课程设计2011

数据结构课程设计2011

学生课程设计报告开课学院国际教育学院指导教师姓名佘名高学生姓名学生专业班级10春/秋计算机2011 —2012学年第一学期数据结构课程设计2011-12●课程设计题目与内容用C语言编制一个统计学生考试分数的管理程序。

◇设学生成绩已以一个学生一个记录的形式存储在文件中,每位学生记录包含的信息有:姓名,学号和各门功课的成绩。

◇程序具有以下几项功能:⑴求出各门课程的总分,平均分;⑵按姓名,按学号寻找其记录并显示;⑶浏览全部学生成绩和按总分由高到低显示学生信息等。

#include <stdio.h>#define SWN 3 /* 课程数*/#define NAMELEN 20 /* 姓名最大字符数*/#define CODELEN 10 /* 学号最大字符数*/#define FNAMELEN 80 /* 文件名最大字符数*/#define BUFLEN 80 /* 缓冲区最大字符数*//* 课程名称表*/char schoolwork[SWN][NAMELEN+1] = {"Chinese","Mathematic","English"};struct record{char name[NAMELEN+1]; /* 姓名*/char code[CODELEN+1]; /* 学号*/int marks[SWN]; /* 各课程成绩*/int total; /* 总分*/}stu;struct node{char name[NAMELEN+1]; /* 姓名*/char code[CODELEN+1]; /* 学号*/int marks[SWN]; /* 各课程成绩*/int total; /* 总分*/struct node *next; /* 后续表元指针*/}*head; /* 链表首指针*/int total[SWN]; /* 各课程总分*/FILE *stfpt; /* 文件指针*/char stuf[FNAMELEN]; /* 文件名*//* 从指定文件读入一个记录*/int readrecord(FILE *fpt,struct record *rpt){char buf[BUFLEN];int i;if(fscanf(fpt,"%s",buf)!=1)return 0; /* 文件结束*/strncpy(rpt->name,buf,NAMELEN);fscanf(fpt,"%s",buf);strncpy(rpt->code,buf,CODELEN);for(i=0;i<SWN;i++)fscanf(fpt,"%d",&rpt->marks[i]);for(rpt->total=0,i=0;i<SWN;i++)rpt->total+=rpt->marks[i];return 1;}/* 对指定文件写入一个记录*/writerecord(FILE *fpt,struct record *rpt){int i;fprintf(fpt,"%s\n",rpt->name);fprintf(fpt,"%s\n",rpt->code);for(i=0;i<SWN;i++)fprintf(fpt,"%d\n",rpt->marks[i]);return ;}/* 显示学生记录*/displaystu(struct record *rpt){int i;printf("\nName : %s\n",rpt->name);printf("Code : %s\n",rpt->code);printf("Marks :\n");for(i=0;i<SWN;i++)printf(" %-15s : %4d\n",schoolwork[i],rpt->marks[i]);printf("Total : %4d\n",rpt->total);}/* 计算各单科总分*/int totalmark(char *fname)FILE *fp;struct record s;int count,i;if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return 0;}for(i=0;i<SWN;i++)total[i]=0;count=0;while(readrecord(fp,&s)!=0){for(i=0;i<SWN;i++)total[i]+=s.marks[i];count++;}fclose(fp);return count; /* 返回记录数*/}/* 列表显示学生信息*/void liststu(char *fname){FILE *fp;struct record s;if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return ;}while(readrecord(fp,&s)!=0){displaystu(&s);printf("\n Press ENTER to continue...\n");while(getchar()!='\n');}fclose(fp);return;}/* 构造链表*/struct node *makelist(char *fname)FILE *fp;struct record s;struct node *p,*u,*v,*h;int i;if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return NULL;}h=NULL;p=(struct node *)malloc(sizeof(struct node));while(readrecord(fp,(struct record *)p)!=0){v=h;while(v&&p->total<=v->total){u=v;v=v->next;}if(v==h)h=p;elseu->next=p;p->next=v;p=(struct node *)malloc(sizeof(struct node));}free(p);fclose(fp);return h;}/* 顺序显示链表各表元*/void displaylist(struct node *h){while(h!=NULL){displaystu((struct record *)h);printf("\n Press ENTER to continue...\n");while(getchar()!='\n');h=h->next;}return;}/* 按学生姓名查找学生记录*/int retrievebyn(char *fname, char *key){FILE *fp;int c;struct record s;if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return 0;}c=0;while(readrecord(fp,&s)!=0){if(strcmp(,key)==0){displaystu(&s);c++;}}fclose(fp);if(c==0)printf("The student %s is not in the file %s.\n",key,fname);return 1;}/* 按学生学号查找学生记录*/int retrievebyc(char *fname, char *key){FILE *fp;int c;struct record s;if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return 0;}c=0;while(readrecord(fp,&s)!=0){if(strcmp(s.code,key)==0){displaystu(&s);c++;break;}}fclose(fp);if(c==0)printf("The student %s is not in the file %s.\n",key,fname);return 1;}main(){int i,j,n;char c;char buf[BUFLEN];FILE *fp;struct record s;clrscr();printf("Please input the students marks record file's name: ");scanf("%s",stuf);if((fp=fopen(stuf,"r"))==NULL){printf("The file %s doesn't exit, do you want to creat it? (Y/N) ",stuf);getchar();c=getchar();if(c=='Y'||c=='y'){fp=fopen(stuf,"w");printf("Please input the record number you want to write to the file: ");scanf("%d",&n);for(i=0;i<n;i++){printf("Input the student's name: ");scanf("%s",&);printf("Input the student's code: ");scanf("%s",&s.code);for(j=0;j<SWN;j++){printf("Input the %s mark: ",schoolwork[j]);scanf("%d",&s.marks[j]);}writerecord(fp,&s);}fclose(fp);}}fclose(fp);getchar();/*clrscr();*/puts("Now you can input a command to manage the records.");puts("m : mean of the marks.");puts("t : total of the marks.");puts("n : search record by student's name.");puts("c : search record by student's code.");puts("l : list all the records.");puts("s : sort and list the records by the total.");puts("q : quit!");while(1){puts("Please input command:");scanf(" %c",&c); /* 输入选择命令*/if(c=='q'||c=='Q'){puts("\n Thank you for your using.");break; /* q,结束程序运行*/}switch(c){case 'm': /* 计算平均分*/case 'M':if((n=totalmark(stuf))==0){puts("Error!");break;}printf("\n");for(i=0;i<SWN;i++)printf("%-15s's average is: %.2f.\n",schoolwork[i],(float)total[i]/n);break;case 't': /* 计算总分*/case 'T':if((n=totalmark(stuf))==0){puts("Error!");break;}printf("\n");for(i=0;i<SWN;i++)printf("%-15s's total mark is: %d.\n",schoolwork[i],total[i]);break;case 'n': /* 按学生的姓名寻找记录*/case 'N':printf("Please input the student's name you want to search: ");scanf("%s",buf);retrievebyn(stuf,buf);break;case 'c': /* 按学生的学号寻找记录*/case 'C':printf("Please input the student's code you want to search: ");scanf("%s",buf);retrievebyc(stuf,buf);break;case 'l': /* 列出所有学生记录*/case 'L':liststu(stuf);break;case 's': /* 按总分从高到低排列显示*/case 'S':if((head=makelist(stuf))!=NULL)displaylist(head);break;default: break;}}}小结:(学生自己写出感受和体会,字数500字)。

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

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

数据结构课程设计题目(最终版)数据结构课程设计题目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。

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

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

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

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

掌握查找的基本算法。

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

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

编程实现,界面友好。

输出操作前后的结果。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构课程设计报告(最终版)

数据结构课程设计报告(最终版)

数据结构课程设计报告
题目:
组长:
成员:
成员:
成员:
成员:
成员:
指导教师:
年月日
一、课程设计题目:
二、问题定义:(由教师指定)
三、需求分析
以明确的无歧义的陈述说明课程设计的任务,强调的是程序要做什么?并明确规定:
1、输入的形式和输入值的范围;
2、输出的形式;
3、程序所能达到的功能;
4、算法涉及的基本理论分析:比如对文件压缩,算法用到了
Huffman树,就要从理论上对文件压缩的几种方式、Huffman树的定义、Huffman编码的原理、解码的过程等进行分析。

5、题目研究和实现的价值。

四、算法设计
1、概要设计
阐述说明本算法中用到的所有数据结构的定义及其含义、主程序的流程以及各程序模块之间的层次(调用)关系。

3.详细设计
(1)实现概要设计中定义的所有数据类型;
(2)所有函数的接口描述;
(3)所有函数的算法描述(只需要写出伪码算法);
(3)对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序),可采用流程图、N – S 图或PAD图进行描述
(4)画出函数的调用关系图。

五、算法实现
以附件形式
六、软件测试
这里的测试主要是基于功能的黑盒测试,所以首先提出测试的功能点,然后给出测试数据(包括正确的输入及其输出结果和含有错误的输入及其输出结果。


要求在附件里给出软件的基本数据和测试数据。

七、技术讨论(可选)
八、收获与体会
九、软件运行的部分截图及说明。

《数据结构》课程设计2011-2012-2

《数据结构》课程设计2011-2012-2

《数据结构》课程设计2011-2012-2题目一:池塘夜降彩色雨【问题描述】:设计一个程序,演示美丽的“池塘夜雨”景色;色彩缤纷的雨点飘飘洒洒地从天而降,滴滴入水有声,溅起圈圈微澜。

【基本要求】:(1)雨点的空中出现位置、降落过程的可见程度、入水位置、颜色、最大水圈等,都是随机确定的;(2)多个雨点按照各自的随机参数和存在状态,同时演示在屏幕上。

(3)增加“电闪雷鸣”景象。

(4)增加风的效果,展现“风雨飘摇”的情景题目二:哈夫曼编码器【问题描述】:利用哈夫曼树实现编码并译码的系统。

【基本要求】:从终端读入一段字符集,系统自动统计出字符的个数n以及各个字符出现的次数w作为权值,建立哈夫曼树,并将哈夫曼树以凹入表示法的形式显示在屏幕上。

利用已建好的哈夫曼树对字符进行编码,并将该段文字的编码存人一个文件code中,然后输出这段编码。

题目三:算术表达式求值演示【问题描述】:表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。

设计一个程序,演示中缀表达式变为后缀表达式并对后缀表达式求值的过程。

【基本要求】:以字符序列的方式从终端输入语法正确的、不含变量的整数表达式。

利用中缀表达式变为后缀表达式算法和后缀表达式的求值算法实现对算术四则混合运算表达式的求值,并演示出在求值中运算符栈、操作数栈、输入字符和主要操作的变化过程。

题目四:农夫过河问题【问题描述】:从前,一个农夫带着一只狼,一只羊和一棵白菜过河(注意该狼已经被农夫驯服了,但还是会吃羊)。

他要将所有东西安全的带到河的对岸。

不幸的是河边只有一条小船,只能装下农夫和他的一样东西,并且农夫必须每次都随船过河,因为只有他能撑船。

在无人看管的情况下,狼要吃羊,羊要吃白菜,因此农夫不能在河的某边岸上单独留下狼和羊,也不能单独留下羊和白菜。

那么农夫如何才能使三样东西平安过河呢?【基本要求】:1、输出农夫过河问题求解的详细步骤。

2、分别采用深度优先搜索算法和广度优先搜索算法实现。

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

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

数据结构课程设计题目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。

数据结构与算法课程设计题目-2011-2012-2(10级)

数据结构与算法课程设计题目-2011-2012-2(10级)

X1=[4,3,0,4,3,0,7,0,0,2] X是向量 X1 和 X2 的相对距离,s=sqrt( ∑(x i1 -x i2 )
2
),当 X1=X2 时,s=0, 反映出可能是
同一个程序;s 值越大,则两个程序的差别可能也越大,分析计算结果,给出相似度的结论。
1
修课为例,选择 12 门课程及相应学分,制定一个表明各门课程先后约束关系的有向图。 提高要求:产生多种不同的方案,并使方案之间的差异尽可能地大。 8. 计算表达式的值(**) 问题描述:对于给定的一个表达式,表达式中可以包括常数、算术运行符( 、 、 、 “+”“-”“*” “/” )和括号,编写程序计算表达式的值。 基本要求:从键盘输入一个正确的中缀表达式,将中缀表达式转换为对应的后缀表达式,计 算后缀表达式的值。 测试数据:任意选取一个符合题目要求的表达式。 提高要求: (1)对于表达式中的简单错误,能够给出提示; (2)不仅提示错误,也能给出错误信息 (3)表达式中可以包括单个字母表示的变量 (4)能够处理多种操作符 (5)实现包含简单运算的计算器 (6)实现一个包含简单运算和函数运算的计算器 9. 设计 Huffman 编码器与解码器(**) 问题描述:利用哈夫曼编码进行信息通讯可以大大提高信道的利用率,缩短信息传输时间, 降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码;在接受端将传 来的数据进行译码。对于双工信道(即可以双向传输信息的信道) ,每端都需要一个完整的编/译 码系统。试为这样的信息收发站编写一个哈夫曼码的编/译码系统。 基本要求:根据某字符文件统计字符出现频度,构造 Huffman 树,编制 Huffman 编码,并将 给定字符文件编码,生成编码文件;再将给定编码文件解码,生成字符文件。 (要求按二进制位 表示编码) 测试数据:英文文件。 10. 银行业务模拟(**) 问题描述:设银行有四个服务窗口,一个等待队列, 每个窗口均可以办理存款、取款、挂失、 还贷业务,每种业务所需的服务时间不同,客户到达银行后,先到打号机上打号,号票上包括到 达时间、编号和需要办理的业务,然后在银行内等候, 当任一服务窗口空闲时,处理等候客户中 排在最前面的客户的业务。写一个上述银行业务的模拟系统,通过模拟方法求出客户在银行内逗 留的平均时间和每个窗口办理的客户数及办理的每种业务数。 基本要求:每个客户到达银行的时间和需要办理的业务随机产生,输出一天客户在银行的平 均逗留时间和每个窗口每天办理的客户数和每种业务数。 测试数据:营业时间为 8 小时,其他模拟量自行设定。 11. 判断给出的代数系统是否是群(**) 问题描述:给出含有 n 个元素的代数系统的运算表,设计一个简单的程序,判断给出的代数

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

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

数据结构课程设计题目课程设计题一:线性表子系统一.设计目的:1.掌握线性表的特点2.掌握线性表的顺序存储结构和链式存储结构的基本运算3.掌握线性表的基本操作二.设计内容和要求:1.设计一个选择式菜单。

线性表子系统******************************************************* 1 ……建表** 2 ……插入** 3 ……删除** 4 ……显示** 5 ……查找** 6 ……求表长** 0 ……返回*******************************************************请选择菜单号(0…6):2.采用单链表创建线性表。

3.在线性表中实现插入、删除元素,显示线性表中所有元素,查找元素和求线性表长的基本操作。

课程设计题二:栈子系统一.设计目的:1.掌握栈的特点及其描述方法2.掌握链式存储结构实现一个栈3.掌握链栈的各种基本操作4.掌握栈的典型应用的算法二.设计内容和要求:1.设计一个选择式菜单。

栈子系统****************************************************** * 1 ……入栈* * 2 ……出栈* * 3 ……显示* * 4 ……数制转换* * 0 ……返回* ****************************************************** 请选择菜单号(0…4):2.设计一个整型数据元素的链栈。

3.编写入栈、出栈和显示栈中全部元素的程序。

4.编写一个把十进制数转换成八进制数的应用程序。

课程设计题三:队列子系统一.设计目的:1.掌握队列的特点及其描述方法2.掌握链式存储结构实现一个队列3.掌握队列的各种基本操作4.掌握队列简单应用的算法二.设计内容和要求:1.设计一个选择式菜单。

队列子系统******************************************************* 1 ……入队** 2 ……出队** 3 ……读队首元素** 4 ……显示** 5 ……报数问题** 0 ……退出*******************************************************请选择菜单号(0…5):2.设计一个整型数据元素的链队列。

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目以下7个题目任选其一。

1.排序算法比较利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且(1)统计每一种排序上机所花费的时间。

(2)统计在完全正序,完全逆序情况下记录的比较次数和移动次数。

(3)比较的指标为关键字的比较次数和记录的移动次数(一次记录交换计为3次移动)。

(4)对结果作简单分析,包括对各组数据得出结果波动大小的解释。

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

画出搜索顺序示意图。

3.图的广度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历。

画出搜索顺序示意图。

4.二叉树的遍历对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。

画出搜索顺序示意图。

5.链表操作利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。

画出搜索顺序示意图。

6.一元稀疏多项式简单计数器(1)输入并建立多项式(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。

序列按指数降序排列。

(3)多项式a和b相加,建立多项式a+b,输出相加的多项式。

(4)多项式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)7.实现两个链表的合并基本功能要求:(1)建立两个链表A和B,链表元素个数分别为m和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. 长整数的代数计算问题描述应⽤线性数据结构解决长整数的计算问题。

数据结构课程设计题

数据结构课程设计题

“数据结构”课程设计题目1、城市链表[问题描述]将若干城市的信息,存入一个带头结点的单链表。

结点中的城市信息包括:城市名,城市的位置坐标。

要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。

[基本要求](1)给定一个城市名,返回其位置坐标;(2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。

[测试数据]由学生依据软件工程的测试技术自己确定。

注意测试边界数据。

2、约瑟夫生死者游戏[问题描述]约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。

试设计一个程序求出出列顺序。

[基本要求]利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。

[测试数据]m的初值为20;密码:3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。

[实现提示]程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。

设n≤30。

[选作内容]向上述程序中添加在顺序结构上实现的部分。

3、括号匹配的检验[问题描述]假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。

检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。

例如:考虑下列的括号序列:[ ( [ ] [ ] ) ]1 2 3 4 5 6 7 8当计算机接受了第1个括号以后,他期待着与其匹配的第8个括号的出现,然而等来的却是第2个括号,此时第1个括号“[”只能暂时靠边,而迫切等待与第2个括号相匹配的第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;在接受了第4个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,…… ,依次类推。

数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目题目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算法。

数据结构课程设计题目终极版

数据结构课程设计题目终极版

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

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

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

数据结构课程设计题目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。

数据结构2011年课程设计题目

数据结构2011年课程设计题目

《数据结构》课程设计课程设计时间:10~16周周二下午一、课程设计的目的数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。

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

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

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

通过此次课程设计主要达到以下目的:⏹了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;⏹初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;⏹提高综合运用所学的理论知识和方法独立分析和解决问题的能力;⏹训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

二、课程设计的基本要求1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。

2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。

3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成,其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求b)概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构,请写出该存储结构的定义)。

c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

d)调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。

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

数据结构课程设计题目2012-11、医务室模拟。

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

试用队列结构进行模拟。

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

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

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

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

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

,n-1)。

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

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

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

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

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

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

3、组织机构问题(5人)问题描述:以物资学院为例,实现对我校组织结构的管理。

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

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

编程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。

实现要求:求得从站0出发乘公交车至站n-1的最少换车次数。

设计思路:利用输入信息构建一张有向图G(邻接矩阵存储),有向图的顶点表示车站,若某条公交线路经i站能到达j站,就在图G中存在一条有向边<i,j>,权值为1。

因此,从站x至站y的最少上车次数对应于图G中从顶点x到顶点y的最短路径长度。

5、职工工作量统计(5人)问题描述:采用随机函数产生职工的工号和他所完成产品个数的数据信息,对同一职工多次完成的产品个数进行累计,按职工完成产品数量的名次、该名次每位职工完成的产品数量、同一名次的职工人数和他们的职工号格式输出。

实现要求:输出统计结果,如下所示:Order Quantity Count Number1 375 3 10 20 214 250 2 3 56 200 1 97 150 2 11 14……………程序设计思路:采用链表结构存储有关信息,链表中的每个结点对应于一位职工。

在数据采集的同时,形成一个有序链表(按完成的产品数量和工号排序)。

当一个职工有新的数据输入,在累计他的完成数量时会改变原来链表的有序性,为此应对链表进行删除、查找和插入等操作。

6、约瑟夫环问题(5人)问题描述:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。

设计一个程序来求出出列顺序。

实现要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?7、外部文件流的应用。

(5人)有订单文件如下:货号品名进口单价数量开单日期生产单位LX-750 影碟机TRUE 5900.00 4 1996-8-10 松下电器公司YU-120 彩电FALSE 6700.00 4 1996-10-10 上海电视厂AX-120 音响TRUE 3100.00 5 1995-10-11 日立电器公司DV-430 影碟机TRUE 2680.00 3 1996-9-30 三星公司FZ-901 取暖器FALSE 318.00 6 1996-9-5 福利电器厂LB-133 音响TRUE 4700.00 8 1995-12-30 索尼公司SY-701 电饭锅FALSE 258.00 10 1996-8-19 爱德电器厂NV-920 录音机TRUE 1750.00 6 1996-7-20 先锋电器公司要求:1)实现订单的输入功能2)实现订单的输出功能3)实现订单的删除功能4)实现订单的查询功能(可以按照货号、品名、单价查询)8、旅游线路安排模拟系统问题描述:构造一条旅游线路和各景点之间旅游费用,假设城市间往返旅费可以不等,设计一个计算机程序模拟从北京出发,游玩某旅游线路上的各个城市,要求总的旅费最少。

实现提示:采用邻接矩阵A表示各景点之间的关系,其中矩阵元素aij表示从i号城市到j 号城市的旅费。

求解该问题的算法是在表每行中找最小元素,该行非∞元素减该数。

再对每列做同样的工作,形成一个新的矩阵B(保证每行、每列均不少1个零),所有减数累加为min(其含义为旅费下界)。

8、航空客运订票系统(5人)问题描述:航空客运订票的业务活动包括:查询航线和客票预定的信息、客票预定和办理退票等。

设计一个计算机程序,使上述任务能借助计算机来完成。

基本要求1)系统必须存储的数据信息(1)航线信息(9个):飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、已定票的客户名单。

(2)客户信息(3个):客户姓名、证件号、座位号2)系统能实现的操作和功能(1)承办订票业务:根据客户提出的要求(飞机抵达城市、起降时间、订票数量)查询该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办理订票手续,输出座位号。

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

(3)查询功能:(较高要求)A、查询航线信息:根据飞机降落地点,输出航班号、飞机号、起降时间、航班票价、票价折扣和剩余位置等信息。

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

9、北海公园主要游览景点之间最短距离问题(5人)问题描述:图的最短路径问题是指从指定的某一点v开始,求得从该地点到图中其它各地点的最短路径。

并且给出求得的最短路径的长度及途径的地点。

除了完成最短路径的求解外,还能对该图进行修改,如顶点以及边的增删、边上权值的修改等。

公园最短路径问题中的数据元素有:(1)顶点数(2)边数(3)边的长度功能需求:要求完成以下功能:(1) 输出顶点信息:将公园内各景点输出。

(2)输出边的信息:将公园内每两个位置(若两个位置之间有直接路径)的距离输出。

(3) 修改:修改两个位置(若两个位置之间有直接路径)的距离,并重新输出每两个位置(若两个位置之间有直接路径)的距离;(4) 求最短路径:输出给定两点之间的最短路径的长度及途经的地点,输出任意一点与其他各点的最短路径。

(较高要求)(5)删除:删除任意一条边。

(6)插入:插入任意一条边。

10、文件压缩解压:利用Huffman树实现文件的压缩和解压。

(6人)问题描述:假定待压缩的文本以数组方式存储。

实现要求:(1)具备提示输入待压缩字符串、输出字符串的功能。

(2)首先对待压缩字符串进行文本分析,得到文本的组成字符包含在数组ch[]中,以及字符的出现频度在数组pin[]中。

(3)压缩文本,输出压缩结果。

并将压缩后的字符串保存在另外的数组中。

(4)文本解压。

11、排序算法的比较(5人)问题描述:编程实现希尔、快速、堆、归并四种排序算法,并计算每种算法的比较、移动次数。

要求待排序数据从磁盘文件读入,实施排序后将数据写入另一文件。

实现要求:(1)能进行各种排序算法运算,排序包括直接插入、希尔排序、冒泡排序、快速排序、堆排序。

( 2 )能对各种算法进行比较(包括元素的比较次数和移动次数)( 3 )人机界面自定义,要友好。

将排序的结果包括排序后的序列、算法关键字比较和移动的次数等。

显示的形式可为图形或文本。

( 4 )数据的输入有两种方式:手工输入和随机生成。

要注意输入数据的个数。

随机个数<10000。

手工输入个数<10。

*较高要求:实现图形化操作界面,在不同界面间可相互切换。

12、迷你计算器(5人)功能要求:( 1 )计算任意一个算术表达式的加法、减法、除法以及乘法。

( 2 )运算数为整数和小数( 3 )人机界面自定义,要友好。

如用户输入错误在计算之前可以修改。

13、简单电话号码查询系统问题描述:人们在日常中经常要查找某个人或某个单位的电话号码,本试验要求实现个人电话号码查询系统,根据用户输入的信息(如姓名等)进行快速查询。

实现要求:(1)在外存上,用文件保存电话号码信息;(2)在内存中,设计数据结构存储电话号码信息;(3)提供查询功能:根据姓名实现快速查询;(4)提供其他维护功能,例如插入、删除、修改等。

相关文档
最新文档