當前位置:首頁 » 編程語言 » c語言通訊錄系統

c語言通訊錄系統

發布時間: 2022-10-31 23:20:05

❶ 用c語言編寫個人通訊錄管理系統

增刪改查,直接用鏈表吧,fopen、fsanf,你應該會用。這種簡單問題,你要不會寫,怎麼對得起學費。

❷ 用C語言編寫一個通訊錄管理系統

C語言編寫一個通訊錄管理系統的源代碼如下:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

/*定義保存通迅錄的信息*/

structfriends

{

charname[20];/*名字*/

charprovince[20];/*省份*/

charcity[20];/*所在城市*/

charnation[20];/*民族*/

charsex[2];/*性別M/F*/

intage;/*年齡*/

}

(2)c語言通訊錄系統擴展閱讀

1、在C++中應該使用inline內連函數替代宏調用,這樣既可達到宏調用的目的,又避免了宏調用的弊端。

2、在C語言兩個函數的名稱不能相同,否則會導致編譯錯誤。在C++中,函數名相同而參數不同的兩個函數被解釋為重載。

3、在大型程序中,使函數名易於管理和使用,不必絞盡腦汁地去處理函數名。

❸ 用C語言. 編寫一個「通訊錄管理系統」程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct worker
{
char name[30]; //name職工姓名
char ID[10]; //ID職工編號
char sex[3];
int birth;
int tel;
char ec[10];
char addr[30];
char cheng[10];
int year;
};
int dq(struct worker wo[]);
void show();
void bc(struct worker wo[]);
void add();
void see();
void search();
void ghcz();
void xmcz();
void del();
void ghxg();
void reserve();
//void back();
struct worker wo[100]; //保存所有的職工信息
int Number=0; //記錄總的職工人數
int main()
{
int choose=0;
system("color 1e");//更改背景顏色
while(1)
{
show();
printf("\t\t====>請選擇:");
scanf("%d",&choose);
system("cls");//清屏
switch(choose)
{
case 0: exit(0);//退出
break;
case 1: add();
back();//添加職工信息
break;
case 2: see();
back();//查看職工信息
break;
case 3: search();
back();
break;
case 4: del();
back();
break;
case 5:ghxg();
back();
break;
case 6:reserve();
back();
break;
default:
back();
break;
}
fflush(stdin);//?清空輸入緩沖區,通常是為了確保不影響後面的數據讀取
getchar();
system("cls");//清屏
}
}
int dq(struct worker wo[])//怎麼初始化?打開文件出現亂碼。這個不肯定,可能是二進制文件,而你是用文本文檔的方式打開的
{
FILE *fp=NULL;
int i=0;
fp=fopen("C://worker.dat","rb");
while(fread(&wo[i],sizeof(struct worker),1,fp))//?從woker.dat文件讀取數據到結構體數組wo[], 一次讀取一個工人的全部數據
i++;
fclose(fp);
return i;
}
void show() //程序主界面函數
{
printf("\n");
printf("\t****************職工工資管理系統****************\n\n");

printf("\t***************[1] 添加職工信息*****************\n");

printf("\t***************[2] 查看職工信息*****************\n");

printf("\t***************[3] 查找職工信息*****************\n");

printf("\t***************{4] 刪除職工信息*****************\n");<br> <br> printf("\t***************[5] 修改職工信息*****************\n");<br> <br> printf("\t***************[6] 保 存 數 據*****************\n");<br> <br> printf("\t***************[7] 作 者 信 息*****************\n");<br> <br> printf("\t***************[0] 退 出 系 統*****************\n\n");<br>}
void bc(struct worker *wo)
{
FILE *fp=NULL;
fp=fopen("C://worker.dat","ab+");
fwrite(wo,sizeof(struct worker),1,fp);
fclose(fp);
}
//添加職工信息
void add()
{
int numberTemp=0;
int i=0;
struct worker temp;
printf("請輸入要添加職工個數:");
scanf("%d",&numberTemp);
for(i=0;i<numberTemp;i++)
{
printf("輸入第%d個職工信息\n",i+1);
printf("姓名:");
scanf("%s",temp.name);
printf("職工編號:");
scanf("%s",temp.ID);
printf("性別:");
scanf("%s",temp.sex);
printf("出生日期:");
scanf("%d",&temp.birth);
printf("電話:");
scanf("%d",&temp.tel);
printf("學歷:");
scanf("%s",&temp.ec);
printf("住址:");
scanf("%s",&temp.addr);
printf("職稱:");
scanf("%s",&temp.cheng);
wo[Number++]=temp; //寫入到數組
bc(&temp); //寫入到文件
}
printf("添加成功\n");
}
//查看職工信息
void see()
{
int i=0;
printf("以下是全部職工\n");
//printf("姓名\n職工編號\n性別\n出生日期\n電話\n學歷\n住址\n職稱\n");
while(i<Number)
{
printf("姓名;%s\n職工編號:%s\n性別:%s\n出生日期:%d\n電話:%d\n學歷:%s\n住址:%s\n職稱:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].ec,wo[i].cheng);
i++;
}
}
//查找職工信息
void search()
{
int n=0;
printf("1 按姓名查找\n");
printf("2 按職工編號查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xmcz();
break;
case 2: ghcz();
break;
default: printf("輸入錯誤!\n");
break;
}
}
void xmcz()//按姓名查找
{
char name[30];
int i=0;
printf("請輸入要查找職工姓名:");
scanf("%s",name);
system("cls");
for (i=0;i<Number;i++)
{
if (strcmp(name,wo[i].name)==0)
{
printf("姓名;%s\n職工編號:%s\n性別:%s\n出生日期:%d\n電話:%d\n學歷:%s\n住址:%s\n職稱:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].ec,wo[i].cheng);
i++;
}
}
}
void ghcz()//按職工編號查找
{
char id[10];
int i=0;
printf("請輸入要查找職工職工編號:");
scanf("%s",id);
system("cls");
for (i=0;i<Number;i++)
{
if (strcmp(id,wo[i].ID)==0)
{
printf("姓名;%s\n職工編號:%s\n性別:%s\n出生日期:%d\n電話:%d\n學歷:%s\n住址:%s\n職稱:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].ec,wo[i].cheng);
i++;
}
}
}
//刪除職工信息
void del()

{
FILE *fp=NULL;
char id[60];
int i=0;
int j=0;
printf("請輸入要刪除的職工職工編號:");
scanf("%s",id);
for(i=0;i<Number;i++)
{
if (strcmp(id,wo[i].ID)==0)
{
for (j=i;j<Number-1;j++)
{
wo[j]=wo[j+1];
}
Number--;
}
}
//將剩餘數據寫入文件 擦除以前的數據
fp=fopen("C://worker.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&wo[i],sizeof(struct worker),1,fp);
}
fclose(fp);
printf("刪除成功;\n");
}
//修改職工信息
void ghxg()//按職工編號修改
{
FILE *fp=NULL;
char id[30];
int i=0;
printf("請輸入要修改的職工職工編號:");
scanf("%s",id);
for (i=0;i<Number;i++)
{
if (strcmp(id,wo[i].ID));
else
break;
}
printf("姓名;%s\n職工編號:%s\n性別:%s\n出生日期:%d\n電話:%d\n學歷:%s\n住址:%s\n職稱:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].ec,wo[i].cheng);
i++;
printf("請重新輸入該職工信息");
printf("職稱:");
scanf("%s",wo[i].cheng);
printf("姓名");
scanf("%s",wo[i].name);
printf("性別");
scanf("%s",wo[i].sex);
printf("職工編號");
scanf("%s",wo[i].ID);
printf("出生日期");
scanf("%d",&wo[i].birth);
printf("電話");
scanf("%d",&wo[i].tel);
printf("學歷");
scanf("%s",wo[i].ec);
printf("住址");
scanf("%s",wo[i].addr);

fp=fopen("C://worker.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&wo[i],sizeof(struct worker),1,fp);
}
fclose(fp);
printf("\t=======>修改成功\n");
}
//保存數據

❹ C語言程序設計 --通訊錄系統

通過Bai Hi聯系
有時間可處理你的任務
我們可以根據此題目提供一份適合於學生水平的源代碼

6 | ES:\\
5 | 交易提醒:預付定金是詐騙
7 |
1 | 北京易軟個人軟體
5 | 全職軟體開發團隊
6 | 十年信譽鑄成品質
1 | 速度專業積累效率
5 | 定製開發信息管理系統更有優惠

❺ C語言設計個人通訊錄管理系統

1、創建學生社團管理系統的歡迎界面,該歡迎界面以圖片的方式呈現,系統啟動時再屏幕中居中顯示。

❻ c語言編寫一個通訊錄系統 用簡單一點的c😊

#defineN100
#defineSIZE30
#include<stdio.h>
#include<string.h>
#include<conio.h>

structstudent{
charnum[SIZE];
charname[SIZE];
chartel[SIZE];
};
/*函數聲明*/
voidmyprint();/*顯示菜單*/
intmycreat(structstudent*p,intn);/*輸入通訊錄*/voidmydisplay(structstudent*p,intn);/*顯示通訊錄*/voidmysearch(structstudent*p,intn);/*查找*/
voidmymodify(structstudent*p,intn);/*修改通訊錄*/intmyadd(structstudent*p,intn);/*增加通訊錄*/intmydelete(structstudent*p,intn);/*刪除*/voidmysort(structstudent*p,intn);/*排序*/
voidsch_num(structstudent*p,intn);/*按學號查找*/voidsch_name(structstudent*p,intn);/*按姓名查找*/
intloadinfo(structstudent*p,intn);/*載入通訊錄信息*/intsaveinfo(structstudent*p,intn);/*保存通訊錄信息*/voidmain(){
/*文件定義*/charchoose,yes_no;
structstudentrecord[N];/*存放通訊錄信息,共100條*/inttotal=0,flag;/*通訊錄總數*/
total=loadinfo(record,N);/*從文件讀取記錄信息,不超過100條*/do{
myprint();/*顯示菜單*/
printf("請選擇:");do{
choose=getchar();}
while(choose<'0'||choose>'9');switch(choose){
case'1':
total=mycreat(record,total);break;case'2':
mydisplay(record,total);break;case'3':
mysearch(record,total);break;case'4':
mymodify(record,total);break;case'5':
total=myadd(record,total);break;case'6':
total=mydelete(record,total);break;case'7':
mysort(record,total);break;case'8':
flag=saveinfo(record,total);if(flag==1)
printf(" 保存成功! ");else
printf(" 保存失敗! ");break;case'0':
break;default:
printf(" %c為非法選項! ",choose);}
if(choose=='0')break;printf(" 要繼續選擇嗎(Y/N)?");do{
yes_no=getchar();}
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}
while(yes_no!='Y'||yes_no!='y');}
voidmyprint()/*顯示菜單信息*/{
printf(" ");printf(" ");printf("請輸入選項編號(0--7) ");printf("1---批量輸入通訊錄 ");printf("2---顯示通訊錄 ");printf("3---查詢通訊錄 ");printf("4---修改通訊錄 ");printf("5---添加通訊錄 ");printf("6---刪除通訊錄 ");printf("7---排序通訊錄 ");printf("8---保存通訊錄 ");printf("0---退出 ");printf(" ");
}
intmycreat(structstudent*p,intn)/*批量輸入學生信息*/{
inti=0;intm;
printf("添加前的記錄,共有<%d>個: ",n);printf(" 記錄號學號姓名電話號碼 ");
i=0;
while((i<n)&&(strcmp(p->num,"")!=0)){
printf("%d:%15s%15s%15s ",i+1,p->num,p->name,p->tel);i++;p++;}
printf(" 請輸入要輸入的學生人數(<%d):",N-n);
scanf("%d",&m);i=0;
while(i<m){
printf(" ");
printf("請輸入第%d個記錄: ",i+1);printf("學號:");do{
gets(p->num);}
while(strcmp(p->num,"")==0);printf("姓名:");gets(p->name);
printf("電話號碼:");gets(p->tel);p++;i++;}
returnm+n;}
voidmydisplay(structstudent*p,intn)/*顯示學生信息*/{
/*clrscr();*/inti=0;
printf(" 記錄號學號姓名電話號碼 ");while(i<n){
printf("%d:%15s%15s%15s ",i+1,p->num,p->name,p->tel);p++;i++;}}
voidmymodify(structstudent*p,intn)/*修改學生信息*/{
inti;
charnam[10];mydisplay(p,n);
printf(" 請輸入要修改記錄的姓名:");gets(nam);
for(i=0;i<n;i++,p++)
if(strcmp(nam,p->name)==0)break;if(i==n)
printf("無此人! ");else{
printf("請輸入正確的學號:");do{
gets(p->num);}
while(strcmp(p->num,"")==0);printf("請輸入正確的姓名:");gets(p->name);
printf("請輸入正確的電話號碼:");gets(p->tel);}
}
voidmysearch(structstudent*p,intn)/*查找指定學生*/{
charc;
mydisplay(p,n);
printf(" 按學號查詢(h),還是按姓名查詢(m)?");c=getchar();
if(c=='h'||c=='H')
sch_num(p,n);elseif(c=='m'||c=='M')
sch_name(p,n);else
printf(" 非法字元! ");}
voidsch_num(structstudent*p,intn)/*按學號查詢*/{
inti,flag=0;charnm[10];
printf(" 請輸入要查詢記錄的學號:");gets(nm);
for(i=0;i<n;i++)
if(strcmp(nm,p[i].num)==0)
{
printf(" 學號姓名電話號碼 ");printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);flag=1;
}
if(flag==0)
printf("無此人! ");}
voidsch_name(structstudent*p,intn)/*按姓名查詢*/{
inti,flag=0;charnam[10];
printf(" 請輸入要查詢記錄的姓名:");gets(nam);
for(i=0;i<n;i++)
if(strcmp(nam,p[i].name)==0){
printf(" 學號姓名電話號碼 ");printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);flag=1;}
if(flag==0)
printf("無此人! ");
}
intmyadd(structstudent*p,intn)/*增加學生信息*/{
inti=0;charc;
structstudentt,*q;
printf("添加前的記錄: ");printf(" 學號姓名電話號碼 ");i=0;q=p;
/*顯示原有記錄信息*/while(i<n){
printf("%15s%15s%15s ",q->num,q->name,q->tel);i++;q++;}do{
printf("請輸入新記錄的學號: ");do{
gets(t.num);
}
while(strcmp(t.num,"")==0);/*學號不能為空*/printf("請輸入新記錄的姓名:");gets(t.name);
printf("請輸入新記錄的電話號碼:");gets(t.tel);
for(i=0;i<n;i++)
if(strcmp(t.num,(p+i)->num)==0||strcmp(t.tel,(p+i)->tel)==0){
printf("學號或電話號碼重,要重新輸入嗎(Y/N)?");c=getchar();putchar(' ');break;}
/*找到最後,沒有重復*/if(i==n){
*(p+i)=t;
printf("添加後的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n+1;i++)
printf("%15s%15s%15s ",(p+i)->num,(p+i)->name,p[i].tel);break;}
}
while(c=='y'||c=='Y');returnn+1;}
intmydelete(structstudent*p,intn)/*刪除學生信息*/{
inti,x;
charc,nm[10],nam[10];
printf("刪除前的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);printf("按學號刪除(h),還是按姓名刪除(m)?");c=getchar();
if(c=='h'||c=='H'){
printf(" 請輸入要刪除記錄的學號:");gets(nm);
for(x=0;x<n;x++)
{
gets(t.num);
}
while(strcmp(t.num,"")==0);/*學號不能為空*/printf("請輸入新記錄的姓名:");gets(t.name);
printf("請輸入新記錄的電話號碼:");gets(t.tel);
for(i=0;i<n;i++)
if(strcmp(t.num,(p+i)->num)==0||strcmp(t.tel,(p+i)->tel)==0){
printf("學號或電話號碼重,要重新輸入嗎(Y/N)?");c=getchar();putchar(' ');break;}
/*找到最後,沒有重復*/if(i==n){
*(p+i)=t;
printf("添加後的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n+1;i++)
printf("%15s%15s%15s ",(p+i)->num,(p+i)->name,p[i].tel);break;}
}
while(c=='y'||c=='Y');returnn+1;}
intmydelete(structstudent*p,intn)/*刪除學生信息*/{
inti,x;
charc,nm[10],nam[10];
printf("刪除前的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);printf("按學號刪除(h),還是按姓名刪除(m)?");c=getchar();
if(c=='h'||c=='H'){
printf(" 請輸入要刪除記錄的學號:");gets(nm);
for(x=0;x<n;x++)
intj,i,k;charc1,c2;
structstudenttemp;
printf(" 排序前的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);printf(" 按學號排序(h),還是按姓名排序(m)?");c1=getchar();
if(c1=='h'||c1=='H'){
printf(" 按升序排序(s),還是按降序排序(j)?");c2=getchar();/*升序*/
if(c2=='s'||c2=='S'){
for(i=0;i<n-1;i++){
k=i;
for(j=i;j<n;j++)
if(strcmp(p[k].num,p[j].num)<0)
k=j;
temp=p[k];p[k]=p[i];p[i]=temp;
}
printf(" 排序後的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);}
elseif(c2=='j'||c2=='J')/*降序*/{
for(i=0;i<n-1;i++){
k=i;
for(j=0;j<n;j++)
if(strcmp(p[k].num,p[j].num)<0)
k=j;
temp=p[k];p[k]=p[i];p[i]=temp;
}
printf("排序後的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);}
elseprintf(" 非法字元 ");}
elseif(c1=='m'||c1=='M')/*按姓名排序*/{
printf(" 按升序排序(s),還是按降序排序(j)?");c2=getchar();
if(c2=='s'||c2=='S'){
for(i=0;i<n-1;i++){
k=i;
for(j=0;j<n;j++)
if(strcmp(p[k].name,p[j].name)<0)
k=j;
temp=p[k];p[k]=p[i];p[i]=temp;}
printf("排序後的記錄: ");printf(" 學號姓名電話號碼 ");for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);
}
elseif(c2=='j'||c2=='J')/*降序*/{
for(i=0;i<n-1;i++){
k=i;
for(j=i;j<n;j++)
if(strcmp(p[k].name,p[j].name)<0)
k=j;
temp=p[k];p[k]=p[i];p[i]=temp;
}
printf("排序後的記錄: ");printf(" 學號
姓名電話號碼 ");
for(i=0;i<n;i++)
printf("%15s%15s%15s ",p[i].num,p[i].name,p[i].tel);}
elseprintf(" 非法字元! ");}
elseprintf(" 非法字元! ");}
intloadinfo(structstudent*p,intn)/*載入通訊錄信息*/{
FILE*fp;inti,all=0;
charfilename[30]="tongxunlu.txt";fp=fopen(filename,"r");if(fp==NULL){
printf(" ***不能打開文件%s,或%s文件不存在,創建一個新文件!
",filename,filename);*/
fp=fopen(filename,"w");}
fscanf(fp,"%d ",&all);
if(all>N)/*讀取記錄總數*/{
printf("文件記錄數太多,不能讀取");return0;}
for(i=0;i<all;i++)/*讀取記錄信息*/{
fscanf(fp,"%s%s%s ",p[i].num,p[i].name,p[i].tel);}
fclose(fp);/*關閉文件*/returnall;}
intsaveinfo(structstudent*p,intn){
FILE*fp;inti,all=0;
charfilename[30]="txl.dat";/*文件可以用記事本打開*/fp=fopen(filename,"w");if(fp==NULL){
printf(" ***不能建立或打開文件%s!***",filename);return0;}
fprintf(fp,"%d ",n);for(i=0;i<n;i++)
fprintf(fp,"%s%s%s ",p[i].num,p[i].name,p[i].tel);fclose(fp);return1;}

抄來的

❼ C語言,編寫一個簡單的通訊錄管理系統

#include <string.h>

#include <stdio.h>

#include<stdlib.h>

int cntAddr=0,i,j;

char in[12];

const char * strFmt=" %d %s %s %s %s ";

typedef struct ADDRESSD {

int ID;

char name[12];

char workPlace[12];

char teleOff[12];

char teleHome[12];

}ADDRESS;

ADDRESS addrTmp[100],adTmp;

int load(ADDRESS adr[]){

FILE *fp;

if((fp=fopen("c:\txl.txt","r"))!=NULL){

cntAddr=0;

while(!feof(fp)){

fscanf(fp,"%d %s %s %s %s ",&(adr[cntAddr].ID),adr[cntAddr].name,adr[cntAddr].workPlace,adr[cntAddr].teleOff,adr[cntAddr].teleHome);

++cntAddr;

}

}

fclose(fp);

return cntAddr;

};

void list(ADDRESS addr[],int length){

for(i=0;i<length;++i)printf(strFmt,addr[i].ID,addr[i].name,addr[i].workPlace,addr[i].teleOff,addr[i].teleHome);

}

void display(ADDRESS addr[]){

for(i=0;i<cntAddr;++i)addrTmp[i]=addr[i];

for(i=0;i<cntAddr-1;++i)for(j=i+1;j<cntAddr;++j)if(addrTmp[i].ID>addrTmp[j].ID){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}

for(i=0;i<cntAddr;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);

}

void namesort(ADDRESS addr[],int length){

for(i=0;i<length;++i)addrTmp[i]=addr[i];

for(i=0;i<length-1;++i)for(j=i+1;j<length;++j)if(strcmp(addrTmp[i].name,addrTmp[j].name)>0){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}

for(i=0;i<length;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);

};

void save(ADDRESS adr[],int length){

FILE *fp;

fp=fopen("c:\txl.txt","w");

for(i=0;i<cntAddr;++i)fprintf(fp,"%d %s %s %s %s ",adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

fclose(fp);

};

void unitssort(ADDRESS addr[],int length){

for(i=0;i<length;++i)addrTmp[i]=addr[i];

for(i=0;i<length-1;++i)for(j=i+1;j<length;++j)if(strcmp(addrTmp[i].workPlace,addrTmp[j].workPlace)>0){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}

for(i=0;i<length;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);

};

void namesearch(ADDRESS addr[],int length){

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

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(addr[i].name,in)==0)printf(strFmt,addr[i].ID,addr[i].name,addr[i].workPlace,addr[i].teleOff,addr[i].teleHome);

};

void unitssearch(ADDRESS adr[],int length){

printf("請輸入工作單位: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(adr[i].workPlace,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

};

void officenumbersearch(ADDRESS adr[],int length){

printf("請輸入辦公電話: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(adr[i].teleOff,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

};

void homenumbersearch(ADDRESS adr[],int length){

printf("請輸入家庭電話: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(adr[i].teleHome,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

};

int delet(ADDRESS adr[],int length){

printf("要修改第幾條記錄: ");

scanf("%d",&j);

for(i=j;i<length-1;++i)adr[i]=adr[i+1];

return --length;

};

void rewrite(ADDRESS adr[],int length){

printf("要修改第幾條記錄: ");

scanf("%d",&j);

printf("請輸入ID: ");

scanf("%d",&i);

adr[j].ID=i;

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

scanf("%s",in);

strcpy(adr[j].name,in);

printf("請輸入工作單位: ");

scanf("%s",in);

strcpy(adr[j].workPlace,in);

printf("請輸入辦公電話: ");

scanf("%s",in);

strcpy(adr[j].teleOff,in);

printf("請輸入家庭電話: ");

scanf("%s",in);

strcpy(adr[j].teleHome,in);

};

int add(ADDRESS adr[],int length){

printf("請輸入ID: ");

scanf("%d",&i);

adr[length].ID=i;

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

scanf("%s",in);

strcpy(adr[length].name,in);

printf("請輸入工作單位: ");

scanf("%s",in);

strcpy(adr[length].workPlace,in);

printf("請輸入辦公電話: ");

scanf("%s",in);

strcpy(adr[length].teleOff,in);

printf("請輸入家庭電話: ");

scanf("%s",in);

strcpy(adr[length].teleHome,in);

return ++cntAddr;

};

void (){

FILE *fp,*fc;

printf("請輸入新文件名(路徑中的反斜杠用\表示) ");

scanf("%s",&in);

if((fp=fopen("c:\txl.txt","r"))!=NULL){

fc=fopen(in,"w");

while(!feof(fp)){

fscanf(fp,"%d %s %s %s %s ",&(adTmp.ID),adTmp.name,adTmp.workPlace,adTmp.teleOff,adTmp.teleHome);

fprintf(fc,"%d %s %s %s %s ",adTmp.ID,adTmp.name,adTmp.workPlace,adTmp.teleOff,adTmp.teleHome);

}

fclose(fc);

}

fclose(fp);

};

int enter(ADDRESS adr[]){

cntAddr=0;

printf("請按次序輸入數據,結束按CTRL+z: ");

while(1){

printf("請輸入ID: ");

if(scanf("%d",&i)==EOF)break;

adr[cntAddr].ID=i;

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

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].name,in);

printf("請輸入工作單位: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].workPlace,in);

printf("請輸入辦公電話: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].teleOff,in);

printf("請輸入家庭電話: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].teleHome,in);

++cntAddr;

}

return cntAddr;

};

void showpaixu(ADDRESS adr[],int length)

{

int choice;

menu1:

system("cls");

printf(" *************************通訊錄信息管理系統************************* ");

printf(" 1. 全部顯示通訊錄信息 ");

printf(" 2. 按序號顯示通訊錄信息 ");

printf(" 3. 按姓名排序 ");

printf(" 4. 按工作單位排序 ");

printf(" 0. 返回上一級菜單 ");

printf(" ******************************************************************** ");

printf(" 請選擇(0~4) ");

scanf("%d",&choice);

switch(choice)

{

case 1:

list(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*顯示全部記錄*/

case 2:

display(adr);

printf(" 請按任意鍵返回... ");

system("pause");break; /*按序號顯示記錄*/

case 3:

namesort(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*按姓名排序*/

case 4:

unitssort(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*按工作單位排序*/

case 0: return;

}

goto menu1;

}

/*通訊錄信息查找功能*/

void chazhao(ADDRESS adr[],int length)

{

int choice;

menu2:

system("cls");

printf(" *************************通訊錄信息管理系統************************* ");

printf(" 1. 通過姓名查找 ");

printf(" 2. 通過工作單位查找 ");

printf(" 3. 通過辦公電話查找 ");

printf(" 4. 通過家庭電話查找 ");

printf(" 0. 返回上一級菜單 ");

printf(" ******************************************************************** ");

printf(" 請選擇(0~4) ");

scanf("%d",&choice);

switch(choice)

{

case 1:

namesearch(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*按姓名查找記錄*/

case 2:

unitssearch(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*按工作單位查找記錄*/

case 3:

officenumbersearch(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*按辦公電話查找記錄*/

case 4:

homenumbersearch(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");

break; /*按住宅電話查找記錄*/

case 0: return;

}

goto menu2;

}

/*通訊錄信息變更功能*/

void biangeng(ADDRESS adr[],int length)

{

int choice;

menu3:

system("cls");

printf(" *************************通訊錄信息管理系統************************* ");

printf(" 1. 刪除記錄 ");

printf(" 2. 修改記錄 ");

printf(" 3. 添加記錄 ");

printf(" 0. 返回上一級菜單 ");

printf(" ******************************************************************** ");

printf(" 請選擇(0~3) ");

scanf("%d",&choice);

switch(choice)

{

case 1:

length=delet(adr,length);

save(adr,length);

printf(" 請按任意鍵返回... ");

getchar();

break; /*刪除記錄*/

case 2:

rewrite(adr,length);

save(adr,length);

printf(" 請按任意鍵返回... ");

getchar();

break; /*修改記錄*/

case 3:

length=add(adr,length);

save(adr,length);

printf(" 請按任意鍵返回... ");

getchar();

break; /*插入記錄*/

case 0: return;

}

goto menu3;

}

int wenjian(ADDRESS adr[],int length)

{

int choice;

menu4:

system("cls");

printf(" *************************通訊錄信息管理系統************************* ");

printf(" 1. 導入文件到通訊錄 ");

printf(" 2. 把當前文件復制到新文件上 ");

printf(" 0. 返回上一級菜單 ");

printf(" ******************************************************************** ");

printf(" 請選擇(0~2) ");

scanf("%d",&choice);

switch(choice)

{

case 1: length=load(adr);

printf("您已經成功的導入文件到通訊錄! ");

printf(" 請按任意鍵返回... ");

system("pause");break;

case 2: ();

printf("復製成功! ");

printf(" 請按任意鍵返回... ");

system("pause");break;

case 0: return length;

}

goto menu4;

}

/*關於*/

void about()

{

system("color 87");

system("cls");

printf(" 《通訊錄信息管理系統》 ");

printf(" ***************************************** ");

printf(" 版權所有(C) 2009-2010 DIY軟體 ");

printf(" 製作人:西北民族大學計算機科學與信息09級計算機3班 王元波 ");

printf(" ***************************************** ");

printf(" 請按任意鍵返回主菜單...");

system("pause");

}

/******主函數開始*******/

void main()

{

int choice;

int length; /*保存記錄長度*/

ADDRESS adr[100] ; /*定義結構體數組*/

menu:

system("color f9");

system("cls");

printf(" *************************通訊錄信息管理系統************************* ");

printf(" 請選擇以下通訊錄管理功能: ");

printf(" 1. 通訊錄信息輸入 ");

printf(" 2. 通訊錄信息瀏覽及排序 ");

printf(" 3. 通訊錄信息查詢 ");

printf(" 4. 通訊錄信息更改 ");

printf(" 5. 通訊錄及文件操作 ");

printf(" 6. 關於通訊錄信息管理系統 ");

printf(" 0. 退出通訊錄管理系統 ");

printf(" ******************************************************************** ");

printf(" 請選擇(0~6) ");

scanf("%d",&choice);

switch(choice)

{

case 1: length=enter(adr);

save(adr,length);

printf(" 請按任意鍵返回... ");

system("pause");break;/*輸入記錄*/

case 2: showpaixu(adr,length);break;

case 3: chazhao(adr,length);break;

case 4: biangeng(adr,length);break;

case 5: length=wenjian(adr,length);break;

case 6: about();break;/*關於*/

case 0: return; /*如返回值為則程序結束*/

}

goto menu;

}

拓展資料

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。



❽ 用C語言設計一個通訊錄系統

/*
* main_tongxunlu.c
*
* Created on: 2011-6-21
* Author: zhanglujin
*/

#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')
{

❾ c語言編程通訊錄管理系統

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define header1 "|---------------------電話簿-----------------------|\n"
#define header2 "| num | name | phonenum | address |\n"
#define header3 "|-------|----------|---------------|---------------|\n"
#define end "|----------------------結束------------------------|"
#define N 100
typedef struct tele
{
int num;
char name[10];
char phonenum[15];
char address[20];
}
telebook;

void menu()
{
system("cls");
system("color 1F");
printf("\n\n\n"); /*輸出主菜單*/
printf("\t\t|* **** 歡迎進入電話薄管理系統! **** *|\n");
printf("\t\t|********************menu********************|\n");
printf("\t\t| |\n");
printf("\t\t| 1 增加 2 讀取 |\n");
printf("\t\t| |\n");
printf("\t\t| 3 查找 4 修改 |\n");
printf("\t\t| |\n");
printf("\t\t| 5 刪除 6 排序 |\n");
printf("\t\t| |\n");
printf("\t\t| 0 退出 |\n");
printf("\t\t|********************************************|\n");
}
void printheader() /*輸出菜單頭*/
{
printf(header1);
printf(header2);
printf(header3);
}
int add(telebook temp[])
{
int i;int m=0;
FILE *fp;
system("cls");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打開文件有誤!");
exit(0);
}
printf("每次輸入一百個人的信息!\n");
printf("如果輸入0推出輸入!\n");
for(i=m;i<(100+m);i++)
{
printf("num:");
scanf("%d",&temp[i].num);
if(temp[i].num==0)
break;
printf("name:");
scanf("%s",&temp[i].name);
printf("phonenum:");
scanf("%s",&temp[i].phonenum);
printf("address:");
scanf("%s",&temp[i].address);
fwrite(&temp[i],sizeof(struct tele),1,fp);

}
m+=100;
fclose(fp);
system("cls");
return 0;
}
int read(telebook temp[])
{
int count,i;
FILE *fp;
system("cls");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打開文件有誤!");
exit(0);
}
printheader();
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*讀取文件內信息的個數。*/
if(count==0)
printf("\n\n\n\t\t文件內沒有信息!\n\n\n");
for(i=0;i<count;i++) /*讀取文件內的信息*/
printf("|%-7d|%-10s|%-15s|%-15s|\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].address);
printf(end);
fclose(fp);
return 0;
}
int find1(telebook temp[]) /*電話號碼查詢*/
{
int i,count,t=0 ;char n[20];
FILE *fp;
system("cls");
read(temp);
printf("\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打開文件有誤!");
exit(0);
}
printf("輸入要查找的號碼:");
scanf("%s",n);
printf("\n\n");
printheader();
getchar();
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*讀取文件內信息的個數。*/
for(i=0;i<count;i++)
{
if(strcmp(temp[i].phonenum,n)==0)
{
t=1;
printf("|%-7d|%-10s|%-15s|%-15s|\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].address);
/*輸出查詢到的信息*/
}
}
if(t==0)
{
printf("\a\n\n\t\t沒有要查找的信息..........!\n\n\n");
printf(end);
return 0;
}
printf(end);
fclose(fp);
return 0;
}
int find2(telebook temp[]) /*姓名查詢*/
{
int i,count ,t=0;
char a[20];
FILE *fp;
system("cls");
read(temp);
printf("\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打開文件有誤!");
exit(0);
}
printf("輸入要查找的名字:");
scanf("%s",a);
getchar();
printf("\n\n");
printheader();
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*讀取文件內信息的個數。*/
for(i=0;i<count;i++)
{
if(strcmp(temp[i].name,a)==0)
{
t=1;
printf("|%-7d|%-10s|%-15s|%-15s|\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].address);
/*輸出查詢到的信息*/
}
}
if(t==0)
{
printf("\a\n\n\t\t沒有要查找的信息..............!\n\n\n");
printf(end);
return 0;
}
printf(end);
fclose(fp);
return 0;
}
void find()
{
int n;
telebook message1[20];
system("cls");
system("color 4F");
printf("\n");
while(1)
{ /*輸出查找函數主菜單*/
printf("\n\n\n\n");
printf(" |-------查找功能------|\n");
printf(" | |\n");
printf(" | 1 按電話號碼查找 |\n");
printf(" | |\n");
printf(" | 2 按姓名查找 |\n");
printf(" | |\n");
printf(" | 0 退出 |\n");
printf(" | |\n");
printf(" |---------結束--------|\n");
printf("輸入您的查找方式:");
scanf("%d",&n);
switch(n)
{
case 1:find1(message1);break;
case 2:find2(message1);break;
case 0:return;break;
}
getchar();
system("cls");
}
}
int change(telebook temp[])
{
int i,count,t=0;
FILE *fp;
struct tele ne[10];
system("cls");
read(temp);
printf("\n");
printf("按序號修改\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打開文件有誤!");
exit(0);
}
printf("輸入新內容:\n");
printf("num:");
scanf("%d",&ne[0].num);
printf("name:");
scanf("%s",&ne[0].name);
printf("phonenum:");
scanf("%s",&ne[0].phonenum);
printf("address:");
scanf("%s",&ne[0].address);
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*讀取文件內信息的個數。*/
fclose(fp);
for(i=0;i<count;i++) /*查找與新信息相同的信息*/
{
if(temp[i].num==ne[0].num) /*用新信息替換*/
{
t=1;
temp[i].num=ne[0].num;
strcpy(temp[i].name,ne[0].name);
strcpy(temp[i].phonenum,ne[0].phonenum);
strcpy(temp[i].address,ne[0].address);
getchar();
printf("\n\n\t\t\t修改成功..........!");
}
}
if(t==0)
{
getchar();
printf("\n\n\t\t\t沒有要修改的信息.........!");
return 0;
}
fp=fopen("D:\\rex.txt","wb+");
for(i=0;i<count;i++)
fwrite(&temp[i],sizeof(struct tele),1,fp);
fclose(fp);
return 0;
}
int del(telebook temp[])
{
int i,j,count,t=0;char name1[20];
FILE *fp;
system("cls");
read(temp);
printf("\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打開文件有誤!");
exit(0);
}
printf("輸入要刪除的人名:");
scanf("%s",name1);
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*讀取文件內信息的個數。*/
fclose(fp);
for(i=0;i<count;i++) /*查找要刪除的信息*/
{
if(strcmp(temp[i].name,name1)==0)
{
for(j=i;j<count;j++)
{ /*刪除找到的信息*/
t=1;
temp[j].num=temp[j+1].num;
strcpy(temp[j].name,temp[j+1].name);
strcpy(temp[j].phonenum,temp[j+1].phonenum);
strcpy(temp[j].address,temp[j+1].address);
}
count--;
printf("\n\n\n\t\t\t刪除成功..................!");
}
}
if(t==0)
{
getchar();
printf("\a\n\n\n\t\t\t沒有要刪除的信息..................!");
return 0;
}
getchar();
fp=fopen("D:\\rex.txt","wb+");
for(i=0;i<count;i++)
fwrite(&temp[i],sizeof(struct tele),1,fp);
fclose(fp);
return 0;
}
int paixu(telebook temp[])
{
int i,j,count;
telebook tmp;
FILE *fp;
system("cls");
read(temp);
printf("\n");
fp=fopen("D:\\rex.txt","ab+");
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*讀取文件內信息的個數。*/
fclose(fp);
for(i=0;i<count-1;i++) /*對文件內的信息的序號進行排序*/
{
for(j=count-2;j>=i;j--)
if(temp[j+1].num<temp[j].num)
{
tmp=temp[j+1];
temp[j+1]=temp[j];
temp[j]=tmp;
}
}
fp=fopen("D:\\rex.txt","wb+");
for(i=0;i<count;i++)
fwrite(&temp[i],sizeof(struct tele),1,fp);

fclose(fp);
read(temp);
return 0;
}
void main()
{
telebook message[N];
int n;
while(1)
{
menu();
printf("輸入您的選擇:");
scanf("%d",&n);
getchar();
switch(n)
{
case 1:add(message);break;
case 2:read(message);break;
case 3:find();break;
case 4:change(message);break;
case 5:del(message);break;
case 6:paixu(message);break;
case 0:exit(0);break;
}
getchar();
}
printf("press enter continue...............");
}

熱點內容
網路連接演算法 發布:2025-01-08 19:59:07 瀏覽:429
函數三種演算法 發布:2025-01-08 19:59:07 瀏覽:411
榮耀6清除緩存 發布:2025-01-08 19:57:37 瀏覽:780
安卓怎麼下載國外飛機聊天軟體 發布:2025-01-08 19:56:35 瀏覽:254
花瓣壓縮 發布:2025-01-08 19:45:51 瀏覽:859
重裝系統怎麼設置伺服器 發布:2025-01-08 19:40:08 瀏覽:719
谷歌解壓版 發布:2025-01-08 19:35:27 瀏覽:741
c語言找零錢 發布:2025-01-08 19:35:25 瀏覽:1000
壓縮大聲音 發布:2025-01-08 19:32:08 瀏覽:531
yy易語言源碼 發布:2025-01-08 19:24:42 瀏覽:885