久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

時(shí)間:2019-05-12 17:51:47下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)》。

第一篇:學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

在本實(shí)例中使用的是SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)服務(wù)器安裝的位置為本機(jī),數(shù)據(jù)庫(kù)名稱為communicationserver。下面將介紹數(shù)據(jù)庫(kù)分析和設(shè)計(jì)、數(shù)據(jù)表的創(chuàng)建、數(shù)據(jù)表關(guān)系圖和創(chuàng)建存儲(chǔ)過程的內(nèi)容。

4.2.1 數(shù)據(jù)庫(kù)分析和設(shè)計(jì)

在本節(jié)中,將根據(jù)上一節(jié)系統(tǒng)功能的設(shè)計(jì)分析創(chuàng)建各數(shù)據(jù)表的實(shí)體E-R關(guān)系圖,它是數(shù)據(jù)庫(kù)設(shè)計(jì)非常重要的一步,下面用E-R圖的形式表示出各實(shí)體的屬性。

1.用戶E-R實(shí)體圖

用戶的實(shí)體具有用戶ID、密碼、姓名、性別、電話、E-mail、用戶權(quán)限7個(gè)屬性,ER圖如圖4-5所示。

姓名用戶權(quán)限性別電話用戶E-mail用戶ID圖4-5 用戶E-R實(shí)體圖

密碼 2.地區(qū)E-R實(shí)體圖

地區(qū)的實(shí)體具有地區(qū)編號(hào)、地區(qū)名稱2個(gè)屬性,E-R圖如圖4-6所示。

地區(qū)編號(hào)地區(qū)圖4-6 地區(qū)E-R實(shí)體圖

地區(qū)名稱 3.職務(wù)E-R實(shí)體圖

職務(wù)的實(shí)體具有職務(wù)編號(hào)、職務(wù)名稱2個(gè)屬性,E-R圖如圖4-7所示。

職務(wù)編號(hào)職務(wù)圖4-7 職務(wù)E-R實(shí)體圖

職務(wù)名稱 4.學(xué)校E-R實(shí)體圖

學(xué)校的實(shí)體具有學(xué)校名稱、學(xué)校所在地區(qū)、在校學(xué)生人數(shù)3個(gè)屬性,可用E-R圖表示,如圖4-8所示。

學(xué)校名稱學(xué)校在校學(xué)生人數(shù)學(xué)校編號(hào)學(xué)校所在地區(qū)

圖4-8 學(xué)校E-R實(shí)體圖

5.通訊錄E-R實(shí)體圖

通訊錄的實(shí)體具有聯(lián)系人姓名、地址、聯(lián)系電話、所屬職務(wù)、所在學(xué)校、所在單位、所屬地區(qū)7個(gè)屬性,E-R圖如圖4-9所示。

聯(lián)系人姓名聯(lián)系電話所在單位通訊錄所在學(xué)校圖4-9 通訊錄E-R實(shí)體圖

所屬地區(qū)地址所屬職務(wù)

4.2.2 數(shù)據(jù)表的創(chuàng)建

在上面一節(jié)中講解了實(shí)體的E-R圖,本節(jié)中將根據(jù)E-R圖的內(nèi)容,創(chuàng)建企業(yè)信息管理系統(tǒng)中的各數(shù)據(jù)表,在此系統(tǒng)中共涉及到5個(gè)數(shù)據(jù)表的應(yīng)用,分別為如下。

1、字段采用camel 風(fēng)格定義

2、用不同顏色區(qū)分字段 ? 主鍵:藍(lán)色 ? 外鍵:白色

? 既是主鍵又是外鍵:淡藍(lán)色 ? 普通字段:青綠 1.用戶信息表

用戶信息表(Users)用于存放校園通訊錄信息管理系統(tǒng)中所有系統(tǒng)管理用戶的信息,用戶管理是每個(gè)管理系統(tǒng)中必不可少的,也是比較重要的一部分,本系統(tǒng)中進(jìn)行了較詳細(xì)的設(shè)計(jì),表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述如表4-1所示。

表4-1 用戶信息表 TB_Users 字段名稱 sUserID sUserName sUserPassword sUserSex sUserEmail sUserPhone sUserPurview 2.地區(qū)信息表

地區(qū)信息表(Client)用于存放校園通訊錄信息管理系統(tǒng)中所有地區(qū)的信息,地區(qū)信息的管理是系統(tǒng)中比較重要的內(nèi)容,地區(qū)的名稱是其中的關(guān)鍵信息,表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述如表4-2所示。

表4-2 地區(qū)信息表

TB_Area 字段名稱 sAreaID sAreaName 3.職務(wù)信息表

職務(wù)信息表(Compact)用于存放校園通訊錄信息管理系統(tǒng)中所有職務(wù)的信息,職務(wù)信息的管理是系統(tǒng)中比較重要的內(nèi)容,職務(wù)的名稱是其中的關(guān)鍵信息,表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述如表4-3所示。

表4-3 職務(wù)信息表

TB_Duty

字段名稱 sDutyID sDutyName

字段類型 varchar(20)varchar(50)

字段描述 職務(wù)編號(hào)[PK] 職務(wù)名稱

字段類型 varchar(20)varchar(50)

字段描述 地區(qū)編號(hào)[PK] 地區(qū)名稱

字段類型 varchar(10)varchar(20)varchar(10)char(2)varchar(20)varchar(20)char(1)

字段描述 用戶ID [PK] 用戶姓名

記錄用戶登入本系統(tǒng)時(shí)的用戶密碼

用戶性別 用戶E-mail 用戶的聯(lián)系電話 用戶權(quán)限 4.學(xué)校信息表

學(xué)校信息表(Com_detail)用于存放校園通訊錄信息管理系統(tǒng)中所有學(xué)校的信息,學(xué)校信息的管理是系統(tǒng)中比較重要的內(nèi)容,學(xué)校名稱是其中的關(guān)鍵信息,表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述如表4-4所示。

表4-4 學(xué)校信息表

TB_School 字段名稱 sSchoolID sSchoolName iStudentNum sAreaID_FK 5.通訊錄信息表

通訊錄信息表(product)用于存放校園通訊錄信息管理系統(tǒng)中所有通訊錄的信息,通訊錄信息的管理是系統(tǒng)中比較重要的內(nèi)容,聯(lián)系電話是其中的關(guān)鍵信息,表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述如表4-5所示。

表4-5 通訊錄信息表

TB_AddrList

字段類型 varchar(20)varchar(50)int varchar(20)

字段描述 學(xué)校編號(hào)[PK] 學(xué)校名稱 學(xué)校人數(shù) 地區(qū)編號(hào)[FK] 字段名稱 iAddrID sLinkName sAddress sLinkPhone sUnitName sSchoolID_FK sDutyID_FK sAreaID_FK

字段類型 int varchar(50)varchar(20)varchar(20)varchar(50)varchar(20)varchar(20)varchar(20)

字段描述

通訊錄編號(hào)(自動(dòng)編號(hào))[PK] 聯(lián)系人姓名 地址 聯(lián)系電話 工作單位 學(xué)校編號(hào)[FK] 職務(wù)編號(hào)[FK] 地區(qū)編號(hào)[PK] 4.2.3 創(chuàng)建視圖

學(xué)校信息視圖表V_SchoolInfo 字段名稱 sSchoolName sAreaName

字段類型 varchar(50)varchar(50)

字段描述 學(xué)校名稱 地區(qū)名稱 sLinkName sDutyName sLinkPhone

create view V_SchoolInfo as

varchar(20)varchar(20)varchar(20)

聯(lián)系人姓名 職務(wù)名稱 聯(lián)系電話

select sSchoolName,sAreaName,sLinkName,sDutyName,sLinkPhone from TB_AddrList,TB_School,TB_Duty,TB_Area where TB_AddrList.sSchoolID_FK=TB_School.sSchoolID

and and TB_AddrList.sDutyID_FK=TB_Duty.sDutyID TB_AddrList.sAreaID_FK=TB_Area.sAreaID 4.2.4 數(shù)據(jù)表關(guān)系圖

在學(xué)校通訊錄信息管理系統(tǒng)中各數(shù)據(jù)表的關(guān)系圖,如圖4-10所示。在TB_School數(shù)據(jù)表中,TB_Area數(shù)據(jù)表的sDutyID_FK字段作為外鍵。在TB_AddrList數(shù)據(jù)表中,TB_School數(shù)據(jù)表的sSchoolID_FK字段、TB_Area數(shù)據(jù)表中的sAreaID_FK字段和TB_Duty數(shù)據(jù)表中的sDutyID_FK字段作為外鍵。

圖4-10 數(shù)據(jù)表關(guān)系圖 4.2.5 創(chuàng)建存儲(chǔ)過程

因?yàn)槭褂么鎯?chǔ)過程可以給系統(tǒng)帶來(lái)優(yōu)化,所以系統(tǒng)將很大程度地使用存儲(chǔ)過程,在系統(tǒng)中共應(yīng)用了10個(gè)存儲(chǔ)過程,以Add開頭的存儲(chǔ)過程為系統(tǒng)中信息添加的存儲(chǔ)過程,以Update開頭的存儲(chǔ)過程為系統(tǒng)中信息修改的存儲(chǔ)過程,這些存儲(chǔ)過程將會(huì)在系統(tǒng)程序文件的后臺(tái)應(yīng)用中調(diào)用,下面將對(duì)系統(tǒng)中應(yīng)用的存儲(chǔ)過程進(jìn)行解釋。

1.AddTB _Users存儲(chǔ)過程

AddTB _Users存儲(chǔ)過程用于向用戶信息表中添加新的用戶信息。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE AddTB_Users @sUserID varchar(10), @sUserName varchar(20), @sUserPassword varchar(10), @sUserSex char(2), @sUserEmail varchar(20), @sUserPhone varchar(20), @sUserPurview char(1)AS

INSERT INTO TB_Users(sUserID, sUserName, sUserPassword, sUserSex, sUserEmail, sUserPhone,sUserPurview)

VALUES(@sUserID, @sUserName, @sUserPassword, @sUserSex, @sUserEmail, @sUserPhone, @sUserPurview)GO 2.Add 存儲(chǔ)過程 Add TB_Area存儲(chǔ)過程用于往地區(qū)信息表中添加新的地區(qū)信息。以下代碼表示了這一存儲(chǔ)過程。

CREATE PROCEDURE AddTB_Area

@sAreaID varchar(20),@sAreaName varchar(50)AS

INSERT INTO TB_Area(sAreaID,sAreaName)

VALUES(@sAreaID,@sAreaName)GO 3.AddTB_Duty存儲(chǔ)過程

AddTB_Duty存儲(chǔ)過程用于往職務(wù)信息表中添加新的職務(wù)信息。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE AddTB_Duty

@sDutyID varchar(20),@sDutyName varchar(50)AS

INSERT INTO TB_Duty(sDutyID,sDutyName)

VALUES(@sDutyID,@sDutyName)GO 4.AddTB_School存儲(chǔ)過程

AddTB_School 該存儲(chǔ)過程用于往學(xué)校信息表中添加新的學(xué)校信息。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE AddTB_School

@sSchoolID varchar(20),@sSchoolName varchar(50),@iStudentNum int,@sAreaID_FK varchar(20)AS

INSERT INTO TB_School(sSchoolID,sSchoolName,iStudentNum,sAreaID_FK)

VALUES(@sSchoolID,@sSchoolName,@iStudentNum,@sAreaID_FK)GO 5.AddTB_AddrList存儲(chǔ)過程

AddTB_AddrList存儲(chǔ)過程用于往通訊錄信息表中添加新的通訊錄信息。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE AddTB_AddrList

@sLinkName varchar(20),@sAddress varchar(50),@sLinkPhone varchar(20),@sUnitName varchar(20),@sSchoolID_FK varchar(20),@sDutyID_FK varchar(20)AS

INSERT INTO TB_AddrList(sLinkName,sAddress,sLinkPhone,sUnitName,sSchoolID_FK,sDutyID_FK)

VALUES(@sLinkName,@sAddress,@sLinkPhone,@sUnitName,@sSchoolID_FK,@sDutyID_FK)GO 6.UpdateTB _Users存儲(chǔ)過程

UpdateTB _Users存儲(chǔ)過程用于修改用戶信息表中,符合條件的用戶信息,其中密碼信息不可以更新。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE UpdateTB_Users

@sUserID varchar(10),@sUserName varchar(20),@sUserSex char(2),@sUserEmail varchar(20),@sUserPhone varchar(20),@sUserPurview char(1)AS

UPDATE TB_Users SET

sUserID =@sUserID,sUserName =@sUserName,sUserSex=@sUserSex,sUserEmail=@sUserEmail,sUserPhone=@sUserPhone,sUserPurview=@sUserPurview WHERE

sUserID =@sUserID GO 7.UpdateTB_Area存儲(chǔ)過程

UpdateTB_Area存儲(chǔ)過程用于修改地區(qū)信息表中的地區(qū)信息。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE UpdateTB_Area

@sAreaID varchar(20),@sAreaName varchar(50)AS

UPDATE TB_Area SET

sAreaID =@sAreaID,sAreaName =@sAreaName WHERE

sAreaID =@sAreaID GO 8.UpdateTB_Duty存儲(chǔ)過程

UpdateTB_Duty存儲(chǔ)過程用于修改職務(wù)信息表中的職務(wù)信息。以下代碼表示了這一存儲(chǔ)過程。

CREATE PROCEDURE UpdateTB_Duty

@sDutyID varchar(20),@sDutyName varchar(50)AS

UPDATE TB_Duty SET

sDutyID =@sDutyID,sDutyName =@sDutyName WHERE

sDutyID =@sDutyID GO 9.UpdateTB_School存儲(chǔ)過程

UpdateTB_School存儲(chǔ)過程用于修改學(xué)校信息表中的學(xué)校信息。以下代碼表示了這一存儲(chǔ)過程。CREATE PROCEDURE UpdateTB_School

@sSchoolID varchar(20),@sSchoolName varchar(50),@iStudentNum int,@sAreaID_FK varchar(20)AS

UPDATE TB_School SET

sSchoolID =@sSchoolID,sSchoolName =@sSchoolName,iStudentNum =@iStudentNum,sAreaID_FK=@sAreaID_FK WHERE

sSchoolID =@sSchoolID GO 10.UpdateTB_AddrList存儲(chǔ)過程

UpdateTB_AddrList存儲(chǔ)過程用于修改通訊錄信息表中的通訊錄信息。以下代碼表示了這一存儲(chǔ)過程。

CREATE PROCEDURE UpdateTB_AddrList

@iAddrID int,@sLinkName varchar(20),@sAddress varchar(50),@sLinkPhone varchar(20),@sUnitName varchar(20),@sSchoolID_FK varchar(20),@sDutyID_FK varchar(20)AS

UPDATE TB_AddrList SET

sLinkName =@sLinkName,sAddress =@sAddress,sLinkPhone =@sLinkPhone,sUnitName=@sUnitName,sSchoolID_FK=@sSchoolID_FK,sDutyID_FK=@sDutyID_FK WHERE

iAddrID =@iAddrID GO

第二篇:通訊錄管理系統(tǒng)

課 程 設(shè) 計(jì) 任 務(wù) 書

C語(yǔ)言課程設(shè)計(jì)

(部)

業(yè)

級(jí)

學(xué)生姓名

學(xué)

號(hào)

06 月

信息科學(xué)與電氣工程學(xué)院

計(jì)算機(jī)科學(xué)與技術(shù)

計(jì)職141

王雪

140819139 日至

07 月

04 日

周 指導(dǎo)教師

長(zhǎng)

2015 年 6月 23日

一、課程設(shè)計(jì)目的

將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來(lái),對(duì)不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。通過課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:

(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C++程序設(shè)計(jì)語(yǔ)言》的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。

(2)全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。

(3)利用所學(xué)知識(shí),開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C++語(yǔ)言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。

(4)對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。

(5)掌握結(jié)構(gòu)化程序設(shè)計(jì)方法,熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)方法。(6)熟練掌握C++語(yǔ)言的基本語(yǔ)法,靈活運(yùn)用各種數(shù)據(jù)類型。(7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。設(shè)計(jì)功能

錄入聯(lián)系人信息(包括姓名、電話號(hào)碼、地址等信息);通訊錄管理系統(tǒng)要求實(shí)現(xiàn)以下功能:

1、輸入每一位聯(lián)系人記錄,將其信息存入文件中。

2、查詢所有聯(lián)系人的信息,并按可選的自定義規(guī)則進(jìn)行排序;

3、記錄修改,將修改的記錄信息保存于文件中。設(shè)計(jì)要求

1、設(shè)一個(gè)通信錄由以下幾項(xiàng)數(shù)據(jù)信息構(gòu)成: 數(shù)據(jù)項(xiàng) 類型

姓名 字符串

地址 字符串

郵政編碼 字符串

電話號(hào)碼 字符串

試為通信錄數(shù)據(jù)定義類型和定義通信錄變量,實(shí)現(xiàn)功能:存取、顯示、刪除記錄、查詢記錄等功能。

2、要求:界面友好,易于操作 總體設(shè)計(jì) 系統(tǒng)功能模塊圖:

添加:可以添加通訊錄記錄,依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱等后,會(huì)提示是否繼續(xù)添加。

顯示:可以以表格形式輸出所有通訊錄里的記錄

刪除:輸入欲刪除的那個(gè)人的名字后,會(huì)自動(dòng)刪除他(她)的記錄內(nèi)容 查詢:可以選擇用姓名、電話、地址三種方式查詢

修改:輸入欲修改的那個(gè)人的名字后,再依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱即可完成修改

保存:,輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件

課程設(shè)計(jì)名稱及內(nèi)容

課程設(shè)計(jì)名稱:?jiǎn)雾?xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)

設(shè)計(jì)內(nèi)容:設(shè)計(jì)并實(shí)現(xiàn)一個(gè)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)。該系統(tǒng)可以完成試題錄入、試題抽取、自動(dòng)判卷等功能。

任務(wù)和要求

功能要求:

(1)用文件保存試題庫(kù)。(每個(gè)試題包括題干、4個(gè)備選答案、標(biāo)準(zhǔn)答案)(2)試題錄入:可隨時(shí)增加試題到試題庫(kù)中

(3)試題抽取:每次從試題庫(kù)中可以隨機(jī)抽出N道題(N由鍵盤輸入)(4)答題:用戶可實(shí)現(xiàn)輸入自己的答案

(5)自動(dòng)判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對(duì)比實(shí)現(xiàn)判卷并給出成績(jī)。

(二)其它要求:

(1)只能使用C/C++語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨專钩绦蛉菀组喿x(2)至少采用文本菜單界面(如果能采用圖形菜單界面更好)(3)學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)

主要知識(shí)點(diǎn)

l 面向?qū)ο蟪绦蛟O(shè)計(jì)方法

l 界面制作,switch的應(yīng)用。l 類和對(duì)象。l 動(dòng)態(tài)數(shù)組(鏈表)類模板。l 文件的讀寫。

五、其他

程序設(shè)計(jì)可在Microsoft VC++6.0、Borland C++ Builder環(huán)境下進(jìn)行。

六、參考資料

【1】《C語(yǔ)言程序設(shè)計(jì)》,譚浩強(qiáng)編,清華大學(xué)出版社,2008年 出版 【2】《C語(yǔ)言程序設(shè)計(jì)》,吳明發(fā)編,北京理工大學(xué)出版社,2007年出版 【3】《C語(yǔ)言參考手冊(cè)》邱仲潘 機(jī)械工業(yè)出版社,2004年出版

【4】《C語(yǔ)言課程設(shè)計(jì)案例精編》 姜靈之 清華大學(xué)出版社 2008年出版

詳細(xì)設(shè)計(jì)(1).通訊錄: 主要代碼

#include #include #include struct student

//結(jié)構(gòu)體 {

};class inter { private: student st[35];char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];public: void add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]);

void del(char name[20]);void find1(char no[13]);void find2(char name[20]);void list1();void list2();int correct(char name[20]);void read();void write();void format();int back(){

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

} void print(int i){

cout<<“學(xué)號(hào):”<>back;if(back=='R'||back=='r')return 1;else return 0;

};

} cout<<“電話號(hào)碼:”<

inter a;a.format();char select1;cout<

計(jì)職141

” <

<<“tt★★★★★★★★★★★★★★★★★★★★★★★★★★” <

※” <

通 迅 錄

※” <

※” <

※” <

※” <

※” <

<<“tt

”<

<<“ttt選擇 :”;cin>>select1;

switch(select1){ case '1':cout<<“

(1)添加:”<

cout<<“

(2)刪除:”<

(3)修改:”<

請(qǐng)選擇:”<>select2;switch(select2){ case '1':cout<<“

輸入添加的資料:”<

char name[20];

char address[100];

char tel_no[12];

char post_code[7];

char e_mail[40];

cout<<“

輸入學(xué)號(hào):”<>no;cout<<“

輸入姓名:”<>name;cout<<“

輸入地址:”<>address;cout<<“

輸入電話號(hào)碼:”<>tel_no;cout<<“

輸入郵編:”<>post_code;

cout<<“

輸入E_mail:”<>e_mail;a.add(no,name,address,tel_no,post_code,e_mail);

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

char back_add;cin>>back_add;if(back_add=='R'||back_add=='r')goto top;else goto bottom;break;case '2':cout<<“

輸入要?jiǎng)h除人的姓名:”<

char name2[20];cin>>name2;a.del(name2);

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

char back_del;cin>>back_del;if(back_del=='R'||back_del=='r')goto top;else goto bottom;break;case '3':cout<<“

輸入需要修改人的姓名:”<

char name3[20];cin>>name3;if(a.correct(name3))

} goto top;else goto bottom;break;break;case '2':cout<<“

(1)根據(jù)姓名查找”<

cout<<“

(2)根據(jù)學(xué)號(hào)查找”<

請(qǐng)選擇: ”;cin>>select3;switch(select3){ case '1':char name4[20];

cout<<“

輸入姓名: ”;cin>>name4;a.find2(name4);

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

char back_f1;cin>>back_f1;if(back_f1=='R'||back_f1=='r')goto top;else goto bottom;break;case '2':char no4[13];cout<<“

輸入學(xué)號(hào): ”;cin>>no4;

a.find1(no4);

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

} break;char back_f2;cin>>back_f2;if(back_f2=='R'||back_f2=='r')goto top;else goto bottom;break;case '3':a.write();cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

char back_w;cin>>back_w;if(back_w=='R'||back_w=='r')goto top;else goto bottom;break;case '4':cout<<“

(1)按學(xué)號(hào)排序:”<

cout<<“

(2)按姓名排序:”<

請(qǐng)選擇:”;char select4;cin>>select4;switch(select4){ case '1':a.list1();

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

char back;cin>>back;if(back=='R'||back=='r')goto top;else goto bottom;break;case '2':a.list2();

cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

} break;char back1;cin>>back1;if(back1=='R'||back1=='r')goto top;else goto bottom;break;case '5':a.read();cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

char back_r;cin>>back_r;if(back_r=='R'||back_r=='r')

goto top;else goto bottom;break;case '6':cout<<“

請(qǐng)確認(rèn)刪除所有資料!(Y/N)

”;

char select5;cin>>select5;if(select5=='Y'||select5=='y')a.format();cout<<“

返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

”;

} char back_f;cin>>back_f;if(back_f=='R'||back_f=='r')goto top;else goto bottom;break;bottom:cout<<“

★★★★★★★★★★★★歡迎使用本軟件!★★★★★★★★★★★

”<

void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){ int x=1;for(int i=0;i<35;i++)return 0;

} {

} if(!strcmp(st[i].no,“0”)){

} if(x==0)break;strcpy(st[i].address,address);strcpy(st[i].e_mail,e_mail);strcpy(st[i].name,name);strcpy(st[i].no,no);strcpy(st[i].post_code,post_code);strcpy(st[i].tel_no,tel_no);x=0;//刪除聯(lián)系人

void inter::del(char name[20]){

int x=1;for(int i=0;i<35;i++){ if(!strcmp(st[i].name,name)){

strcpy(st[i].address,“0”);

strcpy(st[i].e_mail,“0”);strcpy(st[i].name,“0”);strcpy(st[i].no,“0”);strcpy(st[i].post_code,“0”);strcpy(st[i].tel_no,“0”);

}

} } else x=0;if(x==0)cout<<“

error:輸入姓名錯(cuò)誤!”<

int inter::correct(char name[30]){

int x;for(int i=0;i<35;i++){

} char select;cout<<“

(1)修改姓名:”<

(2)修改學(xué)號(hào):”<

(3)修改地址:”<

(4)修改郵編:”<

(5)修改電話號(hào)碼:”<

(6)修改E_MAIL:”<

請(qǐng)選擇:”;cin>>select;switch(select){ case '1':cout<<“

輸入要修改的姓名:”;char name1[30];if(!strcmp(st[i].name,name))x=i;

cin>>name1;strcpy(st[x].name,name1);cout<<“

修改成功!”<

輸入要修改的學(xué)號(hào):”;

char no1[13];cin>>no1;strcpy(st[i].no,no1);cout<<“

修改成功!”<

輸入要修改的地址:”;

char address1[100];cin>>address1;strcpy(st[x].address,address1);cout<<“

修改成功!”<

輸入要修改的郵編:”;

char post_code1[7];cin>>post_code1;strcpy(st[x].post_code,post_code1);cout<<“

修改成功!”<

輸入要修改的電話號(hào)碼:”;char tel_no1[12];

cin>>tel_no1;strcpy(st[x].tel_no,tel_no1);cout<<“

修改成功!”<

輸入要修改的E_MAIL:”;

char e_mail1[40];

cin>>e_mail1;

strcpy(st[x].e_mail,e_mail1);

cout<<“

修改成功!”<

return back();

break;} } //按學(xué)號(hào)查詢聯(lián)系人

void inter::find1(char no[13]){ int x,y=1,z=1;for(int i=0;i<35;i++){

if(!strcmp(st[i].no,no))

{

x=i;

z=0;

}

else y=0;

if(z==0)break;

}

if(y==0)cout<<“

輸入的學(xué)號(hào)查找不到!!”<

print(x);} //按姓名查詢聯(lián)系人

void inter::find2(char name[20]){

} //讀取文件 void inter::read(){ int x,y=1,z=1;for(int i=0;i<35;i++){

} if(y==0)cout<<“

輸入的姓名查找不到!!”<

} else y=0;if(z==0)break;x=i;z=0;

print(x);

char name1[20];cout<<“

輸入你要導(dǎo)入的文件名: ”;cin>>name1;strcat(name1,“.txt”);ifstream file(name1);char line[120];char no[120];char name[120];char address[120];char post_code[120];char tel_no[120];char e_mail[120];int time=0;file.getline(line,120);while(!file.eof()){

for(int k=0;k<35;k++){

if(time==0){ strcpy(no,line);time=1;for(int i=0;i<120;i++){

if(no[i]==':'){ i++;for(int j=0;j<13;j++)

}

} {

}

st[k].no[j]=no[i];i++;file.getline(line,120,'n');} if(time==1){

} if(time== 2){ strcpy(name,line);time=2;

for(int i=0;i<120;i++){

} file.getline(line,120,'n');if(name[i]==':'){

} i++;for(int j=0;j<20;j++){

}

st[k].name[j]=name[i];i++;

} strcpy(address,line);time=3;for(int i=0;i<120;i++){

} file.getline(line,120,'n');if(address[i]==':'){

} i++;for(int j=0;j<100;j++){

}

st[k].address[j]=address[i];i++;if(time==3){

strcpy(tel_no,line);time=4;for(int i=0;i<120;i++){

if(tel_no[i]==':'){

i++;for(int j=0;j<12;j++){

st[k].tel_no[j]=tel_no[i];

}

}

} }

i++;file.getline(line,120,'n');

if(time==4){

} if(time==5){ strcpy(e_mail,line);strcpy(post_code,line);time=5;for(int i=0;i<120;i++){

} file.getline(line,120,'n');if(post_code[i]==':'){

} i++;for(int j=0;j<7;j++){

}

st[k].post_code[j]=post_code[i];i++;

}

}

} } time=0;for(int i=0;i<120;i++){

} file.getline(line,120,'n');if(e_mail[i]==':'){

} i++;for(int j=0;j<40;j++){

}

st[k].e_mail[j]=e_mail[i];i++;

file.close();//寫入文件 void inter::write(){

char name[20];cout<<“

輸入要保存的文件名

”;cin>>name;strcat(name,“.txt”);ofstream savefile(name);for(int i=0;i<35;i++)

} {

} savefile.close();savefile << “學(xué)號(hào):”<

savefile << “姓名:”<

savefile << “地址:”<

savefile << “電話號(hào)碼:”<

savefile << “郵編:”<

savefile << “E_MAIL:”<

strcpy(no,st[j].no);strcpy(st[j].no,st[j+1].no);for(int i=0;i<34;i++){

for(int j=0;j<35-i;j++){

if(strcmp(st[j].no,st[j+1].no)>0){ char no[13];

char name[20];

char address[100];

char tel_no[12];

char post_code[7];

char e_mail[40];

strcpy(st[j+1].no,no);

strcpy(name,st[j].name);strcpy(st[j].name,st[j+1].name);strcpy(st[j+1].name,name);

strcpy(address,st[j].address);

} for(int k=0;k<35;k++){ int x=0;if(strcmp(st[k].no,“0”))

}

} strcpy(st[j].address,st[j+1].address);strcpy(st[j+1].address,address);

strcpy(tel_no,st[j].tel_no);strcpy(st[j].tel_no,st[j+1].tel_no);strcpy(st[j+1].tel_no,tel_no);

strcpy(post_code,st[j].post_code);strcpy(st[j].post_code,st[j+1].post_code);strcpy(st[j+1].post_code,post_code);

strcpy(e_mail,st[j].e_mail);strcpy(st[j].e_mail,st[j+1].e_mail);strcpy(st[j+1].e_mail,e_mail);

{

} if(x==1){ cout<

} } } //按姓名排序 void inter::list2(){

for(int i=0;i<34;i++){

for(int j=0;j<35-i;j++){

if(strcmp(st[j].name,st[j+1].name)>0){ char no[13];

char name[20];

char address[100];

char tel_no[12];

char post_code[7];

char e_mail[40];

strcpy(no,st[j].no);strcpy(st[j].no,st[j+1].no);strcpy(st[j+1].no,no);

strcpy(name,st[j].name);strcpy(st[j].name,st[j+1].name);strcpy(st[j+1].name,name);

strcpy(address,st[j].address);

} for(int k=0;k<35;k++){

}

} strcpy(st[j].address,st[j+1].address);strcpy(st[j+1].address,address);

strcpy(tel_no,st[j].tel_no);strcpy(st[j].tel_no,st[j+1].tel_no);strcpy(st[j+1].tel_no,tel_no);

strcpy(post_code,st[j].post_code);strcpy(st[j].post_code,st[j+1].post_code);strcpy(st[j+1].post_code,post_code);

strcpy(e_mail,st[j].e_mail);strcpy(st[j].e_mail,st[j+1].e_mail);strcpy(st[j+1].e_mail,e_mail);

}

} int x=0;if(strcmp(st[k].no,“0”)){

} if(x==1){

} cout<

void inter::format(){

} for(int i=0;i<35;i++){

} strcpy(st[i].address,“0”);strcpy(st[i].e_mail,“0”);strcpy(st[i].name,“0”);strcpy(st[i].no,“0”);strcpy(st[i].post_code,“0”);strcpy(st[i].tel_no,“0”);

(2).工作流程圖:

1.通訊錄主界面

2.添加:添加通訊錄記錄

3.顯示:查詢通訊錄記錄

4.刪除:刪除通訊錄記錄

5.修改:修改通訊錄記錄

小結(jié)(收獲和建議)這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來(lái)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言結(jié)果的一次大檢驗(yàn),面對(duì)許多不懂得知識(shí),通過他人的幫助,以及參考他人的成果,自己動(dòng)手嘗試,修改等,才完成。這個(gè)課程設(shè)計(jì),花費(fèi)了我近兩個(gè)星期的時(shí)間,這也是因?yàn)闀静皇煜ぁMㄟ^這次設(shè)計(jì),使我對(duì)《C語(yǔ)言》這門課程有了更深一步的了解。它不僅是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),也在我們電子與信息專業(yè)的學(xué)習(xí)中占據(jù)著十分重要的地位。同時(shí)也使我們知道,要學(xué)好這門課程,僅學(xué)習(xí)書本上的知識(shí)是不夠的,還要有較強(qiáng)的實(shí)踐能力。因?yàn)槲覀儗W(xué)習(xí)知識(shí)就是為了實(shí)踐。而只有多實(shí)踐,多編寫程序,才能更好的理解與掌握書本上的東西。利用計(jì)算機(jī)來(lái)編寫程序,也讓我感受到了編程的樂趣,極大的激發(fā)了我的興趣。

第三篇:通訊錄管理系統(tǒng)

摘 要

為了人們對(duì)他人信息的記憶方便而設(shè)計(jì),開發(fā)的一套“通訊錄管理系統(tǒng)“軟件。通過該題目的設(shè)計(jì)過程,可以培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對(duì)高級(jí)語(yǔ)言基本語(yǔ)言要素和控制結(jié)構(gòu)的理解,針對(duì)c語(yǔ)言中的重點(diǎn)和難點(diǎn)內(nèi)容進(jìn)行訓(xùn)練,獨(dú)立完成有一定工作量的程序設(shè)計(jì)任務(wù),同時(shí)強(qiáng)調(diào)好的程序設(shè)計(jì)風(fēng)格。得到軟件工程的綜合訓(xùn)練,提高解決實(shí)際問題的能力。

關(guān)鍵字:信息;管理;實(shí)用

Abstract

Designed for people to others the memory of information convenient, developed a set of “mail list management system” software.Through the design process of this subject, students can be structured programming ideas, deepen our understanding of the advanced language basic language elements and control the understanding of the structure, conduct training for emphasis and difficulty in C language, independently complete the program design has a certain work tasks, while emphasizing the good programming style.Comprehensive training in software engineering, improving the ability to solve practical problems.Keywords: Information;management;practical

目 錄 概述.........................................................................1 1.1設(shè)計(jì)目的..................................................................1 1.2設(shè)計(jì)要求..................................................................1 1.3系統(tǒng)功能需求分析..........................................................2 2 總體設(shè)計(jì).....................................................................3 2.1總體功能模塊圖............................................................3 2.2程序的數(shù)據(jù)設(shè)計(jì)............................................................4 3詳細(xì)設(shè)計(jì).....................................................................5 3.1功能及工作流程圖..........................................................5 3.2源程序代碼................................................................8 4調(diào)試分析....................................................................19 4.1測(cè)試.....................................................................19 4.2問題思考與調(diào)試:.........................................................27 5總結(jié)........................................................................28 參考文獻(xiàn)......................................................................29 致 謝........................................................................27

概述

1.1設(shè)計(jì)目的

隨著信息社會(huì)的高速發(fā)展,人與人之間的聯(lián)系越來(lái)越頻繁,通訊方式越來(lái)越多樣化,如何保證與朋友、同學(xué)、同事、領(lǐng)導(dǎo)、親戚等之間的聯(lián)系,并能方便快捷的查找、記錄、修改其相關(guān)通訊信息。僅靠以前單獨(dú)的手工記錄已遠(yuǎn)遠(yuǎn)不能滿足當(dāng)前的需要。

開發(fā)一個(gè)通訊錄管理系統(tǒng),借助計(jì)算機(jī)可以方便、快捷、靈活的管理個(gè)人的朋友及相關(guān)人員的通訊信息,了解友人相關(guān)信息,幫助與友人保持聯(lián)絡(luò)。

所以設(shè)計(jì)一個(gè)通訊錄管理系統(tǒng)管理各人的通訊信息是是非必要的。

設(shè)計(jì)“通訊錄管理系統(tǒng)”使其具有數(shù)據(jù)插入、修改、刪除、顯示和查詢等功能。(1)數(shù)據(jù)包括:人名、工作單位、電話號(hào)碼和E-mail地址。(2)可對(duì)記錄中的姓名和電話號(hào)碼進(jìn)行修改。(3)可增加或刪除記錄。(4)可顯示所有保存的記錄。(5)可按人名或電話號(hào)碼進(jìn)行查詢。

1.2設(shè)計(jì)要求

建立通訊錄信息,信息至少包含姓名、住址、單位、固定電話、移動(dòng)手機(jī)、分類(如同事、朋友、同學(xué)、家人等)、E-mail、QQ等。

該系統(tǒng)提供添加、刪除、修改和查找功能,其中按姓名方式刪除、修改,按姓名、單位、分類方式查找。

將通訊錄保存在文件中。能夠輸出通訊錄中的信息。

1.3系統(tǒng)功能需求分析

主要包含一下多種功能:

添加:添加通訊錄記錄 顯示:顯示通訊錄記錄 刪除:刪除通訊錄記錄 查詢:查詢通訊錄記錄 修改:修改通訊錄記錄 保存:將信息保存到文件

本系統(tǒng)為通訊錄管理系統(tǒng),可由用戶自由添加,刪除和修改信息,還可以將通訊錄信息導(dǎo)出到文本文檔,極大的方便了用戶的使用。

總體設(shè)計(jì)

思路:我們首先設(shè)計(jì)出了主函數(shù),然后根據(jù)去要實(shí)現(xiàn)的功能分別設(shè)計(jì)錄入聯(lián)系人信息、瀏覽、查詢、修改、刪除功能的子函數(shù)。刪除函數(shù)的設(shè)計(jì)是首先從文件內(nèi)找到要?jiǎng)h除的人,然后通過寫一個(gè)實(shí)現(xiàn)刪除目的的FOR循環(huán)實(shí)現(xiàn)刪除。修改也大體和刪除相同,添加函數(shù)在設(shè)計(jì)時(shí)通過申請(qǐng)一片空間,然后通過指針將需要添加的信息添加進(jìn)去,從而實(shí)現(xiàn)添加功能。

2.1總體功能模塊圖

圖2.1 總體功能模塊圖

添加:可以添加通訊錄記錄,依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱后,會(huì)提示是否繼續(xù)添加。

顯示:可以以表格形式輸出所有通訊錄里的記錄。

刪除:輸入欲刪除的那個(gè)人的名字后,會(huì)自動(dòng)刪除他(她)的記錄內(nèi)容。查詢:可以選擇用姓名、電話、地址三種方式查詢。

修改:輸入欲修改的那個(gè)人的名字后,再依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱即可完成修改。

保存:輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件。運(yùn)行所需環(huán)境:win7及以下各版本windows,visual C++6.0。2.2程序的數(shù)據(jù)設(shè)計(jì)

該系統(tǒng)用下面六個(gè)功能模塊編寫,每個(gè)模塊執(zhí)行不同的功能,體現(xiàn)了模塊化設(shè)計(jì)的思想。下面六個(gè)模塊都是利用C語(yǔ)言文件,向文件中追加數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)和除數(shù)據(jù)。

創(chuàng)建:用fopen()建立一個(gè)文本文件,然后用fprintf()向其中輸入數(shù)據(jù)(例如,向文件中輸入“姓名”,“地址”等),并對(duì)文件進(jìn)行命名。

添加:可以添加通訊錄記錄,利用C語(yǔ)言文件,向文件中按順序輸入姓名、住址、單位、固定電話、手機(jī)號(hào)碼、分類(如同事、朋友、同學(xué)、家人等)、E-mail、QQ,再用fclose()函數(shù)關(guān)閉并保存文件。

輸出:也是用通過循環(huán)依次輸出文件中的數(shù)據(jù),即輸出所有通訊錄里的記錄。刪除:輸入你要?jiǎng)h除的人的姓名后,系統(tǒng)會(huì)自動(dòng)刪除他(她)的記錄,在刪除通過switch語(yǔ)句滿足提示你確認(rèn)刪除的功能,只有等你確認(rèn)刪除后才會(huì)刪除。查找:為了滿足用戶的實(shí)際需求,設(shè)計(jì)了三種查詢方式,可以用姓名、單位、分類三種方式查找通訊錄記錄。這里用到strcmp()函數(shù),通過比較字符串是否相同來(lái)判別是否找到相關(guān)信息,找到后,就把文件中的數(shù)據(jù)賦給對(duì)應(yīng)的變量,再把變量所帶的值輸出到屏幕上。

修改:輸入你要修改的那個(gè)人的姓名后,系統(tǒng)會(huì)查找該通訊錄文件(此時(shí)用發(fā)ftell()函數(shù)來(lái)跟蹤文件指針的指向地址,找到個(gè)人的記錄后,會(huì)顯示他(她)的記錄,然后通過fseek()函數(shù)來(lái)找到修改處的地址,然后用戶再依次輸入他(她)的相關(guān)信息來(lái)替代以前的記錄。

保存:用到fclose()函數(shù),每次操作成功后會(huì)自動(dòng)保存到指定的文件中。

3詳細(xì)設(shè)計(jì)

3.1功能及工作流程圖

①添加:添加通訊錄記錄,依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱后,會(huì)提示是否繼續(xù)添加。

圖3.1(1)添加流程圖

②顯示:以表格形式輸出所有通訊錄里的

圖3.1(2)顯示流程圖

③刪除::輸入欲刪除的那個(gè)人的名字后,會(huì)自動(dòng)刪除他(她)的記錄內(nèi)容。

圖3.1(3)刪除流程圖

④查詢:可以選擇用姓名、電話、地址三種方式查詢。

圖3.1(4)查詢流程圖

⑤修改:輸入欲修改的那個(gè)人的名字后,再依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱即可完成修改。

圖3.1(5)修改流程圖 3.2源程序代碼

#include #include #include

typedef struct

Person pe[80];

int menu_select()

{

char c;do{

system(“cls”);

printf(“tt *****通訊錄***** n”);

printf(“tt┌───────┐n”);

printf(“tt│ 1.添加記錄

│n”);printf(“tt│ 2.顯示記錄

│n”);printf(“tt│ 3.刪除記錄

│n”);printf(“tt│ 4.查詢記錄

│n”);printf(“tt│ 5.修改記錄

│n”);{

char score;

/*編號(hào)*/ char name[10];

/*姓名*/ char num[15];

/*號(hào)碼*/ char email[20];char age[8];char adds[20];

/*郵箱*/ /*年齡*/

/*住址*/ }Person;

} printf(“tt│ 6.保存記錄

│n”);printf(“tt│ 0.退出程序

│n”);printf(“tt└───────┘n”);printf(“tt請(qǐng)您選擇(0-6):”);c=getchar();

}while(c<'0'||c>'6');return(c-'0');

int Input(Person per[],int n){

gets(x);

int i=0;

char sign,x[10];

while(sign!='n'&&sign!='N'){

printf(“t編號(hào):”);

scanf(“t%d”,&per[n+i].score);printf(“t姓名:”);

scanf(“t%s”,per[n+i].name);printf(“t年齡:”);scanf(“t%s”,per[n+i].age);printf(“t電話號(hào)碼:”);scanf(“t%s”,per[n+i].num);printf(“t通訊住址:”);scanf(“t%s”,per[n+i].adds);printf(“t電子郵箱:”);scanf(“t%s”,per[n+i].email);

}

} printf(“nt是否繼續(xù)添加?(Y/N)”);scanf(“t%c”,&sign);i++;

return(n+i);

void Display(Person per[],int n)

{

int i;

printf(“--------n”);

/*格式*/

printf(“%-5d%-8s%-6s%-13s%-15s%-15sn”,per[i-1].score,per[i-1].name,per[i-1].age,perprintf(“編號(hào)

姓名

年齡

電話號(hào)碼

通訊地址

電子郵箱n”);printf(“--------n”);

for(i=1;i

{

[i-1].num,per[i-1].adds,per[i-1].email);

}

printf(“--------n”);system(“pause”);if(i>1&&i%10==0)

{

} printf(“t----n”);printf(“t”);system(“pause”);

printf(“t----n”);}

int Delete_a_record(Person per[],int n){

} char s[20];int i=0,j;

printf(“t請(qǐng)輸入想刪除記錄中的名字:”);scanf(“%s”,s);

while(strcmp(per[i].name,s)!=0&&i

}

for(j=i;j

}

printf(“ttt已經(jīng)成功刪除!n”);return(n-1);strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].age,per[j+1].age);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].email,per[j+1].email);per[j].score=per[j+1].score;printf(“t通訊錄中沒有此人!n”);return(n);void Query_a_record(Person per[],int n){

int m;printf(“tn請(qǐng)選擇查詢方式:n”);

printf(“t┌──────┐n”);

printf(“t│1------姓名 │n”);

printf(“t│2------電話 │n”);

printf(“t│3------地址 │n”);

printf(“t│4------返回 │n”);

printf(“t└──────┘n”);

printf(“請(qǐng)選擇:”);

scanf(“%d”,&m);

while(m!=1&&m!=2&&m!=3&&m!=4)

{

if(m==1){

char s[20];int i=0;

printf(“t請(qǐng)輸入想查詢的姓名:”);scanf(“t%s”,s);

while(strcmp(per[i].name,s)!=0&&i

} printf(“輸入錯(cuò)誤,請(qǐng)重新選擇:”);scanf(“%d”,&m);

};} return;

printf(“t此人編號(hào): %dn”,per[i].score);printf(“t此人年齡: %sn”,per[i].age);printf(“t電話號(hào)碼: %sn”,per[i].num);printf(“t通訊地址: %sn”,per[i].adds);printf(“t電子郵箱: %sn”,per[i].email);if(m==2){

char s[20];int i=0;

printf(“t請(qǐng)輸入想查詢的電話:”);scanf(“t%s”,s);

while(strcmp(per[i].num,s)!=0&&i

};}

printf(“t此人編號(hào): %dn”,per[i].score);printf(“t此人姓名: %sn”,per[i].name);printf(“t此人年齡: %sn”,per[i].age);printf(“t通訊地址: %sn”,per[i].adds);printf(“t電子郵箱: %sn”,per[i].email);

} if(m==3){

};char s[20];int i=0;

printf(“t請(qǐng)輸入想查詢的地址:”);scanf(“t%s”,s);

while(strcmp(per[i].adds,s)!=0&&i

}

printf(“t此人編號(hào): %dn”,per[i].score);printf(“t此人姓名: %sn”,per[i].name);printf(“t此人年齡: %sn”,per[i].age);printf(“t電話號(hào)碼: %sn”,per[i].num);printf(“t電子郵箱: %sn”,per[i].email);printf(“t通訊錄中沒有此人!n”);return;

void Change(Person per[],int n){

char s[20];int i=0;

printf(“t請(qǐng)輸入想修改的記錄中的名字:”);scanf(“%s”,s);

while(strcmp(per[i].name,s)!=0&&i

printf(“t通訊錄中沒有此人!n”);

return;

}

printf(“t編號(hào):”);

scanf(“t%d”,&per[i].score);

printf(“t姓名:”);

scanf(“t%s”,per[i].name);

printf(“t年齡:”);

scanf(“t%s”,per[i].age);printf(“t電話號(hào)碼:”);

scanf(“t%s”,per[i].num);

printf(“t通訊住址:”);

scanf(“t%s”,per[i].adds);printf(“t電子郵箱:”);scanf(“t%s”,per[i].email);printf(“t修改成功!”);}

void WritetoText(Person per[],int n)

{

int i=0;

FILE *fp;

char filename[20];

printf(“t保存到文件n”);

printf(“t請(qǐng)輸入所保存的文件名:”);

scanf(“t%s”,filename);

if((fp=fopen(filename,“w”))==NULL)

/*定義文件指針*/ /*定義文件名*/ /*輸入文件名*/

{

}

fprintf(fp,“******************************************

錄printf(”t無(wú)法打開文件n“);system(”pause“);return;

******************************************n”);fprintf(fp,“編號(hào)

姓名

年齡

電話號(hào)碼

通訊地址

電子郵箱n”);;

fprintf(fp,“%-3dt%-6st%-3st%-13st%-20st%-20sn”,per[i].score,per[i].name,per[i].agwhile(i

;fprintf(fp,“***************************************共有%d

條記錄 } fprintf(fp,”----------------------------n“)i++;

****************************************n”,n);

}

void main()

/*主函數(shù)*/ { int n=0;fclose(fp);

/*關(guān)閉文件*/ printf(“保存成功!n”);for(;;){

switch(menu_select())

{

case 1:

printf(“nt添加記錄到通訊錄n”);

n=Input(pe,n);break;

case 2:

printf(“nttt

通訊錄記錄表n”);Display(pe,n);

break;

case 3:

printf(“nt從通訊錄中刪除記錄n”);n=Delete_a_record(pe,n);

printf(“t”);

system(“pause”);break;

case 4:

printf(“nt在通訊錄中查找記錄n”);Query_a_record(pe,n);

printf(“t”);

system(“pause”);

break;

case 5:

/*添加記錄*/

/*顯示記錄*/ /*刪除記錄*/

/*查找記錄*/

printf(“nt修改通訊錄中的記錄n”);

Change(pe,n);

printf(“t”);

system(“pause”);

break;

case 6:

printf(“nt保存功能n”);

WritetoText(pe,n);

printf(“t”);

system(“pause”);

break;

case 0:

printf(“ntt謝謝使用,再見!n”);

printf(“ntt”);

system(“pause”);

exit(0);

}

}

}

/*修改數(shù)據(jù)*/

/*保存數(shù)據(jù)*/

/*結(jié)束程序*/

4調(diào)試分析

調(diào)試的意義和目的:在管理信息系統(tǒng)的開發(fā)過程中,面對(duì)著錯(cuò)綜復(fù)雜的各種問題,人的主觀認(rèn)識(shí)不可能完全符合客觀現(xiàn)實(shí),開發(fā)人員之間的思想交流也不可能十分完善。所以,在管理信息系統(tǒng)開發(fā)周期的各個(gè)階段都不可避免地會(huì)出現(xiàn)差錯(cuò)。開發(fā)人員應(yīng)力求在每個(gè)階段結(jié)束之前進(jìn)行認(rèn)真、嚴(yán)格的技術(shù)審查,盡可能早的發(fā)現(xiàn)并糾正錯(cuò)誤,否則等到系統(tǒng)投入運(yùn)行后再回頭來(lái)改正錯(cuò)誤將在人力、物力上造成很大的浪費(fèi),有時(shí)甚至導(dǎo)致整個(gè)系統(tǒng)的癱瘓。然而,經(jīng)驗(yàn)表明,單憑審查并不能發(fā)現(xiàn)全部差錯(cuò),加之在程序設(shè)計(jì)階段也不可避免還會(huì)產(chǎn)生新的錯(cuò)誤,所以,對(duì)系統(tǒng)進(jìn)行調(diào)試是不可缺少的,是保證系統(tǒng)質(zhì)量的關(guān)鍵步驟。統(tǒng)計(jì)資料表明,對(duì)于一些較大規(guī)模的系統(tǒng)來(lái)說(shuō),系統(tǒng)調(diào)試的工作量往往占程序系統(tǒng)編制開發(fā)總工作量的40%以上。

調(diào)試的目的在于發(fā)現(xiàn)其中的錯(cuò)誤并及時(shí)糾正,所以在調(diào)試時(shí)應(yīng)想方設(shè)法使程序的各個(gè)部分都投入運(yùn)行,力圖找出所有錯(cuò)誤。錯(cuò)誤多少與程序質(zhì)量有關(guān)。即使這樣,調(diào)試通過也不能證明系統(tǒng)絕對(duì)無(wú)誤,只不過說(shuō)明各模塊、各子系統(tǒng)的功能和運(yùn)行情況正常,相互之間連接無(wú)誤,系統(tǒng)交付用戶使用以后,在系統(tǒng)的維護(hù)階段仍有可能發(fā)現(xiàn)少量錯(cuò)誤并進(jìn)行糾正,這也是正常的。

4.1測(cè)試

1).顯示的主菜單界面:

圖4.1(1)主菜單界面 2).添加界面:

圖4.1(2)添加界面 3).顯示界面:

圖4.1(3)顯示界面 4).刪除界面:

圖4.1(4)刪除前界面 刪除后,通訊錄里的顯示記錄:

圖(4)刪除后界面 5).查詢界面:以姓名查詢方式為例:

圖4.1(5)查詢界面

6).修改界面:

圖4.1(6)修改前界面 修改后,通訊錄里的顯示記錄:

圖4.1(6)修改后界面 7).保存界面:

圖4.1(7)保存界面

通訊錄.txt 文件截圖:

圖4.1文件截圖

4.2問題思考與調(diào)試:

1.當(dāng)我在進(jìn)行刪除、查詢、修改、保存等功能時(shí),以查詢?yōu)槔斎朊职椿剀嚭螅m然會(huì)顯示該人的所有記錄,但是顯示后,它馬上自動(dòng)消失了,還沒來(lái)得及等我看內(nèi)容。因此,向別人請(qǐng)教后,在一些地方加入了system(“pause”);這個(gè)語(yǔ)言,用來(lái)對(duì)某項(xiàng)操作完成后進(jìn)行暫停。

2.現(xiàn)在這個(gè)程序的界面?zhèn)€人感覺很清爽。但在最初,每次進(jìn)行一項(xiàng)操作,運(yùn)行窗口里的內(nèi)容會(huì)一直保留著,感覺很雜亂,如下圖(添加后,進(jìn)行顯示操作):

圖4.2分析圖

之后,我去網(wǎng)上尋求解決辦法,知道可以使用system(“cls”);這一語(yǔ)句可以解決這個(gè)問題,最后,修改成功。5總結(jié)

這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來(lái)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言結(jié)果的一次大檢驗(yàn)。自己動(dòng)手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來(lái),經(jīng)過不斷思考,不斷查閱資料和上機(jī)運(yùn)行,解決其中大部分問題,當(dāng)然還存在一些問題沒有解決。我相信在以后的學(xué)習(xí)能夠解決好它們。但是,收獲還是不小的,我不僅對(duì)C的操作有了進(jìn)一步的掌握,還了解到了程序設(shè)計(jì)的書寫風(fēng)格及其注釋的格式。

當(dāng)我選擇通訊錄這個(gè)題目時(shí),一開始想運(yùn)用大量鏈表及指針來(lái)完成,但是在慢慢琢磨之后,覺得這個(gè)不一定要用鏈表,于是改變了編程思路。當(dāng)然還有不少文件的讀寫問題,不過還是通過不斷測(cè)試之后順利解決了。另外一點(diǎn)要說(shuō)的就是這個(gè)程序用了很多的循環(huán),因此對(duì)于循環(huán)的控制要十分小心,有時(shí)while和do-while的區(qū)別也是十分重要的。

還有一點(diǎn)體會(huì)就是,書上和老師教的內(nèi)容是有限的,我們需要不斷地靠自己去學(xué)習(xí),向他人請(qǐng)教,了解和掌握更多的知識(shí),這樣我們才能編出更好的C程序。

總體來(lái)說(shuō),這次C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)還是比較成功的,雖然最終程序還存在一些不足,但能取得這樣的成績(jī)我還是比較高興的。

最后,要感謝學(xué)校為我們提供這次實(shí)驗(yàn)機(jī)會(huì),也要感謝老師的教導(dǎo)和好心人對(duì)我的幫助與支持。

參考文獻(xiàn)

[1]譚浩強(qiáng),張基溫。C語(yǔ)言程序設(shè)計(jì)教程。第三版。北京:高等教育出版社,2006 [2]譚浩強(qiáng),張基溫。C語(yǔ)言習(xí)題集與上機(jī)指導(dǎo)。第三版。北京:高等教育出版社,2006 [3]譚浩強(qiáng)。C程序設(shè)計(jì)(第三版)。北京:清華大學(xué),2005 [4]譚浩強(qiáng)。C程序設(shè)計(jì)(第二版)。北京:清華大學(xué),1999 [5]林建秋,韓靜萍,等.C語(yǔ)言程序設(shè)計(jì)【M】.電子工業(yè)出版社,2004.[6]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)【M】.清華大學(xué)出版社,2006.[7]黃維通.C語(yǔ)言設(shè)計(jì)教程.清華大學(xué)出版社,2005.[8]王成瑞.C語(yǔ)言程序設(shè)計(jì).中國(guó)水利水電出版社,2005.[9]張基溫.C語(yǔ)言程序設(shè)計(jì)案例教程.清華大學(xué)出版社,2004.[10]蘇小紅,陳惠鵬.C語(yǔ)言大學(xué)實(shí)用教程【M】.電子工業(yè)出版社,2007.致

在這里我要感謝楊書鴻老師,她對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。另外,在校圖書館查找資料的時(shí)候,圖書館的老師也給我提供了很多方面的支持與幫助。在此向幫助和指導(dǎo)過我的各位老師表示最中心的感謝!感謝這篇論文所涉及到的各位學(xué)者,如果沒有各位學(xué)者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。感謝我的同學(xué)和朋友,在我寫論文的過程中給予我很多素材,還在論文的撰寫和排版等過程中提供熱情的幫助。由于我的學(xué)術(shù)水平有限,所寫論文難免有不足之處,懇請(qǐng)各位老師和學(xué)友批評(píng)和指正!

第四篇:VB數(shù)據(jù)庫(kù)設(shè)計(jì)學(xué)生通訊錄

用VB數(shù)據(jù)設(shè)計(jì)學(xué)生通訊錄

陳正法

(江蘇鹽城技師學(xué)院計(jì)算機(jī)系 江蘇 鹽城 224002)

摘 要:本文利用VB6.0的數(shù)據(jù)庫(kù)的強(qiáng)大功能,初步闡述了如何用VB設(shè)計(jì)數(shù)據(jù)庫(kù),用數(shù)據(jù)控件操縱數(shù)據(jù)庫(kù),并用數(shù)據(jù)綁定控件顯示數(shù)據(jù)字段的編程過程,巧妙地運(yùn)用了二進(jìn)制格式顯示照片的信息,確保了通訊錄的完整性。關(guān)鍵詞:數(shù)據(jù)庫(kù);照片;數(shù)據(jù)控件;數(shù)據(jù)綁定控件

同學(xué)幾年,即將畢業(yè),有必要制作班級(jí)通訊錄的小冊(cè)子,每個(gè)人只需要有學(xué)號(hào)、姓名、電話、家庭住址、照片等作息就可以制作班級(jí)通訊錄了;制作方法眾多,有用Word制作的,有用Excel制作的,有用專門通訊錄軟件制作的,也有用編程制作的,但在照片的顯示方面大多有很大困難;筆者通過多年的VB教學(xué)實(shí)踐,利用VB6.0的數(shù)據(jù)庫(kù)的強(qiáng)大功能初步探討了一個(gè)可靈活顯示包括照片等信息的通訊錄的設(shè)計(jì)過程,巧妙地運(yùn)用二進(jìn)制數(shù)據(jù)儲(chǔ)存和顯示圖像信息,全部信息存儲(chǔ)在數(shù)據(jù)庫(kù)中,具有安全、簡(jiǎn)潔、實(shí)用等功能,為計(jì)算機(jī)輔助設(shè)計(jì)通訊錄提供了一個(gè)強(qiáng)大和實(shí)用的方法。

一、建立Access數(shù)據(jù)庫(kù)

設(shè)計(jì)數(shù)據(jù)庫(kù)的方式很多,既可以用Microsoft Access來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù),也可以用SQL Server來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù),又可用VFP來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù),等等;本文從簡(jiǎn)潔實(shí)用角度考慮,使用VB自帶的可視化數(shù)據(jù)管理器來(lái)設(shè)計(jì)Access數(shù)據(jù)庫(kù);可視化數(shù)據(jù)管理器是VB提供的一種很方便實(shí)用的數(shù)據(jù)庫(kù)設(shè)計(jì)工具,具有創(chuàng)建數(shù)據(jù)庫(kù)、設(shè)計(jì)與編輯數(shù)據(jù)表等功能。

1、創(chuàng)建Access數(shù)據(jù)庫(kù)

在VB中選擇“文件”“新建”||Version7.0MDB菜單,打開“Access數(shù)據(jù)庫(kù)”窗口,選擇保存路徑,輸入數(shù)據(jù)庫(kù)名為“學(xué)生通訊錄”,單擊“保存”按鈕,打開“可視化數(shù)據(jù)管理器”窗口。

2、設(shè)計(jì)數(shù)據(jù)表的結(jié)構(gòu)

在“可視化數(shù)據(jù)管理器”窗口中右擊鼠標(biāo),選擇“新建表”命令,打開“表結(jié)構(gòu)”對(duì)話框,先輸入表名”stu”,再根據(jù)如上圖界面設(shè)計(jì)如下字段:

(1)學(xué)號(hào):文本類型,大小為10個(gè)字符;(2)姓名:文本類型,大小為10個(gè)字符;(3)性別:文本類型,大小為2個(gè)字符;(4)QQ號(hào):文本類型,大小為11個(gè)字符;(5)手機(jī):文本類型,大小為11個(gè)字符;(6)住址:文本類型,大小為30個(gè)字符;(7)照片:二進(jìn)制類型,這是數(shù)據(jù)庫(kù)存儲(chǔ)和顯示圖片的關(guān)鍵,這樣就可以在VB中用數(shù)據(jù)控件和圖像框控件再配合特定代碼來(lái)顯示照片了。

二、分別添加相應(yīng)控件及設(shè)置相應(yīng)屬性:

1、添加六個(gè)標(biāo)簽控件:Caption屬性分別為學(xué)號(hào)、姓名、性別、QQ號(hào)、手機(jī)、住址;名稱屬性為默認(rèn)。

2、添加六個(gè)文本框控件:其中有五個(gè)綁定控件的Text屬性都為空,名稱屬性都為默認(rèn),DataSource屬性為 Data1,DataField屬性分別為學(xué)號(hào)、姓名、QQ號(hào)、手機(jī)、住址;還有一個(gè)文本框的Text屬性為空,名稱屬性為TexFind。

3、添加五個(gè)命令按鈕:Caption屬性分別為上一個(gè)、下一個(gè)、添加、刪除和查詢;名稱屬性為默認(rèn)。

4、添加二個(gè)組合框:一個(gè)為綁定控件,DataSource屬性為 Data1,DataField屬性為性別,List屬性為男、女;另一個(gè)組合框的名稱屬性為CobFind,List屬性為學(xué)號(hào)、姓名、QQ號(hào)、手機(jī),Text屬性為學(xué)號(hào)。

5、添加一個(gè)圖像框(綁定控件):DataSource屬性為 Data1,DataField屬性為照片,Stretch屬性為True。

6、添加一個(gè)通用對(duì)話框:名稱屬性為CDlg。

7、添加一個(gè)Data控件(數(shù)據(jù)控件):DatabaseName屬性為“學(xué)生通訊錄.mdb”,RecordSource屬性為stu。

三、編寫代碼:

1、編寫初始化代碼

在加載窗體事件中輸入Data1.DatabaseName = App.Path & “學(xué)生通訊錄.mdb”,主要是設(shè)置數(shù)據(jù)庫(kù)文件的相對(duì)路徑,這樣可以將通訊錄文件復(fù)制到其它計(jì)算機(jī)也能正常運(yùn)行。

‘初始化窗體

Private Sub Form_Load()CobFind.AddItem “學(xué)號(hào)” CobFind.AddItem “姓名” CobFind.AddItem “QQ號(hào)”

CobFind.AddItem “手機(jī)” CobFind.Text = “學(xué)號(hào)” Data1.DatabaseName = App.Path & “學(xué)生通訊錄.mdb” End Sub

2、編寫“上一個(gè)”和“下一個(gè)”按鈕代碼

為方便瀏覽通訊錄,本文專門設(shè)計(jì)了兩個(gè)按鈕,“上一個(gè)”按鈕利用MovePrevious方法快速準(zhǔn)確地將記錄移動(dòng)到上一條記錄,瀏覽該同學(xué)的信息;“下一個(gè)”按鈕利用MoveNext方法快速準(zhǔn)確地將記錄移動(dòng)到下一條記錄,瀏覽該同學(xué)的信息;同時(shí)利用選擇結(jié)構(gòu)有效地控制了記錄移動(dòng)到開頭和結(jié)尾時(shí)有可能出現(xiàn)的錯(cuò)誤,保證通訊錄瀏覽過程的正確無(wú)誤;核心代碼主要有:(1)移動(dòng)到上一個(gè)記錄Data1.Recordset.MovePrevious,(2)移動(dòng)到開頭Data1.Recordset.BOF,(3)移動(dòng)到下一個(gè)記錄Data1.Recordset.MoveNext,(4)移動(dòng)到結(jié)尾Data1.Recordset.EOF。

'上一個(gè)

Private Sub ComPrev_Click()On Error Resume Next Data1.Recordset.MovePrevious ComNext.Enabled = True If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst ComPrev.Enabled = False End If End Sub '下一個(gè)

Private Sub ComNext_Click()On Error Resume Next Data1.Recordset.MoveNext ComPrev.Enabled = True If Data1.Recordset.EOF Then Data1.Recordset.MoveLast ComNext.Enabled = False End If End Sub

3、編寫“添加”按鈕代碼

本設(shè)計(jì)巧妙地利用了同一按鈕實(shí)現(xiàn)添加和更新兩種功能,當(dāng)顯示“更新”按鈕時(shí),依次添加照片、學(xué)號(hào)、姓名、性別、QQ號(hào)、手機(jī)和住址后,單擊“更新”按鈕即可完成一名同學(xué)的信息錄入(特別要注意的是必須先添加照片),此時(shí)顯示“添加”按鈕,為輸入下一記錄作準(zhǔn)備;核心代碼主要有:(1)添加新記錄Data1.Recordset.AddNew,(2)更新記錄Data1.UpdateRecord,(3)顯示打開對(duì)話框CDlg.ShowOpen,(4)圖像框中加載照片 Image1.Picture = LoadPicture(CDlg.FileName)。

'添加記錄

Private Sub ComAdd_Click()If ComAdd.Caption = “確 定” Then On Error GoTo errorhandler Data1.UpdateRecord

Data1.Recordset.MoveLast ComPrev.Enabled = True ComNext.Enabled = True ComDel.Enabled = True ComFind.Enabled = True ComAdd.Caption = “添 加” Else Data1.Recordset.AddNew CDlg.FileName = “" CDlg.ShowOpen If CDlg.FileName <> ”“ Then Image1.Picture = LoadPicture(CDlg.FileName)End If ComAdd.Caption = ”確 定“ ComPrev.Enabled = False ComNext.Enabled = False ComDel.Enabled = False ComFind.Enabled = False End If Exit Sub '錯(cuò)誤處理 errorhandler: If Err.Number = 524 Then MsgBox ”該記錄已存在!“, 48, ”警告“ '輸入的姓名相同 End If Resume End Sub

4、編寫“刪除”按鈕代碼

當(dāng)輸入錯(cuò)誤或有不需要的信息時(shí),可以很輕松的單擊“刪除”按鈕刪除該信息,不需要的信息不再保留在數(shù)據(jù)庫(kù)中,減少了數(shù)據(jù)庫(kù)的冗余;核心代碼主要有:(1)刪除記錄Data1.Recordset.Delete,(2)更新數(shù)據(jù)庫(kù)Data1.Refresh。

'刪除記錄

Private Sub ComDel_Click()On Error Resume Next Dim i As Integer i = MsgBox(”真的要?jiǎng)h除當(dāng)前記錄嗎?“, 52, ”警告“)If i = 6 Then Data1.Recordset.Delete Data1.Refresh End If End Sub

5、編寫“查詢”按鈕代碼

為靈活方便瀏覽通訊錄,本文設(shè)計(jì)了根據(jù)學(xué)號(hào)、姓名、QQ號(hào)和手機(jī)號(hào)碼四種查詢方式,從不同角度查詢同學(xué)信息,靈活快速全面;核心代碼主要有:(1)根據(jù)某種查詢方式顯示記

錄 Data1.Recordset.FindFirst ”查詢方式=“ & ”'“ & TexFind.Text & ”'“(2)判斷記錄是否存在Data1.Recordset.NoMatch。

'查詢通訊錄

Private Sub ComFind_Click()If TexFind.Text = ”“ Then MsgBox ”請(qǐng)輸入查詢內(nèi)容!“, 48, ”提示“ Exit Sub End If If CobFind.Text = ”學(xué)號(hào)“ Then Data1.Recordset.FindFirst ”學(xué)號(hào)=“ & ”'“ & TexFind.Text & ”'“ ElseIf CobFind.Text = ”姓名“ Then Data1.Recordset.FindFirst ”姓名=“ & ”'“ & TexFind.Text & ”'“ ElseIf CobFind.Text = ”QQ號(hào)“ Then Data1.Recordset.FindFirst ”QQ號(hào)=“ & ”'“ & TexFind.Text & ”'“ ElseIf CobFind.Text = ”手機(jī)“ Then Data1.Recordset.FindFirst ”手機(jī)=“ & ”'“ & TexFind.Text & ”'“ End If If Data1.Recordset.NoMatch Then MsgBox ”記錄不存在“, 64, ”提示" End If End Sub

四、輸入和瀏覽記錄

運(yùn)行本文設(shè)計(jì)的VB通訊錄,通過單擊“添加”按鈕后,用戶可將班級(jí)的每個(gè)同學(xué)的信息輸入到文本框中,將照片添加到圖像框中,輸完一個(gè)學(xué)生的信息后,單擊更新按鈕就能將該學(xué)生信息自動(dòng)保存到數(shù)據(jù)庫(kù)中;重復(fù)上述操作,將全班同學(xué)信息全部輸入完畢,一個(gè)圖文并茂的班級(jí)通訊錄就大功告成了。

在畢業(yè)幾年后的某次班級(jí)聚會(huì)上,同學(xué)們打開筆記本電腦,打開該班級(jí)通訊錄程序,通過單擊上一個(gè)和下一個(gè)按鈕可以瀏覽所有記錄,還可以在查詢按鈕下方的下拉列表框中選擇一種查詢方式,然后在該下拉列表框下面的文本框中輸入相應(yīng)信息,單擊查詢按鈕即可找到與查詢條件相符的某位同學(xué)的其他信息,回想學(xué)校生活,其樂無(wú)窮。

參考資料:

[1]林陳雷等.VB教育信息化系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社,2003.6 [2]求是科技.VB6.0程序設(shè)計(jì)與開發(fā)技術(shù)大全.北京:人民郵電出版社,2004.9

第五篇:C++通訊錄管理系統(tǒng)

黑龍江工程學(xué)院

第一章 問題分析和任務(wù)定義

1.1 問題分析

問題: 編寫一個(gè)通訊錄管理系統(tǒng)。要求包括通訊錄建立、增加號(hào)碼、刪除號(hào)碼、查詢號(hào)碼(按姓名、按號(hào)碼)、修改號(hào)碼、號(hào)碼分組、打印通訊錄(全部或分組號(hào)碼)等功能,并設(shè)計(jì)主控菜單和子菜單供用戶選擇要執(zhí)行的操作。

分析:

實(shí)現(xiàn)以下功能:

1)通訊錄編輯(添加、刪除); 2)按不同的項(xiàng)進(jìn)行查找;

3)對(duì)已存在的通訊錄按不同的項(xiàng)排序; 4)將通訊錄寫入文件; 5)從文件讀入通訊錄。

1.2 任務(wù)定義

創(chuàng)建一個(gè)鏈表,每個(gè)節(jié)點(diǎn)有姓名和號(hào)碼以及關(guān)系三個(gè)信息。增加號(hào)碼操作為增加節(jié)點(diǎn),刪除號(hào)碼操作為刪除節(jié)點(diǎn),查找號(hào)碼為鏈表的遍歷。每個(gè)功能以函數(shù)的形式出現(xiàn),由主控菜單控制。并以文件的形式對(duì)號(hào)碼信息進(jìn)行保存。

第二章 詳細(xì)設(shè)計(jì)

主函數(shù)(main()函數(shù))是通過一個(gè)多分支語(yǔ)句(switch(i)語(yǔ)句)實(shí)現(xiàn)的。顯示菜單函數(shù)(displaymenu()函數(shù))顯示與用戶交互的界面。以下是各個(gè)模塊實(shí)現(xiàn)程序各項(xiàng)功能的函數(shù)的詳細(xì)設(shè)計(jì):

1、插入新的記錄:insert()函數(shù)

定義變量,設(shè)計(jì)loop模塊,模塊的功能是用來(lái)輸入記錄:輸入姓名、性別、電話號(hào)碼、地址的信息。用for語(yǔ)句查找是否輸入了與原有記錄相同的記錄,用strcmp 函數(shù)比較,if 語(yǔ)句判斷,如果輸入了重復(fù)的記錄,提示信息:“此記錄已存在,請(qǐng)重新輸入!”并且用 goto語(yǔ)句返回到loop,重新輸入信息。設(shè)計(jì)一個(gè)a模塊:鍵盤輸入一個(gè)字符,必須是“Y”“y”“N”“n”,否則重新輸入。最后if 語(yǔ)句判斷變量的值是否重新輸入信息,如果輸入的是“Y”或“y”,返回到loop,黑龍江工程學(xué)院

用戶可以輸入下一條信息,直到用戶輸入“N”或“n”返回主界面。每插入一條記錄n的值加1。功能的實(shí)現(xiàn)見源程序:

2、示好友的信息:display()函數(shù)

定義整型變量i用來(lái)循環(huán)輸出記錄。分別輸出每條記錄,并輸出記錄的個(gè)數(shù)。

3、查找好友的信息search()函數(shù)

定義字符型變量c,字符型數(shù)組a,定義loop模塊,功能:通過鍵盤輸入要查找的信息。首先顯示提示信息:“輸入你要查找的好友的姓名”然后從鍵盤輸入姓名。For語(yǔ)句循環(huán)內(nèi)嵌if語(yǔ)句,用strcmp 函數(shù)查找信息,并且顯示該記錄的所有信息,并跳出循環(huán)。再用for 語(yǔ)句內(nèi)嵌if語(yǔ)句判斷,如果沒有查到顯示提示信息:“如果沒有查到相關(guān)語(yǔ)句,是否重新查找(Y/N)?定義abc模塊的功能輸入一個(gè)字符(“Y”或“y”“N”“n”)用來(lái)判斷是否重新查找。如果輸入“Y”或“y”,則用goto語(yǔ)句返回loop重新查找。否則令i的值為n跳出循環(huán)。最后返回主界面。

4、刪除好友信息:del()函數(shù)

首先定義字符數(shù)組、變量和a、b兩個(gè)goto標(biāo)識(shí)符。在a模塊中用scanf函數(shù)輸入要?jiǎng)h除的好友的姓名,用for循環(huán)和if 語(yǔ)來(lái)實(shí)現(xiàn)對(duì)好友的查找,如果找到記錄末尾,提示查無(wú)此人。在b模塊中,用來(lái)實(shí)現(xiàn)刪除功能。先確認(rèn)是否刪除,如果鍵盤輸入Y 或y來(lái)確認(rèn)要?jiǎng)h除再執(zhí)行for循環(huán),通過strcmpy函數(shù)把后一條記錄復(fù)制到前一條記錄。進(jìn)行刪除記錄后,并把原末尾記錄數(shù)據(jù)賦空字符,按任意鍵刪除,按任意鍵返回主菜單。

5、修改記錄:modify()函數(shù)

定義了a、b兩個(gè)goto標(biāo)識(shí)符。在a模塊中,用scanf函數(shù)輸入要修改人的姓名,用for 循環(huán)、if語(yǔ)句及strcmp函數(shù)找到該姓名的記錄,若到記錄末尾提示“查無(wú)此人”是否繼續(xù)重新輸入姓名,黑龍江工程學(xué)院

如果重新輸入姓名再用goto語(yǔ)句再執(zhí)行重新查找。在b模塊中,用于修改記錄,如果要修改記錄則從鍵盤輸入Y或y,用scanf函數(shù)來(lái)輸入新的記錄數(shù)據(jù)來(lái)實(shí)現(xiàn)修改記錄。

6、排序:sort()函數(shù)

選擇法排序的方法。定義變量i,j,用于循環(huán),定義4個(gè)字符型數(shù)組,用于替換的中間變量;用兩個(gè)for循環(huán)語(yǔ)句,用strcmp函數(shù)比較。按姓名升序排序。比較前一條記錄和后一條記錄的姓名,如果strcmp函數(shù)值大于0,則將這兩條記錄的所有信息替換,4個(gè)字符型數(shù)組用作替換的中間變量。最后調(diào)用display()(顯示結(jié)果)顯示排序后的結(jié)果。

第三章 程序編碼

#include #include #include struct student //結(jié)構(gòu)體 { char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];};class inter { private: student st[35];public: void add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]);void del(char name[20]);void find1(char no[13]);void find2(char name[20]);void list1();void list2();int correct(char name[20]);void read();void write();

黑龍江工程學(xué)院

void format();int back(){

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): ”;

char back;

cin>>back;

if(back=='R'||back=='r')

return 1;

else

return 0;} void print(int i){

cout<<“學(xué)號(hào):”<

cout<<“姓名:”<

cout<<“地址:”<

cout<<“電話號(hào)碼:”<

cout<<“郵編:”<

cout<<“E_MAIL:”<

<<“tt★★★★★★★★★★★★★★★★★★★★★★★★★★” <

<<“tt※ ※” <

<<“tt※ 通 迅 錄 ※” <

<<“tt※ ※” <

<<“tt※ 1.通訊錄編輯.4.按序排列.※” <

<<“tt※ ※” <

<<“tt※ 2.查詢聯(lián)系人.5.將文件讀入程序.※” <

<<“tt※ ※” <

<<“tt※ 3.將資料寫入文件.6.格式化(慎用).※” <

<<“tt※ ※” <

<<“tt★★★★★★★★★★★★★★★★★★★★★★★★★★” <

<<“tt ”<

<<“ttt選擇 :”;cin>>select1;switch(select1)

黑龍江工程學(xué)院

{ case '1':cout<<“(1)添加:”<

cout<<“(2)刪除:”<

cout<<“(3)修改:”<

char select2;

cout<<“ 請(qǐng)選擇:”<

cin>>select2;

switch(select2)

{

case '1':cout<<“ 輸入添加的資料:”<

char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];

cout<<“ 輸入學(xué)號(hào):”<

cin>>no;

cout<<“ 輸入姓名:”<

cin>>name;

cout<<“ 輸入地址:”<

cin>>address;

cout<<“ 輸入電話號(hào)碼:”<

cin>>tel_no;

cout<<“ 輸入郵編:”<

cin>>post_code;cout<<“ 輸入E_mail:”<

cin>>e_mail;

a.add(no,name,address,tel_no,post_code,e_mail);

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): ”;

char back_add;

cin>>back_add;

if(back_add=='R'||back_add=='r')

goto top;

else

goto bottom;

break;

case '2':cout<<“ 輸入要?jiǎng)h除人的姓名:”<

char name2[20];

cin>>name2;

a.del(name2);

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): ”;

黑龍江工程學(xué)院

“;

”;

char back_del;

cin>>back_del;

if(back_del=='R'||back_del=='r')

goto top;

else

goto bottom;

break;case '3':cout<<“ 輸入需要修改人的姓名:”<

char name3[20];

cin>>name3;

if(a.correct(name3))

goto top;

else goto bottom;

break;} break;case '2':cout<<“(1)根據(jù)姓名查找”<>select3;switch(select3){ case '1':char name4[20];

cout<<“ 輸入姓名: ”;

cin>>name4;

a.find2(name4);

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

char back_f1;cin>>back_f1;if(back_f1=='R'||back_f1=='r')

goto top;else

goto bottom;break;case '2':char no4[13];cout<<” 輸入學(xué)號(hào): “;cin>>no4;a.find1(no4);

cout<<” 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): char back_f2;cin>>back_f2;

黑龍江工程學(xué)院

“;

”;

if(back_f2=='R'||back_f2=='r')

goto top;

else

goto bottom;

break;} break;case '3':a.write();cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): ”;char back_w;cin>>back_w;if(back_w=='R'||back_w=='r')

goto top;else

goto bottom;break;case '4':cout<<“(1)按學(xué)號(hào)排序:”<>select4;switch(select4){ case '1':a.list1();

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

char back;cin>>back;if(back=='R'||back=='r')

goto top;else

goto bottom;break;case '2':a.list2();cout<<” 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫):

} char back1;cin>>back1;if(back1=='R'||back1=='r')goto top;else goto bottom;break;

黑龍江工程學(xué)院

break;case '5':a.read();

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): ”;

char back_r;

cin>>back_r;

if(back_r=='R'||back_r=='r')

goto top;

else

goto bottom;

break;case '6':cout<<“ 請(qǐng)確認(rèn)刪除所有資料!(Y/N)”;

char select5;

cin>>select5;

if(select5=='Y'||select5=='y')

a.format();

cout<<“ 返回還是回到主菜單(T為退出,R為回到主菜單,不計(jì)大小寫): ”;

char back_f;

cin>>back_f;

if(back_f=='R'||back_f=='r')

goto top;

else

goto bottom;

break;} bottom:cout<<“ ★★★★★★★★★★★★★★★★★★★★★★★ ”<

void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){ int x=1;for(int i=0;i<35;i++){

if(!strcmp(st[i].no,“0”))

{

strcpy(st[i].address,address);

strcpy(st[i].e_mail,e_mail);

strcpy(st[i].name,name);

strcpy(st[i].no,no);

strcpy(st[i].post_code,post_code);

strcpy(st[i].tel_no,tel_no);

x=0;

}

黑龍江工程學(xué)院

if(x==0)

break;} } //刪除聯(lián)系人

void inter::del(char name[20]){ int x=1;for(int i=0;i<35;i++){

if(!strcmp(st[i].name,name))

{ strcpy(st[i].address,“0”);

strcpy(st[i].e_mail,“0”);

strcpy(st[i].name,“0”);

strcpy(st[i].no,“0”);

strcpy(st[i].post_code,“0”);

strcpy(st[i].tel_no,“0”);

}

else x=0;} if(x==0)

cout<<“ error:輸入姓名錯(cuò)誤!”<

int inter::correct(char name[30]){ int x;for(int i=0;i<35;i++){

if(!strcmp(st[i].name,name))

x=i;} char select;cout<<“(1)修改姓名:”<>select;switch(select){ case '1':cout<<“ 輸入要修改的姓名:”;

黑龍江工程學(xué)院

char name1[30];

cin>>name1;

strcpy(st[x].name,name1);

cout<<“ 修改成功!”<

return back();

break;case '2':cout<<“ 輸入要修改的學(xué)號(hào):”;

char no1[13];

cin>>no1;

strcpy(st[i].no,no1);

cout<<“ 修改成功!”<

return back();

break;case '3':cout<<“ 輸入要修改的地址:”;

char address1[100];

cin>>address1;

strcpy(st[x].address,address1);

cout<<“ 修改成功!”<

return back();

break;case '4':cout<<“ 輸入要修改的郵編:”;

char post_code1[7];

cin>>post_code1;

strcpy(st[x].post_code,post_code1);

cout<<“ 修改成功!”<

return back();

break;case '5':cout<<“ 輸入要修改的電話號(hào)碼:”;

char tel_no1[12];

cin>>tel_no1;

strcpy(st[x].tel_no,tel_no1);

cout<<“ 修改成功!”<

return back();

break;case '6':cout<<“ 輸入要修改的E_MAIL:”;

char e_mail1[40];

cin>>e_mail1;

strcpy(st[x].e_mail,e_mail1);

cout<<“ 修改成功!”<

return back();

break;} } //按學(xué)號(hào)查詢聯(lián)系人

黑龍江工程學(xué)院

void inter::find1(char no[13]){ int x,y=1,z=1;for(int i=0;i<35;i++){

if(!strcmp(st[i].no,no))

{

x=i;

z=0;

}

else y=0;

if(z==0)

break;}

if(y==0)

cout<<“ 輸入的學(xué)號(hào)查找不到!!”<

} //按姓名查詢聯(lián)系人

void inter::find2(char name[20]){ int x,y=1,z=1;for(int i=0;i<35;i++){

if(!strcmp(st[i].name,name))

{

x=i;

z=0;

}

else y=0;

if(z==0)

break;} if(y==0)

cout<<“ 輸入的姓名查找不到!!”<

void inter::read(){

char name1[20];cout<<“ 輸入你要導(dǎo)入的文件名: ”;cin>>name1;

黑龍江工程學(xué)院

strcat(name1,“.txt”);ifstream file(name1);char line[120];char no[120];char name[120];char address[120];char post_code[120];char tel_no[120];char e_mail[120];int time=0;file.getline(line,120);while(!file.eof()){ for(int k=0;k<35;k++){

if(time==0)

{

strcpy(no,line);

time=1;

for(int i=0;i<120;i++)

{

if(no[i]==':')

{

i++;

for(int j=0;j<13;j++)

{

st[k].no[j]=no[i];

i++;

}

}

}

file.getline(line,120,'n');

} if(time==1){

strcpy(name,line);

time=2;

for(int i=0;i<120;i++)

{

if(name[i]==':')

{

i++;

for(int j=0;j<20;j++)

{

黑龍江工程學(xué)院

st[k].name[j]=name[i];

i++;

}

} } file.getline(line,120,'n');} if(time== 2){ strcpy(address,line);time=3;for(int i=0;i<120;i++){

if(address[i]==':')

{

i++;

for(int j=0;j<100;j++)

{

st[k].address[j]=address[i];

i++;

}

} } file.getline(line,120,'n');}

if(time==3){ strcpy(tel_no,line);time=4;for(int i=0;i<120;i++){

if(tel_no[i]==':')

{

i++;

for(int j=0;j<12;j++)

{

st[k].tel_no[j]=tel_no[i];

i++;

}

} } file.getline(line,120,'n');}

黑龍江工程學(xué)院

if(time==4)

{

strcpy(post_code,line);

time=5;

for(int i=0;i<120;i++)

{

if(post_code[i]==':')

{

i++;

for(int j=0;j<7;j++)

{

st[k].post_code[j]=post_code[i];

i++;

}

}

}

file.getline(line,120,'n');

}

if(time==5)

{

strcpy(e_mail,line);

time=0;

for(int i=0;i<120;i++)

{

if(e_mail[i]==':')

{

i++;

for(int j=0;j<40;j++)

{

st[k].e_mail[j]=e_mail[i];

i++;

}

}

}

file.getline(line,120,'n');

}

}

} file.close();} //寫入文件

void inter::write(){ char name[20];

黑龍江工程學(xué)院

cout<<“ 輸入要保存的文件名 ”;cin>>name;strcat(name,“.txt”);ofstream savefile(name);for(int i=0;i<35;i++){

savefile << “學(xué)號(hào):”<

savefile << “姓名:”<

savefile << “地址:”<

savefile << “電話號(hào)碼:”<

savefile << “郵編:”<

savefile << “E_MAIL:”<

void inter::list1(){ for(int i=0;i<34;i++){

for(int j=0;j<35-i;j++)

{

if(strcmp(st[j].no,st[j+1].no)>0)

{

char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];

strcpy(no,st[j].no);

strcpy(st[j].no,st[j+1].no);

strcpy(st[j+1].no,no);

strcpy(name,st[j].name);

strcpy(st[j].name,st[j+1].name);

strcpy(st[j+1].name,name);

strcpy(address,st[j].address);

strcpy(st[j].address,st[j+1].address);

strcpy(st[j+1].address,address);

strcpy(tel_no,st[j].tel_no);

黑龍江工程學(xué)院

strcpy(st[j].tel_no,st[j+1].tel_no);

strcpy(st[j+1].tel_no,tel_no);

strcpy(post_code,st[j].post_code);

strcpy(st[j].post_code,st[j+1].post_code);

strcpy(st[j+1].post_code,post_code);

strcpy(e_mail,st[j].e_mail);

strcpy(st[j].e_mail,st[j+1].e_mail);

strcpy(st[j+1].e_mail,e_mail);

}

} } for(int k=0;k<35;k++){

int x=0;

if(strcmp(st[k].no,“0”))

{

print(k);

x=1;

}

if(x==1)

{

cout<

cout<<“---------------”<

} } } //按姓名排序

void inter::list2(){ for(int i=0;i<34;i++){

for(int j=0;j<35-i;j++)

{

if(strcmp(st[j].name,st[j+1].name)>0)

{

char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];

黑龍江工程學(xué)院

char e_mail[40];

strcpy(no,st[j].no);

strcpy(st[j].no,st[j+1].no);

strcpy(st[j+1].no,no);

strcpy(name,st[j].name);

strcpy(st[j].name,st[j+1].name);

strcpy(st[j+1].name,name);

strcpy(address,st[j].address);

strcpy(st[j].address,st[j+1].address);

strcpy(st[j+1].address,address);

strcpy(tel_no,st[j].tel_no);

strcpy(st[j].tel_no,st[j+1].tel_no);

strcpy(st[j+1].tel_no,tel_no);

strcpy(post_code,st[j].post_code);

strcpy(st[j].post_code,st[j+1].post_code);

strcpy(st[j+1].post_code,post_code);

strcpy(e_mail,st[j].e_mail);

strcpy(st[j].e_mail,st[j+1].e_mail);

strcpy(st[j+1].e_mail,e_mail);

}

} } for(int k=0;k<35;k++){

int x=0;

if(strcmp(st[k].no,“0”))

{

print(k);

x=1;

}

if(x==1)

{

cout<

cout<<“-------”<

} }

黑龍江工程學(xué)院

} //格式化

void inter::format(){ for(int i=0;i<35;i++){

strcpy(st[i].address,“0”);

strcpy(st[i].e_mail,“0”);

strcpy(st[i].name,“0”);

strcpy(st[i].no,“0”);

strcpy(st[i].post_code,“0”);

strcpy(st[i].tel_no,“0”);} }

第四章 程序調(diào)試與測(cè)試

運(yùn)行程序,首頁(yè)顯示如下:

按1選擇通訊錄編輯,編輯通訊錄,顯示(1)添加,(2)刪除,(3)修改,運(yùn)行后結(jié)果如下:

黑龍江工程學(xué)院

第一次使用,按1添加聯(lián)系人,填入相關(guān)信息,運(yùn)行圖如下:

返回首頁(yè),按2可以查找聯(lián)系人,可以根據(jù)姓名查找和學(xué)號(hào)查找,本次運(yùn)用學(xué)號(hào)查找,運(yùn)行如下:

返回首頁(yè),按4可以進(jìn)行排序,可以根據(jù)姓名和學(xué)號(hào)排序,按姓名排序需要自己編輯的姓氏排序規(guī)則才能使用,本次使用學(xué)號(hào)排序,運(yùn)行如下:

將資料寫入文件功能是將編輯好的通訊錄寫入文本文件,文本文件的名字可以自己輸入。將文件讀入程序,是將文本文件中的信息讀入程序,進(jìn)行添加,修改,刪除,排序等功能。

第五章 結(jié)果分析

總體上可以滿足一般的應(yīng)用需求,但是還有一定的不足,程序運(yùn)行流暢,沒有未知錯(cuò)誤。

第六章 設(shè)計(jì)創(chuàng)新及心得

黑龍江工程學(xué)院

程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí) ,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們的實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握程序開發(fā)技術(shù)是十分重要的,而C++語(yǔ)言又是最常見,功能最強(qiáng)大的一種高級(jí)語(yǔ)言,因此做好C++語(yǔ)言課程設(shè)計(jì)是十分必要的。

通過幾天的課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說(shuō)得是困難重重,這畢竟第一次真真的做程序設(shè)計(jì),難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)一些前面學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體,指針??通過這次課程設(shè)計(jì)之后,我們把前面所學(xué)過的知識(shí)又重新溫故了一遍。

我做的是班級(jí)通訊錄的課程設(shè)計(jì),雖然是很簡(jiǎn)單的一個(gè)小的程序,但對(duì)我來(lái)說(shuō)卻是一個(gè)很大的困難。更加是第一次做課程設(shè)計(jì),所以在機(jī)房做了一個(gè)下午卻絲毫沒有進(jìn)展,最主要是不知從何開始,這個(gè)時(shí)候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,這個(gè)時(shí)候才后悔上課的時(shí)候沒有認(rèn)真的聽講。可是現(xiàn)在一切都晚了,還好時(shí)間還算是充裕,只好拿出書本重新復(fù)習(xí)一下。

開始的時(shí)候真的感覺編程是一件很無(wú)聊的事情,不過當(dāng)一個(gè)程序運(yùn)行成功的時(shí)候那種喜悅是無(wú)法言語(yǔ)的,那種成就感是無(wú)法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多功能上的欠缺和漏洞,可我還是很高興的。無(wú)論如何是自己的勞動(dòng)成果,是自己經(jīng)過努力得到的成績(jī),同時(shí)也是學(xué)習(xí)C++語(yǔ)言的一次實(shí)踐作業(yè),自己進(jìn)步的證明。

在課程設(shè)計(jì)過程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定會(huì)把課程設(shè)計(jì)的精神帶到生活中,不畏艱難,勇往直前!

下載學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)word格式文檔
下載學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    通訊錄管理系統(tǒng)[推薦5篇]

    1.題目名稱通訊錄管理系統(tǒng) 2.基本功能 (1)顯示:將所有聯(lián)系人的信息顯示出來(lái) (2)查找:按姓名、手機(jī)號(hào)碼、QQ號(hào)碼進(jìn)行查找 (3)添加:從鍵盤上錄入聯(lián)系人的有關(guān)信息,包括姓名、手機(jī)號(hào)碼......

    學(xué)生通訊錄管理系統(tǒng)

    “學(xué)生通訊信息記錄系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn) 一、設(shè)計(jì)要求 1. 問題的描述 “學(xué)生通訊信息記錄系統(tǒng)”是為了實(shí)現(xiàn)快速的對(duì)學(xué)生信息進(jìn)行錄入、刪除、查找、顯示。各個(gè)功能靠函數(shù)實(shí)現(xiàn)......

    手機(jī)通訊錄管理系統(tǒng)

    #include #include #include #include #include #include class Information { char name[20]; char tel[12]; char kind; char email[50]; public: Information(){} Inform......

    圖書管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

    3 數(shù)據(jù)庫(kù)設(shè)計(jì) ................................................................. 2 3.1 專門術(shù)語(yǔ)的定義 ................................................... 2 3.1.1......

    數(shù)據(jù)庫(kù)管理系統(tǒng)

    8.1 知識(shí)點(diǎn) 8.1.1 數(shù)據(jù)庫(kù)管理系統(tǒng)概述 DBMS的系統(tǒng)目標(biāo) 數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,從用戶角度來(lái)看,一個(gè)DBMS應(yīng)盡可能具備的 系統(tǒng)目標(biāo)是:用戶界面友好、結(jié)構(gòu)清晰和開放性......

    基于MFC的簡(jiǎn)易通訊錄管理系統(tǒng)設(shè)計(jì)

    基于MFC的簡(jiǎn)易通訊錄管理系統(tǒng)設(shè)計(jì) 目錄 一、引言 ................................................. 1 二、需求分析 ............................................. 1......

    圖書管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)示例

    圖書管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中學(xué)生可以......

    圖書管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)

    圖書管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì) 摘要:虛擬為某公司建立的圖書館管理系統(tǒng)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),目的在于使該系統(tǒng)的運(yùn)行能提高該公司的資料管理水平和現(xiàn)代化管理水平。本系統(tǒng)是一個(gè)中小型......

主站蜘蛛池模板: 国产v综合v亚洲欧美久久| 无码国产激情在线观看| 免费萌白酱国产一区二区三区| 久久精品中文字幕大胸| 国产日本精品视频在线观看| 亚洲精品国产a久久久久久| 色噜噜狠狠狠狠色综合久一| 亚洲裸男gv网站| 一本大道伊人av久久乱码| 久久精品噜噜噜成人| 最近中文字幕大全在线电影视频| 免费无码一区二区三区a片百度| 377人体粉嫩噜噜噜| 亚洲欧洲精品成人久久曰| 国产国拍精品av在线观看按摩| 精品国品一二三产品区别在线观看| 品色堂免费论坛| 欧美成aⅴ人高清免费观看| 亚洲依依成人亚洲社区| 久久久久高潮毛片免费全部播放| 久久鬼色综合88久久| 四虎成人精品国产永久免费无码| 久久精品www人人爽人人| 女人夜夜春高潮爽a∨片传媒| 无码精油按摩潮喷在播放| 日本国产成人国产在线播放| 国产一区二区不卡老阿姨| 国产在线观看免费视频软件| 国产成人夜色高潮福利app| 国产亚洲精品久久19p| 成人无码av片在线观看蜜桃| 国产乱了真实在线观看| 国产精品午夜成人免费观看| 中文字幕亚洲乱码熟女一区二区| 国产精品va尤物在线观看蜜芽| 成av人片一区二区三区久久| 午夜精品久久久久成人| 2021最新国产在线人成| 青草av久久一区二区三区| 国产精品亚洲一区二区三区在线| 东北妇女xx做爰视频|