《软件体系结构》课程设计

《软件体系结构》课程设计
《软件体系结构》课程设计

《软件体系结构》课程设计

设计题目:实验室设备管理系统姓名:李欣张丹唐蔚霖学号: k0308413(07+13+17)同组组长:李欣

同组其他成员:张丹唐蔚霖

实验指导教师:李超

实验地点: 9B505

完成日期: 2011-6-10

湖北民族学院信息工程学院

目录

一、概述(目的、任务、开发环境、参考资料)

二、采用的主要方法与技术

三、需求分析

四、设计

五、实现过程与步骤

六、遇到的困难与获得的主要成果

七、测试与运行记录

八、完成结果分析与总结

九、附录(软件配置、个人完成的程序模块和文档清单)

一、概述(目的、任务、开发环境、参考资料)

21世纪以来,人类经济高速发展,人们发生了日新月异的变化。随

着时代的发展,教育越来越需要实验,让学生从实验中得到更多,更扎

实的知识。因此学校也需要对实验室的实验设备进行更多的投入,而投

入之后就带来了管理方面的问题。我们做的这个系统主要是对设备的购

买、维修、报废等方面进行了一定的管理,可以让设备进行有序、有效

的管理,为管理人员节约一些因为管理混乱而浪费的时间。不过系统的

功能还不够完善,性能也还不够稳定,有待于以后不断的进行完善。

实现的功能如下:

(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。

(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。

(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备

名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期

和经办人等信息),同时更新申请表的内容。

(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。

参考文献:谭浩强主编.Visual Basic程序设计(二)教程.清华大学出

版社

柳青等编. Visual Basic 程序设计教程.高等教育出版社

范立南. SQL Server2000 实用教程.北京:清华大学出版社

孙燕等编.Visual Basic 程序设计.高等教育出版社

萨师煊王珊编.数据库系统概论.北京:高等教育出版社

杨志强.Visual Basic 程序设计教程.北京:高等教育出版

社.

二、采用的主要方法与技术

软件工程是一门从技术和组织管理两个角度研究如何用系统化、规

范化和数量化等工程原理与方法去进行软件开发和维护的学科。软件工

程学研究的范围非常的广泛,包括技术方法、工具、和管理等许多方面。

软件生命周期的各个阶段可分为:

问题定义:确定系统的基本功能

可行性研究:确定系统是否能够实现及是否值得实现

需求分析:确定系统必须完成的各种功能

总体设计:确定如何实现软件

详细设计:详细设计实现系统

编码和单元测试:写出正确的容易理解和维护的程序模块

综合测试:通过各种类型的测试及调试使软件达到预订的要求

软件维护:通过各种必要的维护活动使系统持久的满足用户需要

采用软件工程的技术开发本系统,通过以上八个阶段组成的软件生存期。

它是指从提出开发要求开始直到该软件报废为止的整个时期。分阶段进行,就把规模庞大、结构复杂和管理复杂的软件变得很容易控制和管理。

本系统主要利用Visual Basic作为前端的应用开发工具,利用ACCESS作为后台的数据库,利用Windows XP作为系统平台。

Windows xp以其友好的图形界面、易学易用的操作方法、强大的多任务功能、健全的内在管理以及先进的程序设计方法为广大数据库软件开发人员嗦熟悉。对它的操作环境熟悉,使得我们在其开发数据库应用程序更加方便、可靠。

三、需求分析(该过程参考西方和本国制定的软件需求规范说明书相关标准)

管理员可以对实验室设备信息进行查询及相关实验室设备的使用情况查看。管理员可以根据本人用户名及密码登录系统。在信息系统中,后台数据库存储的地位相当重要,数据库的设计不但对数据的操作速度有影响,还直接关系到软件系统的质量和生存周期,本系统数据库中包括教师资料数据表、借用设备表、仪器表、用户登录表。系统首先必须维护实验室中详细资料的数据表,程序能对该表进行写入和读出数据的操作。相应的,该表还有记录读者的借用情况,系统通过该表判断读者是否满足借用条件。系统还要管理员信息表,记录管理员的资料,检验管理员的登录,管理员的权限等。

1、目的

1)便于用户、分析人员和软件设计人员进行理解和交流 2)希望系统的外部项均支持目标软件系统的确认。根据需求规格说明书中确立的可测试标准进行测试,并得到确认。

3)控制系统进化过程

2、软件产品的作用范围

学校、科研机构、大型实验室

3、功能需求

1)设备预订:实现实验人员在系统平台上查询库内实验设备的状态及其在某一时段的使用状态,若无损坏且未被预订使用,则用户可以预订使用。

2)设备管理:实现现在仓库中的每样设备信息的登记和新设备的入库登记,旧设备的报修、报废处理、以及设备状态的更改。

3)设备的借出:按照教师所需设备给予借出,并在数据库中更改这些设备的使用状态

4)设备的归还:按照教师所还设备而进行入库登记,并在数据库中更改这些设备的使用状态。

5)设备报修:实验人员在实验过程中如果发现设备损坏,通过此系统报告给管理员,同时修改数据库中的设备状态。

4、数据库需求

用户的需求具体体现在各种信息的提供、保存、更新和查询,要求数据库结构能够充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详细的数据字典。

四、设计(该过程参考西方和本国制定的软件设计规范说明书相关标准)

1、总体设计

原理:总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将计划分出组成系统的物理元素-----程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互之间的关系。

总体设计工程通常有两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计确定软件机构,也就是要确定系统中每个程序拥有哪些模块组成,以及这些模块之间的关系。在详细设计之前进行总体设计可以站在全局的高度上,花较少的成本,从中选出最佳的方案和最合理的软件结构,从而用较低的成本开发出高质量的软件系统。

2、详细设计

数据库的概念设计:根据对数据流图和数据字典的分析,确定该应用中的实体、属性、和实体之间的联系,并画出系统总体E-R图。概念设计可以分为三部进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。

局部E-R模式设计:实体和属性的定义。ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。

利用ER方法进行数据库的概念设计,可以分三个步骤进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后把全局ER模式进行优化,得到最终的模式。所有局部ER模式设计好了之后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。

1)局部ER模式的合并

合并的原则是:首先进行两两合并;先合并那些现实世界中有

联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部机构。

2)消除冲突

冲突分为三类:属性冲突、结构冲突、命名冲突。

设计全局ER模式的目的不在于把若干全局ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。

3)全局ER模式的优化

在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面的反映用户功能需求外,还应该满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能的少;实体类型间联系无沉余

“实验室设备管理系统”数据流图与数据字典

1、顶层数据流图的数据字典:

1)外部实体:

管理员=系统的唯一管理人员,拥有对系统的最高使用权限。负责对系统数据的录入、分析和处理。同时根据其他外部实体或系统输出信息,作出相应的处理。

修理人员 = 根据系统提供的修理要求,对设备进行修理的专门人员,并负责将详细的修理信息送交管理员

书面申请表

批示意见 购买申请及后续批示 电子申请表

操作信息 统计报表 控制命令

采购信息 处理信息 修 理 信 息

采购要求

修理要求 收集信息

存储信息

图(1) “ 实验室设备管理系统”顶层数据流图

管理员 领导

修理人员 采购人员

实验室设备 管理系统

数据库

2)数据流

电子申请表 = 系统根据管理员的输入信息,按照申请表的格式将信息整理,得出的WORD格式申请表

修理要求 = 管理员根据设备现有的损坏情况得出的需要修理信息修理信息 = 修理人员根据修理要求,对设备进行修理后。根据实际的修理情况整理出的详细修理信息

批示意见 = 领导根据管理员递交的书面申请表中的详细信息,反馈给管理员的对申请同意与否的意见

控制命令 = 增加 | 删除 | 查询 | 修改

增加 = 通过系统向数据库添加新信息

删除 = 通过系统将数据库中的错误或陈旧数据删除

查询 = 根据提供的条件,对数据库进行查找,并返回查找结果

修改 = 通过系统对数据库的已有数据进行修改,保证数据的正确操作信息 = 根据控制命令对系统进行操作,得出的操作结果

处理信息 = 管理员得到的关于设备购买、修理反馈回来的详细信息收集信息 = 系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库

存储信息 = 数据库中存储的信息,根据系统的操作要求需要传递给系统的信息

统计报表 = 修理信息统计表 | 报废信息统计表 | 设备资金统计

修理信息统计表 = 一月一次的对实验室的设备修理信息进行汇总

得出的书面表格

报废信息统计表 = 一月一次的对实验室的报废设备信息进行汇总

得出的书面表格

设备资金统计表 = 一月一次的对本月实验室资金使用情况的统计

表格

3)数据存储

数据库=用户信息表 | 申请信息表 | 设备记录表 | 购买记录表 | 修理信息表 | 报废记录表

用户信息表 = 数据库中存储管理员允许创建的,合法的用户信息存储表

申请信息表 = 数据库中存储所有申请记录的存储表

设备记录表 = 数据库中存储实验室现有设备详细信息的存储表

购买记录表 = 数据库中存储购买设备信息的存储表

修理信息表 = 数据库中存储设备修理信息的存储表

报废记录表 = 数据库中存储所有报废设备详细信息的存储表

书面申请表 批示意见

购买申请及后续批示 电子申请表 控制命令 统计 报表

处理信息 操作信息

修 采 提 理 购 出 详 详 已 情 情 批 申 请 表

购买 要求

申 请 信 修 报 息 购 理 废 存储信息 买 要 收集信息 信 求 息

报废信息

修理信息

图(2)“实验室设备管理系统”1级数据流图

管理员

领导

修理人员

数据库

申请管理

统计管理

及查询处理

购买处理 修理处理 报废管理

采购人员

2、1层数据流图的数据字典

1)数据处理

申请管理= 整理、处理零散的申请信息,并以表格形式反馈给管理员

统计、管理及查询处理= 管理设备信息,提供各种设备信息查询,及对各种设备信息进行统计以表格形式输出

购买处理= 整合申请表信息及设备购买要求形成详细设备购买信息送部门采购人员

修理处理= 根据系统传递过来的修理要求整合成详细修理要求送修理人员

报废处理= 根据管理员的报废命令,对需报废设备进行信息整理,操作相应数据库表,形成报废信息送数据库

2)数据流

提出= 管理员根据需要调用申请管理模块的控制命令

已批申请表= 包括领导同意信息和设备需求信息的申请表

报废= 管理员根据需要调用报废管理模块的控制命令

申请信息= 所有设备购买申请记录详细信息

报废信息= 响应管理员报废命令,经过报废处理后整理的详细设备报废信息

提出

申请命令

购买要求

控制命令 购买命令

修理命令

修理要求

查询命令

统计命令

处理信息 存储信息

存储信息 存储处理信息

统计报表

操作信息

图(3)“统计管理及查询处理” 2级数据流图

用户命 令识别 整理操 作信息

处理信

息存储 申请命 令处理

修理命 令处理

查询命 令处理 购买命

令处理

统计命令处理

3、级数据流图数据字典

1) 数据处理

用户命令识别 = 识别控制命令,分别调用各处理模块 处理信息存储 = 接受购买、修理等信息,存入数据库 整理操作信息 = 整理系统操作信息,显示送管理员处 申请命令处理 = 接受命令,调用申请模块

统计命令处理 = 接受统计命令,读取数据库信息,统计整理信息,产生月设备资金统计表,修理/报废注销表,购买申请表

五、实现过程与步骤

1、“实验室设备管理系统”的顶层数据流图如下:

“实验室设备管理系统”数据字典的定义如下:

1、顶层数据流图的数据字典:

1) 外部实体:

管理员=系统的唯一管理人员,拥有对系统的最高使用权限。负责对系统数据的录入、分析和处理。同时根据其他外部实体或系统输出信息,作出相应的处理。

修理人员 = 根据系统提供的修理要求,对设备进行修理的专门人员,并负责将详细的修理信息送交管理员 2) 数据流

修理要求 = 管理员根据设备现有的损坏情况得出的需要修理信息

管理员

领导

实验室设备

管理系统

采购人员

数据库

修理信息= 修理人员根据修理要求,对设备进行修理后。根据实际的修理情况整理出的详细修理信息

批示意见=管理员根据递交的书面申请表中的详细信息,给员的出对申请同意与否的意见

控制命令= 增加| 删除| 查询| 修改

增加= 通过系统向数据库添加新信息

删除= 通过系统将数据库中的错误或陈旧数据删除

查询= 根据提供的条件,对数据库进行查找,并返回查找结果

修改= 通过系统对数据库的已有数据进行修改,保证数据的正确操作信息= 根据控制命令对系统进行操作,得出的操作结果

处理信息= 管理员得到的关于设备购买、修理反馈回来的详细信息收集信息= 系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库

存储信息= 数据库中存储的信息,根据系统的操作要求需要传递给系统的信息

统计报表= 修理信息统计表| 报废信息统计表| 设备资金统计表修理信息统计表= 一月一次的对实验室的设备修理信息进行汇总

得出的书面表格

报废信息统计表= 一月一次的对实验室的报废设备信息进行汇总

得出的书面表格

设备资金统计表= 一月一次的对本月实验室资金使用情况的统计

表格

3)数据存储

数据库=用户信息表| 申请信息表| 设备记录表| 购买记录表| 修理信息表| 报废记录表

用户信息表= 数据库中存储管理员允许创建的,合法的用户信息存储表

申请信息表= 数据库中存储所有申请记录的存储表

设备记录表= 数据库中存储实验室现有设备详细信息的存储表

购买记录表= 数据库中存储购买设备信息的存储表

修理信息表= 数据库中存储设备修理信息的存储表

报废记录表= 数据库中存储所有报废设备详细信息的存储表

2、在将分析报告转换成设计报告的过程中,采用变换分析方法,根据数据流图转换成程序结构的模块,具体的模块结构和各个模块之间的关系如下图所示:

“实验室设备管理系统”程序结构“雏形”

六、遇到的困难与获得的主要成果

通过对本实验室设备管理系统的设计,使我们认识到软件开发过程实际上就是描述现实世界的过程。而由现实世界像软件模型的转化过程是其中最核心的过程。在课程设计的过程中我们遇到了许多问题,如在分析阶段不能完全正确的把握住系统的功能描述,设计数据流图时出现了很大的问题,在与同学们的讨论过程中,解决了这些问题。

本次实验使我们得到一次难得的锻炼机会,加深了对理论知识的理解,丰富了实践经验,让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我们即将从事的工作打下了坚实的基础!该系统还有许多不尽人意的地方,用户界面设计的不够完美,统计功能还不完善等,这些都有待进一步的改善。但本次实验提高了我们实际操作的能力,从以前的理论上升到实践,从感性认识上升到理性认识,真正做到学有所用。

七、测试与运行记录

1.引言

1) 目的

以文件的方式记载组装测试和确认测试的结果、发现问题以及分析评价,它是作为软件验收的依据之一。 2.测试结果

软件测试步骤有:单元测试、集成测试、确认测试和系统测试,在此就只对单元测试进行叙述,其他均略。

设备管理系统执

新数据输控制模块 信息输出

获取用户信输入新数分块管理 申请信息

数据库存储信

损坏设备的情

3.软件功能结论

1)模块名称(“添加新设备”模块)

2)功能

主要就上实现那些由采购人员买入的新设备,通过一个申请表的形式添加到系统的数据库中,同时添加一些这些设备的基本情况。以便与日后的查询,使用和管理。

4.分析摘要

1)能力

本系统基本完成了用户的软件需求。

2)缺陷和影响

3)软件错误

4)评价

该系统虽然基本完成了用户的软件需求,但还有很多地方还需要改善和完善。例如:系统的界面,还有系统的功能还没有完善,稳定性不够等。

运行记录:

这个模块的主要功能:为软件建立数据库,在运行时提供数据的连接。

八、完成结果分析与总结

1.管理员登入界面

1)模块的功能描述:

本模块主要是为实验室的管理人员提供管理的有保护的登入。阻止一些非法的用户进入。

2)界面设计

3)代码实现(主要部分)

String s1,s2

select *

into :s1,:s2

from Userid

where userid=:sle_1.text;

if sqlca.sqlcode=100 then

messagebox("提示信息","用户名或密码错误!")

elseif sqlca.sqlcode=-1 then

messagebox("提示信息","连接数据库失败!")

elseif s2=sle_2.text then

open(w_main)

close(w_login)

end if

2.系统主界面

1)系统主界面的功能描述:

此模块主要是管理员可以在这里查看到目前系统中总共有多少设备在库以及各个设备的一些基本情况。还可以实现排序和登入各个子模块实现具体的各个操作。

2)界面设计

3)代码实现

在这里主要代码都是通向各个子功能模块的,由于这个系统的各个子功能都是通过按扭打开一个新的窗口,在新的窗口中来具体实现各种功能的。因此这里的代码大部分都是一些很简单用于打开新窗口的,当然还有实现排序等方面的。(1)添加设备(2)报废处理(3)维修登记在三个模快在具体实现的时候再加以介绍。在这里主要是排序的代码:

if rb_1.checked=true then

dw_1.setsort("#5 a")

dw_1.sort()

end if

if rb_2.checked=true then

dw_1.setsort("#5 d")

dw_1.sort()

end if

3.添加新设备界面

1)功能描述:

当采购人员将新的设备买进来之后,就要在这里通过一个申请表格的形式将它添加到数据库中去。当然管理员可以在这里通过设备的型号可以查询到是否库中还有库存。

2)界面设计

3)代码实现(主要部分)

插入按扭

if sle_1.text="" then

elseif sle_2.text="" then

elseif sle_3.text="" then

elseif sle_4.text="" then

elseif sle_5.text=" then

elseif sle_6.text="" then

messagebox("提示信息","该条记录不能为空!")

elseif sqlca.sqlcode=100 then

messagebox("提示信息","插入失败")

sle_1.text=""

sle_2.text=""

sle_3.text=""

sle_4.text=""

sle_5.text=""

sle_6.text=""

elseif sqlca.sqlcode=-1 then

messagebox("提示信息","连接失败")

sle_1.text=""

sle_2.text=""

sle_3.text=""

sle_4.text=""

sle_5.text=""

sle_6.text=""

else

insert into wh

values(:sle_1.text,:sle_2.text,:sle_3.text,:sle_4.text,:sle_5.text,:sle_6.text);

messagebox("提示信息","插入成功!")

open(w_f11)

end if

查询按扭

String s1,s2,s3,s4,s5,s6

select *

into :s1,:s2,:s3,:s4,:s5,:s6

from wh

where sno=:sle_2.text;

if sqlca.sqlcode=100 then

messagebox("提示信息","没有找到要查找的信息")

sle_2.text=""

elseif sqlca.sqlcode=-1 then

messagebox("提示信息","连接数据库失败")

sle_2.text=""

else

sle_1.text=s1

sle_3.text=s3

sle_4.text=s4

sle_5.text=s5

sle_6.text=s6

end if

删除按扭

if sle_2.text="" then

elseif sle_3.text="" then

elseif sle_1.text="" then

elseif sle_4.text="" then

elseif sle_5.text="" then

elseif sle_6.text="" then

messagebox("提示信息","记录不能为空")

else

delete from wh where sno=:sle_2.text;

messagebox("提示信息","该条记录已经删除")

sle_1.text=""

sle_2.text=""

sle_3.text=""

sle_4.text=""

sle_5.text=""

sle_6.text=""

end if

查看按扭

查看有单独的窗口来显示:包括原来在的和刚刚插入的

4.维修登记界面

1)功能描述:

是对在使用之后出现了一定问题的那些设备,要将其单独列出,以便与厂商联系,尽快的将其问题解决。并要记下维修的厂家与负责人。

2)界面设计

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

数据结构课程设计参考题目

数据结构课程设计题目 数据结构课程设计题目(大题目).doc 一、公司销售管理系统 项目开发基本要求 1.客户信息管理:对客户的基本信息进行添加、修改和删除。 2.产品信息管理:对产品的基本信息进行添加、修改和删除。 3.供应商信息管理:对供应商的基本信息进行添加、修改和删除。 4.订单信息管理:对订单的基本信息进行添加、修改和删除。 二、高校科研管理系统 系统主要用于帮助高校或科研单位管理和维护各项科研相关资料 项目开发基本要求 1.系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己的系统口令。2.数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SCI、核心和一般四种情况。 3.项目参加人员管理模块包括:显示添加修改删除查询。 4.项目基本情况模块包括:显示添加修改删除查询。 5.项目获奖情况模块包括:显示添加修改删除查询。 6.期刊论文管理模块包括:显示添加修改删除查询。 7.著作管理模块包括:显示添加修改删除查询。 8.科研工作量统计模块:按照学校科研工作量计算办法,为每位科研人员进行科研工作量的计算和统计。 9.科研积分统计模块:按照学校科研积分计算办法,为每位科研人员进行科研计分的计算和统计。 三、网络五子棋对战 四、不同排序算法模拟 五、科学计算器 数据结构课程设计题目 1.运动会分数统计 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n< =20) 功能要求: 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分,

北京理工大学汇编实验报告3

北京理工大学汇编实验报告3

本科实验报告实验名称:实验三字符串操作实验 课程名称: 课程设计Ⅰ(CPU与汇编)(实 验)实验时间: 第5-10周周五 下午 任课教师:聂青实验地点:10-102 实验教师:苏京霞 实验类型:?原理验证□综合设计□自主创新 学生姓名:罗逸雨 学号/班级:1120141208 05211401 组号:3 学院:信息与电子学院同组搭档: 专业:通信工程成绩:

CX 中值减 1,当 CX 中值减至 0 时,停止重复执行,继续执行下一条指令。当REP无条件重复前缀,重复串操作直到计数寄存器的内容 CX 为0为止。经常与REP 配合工作的字符串处理指令有MOVS、STOS和LODS。 当REPE/REPZ判断计数寄存器的内容 CX 是否为0或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 当REPNE/REPNZ判断计数寄存器的内容是否为0或ZF=1(即比较的两个操作数相等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 3)字符串操作指令 lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据 DF 标志增减 SI; stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据 DF 标志增减 DI; movsb、movsw:把 DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据 DF标志分别增减SI和DI; scasb、scasw:把AL或AX 中的数据与ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; cmpsb、cmpsw:把DS:SI 指向的存储单元中的数据与 ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; rep:重复其后的串操作指令。重复前先判断 CX 是否为0,为0就结束重复,否则CX减1,重复其后的串操作指令。主要用在MOVS和STOS前。一般不用在 LODS 前。 上述指令涉及的寄存器:段寄存器DS和ES、变址寄存器SI和DI、累加器 AX、计数器CX。 涉及的标志位:DF、AF、CF、OF、PF、SF、ZF。 三、实验步骤 1) 编写程序,比较两个字符串BUF1和BUF2所含的字符是否相同,相同则AL 返回0,不同AL返回1,字符串长度要求自动获取,要求用字符串处理方法。提示:输入两个字符串之后,将串操作所必须的寄存器等参数设置好,然后使用串操作指令进行从头到尾的比较,两个字符串相等的条件是串长度相等且对应的字符相同。 2) 编写程序,设有一字符串存放在以BUF为首址的数据区中,其最后一字符‘$’作为结束标志,计算该字符串的长度并输出。提示:从串的第一个字符开始统计,直到遇到定义的字符串结束符为止,看看在这个过程中总共有多少个字符,

模拟电路课程设计心得体会

模拟电路课程设计心得 体会 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

精选范文:《模拟电路》课程设计心得体会(共2篇)本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的,所以在本学期暨模电、数电刚学完之际,紧接着来一次电子电路课程设计是很及时、很必要的。这样不仅能加深我们对电子电路的任职,而且还及时、真正的做到了学以致用。这两周的课程设计,先不说其他,就天气而言,确实很艰苦。受副热带高气压影响,江南大部这两周都被高温笼罩着。人在高温下的反应是很迟钝的,简言之,就是很难静坐下来动脑子做事。天气本身炎热,加之机房里又没有电扇、空调,故在上机仿真时,真是艰熬,坐下来才一会会,就全身湿透,但是炎炎烈日挡不住我们求知、探索的欲望。通过我们不懈的努力与切实追求,终于做完了课程设计。在这次课程设计过程中,我也遇到了很多问题。比如在三角波、方波转换成正弦波时,我就弄了很长时间,先是远离不清晰,这直接导致了我无法很顺利地连接电路,然后翻阅了大量书籍,查资料,终于在书中查到了有关章节,并参考,并设计出了三角波、方波转换成正弦波的电路图。但在设计数字频率计时就不是那么一帆风顺了。我同样是查阅资料,虽找到了原理框图,但电路图却始终设计不出来,最后实在没办法,只能用数字是中来代替。在此,我深表遗憾!这次课程设计让我学到了很多,不仅是巩固了先前学的模电、数电的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多些!

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

汇编课程设计报告

四川大学计算机学院 学生实验报告 实验名称:汇编课程设计报告 指导教师:唐宁九 姓名:廖偲 学号:0943111209 班级:软件09级一班 日期:20101114

实验报告 班级______________姓名_______________学号_________ 一、实验一:DEBUG基本命令与数据传输指令 二、实验的目的和要求: ? 1.熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。 ? 2.在理解数据传输指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录; 三、实验的环境: 1.硬件环境:cpu 2.26gHZ、内存2G、显存1G、64位总线笔记本电脑 2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。 四、源程序清单: ?MOV AL, 01H ?MOV SI, 0002H ?LEA SI, [SI] ?MOV BYTE PTR [SI], 80H ?LAHF ?XCHG AL, AH ?SAHF ?XCHG AH, [SI] ?SAHF 五、操作内容: 1.从cmd在debug下进入用A命令进行汇编 格式: A [地址] 功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。如果不指定汇编地址, 则以CS:IP为地址 2. 反汇编命令U使用 格式: U [地址]/[地址范围] 功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。 注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。 3.寄存器查看/编辑命令r或r寄存器名称 功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

电子线路CAD课程设计汇本报告

目录 第一章绪论 (2) 1.1设计目的及要求 (2) 1.2 设计流程 (2) 第二章原理分析 (3) 2.1 最小系统的结构 (3) 2.2 各电路的原理分析 (3) 第三章原理图绘制 (8) 3.1 原理图设计的一般步骤 (8) 3.2 元件库的设计 (8) 第四章PCB图的绘制 (12) 4.1 创建该项目下的PCB文件 (12) 4.2 绘制PCB (12) 总结 (15) 参考文献 (16) 附录 (17)

第一章绪论 1.1 设计目的及要求 电子线路CAD是以电为主的机电一体化工科专业的专业基础课,作为通信工程专业,要通过学习一种典型电子线路CAD软件altium designer,掌握计算机绘制包括电路(原理)图、印刷电路板图在的电气图制图技能和相应的计算机仿真技能。通过本次设计,达到了解DXP软件的运用,认识51单片机的最小系统的构成以及学会改正制图过程中遇到的问题。 根据课程设计的题目,独立设计、绘制和仿真电路,实现51单片机的最最小系统。要求如下: (1)设计出原理图自己绘制51单片机最小系统的电路图,分析电路图中各小电路的工作原理; (2)用DXP软件画出原理图; (3)用DXP软件仿真出PCB板,熟悉电路板的加工工艺; 1.2 设计流程 本次设计主要是熟练运用DXP作出最小单片机系统的电路图,以下通过介绍最小系统的各部分电路的电路图及原理,通过在DXP上绘制原理图,检查并

修改错误,最后生成完整PCB板。

第二章原理分析 2.1 最小系统的结构 单片机单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM (数据存储器)、ROM(程序存储器)、定时器/计数器和多种功能的I/O(输入和输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。 单片机最小系统电路主要集合了串口电路、USB接口电路、蜂鸣器与继电器电路、AD&DA转换电路、数码管电路、复位电路、晶振电路和4*4矩阵键盘等电路。如下介绍几种简单的电路设计。 下图是本次设计的的几个有关电路图总体框图:

数据结构课程设计报告学生成绩管理系统

数据结构课程设计报告学 生成绩管理系统 The following text is amended on 12 November 2020.

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号: 指导教师:司晓梅 2016年 3 月 20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排

数据结构课程设计独立题目

题目2:运动会分数统计 1.问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2.功能要求 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分; 3)可以按学校编号、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 。 题目6:哈夫曼编/译码器 1.问题描述 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 2.功能要求 I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree 中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中。 D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 题目9:构造可以使n个城市连接的最小生成树 1.问题描述 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 2.功能要求 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

电子线路课程设计报告

石英晶体好坏检测电路设计 设计要求 1. 利用高频电子线路及其先修课程模拟电路的知识设计一个电子线路2.利用该电子线路的要求是要求能够检测石英晶体的好坏 3. 要求设计的该电子线路能够进行仿真 4. 从仿真的结果能够直接判断出该石英晶体的好坏 5. 能够理解该电子线路检测的原理 6. 能够了解该电子线路的应用 成果简介设计的该电子线路能够检测不同频率石英晶体的好坏。当有该石英晶体(又称晶振)的时候,在输出端接上一个示波器能够有正弦波形输出,而当没有 该晶振的时候,输出的是直流,波形是一条直线。所以利用该电路可以在使 用晶振之前对其进行检测。 报告正文 (1)引言: 在高频电子线路中,石英晶体谐振器(也称石英振子)是一个重要的高频部件,它广泛应用于频率稳定性高的振荡器中,也用作高性能的窄带滤波 器和鉴频器。其中石英晶体振荡器就是利用石英晶体谐振器作滤波元件构成 的振荡器,其振荡频率由石英晶体谐振器决定。与LC谐振回路相比,石英晶 体谐振器有很高的标准性,采用品质因数,因此石英晶体振荡器具有较高的 频率稳定度,采用高精度和稳频措施后,石英晶体振荡器可以达到很高的频 率稳定度。正是因为石英晶体谐振器的这一广泛的应用和重要性,所以在选 择石英晶体谐振器的时候,应该选择质量好的。在选择的时候要对该晶振检 测才能够知道它的好坏,所以要设计一个检测石英晶体好坏的电路。 (2)设计内容: 设计该电路的原理如下:

如下图所示,BX为待测石英晶体(又名晶振),插入插座X1、X2,按下按钮SB,如果BX是好的,则由三极管VT1、电容器C1、C2等构成的振荡器工作,振荡信号从VT1发射极输出,经C3耦合到VD2进行检波、C4滤波,变成直流信号电压,送至VT2基极,使VT2导通,发光二极管H发光,指示被测石英晶体是好的。若H不亮,则表明石英晶体是坏的。适当改变C1、C2的容值,即可用于测试不同频率的石英晶体。 图一石英晶体好坏检测电路检测原理图 在上面的电路中,晶振等效于电感的功能,与C1和C2构成电容三点式振荡电路,振荡频率主要由C1、C2和C3以及晶振构成的回路决定。即由晶振电 抗X e 与外部电容相等的条件决定,设外部电容为C L ,则=0,其中C l 是C1、 C2和C3的串联值。 (3)电路调试过程: 首先是电路的仿真过程,该电路的仿真是在EWB软件下进行的,下面是将原图画到该软件后的截图:

数据结构与算法课程设计

数据结构与算法课程设计

数据结构与算法课程设计 一、课程设计的目的、要求和任务 本课程设计是为了配合《数据结构与算法》课程的开设,通过设计完整的程序,使学生掌握数据结构的应用、算法的编写等基本方法。 1.课程的目的 (1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力; 2.课程的基本要求与任务 (1)巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。

(2)培养学生自学参考书籍,查阅手册、图表和文献资料的能力。 (3)通过实际课程设计,初步掌握简单软件的分析方法和设计方法。 (4)了解与课程有关的工程技术规范,能正确解释和分析实验结果。 (5)题目具有足够的工作量。 二、课程设计的一般步骤 (1)划分课程设计小组:由不超过3名同学组成一个课程设计小组,自愿组队。 (2)选题与搜集资料:每个课程设计小组在参考选题中选择课题,并保证每人一题。 (3)分析与概要设计:根据搜集的资料,进行程序功能与数据结构分析,并选择合适的数据结构、并在此基础上进行实现程序功能的算法设计。 (3)程序设计:运用掌握C/C++语言编写程序,实现所有程序的各个模块功能。 (4)调试与测试:调试程序,并记录测试情况。(5)完成课程设计报告。 (6)验收与评分:指导教师对每个同学的开发

的系统进行综合验收。 三、任务完成形式 1.完整的软件系统 最终必须向指导老师提交完整的程序源代码(.c和.cpp以及.h为后缀的文件)、数据文件以及使用说明文件等。源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录);使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。 2.课程设计报告 报告总体上主要包括以下几个部分,封面、目录、课程设计报告正文、使用说明、参考文献。其中课程设计报告正文(12-20页之间,8000字以上),书写规范,应包括如下8个部分:(1)问题描述:描述要求编程解决的问题。(2)功能要求:给出程序要达到的具体的要求。 (3)算法思想:描述解决相应问题算法的设计思想。

数据结构课程设计题目

《数据结构》课程设计题目 1. 排序算法的性能分析 问题描述 设计一个测试程序,比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 基本要求 (1)对冒泡排序、直接排序、选择排序、箱子排序、堆排序、快速排序及归并排序算法进行比较。 (2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动)。 (3)输出比较结果。 选做内容 (1)对不同表长进行比较。 (2)验证各算法的稳定性。 (3)输出界面的优化。 2. 排序算法思想的可视化演示—1 基本要求 排序数据随机产生,针对随机案例,对冒泡排序、箱子排序、堆排序、归并算法,提供排序执行过程的动态图形演示。 3. 排序算法思想的可视化演示—2 基本要求 排序数据随机产生,针对随机案例,,对插入排序、选择排序、基数排序、快速排序算法,提供排序执行过程的动态图形演示。 4. 线性表的实现与分析 基本要求 ①设计并实现线性表。 ②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储方 式 ③针对随机产生的线性表实例,实现线性表的插入、删除、搜索操作动态演示(图 形演示)。 5. 等价类实现及其应用 问题描述:某工厂有一台机器能够执行n个任务,任务i的释放时间为r i(是一个整数),最后期限为d i(也是整数)。在该机上完成每个任务都需要一个单元的时间。一种可行的调

度方案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。一个时间段不允许分配给多个任务。 基本要求: 使用等价类实现以上机器调度问题。 等价类分别采取两种数据结构实现。 6. 一元稀疏多项式计算器 问题描述 设计一个一元稀疏多项式简单计算器。 基本要求 一元稀疏多项式简单计算器的基本功能是: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序; (3)多项式a和b相加,建立多项式a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做) 7. 长整数的代数计算 问题描述 应用线性数据结构解决长整数的计算问题。设计数据结构完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘、除等基本代数运算。 基本要求 ①长整数长度在一百位以上。 ②实现两长整数在取余操作下的加、减、乘、除操作,即实现算法来求解a+b mod n, a-b mod n, a?b mod n, a÷b mod n。 ③输入输出均在文件中。 ④分析算法的时空复杂性。 8. 敢死队问题。 有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。 要求:至少采用两种不同的数据结构的方法实现。 9. 简单计算器

计算机组成原理与大全实验报告

计算机组成原理与汇编课程设计 实验报告 字符统计.asm 2.斐波那契数(小于50).asm (29) 一、课程设计目标 通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。

课程设计的目的和要求: 1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。 2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。 3、使学生养成良好的编程习惯并掌握调试程序的基本方法。 4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。 5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。 1 2 3 4 1 2 3 00001001 00100000 00001011 00110000 00001011

01000000 00000000 00000001 本实验设计机器指令程序如下: 4)这里做的是个加法运算,第一个加数已经存入到内存的0000 1010单元中, 第二个加数是需要手工输入的。在实验运行面板中点击“运行”按钮,选择 “输入”芯片,设置输入的数据后,双击连接“输入”芯片的单脉冲,这样 第二个加数就设置好了。 5)在实验运行面板中双击连续脉冲,模型机便开始工作,观察各个芯片的状态。 或者在模型机调试窗口中(如图2所示)点击“指令执行”选项卡,在模型 机调试窗口中点击“下一时钟”,模型机机执行到下一个时钟,点击“下一

微指令”,模型机机执行到下一个微指令,点击“下一指令”,模型机机执行到下一条指令。观察各个芯片的状态,思考模型机的运行原理。 四、课程设计的要求 1、根据题目内容,查阅资料。 2、编写课程设计预习报告。 3、编制程序及调试程序。 4、分析总结,写出课程设计报告,报告中应该包含程序功能与使用说明、程序功能 实现方法说明、如流程图与算法参数说明等内容,设计经验体会总结,源程序清 5 6 1 通 三、实验设计内容 读取文件代码段: MOV AX,DATAS MOV DS,AX ;置数据段寄存器 ; MOV DX,OFFSET FNAME MOV AX,3D00H ;读打开指定文件

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

数据结构课程设计-银行业务模拟系统

山东理工大学计算机学院课程设计 (数据结构) 班级计升1001班 姓名 学号1022051029 指导教师 二○一一年一月二十日

课程设计任务书及成绩评定 课题名称银行业务模拟系统 Ⅰ、题目的目的和要求: 1、设计目的 巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。 (1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。 (2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。 2、设计题目要求: 1. 客户业务分为两种:第一种是申请从银行得到一笔资金,即取款或借款;第二种是向银行投入一笔资金,即存款或还款。 2. 银行有两个服务窗口,相应地有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足时,则立即排入第二个队等候,直至满足时才离开银行,否则业务处理完后立即离开银行。 3. 每接待完一个第二种业务的客户,则顺序检查和处理第二个队列中的客户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾。 4.假设检查不需要时间,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有满足者),转而继续接待第一个队列的客户。 5. 任何时刻都只开一个窗口,营业时间结束时所有客户立即离开银行。通过模拟方法求出客户在银行内逗留的平均时间。

Ⅱ、设计进度及完成情况 Ⅲ、主要参考文献及资料 [1] 严蔚敏数据结构(C语言版)清华大学出版社 1999 [2] 严蔚敏数据结构题集(C语言版)清华大学出版社 1999 [3] 谭浩强 C语言程序设计清华大学出版社 [4] 与所用编程环境相配套的C语言或C++相关的资料

数据结构课程设计题目表

《数据结构》课程设计课题表 课题1:设计出链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。 要求: (1)所设计的数据结构应尽可能节省存储空间。 (2)程序的运行时间应尽可能少。 课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。 要求:要检查有关运算的条件,并对错误的条件产生报警。 课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题6:设计出树结构的相关函数库,以便在程序设计中调用。要求: (1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题7:选择合适的存储结构表示广义表,并能实现下列运算要求: (1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。 (2)取广义表L的表头和表尾的函数head(L)和tail(L)。

汇编器实验报告doc

汇编器实验报告 篇一:汇编实验报告 实验一(1)熟悉汇编语言程序调试环境及顺序程序设计 一、实验目的及要求: 1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。 2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。 3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 二、熟悉汇编语言程序调试环境 1.汇编语言源程序的建立 本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。设定源程序的文件名为ABC。 DATA SEGMENT BUFDB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FH CN EQU $-BUF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: PUSH DS

XOR AX,AX PUSH AX MOVAX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV CX,CN DEC CX MOV AL,[BX] INC BX LP:CMP AL,[BX] JBE NEXT MOV AL,[BX] NEXT: INC BX DEC CX JNZ LP MOV AH,4CH INT 21H CODE ENDS END START 键入以下命令: C:\>EDIT ABC.ASM 此时屏幕的显示状态如图1所示。

1 图1 用EDIT编辑ABC.ASM程序窗口 程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。 2.将源程序文件汇编成目标程序文件 一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。 (2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。 (3)若程序中使用了宏指令,则汇编程序将展开宏指令。 源程序建立以后,在DOS状态下,采用宏汇编程序MASM 对源程序文件进行汇编,其操作过程如图2所示。 图2 MASM宏汇编程序工作窗口 汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。 3.用连接程序生成可执行程序文件

相关文档
最新文档