《2022年数据结构课程方案任务书for》由会员分享,可在线阅读,更多相关《2022年数据结构课程方案任务书for(16页珍藏版)》请在金锄头文库上搜索。
1、个人资料整理仅限学习使用数据结构课程设计任务书学年学期: 2018-2018学年第一学期专业班级: 09软件工程指导教师:谢彦麒设计时间:学时周数: 1周一、设计目的1、培养学生运用算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。2、培养学生独立设计程序与解决问题的能力,培养学生团队协作集成程序模块及调试能力。3、培养学生初步的软件设计及软件测试的能力。二、设计任务及要求基本要求学生必须仔细阅读数据结构课程设计指导书,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计
2、划完成情况,及时的向教师汇报。课程设计按照教案要求需要一周时间完成,一周中每天按每周 5 天)至少要上3-4 小时的机来调试 C 语言设计的程序,总共至少要上机调试程序15 小时。根据设计报告要求编写设计报告,主要内容包括目的、意义、原理和实现方法简介、过程分析及说明、实验结果情况说明、结论。每个人必须有可运行的程序,学生能对自己的程序面对教师提问并能熟练地解释清楚,学生回答的问题和程序运行的结果作为评分的主要衡量标准;周二下午开始逐一检查)内容:本次课程设计完成如下模块共 11 个模块,学生可以在其中至少挑选4 个功能块完成,但有* 号的模块是必须要选择的 , 多做可以加分)1-4 必须选做
3、两题) * 1航班查询系统飞机航班信息包括:航班号、起点站、终点站、起飞时间、到达时间、机型以及票价,实例如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 16 页个人资料整理仅限学习使用设计航班查询系统要求能对飞机航班信息进行排序和查找。可按航班的航班号、起点站、终点站、起飞时间以及到达时间进行查询。2. 仓库管理系统设计一个仓库管理系统,可以按照顺序和货物名称查询仓库的存储情况,也可以增加或删除货物。struct node int NO。 /商品编号 char namemax 。 /商品名称 int count。 /商品数量。3
4、. 通讯录管理系统通讯录一般包括通讯者的编号、姓名、性别、电话及地址等信息,设计一个通讯录要求实现通讯者的插入、查询、删除、更新、排序操作。struct node char num5。 /编号 char name8 。 /姓名 char sex 。 /性别 char tel8。 /电话 char address100 。 /地址。4停车场管理系统精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 16 页个人资料整理仅限学习使用某停车场可以停放 n 辆汽车,该停车场只有一个大门,每辆汽车离开停车场都要求之前的汽车必须先退出停车场为它让道,而
5、后让道的汽车再次驶入停车场,停车场示意图如下:要求设计停车管理系统,实现车辆的进入、离开并根据停车时间计费。5、 一元多项式计算任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输入;在上交资料中请写明:存储结构、多项式相加的基本过程的算法可以使用程序流程图) 、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;6、 迷宫求解任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;要求:在上交资料中请写明:存储结构、基本算法可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改
6、进方法;7、 文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80 个字符,共 N行;要求1)分别统计出其中英文字母数和空格数及整篇文章总字数;2)统计某一字符串在文章中出现的次数,并输出该次数;3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式: 1)分行输出用户输入的各行字符;2)分 4 行输出 全部字母数 、 数字个数 、 空格个数 、 文章总字数 3)输出删除某一字符串后的文章;8、 猴子选大王任务:一堆猴子都有编号,
7、编号是1,2,3 .m ,这群猴子 m个)按照 1-m 的顺序围坐一圈,从第 1 开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。要求:输入数据:输入 m,n m,n 为整数, nm 输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能9、二叉树运算 1*)任务:求二叉树中指定两个结点共同的最近祖先。10、 二叉树的运算 2 任务 :请设计一个算法,把二叉树的叶子结点按从左到右的顺序连成一个单链表。二叉树用二叉链存储,链接时用叶子结点的rchild 域存放指针。精选学习资料 - - - - - -
8、 - - - 名师归纳总结 - - - - - - -第 3 页,共 16 页个人资料整理仅限学习使用注:在上交资料中请写明:存储结构、基本算法 可以使用程序流程图)、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;11、 各种排序任务:用程序实现插入法排序、起泡法改进算法排序;利用插入排序和冒泡法的改进算法, 将用户随机输入的一列数按递增的顺序排好。输入的数据形式为任何一个正整数,大小不限。输出的形式:数字大小逐个递增的数列。三、设计时间进度安排星期一 -星期二:代码设计星期三 -星期五:程序调试、代码演示、考核答辩星期五:编写课程设计报告、提交资料四、成绩考
9、核每个人必须有可运行的程序,学生能对自己的程序面对教师提问并能熟练地解释清楚,学生回答的问题和程序运行的结果作为评分的主要衡量标准;1、程序的可用性、通用性:40% 2、学生的编程动手能力: 30% 3、程序说明书: 10% 4、回答问题: 20% 五、报告书写格式由以下部分组成,缺一不可,提交的电子内容放在服务器中” 数据结构课程设计” 目录中。1 上交源程序 :学生按照课程设计的具体要求所开发的所有源程序应该放到一个文件夹“ code ”中); .2 上交程序的说明文件:保存在文件名按照“文件清单_学号 _姓名 .txt“中)在说明文档中应该写明:实现的题目及上交程序所在的目录,上交程序的
10、文件名,如果需要安装,要有程序的安装使用说明;3 课程设计报告 :保存在 word 文档中,文件名要求按照数据结构课程设计报告-学号 -姓名 起名,如文件名为: 数据结构课程设计报告-01-张三.doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成。 课程设计结束后每人要求打印课程设计报告,两个工作日内学习委员负责收集上交课程设计报告的打印材料。)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 16 页个人资料整理仅限学习使用课程设计报告提交报告的内容?一、题目内容的描述?二、应用程序功能的详细说明?三、
11、输入数据类型、格式和内容限制;?四、主要模块的算法描述以程序流程图的方式给出简要的语言描述?五、结束语?六、程序的源代码清单 M. 北京:清华大学出版社 . 1997.4.2 陈元春等编著,实用数据结构基础,中国铁道出版社3 黄翠兰,高级语言程序设计,厦门大学出版社精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 16 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 16 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳
12、总结 - - - - - - -第 7 页,共 16 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 16 页个人资料整理仅限学习使用指导教师 签名):年月日#include stdafx.h#include #include stdlib.h#define MAXNUM 100 usingnamespace std 。int size = 0。typedefstruct int hour 。int min 。 DATE。typedefstruct char no20 。/ 航班号char start20。/
13、起点站char final20。/ 终点站DATE start_time。/ 起飞时间DATE fianl_time。/ 到达时间char plane_mode20 。/ 机型float fee 。/ 票价 airplane。void display(airplane ap, int flag。void display_array(airplane ap。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 16 页个人资料整理仅限学习使用void inputdata(airplane ap / 录入航班信息char ch = y 。int
14、i = 0。while (ch = y | ch = Y printf( 请输入航班号 : 。scanf( %s,&api.no。printf( 请输入起点站 : 。scanf( %s,&api.start。printf( 请输入终点站 : 。scanf( %s,&api.final。printf( 请输入起飞时间 ( 例:08:08: 。scanf( %d:%d,&api.start_time.hour,&api.start_time.min。printf( 请输入到达时间 ( 例:08:08: 。scanf( %d:%d,&api.fianl_time.hour,&api.fianl_ti
15、me.min。printf( 请输入飞机机型 : 。scanf( %s,&api.plane_mode。printf( 请输入票价: 。scanf( %f ,&api.fee。getchar( 。printf( 是否继续录入数据? (y/n 。scanf( %c,&ch 。i+。 size = i。display_array(ap。 void search_no(airplane ap / 按航班号查询char no120 。int flag = 1。/ 判断是否查询到航班,1为未查询到, 0为查询到printf(请输入要进行查询的航班号: 。scanf( %s,&no1。for ( int
16、i=0 。 i if (strcmp(api.no,no1 = 0 display(api,flag。flag = 0。 if (flag printf( 找不到要查询的航班!n 。 void search_start(airplane ap / 按起点站查询char start120。int flag = 1。printf(请输入要进行查询的起点站: 。scanf( %s,&start1。for ( int i=0 。 i if (strcmp(api.start,start1 = 0 display(api,flag。flag = 0。 if (flag printf( 找不到要查询的航班
17、!n 。 if (!size printf( 目前系统中无任何航班信息!n 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 16 页个人资料整理仅限学习使用void search_fianl(airplane ap / 按终点站查询char final120。int flag = 1。printf(请输入要进行查询的终点站: 。scanf( %s,&final1。for ( int i=0 。 i if (strcmp(api.final,final1 = 0 display(api,flag。flag = 0。 if (flag
18、 printf( 找不到要查询的航班!n 。 if (!size printf( 目前系统中无任何航班信息!n 。 void search_start_time(airplane ap / 按起飞时间查询DATE start_time1。int flag = 1。printf(请输入要进行查询的起飞时间(例:08:08: 。scanf( %d:%d,&start_time1.hour,&start_time1.min。for ( int i=0 。 i if (start_time1.hour = api.start_time.hour & start_time1.min = api.star
19、t_time.min display(api,flag。flag = 0。 if (flag printf( 找不到要查询的航班!n 。 if (!size printf( 目前系统中无任何航班信息!n 。 void search_final_time(airplane ap / 按到达时间查询DATE final_time1。int flag = 1。printf(请输入要进行查询的到达时间(例:08:08: 。scanf( %d:%d,&final_time1.hour,&final_time1.min。for ( int i=0 。 i if (final_time1.hour = ap
20、i.fianl_time.hour & final_time1.min = api.fianl_time.min display(api,flag。flag = 0。 if (flag printf( 找不到要查询的航班!n 。 if (!size printf( 目前系统中无任何航班信息!n 。 void sort_fee(airplane ap / 按价格进行排序int k 。airplane temp。for ( int i=0 。 i k = i 。for ( int j = i+1。 j 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1
21、1 页,共 16 页个人资料整理仅限学习使用if (apj.fee k = j 。 if (k!=i temp = api。api = apk。apk = temp。 display_array(ap。 void sort_start_time(airplane ap / 按起飞时间进行排序airplane temp。int k 。for ( int i=0 。 i k = i 。for ( int j=i+1 。 j if (apj.start_time.hour k = j 。 elseif(apj.start_time.hour = apk.start_time.hour & apj.s
22、tart_time.min k = j 。 if (k!=i temp = api。api = apk。apk = temp。 display_array(ap。 void sort_final_time(airplane ap / 按到达时间进行排序airplane temp。int k 。for ( int i=0 。 i k = i 。for ( int j=i+1 。 j if (apj.fianl_time.hour k = j 。 elseif(apj.fianl_time.hour = apk.fianl_time.hour & apj.fianl_time.min k = j
23、。 if (k!=i temp = api。api = apk。apk = temp。 display_array(ap。 void display(airplane ap, int flag / 显示单条航班 ,flag为1时显示航班头信息if (flag printf( %s%15s%15s%18s%12s%8s%8sn , 航班号 , 起点站 , 终点站 , 起飞时间 , 到达时间 , 机型 , 票价。 printf( %s%20s%16s%6d:%d%10d:%d%11s%10.2fn ,ap.no,ap.start,ap.final,ap.start_time.hour,ap.sta
24、rt_time.min,ap.fianl_time.hour,ap.fianl_time.min,ap.plane_mode,ap.fee。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 16 页个人资料整理仅限学习使用 void display_array(airplane ap / 显示一组航班display(ap0,1。for ( int i=1 。 i display(api,0。 int main_menu( / 主菜单int check 。printf(= 航班查询系统 =n。printf( 1.录入航班信息 n 。pri
25、ntf( 2.按航班号查询 n 。printf( 3.按起点站查询 n 。printf( 4.按终点站查询 n 。printf( 5.按起飞时间查询 n 。printf( 6.按到达时间查询 n 。printf( 7.按费用排序 n 。printf( 8.按起飞时间排序 n 。printf( 9.按到达时间排序 n 。printf( 0.退出 n 。printf( 请选择 : 。scanf( %d, &check 。return check 。 int main( airplane apMAXNUM 。int check = 100。/ 用于接收用户的选项while (check system
26、( cls 。/ 清屏check = main_menu( 。switch (check case 1:inputdata(ap。break 。case 2:search_no(ap。break 。case 3:search_start(ap。break 。case 4:search_fianl(ap。break 。case 5:search_start_time(ap。break 。case 6: search_final_time(ap。break 。case 7:sort_fee(ap。break 。case 8:sort_start_time(ap。break 。case 9:sort
27、_final_time(ap。break 。 getchar( 。getchar( 。 return 0 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 16 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 16 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 16 页个人资料整理仅限学习使用#include stdafx.h#include #include
28、stdlib.h#include #include #define max 100 struct node / 每个货物的类型int NO。/ 商品编号char name20 。/ 商品名称int count 。/ 商品数量。typedefstruct system_node / 货物的结点node data 。struct system_node * next。 list。void display(list *p, int flag。void display_all(list *head。void inputdata(list * head / 插入数据char ch = y 。list *p = head,*s。while (ch = y | ch = Y s = (list *malloc(sizeof (list。printf( 请输入商品编号 : 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 16 页