C++實現(xiàn)簡單通訊錄系統(tǒng)
更新時間:2022年06月22日 10:08:47 作者:hypnumberone
這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單通訊錄系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C++實現(xiàn)簡單通訊錄系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
需求分析:
1.通訊錄可以添加聯(lián)系人。
2.通訊錄可以顯示所有聯(lián)系人。
3.通訊錄可以查找聯(lián)系人。
4.通訊錄可以刪除聯(lián)系人。
5.通訊錄可以修改聯(lián)系人。
6.可以清空通訊錄。
7.退出通訊錄。
項目代碼:
#include<iostream> #include<string> #include<stdlib.h> using namespace std; #define MAX 1000 typedef struct person { ? ? ? ? ? ? ? ? ? ? //定義一個聯(lián)系人的結(jié)構(gòu)體 ? ? string name; ? ? string sex; ? ? int age; ? ? int telnumber; ? ? string addr; }person; typedef struct Addressbooks { ? ? ? ? ? ? ? ? //定義一個通訊錄,自帶一個聯(lián)系人數(shù)組,里面可以存放MAX個聯(lián)系人 ? ? struct person personArray[MAX]; ? ? int m_size=0; }Addressbooks; void Menu() { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//菜單函數(shù) ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?通訊錄管理系統(tǒng)" << endl; ? ? cout << "" << endl; ? ? cout << "" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1--添加聯(lián)系人" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2--顯示聯(lián)系人" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3--刪除聯(lián)系人" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4--查找聯(lián)系人" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5--修改聯(lián)系人" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6--清空聯(lián)系人" << endl; ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?7--退出聯(lián)系人" << endl; } void addPerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? //添加聯(lián)系人的函數(shù)實現(xiàn) ? ? if (abs->m_size == MAX) { ? ? ? ? cout << "此通訊錄已滿,不能添加\n" << endl; ? ? } ? ? else { ? ? ? ? string name; ? ? ? ? string sex; ? ? ? ? int age; ? ? ? ? int telnumber; ? ? ? ? string addr; ? ? ? ? cout << "請輸入聯(lián)系人姓名:" << endl; ? ? ? ? cin >> name; ? ? ? ? abs->personArray[abs->m_size].name = name; ? ? ? ? cout << "請輸入聯(lián)系人性別:" << endl; ? ? ? ? cin >> sex; ? ? ? ? abs->personArray[abs->m_size].sex = sex; ? ? ? ? cout << "請輸入聯(lián)系人年齡:" << endl; ? ? ? ? cin >> age; ? ? ? ? abs->personArray[abs->m_size].age = age; ? ? ? ? cout << "請輸入聯(lián)系人電話號碼:" << endl; ? ? ? ? cin >> telnumber; ? ? ? ? abs->personArray[abs->m_size].telnumber = telnumber; ? ? ? ? cout << "請輸入聯(lián)系人家庭住址:" << endl; ? ? ? ? cin >> addr; ? ? ? ? abs->personArray[abs->m_size].addr = addr; ? ? ? ? abs->m_size++; ? ? ? ? cout << "添加成功!!!" << endl; ? ? ? ? system("pause"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//利用這行語句達到一個顯示按任意鍵繼續(xù)的效果 ? ? ? ? system("cls"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//清空整個屏幕,刷新屏幕 ? ? } } void showPerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ?//顯示整個通訊錄中聯(lián)系人的函數(shù)實現(xiàn) ? ? for (int i = 0; i < abs->m_size; i++) { ? ? ? ? cout << abs->personArray[i].name << " " << abs->personArray[i].sex << " " << abs->personArray[i].age << " " << abs->personArray[i].telnumber << " " << abs->personArray[i].addr << endl; ? ? } ? ? system("pause"); ? ? system("cls"); } int selectPerson(Addressbooks* abs,string name) { ? ? ? ? ? ? ? ? ? //查詢輸入的聯(lián)系人是否存在,存在返回聯(lián)系人坐在的下標(biāo)值,不存在則返回-1 ? ? for (int i = 0; i < abs->m_size; i++) { ? ? ? ? if (abs->personArray[i].name == name) { ? ? ? ? ? ? return i; ? ? ? ? } ? ? } ? ? return -1; } void deletePerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//刪除聯(lián)系人的函數(shù)實現(xiàn) ? ? string name; ? ? cout << "請輸入刪除聯(lián)系人的名字:" << endl; ? ? cin >> name; ? ? if (selectPerson(abs, name) != -1) { ? ? ? ? for (int i = selectPerson(abs, name); i < abs->m_size;i++) { ? ? ? ? ? ? abs->personArray[i] = abs->personArray[i + 1]; ? ? ? ? } ? ? ? ? abs->m_size--; ? ? ? ? cout << "刪除成功" << endl; ? ? } ? ? else { ? ? ? ? cout << "查無此人" << endl; ? ? } ? ? system("pause"); ? ? system("cls"); } void searchPerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ? ?//查詢聯(lián)系人并輸出相關(guān)信息的函數(shù)實現(xiàn) ? ? string name; ? ? cout << "請輸入聯(lián)系人姓名:" << endl; ? ? cin >> name; ? ? int ret = selectPerson(abs, name); ? ? if (ret != -1) { ? ? ? ? cout << abs->personArray[ret].name << " " << abs->personArray[ret].sex << " " << abs->personArray[ret].age << " " << abs->personArray[ret].telnumber << " " << abs->personArray[ret].addr << endl; ? ? } ? ? else { ? ? ? ? cout << "查無此人" << endl; ? ? } ? ? system("pause"); ? ? system("cls"); } void revisePerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ? ?//修改聯(lián)系人的函數(shù)實現(xiàn) ? ? string name; ? ? cout << "請選擇聯(lián)系人 :" << endl; ? ? cin >> name; ? ? int ret; ? ? ret = selectPerson(abs, name); ? ? if (ret != -1) { ? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1--修改姓名" << endl; ? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2--修改性別" << endl; ? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3--修改年齡" << endl; ? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4--修改電話號碼" << endl; ? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5--修改家庭住址" << endl; ? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0--退出" << endl; ? ? ? ? int chosen; ? ? ? ? while (1) {? ? ? ? ? cout << "選擇:"<<endl; ? ? ? ? cin >> chosen; ? ? ? ? ? ? switch (chosen) ? ? ? ? ? ? { ? ? ? ? ? ? case 1: ? ? ? ? ? ? { ? ? ? ? ? ? ? ? string name2; ? ? ? ? ? ? ? ? cout << "修改名字:" << endl; ? ? ? ? ? ? ? ? cin >> name2; ? ? ? ? ? ? ? ? abs->personArray[ret].name = name2; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? case 2: ? ? ? ? ? ? { ? ? ? ? ? ? ? ? string sex; ? ? ? ? ? ? ? ? cout << "修改性別:" << endl; ? ? ? ? ? ? ? ? cin >> sex; ? ? ? ? ? ? ? ? abs->personArray[ret].sex = sex; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? case 3: ? ? ? ? ? ? { ? ? ? ? ? ? ? ? int age; ? ? ? ? ? ? ? ? cout << "修改年齡:" << endl; ? ? ? ? ? ? ? ? cin >> age; ? ? ? ? ? ? ? ? abs->personArray[ret].age = age; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? case 4: ? ? ? ? ? ? { ? ? ? ? ? ? ? ? int tel; ? ? ? ? ? ? ? ? cout << "修改電話號碼:" << endl; ? ? ? ? ? ? ? ? cin >> tel; ? ? ? ? ? ? ? ? abs->personArray[ret].telnumber = tel; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? case 5: ? ? ? ? ? ? { ? ? ? ? ? ? ? ? string addr; ? ? ? ? ? ? ? ? cout << "修改住址:" << endl; ? ? ? ? ? ? ? ? cin >> addr; ? ? ? ? ? ? ? ? abs->personArray[ret].addr = addr; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? case 0: ? ? ? ? ? ? goto FLAG1; ? ? ? ? ? ? default: ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? else { ? ? ? ? cout << "查無此人!!!" << endl; ? ? } ? ? FLAG1: ? ? system("pause"); ? ? system("cls"); } void clear(Addressbooks* abs) { ? ? abs->m_size = 0; ? ? cout << "此通訊錄已清空!!!" << endl; ? ? system("pause"); ? ? system("cls"); } int main() { ? ? Addressbooks book1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? //先定義一個通訊錄,并添加一個聯(lián)系人hyp ? ? book1.personArray[0].name = "hyp"; ? ? ? ? ? ? ? ? ? book1.personArray[0].sex = "man"; ? ? book1.personArray[0].age = 21; ? ? book1.personArray[0].telnumber = 76766767; ? ? book1.personArray[0].addr = "重慶"; ? ? book1.m_size = 1; ? ? int chosen; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? while (1) { ? ? ? ? Menu(); ? ? ? ? cout << "選擇:" ; ? ? ? ? cin >> chosen; ? ? ? ? switch (chosen) ? ? ? ? { ? ? ? ? case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加聯(lián)系人 ? ? ? ? ? ? addPerson(&book1); ? ? ? ? ? ? break; ? ? ? ? case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //顯示聯(lián)系人 ? ? ? ? ? ? showPerson(&book1); ? ? ? ? ? ? break; ? ? ? ? case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //刪除聯(lián)系人 ? ? ? ? ? ? deletePerson(&book1); ? ? ? ? ? ? break; ? ? ? ? case 4: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //查找聯(lián)系人 ? ? ? ? ? ? searchPerson(&book1); ? ? ? ? ? ? break; ? ? ? ? case 5: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //修改聯(lián)系人 ? ? ? ? ? ? revisePerson(&book1); ? ? ? ? ? ? break; ? ? ? ? case 6: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //清空聯(lián)系人 ? ? ? ? ? ? clear(&book1); ? ? ? ? ? ? break; ? ? ? ? case 7: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //退出通訊錄 ? ? ? ? ? ? return 0; ? ? ? ? ? ? break; ? ? ? ? default: ? ? ? ? ? ? break; ? ? ? ? } ? ? ? } ? ? return 0; }
效果:
顯示聯(lián)系人
添加聯(lián)系人
后面效果就不一一顯示了
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。