當前位置:首頁 » 編程語言 » c語言通訊錄實驗報告

c語言通訊錄實驗報告

發布時間: 2022-11-30 07:45:35

① 【急求】c語言程序設計通訊錄的報告!

說個地址,我可以發給你

② C語言通訊錄實踐報告書怎麼寫啊求救!~~~

#include "stdio.h"
#include"string.h"
#include"malloc.h"
typedef struct node
{char name[20];
char ad[50];
char phone[20];
struct node *next;
}slink;

//通訊錄的建立
slink * creslink(int n)
{slink *head,*p,*s;
int i;
if(n<1) return NULL;
p=head=(slink *)malloc(sizeof(slink));
printf("請依次輸入聯系人的姓名、地址和電話:\n");
for(i=1;i<=n;i++)
{s=(slink *)malloc(sizeof(slink));
fflush(stdin);
scanf("%s%s%s",&s->name,&s->ad,&s->phone);
p->next=s;
p=s;
}
p->next=NULL;
printf("通訊錄已保存\n");
printf("按任意鍵繼續...\n");
getch();
return head;
}

//通訊者的插入
int insert(slink *head,char n[],slink *x)
{slink *p,*q;
p=head;
while(p->next!=NULL)
{p=p->next;
if(strcmp(p->name,n)==0)
{q=(slink *)malloc(sizeof(slink));
strcpy(q->name,x->name);
strcpy(q->ad,x->ad);
strcpy(q->phone,x->phone);
q->next=p->next;
p->next=q;
printf("插入成功\n");
printf("按任意鍵繼續...\n");
getch();
return 1;}
}
printf("所要插入的位置不存在\n");
printf("按任意鍵繼續...\n");
getch();
return 0;
}

//通訊者的刪除
int delete(slink *head,char n[])
{slink *p,*q;
p=head;
while(p->next!=NULL)
{q=p;
p=p->next;
if(strcmp(p->name,n)==0)
{q->next=q->next->next;
printf("刪除成功!\n");
printf("按任意鍵繼續...\n");
getch();
return 1;}
}
return 0;
}

//通訊者的查詢
int search(slink *head,char n[])
{slink *p;
p=head;
while(p->next!=NULL)
{p=p->next;
if(strcmp(p->name,n)==0)
{printf("姓名 地址 電話\n");
printf("%-20s%-30s%-20s \n",p->name,p->ad,p->phone);
printf("查詢成功\n");
printf("按任意鍵繼續...\n");
getch();
return 1;
}
}
printf("通訊錄中沒有此聯系人!\n");
printf("按任意鍵繼續...\n");
getch();
return 0;
}

//通訊錄表的輸出
int output(slink *head)
{slink *p;
if(head->next==NULL)
{printf("通訊錄空!\n");
printf("按任意鍵繼續...\n");
getch();
return 0;}
p=head->next;
printf("姓名 地址 電話\n");
while(p!=NULL)
{printf("%-20s%-30s%-20s\n",p->name,p->ad,p->phone);
p=p->next;}
printf("輸出成功\n");
printf("按任意鍵繼續...\n");
getch();
return 1;
}

int main()
{int c,n;
char s[50];
slink *head,p;
loop:{printf("-----****************-----\n");
printf("-----****************-----\n");
printf("1 通訊錄的建立 \n2 通訊者的插入 \n3 通訊者的刪除 \n4 通訊者的查詢 \n5 通訊錄表的輸出 \n6 退出\n");
for(c=0;c<5;c++)
printf(" *\n");
printf("請選擇操作(1~6):\n");
fflush(stdin);
c=7;
scanf("%d",&c);
switch(c)
{case 1:printf("請輸入聯系人的個數:\n");
fflush(stdin);
scanf("%d",&n);
head=creslink(n);
goto loop;
case 2:printf("請輸入原位置處聯系人的姓名:\n");
fflush(stdin);
scanf("%s",s);
printf("請依次輸入要插入聯系人的姓名、地址和電話:\n");
fflush(stdin);
scanf("%s%s%s",p.name,p.ad,p.phone);
insert(head,s,&p);
goto loop;
case 3:printf("請依次輸入要刪除聯系人的姓名:\n");
fflush(stdin);
scanf("%s",s);
delete(head,s);
goto loop;
case 4:printf("請依次輸入要查詢聯系人的姓名:\n");
fflush(stdin);
scanf("%s",s);
search(head,s);
goto loop;
case 5:output(head);
goto loop;
case 6:return 1;
default:printf("輸入有誤!\n");
printf("按任意鍵繼續...\n");
getch();
goto loop;
}
}
return 0;
}

③ c語言程序設計實驗報告;學生通訊錄管理系統80~100行,不要vc,要c環境的。

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
int number;
getch();
system("cls");
printf("\n\n\n");
printf(" |***** 班級學生管理系統 *****|\n");
printf(" |............................|\n");
printf(" |.....請選擇菜單序號(0~6)....|\n");
printf(" | 1----打開文件 |\n");
printf(" | 2----保存文件 |\n");
printf(" | 3----編輯數據 |\n");
printf(" | 4----顯示數據 |\n");
printf(" | 5----數據計算 |\n");
printf(" | 6----程序說明 |\n");
printf(" | 0----退出系統 |\n");
printf(" |............................|\n");
printf("\t\t請選擇序號:");
scanf("%d",&number);
if(number==1)
printf("打開文件!\n");
else
if(number==2)
printf("保存文件!\n");
else
if(number==3)
{
system("cls");
printf("\n\n\n");
printf(" |***** 編輯子菜單 *****|\n");
printf(" |..............................|\n");
printf(" | 請選擇菜單序號(0~3) |\n");
printf(" |..............................|\n");
printf(" | 1----增加記錄 |\n");
printf(" | 2----刪除記錄 |\n");
printf(" | 3----修改記錄 |\n");
printf(" | 0----返回上級菜單 |\n");
printf(" |..............................|\n");
}
else
if(number==4)
{
system("cls");
printf("\n\n\n");
printf(" |***** 顯示子菜單 *****|\n");
printf(" |..............................|\n");
printf(" | 請選擇菜單序號(0~4) |\n");
printf(" |..............................|\n");
printf(" | 1----查看選定記錄 |\n");
printf(" | 2----顯示全部記錄 |\n");
printf(" | 3----顯示排序記錄 |\n");
printf(" | 4----顯示不及格記錄 |\n");
printf(" | 0----返回上級菜單 |\n");
printf(" |..............................|\n");
}
else
if(number==5)
{
system("cls");
printf("\n\n\n");
printf(" |***** 計運算元菜單 *****|\n");
printf(" |..............................|\n");
printf(" | 請選擇菜單序號(0~3) |\n");
printf(" |..............................|\n");
printf(" | 1----計算總成績和平均成績|\n");
printf(" | 2----計算最高分 |\n");
printf(" | 3----計算最低分 |\n");
printf(" | 0----返回上級菜單 |\n");
printf(" |..............................|\n");
}
else
if(number==6)
printf("程序說明!\n");
else
if(number==0)
printf("退出程序!\n");
else
printf("輸入錯誤!\n");
}

④ c語言通訊錄管理設計的實訓總結

我於 年 月 日參加了為期 天的C語言開發實訓,實訓課題為《通訊錄管理設計》。在本次實訓過程中,我們小組 人通過精誠合作,共通努力,在 老師的耐心指導下,圓滿完成實訓任務。
通過本次實訓,鞏固了平時所學的c語言基礎知識,對C語言系統有了一個比較直觀的了解和應用。特別是在解決問題的過程當中,我學到了書本上學不到的知識,獲取寶貴的開發經驗。(據一兩個例子說明)
藉此機會我衷心地感謝知道老師在整個實訓過程中給予我的幫助和指導,沒有老師的孜孜不倦,就沒有我對於這門學科的深入理解;同時還要感謝小組成員在實訓過程中對我的寬容和幫助,沒有我們的共通努力,就沒有實訓的完美收局。
總的來說,本次實訓給我啟發很大,我希望以後還有機會和同學們參加更多的相關實訓,藉以提升自己的專業能力和實戰能力,完善理論知識!

⑤ 用C語言寫一個通訊錄

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
typedef struct { //通訊錄結點類型
char num[5]; //編號
char name[9]; //姓名
char sex[3]; //性別
char phone[13]; //電話
char addr[31]; //地址
} DataType;
typedef struct node { //結點類型定義
DataType data; //結點數據域
struct node *next; //結點指針域
} ListNode;
typedef ListNode *LinkList;
LinkList head;
ListNode *p;
//函數說明
int menu_select();
LinkList CreateList(void);
void InsertNode(LinkList head,ListNode *p);
ListNode *ListFind(LinkList head);
void DelNode(LinkList head);
void printList(LinkList head);
//主函數
void main()
{
for( ; ; ){
switch(menu_select( ) )
{
case 1:
printf("**********************************\n");
printf("* 通 訊 錄 鏈 表 的 建 立 *\n");
printf("**********************************\n");
head=CreateList( );
break;
case 2:
printf("**********************************\n");
printf("* 通 訊 者 信 息 的 添 加 *\n");
printf("**********************************\n");
printf("編號(4) 姓名(8) 性別(3) 電話(11) 地址(31)\n");
printf("************************************* \n");
p=(ListNode *)malloc(sizeof(ListNode)); //申請新結點
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,
p->data.phone,p->data.addr);
InsertNode(head,p);
break;
case 3:
printf("***********************************\n");
printf("* 通 訊 錄 信 息 的 查 詢 *\n");
printf("***********************************\n");
p=ListFind(head);
if (p!=NULL) {
printf("編號 姓 名 性別 聯系電話 地址 \n");
printf("--------------------------------------------------\n");
printf("%s,%s,%s,%s,%s\n",p->data.num,p->data.name,
p->data.sex,p->data.phone,p->data.addr);
printf("---------------------------------------------------\n");
}
else
printf("沒有查到要查詢的通訊者!\n");
break;
case 4:
printf("***********************************\n");
printf("* 通 訊 錄 信 息 的 刪 除 *\n");
printf("***********************************\n");
DelNode(head); //刪除結點
break;
case 5:
printf("************************************\n");
printf("* 通 訊 錄 鏈 表 的 輸 出 *\n");
printf("************************************\n");
printList(head);
break;
case 0:
printf("\t 再 見! \n");
return;
}
}
}
/*******************/
/* 菜單選擇函數程序 */
/***************************/
int menu_select( )
{
int sn;
printf(" 通訊錄管理系統 \n");
printf("===================\n");
printf(" 1.通訊鏈表的建立\n");
printf(" 2.通訊者結點的插入\n");
printf(" 3.通訊者結點的查詢\n");
printf(" 4.通訊者結點的刪除\n");
printf(" 5.通訊錄鏈表的輸出\n");
printf(" 0.退出管理系統\n");
printf("==========================\n");
printf(" 請 選 擇 0-5: ");
for( ; ; )
{
scanf("%d",&sn);
if (sn<0||sn>5)
printf("\n\t輸入錯誤,重選0-5:");
else
break;
}
return sn;
}
/**************************/
/*用尾插法建立通訊錄鏈表函數 */
/**************************/
LinkList CreateList(void)
{//尾插法建立帶頭結點的通訊錄鏈表演算法
LinkList head=(ListNode *)malloc(sizeof(ListNode)); //申請頭結點
ListNode *p,*rear;
int flag=0; //結束標志置0
rear=head; //尾指針初始指向頭結點
while (flag==0)
{ p=(ListNode *)malloc(sizeof(ListNode)); //申新結點
printf("編號(4) 姓名(8) 性別 電話(11) 地址(31)\n");
printf("--------------------------------------------------------------------------------------\n");
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,
p->data.addr);
rear->next=p; //新結點連接到尾結點之後
rear=p; //尾指針指向新結點
printf("結束建表嗎?(1/0):");
scanf("%d",&flag);
}
rear->next=NULL; //終端結點指針置空
return head; //返回鏈表頭指針
}
/******************************/
/*在通訊錄鏈表head中插入結點 */
/******************************/
void InsertNode(LinkList head,ListNode *p)
{
ListNode *p1,*p2;
p1=head;
p2=p1->next;
while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0)
{
p1=p2; //p1指向剛訪問過的結點
p2=p2->next; //p2指向表的下一個結點
}
p1->next=p; //插入p所指向的結點
p->next=p2; //連接表中剩餘的結點
}
/******************************************/
/* 有序通訊錄鏈表的查找 */
/******************************************/
ListNode *ListFind(LinkList head)
{// 有序通訊錄鏈表上的查找
ListNode *p;
char num[5];
char name[9];
int xz;
printf("==================\n");
printf(" 1. 按編號查詢 \n");
printf(" 2. 按姓名查詢 \n");
printf("==================\n");
printf(" 請 選 擇: ");
p=head->next; //假定通訊 錄表帶頭結點
scanf("%d",&xz);
if (xz==1) {
printf("請輸入要查找者的編號:");
scanf("%s",num);
while (p&&strcmp(p->data.num,num)<0)
p=p->next;
if ((p==NULL)||strcmp(p->data.num,num))0;
p=NULL; //沒有查到要查找的通訊者
}
else
if (xz==2) {
printf(" 請輸入要查找者的姓名:");
scanf("%s",name);
while(p&&strcmp(p->data.name,name)!=0)
p=p->next;
}
return p;
}
/*******************************/
/* 通訊錄鏈表上的結點刪除 */
/*********************************/
void DelNode(LinkList head)
{
char jx;
ListNode *p,*q;
p=ListFind(head); //調用查找函數
if (p==NULL) {
printf("沒有查到要刪除的通訊者!\n");
return;
}
printf("真的要刪除該結點嗎?(y/n):");
scanf("%c",&jx);
if (jx=='y'||jx=='Y') {
q=head;
while ((q!=NULL) &&(q->next!=p))
q=q->next;
q->next=p->next; //刪除結點
free(p); //釋放被刪結點空間
printf("通訊者已被刪除!\n");
}
}
/**********************************/
/* 通訊錄鏈表的輸出函數 */
/**********************************/
void printList(LinkList head)
{
ListNode *p;
p=head->next;
printf("編號 姓 名 性別 聯系電話 地址 \n");
printf("--------------------------------------------------------------------------------\n");
while (p!=NULL)
{ printf("%s,%s,%s,%s,%s\n",p->data.num,p->data.name,p->data.sex,
p->data.phone,p->data.addr);
printf("---------------------------------------------------------------------------------\n");
p=p->next; //後移一個結點
}
}

⑥ 實驗內容:c語言編寫通訊錄管理系統 通訊錄中的聯系人包含以下信息項:姓名、聯系電話、電子郵箱。

用雅奇990,不用寫代碼,自動編程

⑦ C語言程序設計:通訊錄程序設計

#include "stdlib.h"
#include "string.h"
#include "conio.h"
#include "stdio.h"
#include "dos.h"
FILE *fp;
int i; //i是全局變數 可代替length
struct address
{ char postnum[10];
char a[40]; //家庭地址
};
struct birthday
{ int year;
int month;
int day;
};
struct ffriend
{ int num; //序號
char name[20];
char sex;
char telephone[13];
struct birthday birthday;
struct address address;

}
friends[50];

void Load()
{
int j;
long k;
fp=fopen("friend.txt","a+"); //打開文件friend.txt
if(fp!=NULL)
{
for(i=1;i<50;i++)

{
j=fgetc(fp);
if(j==EOF) //判斷是否到了文件尾
return;
k=i-1;
fseek(fp,k*sizeof(struct ffriend),SEEK_SET);
fread(&friends[i],sizeof(struct ffriend),1,fp); //從文件中讀取一條記錄
}

}
else
{
fp=fopen("friend.txt","w");
i=1;
}

}
void Show(int j)
{
// friends[j].num=i;
printf("\n\n\t編號-Nnumber: %3d",friends[j].num);
printf("\n\t姓名-Name:%-20s",friends[j].name);
printf("\n\t性別-Sex:%c",friends[j].sex);
printf("\n\t聯系電話-Telephone:%-13s",friends[j].telephone);
printf("\n\t出生日期-Birthday:%4d-%2d-%3d",friends[j].birthday.year,friends[j].birthday.month,friends[j].birthday.day);
printf("\n\t郵編-Postnum:%-10s",friends[j].address.postnum);
printf("\n\t通信地址-address:%-40s",friends[j].address.a);
}
void Append(int j)
{
fflush(stdin); //區內清除文件緩沖區,文件以寫方式打開時將緩沖容寫入文件
//stdin是一個標准FILE*(文件型指針)指向通常是用鍵盤的輸入的輸入流
friends[j].num=j;
printf("\n\t\t\t序號-Number:%d",j);
printf("\n\t\t\t姓名-Name:");
scanf("%s",friends[j].name);
fflush(stdin); //為什麼沒有fflush(stdin); 的效果會自動跳過呢?
printf("\t\t\t性別-Sex(m/w):"); //為什麼輸入漢字男女也會自動跳過聯系電話呢
scanf("%c",&friends[j].sex);
printf("\t\t\t聯系電話-telephone:");
scanf("%s",friends[j].telephone);
printf("\t出生日期-birthday");
printf("\n\t\t\t年份-year:");
scanf("%d",&friends[j].birthday.year);
printf("\t\t\t月份-month:");
scanf("%d",&friends[j].birthday.month);
printf("\t\t\t日-day:");
scanf("%d",&friends[j].birthday.day);
printf("\t\t\t郵編-Postnumber:");
scanf("%s",friends[j].address.postnum);
printf("\t\t\t通信地址-Address:");
scanf("%s",friends[j].address.a);
getchar();
}
void Delete()
{
int k;
printf("\n\tDelete 序號-Number:");
scanf("%d",&k);
if(k<=i)
{
for(int j=k;j<i+1;j++) /*插入位置後的元素順序後移*/
{
strcpy(friends[j].name,friends[j+1].name); /*交換元素內容*/
friends[j].sex=friends[j+1].sex;
strcpy(friends[j].telephone,friends[j+1].telephone);
friends[j].birthday.year=friends[j+1].birthday.year;
friends[j].birthday.month=friends[j+1].birthday.month;
friends[j].birthday.day=friends[j+1].birthday.day;
strcpy(friends[j].address.postnum,friends[j+1].address.postnum);
strcpy(friends[j].address.a,friends[j+1].address.a);

}
i--;
}
else
{
printf("輸入的序號太大!");
}
}
void Modify(int j)
{
Append(j);
}
void Save()
{
int j;
fp=fopen("friend.txt","w");
for(j=1;j<=i;j++)
{
fwrite(&friends[j],sizeof(struct ffriend),1,fp);
}
fclose(fp);

}

void main()
{
int j;
char grade;
char searchname[10];
Load();
i--;
do
{
printf("\t\t\t\t簡易通訊錄\n\n");
printf("功能選擇(Function choose)\n");
printf("\1A.讀取(Read)\n");
printf("\2B.增添(Append)\n");
printf("\6C.插入(Insert)\n");
printf("\5D.刪除(Delete)\n");
printf("\5E.查詢(Search)\n");
printf("\6F.修改(Modify)\n");
printf("\2G.保存(Save)\n");
printf("\1H.退出(Quit)\n");
printf("請選擇(Choice)\n注:輸入A~H的大寫字母\n");
scanf("%c",&grade);
switch(grade)
//加個大寫和小寫 都可以啊
{
case 'A': j=1; //顯示功能
while(getchar()!=0x1b&&j<=i) //增添按Esc鍵退出
{
Show(j++);
printf("\n請按回車鍵繼續!");
}
if(j-1<1)
{
printf("\n\t空文檔,無任何記錄-Empty Note\n");
printf("\n請按回車鍵繼續!");
getchar();

}
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'B': //增加功能
while(i<=50) //增加按ESC鍵退出的功能
{
i++;
Append(i);
printf("\t是否繼續增加?y/n");
//修改 加上else if 其他就跳出或強制列印出出錯
char a=getchar();
if(a=='n'||a=='N')
break;
}
if(i==51)
printf("\n\t文檔已滿,無法增加記錄-note full");
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
getchar();
break;
case 'C':
int k;
printf("\n\t輸入要插入的位置:");
scanf("%d",&k);
j=i+1;
friends[j].num=j;
for(j;j>k;j--) //插入功能
{
strcpy(friends[j].name,friends[j-1].name); //數據後移
friends[j].sex=friends[j-1].sex;
strcpy(friends[j].telephone,friends[j-1].telephone);
friends[j].birthday.year=friends[j-1].birthday.year;
friends[j].birthday.month=friends[j-1].birthday.month;
friends[j].birthday.day=friends[j-1].birthday.day;
strcpy(friends[j].address.postnum,friends[j-1].address.postnum);
strcpy(friends[j].address.a,friends[j-1].address.a);

}
Append(k);
i++;
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'D': //刪除功能 //增添隨意刪除多條記錄的功能
Delete();
if(i<1)
printf("\n沒有記錄-No records\n");
printf("\n請按回車鍵繼續!");
getchar();
getchar();
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'E': //查詢功能
printf("\n\t請輸入要查詢記錄的相關姓名:"); //增添查詢按列號的
scanf("%s",searchname);
for(j=1;j<=i;j++)
{
if(strcmp(searchname,friends[j].name)==0) //比較字元串
{
Show(j);
break;
}
}
if(i<1)
{
printf("\n 沒有您所查詢的記錄-No records");
printf("\n 請按回車鍵繼續!");
getchar();
}
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
getchar();
break;
case 'F': //修改功能 / /增添按序列號查詢
printf("\n\t請輸入要修改記錄的相關姓名:");
gets(searchname);
scanf("%s",searchname);
for(j=1;j<=i;j++)
{
if(strcmp(searchname,friends[j].name)==0) //比較字元串
{
Modify(j);
// getchar(); //加個輸出確定修改嗎
}
}
if(i<1) //修改功能
{ printf("\n 沒有您所要修改的記錄-No records");
printf("\n 請按回車鍵繼續!");
getchar();
getchar();
}
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'G':
Save(); //存檔功能
getchar();
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;

case 'H': //退出功能
char x;
printf("是否保存?yes/no\n");
scanf("%s",&x);
//getchar();
// getchar();
if(x=='y')
{
Save();
exit(0);
}
else
exit(0);

default:
printf("\n\t輸入有誤,請輸入正確的序列號!");
printf("\n請按回車鍵繼續!");
getchar();
printf("\n\t\t\t\t\t\t\t此次操作結束");
printf("\n\t------------------------------------------------------------\t\t\n");
}
}while(1);
}

⑧ 用c語言程序設計一個學生通訊錄系統

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct record
{
char name[20]; //姓名
char phone[12]; //電話
char adress[50]; //地址
char postcode[8]; //郵政編碼
char e_mail[20]; //電子郵件。
}student[100]; //假設最大數為100.
//定義全局變數num,表示已經輸入的人數 。
int num; //這里使用數組解決通訊錄的問題,實際上使用鏈表更好。
int menu_select()
{
char s[80];
int a;/*定義整形變數*/
system("cls");
printf("\t\t***********歡迎進入通訊管理界面********\n\n");
printf("\t\t\t0. 輸入記錄\n");
printf("\t\t\t1. 顯示記錄\n");
printf("\t\t\t2. 按姓名查找\n");
printf("\t\t\t3. 按電話號碼查找\n");
printf("\t\t\t4. 插入記錄 \n");
printf("\t\t\t5. 按姓名排序\n");
printf("\t\t\t6. 刪除記錄\n");
printf("\t\t\t7. Quit\n");
printf("\t\t***********************************************\n\n");
do{
printf("Enter you choice(0~7):");
scanf("%s",s);
a=atoi(s);
}
while (a<0 || a>7);
return a;
}
int adser()
{
printf("\t\t\t**************** 請輸入用戶信息 ****************\n");
printf("\t\t\t輸入姓名:\n");
scanf("%s",student[num].name);
printf("\t\t\t輸入電話號碼:\n");
scanf("%s",student[num].phone);
printf("\t\t\t輸入地址:\n");
scanf("%s",student[num].adress);
printf("\t\t\t輸入郵編:\n");
scanf("%s",student[num].postcode);
printf("\t\t\t輸入e-mail:\n");
scanf("%s",student[num].e_mail);
num++;
printf("\t\t\t是否繼續添加?(Y/N):\n");
if(getch()=='y' || getch()=='Y')
adser();
return(0);
}
void list()
{
int i;
system("cls");
if(num!=0)
{
printf("\t\t\t*************** 以下為通訊錄所有信息************\n");
for (i=0;i<num;i++)
{
printf("\t\t\t姓名:%s\n",student[i].name);
printf("\t\t\t電話:%s\n",student[i].phone);
printf("\t\t\t地址:%s\n",student[i].adress);
printf("\t\t\t郵編:%s\n",student[i].postcode);
printf("\t\t\te-mail:%s\n",student[i].e_mail);
if(i+1<num)
{
system("pause");
}
}
printf("\t\t\t************************************************\n");
}
else
printf("\t\t\t通訊錄中無任何紀錄\n");
printf("\t\t\t按任意鍵返回主菜單:\n");
getch(); //這里是無回顯的輸入字元,你輸入的字元不會顯示在屏幕上。
return;
}
int searchbyname()
{
int mark=0;
int i;
printf("\t\t\t***************** 按姓名查找 *******************\n");
char name[20];
printf("\t\t\t請輸入姓名:\n");
scanf("%s",name);
for(i=0;i<num;i++)
{
if (strcmp(student[i].name,name)==0)
{
printf("\t\t\t************* 以下是您查找的用戶信息 ***********\n");
printf("\t\t\t姓名: %s",student[i].name);
printf("\t\t\t電話: %s",student[i].phone);
printf("\t\t\t地址: %s",student[i].adress);
printf("\t\t\te-mail:%s",student[i].e_mail);
printf("\t\t\t************************************************\n");
mark++;
if((i+1)<num)
{
printf("\t\t\t是否繼續查找相同名字的用戶信息:(y/n)\n");
if(getch()=='y' || getch()=='Y')
{
continue;
}
else
return(0);
}
else
{
printf("\t\t\t按任意鍵返回主菜單");
getch();
return(0);
}
}
}
if(mark == 0)
{
printf("\t\t\t沒有相同姓名的用戶紀錄\n");
printf("\t\t\t按任意鍵返回主菜單\n");
getch();
return(0);
}
return 0;
}
int searchbyphone()
{
int mark=0;
int i;
printf("\t\t\t****************** 按電話查找 ******************\n");
char phone[10];
printf("\t\t\t請輸入電話號碼:\n");
scanf("%s",phone);
for(i=0;i<num;i++)
{
if (strcmp(student[i].phone,phone)==0)
{
printf("\t\t\t************** 以下是您查找的用戶信息 **********\n");
printf("\t\t\t姓名: %s",student[i].name);
printf("\t\t\t電話: %s",student[i].phone);
printf("\t\t\t地址: %s",student[i].adress);
printf("\t\t\te-mail:%s",student[i].e_mail);
printf("\t\t\t************************************************\n");
printf("\t\t\t按任意鍵返回主菜單\n");
mark++;
getch();
return(0);
}
}
if (mark==0)
{
printf("\t\t\t沒有改用戶的信息\n");
printf("\t\t\t按任意鍵返回主菜單\n");
getch();
return(0);
}
return(0);
}
void deletebyphone()
{
int i,j;
int deletemark=0;
char phone[20];
printf("\t\t\t請輸入要刪除用戶電話號碼:\n");
scanf("%s",phone);
if(num==0)
{
printf("\t\t\t對不起,文件中無任何紀錄\n");
printf("\t\t\t按任意鍵返回主菜單\n");
getch();
return;
}
for (i=0;i<num;i++)
{
if (strcmp(student[i].phone,phone)==0)
{
printf("\t\t\t以下是您要刪除的用戶紀錄:\n");
printf("\t\t\t姓名: %s",student[i].name);
printf("\t\t\t電話: %s",student[i].phone);
printf("\t\t\t地址: %s",student[i].adress);
printf("\t\t\te-mail:%s",student[i].e_mail);
printf("\t\t\t是否刪除?(y/n)");
if (getch()=='y' || getch()=='Y')
{
for (j=i;j<num-1;j++)
student[j]=student[j+1];
num--;
deletemark++;
printf("\t\t\t刪除成功");
printf("\t\t\t是否繼續刪除?(y/n)");
if (getch()=='y' || getch()=='Y')
deletebyphone();
return;
}
else
return;
}
continue;
}
if (deletemark==0)
{
printf("\t\t\t沒有該用戶的紀錄");
printf("\t\t\t是否繼續刪除?(y/n)");
if(getch()=='y' || getch()=='Y')
deletebyphone();
return;
}
return;
}
void deletebyname()
{
int a=0;
int findmark=0;
int j;
int deletemark=0;
int i;
char name[20];
printf("\t\t\t請輸入要刪除用戶姓名:\n");
scanf("%s",name);
for (i=a;i<num;i++)
{
if(strcmp(student[i].name,name)==0)
{
printf("\t\t\t以下是您要刪除的用戶紀錄:");
findmark++;
printf("\t\t\t________________________________");
printf("\t\t\t姓名: %s",student[i].name);
printf("\t\t\t電話: %s",student[i].phone);
printf("\t\t\t地址: %s",student[i].adress);
printf("\t\t\te-mail:%s",student[i].e_mail);
printf("\t\t\t________________________________");
printf("\t\t\t是否刪除?(y/n)");
if (getch()=='y' || getch() == 'Y')
{
for(j=i;j<num-1;j++)
student[j]=student[j+1];
num--;
deletemark++;
printf("\t\t\t刪除成功");
if((i+1)<num)
{
printf("\t\t\t是否繼續刪除相同姓名的用戶信息?(y/n)");
if (getch()=='y')
{
a=i;
continue;
}
}
printf("\t\t\t是否繼續刪除?(y/n)");
if (getch()=='y')
deletebyname();
return;
}
if((i+1)<num)
{
printf("\t\t\t是否繼續刪除相同姓名的用戶信息?(y/n)");
if (getch()=='y' || getch() == 'Y')
{
a=i;
continue;
}
}
}
else
continue;
}
if ((deletemark==0)&&(findmark==0))
{
printf("\t\t\t沒有該用戶的紀錄");
printf("\t\t\t是否繼續刪除?(y/n)");
if(getch()=='y' || getch() == 'Y')
deletebyphone();
return;
}
else if (findmark!=0)
{
printf("\t\t\t沒有重名信息");
printf("\t\t\t沒有該用戶的紀錄");
printf("\t\t\t是否繼續刪除?(y/n)");
if(getch()=='y' || getch() == 'Y')
deletebyphone();
return;
}
}
int dele()
{
char choic;
printf("\t\t\t1-按電話號碼刪除 2-按姓名刪除");
printf("\t\t\t請選擇:");
choic=getch();
switch (choic)
{
case '1':deletebyphone();break;
case '2':deletebyname();break;
}
return(0);
}
int sortbyname() //按姓名進行排序
{
int i,j;
struct record tmp;
for (i=1;i<num;i++)
{
if(strcmp(student[i].name,student[i-1].name)<0)
{
tmp=student[i];
j=i-1;
do
{
student[j+1]=student[j];
j--;
}while ((strcmp(tmp.name,student[j].name)<0&&j>=0));
student[j+1]=tmp;
}
}
printf("\t\t\t排序成功,是否顯示?(y/n)");
if (getch()=='y')
list();
return(0);
}
int main()
{
printf("\t\t************************************************\n");
printf("\t\t********welcome to TONGXUNLU *******************\n");
printf("\t\t###########code by XXXXX ###################\n");
printf("\t\t*************************************************\n");
printf("按任意鍵進入主菜單\n");
getch();
int selectnum;
while(1)
{
selectnum = menu_select();
switch(selectnum)
{
case 0:
{
adser();
break;
}
case 1:
{
list();
break;
}
case 2:
{
searchbyname();
break;
}
case 3:
{
searchbyphone();
break;
}
case 4:
{
adser(); //這里插入,應該能指定位置,不過意義不大,所以和添加記錄一樣了。
break;
}
case 5:
{
sortbyname();
break;
}
case 6:
{
dele();
break;
}
case 7:
{
printf("BYE BYE!\n");
system("pause");
getchar();
exit(0);
}
}
}
getchar();
return 0;
}

熱點內容
龍之谷配置卡怎麼辦 發布:2023-02-02 05:46:01 瀏覽:600
安卓手游掛哪裡賣 發布:2023-02-02 05:44:42 瀏覽:299
二級access資料庫程序設計 發布:2023-02-02 05:43:21 瀏覽:210
cs文件編譯成dll文件 發布:2023-02-02 05:43:14 瀏覽:70
sdk編譯qemu鏡像 發布:2023-02-02 05:43:14 瀏覽:85
zip分段壓縮 發布:2023-02-02 05:40:23 瀏覽:607
java正則替換 發布:2023-02-02 05:40:14 瀏覽:510
晶元如何編程 發布:2023-02-02 05:29:05 瀏覽:314
android密碼隱藏顯示 發布:2023-02-02 05:28:23 瀏覽:236
分布式資料庫mysql 發布:2023-02-02 05:26:28 瀏覽:290