版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、. 程序設(shè)計課程設(shè)計報告書網(wǎng)絡(luò)考勤系統(tǒng)學(xué)院:計算機科學(xué)與工程學(xué)院 指導(dǎo)老師:羅翌陳 姓名:劉珧姚 學(xué)號:1000350103提交日期:2012年9月18日 目 錄摘 要-3一、 前言-3二、設(shè)計分析-3三、數(shù)據(jù)庫設(shè)計-4四、系統(tǒng)部分界面及說明-5五、系統(tǒng)的使用說明書-6六、結(jié)論-7附 錄-7網(wǎng)絡(luò)考勤系統(tǒng)的設(shè)計和實現(xiàn) 摘 要:我這次的課程設(shè)計是網(wǎng)絡(luò)考勤系統(tǒng)的設(shè)計和實現(xiàn)。 具有如下功能: 1、學(xué)生可以通過注冊時的個人信息生成二維碼來進行考勤,考勤過程要借助攝像頭和二維碼。學(xué)生可以通過考勤客戶端進行考勤,可以通過瀏覽網(wǎng)站查看個人信息。2、管理員可以添加,修改,刪除學(xué)生信息,添加,刪除,修改管理員信息
2、。3.可以查看班級考 勤信息,宿舍單元學(xué)生考勤信息,全部學(xué)生考勤信息,學(xué)生信息和管理員信息。為了完成上述功能,我采用了C#語言具體使用了JFrame,JButton等組件。最終我成功的完成了具有以上功能的一個小系統(tǒng)。該系統(tǒng)具有了一個較為簡單的界面。在這次課程設(shè)計的過程中我第一次嘗試了寫圖形界面系統(tǒng),雖然最終系統(tǒng)不是很完美,但我的收獲也不小。在整個過程中我熟悉了控件的使用,基于 C#的數(shù)據(jù)庫變編程, C#基于客戶端服務(wù)器模式的編程技巧,接口實現(xiàn)等技術(shù),并成功的應(yīng)用。總之這次課程設(shè)計讓我受益頗豐。關(guān)鍵詞:課程設(shè)計;功能;系統(tǒng);圖形界面; 一、前言 本次課程設(shè)計我選的是網(wǎng)絡(luò)考勤系統(tǒng)的設(shè)計和實現(xiàn)。剛開
3、始看到這個題,其他的題目就不想再看了,我本身想做一個這樣的系統(tǒng)并將其移植到LPC3250上去,之前想上去可能比較簡單,但實際上很有挑戰(zhàn)性,但還是熟悉了整個系統(tǒng)實現(xiàn)流程。總之在這次課程設(shè)計中,與其說我是在寫這個系統(tǒng)不如說我是在學(xué)著寫這個系統(tǒng)。 二、設(shè)計分析 我拿到的這個課題從名稱上就可以看出來是一個統(tǒng)計出勤次數(shù)的系統(tǒng),它的要求如下:1. 通過客戶端采集學(xué)生的考勤信息,比如:學(xué)生二維碼,考勤時間,IP地址。2. 通過socket發(fā)送到服務(wù)器。3. 服務(wù)器接收數(shù)據(jù),并根據(jù)學(xué)生的二維碼,判斷是否為本校學(xué)生。4. 查詢學(xué)生住宿單元的IP地址是與學(xué)生考勤地點的IP地址相對應(yīng)。5. 判斷學(xué)生遲到,缺席等情況
4、后,寫入相應(yīng)的數(shù)據(jù)庫。6. 實現(xiàn)學(xué)生個人信息查詢。7. 管理員可以添加,刪除,修改學(xué)生信息。8. 管理員可以修改,查詢,刪除,添加管理員信息。9. 管理員可以查看各班級學(xué)生,各個住宿單元,以及所有學(xué)生的考勤信息。10. 實現(xiàn)系統(tǒng)幫助文檔。三、實現(xiàn)方法 這個系統(tǒng)我采用了C#語言,用Microsoft Visual Studio 2008和Microsoft SQL Server 2005完成。數(shù)據(jù)庫設(shè)計:create table admin/管理員信息(admin_ID char(16) primary key,admin_pwd varchar(16),admin_name varchar(2
5、0),admin_sex char(2),admin_unit char(2),foreign key (admin_unit) references unit(unit_ID);create table unit/宿舍單元信息(unit_ID char(2) primary key,/編號unit_IP char(15)/IP地址);create table check_tb/考勤表(stu_ID char(10),check_time varchar(20),check_unit char(2),absent_times int,primary key(stu_ID,check_unit)
6、,foreign key (stu_ID) references ST_users (ST_User_id),foreign key (check_unit) references unit (unit_ID);create table ST_users/學(xué)生信息(ST_User_id char(10) primary key,ST_User_password varchar(16),ST_User_name varchar(20),ST_User_grade char(8),ST_User_code varchar(50),ST_User_sex char(2),ST_unit char(2
7、);4、 系統(tǒng)部分截圖1. 客戶端2. 網(wǎng)站登錄頁面3. 學(xué)生界面菜單4. 管理員界面菜單5. 管理員添加5 系統(tǒng)使用說明書系統(tǒng)分為三個大模塊:1. 學(xué)生模塊 1.1學(xué)生信息查詢 1.2學(xué)生考勤2. 管理員模塊 2.1管理員信息管理子模塊 2.1.1管理員添加 2.1.2管理員信息刪除和修改 2.1.3管理員信息查詢 2.2學(xué)生信息管理子模塊 2.2.1學(xué)生信息添加 2.2.2學(xué)生信息刪除和修改 2.2.3學(xué)生信息查詢 2.3學(xué)生考勤信息子模塊 2.3.1查詢所有考勤記錄 2.3.2查詢宿舍某單元的考勤記錄 2.3.3查詢某班級的考勤記錄3.系統(tǒng)幫助文檔六、結(jié)論 完成了這個課題設(shè)計,同時我感覺
8、自己的系統(tǒng)設(shè)計道路才剛剛起步。前方還有更多的任務(wù)等著我去完成。系統(tǒng)設(shè)計對我來說還是比較陌生的,在未來的日子里我一定會一點點的進步。 該系統(tǒng)現(xiàn)在時能完成老師對考勤情況統(tǒng)計的要求。而經(jīng)過修改后就能完成更多的統(tǒng)計任務(wù)。相信使用得當能給我的學(xué)習(xí)生活帶來便利。附錄:系統(tǒng)源代碼客戶端:form3.cs源碼using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;usin
9、g System.Windows.Forms;using System.BlueButterFly.QRCodeLib;using System.BlueButterFly.QRCodeLib.Data;using System.IO;using System.Diagnostics;using PMJQRsln;using System.Net;using System.Net.Sockets;using System.Threading;namespace PMJQRsln public partial class Form3 : Form private Socket sender =
10、null; int port = 3988; string ip = "" public Form3() InitializeComponent(); private void button2_Click(object sender, EventArgs e) Process p = new Process(); string apppath = Application.StartupPath; p.StartInfo.FileName = apppath + "zb.bat" p.StartInfo.WindowStyle = ProcessWindo
11、wStyle.Hidden; p.Start(); public void button1_Click(object sender, EventArgs e) try ip = this.textBox1.Text; IPAddress ipAddress = IPAddress.Parse(ip); IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, port); Socket sender1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType
12、.Tcp); sender1.Connect(remoteEndPoint); this.textBox3.AppendText("連接成功!"); string strSend =this .textBox2.Text; byte bytSend = Encoding.UTF8.GetBytes(strSend); sender1.Send(bytSend); Thread.Sleep(1000); /接收服務(wù)器信息 byte byterecv=new byte1024; int lengthrecv = 0; while (lengthrecv = 0) lengthr
13、ecv = sender1.Receive(byterecv); string strrecv = Encoding.UTF8.GetString(byterecv, 0, lengthrecv); this.textBox3.AppendText(strrecv); sender1.Close(); catch (Exception e1) 服務(wù)器端部分源碼:登錄頁面:default.aspx.cs源碼using System;using System.Configuration;using System.Data;using System.Linq;using System.Web;usi
14、ng System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Collections;using System.ComponentModel;using System.Data.SqlClient;using System.Drawing;using System.Web.SessionSta
15、te;public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Button1_Click1(object sender, EventArgs e) string strconn = "Data Source=ADMINISTRATOR-Y;Initial Catalog=考勤;Integrated Security=True" SqlConnection con = new SqlConnect
16、ion(strconn); SqlCommand mycmd = con.CreateCommand(); mycmd.CommandText = "select ST_User_id from ST_users where ST_User_id='" + this.TextBox1.Text + "'" + "and ST_User_password='" + this.TextBox2.Text + "'" con.Open(); SqlDataReader dr = mycmd
17、.ExecuteReader(); if (dr.Read() Response.Redirect("ST_query.aspx"); else con.Close(); mycmd.CommandText = "select admin_ID from admin where admin_ID='" + this.TextBox1.Text + "'" + "and admin_pwd='" + this.TextBox2.Text + "'" con.Open
18、(); SqlDataReader dr1 = mycmd.ExecuteReader(); if (dr1 .Read() Response.Redirect("ST_student.aspx"); else this.Label1.Text = "用戶名或密碼錯誤!" con.Close(); 考勤界面源碼:check.aspx.cs源碼using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using S
19、ystem.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Text;using System.Net.Sockets;using System.Threading;using System.IO;using System.Net;using System.Comp
20、onentModel;using System.Data.SqlClient;using System.Data.Sql;public partial class check : System.Web.UI.Page Socket listener = null; int port = 3988; string strText="" string meg = "" string clientip = "" string absent = "" protected void Page_Load(object send
21、er, EventArgs e) protected void Button1_Click(object sender, EventArgs e) IPAddress ipAddress = IPAddress.Parse("35"); IPEndPoint localEndPoint = new IPEndPoint(ipAddress, port); Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); / th
22、is.Label1.Text = "等連接." try listener.Bind(localEndPoint); this.Label1.Text = "等連接." listener.Listen(5); / while (true) / Socket handler = listener.Accept(); this.Label1.Text = "連接成功" clientip = Request.UserHostAddress; byte bytData = new byte1024; int receivedLength = h
23、andler.Receive(bytData); strText = System.Text.Encoding.UTF8.GetString(bytData, 0, receivedLength); this.TextBox2.Text = clientip; this.TextBox1.Text = strText; /- /-數(shù)據(jù)更新- string time = "22:00" DateTime dt1 = Convert.ToDateTime(time); DateTime dt = DateTime.Now;/獲取系統(tǒng)時間 string dt24 = dt.ToS
24、tring("yyyy-MM-dd HH:mm:ss"); string strconn4 = "Data Source=ADMINISTRATOR-Y;Initial Catalog=考勤;Integrated Security=True" SqlConnection con4 = new SqlConnection(strconn4); con4.Open(); SqlCommand mycmd4 = con4.CreateCommand(); mycmd4.CommandText = "select unit_ID from unit w
25、here unit_IP='" + clientip+"'" / +dt24 + " < " + "2012-09-18 22:00:00" /con4.Open(); SqlDataReader stt = mycmd4.ExecuteReader(); /-樓棟IP正確- if (stt.Read() stt.Close(); string unit_id = (string)mycmd4.ExecuteScalar(); string strconn = "Data Source=ADM
26、INISTRATOR-Y;Initial Catalog=考勤;Integrated Security=True" SqlConnection con = new SqlConnection(strconn); con.Open(); SqlCommand mycmd = con.CreateCommand(); mycmd.CommandText = "select ST_User_id from ST_users where ST_User_code='" + this.TextBox1.Text + "'" SqlData
27、Reader st = mycmd.ExecuteReader(); /-IP正確-二維碼正確- if (st.Read() st.Close(); string stu_id = (string)mycmd.ExecuteScalar(); meg = "seccess!" /-正??记? if (DateTime.Compare(dt1, dt) > 0) /添加考勤記錄 absent = "否" SqlConnection con1 = new SqlConnection("Data Source=ADMINISTRATOR-Y;I
28、nitial Catalog=考勤;Integrated Security=True"); if (con1 != null) con1.Open(); try SqlCommand cmd = con1.CreateCommand(); cmd.CommandText = "insert into check_tb(stu_ID ,check_time ,check_unit,absent ) values ('" + stu_id +"',"+"'"+ dt24 +"',&quo
29、t;+"'"+ unit_id +"',"+"'" +absent + "')" cmd.ExecuteNonQuery(); this.Label1.Text = "添加成功!" con1.Close(); catch (Exception exc) con1.Close(); /-遲到- else if (DateTime.Compare(dt1, dt) < 0) /遲到 absent = "遲" SqlConnection con
30、2 = new SqlConnection("Data Source=ADMINISTRATOR-Y;Initial Catalog=考勤;Integrated Security=True"); if (con2 != null) con2.Open(); try SqlCommand cmd = con2.CreateCommand(); cmd.CommandText = "insert into check_tb(stu_ID ,check_time ,check_unit,absent ) values ('" + stu_id + &q
31、uot;'," + "'" + dt24 + "'," + "'" + unit_id + "'," + "'" + absent + "')" cmd.ExecuteNonQuery(); this.Label1.Text = "添加成功!" con2.Close(); catch (Exception exc) con2.Close(); /-缺席- else absent = &quo
32、t;是" SqlConnection con3 = new SqlConnection("Data Source=ADMINISTRATOR-Y;Initial Catalog=考勤;Integrated Security=True"); if (con3 != null) con3.Open(); try SqlCommand cmd = con3.CreateCommand(); cmd.CommandText = "insert into check_tb(stu_ID ,check_time ,check_unit,absent ) values
33、 ('" + stu_id + "'," + "'" + dt24 + "'," + "'" + unit_id + "'," + "'" + absent + "')" cmd.ExecuteNonQuery(); this.Label1.Text = "添加成功!" con3.Close(); catch (Exception exc) con3.Close(
34、); else meg = "failed!" /- try byte bytSend = Encoding.UTF8.GetBytes(meg); handler.Send(bytSend); handler.Close(); catch (Exception exce) handler.Close(); catch (Exception e1) listener.Close(); /發(fā)送數(shù)據(jù) 學(xué)生信息添加:stu_add.aspx.cs源碼using System;using System.Collections;using System.Configuration;u
35、sing System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.Sql;using System.Data.SqlClient;public partial class std
36、_add : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void 添加_Click(object sender, EventArgs e) /string User = this.TextBox1.Text; / string name = this.TextBox2.Text; / string pwd = this.TextBox3.Text; /string sex = this.DropDownList1.Text; /string code = this.TextBo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度商業(yè)地產(chǎn)項目地下車位使用權(quán)轉(zhuǎn)讓合同4篇
- 2025產(chǎn)業(yè)園項目幕墻二次深化設(shè)計、監(jiān)理及驗收服務(wù)合同2篇
- 2024年縫紉設(shè)備及相關(guān)技術(shù)咨詢合同
- 2025年度新能源汽車買賣及售后服務(wù)合同4篇
- 2025年度智能車庫門購銷安裝一體化服務(wù)合同4篇
- 2025年度智能安防監(jiān)控系統(tǒng)設(shè)計與實施合同4篇
- 2024鐵路信號設(shè)備更新改造工程合同文本3篇
- 中國醫(yī)用呼吸機行業(yè)市場調(diào)查研究及投資戰(zhàn)略咨詢報告
- 中國家居百貨行業(yè)市場調(diào)查研究及投資前景預(yù)測報告
- 2025年度個人房屋抵押貸款合同終止協(xié)議4篇
- C及C++程序設(shè)計課件
- 帶狀皰疹護理查房
- 公路路基路面現(xiàn)場測試隨機選點記錄
- 平衡計分卡-化戰(zhàn)略為行動
- 國家自然科學(xué)基金(NSFC)申請書樣本
- 幼兒教師干預(yù)幼兒同伴沖突的行為研究 論文
- 湖南省省級溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設(shè)備驗收管理流程圖
- 培訓(xùn)機構(gòu)消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項新技術(shù)(2017年最新版)
- 第8期監(jiān)理月報(江蘇版)
評論
0/150
提交評論