数据结构课程设计题目(最终版)-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. 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)提供其他维护功能,例如插入、删除、修改等。

相关文档
最新文档