聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 电影信息管理系统理系统

电影信息管理系统理系统

时间:2020-06-22 00:41:15    下载该word文档

PINGDINGSHAN UNIVERSITY

RFID原理与应用

课程设计

: 电影信息管理理系统的实现

(): 信息工程学院

专业年级: 物联网工程2014

: jjzjcjzc

: csjkkcskl

指导教师: csjklks

2016628



1 绪论

在现实程序开发中, 我们开发的最多,最广泛的还是一些各类型的数据管理系统,当然不同的系统有功能上的差异,数据库也不一样,但最主要,最常见的功能无外乎对数据的基本操作(增删改查)该简易电影记录管理系统能够实现对电影记录的各项操作。

1.1 课题的背景及意义

近年来随着电影行业的快速发展,需要处理的电影信息日趋加大。为了提高电影记录管理的管理水平,优化资源,尽可能的降低管理成本。电影记录管理系统是从电影的现状出发,根据电影记录管理的新要求进行开发设计,它解决了电影记录管理数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题,帮助电影管理人员有效管理电影记录信息

1.1.1 系统功能设计

1:用户登陆 实现登陆界面 跳转主页面。

2:增删查改 实现电影信息的增删查改。

3:连接RFID数据 实现将RFID标签数据读入系统。

4:密码修改 实现用户密码修改功能,完善管理安全。

5:日志查看 用于记录和查看用户的系统登录和退出历史



1.1.2 系统设计

该电影信息管理系统所采用的技术及开发工具,涉及页面开发技术、采用的架构、数据库管理系统、web服务器及开发工具、usIS015693读写器等



2 相关技术及工具介绍

该电影信息管理系统所采用的技术及开发工具,涉及页面开发技术、采用的架构、数据库管理系统、web服务器及开发工具等。

2.1 系统功能设计

根据需求分析确定该系统划分为以下几个功能:

(1)电影记录管理系统的登录模块

1:创建登陆界面,然后再添加一个登录成功后 的跳转窗体 name: FrmManager.cs

2创建一个数据库用于存取用户的账户和密码信息建数据表

3设置 列名(字段名) 数据类型 以及 是否允许该字段为空

列名分别为  用户ID: MId   用户名: MUserName  用户密码: MUserPwd

4设置MId 的主键是否自我增长标识(Identity Specification)也设置一下. Identity Specification 中的 Is Identity 设置为 Yes(目的是让每插入1行新数据 ID数自动+1). 设好了以后保存数据表,表名为MovieAccount. .数据表建完以后,我们需要手动插入用户登录系统所需要的用户名和密码

5:设置登陆界面



2.2 用户信息管理功能的实现

2.2.1 界面及数据库设计

用户信息管理功能主要实现系统用户对自己注册信息的删查改。

(1) 新增数据表

我们在之前的数据库Movie中创建一个Record数据表,用于存储我们需要操作的电影记录数据,这里Id需要设置为自动增长手动插入一些数据.数据库创建完成后,开始实施系统界面.



(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插入语句将其保存到SQL Server,然后在访问日志查看窗体的时候,通过窗体自动加载插入数据和查看数据的方法

2:定义3个全局变量:

1:登录成功和退出的用户Uid (public static string Uid;) --在第三章密码修改功能的时候已经定义了

2:登录成功和退出的时间Time  (public static DateTime Time;)



3:登录情况Situation-2种包括"登录""退出"  (public static stringSituation;)



1 登陆界面的核心代码:

private void btnLogin_Click(object sender, EventArgs e) {

using (SqlConnection conn = new SqlConnection(connStr))

{

string sql = "select MUserPwd from MovieAccount where MUserName ='" + txtName.Text + "'";

using (SqlCommand cmd = new SqlCommand(sql, conn))

{

conn.Open();

using (SqlDataReader sdr = cmd.ExecuteReader()

{

if (sdr.Read())

{

string pwd = sdr.GetString(0).Trim();

if (pwd == txtPwd.Text)

{

MessageBox.Show("系统登录成功,正在跳转主页面...");

FrmManager manager = new FrmManager();

manager.Show();

this.Hide();

}

else

{

MessageBox.Show("密码错误!请再次输入!");



RFID串口设计核心代码:

1读取数据

private void btnRead_Click(object sender, EventArgs e)

{

//reader.OpenSerialPort("COM1");

//System.Threading.Thread.Sleep(500);

Byte[] data = new Byte[8];

int value = reader.GetOne(ref data);

//if(value != 0)

//int value = 0x01;

// Inventory(data, 0x27, ref tagCount);

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]);

//String str = 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:设置串口参数



public Byte OpenSerialPort(String portName)

{

try

{

//设置串口参数

//serialport = new SerialPort(portName);

serialport.PortName = portName;

serialport.BaudRate = 115200;

serialport.DataBits = 8;

serialport.StopBits = StopBits.One;

serialport.Parity = Parity.None;

//serialport.ReadTimeout = 500;

//serialport.WriteTimeout = 500;

serialport.Open();

if (!serialport.IsOpen)

{

return AllDone; //打开成功

}

else

{

return SerialPortErr; //打开失败

}

}

catch

{

return SerialPortErr; //打开失败

}

}

电影记录管理系统界面的核心代码:

1-添加记录 (添加一条新记录) //添加数据



private void btnAdd_Click(object sender, EventArgs e)

{

int n = 0;

stringsql="insertintoRecord(Movie_Name,Movie_Director,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 conn = new SqlConnection(connStr);

SqlCommand cmd = new SqlCommand(sql, conn);

conn.Open();

cmd.Parameters.AddRange(param);

n = cmd.ExecuteNonQuery();

if (n == 0)

{

MessageBox.Show("添加失败!");

return;



}

else if (n > 0)

{

MessageBox.Show("添加成功!");

}

conn.Close();

//调用refresh方法,在添加完成数据后 自动刷新 显示新数据

Refresh(true);

}

2-删除记录 (删除已有记录)

//删除数据

private void btnDelete_Click(object sender, EventArgs e)

{

//使用sql删除语句

string sql = "delete from Record where 1=1";

//如果datagridview的当前行被选中

if (dgvManager.CurrentRow.Selected)

{

//sql语句 delete from Record where 1=1 + and Id = + 当前选中行的第0个单元格的号码(Id)

sql = sql + "and Id=" + Convert.ToInt32(dgvManager.CurrentRow.Cells[0].Value.ToString());

}

int n = 0;

SqlConnection conn = new SqlConnection(connStr);

SqlCommand cmd = new SqlCommand(sql, conn);

conn.Open();

n = cmd.ExecuteNonQuery();

if (n == 0)

{



MessageBox.Show("不存在的ID!");

return;

}

else if (n > 0)

{

MessageBox.Show("删除成功!");

}

conn.Close();

//删除完后 刷新一下当前数据

Refresh();

}

3 -保存记录 (修改一条记录)//将鼠标点击的datagridview 上的行内容 传递给 文本框

private void dgvManager_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

//获取字段名为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"].Value.ToString();

//new一个时间对象 目的是将电影发行时间的小时,分和秒给去掉 保留到最小单位为日

DateTime datetoDay = new DateTime().Date;

//将当前行的日期单元格的值 赋给 时间对象datetoDay

datetoDay = Convert.ToDateTime(dgvManager.Rows[e.RowIndex].Cells["Date_Released"]

.Value);

//通过ToShortDateString()方法 将日期后的00:00:00 给剔除掉 并赋给 txtDate文本框

txtDate.Text = datetoDay.ToShortDateString();

}

4 保存记录

//更新数据操作

private void btnSave_Click(object sender, EventArgs e)

{

//在对数据进行修改之前 对文本框的内容做一下检, 如果为空 提示重新输入

if (txtMovie.Text.Trim() == "" || txtDirector.Text.Trim() == "" || txtDate.Text.Trim() == "")

{

MessageBox.Show("文本框的输入不能为空!");

return;

}

//使用SQL update 更新语句

//获取文本框中输入的内容, 通过Id进行更新(Id为当前鼠标点击行的Id)

string sqlUpdate = "update Record set Movie_Name ='" + txtMovie.Text + "',Movie_Director ='"

+ txtDirector.Text + "',Date_Released='" + txtDate.Text +

"'where Id='" + dgvManager.CurrentRow.Cells[0].Value.ToString() + "'";

SqlConnection conn = new SqlConnection(connStr);

SqlCommand cmdUpdate = new SqlCommand(sqlUpdate, conn);

conn.Open();

int n = cmdUpdate.ExecuteNonQuery();

if (n == 0)



{

//提示更新失败

MessageBox.Show("更新失败!");

return;// 并且返回

}

else if (n > 0)

{

//否则更新成功

MessageBox.Show("恭喜你!更新成功!");

}

//执行完数据更新操作后 需要关闭数据库 节省资源

conn.Close();

//更新完以后 调用刷新方法,将更新后的数据 显示在datagridview上面

Refresh();

}

5-查看记录 (查看当前所有记录)

//查看并刷新所有数据

private void btnView_Click(object sender, EventArgs e)

{

string sql = "select Id,Movie_Name,Movie_Director,Date_Released from Record";

SqlConnection conn = new SqlConnection(connStr);

SqlCommand cmd = new SqlCommand(sql, conn);

DataTable dt = new DataTable();

SqlDataAdapter sda = new SqlDataAdapter(cmd);

sda.Fill(dt);

dgvManager.DataSource = dt;

}

6日志查看功能核心代码



if (pwd == txtPwd.Text)

{

//获取登陆成功后的用户ID

Uid = txtName.Text;

//获取当前登录时间

Time = DateTime.Now;

//获取当前用户登录的情况

Situation = "登录";

//说明在该账户下 密码正确, 系统登录成功

MessageBox.Show("系统登录成功,正在跳转主页面...");

FrmMain main = new FrmMain();

main.Show();

this.Hide();



参考文献

1:物联网射频识别技术(RFID)技术与应用 人民邮电出版社

2:《Programming.C#

3:《Visual J#



致谢

课程设计李永明老师的悉心指导下完成的。老师渊博的专业知识、严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严于律己、宽以待人的崇高风范,朴实无法、平易近人的人格魅力对本人影响深远。不仅使本人树立了远大的学习目标、掌握了基本的研究方法,还使本人明白了许多为人处事的道理。本次课程设计从选题到完成,每一步都是在老师的悉心指导下完成的,倾注了老师大量的心血。在此,谨向老师表示崇高的敬意和衷心的感谢!在写课程设计的过程中,遇到了很多的问题,在老师的耐心指导下,问题都得以解决。所以在此,再次对老师道一声:老师,谢谢您!

免费下载 Word文档免费下载: 电影信息管理系统理系统

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服