序
人生如梭,天长日久,何须朝朝暮暮
嗨,这里是狐狸~~ 我是狐狸的长兄虎狸~~
好久不见呀!这么久没更新大家有没有想我,哈哈哈,今天给大家带来的是大学课设必做的一个项目——通讯录管理系统!
纯C语言实现的通讯录系统,可键盘操作。也有大几百行代码~ 高能预警!
界面截图如下:
我们就不整别的,直接上代码:
/*****************************************************************************************/ /*程序采用双向循环链表结构,来满足目录可以满足自由上下过渡,遍历的需求.头结点用来表示当前通讯录的人数等信息 */
/*程序有添加,查询,浏览的功能,基本满足通讯录的要求. */
/*程序最大特点是主菜单,用户列表以及每个结点的操作属性菜单均采用上W-A-S-D才选择,回车确认 */
/*程序核心功能有search()动态搜索函数,creat()创建函数,list()浏览函数构成 */
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<string.h>
//==============================================
#define LENTH 20
char path[20]="d:\\通讯录.txt";
结构体属性
typedef struct person
{
char count[10]; //序号
char name[LENTH]; //姓名
char number[LENTH]; //电话号码
struct person *prior; //前驱指针
struct person *next; //后继指针
}node;
void control(int x,int p);
void list();
void faceopration(char a[][60],int w);
void opration(int x);
void controlmain(int x);
全局变量-头节点
node *head=NULL;
自检函数 标签至首
void check()
{
node *p=head;
do
{
p->count[1]=' ';
p->count[2]=' ';
// p->number[LENTH-2]=' ';
// p->number[LENTH-3]=' ';
if(p->next)
p=p->next;
}while(p->next && p->next!=head->next);
if(head->next)
{
p=head->next;
p->count[1]=16;
p->count[2]=16;
// p->number[LENTH-2]=17;
//p->number[LENTH-3]=17;
}
}
文件重写
void filesite()
{
int i=0;
node *p=head;
FILE *fp=fopen(path,"at");
if(fp)
{
while(p->next && p->next!=head)
{
p=p->next;
if(0==i) fprintf(fp,"%-4s %-12s %-12s\n","序号","姓名","电话号码");
fprintf(fp,"%-8s %-12s %-12s \n",p->count,p->name,p->number);
i++;
}
}
else
printf("file memory error! please check\n");
}
导航界面的两个函数
void face(char a[][80])
{
int j=0;
char x;
int i=8,BC=8; //BC为control实参
while(x=getch())
{
BC=8;
if(x=='\r')
{
while(a[BC][5]!=16)
BC=BC+2;
controlmain(BC);
}
if(x=='w' || x=='a' )
{
if(a[8][5]==16 )
continue;
a[i][5]=' ';
a[i][6]=' ';
a[i][59]=' ';
a[i][58]=' ';
i=i-2;
a[i][5]=16;
a[i][6]=16;
a[i][59]=17;
a[i][58]=17;
j=0;
system("cls");
while(j<20)
printf("%s\n",a+j++);
}
else if(x=='s' || x=='d')
{
if(a[14][5]==16)
continue;
a[i][5]=' ';
a[i][6]=' ';
a[i][59]=' ';
a[i][58]=' ';
i=i+2;
a[i][5]=16;
a[i][6]=16;
a[i][59]=17;
a[i][58]=17;
j=0;
system("cls");
while(j<20)
printf("%s\n",a+j++);
}
else continue;
}
}
主界面
void picture()
{
int i=0;
char a[20][80]={"\0", //0
"\0&#