公司人事管理系統(tǒng),公司,人事管理系統(tǒng)
課 程 設(shè) 計(jì)
課程設(shè)計(jì)名稱: 公司人事管理系統(tǒng)
專 業(yè) 班 級(jí): 網(wǎng)絡(luò)系統(tǒng)管理1401班
學(xué) 生 姓 名 : 胡筱陽(yáng)
學(xué) 號(hào) : 201430910126
指 導(dǎo) 教 師 : 王雪濤
課程設(shè)計(jì)時(shí)間: 2014-2015第二學(xué)期
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)管理 專業(yè)課程設(shè)計(jì)任務(wù)書(shū)
學(xué)生姓名
胡筱陽(yáng)
專業(yè)班級(jí)
網(wǎng)管1401
學(xué)號(hào)
201430910126
題 目
公司人事管理系統(tǒng)
課題性質(zhì)
E.其它
課題來(lái)源
D.老師
指導(dǎo)教師
王雪濤
同組姓名
蘇云鵬
主要內(nèi)容
此企業(yè)人事管理系統(tǒng)采用B/S結(jié)構(gòu)、基于ASP.NET的程序設(shè)計(jì),主要對(duì)企 業(yè)員工的信息以及人事相關(guān)的工作進(jìn)行管理,以方便企業(yè)建立一個(gè)全面強(qiáng)大的員工數(shù)據(jù)庫(kù)管理系統(tǒng)。它在Microsoft Visual Studio.NET 2010開(kāi)發(fā)環(huán)境下設(shè)計(jì)系統(tǒng)的前臺(tái)界面和使用C#語(yǔ)言編寫(xiě)后臺(tái)操作程序,完成數(shù)據(jù)的輸入、查詢、修改、存儲(chǔ)、添加、刪除的基本功能;并使用SQL Server 2005數(shù)據(jù)庫(kù)形成后臺(tái)數(shù)據(jù)庫(kù)的支持及數(shù)據(jù)存儲(chǔ)。本文詳細(xì)介紹了企業(yè)人事管理系統(tǒng)的功能需求,系統(tǒng)的概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和具體實(shí)現(xiàn),并簡(jiǎn)要介紹了系統(tǒng)開(kāi)發(fā)所采用的過(guò)程及測(cè)試。
任務(wù)要求
本系統(tǒng)重點(diǎn)研究的問(wèn)題有以下幾點(diǎn):
①系統(tǒng)的功能需求
②系統(tǒng)的概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和具體實(shí)現(xiàn)
③系統(tǒng)網(wǎng)站的前臺(tái)界面設(shè)計(jì)、后臺(tái)編程設(shè)計(jì)
④系統(tǒng)調(diào)試過(guò)程及安全測(cè)試
參考文獻(xiàn)
李敏波.C#高級(jí)編程[M].北京:清華大學(xué)出版社,2000?
周存杰.Visual.?C#.NET.網(wǎng)絡(luò)核心編程[M].北京:清華大學(xué)出版社,2002?
袁然,王誠(chéng)梅編著SQL?Server?2000中文版經(jīng)典實(shí)例教程[M].冶金工業(yè)出版社,2006.11?
鄭阿奇.SQL?Server?2000實(shí)用教程第二版川北京電子工業(yè)出2005?
崔森,陳明非.Visual?C#程序設(shè)計(jì)教程北京機(jī)械工業(yè)出版社,2007.1
審查意見(jiàn)
指導(dǎo)教師簽字:
教研室主任簽字: 年 月 日
說(shuō)明:本表由指導(dǎo)教師填寫(xiě),由教研室主任審核后下達(dá)給選題學(xué)生,裝訂在設(shè)計(jì)(論文)首頁(yè)
實(shí)驗(yàn)報(bào)告
一 需求分析
通過(guò)對(duì)人事系統(tǒng)的整個(gè)應(yīng)用情況作全面的、詳細(xì)的調(diào)查,確定人事管理的目標(biāo),收集支持系統(tǒng)總的設(shè)計(jì)目標(biāo)的基礎(chǔ)數(shù)據(jù)和對(duì)這些數(shù)據(jù)的要求,確定用戶的需求。考慮在用戶進(jìn)入系統(tǒng)時(shí)應(yīng)該做什么,進(jìn)入系統(tǒng)之后又應(yīng)該做什么,提供那些服務(wù)等。例如,對(duì)于人事信息服務(wù)子系統(tǒng),在用戶進(jìn)入時(shí)首先得調(diào)用相關(guān)數(shù)據(jù)庫(kù)表,找出員工的相關(guān)情況;進(jìn)入系統(tǒng)后,系統(tǒng)得提供員工信息的添加、修改、刪除功能。另外,針對(duì)本系統(tǒng)的特殊情況,同時(shí)也考慮系統(tǒng)的可移植性,在系統(tǒng)中增加了數(shù)據(jù)庫(kù)路徑的維護(hù)部分。最后,考慮到系統(tǒng)的安全性,還在系統(tǒng)中特別增加了加密界面的功能
二 程序流程圖
人事管理系統(tǒng)
1整體框架圖:
數(shù)據(jù)庫(kù)維護(hù)模塊
系統(tǒng)維護(hù)模塊
信息管理模塊
2具體功能框圖
登陸管理系統(tǒng)
是否登陸成功
是
否
添加管理人事信息
3 運(yùn)行環(huán)境
硬件:CPU, 內(nèi)存, 主板, 硬盤(pán), 顯卡, 鍵盤(pán), 顯示器等等。
軟件:Windows XP Visual Studio2013應(yīng)用軟件。
4 開(kāi)發(fā)工具和編程語(yǔ)言
開(kāi)發(fā)工具:Visual Studio 2013
編程語(yǔ)言:C# 語(yǔ)言
5 詳細(xì)設(shè)計(jì)
1) 登陸系統(tǒng)
using System; using System.Data;
using System.Configuration; using System.Collections; using System.Web;
using System.Web.Security; using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net;// using System.IO;
public partial class Default8 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
//TextBox1.Text = Request["STAFFNAME"]; //TextBox1.Text = Request["userid"]; }
private void UpLoadFile()// {
// string name1 = Request["STAFFNAME"].ToString(); //string id1 = Request["STAFFNAME"].ToString();
//string filename11 = name1.ToString().Trim() + ; //string filename11 = name1.ToString().Trim() if (FileUpload1.HasFile) {
if (FileUpload1.PostedFile != null) {
// string folder = "\\"+ Request["STAFFNAME"].ToString().Trim(); //string folder = "\\" + Request["STAFFNAME"].ToString().Trim(); //string banji = folder.Substring(0, 9);
string str;
// str = Server.MapPath(".") + "\\UploadFile\\" + "\\" + folder; str = Server.MapPath(".") + "\\UploadFile" + "\\"
this.FolderCreate(str);
HttpPostedFile hpf = this.FileUpload1.PostedFile; string FileSize =
2) 修改密碼
using System;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls; using
System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using
System.Data.SqlClient;
public partialclassDefault3 System.Web.UI.PageDatacondataconn =neDatacon(); protectedvoidPage_Loa
objectsender, EventArgs e)
{
} protectedvoidButton1_Clickobjectsender,EventArge)
{ qlConnection
con = dataconn.getcon(); con.Open();
//SqlCommand com = con.CreateCommand();
//com.CommandText = "select count(*) from examstu_info where stu_id='"
+TextBox1.Text.ToString().Trim() + "'"
//int count2 = Convert.ToInt32(com.ExecuteScalar()); //if (count2 > 0)
//{ stringQuerystr =select USERNAME,PASSWORD from T_USER where USERNAME='"extBox1.Text.ToString().Trim() + SqlCommandmyCommand =newSqlCommand(Querystr, con); SqlDataReadermyDataReader = myCommand.ExecuteReader();
myDataReader.Read(
//TextBox2.Text = myDataReader.GetValue(0).ToString();
TextBox3.Text = myDataReader.GetValue(0).ToString();
TextBox4.Text = myDataReader.GetValue(1).ToString();
con.Close()
protectedvoid
Button2_Click(object sender, EventArgse) { SqlConnectioncon = dataconn.getcon();
con.Open(); stringsqlname =
"update T_USER set PASSWORD=" +
"'" + TextBox4.Text +
"'" +"where
USERNAME="
+
"'" + TextBox3.Text + ;SqlCommandcmdname = newSqlCommand(sqlname, con); cmdname.ExecuteNonQuery(); con.Close(); } protected
void
Button3_Click(object
sender,
EventArgse)
{ protectedvoidButton1_Click1(objectsender, EventArgse)
{ SqlConnectioncon = dataconn.getcon(); con.Open(); //SqlCommand com = con.CreateCommand(); //com.CommandText = "select count(*) from examstu_info where stu_id='" +TextBox1.Text.ToString().Trim() + "'"
//int count2 = Convert.ToInt32(com.ExecuteScalar()); //if (count2 > 0)//
{ stringQuerystr = select USERNAME,PASSWORD from T_USER where USERNAME='"TextBox1.Text.ToString().Trim() + SqlCommand myCommand = newSqlCommand(Querystr, con); SqlDataReadermyDataReader = myCommand.ExecuteReader();
myDataReader.Read(); //TextBox2.Text = myDataReader.GetValue(0).ToString();
TextBox3.Text = myDataReader.GetValue(0).ToString();
TextBox4.Text = myDataReader.GetValue(1).ToString();
con.Close();
}
}
3驗(yàn)證碼
usinSystem;?
usingSystem.Data;?
usingSystem.Configuration;?
usingSystem.Collections;?
usingSystem.Web;?
usingSystem.Web.Security;?
usingSystem.Web.UI;?
usingSystem.Web.UI.WebControls;?
usingSystem.Web.UI.WebControls.WebParts;?
usingSystem.Web.UI.HtmlControls;?
usingSystem.Drawing;?
usingSystem.Drawing.Design;?
usingSystem.Drawing.Drawing2D;?
usingSystem.Drawing.Printing;?
usingSystem.Drawing.Imaging;?
Using System.IO;?
public partial class CreateCheckCode : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
CreateCheckCodeImage(GenCode(4)); } /**/
///
///
///
///
private string GenCode(int num) {
string[] source ={ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
string code = ""; Random rd = new Random(); int i;
for (i = 0; i < num; i++) {
code += source[rd.Next(0, source.Length)];
//code += str.Substring(rd.Next(0, str.Length), 1); }
return code; } /**/
///
///
///
private void CreateCheckCodeImage(string checkCode) {
if (checkCode.Trim() == "" || checkCode == null) return;
Session["Code"] = checkCode;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)(checkCode.Length * 15), 22);
Graphics g = Graphics.FromImage(image); try
{
Random random = newRand g.Clear(Color.White); int
i; for
(i = 0; i < 30; i++)
{ int x1 = random.Next(image.Width);
intx2 = random.Next(image.Width); int
y1 = random.Next(image.Height);
inty2 = random.Next(image.Height);
g.DrawLine(newPen
Color.Gainsboro), x1, y1, x2, y2);
Fontfont = new
System.Drawing.
Fon
"Arial"12,
(System.Drawing.
FontStyle.Bold)); System.Drawing.Drawing2D.LinearGradientBrush
brush =
new
System.Drawing.Drawing2D.
LinearGradientBrush
(new
Rectangle
(0, 0, image.Width, image.Height),
Color
.MidnightBlue,
Color
.Green, 1.2F,
g.DrawString(checkCode, font, brush, 2, 2);
g.DrawRectanglenew
PenColor
.YellowGreen), 0, 0, image.Width - 1, image.Height - System.IO.MemoryStream ms = newSystem.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif" Response.BinaryWrite(ms.ToArray());
} catch
{
g.Dispose(); image.Dispose(); }
}
}
6 調(diào)試分析
(1)剛編譯完后有很多錯(cuò)誤和警告,運(yùn)行失敗,然后經(jīng)過(guò)修改錯(cuò)誤警告慢慢減少,最終可以運(yùn)行。
(2)程序綁定數(shù)據(jù)庫(kù)有很多問(wèn)題。
(3)該程序中可能還存在一些小問(wèn)題,比如有的時(shí)候調(diào)試不出來(lái)銳化的按鈕,并且我在編譯的過(guò)程中發(fā)現(xiàn)自己存在細(xì)節(jié)上的盲區(qū),有點(diǎn)粗心等,不注意細(xì)節(jié),其實(shí)自己也知道細(xì)節(jié)決定成敗,以后我會(huì)注意。
7測(cè)試結(jié)果
運(yùn)行
登陸成功 修改信息
8 課程設(shè)計(jì)總結(jié)
在課程設(shè)計(jì)完成之際,我首先要感謝各位老師的悉心指導(dǎo),他們嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,一絲不茍的敬業(yè)精神給我留下了深刻的印象。感謝他們?cè)诎倜χ幸恢倍酱訇P(guān)心著我的課程設(shè)計(jì)。他們的博學(xué)、勤勉以及平和的為人,使我油然而生敬意。通過(guò)這兩個(gè)星期的課設(shè),使我對(duì)C#語(yǔ)言的有了更深入、更全面的了解,同時(shí)也發(fā)現(xiàn)自己的英文和函數(shù)基礎(chǔ)不是很好,對(duì)很多地方不是特別懂,甚至對(duì)有些概念都還很模糊,但通過(guò)這次課程設(shè)計(jì),使我對(duì)C#語(yǔ)言有了新的認(rèn)識(shí)。
參考文獻(xiàn)
李敏波.C#高級(jí)編程[M].北京:清華大學(xué)出版社,2000?
周存杰.Visual.?C#.NET.網(wǎng)絡(luò)核心編程[M].北京:清華大學(xué)出版社,2002?
袁然,王誠(chéng)梅編著SQL?Server?2000中文版經(jīng)典實(shí)例教程[M].冶金工社,
2006.11?鄭阿奇.SQL?Server?2000實(shí)用教程第二版川北京電子工業(yè)2005?
崔森,陳明非.Visual?C#程序設(shè)計(jì)教程北京機(jī)械工業(yè)出版社,2007.1
18