软件工程课程设计报告 之 详细设计报告
软件工程详细设计报告
学生信息管理系统详细设计报告题目专业: 班级:小组成员:指导教师: 职称:2010年12 月徐州题目详细设计说明书作者:日期:目录1.算法描述 (4)1.1 请假 (4)1.1.1 程序流程图 (4)1.1.2 函数说明 (4)1.2 查询 (6)1.2.1 程序流程图 (6)1.2.2 函数说明 (6)1.3 找老乡 (8)1.3.1 程序流程图 (8)1.3.2 函数说明 (8)1.4登录 (10)1.4.1程序流程图 (10)1.4.2函数说明 (10)1.5注册 (11)1.5.1程序流程图 (11)1.5.2函数说明 (11)2.数据组织 (12)3.界面设计 (12)3.1设计分析 (12)3.2正常状态 (12)3.3异常状态 (13)1.算法描述1.1 请假1.1.1 程序流程图1.1.2 函数说明hM_input()功能包含:首先创建一个请假信息数据结构hMassage1再提示输入请假信息: 输入结构为请假信息数据结构hMassage ExitMg1()功能包含:输出:假期开始日期填写格式有误, 请重新再来一次ExitMg2()功能说明:输出:假期终止日期填写格式有误, 请重新再来一次ExitMg3()功能说明:输出:请假理由填写格式有误, 请重新再来一次Hm_secess()功能说明:输出: 请假条填写成功按任意键继续Fix_hMassage(hMassage)功能说明:审查请假起始日期与请假终止日期是否在法定假日内Change_hM()功能说明:修改hMassage中的QJJG为1, 即允许请假, 并输出:请假成功Teacher_set_hM()功能说明:由辅导员设置QJJG的值相应输出请假结果1.2 查询1.2.1 程序流程图1.2.2 函数说明makeChoise()是用户按输出提示选择功能编号: 1.学号方式查询2.姓名方式查询….input_Massage()接受用户的输入Fix_Information()参数为: 用户的查询方式检查其格式的正确性search()对数据库进行查找, 并记录符合条件的学生信息nosearch()输出未找到相应的学生out_Display()将所有符合的学生信息输出1.3 找老乡1.3.1 程序流程图1.3.2 函数说明Compare1()功能包含:首先创建一个找老乡籍贯信息数据结构再提示输入籍贯信息: 输入message1Exit1()功能包含:输出:籍贯格式有误, 请重新再来一次Compare2()功能包含:首先创建一个籍贯信息集合输入籍贯信息比较: 输入message2Exit2()功能说明:输出:籍贯信息不匹配, 请重新再来一次Sf_insert()功能说明: 正确输入Select()功能说明: 根据输入籍贯信息搜索信息Reason()功能说明: 查询失败, 可能输入条件逻辑有误或没有信息Resoult功能说明: 显示结果1.4登录1.4.1程序流程图1.4.2函数说明Login()功能说明:提示输入ID和密码Password()功能说明:函数参数: 学号验证学号对应的密码Display()函数说明:输出功能选择1.信息查找2、请假申请3、老乡查询并提示输入选择的的功能号1.5注册1.5.1程序流程图1.5.2函数说明Login_syste()功能说明: 登入系统Put_information()功能说明: 填入信息Check_infomation功能说明: 核对一些必要的信息有没有填写Make_out information()功能说明: 信息填写成功2.数据组织数据组织形式见需求分析的数据字典部分。
软件工程课程设计报告范文之详细设计报告范文
软件工程课程设计报告范文之详细设计报告范文详细设计说明书1、引言:1、1编写目的:在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。
在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。
主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)在以下的各个阶段中,《用户操作手册》将与本阶段的工作紧密结合,努力作到让用户易懂易学。
《测试报告》和《维护报告》也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,一定要把功能强大、稳定可靠、便于维护的机票预定系统交到用户手中。
1、2项目背景:在本即时聊天工具项目的前一阶段,也就是需求分析阶段,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对不同用户所提出的不同功能,实现的各种效果做了调研工作,并在需求规格说明书中得到详尽得叙述及阐明。
本飞Q即时聊天系统项目主要由两部分形成:1、客户端;2、数据库服务器端;21、3文中特殊的定义和缩写:1.3.1定义SQLSERVER:系统服务器所使用的数据库管理系统(DBMS)。
SQL:一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。
值互不相同。
外部主键:数据库表中与其他表主键关联的域。
ROLLBACK:数据库的错误恢复机制。
1.3.2缩写系统:若未特别指出,统指本机票预定系统。
SQL:StructuredQueryLanguage(结构化查询语言)。
软件工程——总体设计报告-无删减范文
软件工程——总体设计报告软件工程——总体设计报告1. 引言本文档是软件工程项目的总体设计报告,用于阐述项目的整体设计方案。
本项目旨在开发一款具有特定功能的软件,该软件既要满足用户的需求,又要保证系统的稳定性和可维护性。
本报告将介绍项目的总体设计思路、结构和主要功能模块。
2. 总体设计思路在总体设计中,我们将采用分层结构的设计思路。
将软件系统划分为多个功能模块,每个模块之间通过接口进行交互。
模块之间的解耦合使得系统具有良好的扩展性和可维护性。
3. 系统结构设计3.1 模块划分根据对用户需求的分析,我们将系统划分为以下几个模块:1. 用户管理模块:负责用户的注册、登录和权限管理。
2. 数据处理模块:用于处理用户输入的数据,并进行相应的计算和分析。
3. 数据存储模块:负责将处理后的结果存储到数据库中,并提供数据的读取和查询功能。
4. 数据展示模块:用于展示处理后的数据结果,支持图表展示和数据导出等功能。
3.2 模块之间的关系下图展示了各个模块之间的关系:```用户管理模块 --> 数据处理模块 --> 数据存储模块 --> 数据展示模块```3.3 接口设计为了确保模块之间的解耦合,我们需要定义清晰的接口规范。
以下是各个模块的接口设计:1. 用户管理模块:- 注册用户(registerUser): 用于用户注册,参数为用户名和密码。
- 用户登录(loginUser): 用于用户登录,参数为用户名和密码。
- 权限管理(managePermission): 用于管理用户的权限,参数为用户ID和权限类型。
2. 数据处理模块:- 数据处理(processData): 用于处理用户输入的数据,参数为原始数据。
- 数据计算(calculateData): 用于对处理后的数据进行计算和分析。
3. 数据存储模块:- 数据存储(saveData): 用于将处理后的结果存储到数据库中,参数为处理结果。
- 数据读取(readData): 用于从数据库中读取数据,参数为数据ID。
软件工程设计报告(例子)
软件工程设计报告(例子)软件工程设计报告(例子)1. 引言本文档旨在描述一个虚构的软件工程项目的设计过程和结果。
该项目是一个在线购物平台的设计,包括前端和后端开发。
本报告将涵盖项目需求分析、概要设计、详细设计以及测试计划。
2. 项目背景购物平台是当今流行的电子商务应用之一,为消费者提供了方便快捷的购物体验。
为了开发一个具有竞争力的购物平台,我们决定设计一个用户友好、稳定可靠的系统。
3. 需求分析在需求分析阶段,我们与客户合作,确定了以下功能和需求:- 用户注册和登录- 商品展示和搜索- 购物车管理- 订单管理- 支付和物流跟踪在需求分析的基础上,我们创建了用例模型和活动图,以帮助我们更好地理解用户的需求和系统的功能。
4. 概要设计在概要设计阶段,我们首先考虑了整体系统结构和组件之间的关系。
我们决定使用MVC(模型-视图-控制器)架构来实现系统。
以下是系统的概要设计:- 前端:使用、CSS和JavaScript开发用户界面- 后端:使用Python编程语言开发后端逻辑- 数据库:使用MySQL来存储用户数据和商品信息我们还创建了系统的类图和时序图,以明确各个组件之间的交互和数据流。
5. 详细设计在详细设计阶段,我们对系统的每个模块进行了更详细的设计。
以下是系统的详细设计:- 用户管理模块:包括用户注册、登录和个人资料管理功能。
我们设计了相应的数据库表和API接口。
- 商品管理模块:包括商品展示、搜索和分类功能。
我们设计了相应的数据库表和API接口。
- 购物车模块:包括添加商品、删除商品和结算功能。
我们设计了相应的数据库表和API接口。
- 订单管理模块:包括订单、确认订单和取消订单功能。
我们设计了相应的数据库表和API接口。
- 支付和物流模块:我们与第三方支付和物流服务提供商集成,以实现在线支付和物流跟踪功能。
详细设计阶段还包括数据库设计、API设计和界面设计等方面。
我们使用UML工具和原型设计工具来辅助设计工作。
软件工程之详细设计
WHILE P DO
P1
IF A S1;
>O
THEN
A1
ELSE
A2
ENDIF;P2
WHILE C
P
UNTIL C
P
IF
B>0 THEN B1; WHILE C DO S2;S3
ENDWHaI.L顺E序; 结构
ELSE B2
b.当型循环结构
c.直到型循环结构
L1 P1
ENDIF; B3
C
P1
L2 X=
详细设计
详细设计(又称为过程设计或模块设 计),是编码的前导。其主要任务是确定每 一个模块所使用的算法、块内数据结构和接 口细节,用描述工具表达算法的过程,即对 模块的具体实现过程进行详细地描述。。
• 详细设计的具体任务 • (1)算法设计 • (2)数据结构设计 • (3)模块接口细节 • (4)测试用例设计 • (5)数据库物理设计 • (6)数据代码设计 • (7)其他设计 • (8)编写详细设计说明书并进行评审。
C3 … Cn
多分支结构
A exp
UNTIL循环
两种循环结构不同之处
exp A
当循环结构
A exp
直到循环结构
详细设计的工具
1.程序流程图 程序流程图又叫程序框图,它是历史最悠久、使用最广泛的一种算法表示工具。
程序流程图的主要符号
2.盒图(N-S图 Nassi Shneiderman)
A B C
用判定树表示计算行李费的算法
5.过程设计语言(PDL:Process Design Language)
也称程序描述语言,又称为伪码。它是一种用于描述模块算法 设计和处理细节的语言。
软件工程课程设计报告
软件工程课程设计报告一、需求分析:1、本系统只有一个文件,包含学生姓名、成绩。
姓名、语文成绩、数学成绩、英语成绩均由键盘输入。
(1)文件名:file(2)文件类型:顺序文件(3)文件结构姓名数学语文英语数据类型字符型单精度数单精度数单精度数数据占用长度字节字节字节字节(4)文件记录长度:、输出时根据操作显示排名或查询成绩,按姓名、数学成绩、语文成绩、英语成绩。
、该程序具有初始化学生成绩,录入学生成绩,修改学生成绩,删除学生成绩,添加学生成绩,按总成绩查询,按姓名查询,按总分查询排名,按英语成绩查询,显示所有学生的数据等功能。
、测试数据:例如:姓名语文数学英语小五小王小李按姓名查询:输入姓名小五,显示语文成绩,数学成绩,英语成绩按语文成绩排序:姓名语文数学英语小王小李小五、数据流图:二、概要设计:、类的定义格式:<类名>{<成员函数或函数数据成员的说明>::<数据成员或成员函数的说明>}<各个成员的实现>、定义数组类型{:下标和数据元素值组成的数据堆集合,其中任意两个数据队的下标各不相同。
:():建立一个数组。
():返回下标位的元素值。
():将下标位的数据对的值为.}3、义字符串类型{:: 字符串是由(≤)各字符组成的有限序列”……”(≤)(): 建立一个空串(): 撤销一个串(): 求串长(): 置为空串(): 串赋值(): 串连接(): 串插入(): 串删除(): 串替位(): 取子串(): 求子串在主串中的位置}三、详细设计1、主程序模块的基本算法(){初始化{根据显示键入操作符}(根据状态标志位返回);{(键入的操作符)'':{ 录入模块}'':{ 总成绩查询模块}'':{按姓名查询模块}'':{ 添加成员模块}'':{删除模块}'':{ 修改模块}'':{显示所有学生成绩模块}'':{按总分查询排名}'':{按语文查询排名}'':{按数学查询排名}'':{按英语查询排名}} <<"您想继续进行其他操作吗?()"<<;;{>>;('''')<<"指令错误!请重新输入!"<<;;}();('')<<"请输入操作代码( 录入按总分查询按姓名查询增加人员删除人员修改数据显示所有成员数据按总分排名按语文排名按数学排名按英语排名)"<<;>>;}('');( <){[];<<" !"<<;、子程序函数清单(因为所用到的算法比较简单算法略)();();();();();DEL();();();();();();();、学生成绩管理软件由主控模块形成顶层模块,由初始化,数据录入,增加人员,删除人员,修改数据,按总成绩查询,按语文成绩查询,按数学成绩查询,按英语成绩查询模块组成一级模块如图:四、调试分析:()由于我们在各模块中用到的状态标志位太多,而且在定义时出现了错误,在老师和同学们的帮助下,我们组的成员齐心协力使得错误很快得到了解决。
软件工程课程设计报告
淮海工学院计算机工程学院课程设计报告设计名称:软件工程课程设计选题名称:计算机等级管理系统的设计与实现姓名:学号:专业班级:计算机科学与技术系(院):计算机工程学院设计时间:2016.6.14~2016.7.5设计地点:软件实验室、教室1.课程设计目的软件工程课程设计是计算机专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,通过本课程设计能够进行简单软件系统的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生的综合应用能力。
2.课程设计任务与要求:任务结合《软件工程》、《面向对象程序设计》课程以及相关课程中所学知识,积极完成设计任务。
要求通过设计,深对课程基本内容的理解和综合运用。
学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。
学生自选课题需在16周前报课程设计指导教师批准方可生效。
要求:(1)通过文献资料查阅和学习,了解当前软件设计技术和一般方法。
(2)参考和研究一些公司和高校/企业成功的软件开发案例和实现方案,结合《面向对象程序设计》、《软件工程》等课程中所学知识,积极完成设计任务。
(3)认真完成需求分析,并根据需求分析完成各设计题目的总体设计、详细设计和测设等环节的设计任务,开发工具推荐使用|Vc++|。
(4)每位同学需提交可独立运行的软件程序。
(5)认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、需求分析、概要设计、详细设计、调试分析、测试结果、附录和设计心得体会等。
(6)每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算)。
图1登录界面数据流图图3层次方框图图5考生报名E-R图图7登录流程图图9登录界面4.3考生报名核心代码。
软件工程课程设计报告
软件工程课程设计报告旅游信息管理系统姓名: ___________________________学号: _____________________专业: ______ 软件工程 ___________________ 班级:14软件工程1班_______________ 指导教师:__________________________1.课程设计概述 ------------------------------------------------- 1 - 1.1系统目的 (1)1.2系统任务 (1)1.3运行环境 (2)2. ---------------------------------------------------------------------------------------------- 项目的可行性研究---------------------------------------------------- 2 - 2.1旅游网站的可行性研究 (2)2.2.1技术可行性.............................................. -2 - 2.2.2经济可行性.............................................. -3 -2.2.3操作可行性.............................................. -3 -3.需求分析 ------------------------------------------------------ 3 -3.1功能需求分析.............................................. -4 -3.2性能需求分析.............................................. -4 -4.概要设计 ------------------------------------------------------ 5 4. 1系统结构图................................................. -8 4.2系统登陆流程图 (7)4. 3系统E-R图 (8)4.4数据字典.................................................. -9 -5.课程设计完成结果分析与个人小结 ------------------------------ 10 -参考文献----------------------------------------------------- 11 - 1.课程设计概述1.1系统目的该系统主要建立一个完整的旅游网站,突出旅游特点,有美观的界面设计。
软件工程设计报告(例子)简洁范本
软件工程设计报告(例子)软件工程设计报告(例子)1. 引言软件工程设计报告是对软件项目进行详细设计的文档。
本报告将介绍一个虚构的软件项目的设计过程,以提供一个示例来说明软件工程设计的步骤和方法。
2. 背景本项目是一个在线图书商城系统,旨在为用户提供方便快捷的图书购买和阅读体验。
用户可以通过该系统浏览图书、下订单、进行支付和阅读等操作。
3. 需求分析在开始设计前,我们进行了需求分析阶段的工作。
通过与用户进行交流和讨论,我们明确了以下关键需求:用户注册和登录图书浏览和搜索下订单和支付在线阅读4. 架构设计在架构设计阶段,我们选择了采用三层架构来实现系统功能。
这包括以下三个层次:表示层:负责与用户交互,展示图书信息、处理用户输入业务逻辑层:负责处理用户请求,进行订单处理和支付等操作数据访问层:负责与数据库交互,包括用户信息、图书信息和订单信息的存取5. 数据库设计为了支持系统的功能,我们设计了以下几个数据库表:用户表:用于存储用户信息,包括用户名、密码和等图书表:用于存储图书信息,包括书名、作者、价格和库存等订单表:用于存储订单信息,包括订单号、用户ID、图书ID 和订单状态等6. 模块设计系统的模块设计包括以下几个关键模块:用户管理模块:负责用户的注册、登录和信息修改等功能图书管理模块:负责图书的浏览、搜索和详情展示等功能订单管理模块:负责订单的、支付和状态处理等功能阅读管理模块:负责在线阅读功能的实现7. 接口设计为了实现系统的各个模块间的通信,我们设计了以下几个接口:用户接口:包括用户注册、登录和信息修改等接口图书接口:包括图书浏览、搜索和详情展示等接口订单接口:包括订单、支付和状态处理等接口阅读接口:包括图书在线阅读和翻页等接口8.通过本报告,我们详细介绍了一个在线图书商城系统的软件工程设计过程。
从需求分析到架构设计、数据库设计、模块设计和接口设计,我们展示了软件工程设计的主要步骤和方法。
希望这个示例能够对读者理解软件工程设计的过程有所帮助。
软件工程课程设计-4-详细设计
类型
说明
course_name
char
编号
teacher_name
char
名称
2.4.5 算法
图2.4.5查询按钮按下事件算法图
2.5 导师查询模块
2.5.1 模块概述
1.简要情况:本模块开放给导师。只有以导师或管理员权限登陆后,才能进入此模块,其他用户无法进入本模块。进入模块以后,导师可以按姓名查询学生、按班级查询学生、按工号查询各导师信息和按导师学生查询所带学生信息。
2.确定按钮按下事件:
图2.6.5.2确定按钮按下事件算法图
2.7 学生用户查询模块
2.7.1 模块概述
1.简要情况:
该模块用于新生入校后对相关信息进行查询,包括个人基本信息查询,个人入学流程查询,通过该查询,新生可以及时了解到自身入学流程的进度情况。新生导师查询。新生所在班级信息查询。
2.3.2 模块处理流程设计
2.3.3 模块界面设计
2.3.4 局部数据结构
名称
类型
说明
course_no
char
编号
course_name
char
名称
course_hour
int
学时
course_credit
int
学分
2.3.5 算法
图2.3.5查询按钮按下事件算法图
2.4 授课管理模块
Int
联系方式
CLASS_NAME
Char
班级
ADDRESS
Char
家庭地址
TNAME
Char
导师姓名
TNO
Int
导师工号
TSEX
Char
导师性别
TLEVEL
软件工程——总体设计报告简版范文
软件工程——总体设计报告软件工程——总体设计报告1. 引言本文档为软件工程的总体设计报告,旨在详细描述软件系统的总体设计方案。
本报告将包括软件系统的整体架构、关键模块设计、数据流程图以及方案等内容,以确保软件系统的可靠性和稳定性。
2. 软件系统概述本软件系统是一个(在此填写软件系统的概述,包括系统的主要功能、目标用户群等)。
3. 总体设计方案3.1 软件系统架构软件系统的总体架构采用(在此填写所采用的架构设计,如MVC模式、分层架构等),以实现系统的可扩展性和可维护性。
3.2 关键模块设计本软件系统中的关键模块包括(在此填写关键模块的设计方案,如模块功能、接口设计等)。
3.3 数据库设计软件系统将使用数据库来存储和管理数据。
数据库的设计将包括(在此填写数据库的表结构设计、数据关系图等)。
3.4 数据流程图为了清晰地展示软件系统中数据的流转过程,我们设计了数据流程图。
具体的数据流程图如下所示:插入数据->处理数据->输出结果3.5 系统性能设计为了保证软件系统的性能,我们将采取(在此填写系统性能设计的相关方案,如优化算法、并发处理等)。
4. 方案为了保证软件系统的质量,我们将制定详细的方案。
方案将包括单元、集成、系统等,以确保系统在各种场景下的稳定性和正确性。
5. 风险分析在软件开发过程中,存在一定的风险。
为了应对潜在的风险,我们将进行风险分析,并提出相应的应对策略。
6. 开发计划为了合理安排软件系统的开发进度,我们将制定详细的开发计划。
开发计划将包括需求分析、设计、编码、等阶段的时间安排。
7. 结论本文档详细描述了软件系统的总体设计方案,包括系统架构、关键模块设计、数据库设计、方案等。
通过合理的设计和,我们将确保软件系统的稳定性和可靠性,满足用户的需求。
软件工程课设报告
软件工程课设报告一、引言软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
本次课程设计旨在通过实践,深入理解软件工程的原理和方法,提高软件开发的能力。
二、需求分析(一)项目背景随着信息技术的不断发展,人们对于各种软件的需求日益增长。
本次课程设计选择了一个图书管理系统作为开发项目,旨在为图书馆提供一个高效、便捷的管理工具,提高图书管理的效率和质量。
(二)功能需求1、图书信息管理:包括图书的添加、删除、修改、查询等功能。
2、读者信息管理:读者信息的登记、修改、删除、查询等。
3、借阅管理:实现图书的借阅、归还、续借等操作,并记录借阅历史。
4、系统管理:包括用户管理、权限管理、数据备份与恢复等。
(三)性能需求1、系统响应时间要短,保证用户操作的流畅性。
2、数据的准确性和完整性要得到保证。
3、系统要具备一定的稳定性和可靠性,能够长时间稳定运行。
三、系统设计(一)总体设计1、系统采用 C/S 架构,分为客户端和服务器端。
2、客户端负责与用户进行交互,服务器端负责数据的存储和处理。
(二)模块设计1、图书管理模块:实现图书信息的增删改查等操作。
2、读者管理模块:处理读者的相关信息。
3、借阅管理模块:完成借阅相关的业务逻辑。
4、系统管理模块:进行系统的维护和管理工作。
(三)数据库设计1、设计了图书表、读者表、借阅表等相关数据表。
2、确定了表之间的关系,保证数据的一致性和完整性。
四、详细设计与实现(一)界面设计1、采用简洁、直观的界面风格,方便用户操作。
2、设计了登录界面、主界面、图书管理界面等。
(二)代码实现1、使用编程语言(如 Java)实现各个功能模块。
2、注重代码的规范性和可读性,添加必要的注释。
(三)算法设计在借阅管理模块中,采用了合适的算法来计算借阅期限和逾期罚款等。
五、测试与调试(一)测试用例设计针对各个功能模块设计了详细的测试用例,包括正常情况和异常情况的测试。
软件工程课程设计概要设计与详细设计.doc
淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:图着色理论在仓库管理系统中的应用——概要设计与详细设计班级:网络122学号:2012122683姓名:叶婷1、实验目的与要求熟悉Visio绘图工具或PowerDesigner系统,并使用Visio或PowerDesigner系统提供的设计绘图工具,如H图、程序流程图、盒图、PAD图等完成软件工程实验项目的概要设计与详细设计文档中的层次图和程序流程图等图形绘制与文档说明。
2、实验内容一、概要设计1.1引言1.1.1编写目的近年来,生产的工业化速度迅速加快,生产的产品数量猛增,给传统的仓库管理方式手工作业带来了很大的负担,今天的仓库作业和库存控制作业已十分多样化,复杂化,靠人工去记忆去处理已十分困难,且出现错误的可能性很大。
如果不能保证正确的进货、验收、质量保证及发货,就会导致浪费时间,产生库存,延迟交货,增加成本,以致失去为客户服务的机会。
本文正是为解决这个问题而作。
本说明书的预期读者为小中型仓库的管理员及客户和采购员。
1.1.2背景本系统是:仓库管理系统。
本项目的任务提出者、开发者都是本人用户:中小型仓库管理员。
软件的计算机网络:任何装有IIS的计算机作为服务器端,其他处在同一网络的计算机作为客户端。
1.1.3定义DFD: Data Flow Diagram 数据流图,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
DD;Data Dictionary 数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
1.1.4参考资料1.《软件工程》---钱乐秋,赵文耘,牛军钰编著 ------ 清华大学出版社2.《数据库系统概论》—王珊萨师煊主编 -------高等教育出版社3.《 Java语言程序设计实用教程》董迎红张杰敏编著------ 北京大学出版社4. 可行性研究报告5. 需求分析说明书1.2总体设计1.2.1需求规定本系统软件主要实现的功能是仓库管理员对仓库进行库存的管理,主要包括,对于生产部门送来的货物进行清点,无误后入库,对于销售部门请求的货物进行核实,无误后出库。
软件工程详细设计报告
软件工程详细设计报告软件工程详细设计报告1. 引言本文档旨在对软件工程项目的详细设计进行说明和解释。
详细设计是在需求分析和概要设计的基础上进行的,它将概要设计中的概念转化为更具体的实现细节。
详细设计报告将涵盖系统的各个方面,包括模块设计、数据结构设计和操作流程等。
2. 模块设计2.1 模块1设计模块1是系统的核心模块,负责处理用户输入和相关输出。
其主要功能包括数据收集、数据处理和结果展示。
为了实现这些功能,模块1需要与其他模块进行交互,如模块2和模块3。
下面是模块1的详细设计:markdown- 输入接口:从用户那里接收输入数据,并进行验证和处理。
- 数据处理:根据输入数据进行计算和操作,并相关的输出。
- 输出接口:将处理后的结果以适当的形式返回给用户。
2.2 模块2设计模块2负责与外部系统进行交互,并处理来自外部系统的数据。
它的主要功能是与数据库进行通信,并执行数据库操作。
下面是模块2的详细设计:markdown- 与数据库通信:建立与数据库的连接,并执行数据库操作,如查询、插入、更新和删除等。
- 数据验证:对从外部系统接收到的数据进行验证,确保其满足系统要求。
- 数据处理:根据系统需求,对从数据库中获取的数据进行处理和加工。
2.3 模块3设计模块3是系统的用户界面模块,负责与用户进行交互。
它提供了用户输入界面和结果展示界面。
下面是模块3的详细设计:markdown- 用户输入界面:为用户提供输入数据的界面,包括表单、文本框和按钮等控件。
- 结果展示界面:将处理后的结果以易于理解和浏览的形式展示给用户,可以是表格、图表或文本等形式。
3. 数据结构设计在软件工程项目中,数据结构的设计是非常重要的一部分。
它决定了系统中数据的组织方式和存储方式。
系统中使用的主要数据结构包括:- 数组:用于存储一组相同类型的数据元素。
- 链表:用于存储具有相同类型的数据元素,并通过指针进行关联。
- 树:用于存储具有层次结构的数据,如目录结构。
软件工程课程设计_完整版
软件工程课程设计_完整版一、引言软件工程是一门涵盖软件开发、维护和管理等领域的学科。
随着科技的不断发展,软件工程在现代社会中扮演着重要的角色。
本文将介绍软件工程课程设计的完整版,包括需求分析、概要设计、详细设计和测试等环节。
二、需求分析需求分析是软件开发的第一步,其目的在于明确软件系统的功能和性能要求。
在这一环节中,需要进行需求收集、需求分析和需求规格说明书的编写。
通过与用户的沟通与交流,软件工程师可以充分了解用户的需求,为后续的开发工作奠定基础。
三、概要设计概要设计是软件开发的第二步,其核心任务是对需求进行系统化的分析和概括。
在这一阶段中,软件工程师需要根据需求分析结果,确定系统的总体结构和模块划分,并绘制出系统的框架图和数据流程图等。
概要设计的完成将为详细设计提供指导。
四、详细设计详细设计是软件开发的第三步,其目的是针对概要设计的每个模块进行具体的设计和描述。
在这一阶段中,软件工程师需要确定每个模块的数据结构和算法,并绘制出流程图和类图等。
详细设计的完成可以为后续的编码和测试工作提供明确的指导。
五、编码与单元测试编码阶段是软件开发的核心环节,其任务是根据详细设计的要求,将设计转化为可执行的代码。
在编写代码的同时,软件工程师需要进行单元测试,以验证代码的正确性和稳定性。
单元测试可以通过编写测试用例和使用调试工具等方法进行。
六、综合测试综合测试是在编码和单元测试完成后进行的,其目的是验证整个系统的功能和性能。
在这一阶段中,软件工程师需要进行集成测试和系统测试,以确保软件系统在各个模块之间能够正常交互,并满足用户的需求和要求。
七、部署与维护部署与维护是软件开发的最后一步,其任务是将开发完成的软件系统部署到目标环境中,并进行日常的维护和更新工作。
在部署过程中,软件工程师需要进行性能测试和安全测试,以确保软件系统的稳定性和可用性。
八、总结软件工程课程设计是一项复杂而又重要的任务,它要求软件工程师具备扎实的理论基础和丰富的实践经验。
软件工程详细设计报告
软件工程详细设计报告1.引言1.1 目的本文档旨在提供软件工程详细设计报告,详细描述软件系统的设计细节、功能和架构。
1.2 范围本文档适用于软件工程项目的详细设计阶段,涵盖了系统的主要功能和各个模块的设计。
2.系统需求概述2.1 功能需求在此章节,详细列出了系统的主要功能需求,包括输入、输出和处理逻辑。
2.2 非功能需求此章节包括性能、可靠性、安全性等方面的需求描述。
3.系统架构设计3.1 架构概述此章节中,展示了系统的整体架构,包括系统组件、模块和它们之间的关系。
3.2 模块划分和功能描述在此章节,各个模块的划分和功能描述进行了详细阐述。
4.数据设计4.1 数据模型此章节描述了系统的数据模型,包括各个数据实体、属性和关系。
4.2 数据库设计在此章节,包括数据库的结构设计、表和字段定义等。
5.接口设计5.1 用户界面设计此章节详细描述了系统的用户界面,包括界面元素、布局和交互设计。
5.2 外部接口设计在此章节,包括与其他系统或服务进行交互的接口设计。
6.组件设计6.1 功能组件设计此章节描述了系统的各个功能组件的设计细节,包括类定义、方法和接口。
6.2 部署组件设计在此章节,包括系统的部署和配置细节,例如服务器和网络设置。
7.模块测试设计7.1 测试策略本章节详细描述了系统测试的策略和方法。
7.2 测试用例设计在此章节,列出了各个模块的测试用例,并描述了预期结果。
8.系统部署8.1 硬件需求在此章节,列出了系统部署所需的硬件要求。
8.2 软件需求此章节描述了系统部署所需的软件环境和依赖。
9.运维计划在此章节,详细描述了系统的运维计划,包括备份策略、维护计划等。
10.文档更新历史此章节记录了本文档的历次更新内容。
附件:________本文档没有涉及附件。
法律名词及注释:________1.法律名词A:________根据法律B的定义,指。
软件工程详细设计报告
软件工程详细设计报告软件工程详细设计报告一、引言本文档旨在对软件工程项目的详细设计进行记录和说明。
通过详细设计,可以进一步明确和细化系统的功能、系统架构、模块设计以及数据流程等关键方面,为软件开发的实施提供指导和参考。
二、需求概述在本章节中,将对软件项目的功能和非功能需求进行总结和概述,并对需求进行分类和优先级排序。
2.1 功能需求详细列出软件项目的各项功能需求,并对其进行详细描述和解释。
包括用户需求、系统需求以及相关功能的优先级。
2.2 非功能需求详细列出软件项目的非功能需求,并对其进行详细描述和解释。
包括性能需求、可靠性需求、安全性需求等。
三、系统架构设计在本章节中,将对整个软件系统的总体架构进行设计和说明。
包括系统的层次结构、模块划分、模块之间的关系等。
3.1 系统层次结构图绘制系统的层次结构图,明确各个组件的层次和依赖关系。
3.2 模块划分对整个软件系统进行模块划分,明确各个模块的职责和功能。
3.3 模块间接口设计详细说明各个模块之间的接口设计,包括输入输出参数、数据传递方式等。
四、模块设计在本章节中,将对每个模块的详细设计进行说明。
包括模块功能、输入输出、数据结构、算法等。
4.1 模块一设计详细描述模块一的功能、输入输出、数据结构和算法。
4.2 模块二设计详细描述模块二的功能、输入输出、数据结构和算法。
(按需继续添加其他模块设计)五、数据流程设计在本章节中,将对系统的数据流程进行详细的设计和说明。
包括数据输入、处理和输出等。
5.1 数据输入设计详细说明系统的数据输入方式和流程,并对每个输入项进行说明和验证。
5.2 数据处理设计详细说明系统的数据处理流程和算法,包括数据的转换、过滤、排序等。
5.3 数据输出设计详细说明系统的数据输出方式和流程,并对每个输出项进行说明和验证。
六、界面设计在本章节中,将对系统的用户界面进行详细的设计和说明。
包括界面布局、交互设计、样式等。
6.1 界面布局设计详细描述系统的界面布局和组件排列方式,给出界面示意图。
软件工程课程设计报告(学生选课系统)
软件工程课程设计陈说之迟辟智美创作( 2007-- 2008 年度第二学期)课程名称:软件工程课程设计题目:学生选课系统院系:计算机科学与技术系班级:计算0503组号:2组长:李英龙组员:潘贵生刘罡吴志洁指导教师:马素霞设计周数:两周小组成果:日期:2008 年 7月 4日《软件工程》课程设计任务书一、目的、要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力.具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神.二、主要内容1.课题题目:学生选课系统,本系统要实现学生选课的基本功能,包括学生退选课,检查自己的选课信息;教师检查选课学生的信息,提交成果;管理员添加学生、管理学生、管理成果、添加教师、管理教师和管理课程等.2.运用面向对象技术、UML及可视化的建模工具完成系统的需求分析与设计.3.使用Rational Rose作为需求分析与设计的建模工具,包括静态建模和静态建模,并利用对象模型自动生成数据模型,自动建立数据库.4.采纳分层模式的应用设计模式进行系统的设计实现.5.系统要实现四个模块功能:教师模块、学生模块、管理员模块和公用模块.6.初步建立系统原型,实现关键的功能,并对系统进行测试.7.编写课程设计陈说.三、任务分配任务负责人介入人备注需求分析潘贵生李英龙刘罡吴志浩总体设计刘罡李英龙潘贵生吴志浩详细设计吴志浩李英龙刘罡潘贵生系统实现与测试李英龙潘贵生刘罡吴志浩四、进度计划五、设计功效要求1.建立系统分析与设计模型;2.初步建立系统原型,实现关键的功能;3.编写课程设计陈说.六、考核方式1.模型及代码检查占50%.2.设计陈说占50%.指导教师:马素霞日期: 2008 年 6 月23 日《软件工程》课程设计成果评定一、指导教师评语二、成果学号姓名成果备注1051220308 李英龙1051220316 潘贵生1051220311 刘罡1051220321 吴志浩指导教师:日期:年月日摘要:本系统实现学生选课的基本功能,包括学生退选课,检查自己的选课信息;教师检查选课学生的信息,提交成果;管理员添加学生、管理学生、管理成果、添加教师、管理教师和管理课程等.系统利用.Net平台技术进行开发,实现学生选课的静态管理,使得对信息的管理更加及时、高效,提高了效率.同时还对系统的开发原理、功能特点和设计方案进行了介绍.关键词:一、课程设计的目的与要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力.具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神.二、设计正文1.概述1.1课题题目:学生选课系统1.2系统的主要目标:本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师检查选修课程、提交课程成果功能以及管理员添加学生、维护学生信息、成果管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能.1.3系统的开发环境及运行环境:把持系统:Windows XP Pro SP2建模工具:Rational Rose 2003数据库系统:SQLServer2000开发工具:Visual Studio 20052.系统需求分析学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户,也即是三类用户角色.(1)学生用户是主要的需求者,主要需求功能是查询可选课程、检查自己选课情况及进行选课、退课把持等;(2)教师用户主要需求功能是检查自己所教授的课程、课程有哪些学生选修、以及利用本系统提交学生的成果;(3)管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理.在学生信息管理子模块中,实现对学生信息的添加、修改、删除把持,还可以输入查询条件进行查询把持.在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等把持.在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地址,实现对课程的修改、删除、检查某个课程的详细信息等.本系统将管理员用户、教师用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以检查、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有检查自己开设的课程的信息,以及提交所开设课程成果的权限;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息.通过进行严格的权限划分,可以更好地进行管理,也可更好地呵护用户信息平安.2.1用例图图2-1 学生选课系统用例图(1)系统的外部角色有:学生用户、教师用户和管理员.(2)系统主要用例的文档描述:①学生管理用例:学生用户可见的功能,包括了选课、退课和检查选课三个用例功能.②教师管理用例:教师用户可见的功能,包括了检查学生选课和提交成果两个用例功能.③信息管理用例:管理员可见的功能,这个用例进一步分为三个用例:学生信息管理用例、教师信息管理用例和课程信息管理用例.④学生信息管理用例:信息管理用例可见的功能,实现学生信息的管理功能,包括了添加学生、修改学生信息和删除学生三个用例.⑤教师信息管理用例:信息管理用例可见的功能,实现教师信息的管理功能,包括了添加教师、修改教师信息和删除教师三个用例.⑥课程信息管理用例:信息管理用例可见的功能,实现课程信息的管理功能,包括了添加课程、修改课程信息和删除课程三个用例.⑦修改密码用例:所有用户都可见的功能,用于修改用户的密码信息.(3)系统用例之间的关系:①学生管理用例与选课、检查选课、退课三用例之间是包括关系.②教师管理用例与检查学生选课、提交成果两用例之间是包括关系.③信息管理用例与学生信息管理用例、教师信息管理用例和课程信息管理用例之间是包括关系.④学生信息管理用例与添加学生、修改学生信息和删除学生三个用例之间是包括关系.⑤教师信息管理用例与添加教师、修改教师信息和删除教师三个用例之间是包括关系.⑥课程信息管理用例与添加课程、修改课程信息和删除课程三个用例之间是包括关系. (4)系统关键用例的正常事件流图和异常事件流图主事件流用户系统3.填写学生成果,单击提交成果5.更新学生成果,提示提交胜利 异常流异常流 用户已经提交过该门课程成果系统提示该课程成果已提交,不能再次提交2.2 类图图2-2 学生选课系统类图类图说明:(1)BaseUser 类是一个系统角色用户的基类,主要方法有两个:modifyPWD() 用于修改用户的密码; loginCheck()用于用户登录验证. (2)Admin 类继承自BaseUser 类.(3)Student 类继承自BaseUser 类,主要方法有:studentAdd()用于添加学生; studentDel() 用于删除学生;studentUpdate() 用于更新学生信息; getStudents() 用于获取学生列表. (4)Teacher 类继承自BaseUser 类,主要方法有:teacherAdd()用于添加教师; teacherDel()用于删除教师;teacherUpdate() 用于更新教师信息; getTeachers() 用于获取教师列表. (5)Course 类是一个课程类,主要方法有:courseAdd()用于添加课程; courseDel()用于删除课程;courseUpdate() 用于修改课程信息; getCourses()用于获取课程列表.(6)Elect 类是一个选课表类,主要方法有:elect()选修课程; electDel() 退选课程;getElectInfo() 获取选课信息;haveSubmit() 检测是否已提交过成果; submitScore() 提交成果. 2.3 顺序图(1)管理员修改课程信息顺序图图2-5 教师提交成果顺序图2.4协作图(可选)(1) 学生用户选课协作图(2)数据表之间的关系图3-2 数据表之间的关系图(3)数据库表结构①学生表Student的详细数据字段:表3-3 Student学生用户表序号字段名字段类型说明备注1 stuID nvarchar(20)not null 学生学号关键字2 stuPwd nvarchar(20)not nul 学生密码3 stuName nvarchar(20)not nul 学生姓名4 stuDepart Int 学生系院号5 stuGrade int 学生年级6 stuClass int 学生班级②教师表Teacher的详细数据字段:表3-4 Teacher教师用户表序号字段名字段类型说明备注1 teaID nvarchar(20)not null 教师编号关键字2 teaPwd nvarchar(20)not null 教师密码3 teaName nvarchar(100)not null 教师姓名4 teaDepart Int(4) 教师系院号③课程表Course的详细数据字段:表3-5 Cource课程信息表序号字段名字段类型说明备注1 courseID nvarchar(20)not null 课程编号关键字2 teaID nvarchar(20)not null 教师编号关键字3 courseName nvarchar(100) not null 课程名称4 courseTime nvarchar(20) 上课时间5 courseAddress nvarchar(50) 上课地址6 courseInfo Text 课程简介④选课表Elect的详细数据字段:表3-6 Elect选课信息表序号字段名字段类型说明备注1 stuID nvarchar(20)not null 学生学号关键字⑤系统管理员表Users 的详细数据字段:⑥系院表Depart 的详细数据字段:3.3 设计人机交互子系统(1)用户分类本系统的用户可分为三类: ①管理员用户; ②教师用户; ③学生用户. (2)用户描述①管理员用户的描述:管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责. ②教师用户的描述:教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,检查选修了自己开设课程的学生信息有及提交学生成果. ③学生用户的描述:选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能. (3)设计命令条理①系统的人机交互子系统的内容和准则:本学生选课系统的人机交互子系统在根据分歧的用户身份登岸到分歧的页面,然4.2 用户密码修改流程图图4-1 系统用户登录流程图图4-2 用户密码修改流程图图4-3教师提交成果流程图管理员添加课程流程图图4-4 管理员添加课程流程图图4-5 学生选修课程流程图5.系统实现本系统采纳了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库把持.5.1 Database类主要是与数据库连接,提供数据库把持功能,代码如下:namespace{publicclass Database{protectedstring connectionString;protected SqlConnection connection = null;public Database(){connectionString =ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();}~Database(){if (connection != null){connection = null;}}protectedvoid Open(){if (connection == null){connection = new SqlConnection(connectionString);}if (connection.State.Equals(ConnectionState.Closed)){connection.Open();}}protectedvoid Close(){if (connection != null){connection.Close();}}publicint ExecuteSQL(string sqlstr){int count = -1;this.Open();SqlCommand cmd = new SqlCommand(sqlstr, connection);count = cmd.ExecuteNonQuery();this.Close();return count;}public DataSet GetDataSet(string sqlstr){this.Open();DataSet ds = new DataSet();SqlDataAdapter adapter = new SqlDataAdapter(sqlstr,connection);adapter.Fill(ds);this.Close();return ds;}public DataTable GetDataTable(string sqlstr){DataSet ds = this.GetDataSet(sqlstr);DataTable dt = new DataTable();if (ds.Tables.Count > 0){dt = ds.Tables[0];}return dt;}public SqlDataReader GetDataReader(string sqlstr){this.Open();SqlCommand cmd = new SqlCommand(sqlstr, connection);SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//this.Close();return sdr;}}}5.2 UserBase类是所有系统角色用户的基类,完成用户登录验证与修改密码的功能,代码如下:namespace{publicclass UserBase{privatestring userID;publicstring UserID{get { return userID; }set { userID = value; }}privatestring userPSW;publicstring UserPSW{get { return userPSW; }set { userPSW = value; }}publicstring loginCheck(string uid, string upwd, string urole){String selectStr = String.Empty;switch (urole){case"0": //身份为教师时selectStr = "Select * from Teacher where teaID = '" + uid + "'";break;case"1": //身份为学生时selectStr = "Select * from Student where stuID = '" + uid + "'";break;case"2": //身份为管理员时selectStr = "Select * from Users where adminName = '" + uid + "'";break;default:returnnull;}Database db = new Database();DataTable dt = db.GetDataTable(selectStr);if (dt.Rows.Count > 0) //如果该用户存在{if (dt.Rows[0][1].ToString().Equals(upwd)) //密码正确{switch (urole){case"0": //身份为教师时return"0";case"1": //身份为学生时return"1";case"2": //身份为管理员时return"2";default:returnnull;}}else//密码毛病,给出提示信息!{return"-1";}}else//用户不存在或用户名输入毛病{return"-2";}}publicstring modifyPWD(String urole, String uid, String oldPwd, String newPwd){String updateStr = String.Empty;switch (urole){case"0": //身份为教师时updateStr = "update Teacher set teaPwd='" + newPwd + "' where teaID='" + uid + "'";break;case"1": //身份为学生时updateStr = "update Student set stuPwd='" + newPwd + "' where stuID='" + uid + "'";break;case"2": //身份为管理员时updateStr = "update Users set adminPwd='" + newPwd + "' where adminName='"break;}string ucheck = this.loginCheck(uid, oldPwd, urole);if (ucheck.Equals("0") || ucheck.Equals("1") || ucheck.Equals("2")){int t = new Database().ExecuteSQL(updateStr); //根据修改后返回的结果给出提示if (t > 0){return"1";}else{return"0";}}else{return"-1";} } }}5.3系统登录页面,代码及运行效果如下:<head runat="server"><title>登录页面</title></head><body onload="document.all.txtUserName.focus()"leftmargin="0"rightmargin="0"><form id="form1"runat="server"><div><table align="center"style="font-size: 12px; font-family: Tahoma; border-collapse: collapse"<tr><td colspan="2"style="text-align: center"><span style="font-size: 24pt; font-family: 隶书">学生选课系统</span></td></tr><tr><td><div align="right"><span style="font-family: 宋体">用户名</span>:</div></td><td style="width: 242px"><asp:TextBox ID="txtUserName"runat="server"Width="150px"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1"runat="server"ErrorMessage="不能为空!"></asp:RequiredFieldValidator></td></tr><tr><td style="height: 32px"><div align="right">密 码:</div></td><td style="height: 32px; width: 242px;"><asp:TextBox ID="txtPwd"runat="server"TextMode="Password"<asp:RequiredFieldValidator ID="RequiredFieldV alidator2"runat="server"ErrorMessage="不能为空!"></asp:RequiredFieldValidator></td></tr><tr><td colspan="2"align="center"style="height: 46px"><asp:RadioButtonList ID="rblClass"runat="server"RepeatDirection="Horizontal"><asp:ListItem Value="0">教师</asp:ListItem><asp:ListItem Selected="True"Value="1">学生</asp:ListItem><asp:ListItem Value="2">管理员</asp:ListItem></asp:RadioButtonList><asp:Label ID="lblMessage"runat="server"ForeColor="Red"></asp:Label></td></tr><tr><td align="center"colspan="2"><asp:ImageButton ID="imgbtnLogin"runat="server"ImageUrl="~/Images/Login.GIF"<asp:ImageButton ID="imgbtnClose"runat="server"ImageUrl="~/Images/Close.GIF"</td></tr></table></div></form></body></html>图5-1系统登录页面5.4学生用户选课界面代码及运行效果图如下:<html xmlns="/1999/xhtml"><head runat="server"><title>学生选课</title></head><body leftmargin="0"rightmargin="0"topmargin="0"><form id="form1"runat="server"><div><table width="100%"bgcolor="#ccccff"><tr><td><uc1:top ID="Top1"runat="server"/></td></tr></table><table id="table1"width="80%"border="0"align="center"><tr><td align="center"><span style="font-size: 16pt;">可选修课程</span></td></tr><tr><td><asp:GridView ID="GridView1"runat="server"AutoGenerateColumns="False"BackColor="White"Width="100%"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3"DataSourceID="SqlDataSource1"GridLines="Vertical"OnRowCommand="GridView1_RowCommand"Font-Size="10pt"DataKeyNames="courceID,teaID"><FooterStyle BackColor="#CCCCCC"ForeColor="Black"/><RowStyle BackColor="#EEEEEE"ForeColor="Black"Font-Size="10pt"/><SelectedRowStyle BackColor="#008A8C"Font-Bold="True"ForeColor="White"/><PagerStyle BackColor="#999999"ForeColor="Black"HorizontalAlign="Center"/><HeaderStyle BackColor="Blue"Font-Bold="True"ForeColor="White"Font-Size="10pt"/><AlternatingRowStyle BackColor="Gainsboro"/><Columns><asp:BoundField DataField="courceID"HeaderText="courceID"ReadOnly="True"Visible="False" SortExpression="courceID"/><asp:BoundField DataField="teaID"Visible="False"HeaderText="teaID"ReadOnly="True"SortExpression="teaID"/><asp:BoundField DataField="courceName"HeaderText="课程名称"SortExpression="courceName"></asp:BoundField><asp:BoundField DataField="teaName"HeaderText="教师姓名"SortExpression="teaName"></asp:BoundField><asp:BoundField DataField="courceTime"HeaderText="上课时间"SortExpression="courceTime"></asp:BoundField><asp:BoundField DataField="courceAddress"HeaderText="上课地址"SortExpression="courceAddress"></asp:BoundField><asp:HyperLinkField DataNavigateUrlFields="courceID,teaID"DataNavigateUrlFormatString="courseDetail.as px?courceID={0}&teaID={1}"HeaderText="详细..."Text="详细..."/><asp:ButtonField HeaderText="选修"CommandName="select"Text="选修"></asp:ButtonField></Columns></asp:GridView><asp:SqlDataSource ID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:Connection String %>"SelectCommand="SELECT Cource.courceID, Cource.teaID, Cource.courceName, Teacher.teaName,Cource.courceTime, Cource.courceAddress FROM Cource INNER JOIN Teacher ON Cource.teaID =Teacher.teaID WHERE NOT EXISTS (SELECT * FROM Elect WHERE (courceID=Cource.courceID andteaID=Cource.teaID and stuID = @stuID))"><SelectParameters><asp:SessionParameter Name="stuID"SessionField="userID"/></SelectParameters></asp:SqlDataSource></td></tr><tr><td><asp:Label runat="server"ID="errormess"ForeColor="Red"Font-Size="Smaller"></asp:Label></td></tr><tr><td style="height: 24px; text-align: center"><span style="font-size: 16pt;">您已经选修的课程</span></td></tr><tr><td><asp:GridView ID="GridView2"runat="server"AutoGenerateColumns="False"BackColor="White"Width="100%"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3"DataSourceID="SqlDataSource2"GridLines="Vertical"OnRowCommand="GridView2_RowCommand"DataKeyNames="stuID,courceID,teaID"><FooterStyle BackColor="#CCCCCC"ForeColor="Black"/><RowStyle BackColor="#EEEEEE"ForeColor="Black"Font-Size="10pt"/><SelectedRowStyle BackColor="#008A8C"Font-Bold="True"ForeColor="White"/><PagerStyle BackColor="#999999"ForeColor="Black"HorizontalAlign="Center"/><HeaderStyle BackColor="Blue"Font-Bold="True"ForeColor="White"Font-Size="10pt"/><AlternatingRowStyle BackColor="Gainsboro"/><Columns><asp:BoundField DataField="stuID"HeaderText="stuID"ReadOnly="True"SortExpression="stuID"Visible="False"/><asp:BoundField DataField="courceID"HeaderText="courceID"ReadOnly="True"SortExpression="courceID"Visib le="False"/><asp:BoundField DataField="teaID"HeaderText="teaID"ReadOnly="True"SortExpression="teaID"Visible="False "/><asp:BoundField DataField="courceName"HeaderText="课程名称"SortExpression="courceName"><asp:BoundField DataField="teaName"HeaderText="教师姓名"SortExpression="teaName"></asp:BoundField><asp:BoundField DataField="courceTime"HeaderText="上课时间"SortExpression="courceTime"><asp:BoundField DataField="courceAddress"HeaderText="上课地址"SortExpression="courceAddress"><asp:ButtonField HeaderText="退选"CommandName="shanchu"Text="退选</Columns></asp:GridView><asp:SqlDataSource ID="SqlDataSource2"runat="server"ConnectionString="<%$ ConnectionStrings:Connection String %>"SelectCommand="SELECT Elect.stuID, Elect.courceID, Elect.teaID,<SelectParameters><asp:SessionParameter Name="stuID"SessionField="userID"/></SelectParameters></asp:SqlDataSource><td style="height: 21px"align="center"><asp:HyperLink ID="HyperLink1"runat="server"NavigateUrl="~/ModifyPwd.aspx"Font-Size="10pt">修改密码</asp:HyperLink><asp:HyperLink ID="HyperLink2"runat="server"Font-Size="10pt"NavigateUrl="javascript:window.close()">退出系统</asp:HyperLink></td></tr></table></div></form></body></html>图5-2 学生选课界面5.5教师用户提交成果界面代码及运行效果如下:<head runat="server"><title>提交成果</title></head><body leftmargin="0"rightmargin="0"topmargin="0"><form id="form1"runat="server"><div><table width="100%"bgcolor="#ccccff"><tr><td><uc1:top ID="Top1"runat="server"/></td></table><table id="table1"width="400"border="0"runat="server"align="center"><tr valign="top"><td align="left"><asp:Label ID="lblmessage"Font-Size="10pt"runat="server">课程名称: </asp:Label> <asp:TextBox runat="server"ID="cname"></asp:TextBox></td></tr><tr><td align="center"><asp:GridView ID="GridView1"runat="server"AutoGenerateColumns="False"BackColor="White" BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3"Font-Size="10pt" GridLines="Vertical"Width="100%"><FooterStyle BackColor="#CCCCCC"ForeColor="Black"/><Columns><asp:BoundField DataField="stuID"HeaderText="学号"/>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详细设计说明书1、引言:1、1编写目的:在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。
在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。
主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)在以下的各个阶段中,《用户操作手册》将与本阶段的工作紧密结合,努力作到让用户易懂易学。
《测试报告》和《维护报告》也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,一定要把功能强大、稳定可靠、便于维护的机票预定系统交到用户手中。
1、2项目背景:在本即时聊天工具项目的前一阶段,也就是需求分析阶段,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对不同用户所提出的不同功能,实现的各种效果做了调研工作,并在需求规格说明书中得到详尽得叙述及阐明。
本飞Q即时聊天系统项目主要由两部分形成:1、客户端;2、数据库服务器端;1、3文中特殊的定义和缩写:1.3.1定义SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。
SQL: 一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。
值互不相同。
外部主键:数据库表中与其他表主键关联的域。
ROLLBACK: 数据库的错误恢复机制。
1.3.2 缩写系统:若未特别指出,统指本机票预定系统。
SQL: Structured Query Language(结构化查询语言)。
ATM: Asynchronous Transfer Mode (异步传输模式)。
1、4参考资料:1.以下列出在概要设计过程中所使用到的有关资料:2.需求规格说明书飞Q软件开发小组3.概要设计说明书飞Q软件开发小组4.用户操作手册(初稿)飞Q软件开发小组5.软件工程及其应用周苏、王文等天津科学技术出版社6.软件工程张海藩清华大学出版社7. Computer Network A.S.Tanenbaun Prentice Hall8.网络上的资料文档所采用的标准是参照《软件工程导论》沈美明著的“计算机软件开发文档编写指南”。
2.总体设计:2、1需求概要:应广大用户的要求,要求做一个性能更高更人性化的即使聊天工具,我飞Q 软件设计小组努力为大家写一个更好的即时聊天工具。
飞Q2012聊天系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的飞Q2012聊天系统,实现添加好友,删除好友,相互聊天系统,为人们聊天提供准确、精细、迅速的信息。
根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server 结构,将飞Q2012聊天系统划分为两个子系统:客户端子系统,服务器端子系统。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要单明了,易于操作,服务器程序利于维护。
2、2 软件结构:各模块之间的关系已由概要设计给出下面介绍详细的设计1 登陆模块2 申请模块3 安全模块4 聊天模块服务器端:1、申请模块c2、登录模块3、添加好友模块4、删除好友模块5修改好友昵称模块6、查找用户模块7、安全模块7.1、设置密保模块7.2、判断是否设置密保模块7.3、判断密保答案是否正确模块7.4、修改密保模块7.5、修改密码模块7.6、找回密码8、移动好友模块9、组操作模块10、发送系统消息模块11、更新个人信息模块12、请求ipPort 模块13 、心跳模块13.1、用户心跳接收处理模块13.2、服务器定时检测超时模块13.3、服务器推拉检测在线模块14、添加可利用飞Q号3、程序描述:客户端总模块:1 登陆模块1 登录过程对在飞Q登录信息界面中输入的各项信息进行初步检验。
若发现错误,输入数据全部清空,以让用户重新输入一次。
若未发现错误,转入主界面。
其中的错误种类有:1.输入数据不匹配帐号数据库没有该帐号密码与对应账号的密码不匹配2 输入数据不能为空if (账号为空){请输入账号再登陆}else if (账号长度小于6或对于20){请输入正确的账号,账号可以位数字或Email地址。
}else if (密码为空){请输入密码后再登陆}else{通知服务器账号为:xxx 密码为:xxx的请求登陆}2申请过程对之前没有申请飞Q的用户,不能登录飞Q,而必须点击申请,成为飞Q大家庭的一员。
点击之后转入申请界面3 寻找忘记密码过程对之前申请飞Q的用户,如果忘记密码,请不要担心,点击界面上的“忘记密码”,点击之后转入寻找密码界面2申请模块对在飞Q申请信息界面中输入的各项信息进行账号申请。
若发现错误,输入数据全部清空,以让用户重新输入一次。
若未发现错误,转入账号申请成功界面。
if (昵称为空){请输入昵称}else if (密码格式错误(小于6或大于20)){密码必须6-20个字符!密码框清空,重新输入}else if (两次密码输入不匹配){两次密码输入不一致密码框清空,重新输入}else{获取注册信息点击新用户注册,向服务器传输注册信息}3 增删改查模块3.1 查找好友模块对在飞Q查找好友界面中选择查找类型(精确查找或条件查找),输入各项查找信息进行好友查找。
若发现错误,输入数据全部清空,以让用户重新输入一次。
若未发现错误,转入查找结果界面。
在查找结果界面中选择要添加的好友,双击,查看该好友的详细资料,点击添加,转入好友信息验证界面。
在好友信息界面,输入验证信息,完成好友的添加。
Search类if (查找联系人){if (精确查找){if (查询条件为空){请至少填一个查询条件}else{获取查找信息点击查找把查找信息传递给服务器}}else if (条件查找){获取查找信息点击查找把查找信息传递给服务器}Search_rasult类if(点击添加好友){if(添加好友选择的是自己){对不起,自己不能加自己为好友!重新选择}else{把选择的好友发送给服务器}}else if(关闭){放弃添加为好友}Addfriends类if (确定添加为好友){把选择的好友信息发送给服务器}else if (取消){放弃添加为好友}3.2 删除好友模块找到你要删除的对象所在的用户组,展开,找到该用户,右击,点击好友删除,然后刷新好友列表;3.3.3 修改个人资料模块点击自己头像,转入个人资料界面,更新你所需要的信息选项;确定更新点击确定,如果不想更新,点击取消即可;更改头像:点击更换头像,即可转入更换头像界面,界面中陈列了各种头像,点击你想要的头像,即可显示该头像的不同样式,一供你参考。
思考之后确实想更换,点击确定,立刻刷新所有界面,确保头像更换。
如果不想更换,点击取消即可。
3.4 好友移动模块找到你要移动的对象所在的用户组,展开,找到该用户,右击,点击移动,在弹出框中选择移动的组对象,向服务器发送相应的数据,然后刷新好友列表;3.5 组操作模块<1> 修改找到你要修改的用户组,右击点击重命名,向服务器发送该账号的修改组信息,刷新好友列表,即可看见修改成果.<2> 删除找到你要删除用户组,展开,右击,点击删除分组,向服务器发送该账号的删除组信息,然后刷新好友列表;如果,要删除的是默认分组“我的好友”,系统不提供删除权限。
<3> 添加在好友列表中右击,点击添加分组,输入分组名,点击确定,向服务器发送该账号的组信息,不想添加,点击取消。
4 安全模块对在飞Q安全界面中,分为“安全概述”,“常见欺诈”,“修改密码”,“修改密保”;<1> 安全概述安全概述概述了你当前飞Q的安全状况if (设置密保并且密码等级为良好以上){安全状况良好请继续保持良好的习惯可立即完成设置密码}else if (设置密保并且密码等级为中等以下){安全状况存在隐患请定期修改密码立即完成设置密码}else{安全状况危险请立刻设置密保问题立即完成设置密保}<2> 常见欺诈常见的集中欺诈方式:钓鱼网址,视频欺诈,中奖欺诈,冒充好友欺诈;<3> 修改密码修改密码之前请确保设置密保;如果没有设置密保问题,请先设置密保问题,以确保该账户的安全性。
如果设置了密保问题,请先输入原密保问题,核对用户身份。
密保正确才可以修改,如果错误,对不起,不能修改密码。
if(三个密保问题有空){对不起,密保问题回答不能为空!没填写的须不完整}else{向服务器获取对应密保问题的答案If(回答错误){提示:对不起,密保问题回答不能正确全部清空,重新输入}else{修改密码输入旧密码if (输入的旧密码正确){if (新密码为空){提示:密码不能为空}else if (两次密码输入不一致){提示:两次密码输入不一致}else if (两次密码输入一致并且不空){向服务器发送该账号的新密码}}else{提示:密码有误,请重新输入}}}<4> 修改密保如果没有设置密保问题,设置密保问题。
如果设置了密保问题,请先输入原密保问题,核对用户身份。
密保正确才可以修改,如果错误,对不起,不能修改密保。
if(没有设置密保){选择密保问题回答If(选择的密保问题重复){提示:选择的密保问题重复重新选择密保问题}Else i f(修改密保时验证密保问题为空){提示:修改密保时验证密保问题为空}Else{服务器发送该账号的新密保问题和新密保问题对应的答案}}else{已经设置设置密保向服务器获取对应密保问题的答案输入密保问题答案(用户)If(回答错误){提示:对不起,密保问题回答不能正确全部清空,重新输入}else{修改密保选择密保问题回答If(选择的密保问题重复){提示:选择的密保问题重复重新选择密保问题}Else i f(修改密保时验证密保问题为空){提示:修改密保时验证密保问题为空}Else{服务器发送该账号的新密保问题和新密保问题对应的答案}}}5 聊天模块所有的聊天窗口的即时聊天信息只要点击发送,聊天信息会发送到服务器中信息中转站中;在信息中转站中判断该发送的对象,再由服务器发送给对。
服务器模块:1、申请模块将用户发送过来的申请信息写入临时变量对象中并存入数据库中在数据库中建立如下信息在main数据库的各表中插入申请的号码在users 数据库中建立该帐号的档案,包括好友列表、添加好友验证表、历史记录表等等2、登录模块接收数据并存入loginpot中判断接收的密码和服务器中的密码是否相同,相同则返回登录成功,并发送一系列信息(见下),不相同则返回登录失败,3、添加好友模块1、发送添加好友请求:用户发送添加好友请求包,服务器解析出要添加的好友,然后从数据库中查找出该用户的添加好友权限jugde 然后进行一下判断:switch (judge){case 1://假如统一任何人加入在双方数据库中分别添加对方,并且向被添加的的用户发送的界面刷新命令break;case 2:对方需要验证信息,通知客户端break;case 0:对方不允许任何人加入,通知客户端break;}2、发送验证信息:用户发送验证信息包,服务器解析出数据,判断要发送验证信息的用户是否在线If(在线){在线的话,就把验证信息发送到该用户客户端上并显示}Else{不在线的话,就把验证信息存入要发送的用户的数据库中,等到该用户下次登录时候并会提示该用户有添加好友验证信息}3、发送同意以否信息用户发送同意与否信息包,服务器解析出数据,判断要发送同意与否信息的用户是否在线,判断同意与否信息是否If(同意){写入数据库相应的信息。