学生上机管理及考勤系统-网络-软件实验报告(共21页).doc
《学生上机管理及考勤系统-网络-软件实验报告(共21页).doc》由会员分享,可在线阅读,更多相关《学生上机管理及考勤系统-网络-软件实验报告(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上软 件 实 验 报 告 题目:学生上机管理及考勤系统 日期:2004年10月24日目录:-第3页-第3页-第3页-第3页 -第5页 -第9页 -第12页-第19页-第20页一:系统结构简图:系统设置一个管理中心和若干台放置在远端的刷卡机(用一台PC机模拟),如图所示。以太网物管中心客户机客户机服务器通信客户机刷卡机以太网RS-232 二:功能模块及其划分简介1、 刷卡模拟机:模拟刷卡动作把卡号发送给通信客户机,同时接收通信客户机返回的相关信息并显示。2、 客户通信机:接收卡号后判断是否有效,并根据判断发相关信息给刷卡机(如卡号,机房号,机器号,上机密码)。学生卡有效时
2、存卡号、机房号、机号、上机时间等信息到学生上机信息表中。删除上机预约表中的相关项。修改学生信息表中的次数。修改电脑表中的是否使用项 。3、 服务器 :共四张表 information存储学生上机卡号、机房号、机号、上机时间;xuesheng存储学生的基本信息:姓名、卡号、班级、宿舍电话、手机号;diannao表存储机房号,机号,是否被预订,是否完好;yuyue表存储卡号,机房号,机号,预约时间。4、 客户查询机 :可按卡号,姓名,班级,上机次数查询学生基本情况。5 、客户设置机 :分电脑情况设置,学生情况设置,预约。电脑情况设置进行新机加入,原机器各信息修改和机器的删除。学生情况设置进行学生的
3、加入、删除和基本信息的修改。预约为学生上机预约。6、 同学间分工 : 杜英芳负责刷卡机和通信机,刘倩、熊杰、邹雯珠负责客户查询机和客户设置机,张雪负责数据库的建立和设置。 三:各功能模块说明(一):刷卡模拟机的设计1、 完成的功能模拟刷卡动作把卡号发送给通信客户机,同时接收通信客户机返回的相关信息并显示。2、 实现步骤:界面设计上只有一个combobox,一个Listbox、button和串行口控件,combobox用于输入卡号,原来用的是edit控件但在测试时为了方便就改成combobox。它的items设了九个从至,也可自己输入其它号码,进行动作模拟。Button是退出按钮。然后在各控件中
4、添加代码:界面的初始化是我们仿照老师给的程序copy过来的和退出按钮的代码都不存在什么问题。procedure TForm1.FormCreatfe(Sender: TObject);begin if Not MSComm1.PortOpen then begin MSComm1.PortOpen:=True; MSComm1.DTREnable:=True; MSComm1.RTSEnable:=True; end; MSComm1.RThreshold := 1;end;procedure TForm1.Button3Click(Sender: TObject);begin MSComm1
5、.PortOpen:=False; close;end;这一段代码是模仿老师的模版做的都没什么问题。procedure TForm1.MSComm1Comm(Sender: TObject);var ReceBuf:string;begin ReceBuf := Trim(MSComm1.Input); ListBox1.Items.Add(ReceBuf);end; 这用于选择固定的几个卡号,不必要每次输入一长串数字,完全是出于省事。procedure TForm1.ComboBox1Select(Sender: TObject);begin if MSComm1.PortOpen then
6、 begin MSComm1.Output:=ComboBox1.Text; ListBox1.Clear; end else Messagedlg(通信端口1未打开!,mtError,mbok,0);end;这个函数用于自己输入其它号码进行测试,按回车触动。procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);begin if key=#13 then if MSComm1.PortOpen then begin MSComm1.Output:=ComboBox1.Text; ListBox1.Clear; en
7、d else Messagedlg(通信端口1未打开!,mtError,mbok,0);end;3、 感受 整个设计没难度,但因为是第一次使用delphi在做的时候都模仿了老师的程序。 (二):通信机的设计 1 、完成功能 接收到刷卡机发出的卡号后判断是否有效,并根据判断,发相关信息给刷卡机。学生卡有效时,存卡号、机房号、机号、上机时间等信息到information表中。无效时发“无效卡号”或“日期不对”。没有效的学生卡号是指:非本系统允许的卡;是本系统的卡但未预约本次上机。多次预约但都没上机的我们没做出来。因为我们的预约表是一天为一张表,同时搜索几张表不会。 2、设计步骤界面设计时用了DBG
8、rid,DataSource,ADOCommand,2个ADODataSet,1个button和一个label 。在这些控件设置时最难的是和数据库连接了,都是同学间相互教会的。添加代码时对初始化不是很清楚,后来在老师的讲解下能理解了配置文件。procedure TForm1.FormCreate(Sender: TObject);var strpath:string; /配置文件路径 strsyspara:Tinifile; /系统特殊数据存放文件beginstrpath := ExtractFilePath(Application.ExeName); strsyspara := Tinifi
9、le.Create(strpath+shenchang_CONFIG.INI); if NOT FileExists(strpath+shenchang_CONFIG.INI) then begin showmessage(警告:系统配置文件不存在!); Bresult:=False; Exit; end; g_connection:=TADOConnection.Create(nil); g_connection.ConnectionString:=strsyspara.ReadString(system,connectionstring,); g_connection.LoginPromp
10、t := False; g_connection.Open; self.ADODataSet1.Connection := g_Connection; self.ADOCommand1.Connection := g_Connection;if Not MSComm1.PortOpen then begin MSComm1.PortOpen:=True; MSComm1.DTREnable:=True; MSComm1.RTSEnable:=True; end; MSComm1.RThreshold := 1;end;通信机在串行口接收到数据时,就开始判断,如果接收缓存区有数据,取出收到的卡号
11、搜索预约表,如果表中有这项则在通信机上显示出来,再取出预约表中时间项和今天的时间判断如果一样就返回给刷卡机上机的房间号、机号和上机密码。如果不同则返回“日期不对”。如果在预约表中搜索不到就就返回“卡号无效”。在调程序时DateToStr()加入时程序运行不起来,所以就设置了时间值strDate=2004-10-24。在返回上机密码时要搜索diannao表读出它的上机密码,发出。然后在information表中insert这次上机的信息,有卡号、房间号、机号和上机时间。再UpDate xuesheng表中的上机次数用于查询机。UpDatediannao表中的预约项把原来的非空机改为空机。Dele
12、te yuyue表中的这次上机项。procedure TForm1.MSComm1Comm(Sender: TObject);var ReceBuf:string; strSql,strsqa:string; CardN:string; password:string; id,RN,HN,strDate,strTime,date:string;begin ReceBuf := Trim(MSComm1.Input); CardN:=ReceBuf; if CardN then begin / strDate:= DateToStr(Date(); strDate:=2004-10-21; st
13、rTime:= TimeToStr(Time(); strSql:=select * from dbo.yuyue Where ltrim(id)=; strSql:= strSql+CardN+; self.ADODataSet1.Active:=False; self.ADODataSet1.CommandText:=strSql; self.ADODataSet1.Active:=True; if (self.ADODataSet1.FieldByName(id).AsString)then begin date:=VarToStr(self.ADODataSet1.FieldByNam
14、e(shijian1).AsString); if strcomp(PChar(date),PChar(strDate)=0 then begin CardN:=卡号: ; MSComm1.Output:=CardN ; strSql:=Trim(self.ADODataSet1.FieldByName(id).AsString); MSComm1.Output:=strSql ; id:=strSql; strSql:=机房号:; MSComm1.Output:=strSql ; strSql:=Trim(self.ADODataSet1.FieldByName(RoomNumber).As
15、String); MSComm1.Output:=strSql; RN:=strSql ; strSql:= ; MSComm1.Output:=strSql ; strSql:=主机号: ; MSComm1.Output:=strSql ; strSql:=Trim(self.ADODataSet1.FieldByName(HostNumber).AsString); MSComm1.Output:=strSql ; HN:=strSql; strSql:= ; MSComm1.Output:=strSql ; strSql:=密码: ; MSComm1.Output:=strSql ; s
16、trSqa:=select * from dbo.diannao Where RoomNumber=; strSqa:= strSqa+RN+; strsqa:=strsqa+and HostNumber=+HN+; self.ADODataSet2.Active:=False; self.ADODataSet2.CommandText:=strSqa; self.ADODataSet2.Active:=True; password:=Trim(self.ADODataSet2.FieldByName(password).AsString); MSComm1.Output:=password
17、; strSql:=Insert into Information(id,RoomNumber,HostNumber,SDate,STime); strSql:=strSql + Values(; strSql:=strSql + id + ,; strSql:=strSql + + RN + + ,; strSql:=strSql + + HN + + ,; strSql:=strSql + + strDate + + ,; strSql:=strSql + + strTime + + ); self.ADOCommand1.CommandText:=strSql; self.ADOComm
18、and1.Execute; strSql:=UPDATE xuesheng SET times=times+ + IntToStr(1); strSql:=strSQL + WHERE id= + + id + ; self.ADOCommand1.CommandText:=strSQL; self.ADOCommand1.Execute; strSql:=DELETE from yuyue WHERE id= + + id + ; /删除在预约表中的记录 self.ADOCommand1.CommandText:=strSQL; self.ADOCommand1.Execute; strSq
19、l:=UPDATE diannao SET book=0 ; strSql:=strSQL + WHERE RoomNumber=; strSql:= strSql+RN+; strsql:=strsql+and HostNumber=+HN+; self.ADOCommand1.CommandText:=strSQL; self.ADOCommand1.Execute; strsql:=; end else strSql:=日期不对; MSComm1.Output:=strSql ; exit; end else strSql:=无效卡号; MSComm1.Output:=strSql ;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 上机 管理 考勤 系统 网络 软件 实验 报告 21
限制150内