数据结构课程设计

发布 2022-10-05 01:12:28 阅读 6825

目录。前言 2正文 2

2.1 设计的目的和意义 2

2.2目标与总体方案 2

2.3设计方法和内容 3

2.3.1 开发环境 3

2.3.2 设计流程图 3

2.3.3 设计内容 3

2.4 设计创新和关键技术 4

2.5结论 5

致谢 5参考文献: 6

附录: 7在二十世纪电脑已经显示出它的优越性了,时至今日计算机更是我们离不开的伙伴。作为计算机专业的学生,应该充分利用所学知识,把实际问题转移到电脑上去,通过电脑的编程,使复杂问题简单化,深奥问题浅显化,抽象问题具体化。

c++语言是一种高级语言,它支持面向对象的程序设计方法,特别适用于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,c++均具有很大的优越性。

visual c++是一个功能强大的可视化软件开发工具。自2024年microsoft公司推出visual c++1.0后,随着其新版本的不断问世,visual c++已成为专业程序员进行软件开发的首选工具。。

所以实际中,更多的是以visual c++6.0为平台。visual c++6.

0不仅是一个c++编译器,而且是一个基于windows操作系统的可视化集成开发环境(integrated development environment,ide)。visual c++6.0由许多组件组成,包括编辑器、调试器以及程序向导appwizard、类向导class wizard等开发工具。

这些组件通过一个名为developer studio的组件集成为和谐的开发环境。

c++有其强大的功能,基于c++面向过程程序设计。又有其众多的特点。

面向对象的程序设计(oop)并不是刚刚提出来的,主要是由于c++和j**a这类语言的传播,oop最近才显得越来越重要了。为什么面向对象的设计如此流行呢?从理论上讲,用面向对象的语言可以处理任何其他计算机语言所能完成的事情。

然而当建立基于智能体的模型时,oop对于开始的程序员和后来的程序读者都表现出了很大的优势。

每个单位都有考勤,做一个考勤程序是很重要的,为此我先尝试一下。

c++由c发展而来,与c兼容,所以c++既可用与面向过程的结构化程序设计,也可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言[1]。它主要的特点是:抽象、封装、继承和多态性。

作为计算机专业的学生,应该努力学好各种计算机语言,培养编程创新的能力。

class 类:用户定义类型的一种抽象。类包含数据和建立在数据之上的操作。

实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。

每个单位都需要考勤,学校更是如此,为此做一个学生考勤系统是非常有现实意义的。为此我大胆尝试,小心求证,使我我的程序编辑能力可以大大增加。

编写一个学生考勤系统,它可以实现:(1)查看记录信息;(2)添加记录信息;(3)查找记录信息(4)修改记录信息;(5)删除记录信息;(6)统计排序旷课学生(7)统计排序旷课课程;(8)保存数据;(9)退出、

总体方案是:先建立一个结构体,在结构体中先声明成员函数,如姓名函数、旷课函数。在结构体上的基础上新建新的类,然后建立功能函数。在整个函数中进行调用,将整个程序用类联系起来。

硬件环境:一台惠普计算机,其配置为:cpu:

pentium(r)4 2.4ghz 内存:256mb 硬盘:

40g 主板:sis651-a201-8100 .

软件环境:microsoft windows xp professional 版本 2002 service pack 2 并且安装了可供编程的microsoft visual c++6.0.

[3]本次课程设计是先声明一个学生类class cstu:public cobj;再声明结构体linknode;在该类中声明一个node的对象data。声明一个函数creat()用于增加人员信息,insert()用于插入人员信息,find()用于查找人员信息,del()用于删除人员信息,print()用于输出人员信息。

最后是主函数。

图2-1设计功能模块图。

整个程序总共分为3大块,第一部分是结构体[4],第二部分是个功能函数体,其中功能包括:增加人员信息,插入,查询,删除,输出,退出。第三部分是主函数main(),主要是作为程序开始时的提示选择功能界面。

[5]首先对程序**分析,**主要包括头文件的应用,由于该函数中用到了结构体和strcmp函数,需要包含头文件然后声明一个结构体node;在声明结构体linknode;在该类中声明一个node的对象data。声明一个函数creat()用于增加人员信息,insert()用于插入人员信息,find()用于查找人员信息,del()用于删除人员信息,print()用于输出人员信息。最后是主函数。

一, 结构体。

char id[buffsize];/记录编号。

char stuname[buffsize]

char classname[buffsize]

int indexclass; /第几节课。

char absentstyle[buffsize]

char absentdate[buffsize]

int indexweek;

声明了一个学生类:class cstu:public cobj[6]

二, 函数。

编辑了虚函数。

virtual void sort(void *para,int size){}

void readrecordinfo();读取数据库。

void s**edata();保存数据。

void findtherecord();查找记录。

void deletetherecord();删除记录。

void showallrecord();显示所有记录。

void addtherecord();添加记录。

void modifytherecord();修改记录。

void countabsentstu();统计排序旷课学生。

void countabsentclass();统计排序旷课课程。

等等。由于科技的迅速发展,人类越来越依靠现代技术。计算本来就是一件很复杂的事情,如果将计算交由计算机实现,人类只要输出几个数字,答案就可以在瞬间揭晓[8]。

这样可以大大节约人们的时间和精力,提高工作效益和准确度,给人们在工作学习生活各个方面都带来极大的好处。在传统的程序设计中,人们往往要为每一种应用项目单独的进行一次程序的开发,显然,这种方法的重复工作量是很大的,人们无法利用现有的丰富的软件资源,这就造成软件开发过程中人力、物力和时间的巨大浪费,效率很低,本程序的关键点就是利用面向对象的程序设计中最重要的特征-继承性,充分利用软件的可重用性,尽量节省内存资源,优化**,使**一目了然[9]。

本程序虽然简短,但是却有很多难点出现。首先是对基类的调试。为了减少调试的难度,我先调试了一下基类的程序。

刚开始是在主函数里面直接对程序赋值,发现这将大大限制程序的可重用性,而且无法灵活运用。所以运用了指针[10],可以说整个程序中指针就像纽带将各个功能联系在一起实现通讯录的各个功能。

于是,我时常上网查资料,去图书馆借相关知识,请教学哥学姐,在一知半解的情况下我就开始了此次的编程。在编程过程中,一直调试不出来,在老师的指导下,我结合正确的程序和自己的程序,经过多次修改和调试,终于运行出结果来。实现了所有的功能。

学生考勤系统最终视图。

课程设计是对我们综合能力的考察。刚接触计算机语言,第一次做课设,难免存在许多不足。而且对有一些程序的理解不是很深入[12]。

但是通过这个程序,我们可以很快的计算出一个多元方程组的答案,唯一的不足就是本程序不能计算任意方程组,这样就把计算范围缩小到系数矩阵里。我个人觉得,在现实生活中,方阵方程组还是占多数。所以,本程序还是有一定的实际意义。

我希望通过以后的进一步学习,能够更好的完善此程序,使它能适用于一切方程组,被人们更好的利用。[16]

在浩瀚宇宙中,每个人都是渺小的。在计算机这个更新速度比光速还快的世界中,个人的力量实在太渺小了。这是我第一次接触计算机语言,书上的内容很精致,但是要利用书上所学的知识来让我们编写一个实际的程序实在是非常困难。

在调试过程中屡调屡败的状态下,我急得想哭,就在这时,老师给了我热情的帮助,老师指导我调试程序,说哪些是错的,哪些是多余的,哪些是必要的,一个杂乱无章的程序被修改得有条不紊,很显然结果也是最最正确的。在此,我真诚的感谢帮助我的老师们,老师就是黑暗中的指明灯,没有老师的指导,就没有我们顺利的完成任务的喜悦。老师每天都来机房为我们指导,及时解决我们所面临的问题,老师的工作态度让我们佩服,老师的一流技术让我们信服,老师的无私奉献让我们折服。

当然,同学们的帮助也是我前进的力量,也让我体会到真诚的友谊。团结就是力量,在老师、同学的帮助下,我顺利完成了此次的课程设计。也让我体会到了成功的来之不易,只有真正付出过才有满意的收获。

在此,我诚心的对所有帮助过我的老师学长同学们说一句:谢谢!!

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...