版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、*人事工資管理系統(tǒng)09地理信息系統(tǒng)一 開(kāi)發(fā)背景企業(yè)在發(fā)展中不斷地壯大,員工也隨之增加。對(duì)于人事管理部門(mén)來(lái)說(shuō),迫切地需要一個(gè)操作方便、功能簡(jiǎn)單實(shí)用,可以滿足企業(yè)對(duì)員工的檔案及工資信息進(jìn)行管理系統(tǒng)。在企業(yè)選擇人事工資管理系統(tǒng)時(shí),主要存在以下幾個(gè)方面的要求:(1) 對(duì)企業(yè)員工的檔案進(jìn)行管理(2) 系統(tǒng)的功能要符合本企業(yè)的基本情況(3) 系統(tǒng)的功能操作要簡(jiǎn)單、實(shí)用、操作方便,不要出現(xiàn)復(fù)雜的操作。(4) 可以方便地對(duì)工資信息進(jìn)行打印。二 需求分析通過(guò)實(shí)際調(diào)查,要求本系統(tǒng)具有以下功能:良好的人機(jī)界面。方便的添加和修改數(shù)據(jù)功能。方便的數(shù)據(jù)查詢功能。方便的數(shù)據(jù)打印功能。在相應(yīng)的窗體中,可方便地刪除數(shù)據(jù)。三 系
2、統(tǒng)設(shè)計(jì)1.系統(tǒng)目標(biāo)(1) 界面友好、操作方便(2) 可以對(duì)員工檔案進(jìn)行管理,包括增、刪、改、查。(3) 實(shí)現(xiàn)獎(jiǎng)罰管理。(4) 可以使用操作員管理修改口令和更改操作員。、(5) 系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。2.系統(tǒng)預(yù)覽3.業(yè)務(wù)流程圖人事工資管理系統(tǒng)的業(yè)務(wù)流程如圖:4.數(shù)據(jù)庫(kù)概念設(shè)計(jì)應(yīng)用程序開(kāi)發(fā)過(guò)程中,對(duì)數(shù)據(jù)庫(kù)的操作時(shí)必不可少的,數(shù)據(jù)庫(kù)設(shè)計(jì)師根據(jù)程序的需求及其實(shí)現(xiàn)功能所制定的,數(shù)據(jù)庫(kù)設(shè)計(jì)得是否合理將直接影響程序的開(kāi)發(fā)進(jìn)程。(1)數(shù)據(jù)庫(kù)設(shè)計(jì)在系統(tǒng)開(kāi)發(fā)中占有非常重要的比重,它是通過(guò)管理系統(tǒng)的整體需求而制定的,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接影響到系統(tǒng)的后期開(kāi)發(fā)。下面對(duì)本系統(tǒng)中具有代表性的數(shù)據(jù)庫(kù)設(shè)計(jì)做詳細(xì)說(shuō)明。在本系統(tǒng)
3、中,為了提高系統(tǒng)的安全性,每一個(gè)用戶都要使用正確的用戶名和密碼才能進(jìn)入主窗體,而且還需要根據(jù)指定的用戶名提供相應(yīng)的權(quán)限,為了能夠驗(yàn)證正確的用戶名和密碼得到相應(yīng)的權(quán)限,應(yīng)在數(shù)據(jù)庫(kù)中創(chuàng)建登錄表。登錄用戶信息表的實(shí)體E-R圖:?jiǎn)T工檔案信息表的實(shí)體E-R圖:?jiǎn)T工工資信息表的實(shí)體E-R圖:(2)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)上面設(shè)計(jì)好的E-R圖,可以在數(shù)據(jù)庫(kù)中創(chuàng)建相應(yīng)的數(shù)據(jù)表db_User(登錄表)字段名數(shù)據(jù)類型長(zhǎng)度主鍵用戶編號(hào)Int4是UserNamevarchar20否UserPwdvarchar15否權(quán)限varchar10否db_employee(員工檔案信息表)字段名數(shù)據(jù)類型長(zhǎng)度主鍵員工編號(hào)Int4是姓
4、名Char10否性別Char10否年齡Int4否民族Varchar10否職務(wù)Char10否db_pay(員工工資信息表)字段名數(shù)據(jù)類型長(zhǎng)度主鍵員工編號(hào)Int4是工資月份Varchar50是基本工資decimal9否職務(wù)津貼decimal9否獎(jiǎng)勵(lì)金額decimal9否罰款金額decimal9否應(yīng)發(fā)工資decimal9否實(shí)發(fā)工資decimal9否四 公共類設(shè)計(jì)項(xiàng)目開(kāi)發(fā)過(guò)程中,通常會(huì)以類的形式來(lái)組織、封裝一些常用的方法和事件,這樣做不僅可以提高代碼的重用率,也大大方便了用戶對(duì)代碼的管理。在本系統(tǒng)中,主要建立了兩個(gè)公共類,分別為DBConnection類和DBOperate類。DBConnection
5、類主要用于連接數(shù)據(jù)庫(kù);在DBOperate類中則定義了一些操作數(shù)據(jù)庫(kù)的公用方法,分別用于實(shí)現(xiàn)各種功能,下面詳細(xì)介紹這兩個(gè)類。1. DBConnection公共類DBConnection類是數(shù)據(jù)庫(kù)連接類,此類主要用于連接SQL Server數(shù)據(jù)庫(kù),在連接數(shù)據(jù)庫(kù)時(shí),只需調(diào)用此類中的MYConnection即可,其實(shí)現(xiàn)代碼如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlClient;namespace PMSClass class DBC
6、onnetion public static SqlConnection MYConnection() return new SqlConnection("server=.;database=db_PMS;user=sa;pwd=123"); 2. DBOperate公共類DBOperate類中建立了多個(gè)方法用于執(zhí)行不同的SQL語(yǔ)句using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;using System.D
7、ata.SqlClient;using System.Data;namespace WindowsFormsApplication1 class DBOperate SqlConnection conn = PMSClass.DBConnetion.MYConnection(); public int OperateData(string strSql) conn.Open(); SqlCommand cmd = new SqlCommand(strSql, conn); int i = (int)cmd.ExecuteNonQuery(); conn.Close(); return i; p
8、ublic DataSet gettable(string sql) DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(ds); ds.Dispose(); return ds; public void BindDataGridView(DataGridView dgv, string sql) DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fil
9、l(ds); dgv.DataSource = ds.Tables0; ds.Dispose(); 下面對(duì)該類中的方法進(jìn)行講解(1)OperateData()方法用于對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL語(yǔ)句public int OperateData(string strSql) conn.Open(); SqlCommand cmd = new SqlCommand(strSql, conn); int i = (int)cmd.ExecuteNonQuery(); conn.Close(); return i; (2)gettable()方法用于根據(jù)指定的SQL查詢語(yǔ)句返回相應(yīng)的dataset對(duì)象publi
10、c DataSet gettable(string sql) DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(ds); ds.Dispose(); return ds; (3) BindDataGridView()方法用于將數(shù)據(jù)庫(kù)中的數(shù)據(jù)綁定到datagridview控件public void BindDataGridView(DataGridView dgv, string sql) DataSet ds = new DataSet(); SqlDataAdapt
11、er sda = new SqlDataAdapter(sql, conn); sda.Fill(ds); dgv.DataSource = ds.Tables0; ds.Dispose(); 五 登錄模塊設(shè)計(jì)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.S
12、qlClient;namespace WindowsFormsApplication1 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) try if (textBox1.Text = "" | textBox2.Text = "") MessageBox.Show("用戶名或密碼不能為空!", "提示", Mes
13、sageBoxButtons.OK, MessageBoxIcon.Information); return; else SqlConnection conn = PMSClass.DBConnetion.MYConnection(); conn.Open(); string s = "select * from db_User where UserName='" + textBox1.Text.ToString().Trim() + " 'and UserPwd='" + textBox2.Text.Trim() + "
14、;'" SqlCommand cmd = new SqlCommand(s, conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (sdr.HasRows) this.Hide(); conn.Close(); Form2 main = new Form2(); main.User = textBox1.Text.ToString().Trim(); main.Show(); else textBox1.Text = "" textBox2.Text = "" M
15、essageBox.Show("用戶名或密碼錯(cuò)誤!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); catch (Exception ex) MessageBox.Show(ex.Message); private void button2_Click(object sender, EventArgs e) this.Close(); 在登錄窗體中,單擊登錄按鈕,程序調(diào)用DBConnection類中的MYCconnection()方法連接數(shù)據(jù)庫(kù),然后通過(guò)sqldatareader對(duì)象的
16、hasrows屬性判斷用戶輸入的用戶名和密碼是否正確,如果正確,則登錄系統(tǒng),并將用戶名傳到下個(gè)窗體中,否則,彈出用戶名或密碼錯(cuò)誤信息提示,登錄按鈕事件代碼如下:private void button1_Click(object sender, EventArgs e) try if (textBox1.Text = "" | textBox2.Text = "") MessageBox.Show("用戶名或密碼不能為空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.In
17、formation); return; else SqlConnection conn = PMSClass.DBConnetion.MYConnection(); conn.Open(); string s = "select * from db_User where UserName='" + textBox1.Text.ToString().Trim() + " 'and UserPwd='" + textBox2.Text.Trim() + "'" SqlCommand cmd = new Sq
18、lCommand(s, conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (sdr.HasRows) this.Hide(); conn.Close(); Form2 main = new Form2(); main.User = textBox1.Text.ToString().Trim(); main.Show(); else textBox1.Text = "" textBox2.Text = "" MessageBox.Show("用戶名或密碼錯(cuò)誤!"
19、, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); catch (Exception ex) MessageBox.Show(ex.Message); 六 員工信息模塊設(shè)計(jì)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.F
20、orms;using System.Data.SqlClient;namespace WindowsFormsApplication1 public partial class Form2 : Form public Form2() InitializeComponent(); public string User; DBOperate operate = new DBOperate(); private void Form2_Load(object sender, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“db_PMSDataSet.db_employee”中。您可以
21、根據(jù)需要移動(dòng)或移除它。 this.db_employeeTableAdapter.Fill(this.db_PMSDataSet.db_employee); string sql = "select * from db_User where UserName='" + User + "'" DataSet ds = operate.gettable(sql); string power = ds.Tables0.Rows03.ToString(); if (power = "一般用戶") button2.Hide();
22、 private void button1_Click(object sender, EventArgs e) Form3 f3 = new Form3(); f3.User = User; f3.Show(); private void button3_Click(object sender, EventArgs e) this.Close(); private void button2_Click(object sender, EventArgs e) Form4 f4 = new Form4(); f4.User = User; f4.Show(); private void butto
23、n4_Click(object sender, EventArgs e) string sql = "select * from db_employee" operate.BindDataGridView(dataGridView1 ,sql ); 根據(jù)員工登錄名的不同,分給員工不同的權(quán)限,如果只是工人那只能查看工資信息如果你是監(jiān)制那么可以修改員工的信息及打入工資七 編輯模塊設(shè)計(jì)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using S
24、ystem.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication1 public partial class Form4 : Form public Form4() InitializeComponent(); public string User; DBOperate dbop = new DBOperate(); SqlConnection conn = PMSClass.DBCo
25、nnetion.MYConnection(); private void Form4_Load(object sender, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“db_PMSDataSet1.db_employee”中。您可以根據(jù)需要移動(dòng)或移除它。 this.db_employeeTableAdapter.Fill(this.db_PMSDataSet1.db_employee); private void button1_Click(object sender, EventArgs e) if (textBox1 .Text ="") Mes
26、sageBox.Show("請(qǐng)輸入姓名", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else conn.Open(); string s = "select * from db_employee where 姓名='" + textBox1.Text.ToString().Trim() + "'" SqlCommand cmd = new SqlCommand(s, conn); SqlDataReader sdr = cmd
27、.ExecuteReader(); sdr.Read(); if (sdr.HasRows) string sql = "select * from db_employee where 姓名='"+ textBox1 .Text .ToString ().Trim () +"'" dbop.BindDataGridView(dataGridView1, sql); textBox2.Text = Convert.ToString(dataGridView10, dataGridView1.CurrentCell.RowIndex.Valu
28、e); textBox3.Text = Convert.ToString(dataGridView11, dataGridView1.CurrentCell.RowIndex.Value); textBox4.Text = Convert.ToString(dataGridView12, dataGridView1.CurrentCell.RowIndex.Value); textBox5.Text = Convert.ToString(dataGridView13, dataGridView1.CurrentCell.RowIndex.Value); textBox6.Text = Conv
29、ert.ToString(dataGridView14, dataGridView1.CurrentCell.RowIndex.Value); textBox7.Text = Convert.ToString(dataGridView15, dataGridView1.CurrentCell.RowIndex.Value); else textBox1.Text = "" MessageBox.Show("姓名錯(cuò)誤!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
30、conn.Close(); private void button2_Click(object sender, EventArgs e) string sql = "select * from db_employee" dbop.BindDataGridView(dataGridView1 ,sql ); private void button3_Click(object sender, EventArgs e) if (textBox2.Text = "") MessageBox.Show("請(qǐng)輸入您要修改的員工編號(hào)!", &quo
31、t;提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else conn.Open(); string s = "select * from db_employee where 員工編號(hào)='" + textBox2.Text.ToString().Trim() + "'" SqlCommand cmd = new SqlCommand(s, conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (
32、sdr.HasRows) string sql = "update db_employee set 員工編號(hào)='" + textBox2.Text.Trim() + "',姓名='" + textBox3.Text.Trim() + "',性別='" + textBox4.Text.Trim() + "',年齡='" + textBox5.Text.Trim() + "',民族='" + textBox6.Text.Trim
33、() + "',職務(wù)='" + textBox7.Text.Trim() + "'where 員工編號(hào)='" + textBox2.Text + "'" dbop.OperateData(sql); MessageBox.Show("修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("員工編號(hào)不存在!", "
34、;提示", MessageBoxButtons.OK, MessageBoxIcon.Information); conn.Close(); private void button4_Click(object sender, EventArgs e) if (textBox2.Text = "") MessageBox.Show("請(qǐng)輸入您要?jiǎng)h除的用戶編號(hào)!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else conn.Open(); string
35、s = "select * from db_employee where 員工編號(hào)='" + textBox2.Text.ToString().Trim() + "'" SqlCommand cmd = new SqlCommand(s, conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (sdr.HasRows) string sql = "delete from db_employee where 員工編號(hào)='" + textBox
36、2.Text.Trim() + "'" dbop.OperateData(sql); /string sql1 = "delete from db_User where 用戶編號(hào)='" + textBox2.Text.Trim() + "'" /dbop.OperateData(sql1); MessageBox.Show("刪除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else Mess
37、ageBox.Show("您要?jiǎng)h除的員工編號(hào)不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); conn.Close(); private void button5_Click(object sender, EventArgs e) try if (textBox2.Text = "") MessageBox.Show("請(qǐng)輸入您要新增的用戶編號(hào)!", "提示", MessageBoxButtons.OK, Messag
38、eBoxIcon.Information); else conn.Open(); string s = "select * from db_employee where 員工編號(hào)='" + textBox2.Text.ToString().Trim() + "'" SqlCommand cmd = new SqlCommand(s, conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (sdr.HasRows) MessageBox.Show("您要新增的
39、員工以存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else string sql = "insert into db_employee values ('" + textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + te
40、xtBox5.Text.Trim() + "','" + textBox6.Text.Trim() + "','" + textBox7.Text.Trim() + "')" dbop.OperateData(sql); Form5 f5 = new Form5(); f5.id = textBox2.Text.Trim(); f5.Show(); conn.Close(); catch (Exception) MessageBox.Show("插入異常","提示&
41、quot;); throw; private void button6_Click(object sender, EventArgs e) Form6 f6 = new Form6(); f6.User = User; f6.Show(); private void button7_Click(object sender, EventArgs e) this.Close(); private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) textBox2.Text = dataGr
42、idView1.CurrentRow.CellsdataGridView1.Columns0.Index.Value.ToString(); textBox3.Text = dataGridView1.CurrentRow.CellsdataGridView1.Columns1.Index.Value.ToString(); textBox4.Text = dataGridView1.CurrentRow.CellsdataGridView1.Columns2.Index.Value.ToString(); textBox5.Text = dataGridView1.CurrentRow.Ce
43、llsdataGridView1.Columns3.Index.Value.ToString(); textBox6.Text = dataGridView1.CurrentRow.CellsdataGridView1.Columns4.Index.Value.ToString(); textBox7.Text = dataGridView1.CurrentRow.CellsdataGridView1.Columns5.Index.Value.ToString(); private void button8_Click(object sender, EventArgs e) textBox2.
44、Text = "" textBox3.Text = "" textBox4.Text = "" textBox5.Text = "" textBox6.Text = "" textBox7.Text = "" 點(diǎn)擊注冊(cè)按鈕,登錄用戶名、密碼就注冊(cè)了這時(shí)系統(tǒng)就有了用戶名為yumen,密碼為yumen的用戶了!其代碼如下:using System;using System.Collections.Generic;using System.ComponentModel;using
45、System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication1 public partial class Form5 : Form public Form5() InitializeComponent(); public string id; DBOperate dbop = new DBOperate(); private void Form5_Load(object sender, EventArgs e) /string sql = "insert into db_employee values ('" + textBox2.Text.Trim() + "'
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024運(yùn)輸合同書(shū)格式正規(guī)范本
- 2025年度智慧社區(qū)物業(yè)管理系統(tǒng)承包合同范本4篇
- 2024食品行業(yè)供應(yīng)鏈管理供貨合同范本3篇
- 2025年度住宅小區(qū)車輛收費(fèi)員雇傭合同材料3篇
- 2024銀杏樹(shù)苗圃基地設(shè)施租賃與苗木采購(gòu)合同3篇
- 2025年度智能化場(chǎng)消防系統(tǒng)升級(jí)改造維修工程合同4篇
- 2025年度新型智能車位買(mǎi)賣(mài)合同規(guī)范4篇
- 2025年度新能源汽車生產(chǎn)車間承包合作框架協(xié)議4篇
- 2025年度數(shù)據(jù)中心機(jī)房租賃及維護(hù)服務(wù)合同4篇
- 2025年度水庫(kù)環(huán)境保護(hù)與承包服務(wù)協(xié)議4篇
- 2025年度土地經(jīng)營(yíng)權(quán)流轉(zhuǎn)合同補(bǔ)充條款范本
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 0的認(rèn)識(shí)和加、減法(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版(2024)001
- 重癥患者家屬溝通管理制度
- 醫(yī)院安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)實(shí)施方案
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- 工程項(xiàng)目合作備忘錄范本
- 信息安全意識(shí)培訓(xùn)課件
- Python試題庫(kù)(附參考答案)
評(píng)論
0/150
提交評(píng)論