C 언어 구현 주소록 프로젝트

7458 단어 C 언어통신 록
본 논문 의 사례 는 여러분 에 게 C 언어 실현 주소록 프로젝트 의 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
작성 프로그램 은 주소록 의 기본 기능 을 실현 하고 증가,삭제,검사,수정,주소록 인쇄 등 기능 을 할 수 있 습 니 다.
test.c

#include <stdio.h>
#include "contact.h"
void menu()
{
 printf("*********************************************
"); printf("****** 1. add 2.del ******
"); printf("****** 3. search 4. modify ******
"); printf("****** 5. show 6. sort ******
"); printf("****** 0. exit ******
"); printf("*********************************************
"); } int main() { int input = 0; // struct Contact con;//con // IintContact(&con); do { menu(); printf(" :>"); scanf("%d",&input); switch (input) { case ADD: AddContact(&con); break; case DEL: DelContact(&con); break; case SEARCH: SearchContact(&con); break; case MODIFY: ModifyContact(&con); break; case SHOW: ShowContact(&con); break; case SORT: break; case EXIT: printf("
"); break; default: printf("
"); break; } }while(&con); return 0; }
contact.c

#include "contact.h"

void IintContact(struct Contact* ps)
{
 memset(ps->data, 0, sizeof(ps->data));
 ps->size = 0;//         0   
}

void AddContact(struct Contact *ps)
{
 if (ps->size == MAX)
 {
  printf("     ,    
"); } else { printf(" :>"); scanf("%s",ps->data[ps->size].name); printf(" :>"); scanf("%s", ps->data[ps->size].sex); printf(" :>"); // %d scanf("%d",&ps->data[ps->size].age); printf(" :>"); scanf("%s",ps->data[ps->size].tele); printf(" :>"); scanf("%s",ps->data[ps->size].addr); ps->size++; printf("
"); } } void ShowContact(struct Contact *ps) { if (ps->size == 0) { printf("
"); } else { int i = 0; //- printf("%-20s\t%-5s\t%-4s\t%-12s\t%-20s
", " ", " ", " ", " ", " "); // for (i = 0; i < ps->size; i++) { printf("%-20s\t%-5s\t%-4d\t%-12s\t%-20s
", ps->data[i].name, ps->data[i].sex, ps->data[i].age, ps->data[i].tele, ps->data[i].addr); } } } // //static findByName , static int FindByName(const struct Contact* ps, char name[MAX_NAME]) { int i = 0; for (i = 0; i < ps->size; i++) { if (0 == strcmp(ps->data[i].name, name)) { return i;// } } return -1;// } void DelContact(struct Contact *ps) { char name[MAX_NAME]; printf(" :>"); scanf("%s", name); //1. // // -1 int pos = FindByName(ps, name); //2. if (pos==-1) { printf("
"); } else { int j = 0; for (j = pos; j <ps->size-1; j++) { ps->data[j] = ps->data[j + 1]; } ps->size--; printf("
"); } } void SearchContact(const struct Contact *ps) { char name[MAX_NAME]; printf(" :>"); scanf("%s",name); int pos = FindByName(ps, name); if (pos == -1) { printf("
"); } else { printf("%-20s\t%-5s\t%-4s\t%-12s\t%-20s
", " ", " ", " ", " ", " "); printf("%-20s\t%-5s\t%-4d\t%-12s\t%-20s
", ps->data[pos].name, ps->data[pos].sex, ps->data[pos].age, ps->data[pos].tele, ps->data[pos].addr); } } void ModifyContact(struct Contact *ps) { char name[MAX_NAME]; printf("
"); scanf("%s",name); int pos = FindByName(ps, name); if (pos == -1) { printf("
"); } else { printf(" :>"); scanf("%s", ps->data[pos].name); printf(" :>"); scanf("%s", ps->data[pos].sex); printf(" :>"); scanf("%d", &ps->data[pos].age); printf(" :>"); scanf("%s", ps->data[pos].tele); printf(" :>"); scanf("%s", ps->data[pos].addr); printf(" !
"); } }
contact.h

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

#define MAX 1000

#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30

enum Option
{
 EXIT,
 ADD,
 DEL,
 SEARCH,
 MODIFY,
 SHOW,
 SORT,
};
struct PeoInfo
{
 char name[MAX_NAME];
 int age;
 char sex[MAX_SEX];
 char tele[MAX_TELE];
 char addr[MAX_ADDR];
};

//      
struct Contact
{
 struct PeoInfo data[MAX];//         
 int size;//            
};

//     
//      
void IintContact(struct Contact *ps);
//          
void AddContact(struct Contact *ps);
//         
void ShowContact(const struct Contact *ps);
//         
void DelContact(struct Contact *ps);
//         
void SearchContact(const struct Contact *ps);
//         
void ModifyContact(struct Contact *ps);
연락처 기능 의 실현 증가

우리 프로그램 에서 정 의 된 1000 이내 의 연락 처 를 추가 할 수 있 습 니 다.
삭제 기능 의 실현
hemengjun 삭제

연락처 hemengjun 이 삭 제 된 것 을 볼 수 있 습 니 다.
기능 구현 찾기
luojiahang 찾기

검색 기능 을 통 해 연락 하고 싶 은 사람 에 대한 정 보 를 빨리 찾 을 수 있 습 니 다.
수정 기능 의 실현

기 존 연락처 luojiaang 의 관련 정 보 를 볼 수 있 습 니 다.
인쇄 기능 은 이미 실현 되 었 습 니 다.간단 한 주소록 작성 이 완료 되 었 습 니 다.관심 있 는 것 은 직접 시도 해 보 세 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기