通訊錄管理系統

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

通訊錄管理系統

文章插圖

1、創建學生社團管理系統的歡迎界面,該歡迎界面以圖片的方式呈現,系統啟動時再屏幕中居中顯示 。2、再創建用戶登錄窗口 , 用戶通過文本框輸入用戶名和密碼,單擊“登錄”按鈕后,在窗體中顯示登錄是否成功;單擊“重置”按鈕后,清空文本框信息 。3、創建“社團成員信息管理”窗體,用戶可以對成員信息進行瀏覽、添加、刪除與修改等多種操作;本任務重將實現添加成員信息的部分功能 , 從窗體各個控件中獲取新成員的各項數據并顯示在窗體右側 。4、完成的“社團成員信息管理”窗體中實現社團成員照片的選擇,并將選擇的圖片顯示在窗體中,為用戶提供預覽功能 。5、設計并創建“學生社團管理系統”的主界面,主界面中具有背景圖片、菜單、工具欄、狀態欄等元素 。6、對于“成員編號”等有固定長度或長度限制以及有使用規定字符集合的信息 , 在輸入錯誤時作提示 。窗體左側“成員列表”上方的文本框中輸入姓名并按回車,實現按鍵查詢 。
手機通訊錄管理系統我這里有一個,你看看吧 , 滿意的給分哦(在visual c++6.0上運行)
#include
#include /*使用字符串函數*/
#include /*使用通過控制臺進行數據輸入和數據輸出的函數*/
#include
#include /*使用DOS函數*/

int i; /*定義一個全局變量i*/

struct addr /*定義通訊地址結構體*/
{ char post_num[10]; /*郵編*/
char addr[60]; /*家庭地址*/
};

struct birth /*定義出生年月結構體*/
{ int year; /*年份*/
int month; /*月份*/
int day; /*日期*/
};

struct record1 /*定義電子通訊錄結構體*/
{ int number; /*序號*/
char name[20]; /*姓名*/
char sex; /*性別*/
struct birth birth; /*出生年月*/
struct addr addr; /*通信地址*/
char telephone[13]; /*聯系電話*/
}records[50];

FILE *fp; /*定義指向file類型結構體的指針變量*/

void Data_Load() /*定義載入數據函數*/
{ int j;
long k;
fp=fopen("record.txt","r+t"); /*打開文件record.txt,進行讀寫*/
if(fp!=NULL) /*如果文件不為空*/
{ for(i=1;i<50;i++)
{ j=fgetc(fp); /*從"records.txt"文件讀入整型數字*/
if(j==EOF) /*判斷是否到了文件尾*/
return; /*如果到了結尾,返回*/
k=i-1;
fseek(fp,k*sizeof(struct record1),SEEK_SET); /*將位置指針移到record1結構體所含字節

的第k倍個字節處*/

fread(&records[i],sizeof(struct record1),1,fp); /*讀取一條記錄*/
}
}
else
{ fp=fopen("record.txt","w"); /*打開文件record.txt,只寫*/
i=1;
}
}

void Data_Show(int j) /*定義顯示數據函數*/
{
printf("\n\n\tNo:%3d\n",records[j].number); /*序號*/
printf("\n\tname:%2s\n",records[j].name); /*姓名*/
printf("\n\tbirthday (y/m/d):%4d%2d%2d", records[j].birth.year, records[j].birth.month,

records[j].birth.day); /*打印第j個成員的出生年月日*/
printf("\n\tpost code:%-10s",records[j].addr.post_num); /*郵編*/
printf("\n\taddress:%-40s",records[j].addr.addr); /*家庭地址*/
printf("\n\tphone%-13s",records[j].telephone); /*聯系電話*/
}

void Data_Input(int j) /*定義添加數據函數*/
{
fflush(stdin); /*清空輸入緩沖區*/
records[j].number=j;
printf("\n\n\n\tinputNo %d ",j);
printf("\n\tname:"); /*輸入姓名*/
scanf("%s",records[j].name);
fflush(stdin); /*清空輸入緩沖區*/
printf("\tsex(m/f):"); /*輸入性別*/
scanf("%c",&records[j].sex);
printf("\t---birthday---"); /*輸入出生年月*/
printf("\n\tyear:");
scanf("%d",&records[j].birth.year);
printf("\tmonth:");
scanf("%d",&records[j].birth.month);
printf("\tday:");
scanf("%d",&records[j].birth.day);
printf("\tpost code:"); /*輸入郵編*/
scanf("%s",records[j].addr.post_num);
printf("\taddress:"); /*輸入家庭地址*/
scanf("%s",records[j].addr.addr);
printf("\tphone:"); /*輸入聯系電話*/
scanf("%s",records[j].telephone);

}

void Data_Save() /*定義保存函數*/
{
int j;
fp=fopen("record.txt","w"); /*打開文件record.txt,只寫*/
for(j=1;j<=i;j++)
{ fwrite(&records[j],sizeof(struct record1),1,fp); /*將結構體變量records的確定個數字節輸

入到record.txt文件中,個數為結構體friend1所含字節數*/
}
}

void main() /*主函數*/
{
int j,k;
char ch;
char search_name[40]; /*定義字符串變量*/

Data_Load(); /*聲明載入數據函數*/
i--;
do
{ printf("********************************* MENU ***************************************\n");
printf("------------------------! WELLCOME TO THE SYSTEM !------------------------------");
printf("\n*\tSelect Function: *");
printf("*\t1.Add New *");
printf("*\t2.View the data *");
printf("*\t3.Delete *");
printf("*\t4.Search *");
printf("*\t5.Insert *");
printf("*\t6.Save and quit *");
printf("*\t7.Quit *");
printf("\n******************************** MENU ****************************************\n");
printf("\tPlease choose the option you need:");
ch=getche(); /*輸入字符*/
switch(ch)
{
case '1':
{ int p;
printf("\n\tPlease input the number of people you want to add:");
scanf("%d",&p);/*增加記錄*/
printf("\tPlease press ENTER again");
while(getch()!=0x1b&&i<p)
{ i++;
Data_Input(i);
printf("Please press Enter again to continue\n");
}
if(i==p)printf("\n\tThe data is full\n");
} /*記錄完后顯示通訊錄已滿*/
break;

case '2': j=1; /*打印所有記錄*/
while(getch()!=0x1b&&j<=i) Data_Show(j++); /*聲明打印數據函數*/
if(j>i) printf("\n\tThe system is end\n"); /*顯示記錄末尾*/
break;

case '3': /*刪除通訊錄中的記錄*/
if(i<1)
{ printf("\n\tno record\n"); /*顯示無記錄*/
break;
}
printf("\n\tplease input the number you want to delect:");
scanf("%d",&k);
printf("\tsucceed!\n");
for(j=k;j<i;j++) /*將刪除位置后的元素順序前移,即后一數據復制到前一位置,循環操作*/
{ strcpy(records[j].name,records[j+1].name);
records[j].sex=records[j+1].sex;
records[j].birth.year=records[j+1].birth.year;
records[j].birth.month=records[j+1].birth.month;
records[j].birth.day=records[j+1].birth.day;
strcpy(records[j].addr.post_num,records[j+1].addr.post_num);
strcpy(records[j].addr.addr,records[j+1].addr.addr);
strcpy(records[j].telephone,records[j+1].telephone);
}
i--; /*元素總數減1*/
break;
case '4': /*通訊錄搜索功能*/
printf("\n\tPlease input the name:"); /*輸入名字*/
scanf("%s", search_name); /*獲得名字到指針型字符串變量*/
for(j=1;j<=i;j++)
{
if(strcmp(search_name,records[j].name)==0) /*比較字符串,即查看是否與記錄中名字

相同*/
{ Data_Show(j);
printf("\n"); /*搜索成功,打印記錄結束循環*/
break;
}
}
if(j>i) /*搜索失敗*/
printf("\n\tNo Record "); /*顯示無此記錄*/
break;
case '5':
printf("\n\tInsert No:"); /*錄入插入位置*/
scanf("%d",&k);
for(j=k+1;j<i;j++) /*將插入位置后的元素順序后移,即將其復制到后一位置,循環操作*/
{ strcpy(records[j].name,records[j-1].name);
records[j].sex=records[j-1].sex;
records[j].birth.year=records[j-1].birth.year;
records[j].birth.month=records[j-1].birth.month;
records[j].birth.day=records[j-1].birth.day;
strcpy(records[j].addr.post_num,records[j-1].addr.post_num);
strcpy(records[j].addr.addr,records[j-1].addr.addr);
strcpy(records[j].telephone,records[j-1].telephone);
}
Data_Input(k); /*聲明增加數據函數*/
i++;/*將記錄數目加一*/
break;
case '6': Data_Save();
printf("\n"); /*聲明保存函數*/
exit(0); break; /*保存后退出*/
case '7': printf("\n\tsave or not?:(y/n)");
ch=getch(); /*獲得輸入字符*/
if(ch=='y') Data_Save();
fclose(fp); /*關閉record.txt文件*/
exit(0); /*退出程序*/
default: printf("Please choose1-4\n"); /*輸入的如果不是數字1-4,讓其重新輸入*/
}
}
while(1); /*每次都從第一個功能開始 , 循環操作*/
}
請采納答案,支持我一下 。

通訊錄管理系統是做什么的呢 ?!净卮鹨妗?strong>【通訊錄管理系統】目前各種在線服務系統已經深刻的影響了人們的聯系方式 , 使人們可以在遠隔千里之外隨時通訊 。過去種種陳舊的聯系方式,已經不能滿足現代生活的需要 。為此,本設計就為用戶提供了一個管理聯系方式的方法,本系統設計通過用ASP建立一個WEB平臺管理聯系方式信息,基于ASP的通訊錄性能優良,查詢方便,能及時、靈活的進行查詢、修改、添加、刪除等操作 , 實現了通訊簿的自動化 。通過提供完善的通訊簿服務和規范通訊錄的管理,可以達到增進人們交流感情 。本文介紹了通訊錄管理系統的基本設計方法,闡述了整個應用系統的設計思路,并對各部分設計進行了詳細的分析,最終達到一個完整的設計方案 。最后根據設計的系統進行調試,以便保證系統的可靠性與穩定性 。

通訊錄管理系統的設計?程序是我自己的課程設計,已經試驗可用

#include
#include
#include
typedef struct{
char num[6];
char name[10];
char unit[20];
char phone[13];
char addr[30];
}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) 單位(20) 電話(11) 地址(30)**\n");
printf(" ***********************************************\n");
p=(listnode *)malloc(sizeof(listnode));
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.unit,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.unit,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(" \n");
printf("通訊錄管理系統\n");
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\n\n");
for(; ;)
{
scanf("%d",&sn);
if(sn5)
printf("\t輸入錯誤\n");
else
break;
}
return sn;
}
linklist createlist(void)
{
linklist head=(listnode *)malloc(sizeof(listnode));
listnode *p,*rear;
int flag=1;
rear=head;
while(flag==1)
{
p=(listnode *)malloc(sizeof(listnode));
printf(" 編號(4) 姓名(8)單位(20) 電話(11) 地址(31) \n");
printf(" --------------------------------------------\n");
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.unit,p->data.phone,p->data.addr);
rear->next=p;
rear=p;
printf(" 繼續建表嗎? (1.是/0.不):");
scanf("%d",&flag);

}
if(flag==1)
printf("創建成功!\n");
rear->next=NULL;
return 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;
p2=p2->next;
}
p1->next=p;
p->next=p2;
printf("插入成功!\n");
}
listnode * listfind(linklist head)
{
listnode * p;
char num[6];
char name[10];
int xz;
printf("--------------------\n");
printf(" 1.編號查詢\n");
printf(" 2.姓名查詢\n");
printf("--------------------\n");
printf("請選擇: \n");
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)
{
int jx;
listnode *p,*q;
p=listfind(head);
if(p==NULL){
printf("沒有要刪除的通訊者!:\n");
return;
}
printf ("真的要刪除該結點嗎?(1.是/0.不):");
scanf("%d",&jx);
if (jx==1){
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.unit,p->data.phone,p->data.addr);
printf(" ------------------------------\n");
p=p->next;
}

}

C語言課程設計:通訊錄管理系統#include
#include
#include

int n=10;//通訊錄中信息的條數 。
char string[80];
//以下幾個語句為函數的聲明 。
void menu1();//主菜單 。
void menu2();//小菜單,供用戶在使用完某個功能后選擇回主菜單或結束 。
void choose1();//用于菜單中的選擇,為了方便輸入錯誤后重新輸入 。。
void choose3(int); //用于modify()函數中的選擇 。
void search();//查詢 。
void show();//顯示通訊錄中全部內容 。
void showchoose(); //詢問用戶是否按照姓名排序后再進行輸出 。
void showinorder();//按照姓名進行排序并將其顯示 。
void add();//添加數據 。
void modify();//修改數據 。
void del();//刪除數據 。
void dial();//對通訊錄中某個人進行拔號 。
void thanks();//作者的話 。
void end();//結束該程序 。


struct//定義結構體數組用來存放文件中數據 。
{char name[7];
char add[30];
char pos[7];
char email[20];
char qq[10];
char phone[12];
}people[199];

void menu1()//主菜單函數 。
{
puts("\n\n\n");
printf("Welcom!歡迎使用個人通訊錄管理系統!\n");
puts("====================================");
puts("↓↓↓↓↓↓\n");
printf("☆☆☆→ 個人通訊錄管理系統 ←☆☆☆\n\n");
printf("※→1. 按姓名進行查詢 。\n");
printf("※→2. 顯示當前通訊錄中的全部內容 。\n");
printf("※→3. 通過姓名添加新數據 。\n");
printf("※→4. 通過姓名修改數據 。\n");
printf("※→5. 通過姓名刪除數據 。\n");
printf("※→6. 選擇您想找的數據并進行拔號 。\n");
printf("※→7. 感謝 。\n");
printf("※→8. 結束該程序 。\n");
puts("************************************");
puts("====================================\n\n");
printf("^_^