专业综合实训报告Word格式文档下载.docx
《专业综合实训报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《专业综合实训报告Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
3)显示已完成订单与未完成订单
工作中遇到的问题及建议:
需求分析时,对登录/注册模块进行分析时,没有注意到对输入内容进行检验,该失误可能会导致不合规则的用户名及密码被添加到数据库,从而导致数据混乱
下周工作计划:
1.完成该项目运行的基础环境搭建
2.选用适当的架构,例:
WAMP(windows,Apache,MySQL,PHP)架构
3.相关工具选用
专业综合实训第2周周报
9月19日
9月25日
1.基础环境搭建:
本订票系统工作在WINDOWS系统下,选用WAMP架构进行环境搭建,使用软件WAMPServer完成环境搭建
1)服务器环境:
Windows
2)WEB服务器模式:
Apache
3)数据库:
Mysql
2.后台语言:
PHP5.5.12
1)选用框架THINKPHP
2)版本:
ThinkPHP3.2.3
3)ThinkPHP基于MVC(Model-View-Controller,模型-视图-控制器)模式,而且均支持多层(multi-Layer)设计。
3.前端:
HTML5/CSS3
4.脚本语言:
JAVASCRIPT
选用框架JQUERYv3.1.1
5.数据库类型:
MYSQL
管理工具:
SQLyogEnt
运行wamp时发生InternalServerError错误,解决建议:
1.打开wamp安装目录,搜一下httpd.conf这个文件,找到后打开
2.“LoadModulerewrite_modulemodules/mod_rewrite.so”,找到这一行,去掉前面的“#”
3.重启wamp
数据库的设计与建立
专业综合实训第3周周报
9月26日
10月2日
搭建订票系统后台
(一)
数据库部分
一.设计数据库
1.账户表:
account
字段:
username,password
约束:
PrimaryKey:
username
2.用户信息表:
userinfo
username,sex,birth,id_card,id_type,e_mail,mobile,
user_type,true_name
id_card,ForeignKey:
3.乘客表:
user_passenger
username,passenger_id,id_type,true_name
username,passenger_id,ForeignKey:
passenger_id
4.列车时刻表:
train_schedule
train_no,depart_time,arive_time,depart_place,arive_place,depart_date,ticket,price
train_no,depart_date
5.订单信息表:
order_info
order_no,order_date,train_no,username,depart_date,status,passenger_id
order_no,ForeignKey:
train_no,depart_date,username
6.触发器:
UpdateTicket删除订单时,添加相对应的票数到余票数量
7.函数:
count_passenger统计订单内订票人数
二.建立数据库
根据设计完成数据库的建立
常见错误:
:
Can'
tconnectto...一般意味着没有一个MySQL服务器运行在系统上或当试图连接mysqld服务器时,你正在使用一个错误的套接字文件或TCP/IP端口。
完成登陆注册模块
专业综合实训第4周周报
10月3日
10月9日
搭建订票系统后台
(二)
PHP部分
(一)
1.数据库的链接
完成Thinkphp的数据库配置文件的配置,并运行测试链接是否成功。
2.完成登陆/注册模块基本功能
1.周一至周二,完成登陆功能:
1)用户名,密码,验证码输入框
2)输入内容验证:
用户名/密码格式验证
3)验证码登陆验证
4)错误反馈机制:
验证错误则提示错误,并返回登陆界面
2.周二至周五,完成注册功能:
1)用户名,密码,确认密码,真是姓名,身份证号码输入框
用户名/密码/确认密码/身份证号码格式验证
3)错误反馈机:
验证错误则提示错误,并返回注册界面
ThinkPHP中自带的自动验证,能极大的简化登陆/注册验证与错误反馈机制的流程;
自动完成,关联模型则提高了对多表操作的效率。
完成用户信息模块
专业综合实训第5周周报
10月10日
10月16日
搭建订票系统后台(三)
PHP部分
(二)
完成个人信息界面的功能
1.完成用户欢迎界面,用户成功登陆或注册以后跳转的到的界面
2.完成用户信息显示界面,显示用户名,真实姓名,性别,出生日期,身份证号码等信息,并提供部分信息的修改功能
3.完成账户安全功能,提供登陆密码修改功能
4.完成未完成订单显示功能,显示用户未完成(未支付)的订单信息,提供取消订单服务
5.完成已完成订单显示功能,显示用户已完成(已支付)的订单信息
完成订单显示功能时,遇到了多条数据查询的配对问题,以及模板显示数据不匹配的问题,后来采用多维数组才解决问题。
完成车票预订模块
专业综合实训第6周周报
10月17日
10月23日
搭建订票系统后台(四)
PHP部分(三)
完成车票预订界面的功能
1.完成列车时刻表查询模块,根据用户输入的出发地,目的地显示相对应的车次
2.完成车票预订模块,用户选择车次与乘车乘客,点击提交订单生成订单。
3.完成添加乘客模块,用户能够添加需要乘车的其它乘客
4.完成订单验证与错误反馈,验证规则如下:
1)一张身份证一天只能订购一张同一车次的火车票
2)同一用户只能存在一张未完成订单
不符合验证规则的订单会被报错并返回订票界面
单张订单多乘客的数据库添加问题,有两种解决方案:
1.生成多条记录,一个乘客一条记录,但会导致数据重复度过高,浪费数据库存储空间
2.生成单条记录,多个乘客身份证号存储在一个字段,但会导致查询订单时数据复杂化,影响效率
最终采用方案二
网站主题风格设计
登陆注册模块界面美化
专业综合实训第7周周报
10月24日
10月30日
订票系统前端
(一)
1.网站主题风格设计,采用白色背景,蓝色为前景,使界面显得简洁
2.完成登陆/注册界面的外观
周一至周二,完成登陆界面:
1)用户名,密码,验证码输入框提示信息,当输入内容时自动消失
2)Ajax输入内容验证:
用户名/密码/验证码验证
3)Ajax错误反馈机制:
验证错误则直接在界面上提示错误,并阻止表单提交
周二至周五,完成注册功能:
1)用户名,密码,确认密码,真是姓名,身份证号码输入框提示信息,当输入内容时自动消失
Ajax提交优点:
1.减轻服务器的负担,按需取数据,最大程度的减少冗余请求,局部刷新页面
2.减少用户心理和实际的等待时间,带来更好的用户体验,基于xml标准化,并被广泛支持
3.不需安装插件等
4.进一步促进页面和数据的分离
完成车票查询界面外观
完成车票预订界面外观
专业综合实训第8周周报
10月31日
11月6日
订票系统前端
(二)
1.完成车票查询界面
1)车票查询部分,用户输入出发地,目的地来查询车次
2)车次显示部分,显示车次,发车时间,乘车用时,余票数量等信息,点击预定进入车票预定界面。
2.完成车票预订界面
1)点击乘客姓名,会显示乘客信息,并添加至将要提交的表单
2)添加乘客,点击添加乘客,会弹出乘客添加界面用于新乘客的添加
3)使用Ajax进行新乘客的添加与验证,如果用户姓名与身份证号码不符合规则,会弹出错误提示并阻止信息添加
点击乘客姓名显示乘客信息出现混乱和排序错误。
使用数组和eq(),index(),find()等方法实现乘客信息的正确显示
用户信息界面
专业综合实训第9周周报
11月7日
11月13日
订票系统前端(三)
完成用户信息界面
1.使用Thinkphp的LAYOUT与EXTEND功能,实现左边菜单栏,实现点击左边菜单条目,跳转至该页面
2.右边具体界面信息,显示具体的信息内容
1)修改用户信息,点击修改按钮,显示出可修改信息,完成信息需要输入密码验证
2)修改密码,点击修改密码弹出改密界面,使用Ajax进行数据验证,验证错误会阻止表单提交
3)取消订单,点击取消订单按钮会取消未完成的订单按钮
4)以上均使用AJAX进行数据的验证和提交
完成修改密码界面时,无法将修改后的新密码加入数据库中,经排查后发现,是因为表单提交的密码字段名与数据库内的密码字段名不同,导致create()方法自动验证后创立数据对象时将其过滤,故无法添加新密码。
解决方法:
使用字段名映射,将表单提交的字段名映射后与数据库字段名一致
测试完成的系统,检查bug
专业综合实训第10周周报
10月14日
11月20日
1.功能测试
1)检查被测系统的修改和增加功能是否正常实现;
2)检查控制流程图和模块关系图、模块内部关系图;
3)识别特殊情况,如出错处理流程,错误提示是否合理;
4)检查用户界面是否符合窗口程序的标准,界面操作是否简便直观。
2.性能测试
1)系统运行占用的资源,完成某一步骤需要的时间;
2)系统能承受的压力;
3)压力完成后数据库连接数立即恢复正常值
3.安全性测试
1)根据需求说明检查系统是否达到安全性要求,如同一用户登陆不同机器,同时操作对数据的破坏;
2)写到配置文件或数据库的密码是否经过加密
4.回归测试
1)验证Bug是否修正;
2)Bug修正后是否影响其它功能的正常运行。
排除了一些隐性BUG,修复了一些软件版本号过于老旧导致系统执行效率低下以及跨平台兼容问题。
无
专业综合实训总结报告
1.项目概述
项目的提出原因:
该项目的开发源于火车站的火车票订购仅仅靠手工操作,火车票订购一直困扰着我们、更是社会服务的一个难点。
项目优势分析:
1)该项目有利于节约人力资源。
2)节省火车站排队订票引发的一系列管理问题。
3)节省了乘客排队订票的时间。
4)避免了春节等长假有钱买不到票的情况。
项目运作的可行性:
项目的运作将让广大乘客受益!
项目的独特与创新分析:
1)改变了以往人工售票的方式。
2)改纸质火车票成身份证电子检票。
3)提高了火车站工作效率。
4)方便了乘客查询订票。
2.项目构思/设计
2.1系统功能要求设计
此系统实现如下系统功能:
1.功能:
使得乘客网上订票简单易上手、更有条理、订票流程一目了然。
2.服务:
经过用户名和密码登录系统,查询车次、查询订单、改签、退票、修改账户密码、票价查询等等
3.查询:
1)对车次的查询:
对车次的查询,能够按照发车车次进行查询。
车次信息还包括:
车号、发车日期、出发地、目的地、开出时刻、到达时间、票价、剩余票数、座位类型。
车次信息只允许查询不允许修改。
2)已订车票的查询:
对所定车票的查询,能够按照订单号查询。
还包含:
身份证号、车号、发车日期、订票日期、订购票数、总价。
车票信息能够允许修改。
4.界面:
设计界面清晰,无复杂操作,功能合理,而且进一步考虑系统在安全性,完整性,备份和恢复等方面的功能要求。
2.2具体功能设计
2.2.1数据库设计
账户表:
字段名
中文名
键别
是否为空
数据类型
长度
username
用户名
PK
NO
varchar
15
password(md5)
密码
表account
用户信息表:
FK
sex
性别
cahr
1
true_name
10
birth
出生日期
date
id_card
身份证号
char
18
id_type
证件类型
5
e_mail
邮箱
20
user_type
乘客类型
表user_info
乘客表:
PK,FK
passenger_id
表user_passenger
列车时刻表:
train_no
车次
depart_place
出发地
arive_place
目的地
depart_time
出发时间
time
arive_time
到达时间
depart_date
发车日期
ticket
票数
int
price
价格
表train_schedule
订单信息表:
order_no
订单号
order_date
订单时间
datatime
status
订单状态
身份证号码
tinytext
表order_infoe
触发器:
BEGIN
DECLAREiINT(5);
SETi=(count_passenger(old.passenger_id));
UPDATEtrain_schedule
SETticket=ticket+i
WHEREtrain_no=old.train_no
ANDdepart_date=old.depart_date;
END
函数:
CREATEDEFINER=`root`@`localhost`FUNCTION`count_passenger`(passenger_idtext)RETURNSint(5)
BEGIN
SETi=(LENGTH(REPLACE(passenger_id,'
'
'
))/18);
RETURNi;
2.2服务器设计
登陆模块
登陆控制器类:
LoginController
登陆界面方法:
login();
//输出登陆界面
模板:
Account/login.html
登陆验证方法:
check_login();
//用于登陆验证
退出登录方法:
login_out()//用于退出登录
登陆验证模型类:
LoginCheckModel//用于验证用户登录
链接表:
account
页面跳转:
至用户欢迎界面
注册模块
注册控制器类:
RegisterController
注册界面方法:
register();
//输出注册界面
Account/register.html
注册验证方法:
check_register();
//用于注册验证
注册验证模型类RegisterCheckModel//用于验证新用户注册
关联表:
user_info,user_passenger
订票页面
票据控制器类:
TicketController
车票查询方法:
ticket_inquire();
//查询车票.显示车次
Ticket/inquire.html
车票查询模型类:
InquireModel
车票预订方法:
ticket_order(),add_order();
//车票预订,输出预订界面
模板:
Ticket/order.html
车票预定模型类:
OrderInfoModel//验证用户订单信息
order_info
至支付页面
用户个人信息界面
用户信息控制器类UserInfoController
欢迎界面方法welcome();
//输出欢迎界面
模板My12306/welcome.html
用户信息查询界面方法:
userinfo();
//查询用户信息
My12306/userinfo.html
用户信息查询模型类:
UserinfoModel表user_info
订单查询方法orderinfo();
My12306/