B131000920_数据结构课程设计_上机时间(201612)(计1501-08、物1501-02)
- 格式:doc
- 大小:136.50 KB
- 文档页数:4
《数据结构》课程设计报告5 : 成绩分析问题16 : 通讯录学院(系):*************班级:*********学生姓名:* * * 学号**********指导教师:* * *时间:从2011年12月31日到2012年1月6日一、课程设计概述:本次数据结构课程设计共完成两个题:成绩分析问题和通讯录使用语言:C编译环境:TC3.0 / VC6.0二、课程设计题目一[实验内容]成绩分析问题[问题描述]录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。
[需求分析](1)通过键盘输.入各学生的多门课程的成绩,建立相应的文件input.dat。
(2)对文件input.dat中的数据进行处理,要求具有如下功能:1)按各门课程成绩排序,并生成相应的文件输出。
2)计算每人的平均成绩,按平均成绩排序,并生成文件。
3)求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。
4)根据姓名或学号查询某人的各门课成绩,重名情况也能处理。
(3)界面美观。
[概要设计]-=ADT={int r ight(ST D *h,int i);// 查看学号i 是否存在void news tu(STD *h);// 新增一个学生STD *f ind(STD *h,c har na m);// 查找姓名为nam的学生,返回该学生上一结点的地址STD *f ind(STD *h,c har num);// 查找学号为mum的学生,返回该学生上一结点的地址void s how(STD *p,int i);// 输出结点p的信息,若i=0 只输出姓名和学号,i=1,输出全部信息void s how(STD *h);// 按提示输出学生的信息void int os c ores(STD*h);// 按提示录入学生的成绩void s or t(STD *h,int a,int b);/*对学生信息排序,a为0以数学成绩为关键字排序a=1-4为英语成绩、计算机成绩、总成绩、学号。
数据结构课程设计任务书(13-14-1 网络1234) 《数据结构》课程设计任务书学期:13-14-1 班级:网络123、4一、设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、设计要求1、通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2、学生必须仔细研读《数据结构》课程设计(实习)要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。
3、本次课程设计按照教学要求需要在三周时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4、编程语言任选。
三、设计选题说明:课程设计题目主要分为两大类:一是基础类题,主要是验证性题,少数是简单的综合性题,侧重考查学生对数据结构课程中重要数据结构和算法的理解与掌握程度,相对较简单;本类题目选题要求:要求个人所选题目必须独立完成;原则上不得参考别人的程序,若个人能力有限必须参考,参考成分不得超过30%,其中参考部分自己必须能消化吸收,否则视为无效;为培养学生分析问题、解决问题的实际动手能力和团队协作能力,鼓励有能力的学生尽可能选作难度较高的题目或第二类题目,故仅故仅选作第一类题目中一星题目的学生,无论完成多少题目,原则上最高分不超出75分;仅选作第一类题目中一星和二星题目的学生,无论完成多少题目,原则上最高分不超出85分;仅选作第一类题目中三星和四星题目的学生,无论完成多少题目,原则上最高分不超出92分;选择其他第一类题目中组合类题目的学生无论完成多少题目,原则上最高分不超出85分;二是提高类题,主要是设计性题,侧重考查学生综合能力,包括灵活利用所学知识(主要是数据结构和算法等相关知识)去分析问题、解决问题的实际动手能力以及团队协作精神和协调能力;题目相对较难,多数题目无现成算法,考验学生的创新能力和综合素质。
《数据结构与算法分析》课程设计教学任务书一、课程设计的目的数据结构与算法课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构与算法是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1. 独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3. 按照课程设计的具体要求建立功能模块,要求按照如下几个内容认真完成:1)需求分析:在该部分中叙述,所选课题的功能要求。
2)概要设计:在此说明所选课题的功能模块,以及每个功能模块的算法设计(可以是描述算法的功能模块图),所选课题的的数据结构以及其存储结构设计说明等。
(如果指定存储结构请写出该存储结构的定义)3)详细设计:针对2)中的主要功能模块,画出流程图,给出主要功能模块的流程图、算法及必要的文字说明)4)编码实现给出3)中主要功能模块的函数实现,重点是函数的声明,变量或参数的说明,以及程序的功能说明与注释,不必把所有代码都写上,主要写出其声明与注释等。
附表1:数据结构课程设计报告格式说明附表1-1 封面格式示例东北大学计算机科学与工程学院数据结构课程设计报告题目哈夫曼压缩软件设计课题组长刘光明课题组成员赵美白李晨悦专业名称计算机科学与技术班级计1201指导教师张斌2016 年1月课程设计任务书课题程序设计分工课题报告分工附表1-4 课程设计报告目录格式示例目录1 课题概述 (1)1.1 课题任务 (1)1.2 课题原理 (1)1.3 相关知识 (3)2 需求分析 (4)2.1 课题调研 (4)2.2 用户需求分析 (5)3 方案设计 (7)3.1 总体功能设计 (7)3.2 数据结构设计 (8)3.3 函数原型设计 (10)3.4 主算法设计 (12)3.5 用户界面设计 (13)3.6 输入输出设计 (14)4 方案实现 (15)4.1 开发环境与工具 (15)4.2 程序设计关键技术 (16)4.3 个人设计实现(按组员分工) (16)4.3.1 张三设计实现 (17)5 测试与调试 (23)5.1 个人测试(按组员分工) (23)5.1.1 张三测试 (23)5.2 组装与系统测试 (33)5.3 系统运行 (36)6 课题总结 (39)6.1 课题评价 (39)6.2 团队协作 (40)6.3 个人设计小结(按组员分工) (42)6.3.1 张三设计小结 (42)7 附录 (50)A 课题任务分工 (50)A-1 课题程序设计分工 (50)A-2 课题报告分工 (51)B 课题设计文档(光盘) (52)B-1课程设计报告(电子版) (52)B-2源程序代码(*.H,*.CPP) (52)B-3工程与可执行文件 (52)B-4屏幕演示录像文件(可选) (52)C 使用手册(可选) (53)C.1 运行环境说明 (53)C.2 操作说明 (54)附表1-5 课题报告正文格式示例1 课题背景(三号)1.1 课题来源(四号)随着现代科学技术迅猛发展,全球经济一体化的趋势加强,各国都面临着前所未有的机遇和挑战。
数据结构期末课程设计一、引言数据结构是计算机科学中的重要基础课程,它研究数据的组织、存储和管理方式,以及数据之间的关系和操作。
数据结构的课程设计是对学生在课程学习过程中所掌握的知识和技能的综合应用,旨在提高学生的问题解决能力和编程能力。
本次课程设计要求学生设计一个基于数据结构的应用程序,通过对问题的分析和设计,运用数据结构的知识和算法,实现对数据的高效管理和操作。
二、设计目标本次课程设计的目标是设计一个学生信息管理系统,实现对学生信息的录入、查询、修改和删除等功能。
具体设计要求如下:1. 学生信息包括学号、姓名、性别、年龄、专业等基本信息;2. 学生信息可以通过键盘输入或者从文件中读取;3. 支持按学号、姓名、专业等关键字进行查询;4. 支持对学生信息的修改和删除;5. 支持将学生信息保存到文件中。
三、设计思路为了实现上述设计目标,可以采用以下的设计思路:1. 设计一个学生类,包含学号、姓名、性别、年龄、专业等属性;2. 使用链表或者数组等数据结构来存储学生信息,每一个节点或者元素表示一个学生对象;3. 设计一个菜单界面,通过用户输入选择不同的功能;4. 根据用户的选择,调用相应的函数实现对学生信息的录入、查询、修改和删除等操作;5. 将学生信息保存到文件中,可以使用文件读写操作实现。
四、详细设计1. 学生类的设计学生类包含以下属性:- 学号(字符串类型)- 姓名(字符串类型)- 性别(字符串类型)- 年龄(整数类型)- 专业(字符串类型)2. 数据结构的选择可以使用链表来存储学生信息。
链表的每一个节点包含一个学生对象和指向下一个节点的指针。
3. 菜单界面的设计设计一个菜单界面,显示以下选项:- 1. 录入学生信息- 2. 查询学生信息- 3. 修改学生信息- 4. 删除学生信息- 5. 保存学生信息到文件- 6. 退出程序4. 功能函数的设计- 录入学生信息函数:根据用户输入,创建一个学生对象,将其插入到链表中。
武汉理工大学华夏学院课程设计报告书课程名称:数据结构课程设计题目:用C语言实现成绩统计程序的设计系名:信息工程系专业班级:计算机1121*名:**学号:***************:***2016年 3 月 20日武汉理工大学华夏学院信息工程系课程设计任务书课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机一、课程设计目的与任务《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。
目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。
提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。
任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。
二、课程设计的内容与基本要求设计题目:用C语言实现成绩统计程序的设计〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法:(1)输入每个人的各门课程的成绩,计算每人的平均成绩;(2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次;(3)按名次列出每个学生的姓名和各科成绩;〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制;〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解;具体要完成的任务是:A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。
B. 写出规范的课程设计报告书;三、课程设计步骤及时间进度和场地安排时间:1周地点:现代教育中心具体时间安排如下:第一天:布置题目,确定任务、查找相关资料第二天~第四天:功能分析,编写程序,调试程序、运行系统;第五天上午:撰写设计报告;第五天下午:程序验收、答辩。
大学数据结构课程设计一、课程目标知识目标:1. 理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的特点及其应用场景。
2. 学会分析不同数据结构在解决具体问题时的性能差异,能够选择合适的数据结构优化程序性能。
3. 掌握各类数据结构的存储表示方法,以及基本操作算法的实现。
技能目标:1. 培养学生运用数据结构解决实际问题的能力,能够设计和实现小型算法程序。
2. 培养学生运用递归思想解决问题的能力,掌握递归算法的设计与实现。
3. 提高学生的编程实践能力,通过实验和项目练习,熟练运用所学数据结构进行程序设计。
情感态度价值观目标:1. 培养学生积极探究数据结构相关知识的学习兴趣,激发学生的学习热情和主动性。
2. 培养学生的团队协作精神,通过小组讨论和实践项目,提高沟通与协作能力。
3. 培养学生具备良好的程序设计素养,遵循编程规范,注重代码质量和性能优化。
课程性质:本课程为计算机专业核心课程,旨在使学生掌握数据结构的基本理论、方法和技能,为后续算法分析、软件工程等课程打下坚实基础。
学生特点:大学二年级学生,已具备一定的编程基础和算法知识,具备独立思考和学习的能力。
教学要求:结合课程特点和学生实际,注重理论与实践相结合,强调学生动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够具备扎实的理论基础和较强的实践能力,为未来从事计算机相关领域工作打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 数据结构基本概念:介绍数据结构的基本概念、分类及其应用场景,分析不同数据结构的特点。
- 教材章节:第1章 数据结构绪论- 内容列举:线性结构、非线性结构、抽象数据类型等。
2. 线性表:讲解线性表的定义、存储表示(顺序存储、链式存储),以及基本操作(插入、删除、查找等)。
- 教材章节:第2章 线性表- 内容列举:顺序表、链表、栈、队列等。
《数据结构》课程设计报告姓名:潘庆专业:计算机科学与技术班级: J1401学号: 4141110020指导老师:王新宇2016年1月15日目录一、需求分析 (2)二、设计说明 (3)1. 算法设计的思想 (3)2. 主要的数据结构设计说明 (4)3. 程序的主要流程图 (5)4. 程序的主要模块 (6)5. 程序的主要函数及其伪代码说明 (6)三、上机结果及体会 (13)1.实际完成情况说明 (13)2.程序运行结果及图示 (13)3.问题及解决方案 (16)4.收获及体会 (16)附录(源程序) (17)一、需求分析1. 程序所实现的功能:七种排序算法的演示:(1)直接插入排序;(2)冒泡排序;(3)选择排序;(4)快速排序;(5)归并排序;(6)堆排序;(7)基数排序。
要求:(1)设计一个人机交互界面;(2)给出从初始开始时每一趟排序的结果。
2. 程序的输入:用户开始时自行输入排序个数和具体数字(须为整数)void input_int(SqList &L){int i;printf("请输入排序个数:");scanf("%d",&L.length);printf("请输入%d个整数:",L.length);for(i=1;i<=L.length;i++)scanf("%d",&L.r[i].key);}3. 程序的输出:用户选择具体排序方法后,程序将每一趟排序的输出结果一次性输出,最后一趟即为最终排序结果void output_int(SqList L){int i;for(i=1;i<=L.length;i++)printf("%d ",L.r[i].key);}4. 测试数据:12 2 16 30 8 28 4 10 20 6 18二、设计说明1. 算法设计的思想(1). 插入排序基本思路:向有序表中插入新的元素(或记录),使之仍有序,此时表的长度也相应地发生变化。
车厢调度问题摘要:实现栈的基本操作,即实现类型。
程序对栈的任何存取,即更改,读取和状态判别等操作,必须借助于基本操作。
在操作过程中的任何状态下都有两种可能的操作:“入”“出”。
每个状态下处理问题的方法都是相同的,具有递归特性。
关键字:栈递归打印0.引言《数据结构》是计算机科学与技术、软件工程及相关学科的专业基础课,也是软件设计的技术基础。
《数据结构》课程的教学要求之一是训练学生进行复杂的程序设计的技能和培养良好程序设计的风格,其重要程度决不亚于理论知识的传授,因此课程设计环节是一个至关重要的环节,是训练学生从事工程科技的基本能力,是培养创新意识和创新能力的极为重要的环节。
基本要求如下:(1) 熟练掌握基本的数据结构;(2) 熟练掌握各种算法;(3) 运用高级语言编写质量高、风格好的应用程序。
1.需求分析(1)这个实验要求我用栈实现车厢调度.(2)车厢的个数是由用户输入的.(3)程序会自动给车厢进行从1到 n的编号.(4)用户输入车厢个数后,程序打印出所有可能的车厢出站顺序.2.数据结构设计在这个程序中存储结构是栈,对于栈的声明和定义如下:typedef struct SqStack{int *top; /*栈顶指针*/int *base;/*在栈构造之前和销毁之后.base的值为NULL*/int stacksize; /*当前分配的存储空间*/}SqStack; /*顺序栈的结构体声明和定义*/3.算法设计3.1 对算法的简单描述这个实验中, 要求用到栈. 实现栈的基本操作,即实现类型。
程序对栈的任何存取(即更改,读取和状态判别等操作)必须借助于基本操作。
在操作过程中的任何状态下都有两种可能的操作:“入”“出”。
每个状态下处理问题的方法都是相同的,具有递归特性。
栈实现是方便的无论如何调度,我们的操作都是入栈和出栈,设定入栈为1,出栈为-1,对n列车厢有2n次这样的操作,例如n=4,则有操作1111-1-1-1-1、1-11-11-11-1等.所以还要构造一个操作命令队列trainlist[]。
天津商业大学宝德学院数据结构课程实验报告专业:计算机科学与技术班级:计科1401学号:姓名:宋旺1.问题描述:1)设计要求在n 个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
2)存储结构采用多种。
求解算法多种。
3)该题目需要运用最小生成树来解决。
最小生成树的代价之和最小,所以是一种最经济的架设方法。
2.需求分析该程序是解决城市间架设网络问题的,采用邻接表与邻接矩阵对构造的图进行存储,用普利姆与克鲁斯卡尔算法进行求解。
二、概要设计1.主界面设计:1)问题的解决分别采用普利姆算法已经克鲁斯卡尔算法。
2)普利姆算法就是先选择根,把它放入一个集合U中,剩余的顶点放在集合V中。
然后3)选择该顶点与V中顶点之间权值最小的一条边,依此类推,如果到达最后一个则返回上4)一个顶点。
5)克鲁斯卡尔算法就是写出所有的顶点,选择权最小的边,然后写出第二小的,依此类推,最终要有个判断是是否生成环,不生成则得到克鲁斯卡尔的最小生成树。
2.存储结构设计:typedef struct ArcCell{int adj;char *info;}ArcCell,AdjMatrix[20][20];typedef struct{char vexs[20];//定义一个顶点数组AdjMatrix arcs;int vexnum,arcnum;}MGraph_L;typedef struct arcnode//弧结点{int adjvex;//该弧指向的顶点的位置struct arcnode *nextarc;//弧尾相同的下一条弧char *info;//该弧信息}arcnode;typedef struct vnode//邻接链表顶点头接点{char data;//结点信息arcnode *firstarc;//指向第一条依附该结点的弧的指针}vnode,adjlist;1.模块设计2.系统子程序及功能设计3.函数主要调用关系图四、详细设计1.主函数和其他函数的伪码算法主函数:void main(){algraph gra;MGraph_L G;int i,j,d,g[20][20];char a='a';d=creatMGraph_L(G);creatadj(gra,G);cout<<"**********************************"<<endl;cout<<"**1。