C課程設計報告通訊錄管理系統(tǒng)_第1頁
C課程設計報告通訊錄管理系統(tǒng)_第2頁
C課程設計報告通訊錄管理系統(tǒng)_第3頁
C課程設計報告通訊錄管理系統(tǒng)_第4頁
C課程設計報告通訊錄管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州科技學院c#課程設計設計(論文)課題:通訊錄管理系統(tǒng) 目錄 摘要3一整體設計411設計構(gòu)思412系統(tǒng)數(shù)據(jù)流圖:513開發(fā)及運行環(huán)境:521 數(shù)據(jù)庫需求分析622 e-r圖723 數(shù)據(jù)表設計724 管理員信息表(db.admin):725 用戶信息表(db.user):826 資料信息表(db.records):8三通訊錄管理系統(tǒng)的實現(xiàn)931 類的編寫932 系統(tǒng)用戶功能模塊設計:933 系統(tǒng)管理員功能模塊設計:1134 系統(tǒng)設計運行過程中所遇到的問題:163.4.1 數(shù)據(jù)庫的連接問題163.4.2 登錄模塊出現(xiàn)角色選擇問題173.4.3 用戶信息添加模塊問題20四 c#課程設計總結(jié)26五主

2、要參考書及手冊28六 致謝29摘要 日益繁多的人際交往使得我們很難搞清楚與每個人之間的聯(lián)系方式,特別是對于做經(jīng)常出差的人來說更是難,所以通訊錄能夠便捷的給我們帶來所需要的相關信息。而隨著計算機的普及,人們的生活擺脫了傳統(tǒng)式的記事本、電話簿,越來越多的靠計算機來幫助人們記住這些事情,極其簡便。這就需要有一個使用的通訊錄管理系統(tǒng),用戶可以方便的通過自己電腦的通訊錄管理系統(tǒng),來隨時查閱自己所需要的信息,而不必再大費周折去翻開那繁瑣的記事本。通訊錄管理系統(tǒng)是一個專門針對儲存用戶聯(lián)系方式以及一些簡單個人信息的實用管理系統(tǒng),它方便了用戶對眾多客戶、朋友、同事等個人信息的儲存和快速查閱的功能,大大減少了查找

3、過程的時間。一整體設計11設計構(gòu)思通訊錄管理系統(tǒng)功能需求分析:通訊錄管理系統(tǒng)主要功能分為三個模塊:用戶登錄、系統(tǒng)維護以及數(shù)據(jù)的備份輸出。用戶登錄:實現(xiàn)管理員用戶與游客用戶的不同權限,對系統(tǒng)的實用權的區(qū)別系統(tǒng)維護:包括對用戶的添加,信息添加、刪除、查找、排序、修改,修改密碼,注銷等操作數(shù)據(jù)的備份:主要是對相關信息的備份,輸出,打印。以便日后查詢,使用。12系統(tǒng)數(shù)據(jù)流圖:備份資料添加資料刪除資料查詢資料修改資料管理員普通用戶登錄注冊登錄添加修改退出通訊錄管理系統(tǒng)數(shù)據(jù)流圖13開發(fā)及運行環(huán)境:本系統(tǒng)開發(fā)平臺及運行環(huán)境如下:系統(tǒng)開發(fā)平臺:microsoft visual studio 2005系統(tǒng)開發(fā)語

4、言:c#數(shù)據(jù)庫管理軟件:sql server 2000運行平臺:windows xp (sp2) / windows7(32位或64位)/ windows server 2003 (sp1)運行環(huán)境:microsoft visual studio 20082 數(shù)據(jù)庫設計21 數(shù)據(jù)庫需求分析1)針對通訊錄管理系統(tǒng),分別對用戶登錄、添加通訊錄和查找、刪除以及修改數(shù)據(jù)進行詳細的調(diào)研和分析,總結(jié)出如下的需求信息:1. 每條原始記錄要有姓名、生日、電話、郵箱、地址信息,其中姓名不能為空。2. 保證查詢到的數(shù)據(jù)與姓名相一致3. 根據(jù)相應姓名刪除對應的全部數(shù)據(jù)2)本數(shù)據(jù)用于登錄用戶實體以及通訊錄信息實體22

5、 e-r圖用戶用戶名密碼信息操作n1姓名生日郵箱電話地址23 數(shù)據(jù)表設計數(shù)據(jù)庫名稱:databasehomework,共有3個表:1、管理員信息表(db.admin) 2、用戶信息表(db.user) 3、資料信息表(db.records)24 管理員信息表(db.admin):字段名數(shù)據(jù)類型長度主鍵否描述adminnamenchar30否用戶名稱 adminpwdnchar20否用戶密碼25 用戶信息表(db.user):字段名數(shù)據(jù)類型長度主鍵否描述usernamenchar30是用戶名稱 userpwdnchar30否用戶密碼26 資料信息表(db.records):字段名數(shù)據(jù)類型長度主鍵

6、否描述用戶名nchar30是記錄用戶的名稱姓名nchar30否記錄用戶姓名性別nchar10否記錄用戶性別出生日期datetime否記錄用戶出生日期星座nchar10否記錄用戶星座生肖nchar10否記錄用戶生肖家庭住址nchar100否記錄用戶家庭住址電話nchar30否記錄用戶電話手機nchar20否記錄用戶手機號emailnchar100否記錄用戶emailqqnchar15否記錄用戶qq圖片image否記錄用戶的圖片三通訊錄管理系統(tǒng)的實現(xiàn)31 類的編寫開發(fā)項目時,以類的形式來組織、封裝一些常用的方法和事件,以便提高代碼的重用率,大大方便了代碼的管理。本系統(tǒng)中創(chuàng)建了四個類: adminf

7、orm.cs、registerform.cs、 login.cs、和userinformation.cs其中adminform.cs主要用來管理用戶權限,用戶信息,實現(xiàn)對用戶的信息的查詢,添加,刪除以及備份用戶登錄信息和用戶信息。registerform.cs是用來實現(xiàn)用戶登錄的用戶名和密碼的注冊。login.cs是用來實現(xiàn)用戶登錄,登錄時可以選擇角色登錄,用戶或者是管理員。userinformation.cs是用來實現(xiàn)用戶對自己信息的詳細添加。32 系統(tǒng)用戶功能模塊設計:3.2.1 系統(tǒng)登錄模塊運行結(jié)果如圖所示:3.2.2 系統(tǒng)注冊模塊運行結(jié)果如圖所示: 3.2.3 用戶信息添加模塊運行結(jié)果

8、如圖所示:33 系統(tǒng)管理員功能模塊設計:3.3.1 系統(tǒng)管理員登錄模塊運行結(jié)果如圖所示:3.3.2 管理員用戶信息表的添加、刪除、更改:3.3.3 管理員登錄信息的添加、刪除、更改:3.3.4 管理員對用戶信息數(shù)據(jù)的添加、刪除、更改:3.3.5 管理員對用戶信息的搜索查詢功能的使用:34 系統(tǒng)設計運行過程中所遇到的問題:3.4.1 數(shù)據(jù)庫的連接問題連接數(shù)據(jù)庫的字符串a(chǎn)dd key="connectstring" value="data source=zprjas6wzmxy36b;initialcatalog=databasehomework;integrated

9、 security=true"以及sql的測試連接:3.4.2 登錄模塊出現(xiàn)角色選擇問題private void initializecomponent() system.componentmodel.componentresourcemanager resources = new system.componentmodel.componentresourcemanager(typeof(login); this.radiobutton1 = new system.windows.forms.radiobutton();this.radiobutton2 = new system.w

10、indows.forms.radiobutton();this.label1 = new system.windows.forms.label();this.label2 = new system.windows.forms.label();this.label3 = new system.windows.forms.label();this.textbox1 = new system.windows.forms.textbox();this.textbox2 = new system.windows.forms.textbox();this.button1 = new system.wind

11、ows.forms.button();this.button2 = new system.windows.forms.button();this.button3 = new system.windows.forms.button();this.sqlcommand1 = new system.data.sqlclient.sqlcommand();this.sqlconnection1=newsystem.data.sqlclient.sqlconnection();this.sqlselectcommandnewsystem.data.sqlclient.sqlcommand();this.

12、sqlinsertcommand1=newsystem.data.sqlclient.sqlcommand();this.sqlupdatecommand1=newsystem.data.sqlclient.sqlcommand();this.sqldeletecommand1=newsystem.data.sqlclient.sqlcommand();this.sqldataadapter1=newsystem.data.sqlclient.sqldataadapter();this.suspendlayout();this.radiobutton1.autosize = true;this

13、.radiobutton1.location = new system.drawing.point(69, 51);this.radiobutton1.name = "radiobutton1"this.radiobutton1.size = new system.drawing.size(59, 16);this.radiobutton1.tabindex = 1;this.radiobutton1.tabstop = true;this.radiobutton1.text = "管理員"this.radiobutton1.usevisualstyle

14、backcolor = true;this.radiobutton1.checkedchanged+=newsystem.eventhandler(this.radiobutton1_checkedchanged); this.radiobutton2.autosize = true;this.radiobutton2.location = new system.drawing.point(197, 51);this.radiobutton2.name = "radiobutton2"this.radiobutton2.size = new system.drawing.s

15、ize(47, 16);this.radiobutton2.tabindex = 0;this.radiobutton2.tabstop = true;this.radiobutton2.text = "用戶"this.radiobutton2.usevisualstylebackcolor = true; this.label1.autosize = true;this.label1.location = new system.drawing.point(120, 9);this.label1.name = "label1"this.label1.si

16、ze = new system.drawing.size(77, 12);this.label1.tabindex = 2;this.label1.text = "選擇登陸角色" this.label2.autosize = true;this.label2.location = new system.drawing.point(26, 128);this.label2.name = "label2"this.label2.size = new system.drawing.size(41, 12);this.label2.tabindex = 3;th

17、is.label2.text = "用戶名" this.label3.autosize = true;this.label3.location = new system.drawing.point(26, 170);this.label3.name = "label3"this.label3.size = new system.drawing.size(29, 12);this.label3.tabindex = 4;this.label3.text = "密碼" this.textbox1.location = new system

18、.drawing.point(87, 128);this.textbox1.name = "textbox1"this.textbox1.size = new system.drawing.size(100, 21);this.textbox1.tabindex = 2; this.textbox2.location = new system.drawing.point(87, 167);this.textbox2.name = "textbox2"this.textbox2.passwordchar = '*'this.textbox2

19、.size = new system.drawing.size(100, 21);this.textbox2.tabindex = 3; this.button1.location = new system.drawing.point(135, 227);this.button1.name = "button1"this.button1.size = new system.drawing.size(75, 23);this.button1.tabindex = 7;this.button1.text = "登陸"this.button1.usevisua

20、lstylebackcolor = true;this.button1.click+=newsystem.eventhandler(this.button1_click);this.button2.location = new system.drawing.point(28, 226);this.button2.name = "button2"this.button2.size = new system.drawing.size(75, 23);this.button2.tabindex = 8;this.button2.text = "用戶注冊"thi

21、s.button2.usevisualstylebackcolor = true;this.button2.click+=newsystem.eventhandler(this.button2_click);this.button3.location = new system.drawing.point(238, 227);this.button3.name = "button3"this.button3.size = new system.drawing.size(75, 23);this.button3.tabindex = 9;this.button3.text =

22、"退出"this.button3.usevisualstylebackcolor = true;this.button3.click+=newsystem.eventhandler(this.button3_click);this.sqlconnection1.fireinfomessageeventonusererrors=false;this.sqldataadapter1.deletecommand = this.sqldeletecommand1;this.sqldataadapter1.insertcommand = this.sqlinsertcommand1;

23、this.sqldataadapter1.selectcommand = this.sqlselectcommand1;this.sqldataadapter1.updatecommand = this.sqlupdatecommand1; / / login / this.autoscaledimensions = new system.drawing.sizef(6f, 12f);this.autoscalemode=system.windows.forms.autoscalemode.font;this.backgroundimage=(system.drawing.image)(res

24、ources.getobject("$this.backgroundimage");this.clientsize = new system.drawing.size(338, 293); this.controls.add(this.button3); this.controls.add(this.button2); this.controls.add(this.button1); this.controls.add(this.textbox2); this.controls.add(this.textbox1); this.controls.add(this.label

25、3); this.controls.add(this.label2); this.controls.add(this.label1); this.controls.add(this.radiobutton2); this.controls.add(this.radiobutton1); this.maximizebox = false; this.name = "login"this.startposition=system.windows.forms.formstartposition.centerscreen;this.text = "form1"t

26、his.load += new system.eventhandler(this.login_load);this.resumelayout(false);this.performlayout(); 3.4.3 用戶信息添加模塊問題建立一個內(nèi)存流把圖片內(nèi)存寫入該內(nèi)存流 if (!mydatareader.isdbnull(11) /以字節(jié)為單位傳入數(shù)據(jù) byte mydata = new byte0; mydata = (byte)mydatareader.getvalue(11); int jpgsize = mydata.length; /建立一個內(nèi)存流 memorystream ms =

27、 new memorystream(); /把圖片內(nèi)存寫入該內(nèi)存流 /寫入的二進制數(shù)組,偏移量,最多的字節(jié)數(shù) ms.write(mydata, 0, jpgsize); bitmap bitmap = new bitmap(ms); picturebox1.image = bitmap; / mydatareader.close() /退出 private void button3_click(object sender, eventargs e) this.close(); /瀏覽private void button1_click_1(object sender, eventargs e)

28、 image image; bitmap bitmap; string path; openfiledialog opendialog = new openfiledialog(); opendialog.filter = "可用文件(*.jpg)|*.jpg|所有文件(*.*)|*.*" opendialog.multiselect = false; opendialog.initialdirectory = "d:微軟my productionstepstep" if (opendialog.showdialog() = dialogresult.o

29、k) path = opendialog.filename; image = new bitmap(path); /改變圖像大小-符合相框大小 bitmap = new bitmap(image, picturebox1.width, picturebox1.height); picturebox1.image = bitmap; 管理員管理用戶信息添加模塊出現(xiàn)錯誤用戶表和用戶信息表設置了關聯(lián),用戶信息只能添加用戶表中已經(jīng)注冊過的用戶名。管理員對用戶信息備份失敗/備份 private void 備份toolstripmenuitem_click(object sender, eventargs

30、 e) try if (用戶信息toolstripmenuitem.checked = true) /創(chuàng)建數(shù)據(jù)庫/string strtocopy = "data source=.sqlexpress;initial catalog=" + textbox2.text + "integrated security=true" string strtocopy = "data source=.sqlexpress;initial catalog=databasehomework;integrated security=true"sqlc

31、onnection myconnect3 = new sqlconnection(strconnect); myconnect3.open();sqlcommand mycommand3 = new sqlcommand(); mycommand3.connection = myconnect3; mycommand3.commandtext = "create database " + textbox2.text.trim(); mycommand3.executenonquery(); mycommand3.commandtext = "use "

32、+ textbox2.text.trim() + " create table " + textbox3.text.trim() + "(用戶名 nchar(20) primary key not null,姓名 nchar(30),性別 nchar(10),出生日期 datetime,星座 nchar(10),生肖 nchar(10),家庭住址 nchar(100),電話 nchar(30),手機 nchar(20),email nchar(100),qq nchar(15),圖片 image)" mycommand3.executenonquery(

33、); myconnect3.close();sqlconnectionmyconnect1=newsqlconnection(strconnect);sqlconnection myconnect2 = new sqlconnection(strtocopy); sqldatareader mydataread; myconnect1.open(); myconnect2.open();sqlcommand mycommand1 = new sqlcommand();sqlcommand mycommand2 = new sqlcommand();mycommand1.connection =

34、 myconnect1;mycommand1.commandtext = "select * from records"mydataread = mycommand1.executereader();mycommand2.connection = myconnect2;mycommand2.commandtext = "insert into " + textbox3.text.trim() + " values(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12)"mycommand2.parameters

35、.add("s1", sqldbtype.nchar);mycommand2.parameters.add("s2", sqldbtype.nchar);mycommand2.parameters.add("s3", sqldbtype.nchar);mycommand2.parameters.add("s4", sqldbtype.datetime);mycommand2.parameters.add("s5", sqldbtype.nchar);mycommand2.parameters.a

36、dd("s6", sqldbtype.nchar);mycommand2.parameters.add("s7", sqldbtype.nchar);mycommand2.parameters.add("s8", sqldbtype.nchar);mycommand2.parameters.add("s9", sqldbtype.nchar);mycommand2.parameters.add("s10", sqldbtype.nchar);mycommand2.parameters.add(&

37、quot;s11", sqldbtype.nchar);mycommand2.parameters.add("s12", sqldbtype.image);while (mydataread.read() mycommand2.parameters0.value = mydataread.getvalue(0);mycommand2.parameters1.value = mydataread.getvalue(1);mycommand2.parameters2.value = mydataread.getvalue(2);mycommand2.parameter

38、s3.value = mydataread.getvalue(3);mycommand2.parameters4.value = mydataread.getvalue(4);mycommand2.parameters5.value = mydataread.getvalue(5);mycommand2.parameters6.value = mydataread.getvalue(6);mycommand2.parameters7.value = mydataread.getvalue(7);mycommand2.parameters8.value = mydataread.getvalue(8);mycommand2.parameters9.value = mydataread.getvalue(9);mycommand2.parameters10.value = mydataread.getvalue(10);mycommand2.parameters11.value = mydataread.getvalue(11); m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論