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



《c++課程設(shè)計(jì)報(bào)告通信錄》由會(huì)員分享,可在線閱讀,更多相關(guān)《c++課程設(shè)計(jì)報(bào)告通信錄(27頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 課程設(shè)計(jì)說明書 課程名稱 C++項(xiàng)目設(shè)計(jì) 設(shè)計(jì)題目 學(xué)生姓名 學(xué)號(hào) 專 業(yè) 指導(dǎo)教師 年 月 日 目錄 一、系統(tǒng)開發(fā)相關(guān)情況 1 (一)開發(fā)背景 1 (二)系統(tǒng)開發(fā)的目標(biāo) 1 二、系統(tǒng)以及需求分析 1 (一)
2、系統(tǒng)目標(biāo) 1 三、程序功能描述以及模塊結(jié)構(gòu) 2 (一)功能模塊描述及主要類描述 2 (二)程序流程圖 3 (三)數(shù)據(jù)結(jié)構(gòu)表 4 四、用戶使用說明與調(diào)試結(jié)果 4 (一)使用說明 4 (二)調(diào)試結(jié)果 4 (三)優(yōu)缺點(diǎn)分析 8 五、總結(jié) 8 參考文獻(xiàn): 9 附錄:職工信息管理系統(tǒng)源碼(C++) 9 隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,任何一個(gè)單位要生存要發(fā)展,要高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來,就必須建立與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)。 本文介紹了在Microsoft Visual C+
3、+ 6.0環(huán)境下開發(fā)一個(gè)通訊錄的過程。 本系統(tǒng)界面友好,操作簡(jiǎn)單,比較實(shí)用。 一、系統(tǒng)開發(fā)相關(guān)情況 (一) 開發(fā)背景 隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,任何一個(gè)單位要生存要發(fā)展,要高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來,就必須建立與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)。 (二)系統(tǒng)開發(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ǔ)存安全可靠。 ★ 系
4、統(tǒng)維護(hù)安全、方便、可靠,并且能夠?qū)崿F(xiàn)實(shí)用性,先進(jìn)性的要求。 二、系統(tǒng)以及需求分析 (一)系統(tǒng)目標(biāo) 除了前面所述,我們所開發(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();修改指定的通訊錄基本信息。 模塊
5、四:查詢?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,in
6、t Duty)??梢越o職工類型繼承。 Class Manage 管理類;該類定義了管理函數(shù),即前文所述八個(gè)模塊功能的實(shí)現(xiàn)方法,鏈表的使用也包括其中。此類的作能在于將所有功能模塊集成并定義本系統(tǒng)使用的主要方法。 (二)程序流程圖 開始 定義變量 數(shù)據(jù)處理 調(diào)用輸出函數(shù) Y N 輸入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ù)
7、 退出系統(tǒng) 圖 3-1 程序流程圖 (三)數(shù)據(jù)結(jié)構(gòu)表 序號(hào) 成員名 數(shù)據(jù)類型 長(zhǎng)度 字段含義 1 No string 學(xué)號(hào) 2 Name char 20 名字 3 Sex char 10 性別 4 Tel string 20 聯(lián)系方式 5 Age string 年齡 表3-1 數(shù)據(jù)結(jié)構(gòu)表 四、用戶使用說明與調(diào)試結(jié)果 (一)使用說明 這是一個(gè)關(guān)于職工信息管理系統(tǒng),具有錄入、輸出、刪除、查詢、修改、保存、統(tǒng)計(jì)等功能,建立了一個(gè)含有學(xué)號(hào)、姓名、性別、聯(lián)
8、系方式等成員的類的變量class Person 。已從文本錄入了范例數(shù)據(jù)。調(diào)試過程中,可按照有關(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 語句調(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ù),
9、使用功能“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 10、員函數(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ù) 11、據(jù)采用文本保存方式,所以安全性不可靠。
★ 采用鏈表結(jié)構(gòu)操作,不能支持超大量的數(shù)據(jù),否則運(yùn)行緩慢。
五、總結(jié)
本次設(shè)計(jì)我們選擇的題目是通訊錄。因?yàn)槭孪鹊挠?jì)劃非常明確,所以我們?cè)谕瓿蛇@個(gè)設(shè)計(jì)的過程也是比較順利的。在系統(tǒng)分析和設(shè)計(jì)的部分仍然花了比較多的時(shí)間。模塊設(shè)計(jì)部分因?yàn)樯婕肮δ艿膶?shí)現(xiàn),要從抽象的設(shè)計(jì)轉(zhuǎn)化成實(shí)際的代碼,因此對(duì)于某項(xiàng)功能的實(shí)現(xiàn)方法都思考得比較詳盡。加上在開發(fā)系統(tǒng)之前,我們閱讀很多與本系統(tǒng)有相關(guān)內(nèi)容的書籍以做參考,使得此次系統(tǒng)編寫能順利進(jìn)行。由于班里每個(gè)人都需要做一份設(shè)計(jì),所以我們經(jīng)?;ハ嘟涣鳌T诮涣鞯臅r(shí)候經(jīng)常能夠互相提出更好的建議。
經(jīng)過對(duì)通訊錄的分析與編寫,我 12、得到了很大的收獲。自主學(xué)習(xí)的必要性更是解決問題的基礎(chǔ)。這次設(shè)計(jì)使我重溫了以前學(xué)過的各科知識(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)過調(diào)查后后,各個(gè)功能逐漸顯露出來,然后,反復(fù)探討,驗(yàn)證這項(xiàng)功能是否有存在的必要,是否可以改進(jìn)得更好。在這樣的前提下,最后順利完成了這份設(shè)計(jì)。
這次C++系統(tǒng)設(shè)計(jì)作業(yè),提升了我分析問題的能力和思考問題的邏輯能力,更明白實(shí)際調(diào)研的重要性。從這次設(shè)計(jì)學(xué)到的東西,相信會(huì)對(duì)我們?nèi)?/p>
13、后的學(xué)習(xí)工作起到很大的指導(dǎo)作用
附錄:通訊錄系統(tǒng)源碼(C++)
#include 14、 //性別
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 * 15、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 De 16、lete(); //刪除信息
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): "< 17、Sex< 18、
cout< 19、 Find(No);
cout< 20、Name,Sex,Age,Tel);
p->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"< 21、) "< 22、n;
while(p1)
{
if(p1->No==No)
break;
else
{
p2=p1;
p1=p1->next;
}
}
//刪除結(jié)點(diǎn)
if(p1!=NULL)//若找到結(jié)點(diǎn),則刪除
{
cout<<"所要?jiǎng)h除的學(xué)生的信息如下:\n"< 23、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) "< 24、 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é)生 25、的信息如下:\n"< 26、': cin>>p1->Age; break;
case '4': cin>>p1->Tel; break;
default: break;
}
}while(c!='5');
system("cls");
cout<<"\t ***修改成功***\n"< 27、return ;
}
else
return ;
}
else //未找到結(jié)點(diǎn)
cout<<"未找到該學(xué)生!\n";
getch();//暫停
}
void Manage::Save() //數(shù)據(jù)寫入到文件
{
ofstream fPerson("Person.txt",ios::out);
char c;
cout<<"\n保存數(shù)據(jù),是否繼續(xù)?[Y/N]:";
cin>>c;
if(toupper(c)!='Y')
return;
Person *p=person;
while(p)
{
28、 fPerson< 29、n("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->nex 30、t=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!=N 31、ULL)
{
Output(p1);
}
else
cout<<"未找到該學(xué)生"< 32、
cout<<"\n共找到 "< 33、)
{
case '1': {
cout<<"輸入學(xué)號(hào) ID: ";
cin>>ID;
Find(ID);
}; break;
case '2': {
cout<<"輸入姓名 Name: ";
cin>>Name;
Find(Name);
}; break;
case '3': {
cout<<"輸入電話號(hào)碼 Tel"< 34、out<<"輸入有誤 請(qǐng)重新輸入!!!\n"< 35、etConsoleTextAttribute(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: "< 36、 if(count!=0)
{
cout<<"\n\t\t預(yù)覽成功!!! \n"< 37、 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"< 38、決定清除通訊錄信息(Y/N): "< 39、rson.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總共有 "< 40、\n"< 41、 =========================================="< 42、☆\t 4.查詢?cè)敿?xì)信息 \t☆ ★"< 43、
cout<<" =========================================="< 44、y(ID);
};break;
case 4: {
system("cls");
m.Query();
}; break;
case 5: m.Save(); break;
case 6: m.Look(); break;
case 7: m.DesTory(); break;
case 8: m.TJ(); break;
default: break;
}
}while(c!=0);
char s;
cout<<"\n★是否要保存您的所有操作(Y/N): "<
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅(jiān)決打好反腐敗斗爭(zhēng)攻堅(jiān)戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會(huì)上和基層單位調(diào)研座談會(huì)上的發(fā)言材料
- 總工會(huì)關(guān)于2025年維護(hù)勞動(dòng)領(lǐng)域政治安全的工作匯報(bào)材料
- 基層黨建工作交流研討會(huì)上的講話發(fā)言材料
- 糧食和物資儲(chǔ)備學(xué)習(xí)教育工作部署會(huì)上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計(jì)劃
- 檢察院政治部關(guān)于2025年工作計(jì)劃
- 辦公室主任2025年現(xiàn)實(shí)表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項(xiàng)規(guī)定精神學(xué)習(xí)教育工作部署會(huì)議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動(dòng)員部署會(huì)上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會(huì)上的發(fā)言材料
- 國企黨委關(guān)于推動(dòng)基層黨建與生產(chǎn)經(jīng)營深度融合工作情況的報(bào)告材料
- 副書記在2025年工作務(wù)虛會(huì)上的發(fā)言材料2篇
相關(guān)資源
更多