數(shù)據(jù)庫(kù)的課程設(shè)計(jì)校友錄系統(tǒng)設(shè)計(jì)_第1頁(yè)
數(shù)據(jù)庫(kù)的課程設(shè)計(jì)校友錄系統(tǒng)設(shè)計(jì)_第2頁(yè)
數(shù)據(jù)庫(kù)的課程設(shè)計(jì)校友錄系統(tǒng)設(shè)計(jì)_第3頁(yè)
數(shù)據(jù)庫(kù)的課程設(shè)計(jì)校友錄系統(tǒng)設(shè)計(jì)_第4頁(yè)
數(shù)據(jù)庫(kù)的課程設(shè)計(jì)校友錄系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 系統(tǒng)摘要校友錄系統(tǒng)是每個(gè)學(xué)校都必備的系統(tǒng),其主要用于管理學(xué)院已畢業(yè)的校友的信息,是聯(lián)系校友和學(xué)院之間的紐帶。校友錄系統(tǒng)的開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面??蓪⒄麄€(gè)系統(tǒng)設(shè)計(jì)分為兩個(gè)模塊:數(shù)據(jù)庫(kù)的設(shè)計(jì)和應(yīng)用程序的開發(fā)。模塊一 數(shù)據(jù)庫(kù)的設(shè)計(jì)需求分析階段需求收集和分析,從分析結(jié)果中的到數(shù)據(jù)字典描述的數(shù)據(jù)需求概念結(jié)構(gòu)設(shè)計(jì)階段 形成一個(gè)獨(dú)立于具體dbms的概念模型,可以用e-r圖表示邏輯結(jié)構(gòu)設(shè)計(jì)階段 將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)dbms所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段 為邏輯數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)模塊二 應(yīng)用程序的開發(fā) 使用access數(shù)據(jù)庫(kù)進(jìn)

2、行數(shù)據(jù)庫(kù)方面的設(shè)計(jì),通過vc+編譯器進(jìn)行框架的生成,結(jié)合兩者實(shí)行對(duì)校友錄系統(tǒng)的基本操作查詢,增加,修改,刪除。 制作人 2010年1月5日第一章 系統(tǒng)設(shè)計(jì)需求分析1.1前言目前,經(jīng)濟(jì)發(fā)展迅猛,人們的壓力也越來越大,以致把大多數(shù)人時(shí)間都投入在工作中,往往就會(huì)淡忘以前的生活,學(xué)生時(shí)代是夢(mèng)想最多時(shí)代,感情最純真的時(shí)代,在那時(shí),我們都會(huì)遇到很多不同的人,也交了很多知己,但是一走上工作崗位,大多數(shù)人都會(huì)與以前的朋友失去聯(lián)系。有時(shí),即使想聯(lián)系都沒有聯(lián)系方式。通過校友錄管理系統(tǒng),可以要聯(lián)系的朋友,這是許多人都認(rèn)可的,可以看出設(shè)計(jì)一個(gè)校友錄是極具可行性的。校友錄是為了方便校友之間聯(lián)系而使用的一種系統(tǒng),一個(gè)校友

3、錄管理系統(tǒng),用戶以個(gè)人的身份進(jìn)入,查找滿足條件的班級(jí),并可以填寫個(gè)人資料,以便被查詢,通過校友錄這種網(wǎng)絡(luò)聯(lián)系方式,可以讓很多因畢業(yè)而分離的同學(xué)們還能經(jīng)營(yíng)聚首,互相噓寒問暖,了解各自的近況,還可以建立畢業(yè)生和在校生的溝通渠道,增強(qiáng)學(xué)校的凝聚力,能很方便的和同學(xué)溝通和交流。1.2系統(tǒng)來源近年來計(jì)算機(jī)技術(shù)的快速發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,越來越深刻的改變了人們生活的方方面面,使得人們能以更低廉的價(jià)格,開發(fā)出更方面,更實(shí)用的網(wǎng)絡(luò)工具,各種在線服務(wù)系統(tǒng),更是深刻的影響了人們的聯(lián)系方式,使得人們可以在遠(yuǎn)隔千里之遙隨時(shí)通訊,過去的種種陳舊的聯(lián)系方式,已經(jīng)不能滿足現(xiàn)代生活的需要。校友錄作為一種方便校友之間聯(lián)

4、系的實(shí)用系統(tǒng)便應(yīng)運(yùn)而生。校友錄是校友之間進(jìn)行交流和聯(lián)系提供的一個(gè)平臺(tái),通過提供完善的校友錄服務(wù)和規(guī)范校友錄的管理,可以達(dá)到增進(jìn)校友之間。校友與母校之間的感情,方便校友聯(lián)系的母校。1.3目的和意義校友錄管理系統(tǒng)的最終目的是加強(qiáng)各地校友之間的聯(lián)系,增進(jìn)校友之間,校友與母校之間的感情,通過校友之間的交流,為各地學(xué)習(xí)提供廣泛的事業(yè)合作機(jī)會(huì),能增強(qiáng)學(xué)校的凝聚力,讓各地學(xué)子聯(lián)合起來,校友錄是為校友之間進(jìn)行交流和聯(lián)系提供的一個(gè)平臺(tái),雖然現(xiàn)在大多數(shù)人都能用各種聊天工具與同學(xué)朋友聯(lián)系,但是聊天工具有個(gè)最大的弱點(diǎn)就是安全性不高,一旦密碼丟失或被盜,所有聯(lián)系人資料都丟失,而校友錄管理系統(tǒng)能解決這個(gè)問題,所有校友的信

5、息都將長(zhǎng)期儲(chǔ)存在數(shù)據(jù)庫(kù),用戶登錄校友錄就能找到同學(xué)的信息并與之取得聯(lián)系,并且可以實(shí)時(shí)關(guān)注母校的動(dòng)態(tài),現(xiàn)在我們也都面臨這畢業(yè),擁有一個(gè)屬于自己的校友錄系統(tǒng)也是很多同學(xué)的心愿,所以,設(shè)計(jì)并制作這個(gè)校友錄管理系統(tǒng)是很大 的實(shí)際意義。1.4系統(tǒng)功能分析 校友錄管理系統(tǒng)滿足來自兩個(gè)方面的需求,這兩個(gè)方面分別是用戶(校友),校友管理人員。用戶管理功能:用戶管理功能主要包括用戶登錄和注冊(cè),只有已注冊(cè)登錄的用戶才能找到同學(xué)的信息并與之取得聯(lián)系,并且可以實(shí)時(shí)關(guān)注母校的動(dòng)態(tài),。校友管理人員:校友管理人員的功能最為復(fù)雜,對(duì)用戶注冊(cè),刪除,添加,修改信息進(jìn)行管理和維護(hù)1.5需求分析過程各個(gè)階段需求分析數(shù)據(jù)庫(kù)設(shè)計(jì)人熟悉

6、校友錄的功能明確學(xué)院和校友需求確定系統(tǒng)邊界概念模型dfddd1.6數(shù)據(jù)流圖的設(shè)計(jì)數(shù)據(jù)流圖的設(shè)計(jì) 1. 校友錄0層數(shù)據(jù)流圖校友錄管理系統(tǒng) 校友錄管理員校友 查詢 更新 信息 信息 2. 校友錄一層數(shù)據(jù)流圖這是該系統(tǒng)的一張0層數(shù)據(jù)流圖,主要體現(xiàn)的是一個(gè)針對(duì)系統(tǒng)本身而言的一個(gè)輸入輸出的關(guān)系。從這張圖可以明確的看出校友與系統(tǒng)的關(guān)系,它是一個(gè)索取信息的關(guān)系,他們都是系統(tǒng)的輸出信息的地方;而管理員則是該系統(tǒng)的輸入者,系統(tǒng)所擁有的資源都是管理員所提供的。校友和校友錄管理員都是這個(gè)系統(tǒng)的外部項(xiàng)。一層數(shù)據(jù)流圖是對(duì)0層數(shù)據(jù)流圖的細(xì)化。注冊(cè)主界面登錄校友 無注冊(cè) 登錄 有注冊(cè) 進(jìn)入校友信息 專業(yè)信息 管理員信息 系

7、院信息通訊錄通訊錄的校友通訊信息1.7數(shù)據(jù)字典數(shù)據(jù)詞典的作用是給數(shù)據(jù)流圖上每個(gè)要素給以定義和說明。這里主要是對(duì)校友這個(gè)外部項(xiàng)進(jìn)行了解釋和說明。修改記錄 簡(jiǎn)要說明:本系統(tǒng)提供的校友信息是有限的輸出數(shù)據(jù)流:校友信息主要特征:校友的姓名,性別,年齡,家庭住址,專業(yè)以及系院輸入數(shù)據(jù)流:所要的校友信息外部項(xiàng)系統(tǒng)名:_校友錄數(shù)據(jù)庫(kù)系統(tǒng)_ 編號(hào):_條目名:_校友_ 別名:_2010-1-5日期江*編寫日期審核尹*2010-1-5第二章 概念模型的設(shè)計(jì)2.1系統(tǒng)功能模塊 根據(jù)系統(tǒng)設(shè)計(jì)的需求分析的要求,可以將整個(gè)系統(tǒng)劃分分成三部分,經(jīng)過模塊化的分析得到了如圖所示的功能模塊化結(jié)構(gòu)圖:校友錄數(shù)據(jù)庫(kù)系統(tǒng)管理員各系院校

8、友管理員自身信息的查詢更新數(shù)據(jù)庫(kù)中校友的信息搜索所有校友信息定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行重組和重構(gòu)監(jiān)控?cái)?shù)據(jù)庫(kù)的性能改進(jìn)提供畢業(yè)生信息將更新系院專業(yè)信息提供給管理員更新個(gè)人信息查詢其他校友的信息個(gè)人信息的查詢 功能結(jié)構(gòu)圖2.2概念設(shè)計(jì)的步驟 在概念設(shè)計(jì)階段中,設(shè)計(jì)人員從用戶的角度看待數(shù)據(jù)集處理要求和約束,產(chǎn)生一個(gè)反映用戶觀點(diǎn)的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計(jì)從設(shè)計(jì)過程中獨(dú)立開來,使各階段的任務(wù)相對(duì)單一化,設(shè)計(jì)復(fù)雜程度大大降低,不受特定dbms的限制。 利用e-r方法進(jìn)行數(shù)據(jù)庫(kù)的概念設(shè)計(jì),可分成三步進(jìn)行:首先設(shè)計(jì)局部e-r模式,然后把各局部e-r模式綜合成一個(gè)全局模式,最后對(duì)全局e-r模式

9、進(jìn)行優(yōu)化,得到最終的模式,即概念模式。2.3設(shè)計(jì)各個(gè)局部e-r模式e-r模型的“聯(lián)系”用于刻畫實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:m,m:n,還是1:1等。還要考察一個(gè)實(shí)體類型類型內(nèi)部是否存在聯(lián)系,等等。校友管理員搜索校友信息編號(hào)姓名姓名性別地址電話專業(yè)系院學(xué)號(hào)性別1n擁有校友信息姓名地址電話專業(yè)系院學(xué)號(hào)性別校友姓名地址電話專業(yè)系院學(xué)號(hào)性別11屬于系院系名系號(hào)簡(jiǎn)述校友姓名地址電話專業(yè)系院學(xué)號(hào)性別n1屬于專業(yè)專業(yè)名專業(yè)號(hào)簡(jiǎn)述校友姓名地址電話專業(yè)系院學(xué)號(hào)性別n1管理校友姓名地址電

10、話專業(yè)系院學(xué)號(hào)性別n校友管理員編號(hào)姓名性別1系院系名系號(hào)簡(jiǎn)述m專業(yè)專業(yè)名專業(yè)號(hào)簡(jiǎn)述n包含2.4設(shè)計(jì)全局e-r模式所有局部e-r模式設(shè)計(jì)好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部e-r模式,而且必須合理地表示一個(gè)完整,一致的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)。1.確定公共實(shí)體類型為了給多個(gè)局部e-r模式的合并提供開始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實(shí)體類型。在這一步中我們僅根據(jù)實(shí)體類型名和鍵來認(rèn)定公共實(shí)體類型。一般把同名實(shí)體類型作為公共實(shí)體類型的一類候選,把具有相同鍵的實(shí)體類型作為公共實(shí)體類型作為公共實(shí)體類型的另一類候選。2.局部e-r模式的合并合并的原則是:首先進(jìn)行兩

11、兩合并;先和合并那些現(xiàn)實(shí)世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實(shí)體類型開始,最后再加入獨(dú)立的局部結(jié)構(gòu)。1.消除沖突沖突分為三類:屬性沖突,結(jié)構(gòu)沖突,命名沖突。設(shè)計(jì)全局e-r模式的目的不在于把若干局部e-r模式形式上合并為一個(gè)e-r模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模式。2.全局e-r模式的優(yōu)化在得到全局e-r模式后,為了提高數(shù)據(jù)庫(kù)系統(tǒng)的效率,還應(yīng)進(jìn)一步依據(jù)處理需求對(duì)e-r模式進(jìn)行優(yōu)化。一個(gè)好的全局e-r模式,除能準(zhǔn)確,全面地反映用戶功能需求外,還應(yīng)該滿足下列條件:實(shí)體類型的個(gè)數(shù)壓迫盡可能的少;實(shí)體類型間聯(lián)系與冗余。綜上所述,“校友錄管理系統(tǒng)”的全局e-r模式如圖

12、:校友管理員搜索校友信息編號(hào)姓名姓名性別地址電話專業(yè)系院學(xué)號(hào)性別1n校友專業(yè)系院管理?yè)碛袑儆趯儆趯W(xué)號(hào)系號(hào)專業(yè)系院性別姓名地址1n11簡(jiǎn)述系名簡(jiǎn)述專業(yè)號(hào)專業(yè)名包含nn11n1電話第三章 邏輯模型的設(shè)計(jì)3.1邏輯設(shè)計(jì)部分3.1.1概念模型向關(guān)系模型轉(zhuǎn)換及依賴關(guān)系分析:根據(jù)總e-r圖中的實(shí)體與實(shí)體之間的聯(lián)系以及轉(zhuǎn)換的一般原則,得到如下的關(guān)系:擁有校友信息校友11根據(jù)以上1:1的關(guān)系可得到關(guān)于校友的關(guān)系: friendinfo(studentno,name,sex,birthday,address,special,department) uselogin(name,passwd,uesrtype)3.

13、1.2各個(gè)關(guān)系模型的函數(shù)依賴關(guān)系分析:uselogin(name,passwd,uesrtype)namepasswdusertype 從函數(shù)依賴圖可以看出,該關(guān)系中不存在部分函數(shù)依賴、傳遞函數(shù)依賴,且只有姓名能確定其他各項(xiàng)。所以該關(guān)系是bcnf范式。 該關(guān)系來源于校友這個(gè)實(shí)體,該關(guān)系的函數(shù)依賴圖如下:friendinfo(studentno,name,sex,birthday,address,special,department)namesexstudentnobirthdayspecialdepartmentaddress由該函數(shù)依賴圖可知,該關(guān)系仍然是bcnf范式3.2整個(gè)系統(tǒng)的關(guān)系設(shè)計(jì)

14、所有關(guān)系的定義:specialinfo(specialno,special,detail)friendinfo(studentno,name,sex,birthday,address,special,department)uselogin(name,passwd,uesrtype)admininfo(adminno,adminname,sex,age,adminqq)departmentinfo(departmentno,department,detail)connectioninfo(name,phone,friendqq)第四章 物理結(jié)構(gòu)模型設(shè)計(jì)4.1物理設(shè)計(jì)的內(nèi)容 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)是為了

15、邏輯數(shù)據(jù)模型設(shè)計(jì)適合應(yīng)用環(huán)境的物理結(jié)構(gòu):為關(guān)系選擇存取方法和存取路徑;確定數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu),即確定關(guān)系,索引,聚簇,日志,備份等數(shù)據(jù)的存儲(chǔ)安排和存儲(chǔ)結(jié)構(gòu);確定系統(tǒng)配置。4.2存儲(chǔ)結(jié)構(gòu)及視圖的設(shè)計(jì)create procedure name1name varchar(10)mycursor cursor varying outputas set mycursor forselect(studentno,name,sex,birthday,address,special,departmentfrom friendinfowhere name like %+name+%)open mycurrsorde

16、calre studentno varchar(10)decalre name varchar(10)decalre sex varchar(10)decalre birthday varchar(50)decalre address varchar(50)decalre special varchar(50)decalre department varchar(50)declare thecursor cursorexec name name=江,mycursor=the cursou outputwhile(0=0)beginfetch next from thecursou into s

17、tudentno,name,sex,address,special,departmentif(fetch_status0) breakselect studentno,name,sex,address,special,departmentendclose thecursordeallocate thcursor 這是friendinfo的存儲(chǔ)過程create view cs_friendinfoasselect *from friendinfo這是創(chuàng)建了一個(gè)cs_friendinfo視圖,它是基于表friendinfo,可通過它來保護(hù)friendinfo中的信息。第五章 數(shù)據(jù)庫(kù)的實(shí)施運(yùn)行5.1

18、建立數(shù)據(jù)庫(kù)并組織數(shù)據(jù)入庫(kù)sql語(yǔ)句腳本:create database schoolfriendcreate table specialinfo(specialno text primary key,special text,detail text)create table friendinfo(studentno varchar(10) primary key,name varchar (10),sex varchar(10) text varchar(10),birthday varchar(50),address varchar(50),special varchar(50) ,depa

19、rtment varchar(50)create table uselogin(name text peimary key,passwd text,uesrtype text)create table admininfo(adminno text parmary key,adminname text,sex,age text,adminqq text)create table departmentinfo(departmentno text primary key,department text,detail text)create table connectioninfo(name text

20、 primary key,phone text,friendqq text) 5.2后臺(tái)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)通訊錄聯(lián)系表系院表校友信息表系信息表管理員信息表用戶登錄信息表第六章 課程設(shè)計(jì)應(yīng)用程序的開發(fā)6.1c+應(yīng)用程序的設(shè)計(jì)六張表對(duì)應(yīng)六個(gè)set類分別為cadmininfoset,cconnectionset,cdepartmentinfoset,cfriendset,cspecialinfoset,cuserinfoset.主窗口程序#include stdafx.h#include friend.h#include searchfrienddlg.h#include mainfrm.h#incl

21、ude userlogindlg.h#include specialdlg.h#include separtmentdlg.h#include connectiondlg.h#include admininfodlg.h#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ cmainframeimplement_dyncreate(cmainframe, cframewnd)begin_message_map(cmainframe, cframewnd)/afx_msg_

22、map(cmainframe)on_wm_create()on_command(id_menu_res, onmenures)on_command(id_menu_look, onmenulook)on_command(id_menu_department, onmenudepartment)on_command(id_menu_special, onmenuspecial)on_command(id_menu_connection, onmenuconnection)on_command(id_menu_admin, onmenuadmin)on_command(id_menu_exit,

23、onmenuexit)/afx_msg_mapend_message_map()static uint indicators =id_separator, / status line indicatorid_indicator_caps,id_indicator_num,id_indicator_scrl,;/ cmainframe construction/destructioncmainframe:cmainframe()/ todo: add member initialization code herecuserlogindlg dlg;dlg.domodal();cmainframe

24、:cmainframe()int cmainframe:oncreate(lpcreatestruct lpcreatestruct)if (cframewnd:oncreate(lpcreatestruct) = -1)return -1;if (!m_wndtoolbar.createex(this, tbstyle_flat, ws_child | ws_visible | cbrs_top| cbrs_gripper | cbrs_tooltips | cbrs_flyby | cbrs_size_dynamic) |!m_wndtoolbar.loadtoolbar(idr_main

25、frame)trace0(failed to create toolbarn);return -1; / fail to createif (!m_wndstatusbar.create(this) |!m_wndstatusbar.setindicators(indicators, sizeof(indicators)/sizeof(uint)trace0(failed to create status barn);return -1; / fail to create/ todo: delete these three lines if you dont want the toolbar

26、to/ be dockablem_wndtoolbar.enabledocking(cbrs_align_any);enabledocking(cbrs_align_any);dockcontrolbar(&m_wndtoolbar);return 0;bool cmainframe:precreatewindow(createstruct& cs)if( !cframewnd:precreatewindow(cs) )return false;/ todo: modify the window class or styles here by modifying/ the createstru

27、ct csreturn true;/ cmainframe diagnostics#ifdef _debugvoid cmainframe:assertvalid() constcframewnd:assertvalid();void cmainframe:dump(cdumpcontext& dc) constcframewnd:dump(dc);#endif /_debug/ cmainframe message handlersvoid cmainframe:onmenures() / todo: add your command handler code herecuserlogind

28、lg dlg;dlg.domodal();void cmainframe:onmenulook() / todo: add your command handler code here csearchfrienddlg dlg;dlg.domodal();void cmainframe:onmenudepartment() / todo: add your command handler code herecsepartmentdlg dlg;dlg.domodal();void cmainframe:onmenuspecial() / todo: add your command handl

29、er code herecspecialdlg dlg;dlg.domodal();void cmainframe:onmenuconnection() / todo: add your command handler code herecconnectiondlg dlg;dlg.domodal();void cmainframe:onmenuadmin() / todo: add your command handler code herecadmininfodlg dlg;dlg.domodal();void cmainframe:onmenuexit() / todo: add you

30、r command handler code hereif(afxmessagebox(您確定要退出系統(tǒng)嗎?,mb_okcancel)=idcancel)return;cframewnd:onclose();用戶登錄注冊(cè)窗口#include stdafx.h#include friend.h#include userlogindlg.h#include userinfoset.h#include friendinfodlg.h#include friendset.h#ifdef _debug#define new debug_new#undef this_filestatic char thi

31、s_file = _file_;#endif/ cuserlogindlg dialogcuserlogindlg:cuserlogindlg(cwnd* pparent /*=null*/): cdialog(cuserlogindlg:idd, pparent)/afx_data_init(cuserlogindlg)m_strname = _t();m_strpasswd = _t();/afx_data_initvoid cuserlogindlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_da

32、ta_map(cuserlogindlg)ddx_text(pdx, idc_edit_name, m_strname);ddx_text(pdx, idc_edit_passwd, m_strpasswd);/afx_data_mapbegin_message_map(cuserlogindlg, cdialog)/afx_msg_map(cuserlogindlg)on_bn_clicked(idc_button_res, onbuttonres)/afx_msg_mapend_message_map()/ cuserlogindlg message handlersvoid cuserl

33、ogindlg:onok() / todo: add extra validation here cuserinfoset recordset;cstring strsql;updatedata(true);if(m_strname.isempty()afxmessagebox(請(qǐng)輸入姓名!);return;/檢查密碼是否輸入if(m_strpasswd.isempty()afxmessagebox(請(qǐng)輸入密碼!);return;/clibraryapp* ptheapp = (clibraryapp *) afxgetapp();strsql.format(select * from use

34、rlogin where name=%s and passwd=%s,m_strname,m_strpasswd);if(!recordset.open(afx_db_use_default_type,strsql)messagebox(打開數(shù)據(jù)庫(kù)失敗!,數(shù)據(jù)庫(kù)錯(cuò)誤,mb_ok);return ;if(recordset.getrecordcount()=0)recordset.close();messagebox(密碼錯(cuò)誤,請(qǐng)重新輸入!);m_strpasswd=;updatedata(false);else/ptheapp-m_bisadmin = recordset.m_isadmin;

35、/ptheapp-m_stroperator = recordset.m_user;recordset.close();cdialog:onok();cdialog:onok();void cuserlogindlg:onbuttonres() / todo: add your control notification handler code hereupdatedata();if(m_strname.isempty()afxmessagebox(請(qǐng)輸入讀者姓名!);return;if(m_strpasswd.isempty()afxmessagebox(請(qǐng)輸入密碼!);return;cst

36、ring strsql;strsql.format(select * from userlogin where name = %s,m_strname);cuserinfoset rs;if(!rs.open(afx_db_use_default_type,strsql)messagebox(打開數(shù)據(jù)庫(kù)失敗!,數(shù)據(jù)庫(kù)錯(cuò)誤,mb_ok);return ;if(rs.getrecordcount()!=0)rs.close();afxmessagebox(該用戶名已經(jīng)存在,請(qǐng)重新輸入!);return;rs.close();if(!rs.open(afx_db_use_default_type)m

37、essagebox(打開數(shù)據(jù)庫(kù)失敗!,數(shù)據(jù)庫(kù)錯(cuò)誤,mb_ok);return ;rs.addnew();rs.m_passwd = m_strpasswd;rs.m_name = m_strname;rs.m_usertype=2;rs.update();rs.close(); cfriendinfodlg dlg;dlg.domodal();增加聯(lián)系窗口#include stdafx.h#include friend.h#include addconnectiondlg.h#include connectionset.h#ifdef _debug#define new debug_new#u

38、ndef this_filestatic char this_file = _file_;#endif/ caddconnectiondlg dialogcaddconnectiondlg:caddconnectiondlg(cwnd* pparent /*=null*/): cdialog(caddconnectiondlg:idd, pparent)/afx_data_init(caddconnectiondlg)m_strname = _t();m_strphone = _t();m_strqq = _t();/afx_data_initvoid caddconnectiondlg:do

39、dataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(caddconnectiondlg)ddx_text(pdx, idc_edit_name, m_strname);ddx_text(pdx, idc_edit_phone, m_strphone);ddx_text(pdx, idc_edit_qq, m_strqq);/afx_data_mapbegin_message_map(caddconnectiondlg, cdialog)/afx_msg_map(caddconnectiondlg)/

40、afx_msg_mapend_message_map()/ caddconnectiondlg message handlersvoid caddconnectiondlg:onok() / todo: add extra validation hereupdatedata();if(m_strname.isempty()afxmessagebox(請(qǐng)輸入姓名!);return;if(m_strphone.isempty()afxmessagebox(請(qǐng)輸入聯(lián)系電話!);return;if(m_strqq.isempty()afxmessagebox(請(qǐng)輸入qq!);return;cstrin

41、g strsql;strsql.format(select * from connectioninfo where name= %s,m_strname);cconnectionset rs;if(!rs.open(afx_db_use_default_type,strsql)messagebox(打開數(shù)據(jù)庫(kù)失敗!,數(shù)據(jù)庫(kù)錯(cuò)誤,mb_ok);return ;if(rs.getrecordcount()!=0)rs.close();afxmessagebox(該聯(lián)系人已經(jīng)存在,請(qǐng)重新輸入!);return;rs.close();if(!rs.open(afx_db_use_default_typ

42、e)messagebox(打開數(shù)據(jù)庫(kù)失敗!,數(shù)據(jù)庫(kù)錯(cuò)誤,mb_ok);return ;rs.addnew();rs.m_name = m_strname;rs.m_phone = m_strphone;rs.m_friendqq = m_strqq;rs.update();rs.close();cdialog:onok();管理員信息窗口#include stdafx.h#include friend.h#include admininfodlg.h#include admininfoset.h#ifdef _debug#define new debug_new#undef this_file

43、static char this_file = _file_;#endif/ cadmininfodlg dialogcadmininfodlg:cadmininfodlg(cwnd* pparent /*=null*/): cdialog(cadmininfodlg:idd, pparent)/afx_data_init(cadmininfodlg)/ note: the classwizard will add member initialization here/afx_data_initvoid cadmininfodlg:dodataexchange(cdataexchange* p

44、dx)cdialog:dodataexchange(pdx);/afx_data_map(cadmininfodlg)ddx_control(pdx, idc_list_admin, m_ctrlist);/afx_data_mapbegin_message_map(cadmininfodlg, cdialog)/afx_msg_map(cadmininfodlg)/afx_msg_mapend_message_map()/ cadmininfodlg message handlersbool cadmininfodlg:oninitdialog() cdialog:oninitdialog(

45、);/ todo: add extra initialization herem_ctrlist.insertcolumn(0,管理員號(hào)); m_ctrlist.insertcolumn(1,管理員姓名); m_ctrlist.insertcolumn(2,性別); m_ctrlist.insertcolumn(3,年齡); m_ctrlist.insertcolumn(4,qq); m_ctrlist.setcolumnwidth(0,80);m_ctrlist.setcolumnwidth(1,120); m_ctrlist.setcolumnwidth(2,80);m_ctrlist.s

46、etcolumnwidth(3,80); m_ctrlist.setcolumnwidth(4,120); m_ctrlist.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines);datafresh();return true; / return true unless you set the focus to a control / exception: ocx property pages should return falsevoid cadmininfodlg:datafresh()m_ctrlist.setfocus();/清空列表m_ctrlist.deleteallitems();m_ctrlist.setredraw(false);cstring strsql;updatedata(true);/打開記錄集strsql=select

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論