电影信息管理系统理系统教学教材.docx
《电影信息管理系统理系统教学教材.docx》由会员分享,可在线阅读,更多相关《电影信息管理系统理系统教学教材.docx(21页珍藏版)》请在冰点文库上搜索。
电影信息管理系统理系统教学教材
电影信息管理系统理
RFID原理与应用
课程设计
题目:
电影信息管理理系统的实现
院(系):
信息工程学院
专业年级:
物联网工程2014级
姓名:
jzicjzc
学号:
csjkkcskl
扌旨导教师:
csjklks
2016年6月28日
PINGDINGSHANUNIVERSITY1
1绪论1
1.1课题的背景及意义1
近年来随着电影行业的快速发展,需要处理的电影信息日趋加大。
为了提高电影记录管理的管理水平,优化资源,尽可能的降低管理成本。
电影记录管理系统是从电影的现状出发,根据电影记录管理的新要求进行开发设计,它解决了电影记录管理数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题,
帮助电影管理人员有效管理电影记录信息。
1
1.1.1系统功能设计1
1.1.2系统设计2
2相关技术及工具介绍3
2.1系统功能设计3
2.2用户信息管理功能的实现4
2.2.1界面及数据库设计4
2.2.2RFID串口设计6
2.2.3日志查看功能7
附录9
参考文献26
致谢27
1绪论
在现实程序开发中,我们开发的最多,最广泛的还是一些各类型的数据管理系统,当然不同的系统有功能上的差异,数据库也不一样,但最主要,最常见的功能无外乎对数据的基本操作(增删改查)。
该简易电影记录管理系统能够实现对电影记录的各项操作。
1.1课题的背景及意义
近年来随着电影行业的快速发展,需要处理的电影信息日趋加大。
为了提高电影记录管理的管理水平,优化资源,尽可能的降低管理成本。
电影记录管理系统是从电影的现状出发,根据电影记录管理的新要求进行开发设计,它解决了电影记录管理数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题,帮助电影管理人员有效管理电影记录信息。
1.1.1系统功能设计
1:
用户登陆实现登陆界面跳转主页面。
2:
增删查改实现电影信息的增删查改。
3:
连接RFID数据实现将RFID标签数据读入系统。
4:
密码修改实现用户密码修改功能,完善管理安全。
5:
日志查看用于记录和查看用户的系统登录和退出历史。
1.1.2系统设计
该电影信息管理系统所采用的技术及开发工具,涉及页面开发技术、采用的架构、数据库管理系统、web服务器及开发工具、us、IS015693读写器等。
2相关技术及工具介绍
该电影信息管理系统所采用的技术及开发工具,涉及页面开发技术、采用的架构、数据库管理系统、web服务器及开发工具等。
2.1系统功能设计
根据需求分析确定该系统划分为以下几个功能:
(1)电影记录管理系统的登录模块。
1:
创建登陆界面,然后再添加一个登录成功后的跳转窗体name:
FrmManager.cs
2:
创建一个数据库用于存取用户的账户和密码信息,建数据表。
3:
设置列名(字段名)数据类型以及是否允许该字段为空
列名分别为用户ID:
Mid用户名:
MUserName用
户密码:
MUserPwd
4:
设置
MId的主键,是否自我增长标识(I
dentity
Specif
icat
on)也设置一下.将Identity
Specif
icat
on中的IsIdentity设置为
Yes(目的是让
每插入1行新数据ID数自动+1).设好了以后保存数据表,表名为MovieAccount..数据表建完以后,我们需要手动插入用户登录系统所需要的用户名和密码
5:
设置登陆界面
Mid
MU
MLlserP帕
1
admin1
userl
1
ML
2.2用户信息管理功能的实现
2.2.1界面及数据库设计
用户信息管理功能主要实现系统用户对自己注册信息的增删查改。
(1)新增数据表
我们在之前的数据库Movie中创建一个Record数据表,用于存储我们需要操作的电影记录数据,这里Id需要设置为自动增长,手动插入一些数据.数据库创建完成后,开始实施系统界面•
Id
Me-/eJJirector
Date_RjeieaGe(l
►
n
StarWar
GeoroeLuca£…
1977-12*25ODWiijO
2
Ftrr&stXaUmp
RooertZemedtis...
i射拿9・2200;加;00
3
Avatar
JamesFraudsCanicr...
'010-1-400:
00:
00
耳
RMSUtamc
JanesFrflrcisCamer...
1M7-12-19aaiOaiOD
磁l
ALU
1flHJ
(2)界面设计
窗体name:
FrmManager
文本框电影名称name:
txtMovie
导演name:
txtDirector
发型日期name:
txtDate
按钮查看记录name:
btnView
删除记录name:
btnDelete添加记录name:
btnAdd保存记录name:
btnSave
2.2.2RFID串口设计
该功能主要是刷进电影数据,通过读卡器对电影光盘之类中的RFID标签读取物流信息。
RFID系统在实际应用中,电子标签附着在待识别物体的表面,电子标签中保存有约定格式的电子数据。
读卡器可无接触地读取并识别电子标签中所保存的电子数据,从而达到自动识别物体的目的。
读卡器通过天线发送出一定频率的射频信号,当标签进入磁场时产生感应电流从而获得能量,发送出自身编码等信息,被读取器读取并解码后送至电脑主机进行相关处理。
2.2.3日志查看功能
1:
在登录窗体FrmLogin.cs定义3个全局变量,用于获取
登录的用户名,登录情况(登录还是退出)以及相应的时间;然后在日志查看窗体调用该全局变量并且通过使用SQ插入语句将其保存到SQLServer中,然后在访问日志查看窗体的时候,通过窗体自动加载插入数据和查看数据的方法
2:
定义3个全局变量:
1:
登录成功和退出的用户Uid(publicstaticstring
Uid;)--在第三章密码修改功能的时候已经定义了
2:
登录成功和退出的时间Time(publicstatic
DateTimeTime;)
3:
登录情况Situation-2种包括"登录"和"退出'(publicstaticstringSituation;)
1登陆界面的核心代码:
privatevoidbtnLogin_Click(objectsender.
EventArgse){
using(SqlConnectionconn=new
SqlConnection(connStr))
{
s
tr
ing
sql="select
MUserPwd
from
MovieAccount
wh
er
e
MUse
rName='"+
txtName.Text
+
II1
II.
5
u
si
ng(
SqlCommandcmd
=new
SqlCommand(sql,conn))
{
conn.Open();
usi
ng
(Sql
DataReaders
dr=
cmd.
ExecuteReader()
{
if
(sd
r.Read())
{
st
ringpwd=
sdr.
GetString(0).Trim()
5
if
(pwd==txt
Pwd.Text)
{
MessageBox
.Show("系
统登录成功,正在跳转主页面..
.")
5
FrmManager
manager
new
FrmManager();
manager.Show();
码错误!
请再次输入!
");
this.Hide();
}
else
{
MessageBox.Show(”密
RFID串口设计核心代码:
1:
读取数据
privatevoidbtnRead_Click(objectsender.EventArgse)
{
//reader.OpenSerialPort(”COM1");
//System.Threading.Thread.Sleep(500);
Byte[]data=newByte[8];
intvalue=reader.GetOne(refdata);
//if(value!
=0)
//intvalue=0x01;
//Inventory(data,0x27,reftagCount);
if(value!
=0)
{
this.lblState.Text="读取状态:
失败,没有得到任何有效数据。
”;
this.txtRFIDData.Text="”;
return;
}
this.txtRFIDData.Text=
String.Format("{0:
X2}{1:
X2}{2:
X2}{3:
X2}{4:
X2}{5:
X2}{6:
X2}{7:
X2}",data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
//Stringstr=
String.Format("{0:
X2}{1:
X2}{2:
X2}{3:
X2}{4:
X2}{5:
X2}{6:
X2}{7:
X2}",data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
this.lblState.Text="读取状态:
成功!
”;
//reader.CloseSerialPort();
}
2:
设置串口参数
Byte
Ope
Seria
lPort(St
ngpo
Name)
SerialPor
设置串
口参数
po
Name)
Po
rt
Na
Ba
ud
Ra
Da
ta
Bi
St
op
Bi
Pa
ri
ty
t.
r
me
t.
t
r
e
t.
t
r
s
t.
t
r
s
t.
r
Pa
po
t.ReadTimeo
po
t.Wr
eTi
me
t.
Ope
t.
sOp
po
8;
St
ut
rtName;
5200;
opBits.One
ty.None;
500;
500;
Al
Do
/打开成功
SerialPortEr
II打开失败
Ser
Err
II打开失败
电影记录管理系统界面的核心代码:
1
II添加数据
:
增-添加记录(添加一条新记录)
privatevoidbtnAdd_Click(objectsender.
EventArgse)
{
intn=0;
stringsql="insertintoRecord(Movie_Name,Movie_Directo
r,Date_Released)values
(@Movie_Name,@Movie_Director,@Date_Released)";
if(txtMovie.Text.Trim()=="”||
txtDirector.Text.Trim()==""||txtDate.Text.Trim()
MessageBox.Show("插入数据不能为空,请按要
求插入数据!
”);
return;
SqlParameter[]param={newSqlParameter("@Movie_Name",txtMovie.Text),
new
SqlParameter("@Movie_Director",txtDirector.Text),
new
SqlParameter("@Date_Released",Convert.ToDateTime(txtDate.Text))
SqlConnection
SqlConnection(connStr);
SqlCommandcmd
conn);
};
conn
new
new
SqlCommand(sql
conn.Open();
cmd.Parameters.AddRange(param);
n=cmd.ExecuteNonQuery();
if(n==0)
{
MessageBox.Show("添加失败!
");
return;
}
elseif(n>0)
{
MessageBox.Show(”添加成功!
");
}
conn.Close();
//调用refresh方法,在添加完成数据后自动刷新
显示新数据
Refresh(true);
}
2:
删-删除记录(删除已有记录)
//删除数据
privatevoidbtnDelete_Click(objectsender,
EventArgse)
{
//使用sql删除语句
stringsql="deletefromRecordwhere1=1";
//女口果datagridview的当前行被选中
if(dgvManager.CurrentRow.Selected)
{
//将sql语句deletefromRecordwhere1=1+
andId=+当前选中行的第0个单元格的号码(即Id号)|
sql=sql+"andId="+
Convert.Tolnt32(dgvManager.CurrentRow.Cells[0].Value
.ToString());
}
intn=0;
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(sql,conn);
conn.Open();
n=cmd.ExecuteNonQuery();
if(n==0)
{
MessageBox.Show(”不存在的ID!
");
return;
}
elseif(n>0)
{
MessageBox.Show("删除成功!
");
}
conn.Close();
//删除完后刷新一下当前数据
Refresh();
}
3改-保存记录(修改一条记录)//将鼠标点击的
datagridview上的行内容传递给文本框
privatevoiddgvManager_CellContentClick(object
sender,DataGridViewCellEventArgse)
{
//获取字段名为Movie_Name的单元格内容
txtMovie.Text=
dgvManager.Rows[e.RowIndex].Cells["Movie_Name"].Value.ToString();
//同理获取当前点击行里的name属性为Movie_Director
的单元格获取并将其传至txtDirector文本框
txtDirector.Text=
dgvManager.Rows[e.RowIndex].Cells["Movie_Director"].Vaiue.ToString();
//new—个时间对象目的是将电影发行时间的小时,分和秒给去
掉保留到最小单位为日
DateTimedatetoDay=newDateTime().Date;
//将当前行的日期单元格的值赋给时间对象datetoDay
datetoDay
].Cells
Convert.ToDateTime(dgvManager.Rows[e.RowIndex
["Date_Released"]
.Vaiue);
//通过ToShortDateString()方法将日期后的00:
00:
00给剔除掉并赋给txtDate文本框
txtDate.Text=datetoDay.ToShortDateString();
}
4保存记录
//更新数据操作
privatevoidbtnSave_Click(objectsender,
EventArgse)
{
//在对数据进行修改之前对文本框的内容做一下检查,如果为空则提示重新输入
if(txtMovie.Text.Trim()=="”||
txtDirector.Text.Trim()==""||
txtDate.Text.Trim()=="”)
{
MessageBox.Show("文本框的输入不能为空!
");|
return;
}
//使用SQLupdate更新语句
//获取文本框中输入的内容,通过Id进行更新(Id为当前鼠标点击行的Id)|
stringsqlUpdate="updateRecordset
Movie_Name='"+txtMovie.Text+"',Movie_Director
—•n
+txtDirector.Text+"',Date_Released='"+
txtDate.Text+
"'whereId='"+
dgvManager.CurrentRow.Cells[0].Value.ToString()+
IIIII・
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmdUpdate=newSqlCommand(sqlUpdate,conn);
conn.Open();
intn=cmdUpdate.ExecuteNonQuery();
if(n==0)
{
//提示更新失败
MessageBox.Show(”更新失败!
");
return;//并且返回
}
elseif(n>0)
{
//否则更新成功
MessageBox.Show("恭喜你!
更新成功!
");
}
//执行完数据更新操作后需要关闭数据库节省资源
conn.Close();
//更新完以后调用刷新方法,将更新后的数据显示在
datagridview上面
Refresh();
}
5:
查-查看记录(查看当前所有记录)
//查看并刷新所有数据
privatevoidbtnView_Click(objectsender,
EventArgse)
{
stringsql="select
Id,Movie_Name,Movie_Director,Date_Releasedfrom
Record";
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlC