嵌入式爱好者

查看: 11648|回复: 4

C#+TE6410编写的幼儿园安全管理系统完结版发布

[复制链接]

69

主题

184

帖子

338

积分

RK3568通行证

扫一扫,手机访问本帖
发表于 2012-8-9 13:25:14 | 显示全部楼层 |阅读模式
本帖最后由 feiyangqingyun 于 2012-10-23 08:34 编辑

陆陆续续经过一个多月的开发调试,在S3C6410核心板上面开发的幼儿园安全管理系统终于确定!具备学生教师制卡功能、人员管理功能、出勤统计功能、手工出入园功能,同时智能显示器开关等功能!
新帖地址:http://bbs.witech.com.cn/forum.php?mod=viewthread&tid=19030&extra=
回复

使用道具 举报

69

主题

184

帖子

338

积分

RK3568通行证

 楼主| 发表于 2012-8-9 13:35:32 | 显示全部楼层
一:数据库设计
用户表UserInfo
ID:编号
UserName:用户名
UserPwd:用户密码
UserType:用户类型(管理用户、操作用户)

IC卡信息表ICInfo
ID:编号
ICID:IC卡编号
ICName:姓名
ICClass:班级(如果是教师的话为空)
Type:类型(学生、教师)
Mode:模式(入园、出园)
Status:状态(健康、观察、服药)
TriggerTime:触发时间(年月日时分秒格式)

学生信息表StudentInfo
ID:编号
StudentID:学号
StudentName:姓名
StudentIC:对应IC卡号
Class:班级
StudentSex:性别
StudentX1:监护人1姓名
StudentX1Tel:监护人1联系方式
StudentX2:监护人2姓名
StudentX2Tel:监护人2联系方式
StudentAddr:家庭住址

教师信息表
ID:编号
TeacherID:教职工号
TeacherName:姓名
TeacherIC:IC卡号
TeacherSex:性别
TeacherTel:联系电话
TeacherAddr:家庭住址
回复 支持 反对

使用道具 举报

69

主题

184

帖子

338

积分

RK3568通行证

 楼主| 发表于 2012-8-9 13:36:12 | 显示全部楼层
二:问题分析
1:学生刷卡时,首先判断该学生是否已经刷卡,如果已经刷卡,则更改刷卡信息为当前刷卡信息,在身体状况(健康、观察、服药)改变时,将最近刷卡学生的身体状况更改为当前身体状况。
2:刷卡界面显示与关闭判断,定义变量LastTriggerTime存储最后刷卡时间,有学生刷卡时,将LastTriggerTime赋值为当前时间,启动定时器Timer间隔5000毫秒判断LastTriggerTime和当前时间,如果大于5分钟(系统配置),则自动关闭,一旦检测到刷卡则自动弹出。
3:刷卡信息界面自动判断弹出,定义全局变量IsReadCard,存储当前读卡状态,当切换到制卡界面后,IsReadCard为False,退出制卡界面后,IsReadCard为True,默认为True,定义全局变量IsReadCardShow,存储刷卡信息界面是否已经弹出,如果已经弹出则置为True,默认为False,主程序中读卡事件判断,当IsReadCard为True并且IsReadCardShow为False时候,弹出刷卡信息界面,并将信息传递过去。
4:手工出入园算法分析
定义链表StudentIn(未入园)StudentInX(已入园),查询学生信息表,查询刷卡信息表,条件:时间为今天,班级为当前班级参数,模式为入园或者出园,类型为学生或者教师,查询比较的条件为卡号(两个表都有,且可唯一确定一个学生或者教师),一一比较卡号,当相等则存入已入园链表StudentInX。
例如获取已入园学生:
回复 支持 反对

使用道具 举报

69

主题

184

帖子

338

积分

RK3568通行证

 楼主| 发表于 2012-8-9 13:37:00 | 显示全部楼层

  1. #region  学生入园数据

  2.         List<string> StudentIn = new List<string>();
  3.         List<string> StudentInX = new List<string>();        

  4.         void GetStudentIn(string ClassName)
  5.         {
  6.             //找出对应班级所有学生姓名,一一与该班级已经刷卡的同学比较,不存在则加入到列表
  7.             string sqlStudent = "select StudentName,StudentID,StudentIC from StudentInfo where Class='" + ClassName + "'";
  8.             DataTable tempS = myApp.myData.GetDataTable(sqlStudent, "StudentInfo");
  9.             
  10.             string sqlIC = "select ICID from ICInfo where date([TriggerTime])=date('now') and Type='学生' and Mode='入园' and ICClass='" + ClassName + "'";
  11.             DataTable tempIC = myApp.myData.GetDataTable(sqlIC, "ICInfo");
  12.            
  13.             for (int i = 0; i < tempS.Rows.Count; i++)
  14.             {               
  15.                 for (int j = 0; j < tempIC.Rows.Count; j++)
  16.                 {
  17.                     if (tempS.Rows[i][2].ToString() == tempIC.Rows[j][0].ToString())
  18.                     {                        
  19.                         //已刷卡学生姓名存入列表
  20.                         StudentInX.Add(tempS.Rows[i][0].ToString() + "(" + tempS.Rows[i][1].ToString() + ")");
  21.                     }
  22.                 }
  23.             }

  24.             if (StudentInX.Count == 0)
  25.             {
  26.                 for (int k = 0; k < tempS.Rows.Count; k++)
  27.                 {
  28.                     string str = tempS.Rows[k][0].ToString() + "(" + tempS.Rows[k][1].ToString() + ")";
  29.                     StudentIn.Add(str);
  30.                 }
  31.                 return;
  32.             }

  33.             for (int m = 0; m < tempS.Rows.Count; m++)
  34.             {
  35.                 string str = tempS.Rows[m][0].ToString() + "(" + tempS.Rows[m][1].ToString() + ")";
  36.                 bool IsExist = false;

  37.                 for (int n = 0; n < StudentInX.Count; n++)
  38.                 {               
  39.                     if (str == StudentInX[n])
  40.                     {
  41.                         IsExist = true;
  42.                         break;                        
  43.                     }                    
  44.                 }

  45.                 if (!IsExist)
  46.                 {
  47.                     //未刷卡学生姓名存入列表
  48.                     StudentIn.Add(str);
  49.                 }
  50.             }           
  51.             
  52.         }

  53.         void BindDataStudentIn()
  54.         {
  55.             lboxStudentIn.Items.Clear();
  56.             lboxStudentInX.Items.Clear();
  57.             StudentIn.Clear();
  58.             StudentInX.Clear();

  59.             this.GetStudentIn(cboxClass1.Text);

  60.             foreach (string s1 in StudentIn)
  61.             {
  62.                 lboxStudentIn.Items.Add(s1);
  63.             }

  64.             foreach (string s2 in StudentInX)
  65.             {
  66.                 lboxStudentInX.Items.Add(s2);
  67.             }
  68.         }

  69.         #endregion
复制代码
回复 支持 反对

使用道具 举报

liuyouran 该用户已被删除
发表于 2012-8-9 16:29:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-4-20 01:53

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表