C/C++《数据结构》课程设计指导书[2023
《数据结构》课程设计指导书
适用专业:计算机2023级
编写人:李玉龙
2023年5月
《数据结构》课程设计指导书
一、设计目的 1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题; 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。 二、设计内容与任务 根据教材选择下列题目中任选一题作为课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目如下:
课程设计题一:四则变量表达式计算设计目的: 1.掌握结构体的用法以及采用结构体定义线性表。 2.学会利用线性表保存变量名及其代入值。 3.理解堆栈在四则运算中的应用价值。 4.自学第五章字符串的基本操作并用于子串分割,实现更复杂的四则运算。 设计内容: 输入一组单字符变量名及其对应数值存入线性表,再输入一个关于这些变量的四则运算表达式,代入其数值计算表达式的最终结果并显示。 设计要求: 1.单字符变量名与取值必须成对输入某结构体元素,再建立这些元素构成的线性表。 2.变量名与取值输入后立即显示变量信息,如“A=3,B=6,……”。 3.四则运算表达式必须以一个完整的字符串输入后,计算得出最终结果并显示。比如,运行阶段“(A+B)*3 回车”后,换行显示“=27”。 4.思考:若为四则运算增添函数计算功能,使其支持绝对值函数abs()、平方根函数sqr()、较大值函数max()、较小值函数min()等,表达式如A+abs(C+D)+max(E,F),应如何处理整个计算过程? 5.实现前3个要求,作品得分80分;实现要求4,作品得分90分或以上。
/************************* Code Helper************************/#include void call_me_QQ_1561968262() { printf(" ------------------- "); printf(" Code Helper "); printf(" "); printf(" "); printf(" ↓ 有需要请找 ↓ "); printf(" < QQ > "); printf(" : "); printf(" 1561968262 "); printf(" ------------------- ");}/*主函数*/int main() { call_me_QQ_1561968262(); return 0;} 课程设计题二:哈夫曼树及其应用设计目的: 1.熟悉树的各种存储结构及其特点。 2.掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。 3.深刻理解哈夫曼编码在数据压缩方面的应用价值。 设计内容: 发一封内容为“AABECAB …… DEFF”(共长 20 字符,字符集为:A、B、C、D、E、F)的电报报文,实现哈夫曼编码完成报文压缩节省带宽占用。 设计要求: 1.统计报文中各字符出现频次,并为字符集建立哈夫曼树。 2.构造哈夫曼树要求同层叶子结点权值从左到右、从小到大。 3.每个字符进行哈夫曼编码,并求出字符集平均编码长度。 4.建立两个文