當(dāng)前位置首頁(yè) > 計(jì)算機(jī) > 通信/網(wǎng)絡(luò)
搜柄,搜必應(yīng)! 快速導(dǎo)航 | 使用教程

c++課程設(shè)計(jì)報(bào)告通信錄

文檔格式:DOC| 27 頁(yè)|大小 369.03KB|積分 15|2025-03-16 發(fā)布|文檔ID:253591351
第1頁(yè)
第2頁(yè)
第3頁(yè)
下載文檔到電腦,查找使用更方便 還剩頁(yè)未讀,繼續(xù)閱讀>>
1 / 27
此文檔下載收益歸作者所有 下載文檔
  • 版權(quán)提示
  • 文本預(yù)覽
  • 常見(jiàn)問(wèn)題
  • 課程設(shè)計(jì)說(shuō)明書課程名稱 C++項(xiàng)目設(shè)計(jì) 設(shè)計(jì)題目 學(xué)生姓名 學(xué)號(hào) 專 業(yè) 指導(dǎo)教師 年 月 日 目錄一、系統(tǒng)開(kāi)發(fā)相關(guān)情況 1(一)開(kāi)發(fā)背景 1(二)系統(tǒng)開(kāi)發(fā)的目標(biāo) 1二、系統(tǒng)以及需求分析 1(一)系統(tǒng)目標(biāo) 1三、程序功能描述以及模塊結(jié)構(gòu) 2(一)功能模塊描述及主要類描述 2(二)程序流程圖 3(三)數(shù)據(jù)結(jié)構(gòu)表 4四、用戶使用說(shuō)明與調(diào)試結(jié)果 4(一)使用說(shuō)明 4(二)調(diào)試結(jié)果 4(三)優(yōu)缺點(diǎn)分析 8五、總結(jié) 8參考文獻(xiàn): 9附錄:職工信息管理系統(tǒng)源碼(C++) 9隨著信息技術(shù)在管理上越來(lái)越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,任何一個(gè)單位要生存要發(fā)展,要高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來(lái),就必須建立與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)本文介紹了在Microsoft Visual C++ 6.0環(huán)境下開(kāi)發(fā)一個(gè)通訊錄的過(guò)程。

    本系統(tǒng)界面友好,操作簡(jiǎn)單,比較實(shí)用一、系統(tǒng)開(kāi)發(fā)相關(guān)情況(一) 開(kāi)發(fā)背景隨著信息技術(shù)在管理上越來(lái)越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,任何一個(gè)單位要生存要發(fā)展,要高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來(lái),就必須建立與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)二)系統(tǒng)開(kāi)發(fā)的目標(biāo)為了更好地適應(yīng)我校的要求,進(jìn)一步提供全方位的信息服務(wù)通訊錄在實(shí)施后應(yīng)該能夠達(dá)到以下的目標(biāo): ★ 能夠準(zhǔn)確地記錄職工的相關(guān)信息★ 系統(tǒng)界面友好、操作簡(jiǎn)單易行,查詢靈活方便,數(shù)據(jù)儲(chǔ)存安全可靠★ 系統(tǒng)維護(hù)安全、方便、可靠,并且能夠?qū)崿F(xiàn)實(shí)用性,先進(jìn)性的要求二、系統(tǒng)以及需求分析(一)系統(tǒng)目標(biāo)除了前面所述,我們所開(kāi)發(fā)的系統(tǒng)還應(yīng)該具有以下功能:⑴ 原始數(shù)據(jù)修改簡(jiǎn)單方便;⑵ 方便的數(shù)據(jù)查詢;⑶ 刪除數(shù)據(jù)方便簡(jiǎn)單,穩(wěn)定性好;⑷ 數(shù)據(jù)計(jì)算自動(dòng)完成,盡量減少人工干預(yù);三、程序功能描述以及模塊結(jié)構(gòu)(一)功能模塊描述及主要類描述 模塊一:增加人員函數(shù)Add();增加通訊錄基本信息模塊二:刪除人員函數(shù)Delete();刪除指定的學(xué)生的基本信息模塊三:修改人員函數(shù)Modify();修改指定的通訊錄基本信息。

    模塊四:查詢?nèi)藛T信息函數(shù)Query();查詢指定的學(xué)生信息模塊五:數(shù)據(jù)存盤,載入函數(shù)Save()以及Load();儲(chǔ)存與載入基本信息模塊六:預(yù)覽數(shù)據(jù)void Look();預(yù)覽比較詳細(xì)的信息模塊七:刪除通訊錄void DesTory();刪除已載入的所有的信息模塊八:基礎(chǔ)數(shù)據(jù)設(shè)置函數(shù)void TJ();;統(tǒng)計(jì)男女的人數(shù),以及總?cè)藬?shù)本通訊錄采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法所有的方法均以類為基礎(chǔ)所涉及到的類包括:class Person 基本員工類;該類是一個(gè)基類,設(shè)置了屬于保護(hù)類的職工基本屬性,以及構(gòu)造函數(shù)Person(char ID,char *Name,int Duty)可以給職工類型繼承Class Manage 管理類;該類定義了管理函數(shù),即前文所述八個(gè)模塊功能的實(shí)現(xiàn)方法,鏈表的使用也包括其中此類的作能在于將所有功能模塊集成并定義本系統(tǒng)使用的主要方法二)程序流程圖開(kāi)始定義變量數(shù)據(jù)處理調(diào)用輸出函數(shù)YN輸入C的值C>=1&&C<=8調(diào)用保存函數(shù)調(diào)用預(yù)覽函數(shù)調(diào)用清除函數(shù)調(diào)用查詢函數(shù)調(diào)用輸出函數(shù)調(diào)用修改函數(shù)調(diào)用刪除函數(shù)調(diào)用新增函數(shù)調(diào)用統(tǒng)計(jì)函數(shù)退出系統(tǒng)圖 3-1 程序流程圖(三)數(shù)據(jù)結(jié)構(gòu)表序號(hào)成員名數(shù)據(jù)類型長(zhǎng)度字段含義1Nostring學(xué)號(hào)2Namechar20名字3Sexchar10性別4Telstring20聯(lián)系方式5Agestring年齡表3-1 數(shù)據(jù)結(jié)構(gòu)表四、用戶使用說(shuō)明與調(diào)試結(jié)果(一)使用說(shuō)明這是一個(gè)關(guān)于職工信息管理系統(tǒng),具有錄入、輸出、刪除、查詢、修改、保存、統(tǒng)計(jì)等功能,建立了一個(gè)含有學(xué)號(hào)、姓名、性別、聯(lián)系方式等成員的類的變量class Person 。

    已從文本錄入了范例數(shù)據(jù)調(diào)試過(guò)程中,可按照有關(guān)提示進(jìn)行相關(guān)操作:增加通訊錄按“1”鍵;刪除通訊錄按“2”鍵;修改通訊錄按“3”鍵;查詢?cè)敿?xì)通訊錄按“4”鍵;保存通訊錄數(shù)據(jù)設(shè)置按“5”鍵;預(yù)覽通訊錄按“6”鍵;清除通訊錄按“7”鍵;統(tǒng)計(jì)數(shù)據(jù)按“8”鍵二)調(diào)試結(jié)果★代碼中運(yùn)用了switch 語(yǔ)句調(diào)用各子函數(shù),數(shù)字 1、2、3、4、5、6、7、8等七個(gè)數(shù)字代表不同的指令★系統(tǒng)啟動(dòng)時(shí),會(huì)自動(dòng)在存放該系統(tǒng)的磁盤根目錄之下裝入一個(gè)數(shù)據(jù)文件:person.txt,調(diào)試時(shí)一個(gè)數(shù)據(jù)文件都已經(jīng)寫入部分?jǐn)?shù)據(jù),使用功能“6-預(yù)覽通訊錄”,顯示如下:★指令“n”為退回主界面,“y”代表進(jìn)入查詢?cè)敿?xì)信息界面:可以按照學(xué)號(hào)、名字、電話號(hào)碼查找較詳細(xì)信息★指令“2-刪除通訊錄”代表調(diào)用刪除人員函數(shù)Delete(),要求操作者輸入職工的相關(guān)ID,系統(tǒng)根據(jù)操作者輸出的ID,找出對(duì)應(yīng)的記錄,然后刪除該職工的信息,如果刪除的是第一個(gè)結(jié)點(diǎn),則 p1->next,指向第二個(gè)結(jié)點(diǎn);下圖示范了刪除第一個(gè)節(jié)點(diǎn)之后的顯示結(jié)果:如果刪除的是第i個(gè)(0< i

    ★指令“3-修改人員”代表調(diào)用修改人員函數(shù)Modify(),體統(tǒng)根據(jù)操作者輸入的ID找到對(duì)應(yīng)的記錄,將新輸入的數(shù)據(jù)對(duì)應(yīng)地賦給要修改的各成員★指令“5-保存數(shù)據(jù)”表示調(diào)用存盤函數(shù)Save(),輸入“Y”或者“N”以進(jìn)一步操作★指令“8-統(tǒng)計(jì)”,調(diào)用TJ();函數(shù),按照男、女統(tǒng)計(jì)人數(shù):★指令“7-清除通訊錄”,調(diào)用DesTory()清除已存數(shù)據(jù):(三)優(yōu)缺點(diǎn)分析優(yōu)點(diǎn):★ 系統(tǒng)中包含了輸入、輸出、保存、刪除、查詢、修改等多種功能,系統(tǒng)操作靈活性較強(qiáng),功能較強(qiáng)大;★ 可以隨意地選擇不同的指令進(jìn)行操作;★ 排版效果清晰明了,美觀;★ 操作簡(jiǎn)單方便缺點(diǎn):★ 由于該系統(tǒng)對(duì)數(shù)據(jù)采用文本保存方式,所以安全性不可靠★ 采用鏈表結(jié)構(gòu)操作,不能支持超大量的數(shù)據(jù),否則運(yùn)行緩慢五、總結(jié)本次設(shè)計(jì)我們選擇的題目是通訊錄因?yàn)槭孪鹊挠?jì)劃非常明確,所以我們?cè)谕瓿蛇@個(gè)設(shè)計(jì)的過(guò)程也是比較順利的在系統(tǒng)分析和設(shè)計(jì)的部分仍然花了比較多的時(shí)間模塊設(shè)計(jì)部分因?yàn)樯婕肮δ艿膶?shí)現(xiàn),要從抽象的設(shè)計(jì)轉(zhuǎn)化成實(shí)際的代碼,因此對(duì)于某項(xiàng)功能的實(shí)現(xiàn)方法都思考得比較詳盡加上在開(kāi)發(fā)系統(tǒng)之前,我們閱讀很多與本系統(tǒng)有相關(guān)內(nèi)容的書籍以做參考,使得此次系統(tǒng)編寫能順利進(jìn)行。

    由于班里每個(gè)人都需要做一份設(shè)計(jì),所以我們經(jīng)常互相交流在交流的時(shí)候經(jīng)常能夠互相提出更好的建議經(jīng)過(guò)對(duì)通訊錄的分析與編寫,我得到了很大的收獲自主學(xué)習(xí)的必要性更是解決問(wèn)題的基礎(chǔ)這次設(shè)計(jì)使我重溫了以前學(xué)過(guò)的各科知識(shí),讓我對(duì)C++編程有了更深刻的認(rèn)識(shí)除了對(duì)系統(tǒng)作出正確的分析,實(shí)際的調(diào)查工作對(duì)系統(tǒng)的整體設(shè)計(jì)有著至關(guān)重要的作用所以在分析系統(tǒng)之前,我花了一些時(shí)間在公司的實(shí)際管理工作調(diào)查上也因?yàn)檫@樣,如何編寫代碼逐漸變得明朗每一個(gè)功能模塊經(jīng)過(guò)調(diào)查后后,各個(gè)功能逐漸顯露出來(lái),然后,反復(fù)探討,驗(yàn)證這項(xiàng)功能是否有存在的必要,是否可以改進(jìn)得更好在這樣的前提下,最后順利完成了這份設(shè)計(jì) 這次C++系統(tǒng)設(shè)計(jì)作業(yè),提升了我分析問(wèn)題的能力和思考問(wèn)題的邏輯能力,更明白實(shí)際調(diào)研的重要性從這次設(shè)計(jì)學(xué)到的東西,相信會(huì)對(duì)我們?nèi)蘸蟮膶W(xué)習(xí)工作起到很大的指導(dǎo)作用附錄:通訊錄系統(tǒng)源碼(C++)#include#include#include#include#include//#includeusing namespace std;string ID;//具有唯一性class Person{protected: string No; //學(xué)號(hào) string Age; char Name[20]; //姓名 char Sex[10]; //性別 string Tel; //聯(lián)系方式 Person *next; public: Person(string ID,char *Name,char *Sex,string Age,string Tel) { strcpy(this->Name,Name); strcpy(this->Sex,Sex); this->Tel=Tel; this->No=ID; this->Age=Age; } friend class Manage;};class Manage{private: Person *person;public: Manage() { person=0; Load(); } ~Manage() { Person *p; p=person; while(p) { p=p->next; delete person; person=p; } person=0; } void Find(char Name[20]);//按姓名查找 void Find(string ID);//按編號(hào)查找 void Add(); //添加加信息 void Delete(); //刪除信息 void Modify(string ID); //修改信息 void Query(); //查詢信息 void TJ(); //清除文件信息 void Save(); //保存數(shù)據(jù) void Load(); //讀入數(shù)據(jù) void Look();//預(yù)覽 void DesTory(); void Output(Person *p) { cout<<"\t\t學(xué)號(hào): "<No<Name<Sex<Age<Tel<>No; cout<No==No) { break; } else { p1=p1->next; } } if(p1!=NULL) { cout<<"該學(xué)號(hào)已存在,是否修改該學(xué)生信息(Y/N) "<>c; if(toupper(c)=='Y') { cout<<"該學(xué)生信息為:"<>Name; cout<>Sex; cout<>Age; cout<>Tel; cout<next=0; //學(xué)生結(jié)點(diǎn)加入鏈表 if(person) //若已經(jīng)存在結(jié)點(diǎn) { p2=person; while(p2->next) //查找尾結(jié)點(diǎn) { p2=p2->next; } p2->next=p; //連接 } else //若不存在結(jié)點(diǎn)(表空) { person=p; //連接 } system("cls"); cout<<"\t\t\t ***添加成功***\n"<>c; if(toupper(c)=='Y') { Add(); return ; } else return ;}void Manage::Delete() //刪除人員 { system("cls"); char c; string No; cout<<"\n** 刪除信息 **\n"; cout<<"輸入要?jiǎng)h除的學(xué)生ID:\t"; cin>>No; cout<No==No) break; else { p2=p1; p1=p1->next; } } //刪除結(jié)點(diǎn) if(p1!=NULL)//若找到結(jié)點(diǎn),則刪除 { cout<<"所要?jiǎng)h除的學(xué)生的信息如下:\n"<>c; if(toupper(c)!='Y') return; // system("pause"); if(p1==person) //若要?jiǎng)h除的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn) { person=p1->next; delete p1; } else //若要?jiǎng)h除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn) { p2->next=p1->next; delete p1; } cout<<"\t\t***刪除成功***\n"; cout<<"是否繼續(xù)刪除(Y/N) "<>c; if(toupper(c)=='Y') { Delete(); return ; } else return ; } else //未找到結(jié)點(diǎn) cout<<"未找到該學(xué)生!\n"; getch();}void Manage::Modify(string ID) { Person *p1; char c; p1=person; while(p1) { if(p1->No==ID) break; else { p1=p1->next; } } if(p1!=NULL)//若找到結(jié)點(diǎn) { system("cls"); cout<<"所要修改的學(xué)生的信息如下:\n"<>c; if(c!='5') cout<<"請(qǐng)輸入新的信息: "; switch(c) { case '1': cin>>p1->Name; break; case '2': cin>>p1->Sex; break; case '3': cin>>p1->Age; break; case '4': cin>>p1->Tel; break; default: break; } }while(c!='5'); system("cls"); cout<<"\t ***修改成功***\n"<>c; if(toupper(c)=='Y') { cout<<"請(qǐng)輸入要修改人員的ID: "; cin>>ID; cout<>c; if(toupper(c)!='Y') return; Person *p=person; while(p) { fPerson<No<<" "<Name<<" "<Sex<<" "<Age<<" "<Tel<next; } fPerson.close(); cout<<"\n保存成功...\n"; system("pause");} void Manage::Load() //數(shù)據(jù)讀入{ ifstream fPerson; Person *p=person; string No,Age,Tel; char Name[20],Sex[10]; fPerson.open("person.txt",ios::in); fPerson>>No>>Name>>Sex>>Age>>Tel; while(fPerson.good()) { p=new Person(No,Name,Sex,Age,Tel); p->next=0; //員工結(jié)點(diǎn)加入鏈表 if(person) //若已經(jīng)存在結(jié)點(diǎn) { Person *p2; p2=person; while(p2->next) //查找尾結(jié)點(diǎn) { p2=p2->next; } p2->next=p; //連接 } else //若不存在結(jié)點(diǎn)(表空) { person=p; //連接 } fPerson>>No>>Name>>Sex>>Age>>Tel; } fPerson.close(); } void Manage::Find(string ID){ Person *p1; p1=person; while(p1) { if(p1->No==ID) break; else { p1=p1->next; } } if(p1!=NULL) { Output(p1); } else cout<<"未找到該學(xué)生"<Name,Name)==0) { count++; Output(p1); } p1=p1->next; } if(count) { cout<<"\t查詢成功!!!"<>c; // system("cls"); cout<>ID; Find(ID); }; break; case '2': { cout<<"輸入姓名 Name: "; cin>>Name; Find(Name); }; break; case '3': { cout<<"輸入電話號(hào)碼 Tel"<>Tel; Find(Tel); };break; case '4':break; default: cout<<"輸入有誤 請(qǐng)重新輸入!!!\n"<>c; if(toupper(c)=='Y') { Query(); return ; } else return ; system("pause");}void Manage::Look(){ //設(shè)置字體顏色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); system("cls"); Person *p1; int count=0; char c; p1=person; while(p1) { cout<<"ID: "<No<<"\t姓名: "<Name<next; } if(count!=0) { cout<<"\n\t\t預(yù)覽成功!!! \n"<>c; if(toupper(c)=='Y') { Query(); return; } else return ; } else { cout<<"尚未創(chuàng)建通訊錄,是否創(chuàng)建(Y/N)"<>c; if(toupper(c)=='Y') { Add(); return; } else return ; }}void Manage::DesTory(){ //設(shè)置字體為紅色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED); char c; system("cls"); cout<<"\n\t\t\t** 清除信息 **\n"; cout<<"警告:\n 清除通訊錄信息會(huì)導(dǎo)致您保存的信息完全消失!!!\n"<>c; if(toupper(c)!='Y') return; cout<<"請(qǐng)?jiān)俅未_認(rèn)(Y/N)"<>c; if(toupper(c)!='Y') return; else { Person *p; p=person; while(p) { p=p->next; delete person; person=p; } person=0; // ofstream fPerson("person.txt"); // fPerson.close(); } system("pause");}void Manage::TJ(){ Person *p1; int count=0,Boy=0,Girl=0; p1=person; while(p1) { count++; if(strcmp(p1->Sex,"男")==0) Boy++; if(strcmp(p1->Sex,"女")==0) Girl++; p1=p1->next; } cout<<"\n總共有 "<>c; switch(c) { case 1: m.Add(); break; case 2: m.Delete();break; case 3: { system("cls"); cout<<"請(qǐng)輸入要修改人員的ID: "; cin>>ID; cout<>s; if(toupper(s)=='Y') m.Save(); return 0;}25。

    點(diǎn)擊閱讀更多內(nèi)容
    最新文檔
    傳統(tǒng)文化道德不是高懸的明月而是腳下的星光.pptx
    世界無(wú)煙日關(guān)注青少年成長(zhǎng)健康無(wú)煙為成長(zhǎng)護(hù)航.pptx
    五四青年節(jié)詩(shī)詞贊歌五四青年自強(qiáng)不息.pptx
    XX學(xué)校班主任培訓(xùn)用心管理慧做班主任.pptx
    拒絕熬夜健康養(yǎng)生規(guī)律作息遠(yuǎn)離亞健康.pptx
    兒童成長(zhǎng)手冊(cè)時(shí)光里的童真印記.pptx
    幼兒園夏季傳染病預(yù)防指南預(yù)見(jiàn)夏天健康童行夏季傳染病預(yù)防科普.pptx
    高中生心理健康教育主題班會(huì)快樂(lè)學(xué)習(xí)高效學(xué)習(xí)正視壓力學(xué)會(huì)減壓.pptx
    員工職業(yè)道德與職業(yè)素養(yǎng)培訓(xùn)遵守職業(yè)道德提高職業(yè)修養(yǎng).pptx
    2025職業(yè)病防治法宣傳周健康守護(hù)職防同行.pptx
    XX幼兒園防災(zāi)減災(zāi)安全教育臨災(zāi)不亂安全童行學(xué)會(huì)保護(hù)自己.pptx
    在2025年縣教育工作大會(huì)暨高考備考工作推進(jìn)會(huì)上的講話發(fā)言材料.docx
    在2025年縣全面從嚴(yán)治黨和黨風(fēng)廉政會(huì)議上的講話發(fā)言材料.docx
    在2025年全市慶?!拔逡弧濒邉趧?dòng)模范表彰大會(huì)上的講話發(fā)言材料多篇.docx
    2025年稅務(wù)局青年代表在五四青年座談會(huì)上的發(fā)言材料3篇.docx
    在2025年市委全體會(huì)議上的主持講話發(fā)言材料.docx
    2025年黨風(fēng)廉政建設(shè)工作要點(diǎn)材料.docx
    在2025年全市青年干部慶祝五四青年節(jié)大會(huì)上的講話發(fā)言材料多篇.docx
    在入黨積極分子培訓(xùn)班上的講話發(fā)言材料.docx
    縣文旅局黨組書記在五一假期及夏季旅游安全生產(chǎn)工作部署會(huì)議上的講話發(fā)言材料.docx
    賣家[上傳人]:仙人指路
    資質(zhì):實(shí)名認(rèn)證