網(wǎng)絡U盤課程設計說明書_第1頁
網(wǎng)絡U盤課程設計說明書_第2頁
網(wǎng)絡U盤課程設計說明書_第3頁
網(wǎng)絡U盤課程設計說明書_第4頁
網(wǎng)絡U盤課程設計說明書_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 課程設計設計說明書 電子信息工程09-1班 王旭濤科信學院課程設計說明書(2011/2012學年第一學期)課程名稱 : 軟件程序設計 題 目 : 網(wǎng)絡U盤 專業(yè)班級 : 電子信息工程09-1 學生姓名 : 學 號: 指導教師 : 設計周數(shù) : 2周 設計成績 : 2012年1月6日目 錄1. 緒論11.1 課程設計的意義及目的21.2 課程設計的主要任務21.3 課程設計的技術(shù)要求22設計正文32.1 網(wǎng)絡U盤設計分析32.1.1 需求分析32.1.2 系統(tǒng)總體框圖32.2 數(shù)據(jù)庫設計32.2.1 數(shù)據(jù)庫所列表32.3 程序設計42.3.1 程序分析42.3.2 程序流程圖42.3.3 主要

2、代碼52.4 系統(tǒng)測試153設計總結(jié)164參考資料171 緒論1.1 課程設計的意義及目的 軟件程序設計是一個重要的實踐性教學環(huán)節(jié),是通信專業(yè)的技術(shù)基礎課。通過這一訓練可以鞏固學生所學C#和數(shù)據(jù)庫的理論知識,有助于學生培養(yǎng)正確的設計思想,逐步樹立正確的設計思想,培養(yǎng)分析和解決實際問題的能力。對后續(xù)專業(yè)課程的學習、畢業(yè)設計以及今后從事程序設計工作奠定扎實的基礎具有重要的意義。 其目的主要包括:(1)通過本次課程設計,熟悉網(wǎng)絡U盤的設計過程;(2)掌握C#和數(shù)據(jù)庫相結(jié)合設計軟件的方法;(3)掌握登錄、文件上傳、下載、刪除、重命名等常用功能的編寫方法;(4)掌握數(shù)據(jù)綁定、排序、分頁的實現(xiàn)方法;(5)

3、掌握其主要思想,能夠舉一反三,設計其他軟件程序。1.2 課程設計的主要任務(1)根據(jù)技術(shù)要求和現(xiàn)有開發(fā)環(huán)境,分析題目;(2)設計軟件方案。包括:模式的選擇(B/S或C/S)、數(shù)據(jù)庫的選擇、軟件功能結(jié)構(gòu)、各功能模塊的詳細描述、關(guān)鍵程序流程圖、數(shù)據(jù)庫中表的結(jié)構(gòu)設計等;(3)調(diào)試、修改并完善程序(4)生成安裝程序,編寫軟件使用說明書(圖文結(jié)合進行描述);(5)修改并完善設計;(6)撰寫課程設計報告。1.3 課程設計的技術(shù)要求(1)個人用戶登錄,新用戶注冊,密碼修改;(2)個人上傳文件,并可對文件進行管理;(3)個人可下載自己的文件;(4)文件按時間先后順序排序顯示,并支持分頁顯示功能。2 設計正文2

4、.1 網(wǎng)絡U盤設計分析2.1.1 需求分析根據(jù)網(wǎng)絡U盤的技術(shù)要求和現(xiàn)有開發(fā)環(huán)境,作如下具體需求分析:本設計可以在基于Web模式下實現(xiàn)用戶對文件的基本管理,包括上傳、下載、重命名和刪除等基本操作;可注冊一些新用戶進行個人文件的管理;用戶可自行修改自身密碼;在文件列表中文件需按時間先后順序排序顯示,并支持分頁顯示功能。2.1.2 系統(tǒng)總體框圖網(wǎng)絡U盤系統(tǒng)pan系統(tǒng)新用戶注冊系統(tǒng)普通用戶系統(tǒng)新用戶注冊模塊新用戶登錄模塊用戶操作模塊文件管理模塊幫助用戶登錄模塊修改密碼模塊用戶上傳文件模塊重命名文件模塊刪除文件模塊下載文件模塊幫助圖2-1 網(wǎng)絡U盤系統(tǒng)設計結(jié)構(gòu)圖2.2 數(shù)據(jù)庫設計2.2 數(shù)據(jù)庫所列表文件

5、信息表(Directory):表2-1 文件列表(Directory)列名數(shù)據(jù)類型長度是否為主鍵是否為空注釋DirIDint是否文件序號Namevarchar20否否文件名稱Containint否否文件大小CreateDatedatetime否否創(chuàng)建時間Urlvarchar255否否文件路徑Typevarchar200否否文件類型用戶信息表(Users):表2-2 用戶信息表(Users)列名數(shù)據(jù)類型長度是否為主鍵是否為空注釋UserNamevarchar20是否用戶登錄帳號UserPasswordvarchar20否否用戶登錄密碼2.3程序設計2.3.1 程序分析通過分析任務,程序中封裝一個

6、類供各部分相應窗體后臺代碼調(diào)用,類名為:王旭濤.cs。其中包括的方法為:獲取單個文件的信息-GetSingleFile添加文件信息到數(shù)據(jù)庫-AddFile修改數(shù)據(jù)庫中的文件名-EditFile刪除數(shù)據(jù)庫中的文件信息-DeleteFile對應設計中的用戶登錄頁面、新用戶注冊頁面、查看文件頁面、修改密碼頁面、上傳文件頁面和管理頁面,設計的后臺代碼及名稱包括登錄代碼Login.aspx.cs,注冊代碼UserAdd.aspx.cs,文件列表代碼List.aspx.cs,修改密碼的代碼ModifyPwd.aspx.cs,上傳代碼UpLoad.aspx.cs,下載代碼Down.aspx.cs,重命名代碼

7、EditFile.aspx.cs,刪除文件代碼GuanLi.aspx.cs。開始初始化程序進入相應登錄頁面輸入登錄賬號和密碼判斷數(shù)據(jù)庫里帳號與密碼是否相符?進入各自相應界面輸出登錄失敗信息結(jié)束2.3.2 程序流程圖圖2-2 用戶登錄流程圖開始初始化程序新用戶注冊頁面進入各自相應界面輸出注冊失敗信息結(jié)束進入登錄頁面注冊成功?意接受圖2-3 新注冊用戶登錄流程圖2.3.1 主要代碼(1)封裝類王旭濤.cs:public class 王旭濤 public SqlDataReader GetSingleFile(int nFileID) SqlConnection myConnection = new

8、 SqlConnection(ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); string cmdText = "SELECT * "+ "FROM Directory WHERE Directory.DirID='"+ nFileID.ToString() + "'" SqlCommand myCommand = new SqlCommand(cmdText, myConnection);

9、 SqlDataReader dr = null; myConnection.Open(); dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);/返回DataReader return dr; public int AddFile(string sName, int nContain, string sUrl, string sType) /創(chuàng)建鏈接 SqlConnection myConnection = new SqlConnection( ConfigurationManager.ConnectionStrings

10、"SQLCONNECTIONSTRING".ConnectionString); /定義SQL語句,添加 string cmdText = "INSERT INTO Directory Name,Contain,Url,Type,CreateDate)VALUES("+ "'" + sName + "'," + "'" + nContain.ToString() + "'," + "'" + sUrl + "

11、;'," + "'" + sType + "'," + "GetDate()"+ ")" /創(chuàng)建Command SqlCommand myCommand = new SqlCommand(cmdText, myConnection); /定義返回值 int nResult = -1; try myConnection.Open(); /執(zhí)行SQL語句 nResult = myCommand.ExecuteNonQuery(); finally /關(guān)閉鏈接 myConnection.

12、Close(); /返回nResult return nResult; public int EditFile(int nFileID, string sName, string sUrl) SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); string cmdText = "UPDATE Directory SET Name ="+ "'

13、;" + sName + "'"+ ", Url ="+ "'" + sUrl + "'"+ " WHERE DirID='" + nFileID.ToString() + "'" /創(chuàng)建Command SqlCommand myCommand = new SqlCommand(cmdText, myConnection); /定義返回值 int nResult = -1; try /打開鏈接 myConnection.Ope

14、n(); /執(zhí)行SQL語句 nResult = myCommand.ExecuteNonQuery(); finally /關(guān)閉鏈接 myConnection.Close(); return nResult; public int DeleteFile(int nFileID) SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); string cmdText = "d

15、elete Directory where DirID ="+ "'" + nFileID.ToString() + "'" SqlCommand myCommand = new SqlCommand(cmdText, myConnection); int nResult = -1; try myConnection.Open(); /執(zhí)行SQL語句 nResult = myCommand.ExecuteNonQuery(); finally /關(guān)閉鏈接 myConnection.Close(); /返回nResult retu

16、rn nResult; (2)用戶登錄代碼Login.aspx.cs:protected void Button1_Click(object sender, EventArgs e) /打開連接 SqlConnection myConnection = new SqlConnection( ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); myConnection.Open(); /定義查詢語句 string sql = "select * from Use

17、rs where UserName='" + txtUserName.Text.Trim() + "'and UserPassword='" + txtUserPassword.Text.Trim() + "'" SqlCommand myCommand = new SqlCommand(sql, myConnection); SqlDataReader dr = myCommand .ExecuteReader (); if (dr.Read() /登錄成功 保存用戶名到下一頁 Session"use

18、rname" = txtUserName.Text.Trim(); Response.Redirect("/Default.aspx"); else Response.Write("<script>alert('" + "用戶名或密碼錯誤!" + "');</script>"); dr.Close(); myConnection.Close(); (3)新用戶注冊代碼UserAdd.aspx.cs:protected void Button1_Click (obje

19、ct sender, EventArgs e) if (TextBox1.Text.Trim().Length != 0) if (TextBox2.Text.Trim().Length != 0) if (TextBox2.Text.Trim() = TextBox3.Text.Trim() /創(chuàng)建連接 SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); myConnecti

20、on.Open(); /驗證用戶名是否存在 SqlCommand cmd=new SqlCommand ("select * from Users where UserName = '"+ TextBox1.Text.Trim() + "'",myConnection ); SqlDataReader dr = cmd.ExecuteReader(); bool i = dr.Read(); dr.Close(); if (i = true | j = true) Response.Write("<script>al

21、ert('" + "注冊失敗!用戶名已存在!" + "');</script>"); dr.Close(); myConnection.Close(); else /打開連接 SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); /定義語句 string sql = "insert into Users(

22、UserName,UserPassword)values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text + "')" myConn.Open(); SqlCommand myCommand3 = new SqlCommand(sql, myConn); int x = myCommand3.ExecuteNonQuery(); /執(zhí)行添加信息到數(shù)據(jù)庫操作 if (x = 1) Session"username" = TextBox1.Tex

23、t.Trim(); Response.Write("<script>alert('注冊成功!請牢記您的用戶名和密碼!');location.href='Default.aspx'</script>"); else Response.Write("<script>alert('" + "注冊失??!" + "');</script>"); myConn.Close(); else Response.Write("&

24、lt;script>alert('" + "兩次輸入的密碼不一致!" + "');</script>"); else Response.Write("<script>alert('" + "新密碼不能為空!" + "');</script>"); else Response.Write("<script>alert('" + "用戶名不能為空!" + &

25、quot;');</script>"); (4)文件列表代碼List.aspx.cs:protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) /顯示目錄列表的信息 BindDirectoryData(); /自定義函數(shù),綁定數(shù)據(jù)庫 private void BindDirectoryData() SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings&quo

26、t;SQLCONNECTIONSTRING".ConnectionString); SqlDataAdapter da = new SqlDataAdapter("select * from directory order by CreateDate desc", myConnection); DataSet ds = new DataSet(); da.Fill(ds, "o"); DiskView.DataSource = ds.Tables0; DiskView.DataBind(); /分頁 protected void DiskVie

27、w_PageIndexChanging(object sender, GridViewPageEventArgs e) DiskView.PageIndex = e.NewPageIndex; BindDirectoryData(); ;/對GridView進行再次綁定 protected void Turn_Click(object sender, EventArgs e) if (int.Parse(TextBox)DiskView.BottomPagerRow.FindControl("txtGoPage").Text) > 0) DiskView.PageIn

28、dex = int.Parse(TextBox)DiskView.BottomPagerRow.FindControl("txtGoPage").Text) - 1; else DiskView.PageIndex = 0; BindDirectoryData();/對GridView進行再次綁定 (5)修改用戶密碼的代碼ModifyPwd.aspx.cs:protected void Button1_Click(object sender, EventArgs e) if (TextBox1.Text.Trim().Length != 0) if (TextBox3.Te

29、xt.Trim().Length != 0) if (TextBox3.Text.Trim() = TextBox4.Text.Trim() /打開連接 SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings"SQLCONNECTIONSTRING".ConnectionString); myConnection.Open(); SqlCommand cmd = new SqlCommand("select * from Users where Us

30、erName = '" + TextBox1.Text.Trim() + "' and UserPassword = '" + TextBox2.Text.Trim() + "'", myConnection); SqlDataReader dr = cmd.ExecuteReader(); bool i = dr.Read(); dr.Close(); if (i = true) SqlCommand cmd1 = new SqlCommand("update Users set UserPasswo

31、rd ='" + TextBox3.Text.Trim() + "'where UserName = '" + TextBox1.Text.Trim() + "'", myConnection); int j = cmd1.ExecuteNonQuery(); if (j = 1) Response.Write("<script>alert('" + "修改用戶密碼成功!請牢記新密碼!" + "');</script>&qu

32、ot;); else Response.Write("<script>alert('" + "修改用戶密碼失敗!" + "');</script>"); myConnection.Close(); else Response.Write("<script>alert('" + "用戶名錯誤或用戶名和舊密碼不一致" + "');</script>"); else Response.Write(&qu

33、ot;<script>alert('" + "兩次輸入的密碼不一致!" + "');</script>"); else Response.Write("<script>alert('" + "密碼不能為空!" + "');</script>"); else Response.Write("<script>alert('" + "用戶名不能為空!"

34、+ "');</script>"); (6)上傳文件代碼UpLoad.aspx.cs:protected void Button1_Click1(object sender, EventArgs e) Boolean fileOK = false; /指定文件上傳路徑 string path = Server.MapPath("WebDisk/"); if (FileUpload1.HasFile) string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileN

35、ame).ToLower(); string allowedExtensions = ".gif", ".png", ".jpeg", ".jpg", ".exe", ".txt", ".rar", ".dll" ; for (int i = 0; i < allowedExtensions.Length; i+) if (fileExtension = allowedExtensionsi) fileOK = true; if

36、(fileOK) /調(diào)用IDisk 王旭濤 disk = new 王旭濤(); try /保存文件到指定位置 FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); Session"FileName" = FileUpload1.FileName; /把文件信息保存到數(shù)據(jù)庫 disk.AddFile(FileUpload1.FileName, FileUpload1.PostedFile.ContentLength, "WebDisk/" + FileUpload1.FileName, Fi

37、leUpload1.PostedFile.ContentType); Label1.Visible = true; Label1.Text = "上傳成功!" catch Label1.Text = "上傳出現(xiàn)問題!" else Label1.Text = ;"上傳文件類型錯誤!" (7)下載代碼Down.aspx.cs:public partial class Down : System.Web.UI.Page int nFileID = -1; protected void Page_Load(object sender, Eve

38、ntArgs e) /獲取參數(shù)DirID的值 if (Request.Params"DirID" != null) if (Int32.TryParse(Request.Params"DirID".ToString(), out nFileID) = false) return; string FileUrl = "" /調(diào)用王旭濤來獲取單個文件的信息 王旭濤 disk = new 王旭濤(); SqlDataReader dr = disk.GetSingleFile(nFileID); if (dr.Read() FileUrl

39、= dr"Url".ToString(); dr.Close(); /獲取文件存放位置的相對路徑 string path = Server.MapPath(""); string strPath = (path + "/" + FileUrl); /下載文件到指定位置 FileInfo FInfo = new FileInfo(strPath); if (FInfo.Exists) Response.Clear(); Response.ClearHeaders(); Response.Buffer = false; Response.

40、ContentType = "application/octet-stream" Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FInfo.FullName, System.Text.Encoding.UTF8); Response.AppendHeader("Content-length", FInfo.Length.ToString(); Response.WriteFile(FI

41、nfo.FullName); Response.Flush(); else Response.Write("<script>alert('下載失敗!')</script>"); (8)重命名代碼EditFile.aspx.cs:public partial class EditFile : System.Web.UI.Page int nFileID = -1; protected void Page_Load(object sender, EventArgs e) /獲取參數(shù)DirID的值 if (Request.Params&qu

42、ot;DirID" != null) if (Int32.TryParse(Request.Params"DirID".ToString(), out nFileID) = false) return; if (!Page.IsPostBack) /顯示目錄的名稱 if (nFileID > -1) BindFileData(nFileID); /自定義函數(shù)BindFileData,在TextBox1顯示原文件名 private void BindFileData(int nDirID) string sFileName = "" 王旭濤

43、 disk = new 王旭濤(); SqlDataReader dr = disk.GetSingleFile(nFileID); if (dr.Read() /獲取文件的名稱(包含后綴) sFileName = dr"Name".ToString(); dr.Close(); /查找最后一個“.” int dotIndex = sFileName.LastIndexOf("."); if (dotIndex > -1) /獲取文件的名稱(不包含后綴)并顯示 TextBox1.Text = sFileName.Substring(0, dotIn

44、dex); protected void Button1_Click(object sender, EventArgs e) try string sFileName = "" /定義對象 王旭濤 disk = new 王旭濤(); /執(zhí)行數(shù)據(jù)庫操作 修改文件名 SqlDataReader dr = disk.GetSingleFile(nFileID); if (dr.Read() /獲取文件的名稱(包含后綴) sFileName = dr"Url".ToString(); string path = Server.MapPath("&quo

45、t;);/設置相對路徑 string strPath = (path + "/" + sFileName); /獲得完整路徑 string fileExtension = System.IO.Path.GetExtension(strPath).ToLower(); System.IO.FileInfo FInfo = new System.IO.FileInfo(strPath);/創(chuàng)建對文件操作的實例 FInfo.MoveTo(path + "/" + "WebDisk/" + TextBox1.Text.Trim() + fil

46、eExtension); string NewUrl = "WebDisk/" + TextBox1.Text.Trim() + fileExtension; /新的文件的Url disk.EditFile(nFileID, TextBox1.Text.Trim() + fileExtension, NewUrl); Response.Write("<script>alert('" + "修改成功" + "');</script>"); catch Response.Write("<script>alert('" + "修改失??!" + "');</script>"); (9)刪除文件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論