版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 中 南 民 族 大 学计算机科学学院软件工程设计报告报告名称:KTV点歌系统需求分析编制人员:KTV点歌系统开发小组审核人员: 指导教师: 需求分析说明书引言编写目的需求分析是软件开发过程中一个非常重要的环节,它的基本任务是准确地回答系统必须做什么。需求分析设计的好与坏直接影响到软件开发的进程以及软件质量。需求分析的任务不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。背景说明本软件称为KTV点歌系统 。本软件适合中小型KTV娱乐中心以及个人使用。随着时代的进步,人们的生活变得越来越富裕,这时候的人们不仅仅是追求物质上的享受,人
2、们对精神上的享受空前提高。而时代赋予现代人类的一大精神盛宴无疑是越来越多的流行乐,尤其是大多数的青少年更是离不开音乐。KTV就是这个时候运运而生,城市里越来越多的KTV(这里指KTV场所)出现在人们的生活中。因此,开发出一款受大众欢迎的KTV系统是非常迫切需要的。术语定义术语名称术语含义备注KTV点歌系统用于卡拉OK时进行点歌的软件平台一般由软件开发商开发管理员可对该系统进行管理的用户,权限高于普通用户能使用本系统所有能,并且可以进行曲库的更新普通用户有使用该系统的权限的用户只能使用基本功能,不能对曲库进行更新操作参考文献软件工程导论(清华大学出版社 第五版) 软件概述KTV点歌系统是以卡拉O
3、K为基础,利用计算机技术以及数据库技术对客户点歌以及歌曲的存储进行很大改善的计算机应用系统。本系统主要方便用户在进行点歌时提供一个非常友好的交互界面,以及给系统管理员提供了一个最高权限,即是能对数据库进行相应操作,例如删除曲库中的歌曲,添加新的歌曲到曲库中去。下图为KTV点歌系统信息顶层图:用户用户ID密码信息KTV点歌系统ID密码信息管理员 图1 KTV点歌系统信息顶层图三、需求规定1功能需求KTV点歌系统主要提供一个友好的界面给用户进行卡拉OK,以及管理曲库中的数据,比如说更新曲库,删除不喜欢的歌曲等。本系统主要由以下两部分组成:在进入系统之后首先是用登陆系统,根据用户输入的内容判断用户的
4、合法身份。合法用户分为普通用户和系统管理员,其中系统管理员拥有所有权限,而普通用户没有用户管理和修改系统信息的权限。进入系统后,用户可以进行相应的合法操作。主要有:点歌、播放歌曲、切歌、对已选歌曲进行优先和删除操作。而管理员除了具有以上这些权限,还能够对系统的曲库进行更新操作。下图为KTV点歌系统的主要功能结构:KTV点歌系统KTV点歌系统普通用户子系统系统用户子系统主系统用户管理设置系统参数更新曲库用户注册用户身份验证用户登录用户管理设置系统参数更新曲库用户注册用户身份验证用户登录 图2 KTV点歌系统主要功能模块2外部借口需求用户界面(1)采用WINDOWS的通用图形界面,用户界面友好。(
5、2)界面采用一致性,界面规范遵循WINDOWS软件界面的规范。(3)提供错误处理。(4)提供信息提示,用多种信息提示当前用户状态、界面的功能。(5)提供方便的联机帮助。硬件软件接口系统软件:Windows XP以及更高版本的Windows系统数据库软件:Microsoft SQL Server 2008硬件要求:Pentium II 450MHZ以上处理品,258MB以上内存,20GB以上硬盘剩余空间。3性能需求为了保证系统能够长期、安全、稳定、可靠、高效地运行,科技进步先进个人申报系统应该满足以下的性能需求。系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。查询时应保证全率,
6、所有相应字段包含查询关键字的记录都应能查到。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作负荷,使系统的处理能力和响应时间能够满足客户的要求。系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如订购方式(网订),用户查询的需求也会不断地更趋近完善。所有这些,都要求系统提供足够的手段进行功能的高速和扩充。要实现这一点,及通过系统的开放性来完成,即系统应是一个开放系统,只要符合一定的规范,可以简单地加入和养活系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。系统的易用性和易用维护系统是直接面对使用人员的,而使用人员往往地计算机关不是
7、非常熟悉。这就要求系统能够提供良好的用户界面;针对用户可能出现的使用总是要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及的数据是公司的相当重要的住处系统要提供方便的手段供系统维护人员进行数据的备份、日常的安全管理、系统意外崩溃时数据的恢复工作。系统的标准性系统在设计、开发、使用过程中都要涉及很多计算机硬件及软件。所有这些都要符合主流国标标准、国家标准和行业标准。例如,在开发过程使用的操作系统、网络系统、开发工具都必须符合通用标准,如规范的数据库操纵界面。软件属性需求1)正确性要求发布的软件达到用户的预期目标,运行是基本无误。2)可靠性在正常条件下,应该不出故障。3)效率对于浏览、查询
8、、增加、删除、更新和密码设置一般操作,要求及时响应,响应时间应在12秒内。4)完整性 要求在发生意外时,保证数据不丢失。5)易用性 软件界面符合当前主流软件的操作习惯,昼为助记词的使用提供方便。6)可维护性 要求软件运行发现错误时,能够快、准确地对其定位、诊断和修改恢复。7)安全保密性要求提供身份验证,只允许通过身份验证的用户使用本软件。8)可理解性对于软件提供的各种功能应该一目了然,易于理解。9)数据的可交换性要求提供数据的导入/导出功能(只允许管理员具有此权限)。总体设计说明书引言编写目的根据可行性分析说明书、需求分析说明书,经过认真仔细的讨论以及认真的分析,我们对KTV点歌系统软件的功能
9、划分、数据结构、软件总体结构的实现有了进一步的想法。我们将这些想法记录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。项目背景本软件称为KTV点歌系统 。本软件适合中小型KTV娱乐中心以及个人使用。随着时代的进步,人们的生活变得越来越富裕,这时候的人们不仅仅是追求物质上的享受,人们对精神上的享受空前提高。而时代赋予现代人类的一大精神盛宴无疑是越来越多的流行乐,尤其是大多数的青少年更是离不开音乐。KTV就是这个时候运运而生,城市里越来越多的KTV(这里指KTV场所)出现在人们的生活中。因此,开发出一款受大众欢迎的KTV系统是非常迫切需要的。总体设计KTV点歌系统是一种娱乐型的软件管
10、理系统。使用本系统需要具备相应的权限,也就是需要正确的用户名及密码,用户分为普通用户和管理员。登录本系统后,可进行点歌、播放、暂停、切歌、优先、电影欣赏等相应的操作。本系统主要包括登录模块、视频播放模块、控制模块、点歌模块和数据库模块。功能模块设计点歌方式包括歌手点歌、歌名点歌,控制包括播放、暂停、切歌和音量控制,管理员可以通过自己具有的权限对KTV点歌系统的曲库进行更新操作。系统模块分为以下几个部分,如图1所示。用户登录用户登录主控界面主控界面更新曲库控 制点 歌更新曲库控 制点 歌修改歌曲删除歌曲载入歌曲音量控制切歌暂停播放修改歌曲删除歌曲载入歌曲音量控制切歌暂停播放歌曲点歌歌手点歌歌曲点
11、歌歌手点歌 图1 系统功能模块设计流程下面着重介绍一下主控界面的搭建过程。安装本系统后,打开程序,首先进入登录界面,然后进入欢迎界面,若登录成功,会自动进入主控界面。界面设计本系统打开之后,首先弹出的是登录界面,让用户输入正确的用户名及密码,待用户信息输入完成并验证用户信息无误的时即可进入欢迎界面,随后进入主控界面。至此,一切准备工作的已经准备完成了,用户可以根据自己的需要进行相应的操作了。数据库相关设计本系统的运行需要一个庞大的数据库做后台,本系统主要存储的是音乐的MTV,每一首都会占用10MB到100MB的容量,并且音乐的数量也较为庞大,故对数据库有很大的依赖性。数据库有用户管理数据库以及
12、曲库数据库,用户管理数据库用来存储用户的相关信息,曲库数据库则是存储歌曲的相关信息。图2为用户管理数据库表,图3为管理员数据库表,图4为曲库数据库表:列名数据类型数据长度唯一性约束用户名char20有密码char6无 图2 用户管理数据库表列名数据类型数据长度唯一性约束用户名char20有密码char6无 图3 管理员数据库表列名数据类型数据长度唯一性约束歌手char 20 无歌名char 30 无语种 char 10 无 图3 曲库数据库表功能系统主控界面打开以后,用户就可以很方便地进行相应的操作。首先,进行歌曲选择,可以通过歌手点歌和歌名点歌两种方式进行点歌,歌曲点好之后就可以开始进行播放
13、了,用户可进行播放、暂停、切歌以及音量调节等播放控制。当然,对已经预选好的歌曲,如果不满意,可以进行删除的操作,如果希望所选的歌曲先于之前的歌曲播放,可以点击优先按钮。如果曲库中的歌曲用户不喜欢或者是需要添加自己喜欢的歌曲,那么用户可以获取管理员权限对曲库进行删除、添加以及修改的操作。模块结构设计登录模块程序开始运行时,需要用户提供一定的权限,才能使用本系统。因此,首先弹出登陆框,提醒用户登录系统,若用户不存在或密码错误,登录失败,提醒用户用户名或密码错误;若需要注册新用户,直接点击注册按钮进行注册。登录成功后系统就可以进行正常的工作了。视频播放模块用户点好歌之后希望能够观看字母或者视频,这是
14、就需要提供用户一个用于播放视频格式文件的模块。控制模块控制模块是本系统中很重要的一个模块,用户可以通过控制模块对系统进行相应的操作,比如说播放歌曲,暂停播放,切换歌曲,音量调节,观看电影,删除已选歌曲,优先选中的歌曲等等。总之,通过该模块用户可以更方便地进行卡拉OK。点歌模块系统进入主控界面之后,会加载一首默认的歌曲,当然不会自动播放,因为有时候用户不需要。若要点唱其他的歌曲,则需要进入点歌模块,点歌模块可以分为歌手点歌和歌名点歌,用户可以输入歌手名或者歌名进行点歌。数据库模块数据库设计是系统设计中的一个很重要的环节,本系统只需要一个数据库,其中包括三张表,一张用户管理表,一张管理员表和一张曲
15、库表。详细设计报告一、引言1.编写目的本说明书基于之前编写的需求分析报告与总体设计报告而编写的,本说明书主要提供了本系统每个模块的精确描述。通过本说明书,读者可以很清楚地看到本系统的详细设计细节。2.背景本系统名为:KTV点歌系统。本系统属于娱乐性的管理软件系统,主要用于KTV娱乐场所。3.定义术语名称术语含义备注KTV点歌系统用于卡拉OK时进行点歌的软件平台一般由软件开发商开发管理员可对该系统进行管理的用户,权限高于普通用户能使用本系统所有能,并且可以进行曲库的更新普通用户有使用该系统的权限的用户只能使用基本功能,不能对曲库进行更新操作注册用于注册新用户若用户目前没有使用该系统的权限,可以注
16、册欢迎界面登录系统后就进入的一个界面通过本界面给予用户一种友好的感觉主界面一切操作的平台该界面上集成了点歌系统的大多数功能点歌界面用于选择用户喜爱的歌曲通过点击主界面上的点歌按钮即可进入该界面导入歌曲界面用于添加新的歌曲到曲库当中的界面只有系统管理员才有该权限删除歌曲界面用于删除用户不喜欢的歌曲只有系统管理员才有该权限登录界面用户登录该系统的入口界面打开该系统,首先进入该界面,需要提供相应的权限4.参考资料软件工程导论(清华大学出版社 第五版)C+ Builder程序设计导学(清华大学出版社 刘光)数据库系统概论(高等教育出版社 王珊 萨师煊)Microsoft SQL Server 2005
17、数据库设计二、系统的结构1.数据库设计列名数据类型数据长度唯一性约束用户名char20有密码char6无 图2 用户管理数据库表列名数据类型数据长度唯一性约束用户名char20有密码char6无 图3 管理员数据库表列名数据类型数据长度唯一性约束歌手char 20 无歌名char 30 无语种 char 10 无 图3 曲库数据库表2.前台设计 用户登录用户登录欢迎界面欢迎界面主控界面主控界面更新曲库控 制点 歌更新曲库控 制点 歌修改歌曲删除歌曲载入歌曲音量控制切歌暂停播放修改歌曲删除歌曲载入歌曲音量控制切歌暂停播放歌曲点歌歌手点歌歌曲点歌歌手点歌 图1 系统功能模块三、登陆界面模块设计说明
18、主要介绍了登录界面模块的详细设计。1.模块描述登录窗口是用户与本系统“见面”的第一个界面。在该界面上需要用户输入用户名和用户密码登录系统,其中还需要选择登录的用户类型(普通用户或者管理员),若用户没有权限登录该系统或者说没有注册该系统,可以从该界面进入注册界面,进行注册。由于本界面是系统与用户最先见面的界面,故要充分考虑界面的美观。2.功能通过本界面可以登录到系统,若用户没有权限登录该系统或者说用户还为注册过该系统,则可以通过本界面进入注册界面,进行新用户注册。3.性能本模块对于用户输入的用户名和密码要进行严格的审查。若用户还没有输入用户名,应提示用户用户名未输入;若用户未输入用户密码应提示用
19、户密码未输入;若两者都没有输入,则提醒用户用户名和密码还没有输入。用户输入完成后,应对数据库中的用户表进行查询。若用户不存在则提示用户用户名不存在;若用户存在而密码不正确应提示用户密码错误;若输入均无误,则直接进入欢迎界面。本模块要有具有很完整的检错机制以及相应的提示消息。4.输入项用户输入用户名和密码作为用户使用该系统的权限,用户名和密码都必须存在数据库中的用户表中并且要都输入正确。5.输出项本模块没有输出,只是让用户输入自己登陆系统的权限。6.设计方法(算法)需要用到两个Label控件,两个Edit控件,两个BitBtn,两个RadioButton,一个Button。7.流程逻辑选择用户类
20、型选择用户类型输入密码输入用户名输入密码输入用户名 输入完成 输入完成查找数据库表中用户查找数据库表中用户判断用户明和密码是否存在或者是否正确判断用户明和密码是否存在或者是否正确用户名或密码不正确 用户名不存在进入欢迎界面进入欢迎界面8.接口如果本模块所要求用户输入的用户名存在并且用户密码正确了之后就可以进入到接下来的欢迎界面模块。9.存储分配本模块不需要占用太多的存储空间,用户信息均存放在数据库中。10.限制条件本模块在用户正确输入用户信息的情况下不会产生任何问题,但是用户名只能有大于0并且小于20个字符。密码最大为6位。11.测试计划测试该模块时,先在数据库中的用户表中添加几个用户名和对应
21、的密码,然后通过输入数据库表中已有的用户信息对本模块进行测试。12.尚未解决的问题由于登录界面本身的结构就相对简单,所以目前没有上位解决的问题(满足限制条件的情况下)。四、注册界面模块设计说明若用户没有足够的权限登录该系统,则可以选择点击注册按钮进行注册。1.模块描述本模块主要是用于新用户进行注册,届时,用户需要输入完整的信息。2.功能通过本模块,用户可以获取登录该系统的权限,但是必须输入完整的用户信息。3.性能对于用户输入的错误信息本模块必须具有较强处理错误能力,否则会对后台数据库造成影响。4.输入项用户需要提供用户名,用户密码以及确认密码。5.输出项本模块将用户填写的正确信息写到数据库中的
22、用户表中。6.设计方法(算法)本模块需要用户输入三个信息,分别是:用户名、用户密码以及确认密码。只有在三个信息都输入的情况下本模块才会检查用户输入的信息。首先,本模块需要对用户输入的用户名进行查询,若数据库中的用户表中存在该用户,则不能注册;若不存在,检查用户的用户密码和确认密码是否一致,不一致要求用户重新输入,若一致则注册成功。7.流程逻辑开 始开 始用户输入用户名,用户密码以及确认密码用户输入用户名,用户密码以及确认密码用户是否存在?用户密码以及确认密码是否一致用户是否存在?用户密码以及确认密码是否一致 用户密码和确认密码不一致 用户已存在返回登录界面返回登录界面8.接口打开本系统进入登录
23、界面,点击“注册”按钮,注册完成之后进入登录界面。9.存储分配本模块只是用户输入用户基本信息,故不需要太大的空间开销。10.限制条件用户名长度需大于0小于等于20个字符,用户密码必须小于等于6。不能注册已有的用户名。11.测试计划多次进行注册,然后以注册的用户登录系统,可以通过Microsoft SQL Server 2008打开数据库查看用户表中注册的用户是否已经写到用户表中,对输入错误的情况在限制条件内反复地进行测试,直至达到预期的效果为止。12.尚未解决的问题鉴于本模块的简单性,故在其上所需要实现的功能均已经实现,故目前不存在未解决的问题。五、欢迎界面设计说明登录系统成功后,首先进入的是
24、欢迎界面,该界面只是给用户一个了解该系统友好交互。1.模块描述本模块是该系统中最简单的一个模块,因为它不需要实现任何功能,在其上只需要一个按钮进入主界面就可以了。2.功能本模块只作为一个从登录界面到主界面的一个过渡,无什么实际功能。3.性能无性能需求。4.输入项登录成功后直接进入该界面。5.输出项单击“进入”按钮可直接进入系统主界面。6.设计方法(算法)在该界面上添加一张图片作为美化,一个按钮7.流程逻辑无。8.接口主控界面欢迎界面登录系统主控界面欢迎界面登录系统 登录成功9.存储分配无需分配多大的存储空间。10.限制条件无限制条件。11.测试计划无。12.尚未解决的问题功能非常简单,无未解决
25、的问题。六、主控界面设计说明本界面集成了本系统的核心功能,系统的主要操作也集中在该界面。所以,设计过程中,对本系统的相关需求更是要有严格要求。1.模块描述本模块是本系统的核心部分,系统的主要功能也是设计在该模块中。主要有点歌功能,播放控制功能,更新数据库功能(系统管理员才具有的权限)。其中点歌功能需要添加另一个模块。播放控制功能则可以通过一些按钮实现,其中主要包括播放功能,暂停功能,停止功能,切歌功能,音量加功能,音量减功能,删除选择歌曲功能,优先选择歌曲功能。2.功能本界面主要功能如下:播放功能,暂停功能,停止功能,切歌功能,音量加功能,音量减功能,删除选择歌曲功能,优先选择歌曲功能。3.性
26、能系统的稳定与否主要体现在本模块,本模块必须具有较强的处理异常能力,否则会导致系统崩溃。4.输入项在本模块,用户无需输入任何数据,只需用鼠标进行操作即可5.输出项这是系统的最终模块,故无输出。6.设计方法(算法)本界面提供完整的用户操作,每项功能之间会有间接的联系,所以在设计的过程当中,应充分考虑功能间的联系。只有播放列表中有歌曲,播放的控制才有效。7.流程逻辑点 歌点 歌播放控制播放控制音量减音量加切歌停止暂停播放音量减音量加切歌停止暂停播放8.接口登录系统成功后,点击播放界面上的“进入”按钮即可进入本模块。通过本模块,可以进入点歌界面,如果是系统管理员登录的该系统,可以进入添加歌曲界面和删
27、除歌曲界面。9.存储分配本系统的主要数据存放在硬盘中,系统占用的存储空间仅10多兆存储容量。10.限制条件本系统的播放器是微软开发的一款多媒体插件Windows Media Player 11,故在很多实现手段上都受限于本插件。11.测试计划由于本播放器插件只能支持avi格式的MTV,故在测试的时候就得使用avi格式的MTV进行测试。首先在播放列表中有歌曲的情况下进行每个功能的测试,然后在没有歌曲的情况下进行测试,增强系统的处理用户异常操作能力。12.尚未解决的问题由于资源的限制,没有对曲库进行很好的分类,如“古典歌曲”,“流行歌曲”等等。七、点歌界面设计说明点歌界面提供了主控界面的输入,用户
28、需要进入该界面进行选歌操作,选择自己喜欢的歌曲,本模块提供了两种点歌方式,即歌手点歌和歌名点歌。1.模块描述用户通过该界面选择自己喜欢的歌曲,然后将其添加到播放列表当中。用户可以按照歌手名来选择歌曲,用户选择了这种方式,该界面会列出曲库中所有用户输入的歌手的歌;若用户按照歌名来点歌,则会列出所有同名的歌曲。用户找到自己喜欢的歌曲,单击该歌曲,然后单击“选定”按钮则可把相应的歌曲添加到播放列表当中。2.功能通过这个模块,根据用户的操作,提供相应的输入给主控界面。3.性能需要对用户输入的任何情况进行查询,也需要给出用户的错误输入进行相应的操作提示。4.输入项登录系统后,进入主界面,单击“点歌”按钮
29、即可进入该界面,用户需要选择选歌方式,选歌方式有“歌手点歌”和“歌名点歌”,然后输入歌手名或者歌曲名。进行选择。5.输出项从本界面添加的歌曲将作为主界面的输入。也就是本界面输出的是播放曲目。6.设计方法(算法)本界面需要访问数据库中的曲库表,需要对里面的歌曲进行查询操作,用户如果没有选择选歌类型则不能进行点歌,并且用户需要输入歌手名或者歌曲名才可以进行查询操作,每单击一下“选定”按钮,就向播放列表中添加一首歌曲。7.流程逻辑开 始开 始选择点歌方式选择点歌方式输入歌手名或者歌名输入歌手名或者歌名单击单击“确定”选中歌曲选中歌曲单击单击“选定”按钮返回主界面返回主界面8.接口点歌界面主界面点歌界
30、面主界面 单击“选歌”八、添加歌曲界面设计说明如果用户喜欢的歌曲曲库中找不到,那么可以选择导入歌曲,将喜爱的歌曲添加到曲库当中。1.模块描述本模块需要输入完整的歌曲信息,这一个模块只有系统管理员才具备操作的权限。2.功能添加歌曲到曲库当中。3.性能具备较强的检错能力,以防止管理员的错误的操作破坏数据库。4.输入项输入歌曲的完整信息。5.输出项将管理员输入的歌曲添加到曲库当中。九、删除歌曲界面设计说明如果管理员对曲库中的歌曲不喜欢,或者是出于其他的原因,需要删掉曲库中的垃圾歌曲,则需要进入该界面进行删除歌曲操作。1.模块描述本模块能够将管理员输入的歌曲信息从曲库中删除掉。2.功能删除曲库中的垃圾
31、信息。3.性能具备较强的检错能力,以防止管理员的错误的操作破坏数据库。4.输入项输入曲库中存在的歌曲信息。5.输出项删除管理员输入的歌曲。6.限制条件管理员只能输入曲库中存在的歌曲,如果曲库中不存在,那么会提示管理员曲库中不存在该歌曲。只有管理员才具备操作本模块的权限。7.测试计划首先对存在曲库中的歌曲进行删除操作,然后对其中没有的歌曲进行删除操作,并且还可以与添加歌曲模块相互配合进行测试。系统测试登录界面测试系统界面用户登录 用户密码错误 用户名不存在注册用户测试注册新用户界面注册已有的用户密码不一致注册成功 点歌测试点歌界面歌手点歌 歌名点歌主控界面测试主控界面播放歌曲 添加歌曲测试添加歌
32、曲界面添加已有歌曲 添加不存在的歌曲 删除歌曲测试删除歌曲界面删除不存在的歌曲 删除存在的歌曲附录资料:不需要的可以自行删除语言的常用库函数函数1。absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0 x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。参数:drive=0对应A盘,drive=1对应B盘。返回值:0:成功;-1:失败。头文件:dos.h函数2。abswrite()写磁
33、盘绝对扇区函数原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、nsects=要写的扇区数(最多64K个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址。功能:将指定内容写入(调用DOS中断0 x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。返回值:0:成功;-1:失败。头文件:dos.h函数3。atof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把s
34、所指向的字符串转换成double类型。s格式为:符号数字.数字E符号数字返回值:字符串的转换值。头文件:math.h、stdlib.h函数4。atoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把s所指向的字符串转换成int类型。s格式为:符号数字返回值:字符串的转换值。若出错则返回0。头文件:stdlib.h函数5。atol()将字符串转换成长整型数的函数原形:long atol(const char *s)功能:把s所指向的字符串转换成long int类型。s格式为:符号数字返回值:字符串的转换值。若出错则返回0。头文件:stdlib.h函数6。
35、bcd()把一个数转换成对应的BCD码的函数原形:bcd bcd(int x)bcd bcd(double x)bcd bcd(double x,int decimals)注意:BCD码的精度可达17位。参数decimals是可选的,用来指定转换后小数点后的位数。头文件:bcd.h函数7。bdos()原形int bdos(int fnum,unsigned dx,unsigned al)其中fnum是系统调用号;dx是传给寄存器DX的值;al是传给寄存器AL的值;功能DOS系统调用(INT21H)返回值AX中的值函数8。biosdisk()调用BIOS磁盘驱动程序函数原形:char biosd
36、isk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)功能:使用中断0 x13,直接调用BIOS进行磁盘操作参数:(1)cmd:2-数据以每扇区512字节的格式读入buffer,起始扇区由head、track和sector定,扇区数由nsects定。3-将buffer中的数据按每扇区512字节写入磁盘。4-对扇区进行数据校验。6-格式化一个磁盘并对化扇区设置化标志。8-返回当前驱动器参数在buffer的前4个字节中。10-长读,每扇区读入512字节加上额外的4个字节。11-长写,每扇区写入512字
37、节加上额外的4个字节。(2)drive:0-第一个软驱;1-第二个软驱;0 x80-第一个硬驱(3)head:磁头(4)track:磁道(5)sector:扇区(6)nsects:扇区数(7)buffer:数据缓冲区,定义为unsigned char buffer;返回值:0 x00-操作成功0 x01-错误命令0 x03-企图写具有写保护的磁盘0 x07-驱动器参数设置错误0 x10-磁盘读/CRC/ECC错误头文件:bios.h注:对于硬盘主引导记录扇区head=0,track=0,sector=1函数9。biosprint()调用BIOS打印机I/O接口的函数原形:int biospri
38、nt(int cmd,int abyte,int port)功能:通过BIOS中断0 x17在由参数port指定的打印机上完成各种打印机功能。port=0(LPT1)=1(LPT2);cmd=0(打印字符abyte)1(初始化打印机端口)2(读打印机状态);abyte=0-255;返回值:打印机状态位0(设备超时);位3(I/O出错);位4(打印机已选择);位5(没纸);位6(打印机确认);位7(不忙)头文件:bios.h函数10。calloc()分配内存函数原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一块内存,将该内存的内容全部清。返回
39、值:返回指向新分配内存的指针。空间不够则返回NULL。头文件:stdlib.h、calloc.h函数11。ceil()原形double ceil(double num)功能求不小于num的最小双精度整数头文件math.h函数12。cgets()读字符串函数原形:char *cgets(char *str)功能:从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中。注意:在调用cgets之前,必须将要读入的字符串最大长度存入str0中,返回时str1被设置为实际读入的字符数。实际字符串内容从str2开始,以空字符(0)结尾。返回值:指向str2的指针。头文件:conio
40、.h函数13。chdir()改变当前目录的函数原形:int chdir(const char *path)功能:把由path指定的目录改为当前目录。path参数中可以指定驱动器号,如a:ddd, 但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。返回值:0(成功);-1(失败)头文件:dir.h函数14。_chmod()改变文件存取权限的函数原形:int _chmod(const char *path,int func,int attrib)功能:读取(func=0时)或设置(func=1时)DOS文件属性。attrib=FA_RDONLY 只读attrib=FA_HIDDE
41、N 隐藏文件attrib=FA_SYSTEM 系统文件attrib=FA_LABLE 卷标attrib=FA_DIREC 目录attrib=FA_ARCH 档案 返回值:失败时返回-1。成功时返回文件的属性字节,如果 返回值&FA_RDONLY 不等于0,则文件是只读文件;头文件:io.h、dos.h函数15。chmod()改变文件存取权限的函数原形:int chmod(const char *path,int amode)功能:根据amode的值,设置由path所指文件的存取权限。amode的值存取权限S_IWRITE 允许写S_IREAD允许读(只读)S_IREAD|S_IWRITE 可读
42、可写 返回值:0(成功);-1(失败)头文件:io.h、sysstat.h函数16。clock()原形long clock(void)功能测得从程序开始到调用处处理机所用的时间头文件time.h函数17。close()关闭文件函数原形:int close(int handle)功能:关闭由文件句柄所指向的文件,句柄是调用_creat、creat、creatnew、creattemp、dup、dup2、_open或open时得到的。该函数并不在文件末尾写一个Ctrl-Z字符,如果想用该字符结束文件,必须显式地给出该字符。返回值:0(成功);-1(失败)头文件:io.h函数18。closegrap
43、h()关闭图形函数原形:void far closegraph(void)功能:释放图形系统分配的所有内存,将屏幕恢复到调用initgraph之前的模式。头文件:graphics.h函数19。cos()原形double cos(double arg)功能计算arg(弧度)的余弦值头文件math.h函数20。ctrlbrk()设置ctrl-break处理程序的函数原形:void ctrlbrk(int(*handle)(void)功能:修改中断向量0 x23,使用新的ctrl-break中断处理函数。用法:ctrlbrk(函数名);先定义函数:int 函数名(void).头文件:dos.h函数2
44、1。delay()暂停函数原形:void delay(unsigned milliseconds)功能:暂停当前所执行的程序milliseconds毫秒。头文件:dos.h函数22。disable()屏蔽中断的宏原形:void disble(void)功能:屏蔽中断,只允许从外部设备来的不可屏蔽中断(NMI)。头文件:dos.h函数23。enable()开硬件中断的宏原形:void enable(void)功能:开放中断,允许接受任何设备产生的中断。头文件:dos.h函数24。exec()加载并运行其它程序的函数族execl(),execle(),execlp(),execlpe(),exec
45、v(),execve(),execvp(),execvpe()原形 int execl(char *path,char *arg0,*arg1,.,*argn,NULL)int execle(char *path,char *arg0,*arg1,.,*argn,NULL,char *env)int execlp(char *path,char *arg0,*arg1,.,*argn,NULL)int execlpe(char *path,char *arg0,*arg1,.,*argn,NULL,char *env)int execv(char *path,char *argv)int ex
46、ecve(char *path,char *argv,char *env)int execvp(char *path,char *argv)int execvpe(char *path,char *argv,char *env)其中,path是调用的子程序的文件名,在exec后面的后缀具有某种功能:p表示函数能够在由DOS环境变量PATH的目录中搜索子进程文件,如果path中未指明文件所在目录,函数将首先在当前目录中找,然后在DOS环境变量指定的目录中找。l表示参数指针(arg0,.,argn)按单独参数传送。当预先知道要传送的参数个数时,通常用带后缀l的函数。v表示参数指针(arg0,.,a
47、rgn)按指针数组传送。当要传送的参数可变时,使用带后缀v的函数。e表示参数env可以传送到子进程,该函数可用来修改子进程的环境。若无e后缀,子进程将继承父进程的环境。注意:arg0+.+argn,或arg0+.+argn的总长度必需小于128字节。当调用exec函数时,原先已经打开的文件在子进程中仍然是打开的。功能:加载并运行其它程序,调用时必须有足够的内存空间用于加载和执行子程序,子程序将覆盖父程序。头文件:process.h 函数25。farcalloc()从远堆中分配内存的函数原形:void far *farcalloc(unsigned long nunits,unsigned lo
48、ng unitsz)功能:从远堆中为包含nunits个元素的数组分配内存,每一区unitsz字节长。用法:fptr=farcalloc(数目,sizeof(char);先定义:char far *fptr;注意:所有可用RAM能被分配;大于64的块能被分配;用远指针存取该块。微模式不能用。返回值:返回指向新分配块的指针,若内存不够,则返回NULL。头文件:alloc.h函数26。farfree()从远堆中释放一块已分配内存的函数原形:void farfree(void far *block)头文件:alloc.h函数27。farmalloc()从远堆中分配内存的函数原形:void far *f
49、armalloc(unsigned long nbytes)使用方式:fptr=farmalloc(字节数);先定义char far *fptr;功能:从远堆中分配长nbytes字节的内存。注意:所有可用RAM能被分配;大于64的块能被分配;用远指针存取该块。微模式不能用。返回值:返回指向新分配内存的指针,若内存不够,则返回NULL。头文件:alloc.h函数28。farrealloc()调整远堆中已分配块的函数原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)返回值:返回调整后的新内存地址。若不能重新分配,则返回N
50、ULL。头文件:alloc.h函数29。fclose()关闭一个流函数原形:int fclose(FILE *stream)使用方式:fclose(文件指针名);其中文件指针名=fopen();功能:关闭指定的流,关闭前清除所有与stream相联的缓冲区,释放系统分配的缓冲区,但由setbuf设置的缓冲区不能自动释放。返回值:0(成功);EOF(失败)头文件:stdio.h函数30。fcloseall()关闭打开的流的函数原形:int fcloseall(void)功能:关闭所有打开的流,由stdin、stdout、stdprn、stderr和stdaux设置的流除外。返回值:关闭流的总数。如
51、果发现错误则返回EOF。头文件:stdio.h 函数31。feof()检查文件是否结束的函数原形int feof(FILE *fp)返回值文件结束返回非0值,否则返回0。头文件stdio.h函数32。fgets()从流中读取一字符串的函数原形:char *fgets(char s,int n,FILE *stream)使用格式:fgets(字符串指针,字符个数,文件指针)功能:从输入流stream中读入字符存到s串中。当读了n-1个字符或遇到换行符时,函数停止读过程。fgets在s串尾保留换行字符。读入的最后一个字符后面加一个空字符。返回值:成功时返回字符串参数s,出错或遇到文件结束时,返回N
52、ULL。头文件:stdio.h函数33。findfirst()函数和findnext()函数调用方式:整形数=findfirst(文件名,&结构变量名,属性常数组合(如0 x26);其中定义struct ffblk 结构变量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer)char *path;/要检索的文件名struct ffblkchar ff_reserved21;char ff_attrib;/被检索的文件属性unsigned ff_ftime;/最后修改的时间/(0-4位:秒数/2;5-10位:分数;11-15位:小时数
53、)unsigned ff_fdate;/最后修改的日期/(0-4位:日;5-8位:月;9-15位:年减1980)long ff_fsize;/文件大小char ff_name13;/组名*buffer;int attr;/要检索的文件属性功能:检索由path和attr指定的文件,把结果返回到buffer。findfirst返回关于第一个指定文件的信息,findnext继续检索。返回值:0(检索成功),-1(没有找到指定的文件)属性常数:FA_NORMAL(0 x00)含意:Normal file, no attributes FA_RDONLY(0 x01)含意:只读FA_HIDDEN(0 x
54、02)含意:隐含文件FA_SYSTEM(0 x04)含意:系统文件FA_LABEL(0 x08) 含意:卷标FA_DIREC(0 x10) 含意:子目录FA_ARCH(0 x20)含意:修改的文件Archive头文件:dir.h(dos.h)函数34。floodfill()填充区域的函数原形:void far floodfill(int x,int y,int border)功能:在图形设备上用颜色border围起来的区域将用当前填充颜色填充。(x,y)是待填充区域的起点,若起点在封闭区域内,则区域内被填充;若起点在封闭区域外,则区域外被填充。头文件:graphics.h函数35。floor(
55、)原形double floor(double num)功能求不大于num的最大双精度整数头文件math.h函数36。fnmerge()建立文件路径函数原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)功能:合成drive:dirname.ext,放在path头文件:dir.h函数37。fnsplit()分解完整的路径名函数原形:int fnsplit(char *path,const char *drive,const char *dir,const ch
56、ar *name,const char *ext)功能:把文件名路径path分成4个部分存放。其中drive中有冒号;dir中有开始和结尾的反斜杠;ext包括开始圆点返回值:如果有扩展名,则返回值&EXTENSION!=0如果有文件名,则返回值&FILENAME!=0如果有目录名,则返回值&DIRECTORY!=0如果有驱动器号,则返回值&DIRVE!=0头文件:dir.h 函数38。fopen()打开一个流函数原形:FILE *fopen(const char *filename,const char *mode)功能:打开用filename指定的文件,并使其与一个流相联。使用方式:文件指针
57、名fopen(文件名,处理方式)处理方式取:rt打开一个文本文件,只能读。wt生成一个文本文件,只能写。若文件存在则被重写。at打开一个文本文件,只能在文件尾部添加。rb打开一个二进制文件,只能读。wb生成一个二进制文件,只能写。ab打开一个二进制文件,只能在文件尾部添加。rt+ 打开一个文本文件,可读可写。wt+ 生成一个文本文件,可读可写。at+ 打开一个文本文件,可读可添加。rb+ 打开一个二进制文件,可读可写。wb+ 生成一个二进制文件,可读可写。ab+ 打开一个二进制文件,可读可添加。返回值:指明流的指针(成功时)或NULL(失败时)注:需先定义 FILE *文件指针名;文件名若用
58、argv1代替,则可使用命令行形式指定文件名函数39。FP_OFF()获取远地址偏移量的宏原形:unsigned FP_OFF(void far *p)功能:取得和设置远指针*p的偏移量返回值:偏移量头文件:dos.h 函数40。fprintf()传送输出到一个流中的函数原形:int fprintf(FILE *stream,const char *format,argument,.)功能:向文件指针指向的文件输出ASC代码向显示器输出错误信息 使用形式:fprintf(文件指针,输出格式,输出项系列);fprintf(stderr,错误信息);使用实例:fprintf(stream,%d %
59、c %f,i,c,f);其中定义FILE *stream;int i;char c;float f;返回值:成功则返回输出的字节数,错误则返回EOF。头文件:stdio.h函数41。FP_SEG()获取远地址段值的宏原形:unsigned FP_SEG(void far *p)功能:取得和设置远指针*p段地址值返回值:段地址值头文件:dos.hfree()释放已分配内存的函数原形:void free(void *block)功能:释放由calloc、malloc、realloc函数调用所分配的内存。头文件:stdlib.h、alloc.h函数42。fscanf()格式化输入函数原形:int f
60、scanf(FILE *stream,const char *format,address,.)功能:从一个流中扫描输入字段,一次扫描一个字符,每个输入字段根据format所指格式指示符格式化后,把输入字段存在format后面由地址参数给出的位置上。使用格式:fscanf(文件指针,输入格式,输入项系列);使用实例:fscanf(fp,%d,&b);从fp指向的文件中读取十进制整数 (ASC形式)赋予变量b注:当文件指针是stdin时,与scanf功能完全相同头文件:stdio.h函数43。fseek()移动文件指针函数原形:int fseek(FILE *stream,long offset
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校餐饮系统课程设计
- 幼小衔接减法课程设计
- 无线激光通信课程设计
- 早教拉链钱包课程设计
- 房地产综合课程设计
- 幼儿园月底展示课程设计
- 《基于地面激光扫描技术的林区道桥安全监测研究》
- 《回添法全麦面包制作的研究》
- 便利店合作经营合同要点
- 农业产品委托采购合同范本
- 乡村少年宫英语组活动记录
- 关键工序验收一般要求详解
- GB 37489.3-2019 公共场所设计卫生规范 第3部分:人工游泳场所(高清版)
- 科学研究基金项目延期申请书
- 《故都的秋》(郁达夫)第一课时教学设计
- JGJ_T139-2020玻璃幕墙工程质量检验标准(高清-最新版)
- 2022高端新款个人简历模板(可编辑)2 (9)
- 运动特质自信量表
- 肺结核CT征象分析PPT课件
- (精选)无菌检查法
- (精选)工程项目成本责任制管理办法(试行)
评论
0/150
提交评论