目录
序言....................................................................................................... 1 中文摘要............................................................................................... 2 1.采用类C语言定义相关数据类型................................................... 3 2.各模块流程图及伪码算法................................................................ 4
3.函数的调用关系图............................................................................12 4.调试分析............................................................................................13 5.测试结果............................................................................................14 6.设计总结............................................................................................19 参考文献...............................................................................................20 致谢.......................................................................................................21 附录(源程序)...................................................................................22
1
序 言
云计算来袭,计算机技术的飞速发展,给我们的生活带来了很大的便利,特别
是对于数学运算,一些以前人工计算很麻烦的甚至做不出的问题,计算机在几秒钟就可以算出来。毫无疑问,计算机技术的应用已是不可阻挡的。这里我们要做的是集合的简单操作,包括集合的交、并、差。经过分析,我们使用已经为业界所公认的成熟的稳定的开发工具VC6.0,利用其提供的简单操作,首先在短时间内建立程序原形,然后,对初始原型程序需求分析,编写源程序,不断修正和改进,直到形成满足要求的可行程序。集合的操作是数据结构中最简单的操作,对集合的学习实践可以帮助我们加深对数据结的掌握程度。本程序是用单链表的基本操作升华到集合上的操作,来实现集合运算。
2
中文摘要
利用单链表的插入删除操作进一步升华到求两个集合的交、并、差,笛卡尔积等
运算。在Visual C++6.0中实现程序的编译,调试,运行,利用随机数验证并输出这个程序的结果。通过该题目的设计过程,可以进一步理解和熟练掌握课本中所学的各种数据结构的知识,加深对链表的认识,特别是对于指针、文件的应用,有了更多的认识。学会如何把学到的知识用于解决实际问题,培养自己的动手能力。
关键词: 集合;链表;指针;随机数;文件;
3
1. 采用类C语言定义相关数据类型
定义单链表
{
int data; //集合中元素的值 struct ListNode *next;//集合的指针域
}ListNode,*LinkList;//结点,结构体指针
4
typedef struct ListNode
2.各模块流程图及伪码算法
建立链表模块
Linklist p,q randomm() 从文件中读取否 数据成功 是 打开文件失败 把生成的随机数读取到文件中fread() 结束 LinkList CreateSet(LinkList L) {
LinkList p = L,q = NULL;
//读取产生的随机数作为集合的元素 FILE *rfile;
rfile = fopen(\ if ( rfile == NULL ) { printf(\
return 0;
5