淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 数据结构课程设计 选题名称: 汽车牌照管理系统 姓 名: 学 号:
专业班级: 计算机科学与应用 G计111 系 (院): 计算机工程学院 设计时间: 2012.12.24~2013.1.4 设计地点: 软件工程实验室、教室 指导教师评语: 成绩: 签名: 年 月 日 数据结构课程设计报告 第 1 页,共 25页
1.课程设计目的 1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。 2.课程设计任务与要求: 任务 根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。 设计题目从任务书所列选题表中选取,每班每题不得超过2人。 学生自选课题 学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。 要求: 1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。 3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释; 4、每位同学需提交可独立运行的程序; 5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算); 6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 数据结构课程设计报告 第 2 页,共 25页
3.课程设计说明书 一 需求分析 [ 问题描述 ] 排序和查找是在数据处理中使用频度极高的操作,为加快查找的速度需现对数据记录按关键字 排序。在汽车数据的信息模型中,汽车牌照是关键字,而且是具有结构特点的一类关键字,因 为汽车牌照号是数字和字母混编的,例如01B7328,这种记录集合是一个适于利用多关键字进行 排序的典型例子。 [ 基本要求 ] (1)首先利用链式基数排序方法实现排序,然后利用折半查找方法,实现对汽车记录按关键字 进行查找。 (2)汽车记录集合可以人工录入,也可以按自动方式随机生成。本人采用的人工录入。 二 概要设计 1.有关的数据 #define KEY_SIZE 8 #define LIST_SIZE 100 typedef struct { char key[KEY_SIZE]; 将车牌号以字符的形式存储 char name[10]; 车主的名字 char carname[20]; 车的品牌 int next; }RecordType; typedef struct { RecordType r[LIST_SIZE]; 是一个RecordType类型的数组 int length; int keynum; }SLinkList; 2. 为了实现上述功能,需要使用一下函数: main():主函数 noun():输出提示信息菜单 GetData():从键盘添加车辆函数 Distribute():进行基数排序每一趟的分配函数 Collect():进行基数排序每一趟的收集函数 Binsrch ():二分查找函数 print():输出所有车辆信息函数 Radixsort ():基数排序函数 Zl():基数排序后的整理 数据结构课程设计报告 第 3 页,共 25页
noun () GetData() Radixdort() print() Distribute() Collect() zl() main() Binsrch() 上图为各函数之间基本关系。 下图为程序执行的流程图。 开始 输入i N n=1 Y 调用子函数GetData () i=2 Y 调用子函数print() N N i=3 Y 调用子函数Radixsort () N i=4 Y 调用子函数Binsrch () N i=0 Y 结果 三 详细设计 1、基数排序的过程:

