公司人事管理系統(tǒng),公司,人事管理系統(tǒng)
課 程 設(shè) 計(jì)
課程設(shè)計(jì)名稱(chēng): 圖書(shū)信息管理系統(tǒng)
專(zhuān) 業(yè) 班 級(jí): 網(wǎng)絡(luò)系統(tǒng)管理1401班
學(xué) 生 姓 名 : 趙聘卿
學(xué) 號(hào) : 201430910124
指 導(dǎo) 教 師 : 王雪濤
課程設(shè)計(jì)時(shí)間: 2014-2015-2
網(wǎng)絡(luò)系統(tǒng)管理 專(zhuān)業(yè)課程設(shè)計(jì)任務(wù)書(shū)
學(xué)生姓名
趙聘卿
專(zhuān)業(yè)班級(jí)
網(wǎng)管1401
學(xué)號(hào)
201430910124
題 目
圖書(shū)信息管理系統(tǒng)
課題性質(zhì)
其它
課題來(lái)源
自擬
指導(dǎo)教師
王雪濤
同組姓名
主要內(nèi)容
1、了解圖書(shū)信息管理系統(tǒng)的基本原理及用途。
2、了解圖書(shū)信息管理的直接操作法,內(nèi)存法及指針?lè)ǖ母髯蕴攸c(diǎn),并掌握指針?lè)ǖ膱D像處理編程
3、掌握?qǐng)D書(shū)信息管理系統(tǒng)的基礎(chǔ)處理的C#編程技術(shù)
任務(wù)要求
1、通過(guò)書(shū)本查詢(xún)和運(yùn)用Internet,收集和調(diào)查有關(guān)資料、完善信息。
2、綜合運(yùn)用和融化所學(xué)理論知識(shí),提高分析和解決實(shí)際問(wèn)題的能力,采用Visual Studio + SQL Server服務(wù)平臺(tái),C+語(yǔ)言編程來(lái)書(shū)寫(xiě)和完善圖書(shū)信息;
3、完成需求分析報(bào)告,報(bào)告中對(duì)關(guān)鍵部分給出圖表說(shuō)明。要求格式規(guī)范,工作量飽滿。
參考文獻(xiàn)
1、《Web程序設(shè)計(jì)—ASP.NET 網(wǎng)站開(kāi)發(fā)》 陳作聰 王永皎 程鳳娟 清華大學(xué)出版社
2、《C#語(yǔ)言程序設(shè)計(jì)教程》(第二版) 劉甫迎 劉光會(huì) 王蓉 電子工業(yè)出版社
審查意見(jiàn)
指導(dǎo)教師簽字:
教研室主任簽字: 年 月 日
說(shuō)明:本表由指導(dǎo)教師填寫(xiě),由教研室主任審核后下達(dá)給選題學(xué)生,裝訂在設(shè)計(jì)(論文)首頁(yè)
圖書(shū)信息管理系統(tǒng)
一 需求分析
圖書(shū)館管理系統(tǒng)需要滿足來(lái)自三方面的需求:圖書(shū)借閱者、圖書(shū)館工作人員和圖書(shū)館管理人員。
其中幾個(gè)重要的功能包括系統(tǒng)登錄模塊,書(shū)庫(kù)信息管理,讀者信息管理,管理員賬號(hào)信息管理,等功能模塊。
登錄模塊是系統(tǒng)的首頁(yè)面是對(duì)用戶登錄模塊進(jìn)行管理的功能模塊,用戶輸入帳號(hào)和密碼選擇用戶角色登錄成功后根據(jù)角色的不同分別進(jìn)入不同的管理模塊。
讀者管理模塊包括添加讀者信息,修改讀者信息等功能模塊。
修改登錄密碼提供了一個(gè)登錄成功的用戶可以修改自己的密碼防止密碼的泄漏,登錄用戶首先要輸入系統(tǒng)原來(lái)的密碼,然后輸入新的密碼點(diǎn)擊修改密碼確認(rèn)后就修改了原來(lái)的密碼,下次登錄使用新的密碼進(jìn)行登錄。
用戶信息管理是對(duì)登錄帳號(hào)信息進(jìn)行管理的功能模塊,用戶信息包括登錄帳號(hào),登錄密碼,系統(tǒng)用戶包括系統(tǒng)管理員和圖書(shū)管理員2個(gè)用戶角色分別對(duì)不同的功能模塊進(jìn)行操作。
二 程序流程圖
圖書(shū)信息管理系統(tǒng)
1整體框架圖
系統(tǒng)管理
讀者管理
書(shū)庫(kù)管理
讀者查看
賬號(hào)管理
數(shù)據(jù)庫(kù)管理
管理讀者信息
添加讀者信息
添加圖書(shū)信息
查詢(xún)圖書(shū)信息
查詢(xún)信息
修改信息
編號(hào)
2數(shù)據(jù)庫(kù)E-R框架圖
管理員信息
登錄賬號(hào)
登錄密碼
登錄
登錄
圖書(shū)名稱(chēng)
郵箱
登陸賬號(hào)號(hào)
圖書(shū)信息
用戶信息
借閱次數(shù)
圖書(shū)類(lèi)別
登錄密碼
電話
出版處
價(jià)格
證件號(hào)碼
編號(hào)
作者
性別
編號(hào)
3 運(yùn)行環(huán)境
硬件:CPU, 內(nèi)存, 主板, 硬盤(pán), 顯卡, 鍵盤(pán), 顯示器等等。
操作系統(tǒng):Windows XP
數(shù)據(jù)庫(kù)系統(tǒng):SQL Server 2005
4 開(kāi)發(fā)工具和編程語(yǔ)言
開(kāi)發(fā)平臺(tái): Visual Studio 2010
開(kāi)發(fā)工具: Visual Studio .NET
編程語(yǔ)言: C#
5 數(shù)據(jù)庫(kù)設(shè)計(jì)
(1)用戶信息表
表1用戶信息表(users)
(2)讀者信息表
表2讀者信息表(reader)
(3)圖書(shū)類(lèi)型信息表
表3圖書(shū)類(lèi)型信息表(bookType)
(4)圖書(shū)信息表
表4圖書(shū)信息表(books)
(5) 借閱歸還信息表
表5借閱歸還信息表(bookBorrow)
6 asp.net設(shè)計(jì)
(1) 數(shù)據(jù)庫(kù)的連接
數(shù)據(jù)庫(kù)連接我們采用比較流行的WEB.CONFIG文件進(jìn)行配置數(shù)據(jù)庫(kù)的連接,這樣可以實(shí)現(xiàn)配置一次就可以在整個(gè)程序中使用這個(gè)數(shù)據(jù)庫(kù)連接。
2)登錄模塊詳細(xì)設(shè)計(jì)
登錄模塊是系統(tǒng)的首頁(yè)面是對(duì)用戶登錄模塊進(jìn)行管理的功能模塊,用戶輸入帳號(hào)和密碼選擇用戶角色登錄成功后根據(jù)角色的不同分別進(jìn)入不同的管理模塊。
圖三系統(tǒng)登錄的運(yùn)行效果圖:
管理員登陸關(guān)鍵代碼如下:
protected void Image1_ServerClick(object sender, ImageClickEventArgs e)
{
string sqlstr;
sqlstr = "select * from users where userName='" + this.Text1.Value.Trim() + "'";
SqlConnection scon = new SqlConnection(SqlHelper.connstring);
scon.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sqlstr, scon);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "users");
if (myDataSet.Tables[0].Rows.Count > 0)
{
string strPwd = myDataSet.Tables[0].Rows[0]["userPwd"].ToString();
string UserName = myDataSet.Tables[0].Rows[0]["userName"].ToString();
string PowerName = myDataSet.Tables[0].Rows[0]["PowerName"].ToString();
string UserId = myDataSet.Tables[0].Rows[0]["userId"].ToString();
scon.Close();
if (strPwd != Password1.Value.Trim())
{
Alert.AlertAndRedirect("密碼錯(cuò)誤", "Login.aspx");
}
else
{
Session["Sysuser"] = UserName;
Session["PowerName"] = PowerName;
Session["UserId"] = UserId;
Session["userName"] = UserName;
Response.Redirect("main.aspx?Name=" + UserName + "&Power=" + PowerName);
}
}
else
{
Alert.AlertAndRedirect("賬號(hào)或密碼錯(cuò)誤", "Login.aspx");
scon.Close();
}
}
3) 查詢(xún)圖書(shū)信息
查詢(xún)圖書(shū)信息用2個(gè)頁(yè)面實(shí)現(xiàn)查詢(xún)功能,首先輸入圖書(shū)查詢(xún)的條件,然后通過(guò)頁(yè)面?zhèn)髦蛋巡樵?xún)條件信息傳值到圖書(shū)信息顯示界面,然后在綁定數(shù)據(jù)庫(kù)信息顯示查詢(xún)的圖書(shū)信息。
圖四圖書(shū)查詢(xún)的運(yùn)行效果圖:
關(guān)鍵代碼如下:
public void bindBook()
{
string bookBarCode = Request.QueryString["bookBarCode"].ToString();
string bookName = Request.QueryString["bookName"].ToString();
string bookType = Request.QueryString["bookType"].ToString();
string sql = "select * from books where 1=1 ";
if (bookBarCode != "")
{
sql += " and bookBarCode like '%" + bookBarCode + "%' ";
}
if (bookName != "")
{
sql += " and bookName like '%" + bookName + "%' ";
}
if (bookType != "選擇類(lèi)別")
{
sql += " and bookType like '%" + bookType + "%' ";
}
if (dataOperate.getDataset(sql, "books").Tables[0].Rows.Count == 0)
{
Label1.Text = "沒(méi)有符合條件的記錄";
}
else
{
gvBookManage.DataSource = dataOperate.getDataset(sql, "books"); //獲取圖書(shū)信息數(shù)據(jù)源
gvBookManage.DataKeyNames = new string[] { "bookBarCode" }; //設(shè)置主鍵字段
gvBookManage.DataBind();
Label1.Text = "";
} }
4)添加圖書(shū)信息
添加圖書(shū)信息是圖書(shū)管理員對(duì)圖書(shū)信息進(jìn)行添加的功能模塊?;镜膱D書(shū)信息包括圖書(shū)的編號(hào),圖書(shū)的名稱(chēng),圖書(shū)的出版社,圖書(shū)的價(jià)格等基本信息。
圖五
添加圖書(shū)的運(yùn)行效果圖:
關(guān)鍵代碼如下:
protected void btnSave_Click(object sender, EventArgs e)
{
string bookBarcode = txtBarCode.Text; //獲取圖書(shū)條形碼信息
string bookName = txtBookName.Text; //獲取圖書(shū)名稱(chēng)信息
string bookType = ddlBookType.SelectedValue; //獲取圖書(shū)類(lèi)型信息
string bookcase = ddlBookcase.SelectedValue; //獲取書(shū)架信息
string author = txtAuthor.Text; //獲取圖書(shū)作者信息
string price = txtPrice.Text;
string ds = TextBox1.Text;
//獲取圖書(shū)價(jià)格信息
string sql = "";
//判斷當(dāng)前對(duì)圖書(shū)信息的操作
if (id == "add")
{
sql = "insert into books(bookBarCode,bookName,bookType,bookcase,author,price,ds,publishingId,publishingName,ZongNum,KeJieNum,RuKuTime) values('" + bookBarcode + "','" + bookName + "','" + bookType + "','" + bookcase + "','" +
author + "'," + price + ",'" + ds +
"','"+DropDownList1.SelectedValue+"','"+DropDownList1.SelectedItem.Text+"','"+TextBox2.Text+
"','"+TextBox3.Text+"','"+TextBox4.Text+"')";
}
Else
sql = "update books set bookName='" + bookName + "',bookType='" + bookType + "',bookcase='" + bookcase + "',author='" + author + "',price=" + price + " ,ds='" + ds + "',publishingId='" + DropDownList1.SelectedValue + "',publishingName='" + DropDownList1.SelectedItem.Text + "',ZongNum='" + TextBox2.Text + "',KeJieNum='" + TextBox3.Text + "',RuKuTime='"+TextBox4.Text+"' where bookBarcode='" + bookBarcode + "'";
if (dataOperate.execSQL(sql)) //判斷添加或修改是否成功
{
Response.Write("");
}
else
{
RegisterStartupScript("", "");
}
}
5)添加讀者信息
管理員可以在后臺(tái)添加讀者的信息,把讀者信息添加到數(shù)據(jù)庫(kù)中,讀者信息包括讀者的帳號(hào),密碼,讀者編號(hào),讀者的電話等信息。
圖六添加讀者的運(yùn)行效果圖:
關(guān)鍵代碼如下:
protected void btnSave_Click(object sender, EventArgs e)
{
string readerBarCode = txtReaderBarCode.Text;
string readerName = txtReaderName.Text;
string sex = "";
if (radbtnMan.Checked)
{
sex = "男";
}
else
{
sex = "女";
}
string certificateType = ddlCertificateType.SelectedItem.Text;
string certificate = txtCertificate.Text;
string tel = txtTel.Text;
string email = txtEmail.Text;
string remark = txtRemark.Text;
string sql = "";
if (barcode == "add")
{
sql = "insert into reader(readerBarCode,userName,sex,certificateType,certificate,tel,email,remark,userPwd,reade
rType)values('" + readerBarCode + "','" + readerName + "','" + sex + "','" + certificateType + "','" +
certificate + "','" + tel + "','" + email + "','" + remark + "','" + TextBox1.Text + "','" + ddlCertificateType.SelectedItem.Text + "')";
}
else
{
sql = "update reader set userName='" + readerName + "',sex='" + sex + "',certificateType='" + certificateType + "',certificate='" +
certificate + "',tel='" + tel + "',email='" + email + "',remark='" + remark + "' where readerBarCode='" + barcode + "'";
}
if (dataOperate.execSQL(sql))
{
RegisterStartupScript("", "");
}
else
RegisterStartupScript("", "");
}
6)帳號(hào)信息管理
系統(tǒng)管理員可以在后臺(tái)太添加使用系統(tǒng)的用戶信息就是對(duì)帳號(hào)的管理,帳號(hào)管理包括添加帳號(hào),修改帳號(hào),刪除帳號(hào)等功能。
圖七添加帳號(hào)的運(yùn)行效果圖:
關(guān)鍵代碼如下:
protected void btnAdd_Click(object sender, EventArgs e)
{
string userName = txtUserName.Text;
string pass = txtPass.Text;
if (id == "add")
{
string sql = "insert into users(userName,userPwd,PowerName)values('" + userName + "','" + pass + "','超級(jí)管理員')";
if (dataOperate.execSQL(sql))
{
RegisterStartupScript("", "");
}
else
{
////RegisterStartupScript("", "");
}
}
else
{
string sql = "update users set userName='" + userName + "',userPwd='" + pass + "' where userId=" + id;
if (dataOperate.execSQL(sql))
{
RegisterStartupScript("", "");
}
else
{
////RegisterStartupScript("", "");
}
}
7) 系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的增刪改查操作
using System;
using System.Data;
using System.Configuration;
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.Data.SqlClient;
///
/// dataOperate 的摘要說(shuō)明
///
public class dataOperate
{
static SqlConnection con;
public dataOperate()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
//執(zhí)行數(shù)據(jù)庫(kù)的添加刪除更新操作
public static bool execSQL(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
try
{
com.ExecuteNonQuery();
con.Close();
}
catch (Exception e)
{
con.Close();
return false;
}
return true;
}
//查找記錄是否存在
public static int seleSQL(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
try
{
return Convert.ToInt32(com.ExecuteScalar());
con.Close();
}
catch (Exception e)
{
con.Close();
return 0;
}
}
//返回所有記錄
public static DataSet getDataset(string sql, string table)
{
SqlConnection con = createCon();
con.Open();
DataSet ds;
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
ds = new DataSet();
sda.Fill(ds, table);
return ds;
}
//返回一條記錄
public static SqlDataReader getRow(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
return com.ExecuteReader();
}
public static SqlConnection createCon()
{
con = new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
return con;
}
}
6 調(diào)試分析
(1)剛完成時(shí)有很多錯(cuò)誤和警告,運(yùn)行失敗,然后經(jīng)過(guò)修改錯(cuò)誤警告慢慢減少,最終可以運(yùn)行。
(2)在調(diào)試過(guò)程中對(duì)知識(shí)點(diǎn)的掌握不牢固,程序中可能還存在各種問(wèn)題,比如有的時(shí)候調(diào)試不出來(lái)結(jié)果,并且我在完成的過(guò)程中發(fā)現(xiàn)自己存在細(xì)節(jié)上的盲區(qū),有點(diǎn)粗心等,不注意細(xì)節(jié)。
(3)字母大小寫(xiě)忘記區(qū)分,控件的屬性功能不熟悉.
課程設(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í)。
再次感謝周老師給我這個(gè)機(jī)會(huì)加入到數(shù)字圖像處理項(xiàng)目中來(lái),使我能夠?qū)W習(xí)到許多圖像處理學(xué)科前沿的知識(shí),而且通過(guò)實(shí)際項(xiàng)目開(kāi)發(fā),積累了寶貴的實(shí)踐經(jīng)驗(yàn),提高了我用Visual C#編程的能力。
參考文獻(xiàn)
1、《Web程序設(shè)計(jì)—ASP.NET網(wǎng)站開(kāi)發(fā)》陳作聰 王永皎 程鳳娟 清華大學(xué)出版社
2、《網(wǎng)頁(yè)設(shè)計(jì)制作與上級(jí)指導(dǎo)》陳秋江 朱海東 第1版 清華大學(xué)出版社
3、《ASP.NET網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)》高怡新 第2版 人民郵電出版社
4、《基于Web的編程技術(shù)》范樂(lè) 于強(qiáng) 第1版 鐵道電出版社
5、《ASP.NET Web編程實(shí)例教程》馬照亭 北京希望電子出版社
6、 肖金秀等.《ASP.NET網(wǎng)絡(luò)編程技術(shù)》肖金秀 清華大學(xué)出版社
19