您好,欢迎来到华拓网。
搜索
您的当前位置:首页电话簿管理C++源代码

电话簿管理C++源代码

来源:华拓网
#include \"stdio.h\" #include \"stdlib.h\" #include \"string.h\" char filename[20]; FILE *fp; struct person {

char name[10]; char tel[15]; char addr[50]; };

void creat() {

struct person people;

printf(\"\\n请输入电话簿名:\"); scanf(\"%s\

if((fp=fopen(filename,\"w\"))==NULL) {

printf(\"\\n不能建立电话簿!\"); exit(1); }

printf(\"\\n请输入姓名、电话号码及住址(以0结束)\\n\"); scanf(\"%s\

while(strcmp(people.name,\"0\")) {

scanf(\"%s%s\

fprintf(fp,\"%-10s%-20s%-50s\\n\ scanf(\"%s\ }

fclose(fp);

printf(\"按任意键继续!\"); getchar(); }

void output() {

struct person people;

if((fp=fopen(filename,\"r\"))==NULL) {

printf(\"\\n不能建立电话簿!\"); exit(1); }

printf(\"\\n\\n%5s\\n\电话簿:\"); while(!feof(fp)) {

fscanf(fp,\"%s%s%s\\n\ printf(\" 姓名:%-10s电话号码:%-15s地址:%-15s\\n\ }

fclose(fp);

printf(\"按任意键继续......\"); getchar(); }

void append() {

struct person people;

if((fp=fopen(filename,\"a\"))==NULL) {

printf(\"\\n不能建立电话簿!\"); exit(1); }

printf(\"\\n请输入添加的姓名、电话号码及住址\\n\"); scanf(\"%s%s%s\

fprintf(fp,\"%-10s%-20s%-50s\\n\ fclose(fp);

printf(\"按任意键继续......\"); getchar(); }

void search() {

int k=0;

char namekey[10]; struct person people;

printf(\"\\n请输入要查找的姓名:\"); scanf(\"%s\

if((fp=fopen(filename,\"rb\"))==NULL) {

printf(\"\\n不能打开电话簿!\"); exit(1); }

while(!feof(fp)) {

fscanf(fp,\"%s%s%s\\n\ if(!strcmp(namekey,people.name)) {

printf(\"\\n\\n已查到,记录为:\");

printf(\"姓名:%-10s电话号码:%-15s地址:%-15s\\n\ k=1; } }

if(!k)

printf(\"\\n\\n对不起,电话簿还没有你要查找的人!\"); fclose(fp);

printf(\"按任意键继续......\"); getchar(); }

void modify() {

int m=0,k=0; long offset;

char namekey[10]; struct person people;

printf(\"\\n请输入要修改的姓名:\"); scanf(\"%s\

if((fp=fopen(filename,\"r+\"))==NULL) {

printf(\"\\n不能打开通讯录!\"); exit(1); }

while(!feof(fp)) {

offset=ftell(fp);

fscanf(fp,\"%s%s%s\\n\ if(!strcmp(namekey,people.name)) { k=1; break; } } if(k) {

printf(\"\\n已查到,记录为:\");

printf(\"姓名:%-10s电话号码:%-25s地址:%-15s\\n\ printf(\"\\n请输入新姓名、电话号码及住址:\");

scanf(\"%s%s%s\ fseek(fp,offset,SEEK_SET); printf(\"%ld\

fprintf(fp,\"%-10s%-20s%-50s\\n\ } else

printf(\"\\n对不起,电话簿中没有此人的记录.\"); fclose(fp);

printf(\"按任意键继续......\"); getchar();

}

void del() {

int m,k=0,flag;

long offset1,offset2;

char namekey[10],valid[4]; struct person people;

printf(\"\\n请输入要删除的姓名:\"); scanf(\"%s\

if((fp=fopen(filename,\"r+\"))==NULL) {

printf(\"\\n不能打开电话簿!\"); exit(1); }

while(!feof(fp)) {

offset1=ftell(fp);

fscanf(fp,\"%s%s%s\\n\ if(!strcmp(namekey,people.name)) { k=1; break; } } if(k) {

printf(\"\\n已查到要删除的人的信息,记录为:\");

printf(\"姓名:%-10s电话号码:%-20s地址:%-20s\\n\ printf(\"\\n确实要删除,按1; 不删除,按0:\"); scanf(\"%d\ if(m) {

fseek(fp,offset1,SEEK_SET);

fprintf(fp,\"%-10s%-20s%-50s\\n\ } } else

printf(\"\\n对不起,电话簿中没有此人的记录.\"); fclose(fp);

printf(\"按任意键继续......\"); getchar(); }

void creat(); void output();

void search(); void append(); void modify(); void del(); void menu() {

printf(\"\\n 通 讯 录: \"); printf(\"\\n \"); printf(\"\\n 添加,请按1\"); printf(\"\\n 查找,请按2\"); printf(\"\\n 修改,请按3\"); printf(\"\\n 删除,请按4\"); printf(\"\\n 输出,请按5\"); printf(\"\\n 退出,请按0\"); }

void main() {

int m; creat(); while(1) {

menu();

printf(\"\\n请选择:\"); scanf(\"%d\ if(m>=0&&m<=5) {

switch(m) {

case 1: append(); break;

case 2: search(); break;

case 3: modify(); break;

case 4: del(); break;

case 5: output(); break;

case 0: exit(1); }

printf(\"\\n\\n操作完毕,请再次选择!\"); } else

printf(\"\\n\\n选择错误,请再次选择!\"); }

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo3.cn 版权所有 湘ICP备2023017654号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务