资源描述
存档资料 成绩:
华东交通大学理工学院
课 程 设 计 报 告 书
所属课程名称: PHP程序设计
题 目: 故事网站
分 院: 电信分院
专业班级: 13级计科2 班
学 号:
学生姓名: 段刘涛
指引教师: 吴宇鹏
3 月 20 日
目 录
第一章 定义阶段 2
(1) 软件筹划 2
(2) 需求分析 2
第二章 开发阶段 5
(1)软件设计 5
(2) 程序编码 5
(3)软件测试 6
第三章 维护阶段 6
(1) 运营维护 6
第四章 课程设计心得 11
第五章 参照文献(资料) 12
第一章 定义阶段
(1) 软件筹划
软件筹划(问题定义及规划):重要拟定软件开发目的及可行性。
开发目的:故事网站。
可行性分析:不可行,功能需求太多无法达到想要成果。
(2) 需求分析
需求分析:在拟定软件开发可行状况下,对软件需要实现各个功能进行详细分析。需求分析是一种很重要阶段,这一阶段做好,将成为整个软件开发项目成功打下良好基本。
故事网站需求分析:
(1)主页系统功能简述
1.自定义模板
2.自定义栏目(随便自己在后台添加)
3.新闻文章板块,栏目可以自己随便添加
4.数据图片可以站外存储
5.后台广告添加
6.情谊链接模块
7.支持伪静态,静态,动态三种浏览方式
8.多顾客管理
(2)个人写书程序功能
1.实现了日记,分类,评论,管理
2.后台动态变更前台主题
3.支持页面静态化
4.支持数据库定期备份
5.可刊登私有文章
(3)会员系统
1.会员注册与会员管理系统
2.会员资料管理
3.会员修改登录密码
4.会员订单管理
5.故事收藏管理
6.在线充值
7.充值记录
(4)故事下载与支付
1.登录后可下载故事
2.故事下载分为免费下载、付费下载和会员下载三种
3.集成安全便利在线第三方接口支付系统:微信支付
4.会员在线订单管理系统与订单流程跟踪系统
(5)会员协助系统
1.下载指南:
(1)条款阐明
(2)流程阐明
(3)状态阐明
2.关于咱们
(1)关于咱们
(2)诚聘英才
(3)服务条款
(4)隐私声明
(5)联系咱们
3.支付方式
(1)网上支付
4.支付方式
(1)微信扫码支付
5.自主服务
(1)常用问题
(2)订单查询
(3)会员制度
(4)商城FAQ
(6)后台管理
1.会员管理
(1)查看会员资料
(2)设定会员级别:普通顾客、VIP会员
(3)管理员为会员手工充值
(4)顾客订单详情查看
(5)订单流程跟踪管理
(6)无效订单删除
2.故事管理
(1)添加故事
(2)管理故事
(3)故事无限级分类设立:
3.资金管理
(1)手动充值操作
(2)会员充值记录
4.资讯管理
(1)添加故事资讯
(2)管理故事资讯
(3)资讯分类管理
5.批量生成静态页面
批量生成静态页面功能:用于前台修改布局、模版文献等,重新更新静态页面。
(1)生成故事静态页
(2)生成资讯页
(3)生成协助中心阐明页
6.网站管理
(1)系统参数配备:配备网站名称、浏览量记录代码、联系方式等信息。
(2)管理员设立
(3)数据库管理
(4)区域管理
(5)网站日记管理
7.链接管理
(1)广告位管理:
采用广告组管理模式,可以在前台页面任何位置自定义任何尺寸大小图片广告。
(2)情谊链接管理
(3)单面协助文档管理
(4)焦点图广告管理
(5)在线支付方式
java故事系统特点:
1:采用模板技术,可以自定义模板,采用java自定义标签调用后台数据简朴以便。
2:采用java开源oscache为网站进行缓存,默认对首页和列表页进行缓存,可以在web.xml中进行配备。
3.采用后台添加采集规则,对故事进行采集,简朴以便,不用此外使用插件就可以采集故事内容。
使用环境:
系统:windows
应用环境:jdk1.6
web服务器:tomcat
数据库:mysql
第二章 开发阶段
(1)软件设计
软件设计:重要依照需求分析成果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计普通分为总体设计(概要设计)和详细设计。
(2) 程序编码
计程序编码:将软件设计成果转换成计算机可运营程序代码。在程序编写中必要要制定统一、符合原则编写规范,以保证程序可读性、易维护性,提高程序运营效率。
(3)软件测试
计软件测试:在软件设计完毕后要通过严格测试,以发现软件在整个设计过程中存在问题并加以纠正。在测试过程中需要建立详细测试筹划并严格按照测试筹划进行测试,以减少测试随意性。
第三章 维护阶段
(1) 运营维护
运营维护:运营维护是软件生命周期中持续时间最长阶段。
1.投票系统设计构思
(1)一方面,创立index.php投票首页用于显示投票对象。
(2)另一方面,创立表单解决页index.php_chuli.php。在该页中一方面连接数据库,然后运用$_SERVER[]全局数组中$_SERVER[‘REMOTE_ADDR’]参数来获取存储在数据库当中IP地址。
(3)然后,判断数据库中IP地址与否为空(即:if(mysql_num_rows($value)==0)),如果为空则不需要判断比较直接存入数据库中($res=mysql_query($insert,$conn))。否则将获取IP地址与数据库中IP地址进行比较,如果不同则该IP地址可以投票,
并将该IP地址添加到数据库中,否则将弹出警告框,提示该IP地址已经进行投票不能重复投票。
(4) 最后用TB框架作为后台来实现对网站网页信息增、删、改、查。
ID
添加投票对象
修改投票对象
顾客
一对一
管理员
投票次数一次
投票对象
删除投票对象
一对多 多对一
查询投票对象
投票系统设计E—R图
2.投票系统数据库建立
创立数据库create database ‘toupiao’;
创立顾客ID表 create table ‘yhId’(......);
id
user
sex
creatime
Key
email
123
张三
男
-1-12
PRI
234
李四
女
-1-12
NULL
......
创立投票对象表 create table ‘tpduixiang’(......)
投票对象
sex
Key
email
王五
男
PRI
赵六
女
3. 链接数据库
<?php
$conn=mysql_connect(”localhost”,”root”,”111111”);
if(!$conn)
{
Die(“连接失败”,myssql-error());
}
else
{echo “成功!”;}
mysql_select_db(“toupiao”,$conn);
mysql_query(“set names utf8”);
$ip=$_SERVER[‘REMOTE_ADDR’];
$insert=”insert into tb_vote(IP)values(‘$ip’))”;
$select=”select * from tb_vote where ip=’$ip’”;
if(isset($_POST[‘Submit’]) && $_POST[‘Submit’]==”提交投票”)
{
$value=mysql_qurey($select,$conn);
if(mysql_num_rows($value)==0)
{
$res=mysql_query($insert,$conn);
if($res)
{
echo“<script>alert(‘添加失败’);window.location.href=”index.php”;
</script>”;
}
else
{
echo“<script>alert(‘添加失败’);window.location.href=”index.php”;
</script>”;
}
}
}
?>
4. 后台登录重要代码
try{
$pdo=new pdo($dsn,$user,$password,array(PDO::MYSQL_ATTR_INIT_COMM
AND => 'set nsmes utf8')
);
}catch(Exception $e){
echo '错误'.$e->getmessage();
}
$name = $_POST['name'];
$pwd = $_POST['pwd'];
$sql = "select user_id from 表名 where username='$name' and password='$pwd'";
$stmt = $pdo->query($sql);
$info = $stmt->fetch(PDO::FETCH_ASSOC);
if($info){
echo "登录成功";
}else{
echo "登录失败";
}
6. 后台增删改查重要代码
<?php
if($_POST['tianjia']==”添加”){
$name=$_POST[name];
$sex=$_POST[sex];
$querys=”select * from tpduixiang”;
$results=mysql_query($querys);
if($name==$user)
{echo “$_POST[name]已经存在”;}
else
{
$query1=”insert into tpduixiang (user,sex) values(’$name’,'$sex’)”;
$result1=mysql_query($query1);
echo “添加成功”;
}
}
?>
<?php if($_POST['delete']==”删除”){
$name=$_POST[name];
$sex=$_POST[sex];
$key=$_POST[key];
$email=$_POST[email];
$query2=”delete from tpduixiang where user=’$name’”;
$result2=mysql_query($query2);
echo “删除成功”;
}
<?php
if($_POST['xiugai']==”修改”){
$name=$_POST[name];
$sex=$_POST[sex];
$querys=”select * from tpduixiang”;
$results=mysql_query($querys);
if($name==$user)
{echo “$_POST[name]已修改”;}
else
{
$query2=”delete from tpduixiang where user=’$name’”;
$result2=mysql_query($query2);
$query3=”insert into tpduixiang (user,sex) values(’$name’,'$sex’)”;
$result3=mysql_query($query1);
echo “修改成功”;
}
}
?>
<?php
if($_POST['chazhao']==”查找”){
$name1=$_POST[name];
$querys=”select * from tpduixiang”;
$results=mysql_query($querys);
if($name==$user)
{echo “$_POST[name]已查到”;}
else
{
$user=array_keys($name1,”name”);
$user=mysql_query($user);
echo “查找成功”;
}
}
?>
第四章 课程设计心得
在这次课程设计过程中,在这与代码为伴一种月里,我真收获了诸多。这次软件工程大型课程设计,既巩固了这学期学UML知识,又复习了关于数据库和java知识,更是学会了如何将所学知识运用到实际,真正应用到软件开发、网站开发中来。 这次课程设计尚有一种额外收获,就是初步学会了用JSP开发网页。虽然做出来网页不是特别美观,有些地方还存在某些瑕疵,但是从对网页编程一窍不通到能做出一种功能基本完善简朴毕业设计选题系统,一步步走来,其中收获不但仅是全新知识,对于自学能力、动手能力、合伙能力甚至接受挑战勇气方面影响,也都是巨大。对于我来说,此前只接触过用C语言在DOS界面下编程,用java编写简朴桌面应用程序,最多只是简朴连接数据库,因此一开始据说要编网页时候,实在是缺少信心,在编程过程中遇到某些棘手问题时候,甚至一度想要逃避,可最后还是坚持下来了。虽然这点小程序对于纯熟掌握网页编程语言人来说不算什么,但对于我来说,没有接触过东西,就是一种新挑战,任何语言学习,在入门时候都是最困难。当前对于网页编程已有了一种初步理解,对于有些概念理解还不是很精确,但是会努力在后来学习过程中慢慢理解,在后来编程过程中慢慢熟悉这些概念。
除了学习新语言收获外,在编程过程中对于功能实现、某些异常解决尚有界面设计,也有着很深感触。既然要做毕业设计选题系统,那么就要先考虑到顾客功能需求,分析不同顾客都是要通过网站做什么,每个顾客均有哪些权限;对于数据库操作来说,是要向数据库中插入数据,还是更新还是删除。并且要考虑到各个方面异常解决,例如顾客名、密码错误怎么办,输入信息错误怎么解决,成功更新数据库信息后要弹出什么提示框,要转入那个页面等等。对于异常解决,我做还不够好,由于时间精力有限,有某些异常状况没有考虑到,功能实现还不够完美,在后来编程过程中我会在力所能及范畴内尽量考虑周全,既然要做程序,那就要尽量做完善。对于界面设计,由于时间关系,没有采用流行Dreamweaver,感觉有点遗憾,网页背景图片都是自己手工合成,略显简陋了些,唯一值得欣慰就是实现了我始终想要布局效果,后来在美工方面也会努力提高自己能力。 此外对于实际应用中课程之间融合也是有了一种初步概念。一开始总觉得UML没有什么实际用处,但通过这次课程设计我发现,每门课程都是有它独特意义,UML中画出类图、顺序图、活动图等等都对自己编程过程有着极佳指引意义,这些图能使编程思路变得更加清晰。 综上所述,这一种月感受可谓五味杂陈,是三言两语难以说清,最明显还是感觉到自己知识局限性,对于某些东西还是缺少一种系统精确理解。java是门很有用语言,考试范畴之外东西尚有诸多诸多;JSP让我接触到了全新网页编程,也让我懂得,学无止境,想要全面进一步掌握一门语言,还是要付出很大努力。
第五章 参照文献(资料)
1. JSP程序设计
展开阅读全文