《数据结构》课程设计规范.doc_第1页
《数据结构》课程设计规范.doc_第2页
《数据结构》课程设计规范.doc_第3页
《数据结构》课程设计规范.doc_第4页
《数据结构》课程设计规范.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程设计规范一、课程设计教学目的及基本要求1了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4训练用系统的观点和软件开发一般规范进行软件开发。二、课程设计题目1学生信息管理 要求每条学生信息至包含学号(xh)、姓名(xm)、性别(xb)、年龄(nl)、专业(zy)等,完成如下功能:(1)输入学生基本信息记录enter()(2)增加一名学生记录(可和功能1合并)insert()(3)删除指定(按姓名)学生的信息delete()(4)修改指定(按姓名)学生的信息)modify( )(5)查询符合条件的学生(按专业)search()(6)显示学生管理库中的信息display( )2计算一元稀疏多项式要求完成如下功能:(1) 输入并建立多项式creatpolyn()(2) 输出多项式,输出形式为整数序列,序列按指数升序排列printpolyn()(3) 多项式a和b相加,建立多项式a+b,输出相加的多项式addpolyn()(4) 多项式a和b相减,建立多项式a-b,输出相减的多项式subpolyn()用带表头结点的单链表存储多项式。测试数据:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)(2) (6-3x+4.4x2-1.2x9)-(-6-3x+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)3通讯录的制作 要求每条信息至包含姓名(name )城市(city)电话(tel)QQ号(qq),完成如下功能:(1) 输入信息 enter(); (2) 显示信息display( ); (3) 查找以姓名作为关键字 search( ); (4) 删除信息delete( ); (5) 存盘(将数据保存在文件中,此功能选做)save ( ); 4实现两个链表的合并,编一程序将A表和B表归并成一个新的递增有序的单链表C(值相同的元素均保留在C表中),并要求利用原表的空间存放C测试数据:(1) A表(30,41,15,12,56,80)B表(23,56,78,23,12,33,79,90,55)(2) A表(30,41,15,12,56,80,23,12,34)B表(23,56,78,23,12)5实现字符串的基本操作完成如下功能:(1)插入子串StrInsert()(2)取子串 SubString()(3)串连接 StrCat()(4)查找子串的位置Index()注:以上题目仅供参考,同学们可以自定题目,要求在题目难度和任务量上相当。三、课程设计报告的规范课程设计报告要求规范书写。应当包括如下六个部分:1、设计目的与内容。进行需求分析,确定每个模块的功能要求。即根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)2、算法的基本思想进行概要设计和详细设计。说明用到的数据结构定义、主程序的流程及各程序模块之间的调用关系。并用自然语言描述每个模块所涉及的算法。3、测试数据列出对于给定的输入所产生的输出结果。4、源程序及系统文件使用说明附上关键数据结构的定义及关键算法的源代码。5、心得体会谈谈课程设计过程的收获、遇到问题及解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对数据结构课程的认识等内容。6、参考文献参考文献要注明作者、出版社、出版日期。四、设计最终需提交的内容包括:1完整的程序系统(电子方式提交)(1)能够对输入产生相应的输出,并在输入输出做必要的提示。(2)该部分包括源代码和可执行文件两个部分。(3)所有以电子方式提交的文件全部存在一个目录中,并对其进行压缩(用Winrar或Winzip均可),压缩后的文件按规定格式进行命名,命名格式为:学号+姓名.rar(如z04043120张文.rar)。(4)将提交作品发送到邮箱2课程设计报告,字数不少于1000字四、课程设计考核方法及成绩评定课程设计成绩分两部分,设计报告占30,设计作品占60,答辩表现占10%。课程设计报告书写格式:数据结构课程设计报告题目事件排列表班 级: 学 号: 姓 名: 同 组 者: 时 间: 2006/11/17-2006/12/20 一、设计目的与内容(下面为组员介绍,组长要谈谈整个小组完成的内容)1设计目的熟练掌握队列的顺序存储表示和基本操作的实现,能够利用队列设计算法解决简单的应用问题。2设计内容:利用循环队列编写一个简单的事件处理表。用户可以输入和保存一系列事件;当一个事件处理完毕后,它就会从事件处理表中被删除;还可以查询事件处理表中剩余的事件。二、 算法的基本思想(此处可加框图描述基本功能模块)被处理事件的数目限定在100以内,并用宏MAX来表示。算法的主要思路是:1函数enter()用来输入事件,调用函数EnQueue()将事件字符串指针保存到事件队列中;基本思路如下:(1)提示并等待输入事件(2)若有事件输入,执行步骤3,否则执行步骤5(3)动态申请存放新事件串的空间,并将输入事件串复制到新申请的内存单元(4)调用EnQuue()函数将新事件插入到队尾(5)结束2函数review()用来显示还没有处理的事件;基本思路如下:(1)(2)(3) 3函数delete()将处理完毕的事件从事件队列中删除,并释放事件内容的存储空间,其中删除事件调用函数DeQueue()完成。基本思路如下:(1)(2)(3) 三、测试数据程序运行实例如下:*队列示例-事件表1-录入,2-显示,3-删除,4-退出*请选择(1-4):1输入事件1:Marry have a math at 8:00.输入事件2:Marry will learn dancing at 1:00 pm.输入事件3:Marry will watch TV at 6:30 pm.输入事件4:请选择(1-4):2事件1.Marry have a math at 8:00.事件2.Marry will learn dancing at 1:00 pm.事件3.Marry will watch TV at 6:30 pm.请选择(1-4):3Marry have a math at 8:00.请选择(1-4):2事件1.Marry will learn dancing at 1:00 pm.事件2.Marry will watch TV at 6:30 pm.请选择(1-4):4四、源程序及系统文件使用说明1循环队列的基本操作函数放在seqqueue.h头文件中,程序清单如下:typedef structDataType dataMaxSize;int front, rear; SeqQueue;void QueueInit ( SeqQueue *q ) q-rear = q-front = 0;int QueueEmpty ( SeqQueue q ) if(q.rear = q.front)return 1; else return 0;int EnQueue ( SeqQueue *q, DataType x ) if (q-rear+1) % MaxSize = q-front) return 0; q-dataq-rear = x; q-rear = (q-rear+1) % MaxSize; return 1;int DeQueue ( SeqQueue *q, DataType *x ) if ( QueueEmpty (*q) ) return 0; *x = q-dataq-front; q-front = ( q-front+1) % MaxSize;return 1;2Shijianbiao.cpp文件代码清单如下:#include #include #include #define MaxSize 100typedef char* DataType;#include SeqQueue.h /*循环队列的基本操作函数*/void enter(SeqQueue *q);void review(SeqQueue q);void del(SeqQueue *q);void main() char ch; SeqQueue q; QueueInit(&q); system(cls); /调用系统的CLS清屏命令清屏 printf(n*); printf(n队列示例-事件表); printf(n1-录入,2-显示,3-删除,4-退出:); printf(n*); while(1) printf(n请选择(1-4):); ch=getchar ();getchar(); switch(ch) case 1:enter(&q);break; case 2:review(q);break; case 3:del(&q);break; case 4:return; void enter(SeqQueue *q) char s64,*p; int len;while(1) printf(输入事件 %d:,(q-rear-q-front+1)%MaxSize); gets(s); len= strlen(s); if(len=0)break; /*没有事件*/ p=(char *)malloc(len+1); if(!p) printf(memory not available.n ); return; strcpy(p,s); EnQueue(q,p);void review(SeqQueue q) int i=1,pos=q.front; do printf(事件%d.%s:n,i,q.datapos); pos=(pos+1) % MaxSize; i+; while(pos!=q.rear);void del(SeqQueue *q) char *p; if(DeQueue(q,&p) printf(%sn,p); free(p);五、心得体会通过这次课程设计,我感觉到要真正做出一个程序并不很容易,但只要用心去做,总会有收获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论