1、 高级语言程序设计高级语言程序设计 课程设计报告课程设计报告 题目: 集合的运算 专业: 网络工程 班级: 姓名: 指导教师: 成绩: 计算机学院计算机学院 20162016 年年 4 4 月月 2222 日日 学号学号 1508020118 2015-2016 学年学年 第第二二学期学期 计算机学院 高级语言程序设计课程设计报告 I 目录 一、需求分析. II 1、程序的实现. 1 (1)功能. 1 (2)实施. 1 2、设计的要求. 1 二、概要设计 1 1、问题分析. 1 2、模块结构. 2 (1)结构分析. 2 (2)结构分析图. 2 三、详细设计 3 1、解题思路. 3 (1)数据结
2、构设计. 3 (2)逻辑结构存储结构. 3 2、算法设计. 3 四、调试分析和测试结果 4 1、模块分析. 4 (1)定义单链表结点类型. 4 (2)运用尾插法建立单链表. 4 (3)建立有序链表. 5 2、结果分析. 5 五、总结 6 1、解决的问题. 6 (1)集合的运算算法. 6 (2)解决方式. 7 2、心得体会. 7 六、参考文献(资料不得少于 5 篇) 7 计算机学院 高级语言程序设计课程设计报告 II 七、致谢 7 八、附录(含程序源码) 8 计算机学院 高级语言程序设计课程设计报告 1 一、需求分析 1、程序的实现 (1)功能 使用链表来表示集合,完成集合的合并,求交集等操作。
3、 (2)实施 1) 初步完成总体设计,搭好框架,确定函数个数; 2) 完成最低要求; 3) 继续完成进一步要求。 2、设计的要求 (1) 界面友好,函数功能要划分好; (2) 总体设计应画流程图; (3) 程序要加必要的注释; (4) 要提供程序测试方案; (5) 程序要经得起测试,宁可功能少一些,也要能运行起来,不能运 行的程序是没有价值的。 二、概要设计 1、问题分析 该问题主要实现以下功能: (1) 利用尾插法建立单链表; (2) 对于输入的链表进行有序排列 (3) 删除有序链表中不符合要求的元素 (4) 调用函数对单链表进行交、并运算并输出 计算机学院 高级语言程序设计课程设计报告 2
4、 2、模块结构 (1)结构分析 程序以用户和计算机的对话方式执行,即在计算及终端显示提示信息之 后,由用户在键盘输入演示程序中规定的运算命令;相应的输入数据(过滤 输入中的非法字符)和运算结果闲时间在其后。系统由以下几个模块组成, 分别是: 1) 单链表的建立 2) 单链表的有序排列 3) 删除单链表中不符合条件的元素 4) 集合交集 5) 集合并集 6) 单链表输出 7) 主函数 (2)结构分析图 主函数 main() 创建链表 LinkList * 求交集 void jiao() 求并集 void bing() 单链表结点类型 typedef struct LNode 比较并保存相同 元素
5、 while 语句 删除重复的元素 void shangchu() 计算机学院 高级语言程序设计课程设计报告 3 三、详细设计 1、解题思路 (1)数据结构设计 创建三个带头结点的单链表,用来存储两个集合中的元素和最终的结果, 为实现集合的交、并运算功能,应以有序链表表示集合。为此,需要两个抽 象数据类型:有序表和集合。 (2)逻辑结构存储结构 逻辑结构:创造一个带结点的单链表包括(头结点 L、结点若干、尾结 点) ;单链表中每个结点包括(*next 表示指针 data 表示域) 2、算法设计 程序执行的命令包括: (1) 定义单链表结点类型 typedef struct LNode (2)
6、运用尾插法建立单链表 void CreatListR(LinkList * struct LNode *next; LinkList; (2)运用尾插法建立单链表 void CreatListR(LinkList*int I; L=( LinkList *)malloc(sizeof(LinkList); /创建并为头结点分配空 间 L-next=NULL; r=L; for(i=0;idata=ai; r-next=s; r=s; r-next=NULL; /尾结点指向空 计算机学院 高级语言程序设计课程设计报告 5 (3)建立有序链表 void Sort(LinkList * if(p!=NULL) r=p-next; p-next=NULL; p=r; while(p!=NULL)/后续元素与第一个元素进行比较 r=p-next; q=head; while(q-next!=NULL p-next=q-next; q-next=p; p=r;