基于静态数组的集合的并、交、差运算课程设计综述

上传人:最**** 文档编号:115545493 上传时间:2019-11-14 格式:DOCX 页数:23 大小:116.01KB
返回 下载 相关 举报
基于静态数组的集合的并、交、差运算课程设计综述_第1页
第1页 / 共23页
基于静态数组的集合的并、交、差运算课程设计综述_第2页
第2页 / 共23页
基于静态数组的集合的并、交、差运算课程设计综述_第3页
第3页 / 共23页
基于静态数组的集合的并、交、差运算课程设计综述_第4页
第4页 / 共23页
基于静态数组的集合的并、交、差运算课程设计综述_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《基于静态数组的集合的并、交、差运算课程设计综述》由会员分享,可在线阅读,更多相关《基于静态数组的集合的并、交、差运算课程设计综述(23页珍藏版)》请在金锄头文库上搜索。

1、高级语言程序设计课 程 设 计 报 告 书题 目:基于静态数组的集合的并、交、差运算 专 业:计算机科学与技术 学 号: 学生姓名: 指导教师: 完成日期: 22目录一、题目要求1二、系统概要设计22.1程序流程图22.2主要函数设计3三、系统关键代码43.1利用静态数组存放集合的元素功能:43.2系统功能菜单:43.3求两个集合交集功能:53.4求两个集合差集功能:63.5求两个集合并集功能:93.6主函数10四、程序调试12五、课程设计总结13一、 题目要求我的高级语言程序设计课程设计题目是:基于静态数组的集合的并、交、差运算。指导教师对该题目有以下要:1. 利用静态数组存放集合的元素。2

2、. 在静态数组基础上实现集合的并、交、差。3. 要求有合理的输入输出。4. 界面要求尽可能美观,要方便操作。 5. 该题目最高成绩为“良好”。少一个功能降一个等级。经过努力,我实现了下面的功能:1. 实现集合的交2. 实现集合的并3. 实现集合的差4. 用静态数组存放集合的元素下面的功能由于自己知识储备不足,未能实现:1. 2. 二系统概要设计2.1程序流程图开始用静态数组存放集合的元素显示菜单实现集合的并实现集合的交实现集合的差输出结束 图1.程序流程图2.2主要函数设计该系统涉及到的主要函数及其说明如表1所示:表1. 系统中的主要函数介绍序号函数声明函数功能1void input()利用数

3、组存入集合的元素2void menu()菜单功能现实函数3void intersect()实现两个集合的交4void combine()实现两个集合的并5void subtract()实现两个集合的差6void main实现集合的交、并、差 三、系统关键代码下面详细地介绍一下第二部分中列出的各个函数。 3.1利用数组存入集合的元素void input( int a , int b , int m , int n) int i,j; printf(Array a:); for(i=0;im;i+) scanf(%d ,&ai); printf(Array b:); for(j=0;jn;j+)

4、scanf(%d,&bj); 3.2系统功能菜单void meun()printf(1.实现两个集合的交 2.实现两个集合的差 3.实现两个集合的并 n”); 3.3实现两个集合的交int intersect(int a ,int b ,int c , int m,int n)/*括号里面一定要有主函数传递和接收的数组(不要忘了数组c )不然主函数和被调函数之间搭建不起联系,数组也不能传递*/ int i,j,k=0; /*下面的嵌套循环实现 进行一次if语句的内层循环 将两个集合中重复的一个元素存入数组c中(既交集中) 外层循环进行完两个集合中的共同元素被全部存入交集c中*/ /*a和b的交

5、集*/ for(i=0;im;i+)for(j=0;jn;j+)if(ai=bj) ck=ai; k+; printf(a和b的交集:);for(i=0;ik;i+)printf(%d ,ci);return k; 3.4实现两个集合的差 int subtract(int a ,int b ,int c ,int m,int n) int i,j,d,k; k=intersect(a,b,c,m,n); printf(k=%dn ,k);/*下面的两个嵌套循环实现进行一次实现if条件循环的内层循环删除 一个两个数组中的共同元素(数组b的元素被重新赋值改变) 外层循环进行完共同元素删除完*/ /

6、*差集b-a*/ for(i=0;ik;i+)d=0; for(j=0;jn-i;j+) /*j的范围很重要 如果j大于或者小于数组b的个数 结果都有可能错误*/ if(ci!=bj) bd=bj; d+; printf(差集b-a:); for(i=0;id;i+) /*i的范围很重要*/ printf(%d ,bi); /*差集a-b*/ for(i=0;ik;i+)d=0; for(j=0;jm-i;j+) /*j的范围很重要 如果j大于或者小于数组b的个数 运行结果都有可能错误*/ if(ci!=aj) ad=aj; d+; printf(差集a-b:); for(i=0;id;i+)

7、 /*i的范围很重要*/ printf(%d ,ai);return k;3.5实现两个集合的并 int combine(int a , int b , int c , int m, int n ) int i,j, k; k=subtract(a,b,c,m,n); printf(k=%d ,k); /*下面的两个for循环实现将两个集合的两个差集和一个交集中的元素合并到一个数组中,数组中的元素即两个集合并集中的所有元素*/ for(i=0,j=k;im-k,jm;i+,j+) cj=ai; /*通过对交集c重新赋值实现将两个集合的一个差集a与交集c的合并*/ for(i=0,j=m;in-

8、k,jm+n-k;i+,j+) cj=bi; /*通过对差集a和交集c的并集c的重新赋值实现将两个集合的 差集a和b与交集c的合并*/ printf(a和b的并集:); for(i=0;im+n-k;i+) printf(%d ,ci); 3.6主函数int main() static int aN,bN,cN;int m,n,choice; /*m是数组a的元素个数,n是数组b的元素个数*/ printf(input m,n:);scanf(%d%d,&m,&n); input( a , b , m , n); meun( ); printf(please enter your choice

9、:); scanf(%d,&choice); switch(choice) case 1 : intersect( a , b , c , m, n); break ; case 2 : subtract(a , b , c, m , n); break ; case 3: combine(a , b , c , m , n ); break ; 4 程序调试 将集合中的元素存入静态数组、显示菜单 图2. 选择实现集合的交的运行结果: 图3.实现集合交的功能 选择实现集合的差的运行结果:图4.实现集合差的功能 选择实现集合的并的运行结果:图5.实现集合并的功能五课程设计总结通过本学期的高级语言

10、程序设计课程设计,我收获了很多。首先让我学会结合之前学过的c语言知识独立去思考如何去实现题目中的要求(运用静态数组实现集合的交、并、差运算),这个过程的同时实现了对我学过的c语言知识的梳理和连贯。然后让我学会了如何去找出一段程序中的错误。当我写的一个程序运行的结果错误时,我学会了把程序分成一小段一小段去运行排查,最终找到问题所在。通过检查这一小段错误程序,一遍遍的思考调试,最终运行成功。其次让我对数组的运用更加熟练。使我掌握了不同情况下如何对一个数组重新赋值以及函数之间的相互调用。再有通过程序的编译运行让我发现,然后纠正,最后掌握了自己编码很多细节上的问题。最后通过努力让我对运用静态数组实现集

11、合的交、并、差运算有了熟练的掌握。 很感谢老师的悉心教导,平时没有注意到很多细节性的问题,老师能够耐心 细心的进行引导,让我的能力得到很大提升。评分标准程序(60分)正确性(20)完成全部功能且经教师测试无错误(20)要求学生有一定的编程能力。程序功能不符合题目要求,或者程序完全不能运行者,按不及格处理。完成全部主要功能但对特殊测试样例有错误(15)完成要求功能的1/2以上(10)不合题目要求或者不能运行或者完成功能低于要求的1/2(-100)界面友好性(10分)友好,易于操作(6-10分)要求学生要能从用户的角度考虑问题不友好,难以操作(0-5分)回答问题情况(10)能回答出所有问题(10)根据学生回答问题的多少给予一定的分数;一问三不知,按抄袭处理。能回答部分问题(5)一问三不知(-100)注释丰富程度(10)较多(6-10)要求学生对主要的功能语句应该给出注释少许(0-5)题目难易程度(10)难(10分)在命题时已经给出了题目的难易程度易(0分)报告(30)语言表达能力(10)行文流畅(6-10)要求报告要有一定的文字描述,不能只是程序、图表

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号