欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

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

      時(shí)間:2019-05-12 17:51:47下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《學(xué)校通訊錄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(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ù)名稱(chēng)為communicationserver。下面將介紹數(shù)據(jù)庫(kù)分析和設(shè)計(jì)、數(shù)據(jù)表的創(chuàng)建、數(shù)據(jù)表關(guān)系圖和創(chuàng)建存儲(chǔ)過(guò)程的內(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.用戶(hù)E-R實(shí)體圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      聯(lián)系人姓名聯(lián)系電話(huà)所在單位通訊錄所在學(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.用戶(hù)信息表

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

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

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

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

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

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

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

      TB_Duty

      字段名稱(chēng) sDutyID sDutyName

      字段類(lèi)型 varchar(20)varchar(50)

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

      字段類(lèi)型 varchar(20)varchar(50)

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

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

      字段描述 用戶(hù)ID [PK] 用戶(hù)姓名

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

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

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

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

      TB_School 字段名稱(chēng) sSchoolID sSchoolName iStudentNum sAreaID_FK 5.通訊錄信息表

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

      表4-5 通訊錄信息表

      TB_AddrList

      字段類(lèi)型 varchar(20)varchar(50)int varchar(20)

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

      字段類(lèi)型 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)系電話(huà) 工作單位 學(xué)校編號(hào)[FK] 職務(wù)編號(hào)[FK] 地區(qū)編號(hào)[PK] 4.2.3 創(chuàng)建視圖

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

      字段類(lèi)型 varchar(50)varchar(50)

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

      create view V_SchoolInfo as

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

      聯(lián)系人姓名 職務(wù)名稱(chēng) 聯(lián)系電話(huà)

      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ǔ)過(guò)程

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

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

      AddTB _Users存儲(chǔ)過(guò)程用于向用戶(hù)信息表中添加新的用戶(hù)信息。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程 Add TB_Area存儲(chǔ)過(guò)程用于往地區(qū)信息表中添加新的地區(qū)信息。以下代碼表示了這一存儲(chǔ)過(guò)程。

      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ǔ)過(guò)程

      AddTB_Duty存儲(chǔ)過(guò)程用于往職務(wù)信息表中添加新的職務(wù)信息。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程

      AddTB_School 該存儲(chǔ)過(guò)程用于往學(xué)校信息表中添加新的學(xué)校信息。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程

      AddTB_AddrList存儲(chǔ)過(guò)程用于往通訊錄信息表中添加新的通訊錄信息。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程

      UpdateTB _Users存儲(chǔ)過(guò)程用于修改用戶(hù)信息表中,符合條件的用戶(hù)信息,其中密碼信息不可以更新。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程

      UpdateTB_Area存儲(chǔ)過(guò)程用于修改地區(qū)信息表中的地區(qū)信息。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程

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

      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ǔ)過(guò)程

      UpdateTB_School存儲(chǔ)過(guò)程用于修改學(xué)校信息表中的學(xué)校信息。以下代碼表示了這一存儲(chǔ)過(guò)程。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ǔ)過(guò)程

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

      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ù) 書(shū)

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

      (部)

      專(zhuān)

      業(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ù)類(lèi)型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。通過(guò)課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:

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

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

      (3)利用所學(xué)知識(shí),開(kāi)發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C++語(yǔ)言編寫(xiě)調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開(kāi)發(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ù)類(lèi)型。(7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。設(shè)計(jì)功能

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

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

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

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

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

      姓名 字符串

      地址 字符串

      郵政編碼 字符串

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

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

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

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

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

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

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

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

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

      課程設(shè)計(jì)名稱(chēng):?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由鍵盤(pán)輸入)(4)答題:用戶(hù)可實(shí)現(xiàn)輸入自己的答案

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

      (二)其它要求:

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

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

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

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

      五、其他

      程序設(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ì)大小寫(xiě)):

      ”;

      } void print(int i){

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

      };

      } cout<<“電話(huà)號(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<<“

      輸入電話(huà)號(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ì)大小寫(xiě)):

      ”;

      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ì)大小寫(xiě)):

      ”;

      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ì)大小寫(xiě)):

      ”;

      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ì)大小寫(xiě)):

      ”;

      } 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ì)大小寫(xiě)):

      ”;

      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ì)大小寫(xiě)):

      ”;

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

      cout<<“

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

      ”;

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

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

      ”;

      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ì)大小寫(xiě)):

      ”;

      } 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)修改電話(huà)號(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<<“

      修改成功!”<

      輸入要修改的電話(huà)號(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)查詢(xún)聯(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);} //按姓名查詢(xún)聯(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();//寫(xiě)入文件 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 << “電話(huà)號(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.顯示:查詢(xún)通訊錄記錄

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

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

      摘 要

      為了人們對(duì)他人信息的記憶方便而設(shè)計(jì),開(kāi)發(fā)的一套“通訊錄管理系統(tǒng)“軟件。通過(guò)該題目的設(shè)計(jì)過(guò)程,可以培養(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í)際問(wèn)題的能力。

      關(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問(wèn)題思考與調(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)不能滿(mǎn)足當(dāng)前的需要。

      開(kāi)發(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ù)插入、修改、刪除、顯示和查詢(xún)等功能。(1)數(shù)據(jù)包括:人名、工作單位、電話(huà)號(hào)碼和E-mail地址。(2)可對(duì)記錄中的姓名和電話(huà)號(hào)碼進(jìn)行修改。(3)可增加或刪除記錄。(4)可顯示所有保存的記錄。(5)可按人名或電話(huà)號(hào)碼進(jìn)行查詢(xún)。

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

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

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

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

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

      主要包含一下多種功能:

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

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

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

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

      2.1總體功能模塊圖

      圖2.1 總體功能模塊圖

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

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

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

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

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

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

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

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

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

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

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

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

      3.1功能及工作流程圖

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

      圖3.1(1)添加流程圖

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

      圖3.1(2)顯示流程圖

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

      圖3.1(3)刪除流程圖

      ④查詢(xún):可以選擇用姓名、電話(huà)、地址三種方式查詢(xún)。

      圖3.1(4)查詢(xún)流程圖

      ⑤修改:輸入欲修改的那個(gè)人的名字后,再依次輸入編號(hào)、姓名、年齡、電話(huà)號(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.查詢(xún)記錄

      │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電話(huà)號(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)

      姓名

      年齡

      電話(huà)號(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通訊錄中沒(méi)有此人!n”);return(n);void Query_a_record(Person per[],int n){

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

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

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

      printf(“t│2------電話(huà) │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)輸入想查詢(xún)的姓名:”);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電話(huà)號(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)輸入想查詢(xún)的電話(huà):”);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)輸入想查詢(xún)的地址:”);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電話(huà)號(hào)碼: %sn”,per[i].num);printf(“t電子郵箱: %sn”,per[i].email);printf(“t通訊錄中沒(méi)有此人!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通訊錄中沒(méi)有此人!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電話(huà)號(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ú)法打開(kāi)文件n“);system(”pause“);return;

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

      姓名

      年齡

      電話(huà)號(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謝謝使用,再見(jiàn)!n”);

      printf(“ntt”);

      system(“pause”);

      exit(0);

      }

      }

      }

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

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

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

      4調(diào)試分析

      調(diào)試的意義和目的:在管理信息系統(tǒng)的開(kāi)發(fā)過(guò)程中,面對(duì)著錯(cuò)綜復(fù)雜的各種問(wèn)題,人的主觀認(rèn)識(shí)不可能完全符合客觀現(xiàn)實(shí),開(kāi)發(fā)人員之間的思想交流也不可能十分完善。所以,在管理信息系統(tǒng)開(kāi)發(fā)周期的各個(gè)階段都不可避免地會(huì)出現(xiàn)差錯(cuò)。開(kāi)發(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)編制開(kāi)發(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)試通過(guò)也不能證明系統(tǒng)絕對(duì)無(wú)誤,只不過(guò)說(shuō)明各模塊、各子系統(tǒng)的功能和運(yùn)行情況正常,相互之間連接無(wú)誤,系統(tǒng)交付用戶(hù)使用以后,在系統(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).查詢(xún)界面:以姓名查詢(xún)方式為例:

      圖4.1(5)查詢(xún)界面

      6).修改界面:

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

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

      圖4.1(7)保存界面

      通訊錄.txt 文件截圖:

      圖4.1文件截圖

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

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

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

      圖4.2分析圖

      之后,我去網(wǎng)上尋求解決辦法,知道可以使用system(“cls”);這一語(yǔ)句可以解決這個(gè)問(wèn)題,最后,修改成功。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)和解決問(wèn)題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒(méi)有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來(lái),經(jīng)過(guò)不斷思考,不斷查閱資料和上機(jī)運(yùn)行,解決其中大部分問(wèn)題,當(dāng)然還存在一些問(wèn)題沒(méi)有解決。我相信在以后的學(xué)習(xí)能夠解決好它們。但是,收獲還是不小的,我不僅對(duì)C的操作有了進(jìn)一步的掌握,還了解到了程序設(shè)計(jì)的書(shū)寫(xiě)風(fēng)格及其注釋的格式。

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

      還有一點(diǎn)體會(huì)就是,書(shū)上和老師教的內(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.致

      在這里我要感謝楊書(shū)鴻老師,她對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。另外,在校圖書(shū)館查找資料的時(shí)候,圖書(shū)館的老師也給我提供了很多方面的支持與幫助。在此向幫助和指導(dǎo)過(guò)我的各位老師表示最中心的感謝!感謝這篇論文所涉及到的各位學(xué)者,如果沒(méi)有各位學(xué)者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫(xiě)作。感謝我的同學(xué)和朋友,在我寫(xiě)論文的過(guò)程中給予我很多素材,還在論文的撰寫(xiě)和排版等過(guò)程中提供熱情的幫助。由于我的學(xué)術(shù)水平有限,所寫(xiě)論文難免有不足之處,懇請(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ù)字段的編程過(guò)程,巧妙地運(yùn)用了二進(jìn)制格式顯示照片的信息,確保了通訊錄的完整性。關(guān)鍵詞:數(shù)據(jù)庫(kù);照片;數(shù)據(jù)控件;數(shù)據(jù)綁定控件

      同學(xué)幾年,即將畢業(yè),有必要制作班級(jí)通訊錄的小冊(cè)子,每個(gè)人只需要有學(xué)號(hào)、姓名、電話(huà)、家庭住址、照片等作息就可以制作班級(jí)通訊錄了;制作方法眾多,有用Word制作的,有用Excel制作的,有用專(zhuān)門(mén)通訊錄軟件制作的,也有用編程制作的,但在照片的顯示方面大多有很大困難;筆者通過(guò)多年的VB教學(xué)實(shí)踐,利用VB6.0的數(shù)據(jù)庫(kù)的強(qiáng)大功能初步探討了一個(gè)可靈活顯示包括照片等信息的通訊錄的設(shè)計(jì)過(guò)程,巧妙地運(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菜單,打開(kāi)“Access數(shù)據(jù)庫(kù)”窗口,選擇保存路徑,輸入數(shù)據(jù)庫(kù)名為“學(xué)生通訊錄”,單擊“保存”按鈕,打開(kāi)“可視化數(shù)據(jù)管理器”窗口。

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

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

      (1)學(xué)號(hào):文本類(lèi)型,大小為10個(gè)字符;(2)姓名:文本類(lèi)型,大小為10個(gè)字符;(3)性別:文本類(lèi)型,大小為2個(gè)字符;(4)QQ號(hào):文本類(lèi)型,大小為11個(gè)字符;(5)手機(jī):文本類(lèi)型,大小為11個(gè)字符;(6)住址:文本類(lèi)型,大小為30個(gè)字符;(7)照片:二進(jìn)制類(lèi)型,這是數(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ī)、住址;名稱(chēng)屬性為默認(rèn)。

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

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

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

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

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

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

      三、編寫(xiě)代碼:

      1、編寫(xiě)初始化代碼

      在加載窗體事件中輸入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、編寫(xiě)“上一個(gè)”和“下一個(gè)”按鈕代碼

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

      本設(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)顯示打開(kāi)對(duì)話(huà)框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、編寫(xiě)“刪除”按鈕代碼

      當(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、編寫(xiě)“查詢(xún)”按鈕代碼

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

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

      '查詢(xún)通訊錄

      Private Sub ComFind_Click()If TexFind.Text = ”“ Then MsgBox ”請(qǐng)輸入查詢(xún)內(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通訊錄,通過(guò)單擊“添加”按鈕后,用戶(hù)可將班級(jí)的每個(gè)同學(xué)的信息輸入到文本框中,將照片添加到圖像框中,輸完一個(gè)學(xué)生的信息后,單擊更新按鈕就能將該學(xué)生信息自動(dòng)保存到數(shù)據(jù)庫(kù)中;重復(fù)上述操作,將全班同學(xué)信息全部輸入完畢,一個(gè)圖文并茂的班級(jí)通訊錄就大功告成了。

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

      參考資料:

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

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

      黑龍江工程學(xué)院

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

      1.1 問(wèn)題分析

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

      分析:

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

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

      3)對(duì)已存在的通訊錄按不同的項(xiàng)排序; 4)將通訊錄寫(xiě)入文件; 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ù))是通過(guò)一個(gè)多分支語(yǔ)句(switch(i)語(yǔ)句)實(shí)現(xiàn)的。顯示菜單函數(shù)(displaymenu()函數(shù))顯示與用戶(hù)交互的界面。以下是各個(gè)模塊實(shí)現(xiàn)程序各項(xiàng)功能的函數(shù)的詳細(xì)設(shè)計(jì):

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

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

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

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

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

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

      定義字符型變量c,字符型數(shù)組a,定義loop模塊,功能:通過(guò)鍵盤(pán)輸入要查找的信息。首先顯示提示信息:“輸入你要查找的好友的姓名”然后從鍵盤(pán)輸入姓名。For語(yǔ)句循環(huán)內(nèi)嵌if語(yǔ)句,用strcmp 函數(shù)查找信息,并且顯示該記錄的所有信息,并跳出循環(huán)。再用for 語(yǔ)句內(nèi)嵌if語(yǔ)句判斷,如果沒(méi)有查到顯示提示信息:“如果沒(méi)有查到相關(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)是否刪除,如果鍵盤(pán)輸入Y 或y來(lái)確認(rèn)要?jiǎng)h除再執(zhí)行for循環(huán),通過(guò)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模塊中,用于修改記錄,如果要修改記錄則從鍵盤(pán)輸入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ì)大小寫(xiě)): ”;

      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<<“電話(huà)號(hào)碼:”<

      cout<<“郵編:”<

      cout<<“E_MAIL:”<

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

      <<“tt※ ※” <

      <<“tt※ 通 迅 錄 ※” <

      <<“tt※ ※” <

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

      <<“tt※ ※” <

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

      <<“tt※ ※” <

      <<“tt※ 3.將資料寫(xiě)入文件.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<<“ 輸入電話(huà)號(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ì)大小寫(xiě)): ”;

      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ì)大小寫(xiě)): ”;

      黑龍江工程學(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ì)大小寫(xiě)):

      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ì)大小寫(xiě)): 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ì)大小寫(xiě)): ”;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ì)大小寫(xiě)):

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

      goto top;else

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

      } 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ì)大小寫(xiě)): ”;

      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ì)大小寫(xiě)): ”;

      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<<“ 輸入要修改的電話(huà)號(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)查詢(xún)聯(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)查找不到??!”<

      } //按姓名查詢(xún)聯(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();} //寫(xiě)入文件

      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 << “電話(huà)號(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)行如下:

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

      第五章 結(jié)果分析

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

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

      黑龍江工程學(xué)院

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

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

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

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

      在課程設(shè)計(jì)過(guò)程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過(guò)程中,我一定會(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)用戶(hù)自發(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.題目名稱(chēng)通訊錄管理系統(tǒng) 2.基本功能 (1)顯示:將所有聯(lián)系人的信息顯示出來(lái) (2)查找:按姓名、手機(jī)號(hào)碼、QQ號(hào)碼進(jìn)行查找 (3)添加:從鍵盤(pán)上錄入聯(lián)系人的有關(guān)信息,包括姓名、手機(jī)號(hào)碼......

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

        “學(xué)生通訊信息記錄系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn) 一、設(shè)計(jì)要求 1. 問(wèn)題的描述 “學(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......

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

        3 數(shù)據(jù)庫(kù)設(shè)計(jì) ................................................................. 2 3.1 專(zhuān)門(mén)術(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)的核心,從用戶(hù)角度來(lái)看,一個(gè)DBMS應(yīng)盡可能具備的 系統(tǒng)目標(biāo)是:用戶(hù)界面友好、結(jié)構(gòu)清晰和開(kāi)放性......

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

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

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

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

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

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