1、 PINGDINGSHAN UNIVERSITY RFID原理与应用课程设计题 目: 电影信息管理理系统实现 院(系): 信息工程学院 专业年级: 物联网工程级 姓 名: jjzjcjzc 学 号: csjkkcskl 指引教师: csjklks 6月28日 目 录1 绪论11.1 课题背景及意义11.1.1 系统功能设计11.1.2 系统设计12 有关技术及工具简介32.1 系统功能设计32.2 顾客信息管理功能实现42.2.1 界面及数据库设计42.2.1 RFID串口设计62.2.1 日记查看功能7附 录9参照文献18致 谢191 绪论在现实程序开发中,咱们开发最多,最广泛还是某些各类型
2、数据管理系统,固然不同系统有功能上差别,数据库也不同样,但最重要,最常用功能无外乎对数据基本操作(增删改查)。该简易电影记录管理系统可以实现对电影记录各项操作。1.1 课题背景及意义近年来随着电影行业迅速发展,需要解决电影信息日趋加大。为了提高电影记录管理管理水平,优化资源,尽量减少管理成本。电影记录管理系统是从电影现状出发,依照电影记录管理新规定进行开发设计,它解决了电影记录管理数据信息量大,修改不以便,对一系列数据进行记录与分析耗费时间长等问题,协助电影管理人员有效管理电影记录信息。1.1.1 系统功能设计1:顾客登陆 实现登陆界面 跳转主页面。2:增删查改 实现电影信息增删查改。3:连接
3、RFID数据 实现将RFID标签数据读入系统。4:密码修改 实现顾客密码修改功能,完善管理安全。5:日记查看 用于记录和查看顾客系统登录和退出历史。1.1.2 系统设计该电影信息管理系统所采用技术及开发工具,涉及页面开发技术、采用架构、数据库管理系统、web服务器及开发工具、us、IS015693读写器等。2 有关技术及工具简介该电影信息管理系统所采用技术及开发工具,涉及页面开发技术、采用架构、数据库管理系统、web服务器及开发工具等。2.1 系统功能设计依照需求分析拟定该系统划分为如下几种功能:(1) 电影记录管理系统登录模块。 1:创立登陆界面,然后再添加一种登录成功后 跳转窗体 name
4、:FrmManager.cs 2:创立一种数据库用于存取顾客账户和密码信息,建数据表。 3:设立 列名(字段名) 数据类型 以及 与否容许该字段为空列名分别为 顾客ID:MId 顾客名:MUserName 顾客密码:MUserPwd 4:设立MId 主键,与否自我增长标记(Identity Specification)也设立一下.将 Identity Specification 中 Is Identity 设立为 Yes(目是让每插入1行新数据 ID数自动+1).设好了后来保存数据表,表名为MovieAccount. .数据表建完后来,咱们需要手动插入顾客登录系统所需要顾客名和密码 5:设立登
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 保存
6、记录name:btnSave 2.2.2RFID串口设计该功能重要是刷进电影数据,通过读卡器对电影光盘之类中RFID标签读取物流信息。RFID系统在实际应用中,电子标签附着在待辨认物体表面,电子标签中保存有商定格式电子数据。读卡器可无接触地读取并辨认电子标签中所保存电子数据,从而达到自动辨认物体目。读卡器通过天线发送出一定频率射频信号,当标签进入磁场时产生感应电流从而获得能量,发送出自身编码等信息,被读取器读取并解码后送至电脑主机进行有关解决。2.2.3日记查看功能 1:在登录窗体FrmLogin.cs定义3个全局变量,用于获取登录顾客名,登录状况(登录还是退出)以及相应时间;然后在日记查看窗
7、体调用该全局变量并且通过使用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 s
8、ender,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.G
9、etString(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.Threadi
10、ng.Thread.Sleep(500); Byte data = new Byte8; 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:X21:X22:X23:X2
11、4:X25:X26:X27:X2,data0,data1,data2,data3,data4,data5,data6,data7); /String str = String.Format(0:X21:X22:X23:X24:X25:X26:X27:X2,data0,data1,data2,data3,data4,data5,data6,data7); this.lblState.Text = 读取状态:成功!; /reader.CloseSerialPort(); 2:设立串口参数 public Byte OpenSerialPort(String portName) try /设立串口参数
12、 /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.IsOpe
13、n) 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
14、_Released); if (txtMovie.Text.Trim() = | txtDirector.Text.Trim() = | txtDate.Text.Trim() = ) MessageBox.Show(插入数据不能为空,请按规定插入数据!); return; SqlParameterparam=newSqlParameter(Movie_Name,txtMovie.Text), new SqlParameter(Movie_Director,txtDirector.Text), new SqlParameter(Date_Released,Convert.ToDateTime(
15、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办法,在添加完毕数据后 自动刷
16、新 显示新数据 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
17、= + Convert.ToInt32(dgvManager.CurrentRow.Cells0.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.Clo
18、se(); /删除完后 刷新一下当前数据 Refresh(); 3 改-保存记录(修改一条记录)/将鼠标点击datagridview 上行内容 传递给 文本框 private void dgvManager_CellContentClick(object sender, DataGridViewCellEventArgs e) /获取字段名为Movie_Name单元格内容 txtMovie.Text = dgvManager.Rowse.RowIndex.CellsMovie_Name.Value.ToString(); /同理 获取当前点击行里 name属性为Movie_Director单元
19、格 获取并将其传至txtDirector 文本框 txtDirector.Text = dgvManager.Rowse.RowIndex.CellsMovie_Director.Value.ToString(); /new一种时间对象 目是将电影发行时间小时,分和秒给去掉 保存到最小单位为日 DateTime datetoDay = new DateTime().Date; /将当前行日期单元格值 赋给 时间对象datetoDay datetoDay = Convert.ToDateTime(dgvManager.Rowse.RowIndex.CellsDate_Released.Value
20、); /通过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() = ) Message
21、Box.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.Cells0.Value.ToString() + ; SqlConnection
22、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(); /更新完后来 调用刷新办法,
23、将更新后数据 显示在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
24、= 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
25、 = new FrmMain(); main.Show();this.Hide();参照文献 1:物联网射频辨认技术(RFID)技术与应用 人民邮电出版社 2:Programming.C# 3:Visual J#道谢 本课程设计在李永明教师悉心指引下完毕。教师渊博专业知识、严谨治学态度,精益求精工作作风,诲人不倦崇高师德,严于律己、宽以待人崇高风范,朴实无法、平易近人人格魅力对本人影响深远。不但使本人树立了远大学习目的、掌握了基本研究办法,还使本人明白了许多为人处事道理。本次课程设计从选题到完毕,每一步都是在教师悉心指引下完毕,倾注了教师大量心血。在此,谨向教师表达崇高敬意和衷心感谢!在写课程设计过程中,遇到了诸多问题,在教师耐心指引下,问题都得以解决。因此在此,再次对教师道一声:教师,谢谢您!