當前位置:首頁 » 編程語言 » c語言用數組保存用戶手機號
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言用數組保存用戶手機號

發布時間: 2022-06-15 18:01:24

c語言 隨機產生10個手機號,不能重復。輸入英文名後綁定手機號,一個名字一個手機號

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

constintPHONE_LENGTH=11;

constchar*PREFIX="139";

typedefstruct{

intavailable;
charnumber[PHONE_LENGTH+1];
charowner_name[31];
}PhoneNumber;


voidphoneNumberGenerator(PhoneNumber*phones,intsize,constchar*prefix);
voiddisplayPhoneNumber(PhoneNumber*phones,intsize);
intmain(void)
{


chartname[31];
intid;
PhoneNumberphones[10];

phoneNumberGenerator(phones,10,PREFIX);

displayPhoneNumber(phones,10);
while(1)
{
puts("請輸入您的姓名");
scanf("%s",tname);

puts("請輸入您喜歡號碼的編號");
scanf("%d",&id);

if(phones[id].available)
{
strcpy(phones[id].owner_name,tname);

phones[id].available=0;

displayPhoneNumber(phones,10);
}else
{
puts("此號已被佔用,請選擇其他的號碼");

}}return0;
}


voidphoneNumberGenerator(PhoneNumber*phones,intsize,constchar*prefix)
{

intrepeat;//重復標志變數

for(inti=0;i<size;++i)
{

strncpy(phones[i].number,prefix,strlen(prefix));//復制號碼前綴
phones[i].available=1;//初始化號碼為可用
strcpy(phones[i].owner_name,"unknow");//初始化號碼的擁有著為"unknow"//開始產生號碼
do{

repeat=0;
/*******************產生一個隨機號碼******************/
for(intj=strlen(prefix);j<PHONE_LENGTH;++j)
{
(phones[i].number)[j]=rand()%10+'0';

}
(phones[i].number)[PHONE_LENGTH]='';

/************************檢測重復性**************************/
for(intk=0;k<i;k++)
{
if(strcmp(phones[i].number,phones[k].number)==0)
{
repeat=1;
break;

}

}
}while(repeat);//如果當前產生的號碼與之前的重復了,則再生成一個,直到不重復為止

}}


voiddisplayPhoneNumber(PhoneNumber*phones,intsize)
{


printf("%-5s%-20s%-10s%s ","編號","號碼","狀態","擁有者");
for(inti=0;i<size;++i)
{


printf("%-5d%-20s%-10s%s ",i,phones[i].number,phones[i].available?"可用":"已佔用",phones[i].owner_name);


}

}

㈡ 用C語言編寫命令行界面數組保存的通訊錄程序

我可以發給你!給我你的郵箱.運行環境是VS2008

㈢ 如何用C語言中的數組編寫一個通訊錄

寫了一個 ,行就支持一下 啊,呵呵呵
#include <stdio.h>
#include <string.h>
struct pep_list{ /*定義一個通訊錄結構*/
char name[10];
int age;
char telephone[13];
};
int count=0; /*定義整個人數的全局變數計數*/
int count1=0; /*定義朋友人數的全局變數計數*/
int count2=0; /*定義家人人數的全局變數計數*/
int count3=0; /*定義陌生人數的全局變數計數*/
int c,b,a; /*為46 47 48行的賦值做准備*/
struct pep_list peps[50]; /*定義儲存所有人的數組*/
struct pep_list friends[50]; /*定義儲存朋友的數組*/
struct pep_list families[50]; /*定義儲存家人的數組*/
struct pep_list unknows[50]; /*定義儲存陌生人的數組*/
struct pep_list pp[50];
struct pep_list p[50];

void new_pep(struct pep_list peps[]); /*自定義函數*//*總的人數*/
void search_pep(struct pep_list peps[]); /*自定義函數*//*查詢*/
void delete_pep(struct pep_list peps[]); /*刪除*/
/*顯示*/
void xianshi_pep(struct pep_list peps[],struct pep_list friends[],struct pep_list families[],struct pep_list unknows[]);
void xgxx_pep(struct pep_list peps[]);/*重新命名*/
int main(void)
{
int choice,choice1,choice2,choice3,choice4;

printf("\t \t********NOKIA 專用通訊錄*********\n");
printf("\n\n");

do
{

printf("\n功能表:\n[1]:新建\n[2]:查詢\n[3]:刪除\n[4]:顯示組員\n[5]:修改信息\n[0]:退出\n");
printf("\n選擇你要的功能:\n");
scanf("%d",&choice);

switch(choice)
{ /*新建項*/
case 1:new_pep(peps);
printf("是否需要分組?\n"); /*分組提示*/
printf("\n[1]:是[2]:否");
scanf("%d",&choice3);
switch(choice3)
{
case 1:printf("[1]:朋友[2]:家人[3]:陌生人");
scanf("%d",&choice4);
switch(choice4)
{
case 1:friends[count1]=pp[1];count1++;break; /*將第一個子函數中的信息值賦值給朋友*/
case 2:families[count2]=pp[1];count2++;break; /*將第一個子函數中的信息值賦值給家人*/
case 3:unknows[count3]=pp[1];count3++;break; /*將第一個子函數中的信息值賦值給陌生人*/
}
break; /*注意此處的break一定不能少*/
case 2:break;
}
break; /*注意此處的break一定不能少*/

/*查詢項*/
case 2:

search_pep(peps);
printf("還要使用該功能嗎?");
printf("\n[1]:繼續[2]:退出");
scanf("%d",&choice1);
switch(choice1)
{
case 1:continue;
case 2:goto next;
}
case 3:delete_pep(peps);break;
case 4:xianshi_pep(peps,friends,families,unknows);break;
case 5:xgxx_pep(peps);break;
case 0:break;
}

printf("還要使用該功能嗎?");
printf("\n[1]:繼續[2]:退出");
scanf("%d",&choice1);
switch(choice1)
{
case 1:continue; /*返回到do句中*/
case 2:goto next;
}

next: /*標簽*/

printf("確定退出嗎?");
printf("\n[1]:確定[2]繼續");
scanf("%d",&choice2);
if(choice2==1)
break;
if(choice2==2)
continue; /*返回到do句中*/
}while(choice!=0);

printf("謝謝使用#NOKIA\n");

getch();

}

/*新建*/
void new_pep(struct pep_list peps[])
{
struct pep_list f;
/*定義一個結構型變數儲存輸入的名片*/
if(count==50)
{
printf("滿員!\n");
return;
}
printf("聯系人姓名:");
scanf("%s",f.name);
printf("\n年齡:");
scanf("%d",&f.age);
printf("\n號碼:");
scanf("%s",f.telephone);
peps[count]=pp[1]=f; /*將輸入的名片賦值給住函數中定義的整體數組*/
/*將輸入的名片賦值給住函數中定義的輔助數組,是為59 60 61行做准備*/
count=count+1;
return;
}

/*查找組員*/
void search_pep(struct pep_list peps[])
{ char name[10];

int flag=0,i;
printf("輸入姓名:");
scanf("%s",name);
if(count==0)
{
printf("通訊錄為空!");
return;
}
for(i=0;i<count;i++)
{
if(strcmp(name,peps[i].name)==0) /*比較*/
flag=1;

break;

}
if(flag)
{
printf("\n姓名:%s",peps[i].name);
printf("\n年齡:%d",peps[i].age);
printf("\n號碼:%s",peps[i].telephone);
}
else
printf("無此人!");
return;

}

/*刪除組員*/
void delete_pep(struct pep_list peps[])

{

char name[10];
int i,j,choice;
printf("輸入你要刪除的名片的姓名:");
scanf("%s",name);
if(count==0)
printf("無人!");
else
{
for(i=0;i<count;i++)
{
if(strcmp(name,peps[i].name)==0) /*在名片里找名字*/
{
if(i==count-1) /*當刪除最後一項時只需減少位數 不需在從後向前賦值*/
{
count=count-1;
printf("刪除成功");
return;
}

for(j=i;j<count;j++)
{
strcpy(peps[j].name,peps[j+1].name); /*後一項的名字附到前一項*/
strcpy(peps[j].telephone,peps[j+1].telephone); /*後一項的號碼附到前一項*/
peps[j].age=peps[j+1].age; /*後一項的年齡附到前一項*/
}
printf("\n刪除成功");
count=count-1;
printf("\n是否顯示所有組員?");
printf("[1]:是[2]:否");
scanf("%d",&choice);
switch(choice)
{
case 1:if(count==0)
printf("\n無人");
for(i=0;i<count;i++)
printf("\n姓名:%s 年齡:%d 號碼:%s",peps[i].name,peps[i].age,peps[i].telephone);
break;
case 2:break;
}
break;
}
return;
}

}
if(i==count-1)
{
printf("查無此人");
return;
}

}

/*顯示組員*/
void xianshi_pep(struct pep_list peps[],struct pep_list friends[],struct pep_list families[],struct pep_list unknows[])
{
int i,choice;

printf("\n[1]:顯示全體組員 [2]:顯示分組隊員"); /*提示是否顯示組員*/
scanf("%d",&choice);
switch(choice)
{
case 1:if(count==0)
printf("無人");
for(i=0;i<count;i++)
{
printf("姓名:%s 年齡:%d 號碼:%s\n",peps[i].name,peps[i].age,peps[i].telephone);

}
return;
case 2:
printf("[1]:顯示朋友[2]:家人[3]:陌生人");
scanf("%d",&choice);
switch(choice)
{
case 1:if(count1==0)
printf("無人");
for(i=0;i<count1;i++)
/*輸出組員*/
printf("姓名:%s 年齡:%d 號碼:%s \n",friends[i].name,friends[i].age,friends[i].telephone);break;
case 2:if(count2==0)
printf("無人");
for(i=0;i<count1;i++)
printf("姓名:%s 年齡:%d 號碼:%s \n",families[i].name,families[i].age,families[i].telephone);break;
case 3:if(count3==0)
printf("無人");
for(i=0;i<count1;i++)
printf("姓名:%s 年齡:%d 號碼:%s \n",unknows[i].name,unknows[i].age,unknows[i].telephone);break;
}
return;

}

}

/*修改信息*/
void xgxx_pep(struct pep_list peps[])
{
char name[10],name2[10],telephone[10];
int i,choice;
if(count==0)
{
printf("無人\n");
return;
}
printf("輸入你想改信息人的名字:");
scanf("%s",name);
for(i=0;i<count;i++)

if(strcmp(peps[i].name,name)==0)
{
printf("[1]:修改姓名 [2]:修改號碼\n");
scanf("%d",&choice);
switch(choice)
{

case 1:
printf("輸入新的名字\n");
scanf("%s",name2);
strcpy(peps[i].name,name2);
break;
case 2:
printf("輸入新的號碼");
scanf("%s",telephone);
strcpy(peps[i].telephone,telephone);
break;
}
printf("是否顯示改過的組員?");
printf("\n[1]:是[2]:否");
scanf("%d",&choice);
switch(choice)
{
case 1:
for(i=0;i<count;i++)
printf("姓名:%s 年齡:%d 號碼:%s\n",peps[i].name,peps[i].age,peps[i].telephone);
case 2:break;
}
return;
}
}

㈣ 用C語言解決…… 定義一個二維數組,存儲5個人的姓名和電話號碼,從鍵盤輸入姓名後,要求能輸出電話號碼

#include<stdio.h>
#include<string.h>
void main()
{
int i;
char a[10][20],b[20];
printf("依次按對輸入5個人的姓名和電話號碼,如:張三 12345678 李四 87654321...\n");
for(i=0;i<10;i++)
scanf("%s",a[i]);
printf("輸入要查詢的姓名(輸入q結束):");
scanf("%s",b);
while(b[0]!='q')
{
for(i=0;i<5;i++)
{
if( !strcmp(b,a[2*i]) )
{
printf("電話號碼是:%s\n\n",a[2*i+1]);
break;
}
}
if(i==5)
printf("查無此人!\n\n");
printf("輸入要查詢的姓名(輸入q結束):");
scanf("%s",b);
}
}

㈤ 請問各位大神,C語言中,保存用戶使用信息的代碼是什麼

我來幫你回答你的追問。
1,那個文件是它舉得例子。沒有在那個盤。比如我TEST.TXT的在C盤的根目錄下,這個是我自己建立的。
2那個WR+ 我至少是沒看到過的,我看到的有W,R什麼的。沒有那個。。額。書上有那段程序。我給你寫寫。就是打開文件的代碼。
if((fp = fopen("text.txt","r")) == NULL)
{
printf("can not open file!");
exit (0);
}
3.那個FILE是和INT CHAR 差不多的。它是指向文件的。

㈥ 用c語言怎麼把一個存有姓名和電話號碼的文檔讀入到數組

typedef struct
{
char name[32];

char phone[32;

int value;

}T_Student;

char name[32];
char phone[32];
int value;
T_Student stu[10];
int curStu=0;

f=fopen()
//check f is valid
while(!feof(f)
{
int ret=fscanf(f,"%s %s %d",name,phone,&value)
//check fscanf ok
//process values from file to stu[curStu]
curStu++;

}
fclose(f)

㈦ C語言用結構數組建立5人通訊錄,包括姓名地址,電話號且能根據輸入的名字查找對應電話

so easy!!
#include<stdio.h>
#include<string.h>
main()
{char student1[20];
struct student
{char name[20];
unsigned long int phone;
char add[100];
};
struct student stud[3]={{"1",1,"1"},{"2",2,"2"},{"3",3,"3"}};
printf("請輸入你要找的人:");
scanf("%s",student1);
for(int i=0;i<=4;i++)
{if(strcmp(student1,stud[i].name)==0)
{ printf("姓名:%s\n電話:%d\n地址:%s\n",stud[i].name,stud[i].phone,stud[i].add);

}
}
}

㈧ 求用c語言編譯的 通訊錄 (命令行界面數組保存 )

我來了 幫你完成

㈨ c語言​定義一個二維數組,存儲5個人的姓名和電話號碼,從鍵盤輸入姓名後,要求輸出電話號碼。

#include<stdio.h>
#include<string.h>
voidlookup(char*a[][2],intn,char*name)
{
inti;
for(i=0;i<5;i++)
{
if(strcmp(a[i][0],name)==0)
{
printf("他/她的電話號碼是:%s ",a[i][1]);
return;
}
}
printf("沒有此人 ");
}
intmain()
{

char*a[5][2]={{"張三","1307100"},
{"李小四","1307101"},
{"LiLei","1307102"},
{"HanMeimei","1307103"},
{"張三豐","1307104"}
};
printf("輸入一個姓名: ");
charname[32];
gets(name);
printf("%s ",name);
lookup(a,5,name);
return0;
}


dty@ubuntu:~$ ./a.out

輸入一個姓名:

張 三 豐

張 三 豐

他/她的電話號碼是:1307104

㈩ 用c語言編寫一個通訊錄程序,數組保存

1、 用結構體數組編程實現一個通訊錄程序,本通訊錄最多容納5人;通訊錄文件為AddressBook.dat;
2、 本通訊錄程序實現以下功能:
a) 增加記錄:本功能模塊是將一個人的信息輸入到通訊錄中;當通訊錄中信息達到5人時提示「此通信錄中已有5人的信息,無法再添加!」;增加記錄時輸入人名和此人的電話後,要先判斷通信錄中是否有此人,如有提示「此通信錄中已經有此人的信息,無法再添加!」,否則,添加後提示「目前通訊錄中查無此人,增加記錄成功!」。
b) 顯示記錄:本功能模塊是將通訊錄中每個人的信息都顯示到電腦屏幕上;如果通訊錄為空,提示「目前通訊錄為空,沒有任何人的信息可顯示!」。
c) 刪除記錄:本功能模塊是將某個人的信息從通訊錄中刪除;請根據輸入的人名來刪除記錄;如果通訊錄在刪除前已經為空,則提示「目前通訊錄為空,沒有任何人的信息可刪除!」;如果通訊錄雖然不為空,但沒有此人,則提示「通訊錄中沒有此人,無法刪除!」;如果通訊錄不為空且有此人信息,刪除成功後提示「通訊錄中此人的信息已成功刪除!」
d) 保存記錄:本功能模塊是將所有變更的信息寫入通訊錄文件中;首先判斷以寫方式打開文件AddressBook.dat是否成功,如果不成功則提示「打開文件失敗」,如果打開成功,但沒有任何信息需要保存到通信錄中(即通信錄為空),則提示「目前通訊錄為空,沒有任何人的信息需存儲!」,如果文件打開成功,且有數據需要保存,則在保存文件成功後提示「保存文件成功!」,保存文件失敗時提示「保存文件失敗!」;
e) 查詢記錄:本功能模塊是在通訊錄中查詢是否有某個人的信息;請根據輸入的人名來查詢記錄;如果有此人,則顯示此人的信息;否則提示「目前通訊錄中查無此人!」;
f) 修改記錄:本功能模塊是在通訊錄中修改某個人的信息;請根據輸入的人名來修改記錄;如果通信錄為空,則提示「目前通訊錄為空,沒有任何人的信息可修改!」;如果通訊錄中查無此人,則提示「通訊錄中找不到此人,無法修改!」,否則提示「請輸入此人最新的信息」後開始輸入此人的新的姓名和電話號碼,再次提示「現修改為的信息如下:Name:XXXX----Tel:XXXX」,並替換此人以前的信息,最後提示「修改成功」;
g) 退出系統:本功能模塊是用來退出本程序的;退出之前需要根據操作提示是否「存檔」;當執行了「增加記錄」、「刪除記錄」,「修改記錄」功能後但沒有執行「保存記錄」功能時需要提示「通信錄中信息有修改,是否存檔?(Y/N)」。存檔後退出前顯示通信錄中的所有信息,再提示「歡迎使用,謝謝!再見!」;
3、 通訊錄中每個人的信息包含姓名、電話號碼兩部分組成,可用以下結構體類型定義:
struct address_info
{ char name[20];
char tel[20];
};
4、 程序開始執行時,要首先確認磁碟上是否有此文件。如果有,首先要將文件中的內容讀出,放到結構體數組中,並對結構體數組沒有使用的元素初始化,如果通訊錄中已有5人,則提示「通訊錄已滿」。如果沒有,則需結構體數組全部初始化;並要在執行「保存記錄」功能時創建此文件
5、 提示:定義一個全局數組struct address_info addrinfo[5];來存儲最多5個人的信息。定義一個全局整型變數Maxindex保存上面數組目前使用的最大下標;定義一個全局整型變數ischange來跟蹤記錄通訊錄中內容是否變化過,以便存檔提示。