版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[项目名称]可行性研究报告拟制人______________________审核人______________________批准人______________________
可行性研究报告的编写1.引言1.1编写目的[编写本可行性研究报告的目的,指出预期的读者。]1.2背景a.[所建议开发的软件系统的名称;]b.[本项目的任务提出者、开发者、用户及实现该软件的计算站或计算机网络;]c.[该软件系统同其他系统或其他机构的基本的相互来往关系。]1.3定义[列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料[列出用得着的参考资料。]2.可行性研究的前提[说明对所建议开发的软件的项目进行可行性研究的前提。]2.1要求[说明对所建议开发的软件的基本要求。]2.2目标[说明所建议系统的主要开发目标。]2.3条件、假定和限制[说明对这项开发中给出的条件、假定和所受到期的限制。]2.4进行可行性研究的方法[说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的,摘要说明所使用的基本方法和策略。]2.5评价尺度[说明对系统进行评价时所使用的主要尺度。]3.对现有系统的分析3.1现状介绍据调查,广东外语外贸大学教师主要使用如下三种方法辅助教学:情况一:在非信息学院,老师与学生的课外教学互动主要是通过公共邮箱,U盘来进行。如老师一般把教学资料上传到公共邮箱供学生下载,学生把电子版作业上交到公共邮箱。情况二:在信息学院,约有40%的老师自主创建了个人辅助教学网站,学生与老师通过个人辅助教学网站进行课外教学互动。情况三:信息学院院方提供了一个学院文件管理系统,辅助老师的教学活动。3.2信息学院文件管理系统分析3.21信息学院文件管理系统功能描述该系统主要用户分为三大类:教师,学生,管理员。教师功能模块=1\*GB3①主页:教师使用说明=2\*GB3②更改密码:教师通过此模块可以修改自己的密码。=3\*GB3③文件管理:管理教师上传的课件和学生提交的作业。=4\*GB3④文件共享共享信息选课班级及对应的共享文件夹信息,选课班级拥有的对共享文件夹操作的权限信息。班级管理利用班级管理教师可以选择其教授的班级和课程,如果在查找班级中没有其教授的班级,可以选择增加班级。在班级管理界面中单击班级名称,教师可以看到该班级中的学生信息,并可以从该班级中删除该学生。共享管理教师利用共享管理可以添加\删除不同班级可以共享的目录和权限。学生口令更改教师可以帮助忘记口令的学生重设口令。学生功能模块=1\*GB3①更改密码:学生通过此模块可更改自己的密码。=2\*GB3②文件下载:学生可下载教师的教学资料=3\*GB3③文件上传:学生通过次模块提交自己的作业。=4\*GB3④我的班级:学生在此模块进行班级注册。管理员功能模块:并未实现。3.22信息学院文件管理系统的系统流程图文档名称现有系统说明表代号F01编号01系统名称信息学院文件管理系统编制者陈燕娇,王惠平完成日期2010-10-05系统流程图:我的班级子系统文件上传子系统文件下载子系统更改密码子系统学生学校服务器文件管理子系统更改密码子系统文件共享子系统学生口令更改子系统教师我的班级子系统文件上传子系统文件下载子系统更改密码子系统学生学校服务器文件管理子系统更改密码子系统文件共享子系统学生口令更改子系统教师3.2人员配备及工作负荷文档名称现有系统说明表代号F01编号02系统名称信息学院文件管理系统编制者陈燕娇,王惠平完成日期2010-10-05人员配置:信息学院一名精通网站建设的老师。工作负荷:该系统由学院某个老师单独开发,维护的工作也由该老师负责,但由于该系统功能较为简单,维护工作量并不大,人员负荷较为轻松。3.6局限性针对非信息学院老师使用公共邮箱和U盘辅助教学活动的情况,其局限性分析如下:=1\*GB3①使用公共邮箱,老师只能发通知,上传教学资料,而且邮箱的容量有限,对于大容量邮件,服务器只保存有限的时间。=2\*GB3②使用U盘,学生带U盘到课时拷贝教学资料,U盘容易中病毒和容易丢失,且购买U盘需要一定的费用。针对信息学院部分老师创建个人教学辅助网站的情况,其局限性分析如下:=1\*GB3①网站开发需花费教师较多的时间和精力=2\*GB3②网站一旦开发完成,想对其功能模块和版式进行修改时须手动编辑源代码,非常麻烦。=3\*GB3③教师的个人教学辅助网站相对分散,其共享性不强,可管理性较差。文档名称现有系统说明表代号F01编号04系统名称信息学院文件管理系统编制者陈燕娇,王惠平完成日期2010-10-05局限性功能模块比较少,老师只能修改密码,上传文件,下载文件和设置文件共享。而学生只能提交作业,下载课件,注册班级和修改密码。管理员用户模块没有实现,缺乏对系统模块和教师信息的管理。该系统只在信息学院使用,共享性不高。界面不友善,布局不美观,过于空洞。4.所建议的系统4.1对所建议系统的说明文档名称候选系统说明表代号F02编号01系统名称教学辅助网生产系统编制者陈燕娇,王惠平完成日期2010-10-05系统描述:为方便教师与学生之间的教学互动,教学辅助网生产系统应运而生,该系统主要有两大类用户,一是管理员,二是教师。管理员注册登录后导向管理员个人空间,教师注册登录后导向教师个人空间。该系统管理员用户分为两级,一为校级管理员,二为院级管理员。校级管理员个人空间功能模块包括:我的主页=1\*GB3①个人信息:用户可对自己的个人基本信息进行增删查改。=2\*GB3②通知:校级管理员可面向院级管理员发通知。=3\*GB3③邮件功能:常规的收发邮件功能。=4\*GB3④联系方式:查看院级管理员和全体教师的联系方式。(2)院级管理员管理:对院级管理员信息进行增删查改操作。(3)站点管理:备份系统数据,启动或暂停访问全校教师个人教学辅助站点。院级管理员个人空间功能模块包括:(1)我的主页=1\*GB3①个人信息:用户可对自己的个人基本信息进行增删查改。=2\*GB3②通知:院级管理员可面向本院全体教师发通知,查看由校级管理员发来的通知。=3\*GB3③邮件功能:常规的收发邮件功能。=4\*GB3④联系方式:查看校级管理员和其他院级管理员的联系方式。(2)教师管理:对本院教师信息进行增删查改操作。(3)站点管理:分配与回收教师站点空间,启动与暂停访问本院全体教师个人教学辅助站点。教师个人空间功能模块包括:我的主页=1\*GB3①个人信息:教师可对自己的个人基本信息进行增删查改。=2\*GB3②通知:查看由院级管理员发来的通知。=3\*GB3③邮件功能:常规的收发邮件功能。=4\*GB3④联系方式:查看本院管理员和本院全体教师的联系方式。=5\*GB3⑤课程表:记录教师任课时间和地点。我的课程:已创建课程站点链接列表。站点生成=1\*GB3①模块选择:教师可自主选择其个人教学辅助网所需的功能模块,可供选择的功能模块有:课程资料管理,讨论区管理,学生信息管理,在线考试管理,作业管理,公告管理。=2\*GB3②皮肤选择:教师可根据个人爱好选择不同风格的皮肤。=3\*GB3③版式选择:教师可根据个人爱好选择不同版式。=4\*GB3④站点模版选择:教师通过选择已配置好的站点模版快速生成个人辅助教学网。修改站点:对已建站点进行功能模块的增删操作,皮肤修改和版式修改。帮助:指导教师如何使用该系统。4.2处理流程和数据流程。文档名称数据流图代号F03编号01系统名称教学辅助网生产系统编制者陈燕娇、王惠平完成日期2010-10-05图名:系统层数据流图父图名:教学辅助网生产系统管理员帐号信息教师帐号信息管理员教师SHAPE教学辅助网生产系统管理员帐号信息教师帐号信息管理员教师站点状态修改站点请求站点信息管理站点请求管理教师请求创建站点请求课程列表教师信息课程查询请求站点站点状态修改站点请求站点信息管理站点请求管理教师请求创建站点请求课程列表教师信息课程查询请求站点文档名称数据流图代号F03编号02系统名称教学辅助网生产系统编制者陈燕娇,王惠平完成日期2010-10-05图名:0层数据流图父图名:系统层数据流图教师ID登录教师主页生成站点教师帐号信息管理员文件课程列表教师ID课程查询创建站点请求查询课程站点管理员ID站点状态管理员帐号信息登录管理员主页管理站点请求管理站点教师ID登录教师主页生成站点教师帐号信息管理员文件课程列表教师ID课程查询创建站点请求查询课程站点管理员ID站点状态管理员帐号信息登录管理员主页管理站点请求管理站点管理教师请求管理教师站点信息文件模块信息文件教师文件教师ID站点信息修改站点请求修改站点教师信息管理员ID 管理教师请求管理教师站点信息文件模块信息文件教师文件教师ID站点信息修改站点请求修改站点教师信息管理员ID文档名称数据流图代号F03编号01系统名称教学辅助网生产系统编制者陈燕娇,王惠平完成日期2010-10-05图名:系统流程图管理员站点管理子系统教师管理子系统学校服务器修改站点子系统我的主页子系统教师我的课程子系统站点生成子系统帮助手册子系统SHAPE管理员站点管理子系统教师管理子系统学校服务器修改站点子系统我的主页子系统教师我的课程子系统站点生成子系统帮助手册子系统对建议系统的管理层次分析:文档名称现有系统说明表代号F01编号06系统名称教学辅助网生产系统编制者陈燕娇,王惠平完成日期2010-10-05所建议系统的管理层次分析:校级管理员所建议系统顶层管理者为校级管理员,校级管理员对院级管理员进行管理,院级管理员对教师进行管理,教师对学生进行管理。管理机构层次如下图所示:校级管理员…………院级管理员院级管理员…………院级管理员院级管理员…….……教师教师教师教师 …….……教师教师教师教师……学生学生……学生学生………………4.3改进之处[按2.2条中列出的目标,逐项说明所建议系统相对于现存系统具有的改进。]4.4影响[说明新提出的设备要求及对现存系统中尚可使用的设备须作出的修改。]文档名称候选系统说明表代号F06编号01系统名称教学辅助网生产系统编制者陈燕娇,王惠平完成日期2010-10-05候选系统预期将带来的影响:对设备的影响:本系统需要三台PC机(一台作为前台终端,一台作为服务器,一台作为异地备份机),服务器及备份机基本要求:内存为1GB以上,硬盘为160GB,CPU为IntelPentium4以上;前台终端基本要求:内存为256MB以上,硬盘为80GB,CPU为IntelPentium4以上。对用户单位机构的影响:须对学校教师和相应管理员进行本软件操作的培训,使其能熟练使用。方便教师快捷生成个人辅助教学网站,打打提高了教学的质量。方便校方对教师个人辅助教学网站的进行统一的管理。对系统运行过程的影响:用户的操作规程:用户都必须通过身份验证,验证成功后方可进行其他功能模块的操作,教师未创建站点之前修改站点模块为不可用。管理员不可删除投入使用中的教师个人站点,可以删除不再使用的教师个人站点。运行中心的操作规程:服务器的数据随着每一次操作而更新;每天在适当时候应由管理员进行数据备份。系统失效的后果及恢复的处理办法:=1\*GB3①当同时有太多教师访问该系统,造成系统崩溃,应立即重装服务器系统,从备份机上拷贝备份数据,导入数据库,恢复系统。=2\*GB3②使用一段时间后,当教师创建的站点过多,负荷过重,导致服务器运行速度缓慢,应增加服务器硬盘容量。对开发的影响:校方需向我方提供详细的教师\管理员信息记录项。4.5技术条件方面的可能性文档名称候选系统说明表代号F07编号01系统名称教学辅助网生产系统编制者陈燕娇,王惠平完成日期2010-10-05系统技术条件可行性分析技术与设备:=1\*GB3①操作系统选用WindowsXP中文版,原因如下:WindowsXP取代了被人称作“玩具操作系统”的软件——Windows9X,采用WindowsNT/2000的技术核心,运行非常可靠、非常稳定。将这样稳定而可靠技术运用到开发软件中,是让人放心的。WindowsXP操作系统采用完全图形化的用户界面,使用起来相当方便。WindowsXP兼容性好,对新技术、新产品的支持良好微软(Microsoft)WindowsXP运行速度快,,工作效率高。WindowsXP是目前主流的操作系统,容易使用。=2\*GB3②此系统采用VB.NET开发,使用SQLServer数据库。VB.NET(VisualBasic.NET)是基于微软公司推出的新一代编程语言;VB.NET是运行在.NET平台之上的面向对象的中间解释性语言,可以看作是(VB)VisualBasic在.NetFramework平台上的升级版本,增强了对面向对象的支持。它功能强大且易学易用,广泛应用于ASP.NET技术的Web开发和Win32桌面应用程序开发。SQLServer是Microsoft公司开发的大型关系数据库管理系统,具有强大的关系数据库创建、开发、设计和管理功能。=3\*GB3③硬件平台:本系统主要采用两台微型计算机(一台为服务器;另一台用于数据备份)进行操作,投入少,效率高,易于管理和维护,系统升级简单。服务器及备份机基本要求:内存为1GB以上,硬盘为160GB,CPU为IntelPentium4以上;(2)人员与期限:主要开发人员有五名,均熟悉VB.NET语言开发及SQLServer数据库建立,且有用VB.NET开发其他类似系统的经验,在规定期限内,本系统开发能完成。系统技术条件可行性分析小结:在以上限制条件下利用现有技术和人员,完全可以实现预期目标。开发人员应尽职尽责,尽量在规定期限内完成项目。6.投资及效益分析6.1支出[对于所选择的方案,说明所需的费用,如果已有一个现存系统,则包括该系统继续运行期间所需的费用。]6.1.1基本建设投资[包括采购、开发和安装所需的费用。]6.1.2其他一次性支出6.1.3非一次性支出[列出在该系统生命期内按月或按季或按年支出的用于运行和维护的费用。]6.2收益[对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面的改进等,包括:6.2.1一次性收益][说明能够用人民币数目表示的一次性收益,可按数据处理、用户、管理和支持等项分类叙述。]6.2.2非一次性收益[说明在整个系统生命期内由于运行所建议系统而导致的按月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。]6.2.3不可定量的收益[逐项列出无法直用人民币表示的收益。]6.3收益/投资比[求出整个系统生命期的收益/投资比值。]6.4投资回收周期[求出收益的累计数开始超过支出的累计数的时间。]6.5敏感性分析[是指一些关键性因素与这些不同类型之间的合理搭配、处理速度要求、设备和软件的配置等变化时,对开支和收益的影响最灵敏的范围的估计。]7.社会因素方面的可能性7.1.[法律方面的可行性]7.2.[使用方面的可行性]8.结论[在进行可行性研究报告的编制时,必须有一个研究的结论]
[项目名称]项目开发计划的编写[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
项目开发计划1.引言1.1编写目的[说明编写这份项目开发计划的目的,并指出预期的读者。]1.2背景待开发软件系统的名称;本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;该软件系统同其他系统或其他机构的基本的相互来往关系。1.3定义[列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料[列出用得着的参考资料。]2.项目概述2.1工作内容[简要地说明在本项目的开发中须进行的各项主要工作。]2.2主要参加人员[扼要地说明参加本项目开发工作的主要人员的情况,包括他们的技术水平。]2.3产品2.3.1程序[列出需移交给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件。逐项说明其功能和能力。]2.3.2.文件[列出需移交给用户的每种文件的名称及内容要点。]2.3.3.服务[列出需向用户提供的各项服务。]2.3.4.非移交的产品[说明开发集体应向本单位交出但不必向用户移交的产品。]2.4验收标准[对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。]2.5[完成项目的最迟期限]2.6[本计划的批准者和批准日期]3.实施计划3.1工作任务的分解与人员分工[对于项目开发中需完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。]3.2接口人员[说明负责接口工作的人员及他们的职责。]3.3进度[对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预定的开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件。]3.4预算[逐项列出本开发项目所需要的劳务以及经费的预算和来源。]3.5关键问题[逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。]4.支持条件[说明为支持本项目的开发所需要的各种条件和设施。]4.1计算机系统支持[逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。]4.2需由用户承担的工作[逐项列出需要用户承担的工作和完成期限,包括需由用户提供的条件及提供时间。]4.3需由外单位提供的条件[逐项列出需要外单位分合同承包者承担的工作和完成的时间。]5.专题计划要点[说明本项目开发中需制订的各个专题计划的要点。]
[项目名称]数据要求说明书[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
数据要求说明书1.引言1.1编写目的说明编写这份数据要求说明书的目的,指出预期的读者。1.2背景a.待开发软件系统的名称;b.列出本项目的任务提出者、开发者、用户以及将运行该项软件的计算站或计算机网络系统。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料列出有关的参考资料。2.数据的逻辑描述对数据进行逻辑描述时可把数据分为动态数据和静态数据。2.1静态数据列出所有作为控制或参考用的静态数据元素。2.2动态输入数据列出动态输入数据元素。2.3动态输出数据列出动态输出数据元素。2.4内部生成数据列出向用户或开发单位中的维护调试人员提供的内部生成数据。2.5数据约定说明对数据要求的制约。逐条列出对进一步扩充或使用方面的考虑而提出的对数据要求的限制。对于在设计和开发中确定是临界性的限制更要明确指出。3.数据的采集3.1要求和范围按数据元的逻辑分组来说明数据采集的要求和范围,指明数据的采集方法,说明数据采集工作的承担者是用户还是开发者。3.2输入的承担者说明预定的对数据输入工作的承担者。如果输入数据同某一接口软件有关,还应说明该接口软件的来源。3.3预期处理对数据的采集和预处理过程提出专门的规定,包括适合应用的数据格式、预定的数据通信媒体和对输入的时间要求等。对于需经模拟转换或数字转换处理的数据量,要给出转换方法和转换因子等有关信息,以便软件系统使用这些数据。3.4影响说明这些数据要求对于设备、软件、用户、开发单位所可能产生的影响。
[项目名称]需求说明书[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
需求说明书1.引言1.1编写的目的说明编写这份需求说明书的目的,指出预期的读者.1.2背景待开发的系统的名称;本项目的任务提出者、开发者、用户;该系统同其他系统或其他机构的基本的相互来往关系。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料列出用得着的参考资料。2.任务概述2.1目标叙述该系统开发的意图、应用目标、作用范围以及其他应向读者说明的有关该系统开发的背景材料。解释被开发系统与其他有关系统之间的关系。2.2用户的特点列出本系统的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本系统的预期使用频度。2.3假定和约束列出进行本系统开发工作的假定和约束。3.需求规定3.1对功能的规定用列表的方式,逐项定量和定性地叙述对系统所提出的功能要求,说明输入什么量、经怎么样的处理、得到什么输出,说明系统的容量,包括系统应支持的终端数和应支持的并行操作的用户数等指标。3.2对性能的规定3.2.1精度说明对该系统的输入、输出数据精度的要求,可能包括传输过程中的精度。3.2.2时间特性要求说明对于该系统的时间特性要求。3.2.3灵活性说明对该系统的灵活性的要求,即当需求发生某些变化时,该系统对这些变化的适应能力。3.3输入输出要求解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对系统的数据输出及必须标明的控制输出量进行解释并举例。3.4数据管理能力要求(针对软件系统)说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。3.5故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。3.6其他专门要求如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。4.运行环境规定4.1设备列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:处理器型号及内存容量外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量输入及输出设备的型号和数量,联机或脱机;数据通信设备的型号和数量功能键及其他专用硬件4.2支持软件列出支持软件,包括要用到的操作系统、编译程序、测试支持软件等。4.3接口说明该系统同其他系统之间的接口、数据通信协议等。4.4控制说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。
[项目名称]用户手册概要[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
用户手册概要1.引言1.1编写目的[……]1.2背景[……]1.3定义[……]1.4参考资料[……]2.用途2.1功能[……]2.2性能2.2.1精度[……]2.2.2时间特性[……]2.2.3灵活性[……]2.3安全保密[……]3.运行环境3.1硬设备[……]3.2支持软件[……]3.3数据结构[……]4.使用过程4.1安装与初始化[……]4.2输入4.2.1输入数据的现实背景[……]4.2.2输入格式[……]4.2.3输入举例[……]4.3输出4.3.1输出数据的现实背景[……]4.3.2输出格式[……]4.3.3输出举例[……]4.4文卷查询[……]4.5出错处理与恢复[……]4.6终端操作[……]
[项目名称]概要设计说明书[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
概要设计说明书1.引言1.1编写目的[说明编写这份概要设计说明书的目的,指出预期的读者。]1.2背景a.[待开发软件系统的名称;]b.[列出本项目的任务提出者、开发者、用户。]1.3定义[列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料[列出有关的参考资料。]2.总体设计2.1需求规定[说明对本系统的主要的输入输出项目、处理的功能性能要求。包括]2.1.1系统功能2.1.2系统性能精度时间特性要求可靠性灵活性2.1.3输入输出要求2.1.4数据管理能力要求2.1.5故障处理要求2.1.6其他专门要求2.2运行环境[简要地说明对本系统的运行环境的规定。]2.2.1设备[列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能。]2.2.2支持软件[列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。]2.2.3接口[说明该系统同其他系统之间的接口、数据通信协议等]2.2.4控制[说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。]2.3基本设计概念和处理流程[说明本系统的基本设计概念和处理流程,尽量使用图表的形式。]2.4结构[给出系统结构总体框图(包括软件、硬件结构框图),说明本系统的各模块的划分,扼要说明每个系统模块的标识符和功能,分层次地给出各模块之间的控制与被控制关系。]2.5功能需求与系统模块的关系[本条用一张矩阵图说明各项功能需求的实现同各模块的分配关系。][系统模块1][系统模块2][……][系统模块m][功能需求1]√[功能需求2]√[┇][功能需求n]√√2.6人工处理过程[说明在本系统的工作过程中不得不包含的人工处理过程。]2.7尚未解决的问题[说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。]3.接口设计3.1用户接口[说明将向用户提供的命令和它们的语法结构,以及相应的回答信息。][说明提供给用户操作的硬件控制面板的定义。]3.2外部接口[说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持系统之间的接口关系。]3.3内部接口[说明本系统之内的各个系统元素之间的接口的安排。]4.运行设计4.1运行模块组合[说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块的支持软件。]4.2运行控制[说明每一种外界的运行控制的方式方法和操作步骤。]4.3运行时间[说明每种运行模块组合将占用各种资源的时间。]5.系统数据结构设计[不涉及软件设计可不包含]5.1逻辑结构设计要点[给出本系统内软件所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。]5.2物理结构设计要点[给出本系统内软件所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系、设计考虑和保密条件。]5.3数据结构与程序的关系[说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。][程序1][程序2][……][程序m][数据结构1]√[数据结构2]√√┇[数据结构n]√√6.系统出错处理设计6.1出错信息[用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。]6.2补救措施[说明故障出现后可能采取的变通措施。包括:]后备技术[说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术。]降效技术[说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录。]恢复及再启动技术[说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。]6.3系统维护设计[说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。]
[项目名称]数据库设计说明书[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
数据库设计说明书1.引言1.1编写目的[说明编写这份数据设计说明书的目的,指出预期的读者。]1.2背景a.[待开发数据库的名称和使用此数据库的软件系统的名称;]b.[列出本项目的任务提出者、开发者、用户。]1.3定义[列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料[列出有关的参考资料。]2.外部设计1.1标识符的状态[联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。]2.2使用它的程序[列出将要使用或访问此数据库的所有应用程序,对于这些应用程序的每一个,给出它的名称和版本号。]2.3约定[陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定。]2.4专门指导[向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导。]2.5支持软件[简单介绍同此数据库直接有关的支持软件。说明这些软件的名称、版本号的主要功能特性。列出这些支持软件的技术文件的标题、编号及来源]3.结构设计3.1概念结构设计[说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。]3.2逻辑结构设计[说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构。]3.3物理结构设计[建立系统程序员视图。]4.运用设计4.1数据字典设计[对数据库设计中涉及到的各种项目一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。]4.2安全保密设计[说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。]
[项目名称]组装测试计划[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
组装测试计划1.引言1.1编写目的说明编写这份测试计划目的,指出预期的读者。1.2背景待开发系统的名称;列出本项目的任务提出者、开发者、用户。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料列出有关的参考资料。2.计划2.1系统说明[提供一份图表,并逐项说明被测系统的功能、输入、输出等质量指标,作为叙述测试计划的提纲。]2.2测试内容[列出组装测试和确认测试中的每一项测试内容的名称标识符、这些测试的进度安排以及这些测试的内容和目的。]2.3测试1(标识符)[给出这项测试内容的参与单位及被测试的部位。]2.3.1进度安排[给出对这项测试的进度安排,包括进行测试的日期和工作内容。]2.3.2条件[陈述本项测试工作对资源的要求。包括:]硬件软件人员2.3.3测试资料列出本项测试所需的资料。2.3.4测试培训说明或引用资料说明为被测系统的使用提供培训的计划。规定培训的内容、受训的人员及从事培训的工作人员。2.4测试2(标识符)用与本测试计划2。3条相类似的方式说明用于另一项及其后各项测试内容的测试工作计划。。。。。。。3.测试设计说明3.1测试1(标识符)[说明对第一项测试内容的测试设计考虑。]3.1.1控制[说明本测试的控制方式。]3.1.2输入[说明本项测试中所使用的输入数据及选择这些输入数据的策略。]3.1.3输出[说明预期的输出数据。]3.1.4过程[说明完成此项测试的一个个步骤和控制命令。]3.2测试2(标识符)[用与本测试计划3。1条相类似的方式说明第2项及其后各项测试工作的设计考虑。][。。。。。。]4.评价准则4.1范围[说明所选择的测试用例能够检查的范围及其局限性。]4.2数据整理[陈述为了把测试数据加工成便于评价的适当形式,使得测试结果可以同已知结果进行比较而要用到的转换处理技术;如果是用自动方式整理数据,还要说明为进行处理而要用到的硬件、软件资源。]4.3尺度[说明用来判断测试工作是否能通过的评价尺度,如合理和输出结果的类型、测试输出结果与预期输出之间的容许偏离范围、允许中断或停机的最大数。]
[项目名称]详细设计说明书[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
详细设计说明书1.引言1.1编写目的[说明编写这份详细设计说明书的目的,指出预期的读者。]1.2背景[待开发系统的名称;][列出本项目的任务提出者、开发者、用户。]1.3定义[列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料[列出有关的参考资料。]2.系统的结构[给出系统的结构框图,包括软件结构、硬件结构框图。用一系列图表列出系统内的每个模块的名称、标识符和它们之间的层次结构关系。]3.模块1(标识符)设计说明[从本章开始,逐个地给出各个层次中的每个模块的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。]3.1模块描述[给出对该基本模块的简要描述,主要说明安排设计本模块的目的意义,并且,还要说明本模块的特点。]3.2功能[说明该基本模块应具有的功能。]3.3性能[说明对该模块的全部性能要求。]3.4输入项[给出对每一个输入项的特性。]3.5输出项[给出对每一个输出项的特性。]3.6设计方法(算法)[对于软件设计,应详细说明本程序所选取用的算法,具体的计算公式及计算步骤。][对于硬件设计,应详细说明本模块的设计原理、元器件的选取、各元器件的逻辑关系,所需要的各种协议等。]3.7流程逻辑[用图表辅以必要的说明来表示本模块的逻辑流程。]3.8接口[说明本模块与其它相关模块间的逻辑连接方式,说明涉及到的参数传递方式。]3.9存储分配[根据需要,说明本模块的存储分配。]3.10注释设计[说明安排的程序注释。]3.11限制条件[说明本模块在运行使用中所受到的限制条件。]3.12测试计划[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。]3.13尚未解决的问题[说明在本模块的设计中尚未解决而设计者认为在系统完成之前应解决的问题。]4.模块2(标识符)设计说明[用类似第3条的方式,说明第2个模块乃至第N个模块的设计考虑。]
[项目名称]模块开发说明[V1.0(版本号)]拟制人______________________审核人______________________批准人______________________[一九九九年八月二十日]
模块开发说明1.标题[系统名称和标识符][模块名称和标识符][程序编制员签名][卷宗的修改文本序号][修改完成日期][卷宗序号][编排日期]2.模块开发情况表[……]3.功能说明[扼要说明本模块的功能,主要是输入、要求的处理、输出。可以从系统设计说明书中摘录。同时列出在需求说明书中对这些功能的说明的章、条、款。]4.设计说明[说明本模块的设计考虑]5.硬件部分的设计结果经项目组调试通过的硬件成品1件2)设计文件:《原理图》《PCB图》《BOM清单》《可编程器件及烧录进制文件》《必要测试点波形图或硬件指标评细说明》《原理详细说明》《与系统内其他部分接口软硬件详细说明》这些文件可以附件的形式列后。6.软件的设计结果要给出所产生的本模块的第一份无语法错的源代码清单以及已通过全部测试的当前有效的源程序代码。7.测试说明说明直接要经过本模块的每一项测试,包括这些测试各自的标识符和编号、进行这些测试的目的、所用的配置和输入、预期的输出及实际的输出。8.复审的结论把实际测试的结果,同需求说明书、系统设计说明书中规定的要求进行比较和给出结论。
单元测试报告填表日期:编号:开发项目名称开发项目编号第一责任人单元名称责任人单元所属子系统开发周期代码测试检查:代码测试内容测试人员测试结果备注路径测试声明测试循环测试边界测试接口测试界面测试数据确认测试代码走查功能测试:序号功能名称操作方法结果建议测试人员备注测试结论责任人项目第一责任人审核项目组测试组总工办总工程师《软件课程设计》报告班级:信息安全姓名:学号:指导老师:中国矿业大学计算机科学与技术学院
软件课程设计任务书专业年级:信息安全学生姓名:任务下达日期:课程设计日期:课程设计题目:软件课程设计类别题目序号成绩面向过程用迭代法求a的立方根4.输入一个人民币钱数,使用最少张数的人民币纸币,凑成上述的钱数,并输出求取结果面向对象1.复数的加法以及对复数的输出以及在类中添加对复数进行其他基本运算5.自定义CStudent类的对象数据进行存储与读写处理图形界面1.通过MFCAPPWIZARD创建一个计算器数据结构1.用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判空、查找等操作;3
.编程序,按如下方法求A矩阵的转置矩阵B:输入两个正整数m和n,而后通过使用指针配合new运算符生成一个m行n列的二维动态数组A以及另一个n行m列的二维动态数组B,之后为A输入数据(A矩阵数据),进而求出其转置矩阵B(数据放动态数组B中)并输出结果。.软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月日目录一、面向过程设计题1--------用迭代法求a的立方根1.1需求分析……………………….…41.2概要设计……………………..…...41.3详细设计与编码………………...51.4调试分析……………………..…...61.5用户使用说明………….……….71.6设计心得…………………..……...7二、面向过程设计题4-------用最少张数的人民币纸币,凑成输入的钱数2.1需求分析…………72.2概要设计………………….……...72.3详细设计与编码………...……...72.4调试分析………………………...102.5用户使用说明………...……….102.6设计心得………………………...10三、面向对象设计题1-----对复数的基本运算3.1需求分析…………83.2概要设计…………….…………...93.3详细设计与编码……….……….93.4调试分析……………….………...9用户使用说明……………………..…………103.6设计心得……………...………...10四、面向对象设计题5----设计类CStudent并对文件输入和检索学生信息4.1需求分析………………….……..104.2概要设计…………………….…..114.3详细设计与编码……………………...….…….114.4调试分析…………………....…...114.5用户使用说明…………...…….124.6设计心得………………………...12五、图形界面1---------计算器(计算器.rar)5.1需求分析……………………….265.2概要设计………………………..265.3详细设计与编码………..……..285.4调试分析………………………...285.5用户使用说明………………….295.6设计心得………………………...29六、数据结构1------用链表和数组两种方式分别实现栈的基本操作6.1需求分析…………306.2概要设计…………….…………...306.3详细设计与编码…………………...…………...346.4调试分析………………….……...356.5用户使用说明………………….356.6设计心得……….………………...35七、数据结构3--------求A矩阵的转置矩阵B7.1需求分析……………………..…….……367.2概要设计………………...377.3详细设计与编码………...397.4调试分析………………...417.5用户使用说明………….417.6设计心得………………...41八、课程设计总结……………………42面向过程程序设计11.1需求分析:编程序用迭代法求a的立方根,求立方根的迭代公式为::Xi+1=(2*Xi)/3+a/(3*Xi*Xi)假定X的初值为a,迭代到|Xi+1-Xi|<10的-5次方为止.显示a=3,27的值,并通过调用pow(a,1.0/3)函数加以验证.。【输入数据】:3【输出数据】:1.44225【输入数据】:27【输入数据】:31.2概要设计:(1)声明程序要调用系统pow函数;(2)定义5个double型的变量;(3)用户输入一个正整数;(4)判断当输入为负数或0时,输出出错提示;(5)利用迭代法求a的立方根;(6)调用pow函数来求a的立方;(7)输出用迭代法和pow函数求得的a的立方根。1.3详细设计与编码:判断a是否为正整数用户输入整数a(1判断a是否为正整数用户输入整数a是。利用迭代法求a的立方根否提示出是。利用迭代法求a的立方根否提示出错信息调用pow函数来求a调用pow函数来求a的立方输出用迭代法和输出用迭代法和pow函数求得的a的立方根完成一次操作完成一次操作继续重复上面操作继续重复上面操作源程序#include<iostream>usingnamespacestd;#include<cmath> //先声明程序要调用pow函数。intmain(){doublea,b,X,Y,z; //定义5个double型的变量while(1){cout<<"请输入一个数:"<<endl;cin>>a;if(a<=0){cout<<"错误!"<<endl;break;} //如果输入的a的值为非正数,则终止循环,并输入出错提示。X=a;do{b=X*2/3+a/(3*X*X); //利用迭代法求a的立方根。z=b-X;X=b;}while((z<=-0.00001)||(z>=0.00001)); //利用循环使a的立方根精确到小数点后五位。Y=pow(a,1.0/3); //调用pow函数来求a的立方根。cout<<"要开立方根的数是:"<<a<<"\n"; //输出a的初始值。cout<<"用迭代法求得的结果为:"<<X<<endl <<"用系统计算机求得的结果为:"<<Y<<"\n";//输出用迭代法和pow函数求得的a的立方根}return0;}1.4调试分析:分析:经过输入各类数值后,都取得了预期值,这说明了程序的正确性。对于用户可能输入的各类数据都有相应的结果或是报错,体现了程序的健壮性。1.5用户使用说明:按提示操作。1.6设计心得:经过此次实验,首先熟悉了主函数对函数的调用。而且进一步加深了对do-while循环的使用,之前无法将调试框保留,致使每次只能输入一次数据的问题被解决了。二、面向过程设计题42.1需求分析:编程序,输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。测试数据:【输入数据】760和50【输出数据】见调试分析2.2概要设计:(1)定义整形变量a为用户输入值(金额数);(2)判断当a为负数或0时,输出出错提示;(3)在a为正整数时,通过if语句分别计算出100、50、20、10、5、2、1元面额的钱的张数;(4)输出各面值钱币共多少张;(5)让用户选择是否继续输入金额数,重复程序。2.3详细设计与编码:流程图:用户输入a(金额数)判断a是否为正整数用户输入a(金额数)判断a是否为正整数否提示出错信息是是是是是。通过if语句分别计算并输出各面值钱的张数选择是否继是。通过if语句分别计算并输出各面值钱的张数选择是否继续(继续输入1,终止0)否。终止程序是。继续输入a(金额数)完成一次操作完成一次操作(2)源程序#include<iostream>usingnamespacestd;intmain(){inta,k1,k2,k3,k4,k5,k6,k7,n;//定义8个整型变量do{//加入do-while循环,保证数据多次运算cout<<"请输入金额数:"<<endl; cin>>a;//输入总金额数 if(a<=0){cout<<"出错了!!!"<<endl;}//排除a为非正数的情况 else { k1=a/100;//通过if语句计算出100元面额的钱的张数 a=a-k1*100; if(a>=50)k2=a/50;else k2=0;//通过if语句计算出50元面额的钱的张数 a=a-k2*50;if(a>=20)k3=a/20;elsek3=0;//通过if语句计算出20元面额的钱的张数 a=a-k3*20;if(a>=10)k4=a/10; elsek4=0;//通过if语句计算出10元面额的钱的张数 a=a-k4*10; if(a>=5)k5=a/5; elsek5=0;//通过if语句计算出5元面额的钱的张数 a=a-k5*5; if(a>=2)k6=a/2; elsek6=0;//通过if语句计算出2元面额的钱的张数 a=a-k6*2; k7=a;//通过if语句计算出1元面额的钱的张数cout<<"a元相当于"<<k1<<"张100元"<<endl; cout<<k2<<"张50元"<<endl;cout<<k3<<"张20元"<<endl; cout<<k4<<"张10元"<<endl; cout<<k5<<"张5元"<<endl; cout<<k6<<"张2元"<<endl; cout<<k7<<"张1元"<<endl;//输出最后结果 }cout<<"如要继续请输入1,退出请输入0"<<endl;//让用户选择是否继续 cin>>n; }while(n==1);return0;}2.4调试分析:分析:经过输入各类预期数值后,都取得了预期值,这说明了程序的正确性。但对于用户可能输入的各类数据还没有充分的考虑到,例如但用户输入的是一个字母时程序就会崩溃。2.5用户使用说明:按提示操作,输入金额数,如果输入的不是正整数,会有错误提示。若输入正确,会得出各面值的张数。然后选择是否继续,输入1或0,继续或终止程序。2.6设计心得:这次编程要比之前的更熟练一点,但还有很多地方需要继续学习,比如程序的健壮性,对用户可能的输入结果进行分析的能力都要加强培养,希望随着课程的开展,能够对以前的知识更加熟练、巩固,并提高自己的很多不足。三、面向对象设计题13.1需求分析:自定义一个示意性的复数类型complex,其中含有若干个成员函数,使用该类可以完成复数的加法以及对复数的输出。请完成类定义,并编制主函数,说明complex类对象,对定义的各成员函数进行调用。classcomplex{ doublereal; //复数实部 doubleimag; //复数虚部public: complex(); //无参构造函数 complex(doubler,doublei); //2参构造函数 complexaddCom(complexc2); //调用者对象与对象c2相加,返回complex类对象 voidoutCom(); //输出调用者对象的有关数据(各分量)};进一步,在类中添加对复数进行其他基本运算(如,复数减、乘、除、取模等)的相应成员函数,并通过主函数处的调用来验证各函数的使用正确性。测试数据:【输入数据】12+3i和3+0i【输出数据】见调试分析3.2概要设计:定义一个complex类存放数据成员和成员函数;构造函数的初始化;对各种运算符进行重载;提示用户输入要计算的数;调用函数完成运算;输出运算结果;3.3详细设计与编码:主函数主函数定义类对象提示用户从键盘输出两个复数定义类对象提示用户从键盘输出两个复数程序一次运行结束程序一次运行结束输出两个复数的各种运算结果输出两个复数的各种运算结果源程序:#include<iostream>#include<cmath>usingnamespacestd;classcomplex/*complex类的定义*/{private:/*私有数据成员*/ doublereal; doubleimag;public: complex(){real=0;imag=0.0;}/*构造函数的初始化*/ ~complex(){}; complex(doubler,doublei) { real=r; imag=i; } complexoperator+(complex&c2);/*重载运算符+,下面的同理*/ complexoperator-(complex&c2); complexoperator*(complex&c2); complexoperator/(complex&c2); doublex(complex&c); voiddisplay();/*输出函数*/ voidset();};doublecomplex::x(complex&c){ returnsqrt(c.real*c.real+c.imag*c.imag);}inti;voidcomplex::set(){ cout<<"请输入第"<<i<<"个数的实部和虚部:"<<endl; cin>>real>>imag;}voidcomplex::display()/*下面各类运算函数*/{ cout<<"("<<real<<","<<imag<<"i"<<")"<<endl;}complexcomplex::operator+(complex&c2){ returncomplex(real+c2.real,imag+c2.imag);}complexcomplex::operator-(complex&c2){ returncomplex(real-c2.real,imag-c2.imag);}complexcomplex::operator*(complex&c2){ returncomplex((real*c2.real-imag*c2.imag),(real*c2.imag+imag*c2.real));}complexcomplex::operator/(complex&c2){ returncomplex((real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag),(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag));}intmain(){ complexc1,c2,c7(0,0); doublex1,x2; i=1; cout<<"";c1.set(); i=2; cout<<"";c2.set(); complexc3,c4,c5,c6; c3=c1+c2;c4=c1-c2;c5=c1*c2;c6=c1/c2; x1=c1.x(c1); x2=c1.x(c2); cout<<"相加得"<<endl;c3.display();/*调用函数*/ cout<<"相减得"<<endl;c4.display(); cout<<"相乘得"<<endl;c5.display(); cout<<"相除得"<<endl;c6.display(); cout<<"第一个数的模"<<x1<<endl; cout<<"第二个数的模"<<x2<<endl; return0;}3.4调试分析:分析:输出结果与预设值完全一致,证实了程序的正确性。3.5用户使用说明:按提示操作,输入两个要计算的复数即可完成程序的运行。3.6设计心得:通过这次试验加深了对类的认识,包括类的定义,构造函数,虚构函数和类对象的定义,除此之外还复习了私有成员和公有成员的其别以及函数运算符的重载,总之收获挺大。面向对象设计题54.1需求分析:设计一个类CStudent,类中包含一个学生的基本数据如下:编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。如:1LiPingm18899894请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存储与读写处理(即是说,总按具有连续编码的编号num为“序”来对文件中的各对象数据进行随机读写处理)。并设计该类的成员函数,而且对输出运算符“<<”进行重载,使该运算符能够完成将一个学生的信息输出到屏幕上。要求成员函数完成以下功能:(1)从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。(2)按编号对学生信息进行检索并将检索结果显示在屏幕上。(3)按姓名对学生信息进行检索并将检索结果显示在屏幕上。(4)计算某编号学生的总成绩与平均成绩。(5)列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)【输入数据】1LiPingm18899894【输出数据】编号姓名性别年龄数学成绩计算机成绩外语成绩总分平均成绩1Lipingm18899894281934.2概要设计:建一个Cstudent类,定义类中的数据元素name[10]、sex[10]、age、math、com、eng、total、aver;定义类的成员函数:输入函数set()、输出函数out();编写主函数,并打开磁盘,调用set()函数录入信息并存入文件;输入学生编号检索信息,从文件输入对应学生信息,并调用put()函数输出信息;4.3详细设计与编码:(1)流程图主函数用户选择要录入信息还是显示信息显示从文件输入对应学生信息,并调用put()主函数用户选择要录入信息还是显示信息显示从文件输入对应学生信息,并调用put()函数输出信息录入录入输入要录入学生的人数输入要录入学生的人数打开磁盘,调用打开磁盘,调用set()函数录入信息并存入文件从文件输入对应学生信息,并调用put()从文件输入对应学生信息,并调用put()函数输出信息用户选择要录入信息还是显示信息显示显示录入录入不断重复上述操作不断重复上述操作(2)源程序#include<fstream>#include<iostream>#include<iomanip>usingnamespacestd;classCStudent/*学生类的定义*/{private: charnum[10]; charname[10]; charsex[10];/*上面均于数组的形式存储*/ intage,math,com,eng,total; doubleave;public: voidgetdata(); voidoutdate();};voidCStudent::getdata()/*输入函数*/ { cout<<"编号:"; cin>>num; cout<<endl<<"姓名:"; cin>>name; cout<<endl<<"性别:"; cin>>sex; cout<<endl<<"年龄:"; cin>>age; cout<<endl<<"数学成绩:"; cin>>math; cout<<endl<<"计算机成绩:"; cin>>com; cout<<endl<<"外语成绩:"; cin>>eng; cout<<endl; }voidCStudent::outdate()/*输出函数*/ { total=math+com+eng;/*计算学生总分*/ ave=total/3;/*计算学生平均分*/ cout<<""<<num<<""<<name<<""<<sex<<""<<age<<"" <<math<<""<<com<<""<<eng<<""<<total<<""<<ave<<endl; }voidget(){ ofstreamoutfile("stud.dat");/*打开文件并输入文件*/ CStudents; intn; cout<<"输入数据:"<<endl; cout<<"学生人数:"; cin>>n; for(inti=0;i<n;i++) { cout<<"第"<<i+1<<"个学生:"<<endl; s.getdata(); outfile.write((char*)&s,sizeof(s)); }; outfile.close();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论