资源描述
Web程序设计实训报告
专业班级
学 号
姓 名
实 验 室
小组成员
成绩评定
老师签名
年月日
一. 实训日期
二. 实训地点
三. 实训目的
通过本综合实训学生全面掌握HTML语言,Javascript,VBScript脚本语言和ASP编程技术。能用ASP编写WEB理管系统。让掌握Web应用系统设计方法。掌握自己独立开发动态网站。
四. 实训任务
通过设计Web应用系统(图书信息管理系统),让学生全面掌HTML语言,JavaScript,VBScript脚本语言和ASP编程技术,编写WEB管理系统的数据库程序。具体要求如下:
1.掌握安装IIS设置WEB服务器
2. 掌握HTML语言、Javascript语言
3. 掌握ASP的编程基础, VBScript语言。
4. 掌握ASP程序设计的基本规则。
5. 掌握ASP的内建对象。
6. 掌握ASP的组件。
7. 掌握ASP和关系型数据库的链接及数据的读取、SQL语言。
8. 掌握ADO对象的属性、方法。
9. 掌握数据库编程(数据的查询、增加,修改,删除)
10. 掌握Web应用系统设计方法。
11. 掌握自己独立开发动态网站。
五、实训内容
实训题目:图书信息管理系统
一.选择该项目的主要原因:
1.对该项目有整体的思路想法。
2.该项目在网络上有较多的资源可以进行参考。
3.成员集体的选择。
二. 对该项目的认识或已有类似项目的优缺点:
1.实现图书馆对所藏图书的按类别、书名等多方面的查询,最大的方便读者和图书馆工作人员对所需图书的查询;
2.建立图书馆外借读者数据库,方便工作人员对读者进行有效管理;
3.建立图书馆工作人员数据库,限定每个工作人员对软件操作的权限,最大限度的保护数据库;
4.实现图书馆对新书入库,旧书注销的简单处理,并且建立书籍档案,方便进货;
5.实现图书馆管理系统;
6.检索速度慢、效率低
因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难,往往是馆中没有此书或已被别人借走。图书馆的规模越大,这个问题越突出。
7.借书、还书工作量大
借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往往是人工操作所难以胜任的。而且经常会出现这样那样的差错。
8.图书统计工作难、藏书更新不能及时完成
图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制,所以程序还有待改进。
三.数据库设计:
1. 数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,本节对数据库的设计进行专门阐述。
数据库是数据管理的最新技术。十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。由于数据库具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。因此不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。
数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。
设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。
针对图书管理系统,有4类核心对象:读者,借阅者,图书管理员,用户管理员。分别实现图书的流通,图书的管理,图书管理系统的管理。
高校图书管理系统
图书进馆
图书外借
图书归还
图书管理员
参数设置
借阅者
图书信息
借阅者
是否超期罚款
进馆信息
处理图书
图书相关信息息
修改信息
出馆信息
用户管理
借阅者
超级管理员
图书管理员权限
用户登录
用户名密码
四.项目分析和需求说明:
1.作为一个图书管理系统,应该给用户提供方便,简洁的界面应用,对图书借阅归还的流通中图书的详细记录进行归档,实现新进图书的数据录入,实现对所有购进图书的分类查询和分类统计,能够按书名、作者等分类查询现有图书的数量,记录借阅者的个人资料和所借图书的书名、书号数据等,借书时如果每次超过限量或累积超过限量,提示相应信息,并拒绝借阅等功能都是必不可少的。
根据调查得知,以前的图书馆采取手工方式对图书借阅信息进行管理,或者现有管理系统都不够完整。以前是将一般的借阅情况记录在借书证上或者将图书的数目和内容记录在文件中,这样图书馆的工作人员只能是对当时的借阅信息比较清楚,时间一长,再进行查询时,就得在众多的资料中翻阅、查找了,既费时,又费力。如果要对很长时间以前的图书信息进行更改就更加困难了。手工操作使得图书借阅信息的管理者工作混乱又复杂。
基于这些问题,有必要建立一个图书馆管理系统,使图书馆的日常管理工作规范化、系统化、程序化,避免管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地查询图书借还情况。
2.技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用PHP开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用MySQL,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。
鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在经济可行性上时可行的。
五.主要流程图和代码
1. 用户注册界面代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="shortcut icon" href="favicon.ico" />
<title>添加用户</title>
<link href="lms.css" rel="stylesheet" type="text/css">
<script>
<!--
function validateform()
{
if(document.userinfo.loginname.value == "")
{
window.alert ("请输入用户的登录名!")
return false;
}
if(document.userinfo.password.value == "")
{
window.alert ("密码不能为空!")
return false;
}
if(document.userinfo.realname.value == "")
{
window.alert ("请输入用户的真实姓名!")
return false;
}
if(document.userinfo.department.value == "")
{
window.alert ("请输入用户所在的学院!")
return false;
}
if(document.userinfo.phonenum.value == "")
{
window.alert ("请输入用户的电话号码!")
return false;
}
if(document.userinfo.mailbox.value == "")
{
window.alert ("请输入用户的邮箱地址!")
<tr>
<td width="55%" align="right" valign="middle"><strong>新用户注册</strong></td>
<td width="20%" align="center">登陆名:</td>
<td colspan="5">
<input type="text" name="loginname" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="20%" align="center">登录密码:</td>
<td colspan="5">
<input type="password" name="password" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="20%" align="center">真实姓名:</td>
<td colspan="5">
<input type="text" name="realname" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="20%" align="center">性别:</td>
<td colspan="5">
男
<input type="radio" name="sex" value="男" checked="checked">
女
<input type="radio" name="sex" value="女"> </td>
</tr>
<tr>
<td width="20%" align="center">班级:</td>
<td colspan="5">
<input type="text" name="class" size="30"> </td>
</tr>
<tr>
<td width="20%" align="center">学院:</td>
<td colspan="5">
<input type="text" name="department" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="20%" align="center">电话:</td>
<td colspan="5">
<input type="text" name="phonenum" size="30">
<font color="#8080C0">*[不超过11位的数字]</font> </td>
</tr>
<tr>
<td width="20%" align="center">邮箱:</td>
<td colspan="5">
<input type="text" name="mailbox" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="20%" align="center">出生年月:</td>
<td colspan="5">
<select id="tYEAR" name="year" size="1" onChange="createSelect()"></select>
<select id="tMON" name="month" size="1" onChange="createSelect();"></select>
<select id="tDAY" name="day" size="1" ></select>
<script type="text/javascript">createSelect(1);</script></td>
</tr>
<tr>
<td width="20%" align="center">注册类型:</td>
<td align="center" valign="middle">
<input type="radio" name="usertype" value="reader" checked="checked">
读者 </td>
<td align="center" valign="middle">
<input type="radio" name="usertype" value="bookadmin">
图书管理员 </td>
<td align="center" valign="middle">
<input type="radio" name="usertype" value="useradmin">
用户管理员 </td>
<td align="center" valign="middle">
<input type="radio" name="usertype" value="recordadmin">
借阅管理员 </td>
</tr>
<tr height="50">
<td colspan="6" align="center">
<input name="reset" type="reset" value="重 新 填 写">
<input name="submit" type="submit" value="提 交 信 息">
</td>
</tr>
2.新书信息添加代码:
<?php include "data/header.inc"?>
<tr>
<td width="34%" align="center">图 书 名 称:</td>
<td width="66%" colspan="5">
<input type="text" name="mainname" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="34%" align="center">图 书 别 名:</td>
<td width="66%" colspan="5">
<input type="text" name="byname" size="30">
</td>
</tr>
<tr>
<td width="34%" align="center">图 书 版 次:</td>
<td width="66%" colspan="5">
<input type="text" name="bookversion" size="30">
<font color="#8080C0">【格式:数字】</font></td>
</tr>
<tr>
<td width="34%" align="center">作 者 姓 名:</td>
<td width="66%" colspan="5">
<input type="text" name="author" size="30">
</td>
</tr>
<tr>
<td width="34%" align="center">出 版 发 行:</td>
<td width="66%" colspan="5">
<input type="text" name="press" size="30">
</td>
</tr>
<tr>
<td width="34%" align="center">图 书 类 型:</td>
<td width="66%" colspan="5">
<input type="text" name="type" size="30"> </td>
</tr>
<tr>
<td width="34%" align="center">图 书 价 格:</td>
<td width="66%" colspan="5">
<input type="text" name="bookprice" size="30"> </td>
</tr>
<tr>
<td width="34%" align="center">出 版 日 期:</td>
<td width="66%" colspan="5">
<select id="tYEAR" name="year" size="1" onChange="createSelect()"></select>
<select id="tMON" name="month" size="1" onChange="createSelect();"></select>
<select id="tDAY" name="day" size="1" ></select>
<script type="text/javascript">createSelect(1);</script></td>
</tr>
<tr>
<td width="34%" align="center">图 书 数 量:</td>
<td width="66%" colspan="5">
<input type="text" name="booknum" size="30">
<font color="#8080C0">*</font>
</td>
</tr>
<tr>
<td width="34%" align="center" valign="top">图 书 简 介:</td>
<td width="66%" colspan="5">
<textarea name="bookintro" cols="50" rows="10"></textarea>
</td>
</tr>
<tr>
<td colspan="6" align="center">
<input type="reset" value="重 新 填 写" name="reset">
<input type="submit" value="提 交 信 息" name="submit"> </td>
</tr>
3.图书检索功能的实现代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="shortcut icon" href="favicon.ico" />
<title>检索图书</title>
<link href="lms.css" rel="stylesheet" type="text/css">
<script>
<!--
function validateform()
{
if(document.booksearch.bookname.value == "" && document.booksearch.author.value == "" && document.booksearch.keyword.value == "")
{
window.alert ("请输入你要搜索的信息!")
return false;
}
}
<center>
<table border="1" width="800" cellspacing="0" cellpadding="0" bgcolor="#E4E4E4" bordercolorlight="#C2C2C2" bordercolordark="#FFFFFF">
<tr>
<td>
<img src="pics/booksearch.png" alt="检索图书" width="50" height="50" align="absmiddle">
<strong><font color="#66CCFF" size="10">检索图书</font></strong> </td>
</table>
</center>
<table border="0" width="800" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<form action="searchprocess.php" method="post" name="booksearch" onSubmit="return validateform( this.form )">
<table border="1" width="800" cellspacing="0" cellpadding="0" bgcolor="#E4E4E4" bordercolorlight="#C2C2C2" bordercolordark="#FFFFFF">
<tr height="30">
<td>书名:<input type="text" name="bookname" size="20"></td>
<td>作者:<input type="text" name="author" size="30"></td>
<td>关键字:<input type="text" name="keyword" size="30"></td>
<td><input type="submit" value=" 搜 索 "></td>
</tr>
4.图书借阅功能模块的实现代码:
?><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="shortcut icon" href="favicon.ico" />
<title>借阅管理</title>
<link href="lms.css" rel="stylesheet" type="text/css">
<script>
<!--
function validateform()
{
if(document.record.bookid.value == "")
{
window.alert ("请输入图书编号!")
return false;
}
if(document.record.readerid.value == "")
{
window.alert ("请输入读者编号!")
return false;
}
if(document.record.booknum.value == "")
{
window.alert ("请输入图书数量!")
return false;
}
</script>
</head>
<body>
<!--***************************header***************************-->
<?php include "data/header.inc"?>
<!--***************************main**************************-->
<center>
<table border="1" width="800" height="30" cellspacing="0" cellpadding="0" bgcolor="#E4E4E4" bordercolorlight="#C2C2C2" bordercolordark="#FFFFFF">
<tr>
<td width="234" align="center">
<img src="pics/position.png" alt="position" width="16" height="16" align="absmiddle"> 你的位置 </td>
<td><img src="pics/rightdir.png" alt="rightdir" width="16" height="16" align="absmiddle">[><a href="recordmanage.php">借阅管理</a><]</td>
<center>
<table border="1" width="800" cellspacing="0" cellpadding="0" bgcolor="#E4E4E4" bordercolorlight="#C2C2C2" bordercolordark="#FFFFFF">
<tr>
<td>
<img src="pics/recordmanage.png" alt="借阅管理" width="50" height="50" align="absmiddle">
<strong><font color="#66CCFF" size="10">借阅管理</font></strong> </td>
</table>
</center>
<table border="0" width="800" cellspacing="0" cellpadding="0">
<tr>
<table border="1" width="100%" bgcolor="#E4E4E4" cellpadding="0" cellspacing="0" bordercolorlight="#C0C0C0" bordercolordark="#FFFFFF">
<tr>
<td width="34%" align="center">图 书 编 号:</td>
<td width="66%" colspan="5">
<input type="text" name="bookid" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="34%" align="center">读 者 编 号:</td>
<td width="66%" colspan="5">
<input type="text" name="readerid" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="34%" align="center">图 书 数 量:</td>
<td width="66%" colspan="5">
<input type="text" name="booknum" size="30">
<font color="#8080C0">*</font> </td>
</tr>
<tr>
<td width="34%" align="center">操 作 类 型:</td>
<td width="33%" colspan="4">
<input type="radio" name="operitetype" value="borrow" checked="checked">
借书 </td>
<td width="33%"> <input type="radio" name="operitetype" value="return">
还书 </td>
</tr>
<tr height="50">
<td colspan="6" align="center">
<input type="reset" value="重 新 填 写" name="reset">
<input type="submit" value="提 交 信 息" name="submit"> </td>
</tr>
</table>
<?php include "data/footer.inc"?>
</form>
</td>
</tr>
</table>
</center>
</body>
</html>
建立数据库
create database if not exists lms;
use lms;
建立表news
create table news(
n_name varchar(50) primary key,
n_type ENUM('newsmsg','systemmsg'),
n_content varchar(5000),
n_date date
);
建立表books
create table book(
b_id char(10) primary key,
b_mname varchar(20) not null,
b_bname varchar(20),
b_version smallint,
b_author varchar(20),
b_press varchar(20),
b_type char(10),
b_pdate date,
b_indate date,
b_num smallint UNSIGNED not null,
b_intro varchar(500)
);
建立表user
create table user(
u_id char(20) primary key,
u_name char(10),
sex ENUM('男','女'),
u_class varchar(20),
u_dept varchar(20),
u_tel numeric(11) UNSIGNED,
u_mailbox varchar(50) not null,
u_birthday date,
u_login char(10) not null,
u_password char(10) not null,
u_type ENUM('reader','ueradmin','bookadmin','recordadmin'),
u_picurl varchar(50)
);
建立表record
create table record(
u_id char(10),
b_id char(10),
borrow_date date not null,
borrow_num smallint UNSIGNED not null,
primary key(u_id,b_id),
foreign key (u_id) references user(u_id),
foreign key (b_id) references book(b_id)
);
建立表pulishment
create table pulishment(
p_name char(10) primary key,
p_money float not null);
主要流程图:图书借阅
借阅者
图书归还
图书续借
图书管理员
管理图书信息
图书信息
管理用户信息
用户信息
获取用户信息
根据读者信息获取借阅图书信息
图书借阅信息
图书续借
图书借阅
归还图书
图书归还信息
六.总结:
1遇到的难点:在测试系统登录模块时页面跳转有一点问题,数据库里有时候中文读取不出,数据处理有问题。
2.不足和改进之处:页面美化不够好,颜色单一并且较为老式,在软件数据方面录入图书步骤过于繁杂,我认为可改编读取程序进行扫码录入。
2.已完功能:实现了图书馆对新书入库,旧书注销的简单处理,并且建立书籍档案,方便进货;
实现了图书馆对所藏图书的按类别、书名等多方面的查询,最大的方便读者和图书馆工作人员对所需图书的查询;
建立了图书馆外借读者数据库,方便了工作人员对读者进行有效管理;
建立了图书馆工作人员数据库,限定了每个工作人员对软件操作的权限,最大限度的保护了数据库;
4.收获:在整个系统开发的过程中,我学到了很大新的知识,前学过的许多知识点在运用过程中也有了更为深入的分析,这是我大学期间做过的规模最大的项目,在这个过程中也体会到了如何将书本知识转化到实际的应用中。
在整个系统的需求分析过程中对开发前期工作地流程步骤有了深入的掌握;在开发过程我进一步学习了PHP、MySQL的基础语法,和一些网页设计美工方面的知识,以便使系统有更好的美观性,在编写过程中也规范了许多编码习惯,数据库设计阶段我尝试了几个不同版本的数据库,它们在配置操作上各有不同,又各有优缺点,在它们的一些基本操作上也有了进一步提高。在配置开发工具过程中对MySQL有了清晰地认识,在使用SQLyog作用也有了相当的了解, 对开发PHP程序的步骤框架页有了总体性认识。
展开阅读全文