国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

這篇具有很好參考價值的文章主要介紹了學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

1.1 問題的描述

學(xué)生通訊錄管理系統(tǒng)是為了幫助老師、同學(xué),或者其他一些需要使用通訊錄的人員進行管理和分析的一種應(yīng)用程序。

1.2 問題分析和任務(wù)定義

(1)輸入數(shù)據(jù)建立通訊錄;

(2)查詢通訊錄中滿足要求的信息;

(3)插入新的通訊錄信息;

(4)刪除不需要的通訊錄信息;

(5)查看所有的通訊錄信息。

1.3 數(shù)據(jù)類型和系統(tǒng)設(shè)計

1)存儲結(jié)構(gòu)設(shè)計

采用鏈表來存儲“學(xué)生通訊信息”,其中鏈表結(jié)點有4個分量構(gòu)成:通訊錄成員學(xué)號、姓名、電話號碼、指向下一個成員的指針。

2)系統(tǒng)功能設(shè)計

本系統(tǒng)設(shè)置了5個子功能菜單,5個子功能的設(shè)計描述如下:

① 建立通訊錄系統(tǒng)??梢砸淮屋斎攵鄠€成員通訊錄的信息,建立通訊錄。該功能有由creatIncreLink() 函數(shù)實現(xiàn)。

② 插入通訊錄記錄。每次可以插入一個成員通訊錄的信息,如果要連續(xù)插入多個成員通訊錄信息必須多次選擇該功能。該功能由insertYouXu() 函數(shù)實現(xiàn)。

③ 查詢通訊錄記錄??梢园磧煞N方式查詢所需要的通訊錄成員記錄,一是按學(xué)號查詢,而是按姓名查詢。分別由searchNum() 和searchName() 函數(shù)實現(xiàn)。

④ 刪除通訊記錄。可以對通訊錄中不再需要的信息進行刪除。有三種刪除方式,按序號進行刪除,按學(xué)號進行刪除和按姓名進行刪除。分別由deleteElem() ,delNum() 和delName() 三個函數(shù)實現(xiàn)。

⑤ 顯示通訊錄記錄。可以查看通訊錄中所有通訊錄成員記錄。該功能由printList() 函數(shù)實現(xiàn)。

3)系統(tǒng)主界面的設(shè)計

為了實現(xiàn)學(xué)生通訊管理系統(tǒng)各功能的管理,設(shè)計一個含有多個菜單項的主控菜單子程序以鏈接系統(tǒng)的各項子功能,方便用戶使用本系統(tǒng)。本系統(tǒng)主控菜單運行界面如圖1所示。

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-494750.html

1 “學(xué)生通訊錄管理系統(tǒng)”主菜單

1.4 編碼實現(xiàn)

(1)鏈表結(jié)點類型的定義

typedef struct LNode

{ int number;

?double telenum;

?char name[20];

?struct LNode *next;

}LNode,*LinkList;

(2)建立鏈表的函數(shù),主要用來建立通訊錄。

LinkList creatIncreLink() //創(chuàng)建一個存放通訊錄成員的非遞減有序表,返回頭結(jié)點地址

{ LinkList L=(LinkList)malloc(LEN);? //頭結(jié)點

?L->next=NULL;

?LinkList p;

?int num=1;

?int number;

?double telenum;

?char name[20];

?printf("請輸入學(xué)生學(xué)號、姓名和電話號碼,建立通訊錄,以'-1'為輸入結(jié)束標志\n");

?printf("請輸入學(xué)號 %d:",num);

?scanf("%d",&number);

?printf("請輸入姓名 %d: ",num);

?char temp=getchar();

?gets(name);

?printf("請輸入電話號碼 %d:",num);

?scanf("%lf",&telenum);

?while (number>=0)

?{

? p=(LinkList)malloc(LEN); //新結(jié)點

? p->number=number;

? p->telenum=telenum;

? strcpy(p->name,name);

? insertYouXu(L,p);?????? //有序的插入新結(jié)點

? num++;

? printf("請輸入學(xué)號 %d:",num);

???? scanf("%d",&number);

???? printf("請輸入姓名 %d: ",num);

? temp=getchar();

???? gets(name);

? printf("請輸入電話號碼 %d:",num);

???? scanf("%lf",&telenum);

?} return(L);

}

(3)插入通訊記錄

void insertYouXu(LinkList L,LinkList Elem)

{????????????? //插入一個元素,使原有序表仍為有序

????? LinkList p=L->next;

????? while(p!=NULL && Elem->number>=p->number)

????? {

???????????? if(p->number==Elem->number)

???????????? {?????????????????? printf("重復(fù)輸入??!\n");return;

???????????? }

???????????? p=p->next;

????? }???????? //確定Elem插入的位置

????? if(p==NULL)

????? {

???????????? p=prior(L,p); Elem->next=NULL;p->next=Elem;

????? }

????? else?????? //若為空表,插到頭結(jié)點之后

????? {??????????? p=prior(L,p); Elem->next=p->next; p->next=Elem;

????? }

}

(4)按學(xué)號查詢通訊錄記錄

int searchNum(LinkList L,int n)

{??? // 按學(xué)號查找通訊者

?int flag=0;

?LinkList p=L->next;

?seat=1;

?if(L->next==NULL) printf("該鏈表中沒有元素,查找失敗\n");

?else? {

? while(p !=NULL)

? {

?? if(p->number<=n)

??? if(p->number==n)

????? {?????? flag=1;

?????? printf("要查找的是第%d位通訊者:\n",seat);

?????? printf("??????????????????????? 學(xué)號: %d?? 姓名: %s?? 電話號碼.:%.0f\n",p->number,p->name,p->telenum);

??? }

?? p=p->next;seat++;//!!!!

? }

?}

?return flag;

}

(5)按姓名查詢通訊錄記錄

int searchName(LinkList L,char n[])

{??? // 按姓名查找通訊者

?int flag=0;

?LinkList p=L->next;

?seat=1;

?if(L->next==NULL||L==NULL)

?printf("該通訊錄中沒有元素,查找失敗\n");

?else? {

? while(p !=NULL)

? {

?? if(!strcmp(p->name,n))

?? {

??? flag=1;

??? printf("要查找的是第%d位通訊者:\n",seat);

??? printf("??????????????????????? Number: %d?? Name: %s?? TeleNo.:%.0f\n",p->number,p->name,p->telenum);

?? }

?? p=p->next;seat++;//!!!!!

? }

?} return flag;

}

(6)按序號進行刪除,刪除通訊錄第i個元素

void deleteElem(LinkList L,int i)?????? //從通訊錄中刪除第i個元素

{

LinkList p=L;

?int j=0;

?while (p->next&&j<i-1)

?{

? p = p->next;j++;

?}

if(!(p->next))

{printf("第%d個元素刪除失敗\n",i);return ;}

? //判斷i是否合法,i既不能大于元素的個數(shù),也不能小于等于0

LinkList q = p->next;

p->next = q->next;

free(q); //釋放刪除的結(jié)點

}

(7)按學(xué)號刪除通訊者

int delNum(LinkList L,int n)

{??? // 按學(xué)號刪除通訊者

?int flag=0;

?LinkList p=L->next;

?seat=1;

?if(L->next==NULL)

?printf("該鏈表中沒有元素,刪除失敗\n");

?else? {

? while(p !=NULL)

? {

?? if(p->number<=n)

?? {

??? if(p->number==n)

????? {?????? flag=1;

?????? printf("%d ",p->number);

?????? p=p->next;

???? ??deleteElem(L,seat);

??? }

?? }

?? else {p=p->next;seat++;}

? }

? printf("被刪除\n");

?}

?return flag;

}

(8)按姓名刪除通訊者

int delName(LinkList L,char n[])

{??? // 按姓名刪除通訊者?

?int flag=0;

?LinkList p=L->next;

?seat=1;

?if(L->next==NULL)

?printf("該鏈表中沒有元素,查找失敗\n");

?else {

? while(p !=NULL)

? {

?? if(!strcmp(p->name,n))

?? {

??? flag=1;

??? printf("%s ",p->name);

??? p=p->next;

??? deleteElem(L,seat);

?? }

?? else {p=p->next;seat++;}

? }

? if(flag)printf("被刪除\n");

?} return flag;

}

(9)顯示通訊錄

void printList(LinkList L)

{??? // 打印頭結(jié)點地址為L的通訊錄

?printf("\n????????? ---------------------------------------\n");

?printf("?????????????? 學(xué)號?????? 姓名???? 電話號碼\n");

?printf("????????? ----------------------------------------\n");

?LinkList p=L;

?int n=1;

?if(L==NULL||L->next==NULL) printf("該通訊錄中沒有元素\n");

?else

? while(p->next !=NULL)

? {

?? printf("????????? %2d?? %-9d",n,p->next->number);

?? printf("??? %-5s? %.0f\n",p->next->name,p->next->telenum);

?? p=p->next;

?? n++;

? }

??? printf("????????? ----------------------------------------\n");

?return ;

}

(10)主菜單,main函數(shù)

void main(){

?system("color 1f");??

?LinkList L=NULL;

?printf("\n?????????? ***************** ^@^歡迎使用通訊錄系統(tǒng)***********\n");

?printf("?????????? *?????????????? 1 通訊錄的建立?????????????????? *\n");??????

?printf("?????????? *?????????????? 2 插入通訊記錄?????????????????? *\n");

?printf("?????????? *?????????????? 3 查詢通訊記錄?????????????????? *\n");

?printf("?????????? *?????????????? 4 刪除通訊記錄?????????????????? *\n");

?printf("?????????? *?????????????? 5 顯示通訊錄信息???????????????? *\n");

?printf("?????????? *?????????????? 0 退出管理系統(tǒng)?????????????????? *\n");

?printf("?????????? **************** ^@^歡迎使用通訊錄系統(tǒng)************\n");

?int flag=0;

?int menu;

?printf("請選擇0-5:");

?scanf("%d",&menu);

?while(menu!=0)

?{

?switch(menu) {

? case 1:???? ? {

??? L=creatIncreLink();

??? printf("建立通訊錄:");

??? printList(L);

??? flag=1;

??? break;

????? ? }

? case 2:???? ? {??????? ? if(flag==1)

???????????? ? {int number,telenum;

?????????? char name[20];

?????????? printf("請輸入通訊者的學(xué)號和姓名:\n");

?????????? printf("請輸入學(xué)號: ");

?????????? scanf("%d",&number);

?????????? printf("請輸入姓名: ");

?????????? char temp=getchar();

?????????? gets(name);

????? ?????printf("請輸入電話號碼: ");

?????????? scanf("%d",&telenum);

?????????? LinkList p=(LinkList)malloc(LEN); //新結(jié)點

?????????? p->number=number;

?????????? strcpy(p->name,name);

?????????? p->telenum=telenum;

?????????? insertYouXu(L,p);?????? //有序的插入新結(jié)點

?????????? printf("插入后:");

?????????? printList(L);

???????????? ? }

????????? else printf("\nERROR: 通訊錄還沒有建立,請先建立通訊錄\n");

?? break;

????? ? }

? case 3:{ ???int way,n;

????????? char na[20];

????????? int s;

????????? if(L!=NULL)

???????????? ? {

if(flag) {

?????????????????????????? ? printf("選擇查找方式:\n");

????????????????? printf("?????????????? 1.按學(xué)號?? 2.按姓名");

????????????????? scanf("%d",&way);

????????????????? if(way==1)

?????????????????????????? ? {

????????????????????????????????? ? printf("\n請輸入學(xué)號:");

????????????????????? scanf("%d",&n);

?????????? ???????????s=searchNum(L,n);

????????????????????? if(s==0) printf("無此通訊者,查找失??!\n");

?????????????????????????? ? }

?????????????????????????? ? else if(way==2)

?????????????????????????? ? {??????? printf("\n請輸入姓名:");

????????????????????????????????? ? char temp=getchar();

????????????????????????????????? ? gets(na);

????????????????????????????????? ? s=searchName(L,na);

????????????????????????????????? ? if(s==0) printf("無此通訊者,查找失??!\n");

?????????????????????????? ? }

?????????????????????????? ? else printf("通訊錄中無記錄!\n");

??????????????????? ? }

??????????????????? ? break;

???????????? ? }

???????????? ? else printf("通訊錄中無記錄!\n");break;

????? ? }

? case 4:{

???????????? ? int way;

???????????? ? printf("選擇刪除方式:1.按序號? 2. 按學(xué)號? 3.按姓名 \n");

???????????? ? scanf("%d",&way);

???????????? ? if(way==1)

???????????? ? {

??????????????????? ? int n;

??????????????????? ? printf("請輸入通訊錄序號: ");

??????????????????? ? scanf("%d",&n);

??????????????????? ? printf("刪除后:\n");

??????????????????? ? deleteElem(L,n);

??????????????????? ? printList(L);

???????????? ? }

???????????? ? else if(way==2)

???????????? ? {

??????????????????? ? int n,f;

??????????????????? ? printf("請輸入學(xué)號: ");

??????????????????? ? scanf("%d",&n);

??????????????????? ? f=delNum(L,n);

??????????????????? ? if(f!=0)

??????????????????? ? {

?????????????????????????? ? printf("刪除后:\n");

?????????????????????????? ? printList(L);

??????????????????? ? }

??????????????????? ? else printf("無該學(xué)號,刪除失敗!\n");

???????????? ? }

???????????? ? else if(way==3)

???????????? ? {

??????????????????? ? char na[20];

??????????????????? ? int f;

??????????????????? ? printf("\n請輸入姓名:");

??????????????????? ? char temp=getchar();

??????????????????? ? gets(na);

??????????????????? ? f=delName(L,na);

??????????????????? ? if(f!=0)

??????????????????? ? {

?????????????????????????? ? printf("刪除后:\n");

?????????????????????????? ? printList(L);

??????????????????? ? }

??????????????????? ? else printf("無該學(xué)號,刪除失敗!\n");

???????????? ? }

???????????? ? else printf("ERROR!!\n");

???????????? ? break;

????? ? }

? case 5: {

???????????? ? printf("當前通訊錄內(nèi)容如下:\n");

???????????? ? printList(L);

???????????? ? break;

????? ? }

? case 0: exit(0);

? default:? printf("\n沒有此功能,重新輸入\n");

?}

?printf("選擇功能:");

?scanf("%d",&menu);

}

}

1.5 測試結(jié)果

1.建立通訊錄

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?

2.插入通訊記錄

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?

3.查詢通訊記錄

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?

4.刪除通訊記錄

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?

5.顯示通訊錄信息

學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?

6.退出管理系統(tǒng)

?學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)

?

到了這里,關(guān)于學(xué)生通訊錄管理系統(tǒng)的設(shè)計與實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C++課程設(shè)計,題目:通訊錄管理系統(tǒng)

    ? ? ? ? ? 1、題目。 ? ? ? ? ? ?2、設(shè)計分析。 ? ? ? ? ? ?3、分模塊分析。 ? ? ? ? ? ?4、代碼實現(xiàn)。 一、題目。 通訊錄管理系統(tǒng) 手機通訊錄中的聯(lián)系人的信息既可以存儲在手機中,也可以存儲在手機卡中,也可以同時存儲在兩個位置上(每個位置上的存儲容量為10

    2024年02月11日
    瀏覽(93)
  • C語言課程設(shè)計_通訊錄管理系統(tǒng)

    C語言課程設(shè)計_通訊錄管理系統(tǒng)

    以本班同學(xué)的具體數(shù)據(jù)為背景,設(shè)計一個本班同學(xué)通訊錄。 1)? 通訊錄編輯(添加、刪除)。 2)? 按不同的項進行查找。 3)? 對已存在的通訊錄按不同的項排序。 4)? 將通訊錄寫入文件 5)從文件讀入通訊錄 備注:通訊錄至少應(yīng)該有以下數(shù)據(jù)項: 姓名,地址,電話,郵編,

    2024年02月06日
    瀏覽(93)
  • C語言課程設(shè)計|通訊錄管理系統(tǒng)(含完整代碼)

    目錄 菜單功能 錄入聯(lián)系人信息功能 查看系統(tǒng)中全部信息功能 查看單個信息功能 刪除全部信息功能 刪除單個信息功能 修改信息功能 完整代碼 在長達一個多月的學(xué)習(xí)過程中,終于將C語言學(xué)完,因此專門寫一個C語言課程設(shè)計來檢驗這一個多月的學(xué)習(xí)成果,由于寫的比較急,

    2024年02月01日
    瀏覽(91)
  • Python大學(xué)計算機程序設(shè)計-通訊錄管理系統(tǒng)

    Python大學(xué)計算機程序設(shè)計-通訊錄管理系統(tǒng)

    摘 ??要 通訊錄是每一款手機必備的一個應(yīng)用,它擁有的功能非常簡單,大致有添加聯(lián)系人,修改聯(lián)系人信息,刪除聯(lián)系人,查找聯(lián)系人等功能,本次課程設(shè)計我使用python和python中豐富的第三方庫。在通訊錄的設(shè)計中,我主要采用了python的tkinter模塊和os模塊,實現(xiàn)了代碼的可

    2024年02月08日
    瀏覽(18)
  • C語言期末課程設(shè)計—【通訊錄管理系統(tǒng)】讓課程設(shè)計不再是痛苦

    C語言期末課程設(shè)計—【通訊錄管理系統(tǒng)】讓課程設(shè)計不再是痛苦

    目錄 摘要 第一章 緒論 1.1項目意義 1.2通訊錄功能 第二章?詳細設(shè)計與實現(xiàn)? 2.1 Contact程序運行流程圖 2.2?AddContact(增加)函數(shù)流程圖 2.3?DelContact(刪除)函數(shù)流程圖 2.4?SearchConact(查找)函數(shù)流程圖 2.5?ModifyContact(修改)函數(shù)流程圖 2.6?SortContact(排序)函數(shù)流程圖 第三章

    2024年02月09日
    瀏覽(18)
  • 通訊錄管理系統(tǒng)

    通訊錄管理系統(tǒng)

    作者:獅子也瘋狂 專欄:《項目集錦》 堅持做好每一步,幸運之神自然會駕凌在你的身上 該項目是用于日常生活中記錄聯(lián)系人信息的一款智能小工具。實現(xiàn)了對聯(lián)系人的姓名、年齡、性別、電話號碼、住址的添加及修改、查找、刪除、排序等功能。該項目是以 Windows 控制臺

    2024年02月05日
    瀏覽(98)
  • 通訊錄管理系統(tǒng) C++

    通訊錄管理系統(tǒng) C++

    目錄 一、前言 二、設(shè)計要求 ?三、概要設(shè)計 3.1 主界面設(shè)計 3.1.1 設(shè)計圖 3.1.2設(shè)計代碼 3.2 存儲結(jié)構(gòu)設(shè)計 3.3 系統(tǒng)功能設(shè)計 3.3.1 系統(tǒng)流程圖?編輯 3.3.2 系統(tǒng)子程序及功能介紹? 四、詳細設(shè)計 4.1 頭文件 4.2?數(shù)據(jù)定義 4.3 系統(tǒng)主要子程序詳細設(shè)計 4.3.1 主函數(shù) 4.3.2 添加聯(lián)系人 4.3

    2024年02月09日
    瀏覽(100)
  • 簡單通訊錄管理系統(tǒng)(Java)

    簡單通訊錄管理系統(tǒng)(Java)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 ? ? 任務(wù) : 在之前的練習(xí)任務(wù)中,我們已經(jīng)實現(xiàn)了通訊錄的增刪改查等基本功能,主要實現(xiàn)一個通訊錄的菜單管理功能。 仔細閱讀右側(cè)編輯區(qū)內(nèi)給出的代碼框架及注釋,在 Begin-End 中實現(xiàn)通訊錄菜單管

    2024年02月09日
    瀏覽(97)
  • 通訊錄管理系統(tǒng)C++代碼

    通訊錄管理系統(tǒng)C++代碼

    目錄 通訊錄管理系統(tǒng)(課程設(shè)計) 一、系統(tǒng)中需要實現(xiàn)的功能 二、創(chuàng)建項目 三、實現(xiàn)功能 1、菜單功能 ?2.添加聯(lián)系人功能 ?3.顯示聯(lián)系人功能 4.刪除聯(lián)系人? 5 .查找聯(lián)系人功能 ?6.修改聯(lián)系人功能 ?7.清空聯(lián)系人功能 ?8.退出功能 對于通訊錄管理系統(tǒng)而言,不需要太復(fù)雜的

    2024年02月09日
    瀏覽(86)
  • 【C語言】實現(xiàn)通訊錄管理系統(tǒng)

    【C語言】實現(xiàn)通訊錄管理系統(tǒng)

    大家好,我是蘇貝,本篇博客帶大家實現(xiàn)通訊錄,如果你覺得我寫的還不錯的話,可以給我一個贊??嗎,感謝?? 本文將使用C語言來實現(xiàn)通訊錄管理系統(tǒng),該通訊錄包括若干聯(lián)系人,和每個聯(lián)系人的姓名、年齡、性別、電話、地址。此通訊錄的功能包括:增加聯(lián)系人信息,

    2024年02月08日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包