《回家的路》软件设计说明书Darkking贺杨杰.docx
《《回家的路》软件设计说明书Darkking贺杨杰.docx》由会员分享,可在线阅读,更多相关《《回家的路》软件设计说明书Darkking贺杨杰.docx(19页珍藏版)》请在冰豆网上搜索。
![《回家的路》软件设计说明书Darkking贺杨杰.docx](https://file1.bdocx.com/fileroot1/2023-6/2/11d3e341-5e60-4f47-85bd-66c39b7caf49/11d3e341-5e60-4f47-85bd-66c39b7caf491.gif)
《回家的路》软件设计说明书Darkking贺杨杰
《回家的路》设计说明书
第一章引言
1.1概述
《回家的路》系统设计说明书的目的在于从设计的角度明确《回家的路》的业务品种、功能范围,明确与业务主机/终端系统的接口和业务处理模式,使系统开发人员和产品管理人员明确产品功能,可以有针对性的进行系统开发、测试、验收等各方面的工作。
1.2背景
系统名称:
《回家的路》
组织:
涉众:
老大:
开发者:
Darkking
1.3定义
1.4参考资料
《《回家的路》用户调研及业务建模》。
《《回家的路》需求与分析说明书》。
1.5术语与缩写解释
2.系统架构
使用图和文字将系统的架构说明清楚,主要内容包括功能之间的关系。
系统架构图.
3.《回家的路》设计说明
3.1订票设计
3.1.1类图
3.1.2实现类设计
1.DemandCon类设计
1)属性说明
无。
2)方法设计
/**查询车票*/
publicvoidquery(){
//TODO:
implement
//1.请求查询车票
//2.查询车票
//3.接收查询结果
//4a.显示查询的车票
//4b.显示查询失败界面
}
/**预订车票*/
publicvoidbookingTickets(){
//TODO:
implement
//1.请求确认订票
//2.订票
//3.返回订票结果
//4.把订票单存入数据库
}
2.Tickets类设计
1)属性说明
departure:
出发地,destination:
目的地,trainnumber:
车次,ridingtime:
乘客时间,ticketprice:
票价。
2)方法设计
//验证查询信息
publicbooleanquery(Stringdeparture,Stringdestination,Stringyear,
Stringmonth,Stringday){
//TODO:
implement
//1.得到需要验证的信息
//2.验证信息
//3a.返回失败结果
//3b.返回成功结果
//验证车票
publicbooleanbookingTickets(Stringdeparture){
//TODO:
implement
//1.得到车票数据
//2.验证数据
//3.返回结果
3.MainView类设计
1)属性说明
EditText:
departure:
选择出发地。
destination:
选择目的地。
year、month和day:
乘车日期
Button:
query:
请求查询车票(跳转到查询界面)。
(meal:
请求改签。
refund:
请求退票)
2)方法设计
无。
4.TicketsView类设计
1)属性说明
TextView:
departuretv:
显示车票出发地。
destinationtv:
显示车票目的地。
yeartv、monthtv、daytv:
显示车票日期。
ListView:
listview:
用来显示查询到的车票信息,包括车次,出发地、目的地、时间和票价
2)方法设计
无。
5.PayView类设计
1)属性说明
EditText:
name:
输入乘客姓名。
id:
输入乘客身份证号
Button:
paynow:
立即支付(跳转到支付成功界面)。
2)方法设计
无。
6.PSview类设计
1)属性说明
Button:
back:
返回主界面。
2)方法设计
无。
3.1.3.顺序图
3.1.4界面设计
3.2改签设计
3.2.1类图
3.2.2实现类设计
1.DemandCon设计
1)属性说明
无。
2)方法设计
/**改签*/
publicbooleanqueryTOT(){
//1.请求改签
//2.改签
//3.删除将要改签的订票单
//4.显示当日的车票信息
//5.选择车票
//6.将订票单存入到数据库
//7.返回改签结果
}
1.Tickets设计
1)属性说明
departure:
出发地,destination:
目的地,trainnumber:
车次,ridingtime:
乘客时间,ticketprice:
票价。
2)方法设计
//验证改签信息
publicStringqueryTOT(){
//TODO:
implement
//1.得到当日其他车次的车票时间信息
//2.返回当日其他车次的车票时间信息
}
1.BTlist设计
1)属性说明
ListView:
abtickets:
显示订票单信息。
2)方法设计
无。
1.MSView设计
1)属性说明
Button:
Mback:
返回主界面。
2)方法设计
无。
3.2.3.顺序图
3.2.4界面设计
3.3退票设计
3.3.1类图
3.3.2实现类设计
1.channel设计
1)属性说明
2)方法设计
3.3.3.顺序图
3.3.4界面设计
4.数据库设计
publicclassticketsDBextendsSQLiteOpenHelper{
privatestaticfinalStringdb="my.db";
privatestaticfinalintvs=1;
publicticketsDB(Contextcontext){
super(context,db,null,vs);
//TODOAuto-generatedconstructorstub
}
@Override
publicvoidonCreate(SQLiteDatabasearg0){
//TODOAuto-generatedmethodstub
arg0.execSQL("createtableticketsdb("+
"idintegerprimarykeyautoincrement,"+
"departuretext,"+
"destinationtext,"+
"Trnumbertext,"+
"Ritimetext,"+
"Tipricetext"+
"idtext"+
"nametext);");
}
@Override
publicvoidonUpgrade(SQLiteDatabasearg0,intarg1,intarg2){
//TODOAuto-generatedmethodstub
if(arg1!
=arg2){
arg0.execSQL("droptableticketsdb");
onCreate(arg0);
}
}
publicvoidinsertdb(Stringdeparture,Stringdestination,StringTrnumber,
StringRitime,StringTiprice,Stringid,Stringname){
SQLiteDatabasesql=this.getWritableDatabase();
ContentValuescv=newContentValues();
cv.put("departure",departure);
cv.put("destination",destination);
cv.put("Trnumber",Trnumber);
cv.put("Ritime",Ritime);
cv.put("Tiprice",Tiprice);
cv.put("id",id);
cv.put("name",name);
sql.insert("ticketsdb","departure=?
destination=?
Trnumber=?
Ritime=?
Tiprice=?
id=?
name=?
",cv);
}
//查找数据
publicCursorsearch(){
SQLiteDatabasesql=this.getReadableDatabase();
Cursorc=sql.query("ticketsdb",null,null,null,null,null,null);
returnc;
}
}
4.1CDM图
4.2PDM图
4.3数据库脚本
/*==============================================================*/
/*DBMSname:
SybaseSQLAnywhere11*/
/*Createdon:
2015/8/2519:
17:
00*/
/*==============================================================*/
ifexists(select1fromsys.sysforeignkeywhererole='FK_关联_关联_PASSENGE')then
altertable关联
deleteforeignkeyFK_关联_关联_PASSENGE
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_关联_关联2_TICKETS')then
altertable关联
deleteforeignkeyFK_关联_关联2_TICKETS
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='passenger_PK'
andt.table_name='passenger'
)then
dropindexpassenger.passenger_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='passenger'
andtable_typein('BASE','GBLTEMP')
)then
droptablepassenger
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='tickets_PK'
andt.table_name='tickets'
)then
dropindextickets.tickets_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='tickets'
andtable_typein('BASE','GBLTEMP')
)then
droptabletickets
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='关联2_FK'
andt.table_name='关联'
)then
dropindex关联.关联2_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='关联_FK'
andt.table_name='关联'
)then
dropindex关联.关联_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='关联_PK'
andt.table_name='关联'
)then
dropindex关联.关联_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='关联'
andtable_typein('BASE','GBLTEMP')
)then
droptable关联
endif;
/*==============================================================*/
/*Table:
passenger*/
/*==============================================================*/
createtablepassenger
(
IDnumberchar(18)notnull,
namechar(12)null,
constraintPK_PASSENGERprimarykey(IDnumber)
);
/*==============================================================*/
/*Index:
passenger_PK*/
/*==============================================================*/
createuniqueindexpassenger_PKonpassenger(
IDnumberASC
);
/*==============================================================*/
/*Table:
tickets*/
/*==============================================================*/
createtabletickets
(
departurechar(10)null,
destinationchar(10)null,
trainnumberchar(10)notnull,
ridingtimechar(10)null,
ticketpricechar(10)null,
constraintPK_TICKETSprimarykey(trainnumber)
);
/*==============================================================*/
/*Index:
tickets_PK*/
/*==============================================================*/
createuniqueindextickets_PKontickets(
trainnumberASC
);
/*==============================================================*/
/*Table:
关联*/
/*==============================================================*/
createtable关联
(
IDnumberchar(18)notnull,
trainnumberchar(10)notnull,
constraintPK_关联primarykeyclustered(IDnumber,trainnumber)
);
/*==============================================================*/
/*Index:
关联_PK*/
/*==============================================================*/
createuniqueclusteredindex关联_PKon关联(
IDnumberASC,
trainnumberASC
);
/*==============================================================*/
/*Index:
关联_FK*/
/*==============================================================*/
createindex关联_FKon关联(
IDnumberASC
);
/*==============================================================*/
/*Index:
关联2_FK*/
/*==============================================================*/
createindex关联2_FKon关联(
trainnumberASC
);
altertable关联
addconstraintFK_关联_关联_PASSENGEforeignkey(IDnumber)
referencespassenger(IDnumber)
onupdaterestrict
ondeleterestrict;
altertable关联
addconstraintFK_关联_关联2_TICKETSforeignkey(trainnumber)
referencestickets(trainnumber)
onupdaterestrict
ondeleterestrict;
5.接口设计
5.1与自助设备接口
5.2与主机接口
5.3内部接口