當前位置:首頁 » 編程語言 » c語言電話薄管理系統

c語言電話薄管理系統

發布時間: 2022-10-06 22:54:13

① 怎麼介紹c語言製作的通訊錄管理系統

1. 任務描述
設計一個管理通訊錄的程序。
完成:1、數據的插入、刪除、修改和顯示功能;
2、實現按人名或電話號碼進行查詢的功能;
3、提供鍵盤式選擇菜單以實現功能選擇。
提示:信息記錄要求放到文件中,因而要實現文件的輸入輸出操作,整個系統可以設計為多模塊結構,由數據插入模塊、數據修改模塊、數據刪除模塊、數據顯示模塊和數據查詢模塊組成。
2.本課程涉及的知識點
變數的定義、輸入和輸出函數、結構體類型的定義、結構體數組、循環語句、選擇語句,文件的操作等。
3. 要求完成的任務
完成整個規定任務的設計及調試,最後得出正確結果,並經教師檢查及答辯;
寫出規范的課程設計報告,在設計思想描述時一定要畫出程序演算法流程圖;
課程設計結束後交設計說明書等文檔和設計內容:
從2月26日起,學生每天至少要到設計教室半天以上;
設計報告撰寫格式要求:
設計報告的主要內容是詳細寫出在設計過程中所用到的主要技術或方法;
課程設計報告按通用格式書寫,具體要求見資料:「課程設計說明書的書寫內容與格式」
時間安排:
第一天: 學生先在實驗室集中,由指導教師介紹課程設計的目的、布置任務後選題;
第二天-第四天:學生在實驗室完成設計,經教師檢查並回答提問,確認設計完成;
第五天: 教師在計算機上先檢查設計報告、學生修改後列印提交

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

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

③ C語言電話薄管理系統

http://..com/question/51700570.html 自己去看 多加點分給我 0.0

採納哦

④ c語言 電話簿管理系統

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

//主函數
int main()
{
LinkQueue Q;
initAddressBook(Q);

int flag=0;
while(flag!=8)
{
printf("※※※※※主※※※※※菜※※※※※單※※※※※\n");
printf("※1、增加聯系人 2、刪除聯系人 ※\n");
printf("※3、修改聯系人 4、清空通訊錄 ※\n");
printf("※5、查找聯系人 6、按組顯示 ※\n");
printf("※7、顯示全部聯系人 8、退出 ※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("請輸入編號(1-8):\n");
scanf("%d",&flag);
if(flag<1||flag>8)
{
printf("輸入錯誤請重新輸入!\n");
continue;
}
else
{
switch(flag){
case 1:
if(enAddressBook(Q))
printf("增加聯系人成功!\n");
else
printf("增加聯系人失敗!\n");
break;
case 2:
if(delPerson(Q))
printf("刪除聯系人成功!\n");
else
printf("聯系人刪除失敗!\n");
break;
case 3:
if(update(Q))
printf("修改聯系人成功!\n");
else
printf("修改聯系人失敗!\n");
break;
case 4:
if(clearAddressBook(Q))
printf("通訊錄已清空!\n");
else
printf("通訊錄清空失敗!\n");
break;
case 5:
findByName(Q);
break;
case 6:
findByGroup(Q);
break;
case 7:
disAll(Q);
break;
case 8:
system("cls");
break;
}
}
}
printf("※※※※※感謝您使用本系統!※※※※※※\n");
return 0;
}
//初始化通訊錄

void initAddressBook(LinkQueue &Q)
{
Q.front=Q.rear=(QNode *)malloc(sizeof(QNode));
if(!Q.front)
exit(1);
else
Q.front->next=NULL;

}
//清空通訊錄
bool clearAddressBook(LinkQueue &Q)
{
system("cls");
while(addressBookLength(Q)!=0)
{
QNode *p;
p=Q.front->next;
Q.front->next=p->next;
if(p==Q.rear)
Q.rear=Q.front;
free(p);
}
return true;
}
//通訊錄當前人數
int addressBookLength(LinkQueue &Q)
{
int i=0;
QNode *p;
p=Q.front;
if(Q.front==Q.rear)
i=0;
else
{
while(p!=Q.rear)
{
p=p->next;
i++;
}
}
return i;
}
//刪除聯系人
bool delPerson(LinkQueue &Q)
{
char _name[20];
system("cls");
printf("請輸入要刪除的聯系人的姓名:\n");
scanf("%s",_name);
QNode *p,*q;
if(Q.front==Q.rear)
{
printf("通訊錄為空!\n");
return false;
}
else
{
p=Q.front;
q=Q.front->next;
while(q!=Q.rear){
if(strcmp(q->name,_name)==0)
{
p->next=q->next;
free(q);//刪除節點
return true;
}
else
{
p=p->next;
q=q->next;
}
}
if((strcmp(q->name,_name)==0))
{
free(q);
Q.front=Q.rear;
return true;
}
else
{
printf("無此聯系人!\n");
return false;
}
}
}
//查找聯系人
bool findByName(LinkQueue &Q)
{
system("cls");
if(Q.front==Q.rear)
{
printf("手機中無聯系人!\n");
return false;
}
else
{
char _name[20];
printf("請輸入要查詢的聯系人姓名:\n");
scanf("%s",_name);
QNode *p;
p=Q.front->next;
while(p->next!=NULL)
{
if(strcmp(p->name,_name)==0)
{
printf("姓名:%s 號碼:%s 分組:%s\n",p->name,p->tel,p->group);
return true;
}
p=p->next;
}
if(strcmp(p->name,_name)==0){
printf("姓名:%s 號碼:%s 分組:%s\n",p->name,p->tel,p->group);
return true;
}
else
{
printf("查無此人!\n");
return false;
}
}
}
//按組顯示聯系人
bool findByGroup(LinkQueue &Q)
{
system("cls");
if(Q.front==Q.rear)
{
printf("手機中無聯系人!\n");
return false;
}
else
{
char _group[20];
printf("請輸入要查詢的分組:\n");
scanf("%s",_group);
QNode *p;
p=Q.front->next;
while(p->next!=NULL)
{
if(strcmp(p->group,_group)==0)
{
printf("姓名:%s 號碼:%s \n",p->name,p->tel);
}
p=p->next;
}
if(strcmp(p->group,_group)==0){
printf("姓名:%s 號碼:%s \n",p->name,p->tel);
return true;
}
else
{
printf("無此分組!\n");
return false;
}
}
}
//增加聯系人
bool enAddressBook(LinkQueue &Q)
{
system("cls");
QNode *p;
p=(QNode *)malloc(sizeof(QNode));
if(!p)
return false;
else
{
printf("請輸入聯系人姓名:\n");
scanf("%s",p->name);
printf("請輸入聯系人號碼:\n");
scanf("%s",&p->tel);
printf("請輸入聯系人分組:\n");
scanf("%s",p->group);
if(Q.front->next==NULL)
{
Q.front->next=p;
Q.rear=p;
Q.rear->next=NULL;
}
else
{
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
}
return true;
}
}
//修改聯系人
bool update(LinkQueue &Q)
{
system("cls");
if(Q.front==Q.rear)
{
printf("手機中無聯系人!\n");
return false;
}
else
{
char _name[20];
printf("請輸入要修改的聯系人姓名:\n");
scanf("%s",_name);
QNode *p;
p=Q.front->next;
while(p->next!=NULL)
{
if(strcmp(p->name,_name)==0)
{
printf("請輸入新聯系人姓名:\n");
scanf("%s",p->name);
printf("請輸入新聯系人號碼:\n");
scanf("%s",&p->tel);
printf("請輸入新聯系人分組:\n");
scanf("%s",p->group);
return true;
}
p=p->next;
}
if(strcmp(p->name,_name)==0){
printf("請輸入新聯系人姓名:\n");
scanf("%s",p->name);
printf("請輸入新聯系人號碼:\n");
scanf("%s",&p->tel);
printf("請輸入新聯系人分組:\n");
scanf("%s",p->group);
return true;
}
else
{
printf("查無此人!\n");
return false;
}
}
}
//顯示所有聯系人
void disAll(LinkQueue &Q)
{
system("cls");
int i=0;
QNode *p;
p=Q.front->next;
if(Q.front==Q.rear)
printf("無聯系人!\n");
else
{
printf(" 姓名 號碼 分組\n");
while(p!=NULL){
printf("%15s %15s %15s\n",p->name,p->tel,p->group);
p=p->next;
}
}
}

⑤ c語言程序設計 電話簿管理系統

intmain()
{
LinkQueueQ;
initAddressBook(Q);

intflag=0;
while(flag!=8)
{
printf("※※※※※主※※※※※菜※※※※※單※※※※※ ");
printf("※1、增加聯系人2、刪除聯系人※ ");
printf("※3、修改聯系人4、清空通訊錄※ ");
printf("※5、查找聯系人6、按組顯示※ ");
printf("※7、顯示全部聯系人8、退出※ ");
printf("※※※※※※※※※※※※※※※※※※※※※※※ ");
printf("請輸入編號(1-8): ");
scanf("%d",&flag);
if(flag<1||flag>8)
{
printf("輸入錯誤請重新輸入! ");
continue;
}
else
{
switch(flag){
case1:
if(enAddressBook(Q))
printf("增加聯系人成功! ");
else
printf("增加聯系人失敗! ");
break;
case2:
if(delPerson(Q))
printf("刪除聯系人成功! ");
else
printf("聯系人刪除失敗! ");
break;
case3:
if(update(Q))
printf("修改聯系人成功! ");
else
printf("修改聯系人失敗! ");
break;
case4:
if(clearAddressBook(Q))
printf("通訊錄已清空! ");
else
printf("通訊錄清空失敗! ");
break;
case5:
findByName(Q);
break;
case6:
findByGroup(Q);
break;
case7:
disAll(Q);
break;
case8:
system("cls");
break;
}
}
}
printf("※※※※※感謝您使用本系統!※※※※※※ ");
return0;
}
//初始化通訊錄

voidinitAddressBook(LinkQueue&Q)
{
Q.front=Q.rear=(QNode*)malloc(sizeof(QNode));
if(!Q.front)
exit(1);
else
Q.front->next=NULL;

}
//清空通訊錄
boolclearAddressBook(LinkQueue&Q)
{
system("cls");
while(addressBookLength(Q)!=0)
{
QNode*p;
p=Q.front->next;
Q.front->next=p->next;
if(p==Q.rear)
Q.rear=Q.front;
free(p);
}
returntrue;
}
//通訊錄當前人數
intaddressBookLength(LinkQueue&Q)
{
inti=0;
QNode*p;
p=Q.front;
if(Q.front==Q.rear)
i=0;
else
{
while(p!=Q.rear)
{
p=p->next;
i++;
}
}
returni;
}
//刪除聯系人
booldelPerson(LinkQueue&Q)
{
char_name[20];
system("cls");
printf("請輸入要刪除的聯系人的姓名: ");
scanf("%s",_name);
QNode*p,*q;
if(Q.front==Q.rear)
{
printf("通訊錄為空! ");
returnfalse;
}
else
{
p=Q.front;
q=Q.front->next;
while(q!=Q.rear){
if(strcmp(q->name,_name)==0)
{
p->next=q->next;
free(q);//刪除節點
returntrue;
}
else
{
p=p->next;
q=q->next;
}
}
if((strcmp(q->name,_name)==0))
{
free(q);
Q.front=Q.rear;
returntrue;
}
else
{
printf("無此聯系人! ");
returnfalse;
}
}
}
//查找聯系人
boolfindByName(LinkQueue&Q)
{
system("cls");
if(Q.front==Q.rear)
{
printf("手機中無聯系人! ");
returnfalse;
}
else
{
char_name[20];
printf("請輸入要查詢的聯系人姓名: ");
scanf("%s",_name);
QNode*p;
p=Q.front->next;
while(p->next!=NULL)
{
if(strcmp(p->name,_name)==0)
{
printf("姓名:%s號碼:%s分組:%s ",p->name,p->tel,p->group);
returntrue;
}
p=p->next;
}
if(strcmp(p->name,_name)==0){
printf("姓名:%s號碼:%s分組:%s ",p->name,p->tel,p->group);
returntrue;
}
else
{
printf("查無此人! ");
returnfalse;
}
}
}
//按組顯示聯系人
boolfindByGroup(LinkQueue&Q)
{
system("cls");
if(Q.front==Q.rear)
{
printf("手機中無聯系人! ");
returnfalse;
}
else
{
char_group[20];
printf("請輸入要查詢的分組: ");
scanf("%s",_group);
QNode*p;
p=Q.front->next;
while(p->next!=NULL)
{
if(strcmp(p->group,_group)==0)
{
printf("姓名:%s號碼:%s ",p->name,p->tel);
}
p=p->next;
}
if(strcmp(p->group,_group)==0){
printf("姓名:%s號碼:%s ",p->name,p->tel);
returntrue;
}
else
{
printf("無此分組! ");
returnfalse;
}
}
}
//增加聯系人
boolenAddressBook(LinkQueue&Q)
{
system("cls");
QNode*p;
p=(QNode*)malloc(sizeof(QNode));
if(!p)
returnfalse;
else
{
printf("請輸入聯系人姓名: ");
scanf("%s",p->name);
printf("請輸入聯系人號碼: ");
scanf("%s",&p->tel);
printf("請輸入聯系人分組: ");
scanf("%s",p->group);
if(Q.front->next==NULL)
{
Q.front->next=p;
Q.rear=p;
Q.rear->next=NULL;
}
else
{
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
}
returntrue;
}
}
//修改聯系人
boolupdate(LinkQueue&Q)
{
system("cls");
if(Q.front==Q.rear)
{
printf("手機中無聯系人! ");
returnfalse;
}
else
{
char_name[20];
printf("請輸入要修改的聯系人姓名: ");
scanf("%s",_name);
QNode*p;
p=Q.front->next;
while(p->next!=NULL)
{
if(strcmp(p->name,_name)==0)
{
printf("請輸入新聯系人姓名: ");
scanf("%s",p->name);
printf("請輸入新聯系人號碼: ");
scanf("%s",&p->tel);
printf("請輸入新聯系人分組: ");
scanf("%s",p->group);
returntrue;
}
p=p->next;
}
if(strcmp(p->name,_name)==0){
printf("請輸入新聯系人姓名: ");
scanf("%s",p->name);
printf("請輸入新聯系人號碼: ");
scanf("%s",&p->tel);
printf("請輸入新聯系人分組: ");
scanf("%s",p->group);
returntrue;
}
else
{
printf("查無此人! ");
returnfalse;
}
}
}
//顯示所有聯系人
voiddisAll(LinkQueue&Q)
{
system("cls");
inti=0;
QNode*p;
p=Q.front->next;
if(Q.front==Q.rear)
printf("無聯系人! ");
else
{
printf("姓名號碼分組 ");
while(p!=NULL){
printf("%15s%15s%15s ",p->name,p->tel,p->group);
p=p->next;
}
}
}

⑥ C語言程序設計,通訊錄管理系統

/*【用C語言編寫具有數據插入、修改、刪除、顯示和查詢功能的電話薄管理程序】
1、數據包括:人名、工作單位、電話號碼和E-mail地址。
2、可對記錄中的姓名和電話號碼進行修改。
3、可增加或刪除記錄。
4、可顯示所有保存的記錄。
5、可按人名或電話號碼進行查詢。

另:採用結構體數組和文件系統實現。結構體包括人名、工作單位、電話號碼和E-mail
絕對原創,2010年7月12日晚剛寫完測試通過的,純C語言! */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define szSTR 64
#define fileDB "c:\\contact.txt"

struct CONTACT {
char name[szSTR];/*姓名*/
char unit[szSTR];/*工作單位*/
char tele[szSTR];/*電話*/
char mail[szSTR];/*mail*/
};

typedef struct CONTACT CON;

#define BNAME 1
#define BUNIT 2
#define BTELE 4
#define BMAIL 8
#define BFULL 0xFF
int OPER[5] = {BFULL, BNAME, BUNIT, BTELE, BMAIL};

void input(CON * s, int mask)
{
if(mask & BNAME) { printf("請輸入學生姓名:"); scanf("%s", s->name); }
if(mask & BUNIT) { printf("請輸入工作單位:"); scanf("%s", s->unit); }
if(mask & BTELE) { printf("請輸入聯系電話:"); scanf("%s", s->tele); }
if(mask & BMAIL) { printf("請輸入電子郵件:"); scanf("%s", s->mail); }
}/*end input*/

void show (int id, CON * s)
{
if(!s) return ;
if(id)
printf("%d\t%s\t%s\t%s\t%s\n",
id, s->name , s->unit , s->tele , s->mail );
else
printf("【姓名】%s【工作單位】%s【電話】%s【電郵】%s\n",
s->name , s->unit , s->tele , s->mail );
/*end if*/
}/*end show*/

void regist(void)
{
CON s; FILE * f = 0;
input(&s, BFULL);
f = fopen(fileDB, "ab");
fwrite(&s,sizeof(s),1,f);
fclose(f);
printf("資料已保存!\n");
}/*end regist*/

int browse(char * key, fpos_t * p, CON * s)
{
FILE * f =0; int i = 0, r = 0; CON t;
char * a = 0, * b = 0; fpos_t q;
if(!s) return 0;
f = fopen(fileDB, "rb");
if(!f) {
printf("資料庫暫無記錄\n");
return 0;
}/*end if*/
printf("編號\t姓名\t單位\t電話\t電郵\n");
printf("------------------------------------------------\n");
while(!feof(f)) {
fgetpos(f, &q);
r = fread(&t, sizeof(t), 1, f);
if(r<1)break;
if(t.name[0]==0) continue;
if(key) {
a = strstr(t.name , key);
b = strstr(t.tele , key);
if(a == 0 && b == 0) continue;
}/*end if*/
if(p) *p = q;
if(s) memcpy(s, &t, sizeof(t));
i++;
show(i, &t);
}/*end while*/
fclose(f);
printf("------------------------------------------------\n");
return i;
}/*end browse*/

fpos_t query(CON * s)
{
char key[szSTR]=""; fpos_t p = 0; int r = 0;
printf("請輸入姓名或者電話號碼:");
scanf("%s", key);
r = browse(key, &p, s);
return r?p:-1;
}/*end query*/

void clear(void)
{
FILE * f = 0; CON s;
fpos_t p = query(&s);
if(p<0) return;
f = fopen(fileDB, "rb+");
fsetpos(f, &p);
memset(&s, 0, sizeof(s));
fwrite(&s, sizeof(s),1, f);
fclose(f);
printf("記錄已刪除!\n");
}/*end clear*/

void modify(void)
{
FILE * f = 0; CON s; int cmd = 0;
fpos_t p = query(&s);
if(p<0) return;
f = fopen(fileDB, "rb+");
fsetpos(f, &p);
for(;;) {
show(0, &s);
printf("請選擇:1-姓名;2-工作單位;3-電話;4-電郵;5-保存並退出;6-放棄修改並退出\n");
scanf("%d", &cmd);
switch(cmd) {
case 1:
case 2:
case 3:
case 4:
input(&s, OPER[cmd]);
break;
case 5:
fsetpos(f, &p);
fwrite(&s, sizeof(s), 1, f);
case 6:
fclose(f);
return;
default:
printf("錯誤的操作,請重新輸入。\n");
}/*end case*/
}/*mext*/
}/*end clear*/

int main(void)
{
int cmd = 0; CON s;
for(;;) {
printf("歡迎使用通信簿!請選擇:1-添加;2-查詢;3-刪除;4-修改;5-全部輸出;0-退出\n");
scanf("%d", &cmd);
switch(cmd) {
case 0: return 0;
case 1: regist(); break;
case 2: query(&s); break;
case 3: clear(); break;
case 4: modify(); break;
case 5: browse(0, 0, &s); break;
}//end case
}
return 0;
}

⑦ 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...............");
}

⑧ c語言課程設計--- 電話簿管理系統

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 100
struct phoneinfor
{
char name[15];
char sex[8];
char num[15];
char job[15];
char address[30];
}phoneinfor[NUM];
char Initialization()/*界面初始化*/
{
char ch;
printf(" ********Phone Information System********\n1.Show all the phone information\n2.Add phone information\n3.Delete phone information\n4.Search phone information\n5.Exit\nPlease select:");
do
{
ch=getch();
if(ch>='1'&&ch<='5')
{
printf("%c\n",ch);
getchar();
return ch;
}
}while(1);
}
void showall()/*顯示所有*/
{
int i=0;
FILE *fp;
system("cls");
if((fp=fopen("C:\\phoneinfo.txt","r"))==NULL)
{
printf("ERROR:cannot open file\n");
getchar();
return;
}
printf("name sex phonenum job address\n");
while(!feof(fp))
{fread(&phoneinfor[i],sizeof(struct phoneinfor),1,fp);
printf("%-15s %-6s %-9s %-15s %-s\n",phoneinfor[i].name,phoneinfor[i].sex,phoneinfor[i].num,phoneinfor[i].job,phoneinfor[i].address);
i++;
if(!i%20)
{
printf("Press any key to continue...");
getch();
}
}
fclose(fp);
printf("Press any key to return");
getch();
return;
}
void addinfor()/*增加數據*/
{
int i=0,b=0;
char ch;
FILE *fp;
do
{
system("cls");
printf("name:");
gets(phoneinfor[i].name);

printf("sex:");
gets(phoneinfor[i].sex);
printf("phonenum:");
gets(phoneinfor[i].num);
printf("job:");
gets(phoneinfor[i].job);
printf("address:");
gets(phoneinfor[i].address);
printf("Saved!Continue?(Y/N)");
do
{
ch=getch();
if(ch=='Y'||ch=='y'||ch=='N'||ch=='n')
{
printf("%c\n",ch);
getchar();
break;
}
}while(1);
i++;
}while(ch=='Y'||ch=='y');
if((fp=fopen("C:\\phoneinfo.txt","a+"))==NULL)
{
printf("ERROR:cannot open file\n");
return;
}
for(b=0;b<i;b++)
if(fwrite(&phoneinfor[b],sizeof(struct phoneinfor),1,fp)!=1)
printf("file write error\n");
fclose(fp);
return;
}
void delinfor()/*刪除信息*/
{
int i=0,b=0,k;
char delnum[9];
FILE *fp;
system("cls");
printf("Enter the Delete phonenum:");
gets(delnum);
if((fp=fopen("C:\\phoneinfo.txt","r"))==NULL)
{
printf("ERROR:cannot open file\n");
return;
}
while(!feof(fp))
{
fread(&phoneinfor[i],sizeof(struct phoneinfor),1,fp);
i++;
}
fclose(fp);
for(b=0;b<i;b++)
if(!strcmp(delnum,phoneinfor[b].num))
{
for(k=b;k<i-1;k++)
phoneinfor[k]=phoneinfor[k+1];
if((fp=fopen("C:\\phoneinfo.txt","w"))==NULL)
{
printf("ERROR:cannot open file\n");
return;
}
for(i=0;i<k;i++)
if(fwrite(&phoneinfor[i],sizeof(struct phoneinfor),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf("Delete!Press any key to return...");
getchar();
return;
}
printf("Not Found!Press any key to return...");
getchar();
return;
}
void searchinfor()/*查找信息*/
{
char ch;
char searchinfor[20];
int i=0;
FILE *fp;
system("cls");
printf("search mode:\n1.By name\n2.By phonenum\nChoose:");
do
{
ch=getch();
if(ch=='1'||ch=='2')
{
printf("%c\n",ch);
getchar();
break;
}
}while(1);
if((fp=fopen("C:\\phoneinfo.txt","r"))==NULL)
{
printf("ERROR:cannot open file\n");
return;
}
if(ch=='1')
{
printf("Enter the name:");
gets(searchinfor);
printf("name sex phonenum job address\n");
while(!feof(fp))
{
fread(&phoneinfor[i],sizeof(struct phoneinfor),1,fp);
if(!strcmp(searchinfor,phoneinfor[i].name))
{
printf("%-15s %-6s %-9s %-15s %-s\n",phoneinfor[i].name,phoneinfor[i].sex,phoneinfor[i].num,phoneinfor[i].job,phoneinfor[i].address);
printf("Press any key to return...");
getchar();
fclose(fp);
return;
}
i++;
}
}
if(ch=='2')
{
printf("Enter the phonenum:");
gets(searchinfor);
printf("name sex phonenum job address\n");
while(!feof(fp))
{
fread(&phoneinfor[i],sizeof(struct phoneinfor),1,fp);
if(!strcmp(searchinfor,phoneinfor[i].num))
{
printf("%-15s %-6s %-9s %-15s %-s\n",phoneinfor[i].name,phoneinfor[i].sex,phoneinfor[i].num,phoneinfor[i].job,phoneinfor[i].address);
printf("Press any key to return...");
getchar();
fclose(fp);
return;
}
i++;
}
}
system("cls");
printf("Not Found!Press any key to return...");
fclose(fp);
getchar();
return;
}
void main()
{
char ch;
do
{
system("cls");
ch=Initialization();
if(ch=='1') showall();
if(ch=='2') addinfor();
if(ch=='3') delinfor();
if(ch=='4') searchinfor();
if(ch=='5') break;
}while(1);
system("cls");
printf("Thank you for your use!");
getchar();
}

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91