本文实例为大家分享了C语言实现通讯录管理系统的具体代码,供大家参考,具体内容如下
工具:Visual C++6.0
说明:
本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计。功能包括增、删、查、改等,非常适合初学者练手。通讯录包括的个人信息有姓名、学号、性别、籍贯、政治面貌、手机号、QQ号、宿舍等。主要用到了指针、结构体、遍历链表、文件读取等知识点。
运行效果:

代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
typedef struct student //定义结构体
{
char name[20]; //姓名
char num[15]; //学号
char sex[10]; //性别
char from[20]; //籍贯
char political[10]; //政治面貌
char phone[15]; //手机号
char QQ[15]; //QQ号
char dorm[10]; //宿舍
struct student *next; //结构体指针
}stu;
stu *head;
void print() //主菜单
{
system("cls");
printf("nnn");
printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n");
printf(" ***********************************************************n");
printf(" ttt班级通讯录管理系统n");
printf("n");
printf(" tt1. 输入数据");
printf("tt2. 显示数据n");
printf(" tt3. 插入数据");
printf("tt4. 删除数据n");
printf(" tt5. 查看数据");
printf("tt6. 修改数据n");
printf(" tt7. 保存数据");
printf("tt8. 返回主菜单n");
printf(" ***********************************************************n");
printf(" ~~~~~退~~~~~~~~~~出~~~~~~~~~~请~~~~~~~~~~按~~~~~~~~~~9~~~~~n");
printf(" -----------------------------------------------------------nn");
}
void input(stu *p1) //输入相关数据
{
printf("姓名:");
scanf("%s",&p1->name);
printf("学号:");
scanf("%s",&p1->num);
printf("性别:");
scanf("%s",&p1->sex);
printf("籍贯:");
scanf("%s",&p1->from);
printf("政治面貌:");
scanf("%s",&p1->political);
printf("手机号:");
scanf("%s",&p1->phone);
printf("QQ号:");
scanf("%s",&p1->QQ);
printf("宿舍:");
scanf("%s",&p1->dorm);
}
stu * inputdata() //数据输入的函数
{
stu *p1,*p2;
int i=1;
p1=(stu *)malloc(sizeof(stu));
if(p1!=NULL)
{
head=p1;
printf("nttt☆☆☆输入数据☆☆☆n");
printf("------------------------------------------------------------------n");
printf("在姓名处输入“ok”代表输入数据结束n");
while(i)
{
printf("姓名:");
scanf("%s",&p1->name);
if(strcmp(p1->name,"ok")==0)
{
printf("n输入完毕!n");
printf("========================================================================n");
i=0;
p2->next=NULL;
free(p1);
p1=p2;
}
else
{
printf("学号:");
scanf("%s",&p1->num);
printf("性别:");
scanf("%s",&p1->sex);
printf("籍贯:");
scanf("%s",&p1->from);
printf("政治面貌:");
scanf("%s",&p1->political);
printf("手机号:");
scanf("%s",&p1->phone);
printf("QQ号:");
scanf("%s",&p1->QQ);
printf("宿舍:");
scanf("%s",&p1->dorm);
printf("=====================================n");
p2=p1;
p1=(stu *)malloc(sizeof(stu));
if(p1!=NULL)
{
p2->next=p1;
}
}
}
return(p1->next);
}
}
stu * lookdata(stu *p1) //查看数据的函数
{
printf("nttt☆☆☆显示数据☆☆☆n");
printf("----------------------------------------------------------------------n");
while(p1!=NULL)
{
printf("姓名:%sn",p1->name);
printf("学号:%st",p1->num);
printf("性别:%st",p1->sex);
printf("籍贯:%st",p1->from);
printf("政治面貌:%st",p1->political);
printf("手机号:%st",p1->phone);
printf("QQ号:%st",p1->QQ);
printf("宿舍:%sn",p1->dorm);
printf("======================================================================n");
p1=p1->next;
}
return p1;
}
void insert() //插入数据
{
int i;
char named[20];
stu *p1,*p2,*p3;
p1=head;
p3=(stu *)malloc(sizeof(stu));
p3->next=NULL;
printf("nttt☆☆☆插入数据☆☆☆n");
printf("----------------------------------------------------------------------n");
printf("请输入插入者的资料:n");
input(p3);
printf("n插入选项n");
printf("1.首位置插入t2.尾位置插入t3.前插n");
printf("请输入你的选择:");
scanf("%d",&i);
switch(i)
{
case 1:p3->next=p1;
head=p3;
break;
case 2:while(p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
p1->next=p3;
break;
case 3:printf("请输入姓名(前插):");
scanf("%s",named);
while(strcmp(named,p1->name)!=0)
{
p2=p1;
p1=p1->next;
}
p2->next=p3;
p3->next=p1;
break;
}
printf("插入成功!n");
printf("======================================================================n");
return;
}
void deleted() //删除数据
{
stu *p1,*p2;
char Name[20]; //想要删除的人的姓名
printf("nttt☆☆☆删除数据☆☆☆n");
printf("----------------------------------------------------------------------n");
printf("请输入要删除的姓名:");
scanf("%s",Name);
p1=head;
if(head==NULL)
{
printf("内存空空神马都没有!n");
printf("======================================================================n");
return;
}
if(strcmp(Name,p1->name)==0)
{
head=p1->next;
printf("删除成功!n");
printf("======================================================================n");
return;
}
while(p1!=NULL&&(strcmp(Name,p1->name)!=0))
{
p2=p1;
p1=p1->next;
}
if(p1==NULL)
{
printf("此人不存在!n");
printf("======================================================================n");
return;
}
if(p1->next!=NULL)
{
p1=p1->next;
p2->next=p1;
printf("删除成功!n");
printf("======================================================================n");
return;
}
else
{
p2->next=NULL;
printf("删除成功!n");
printf("======================================================================n");
return;
}
}
find(stu *p2) //通过姓名查找查看数据的函数
{
char name[20];
int b=0;
printf("nttt☆☆☆查看数据☆☆☆n");
printf("----------------------------------------------------------------------n");
printf("请输入您想查找人的姓名:");
scanf("%s",name);
while(p2!=NULL)
{
if(strcmp(name,p2->name)==0)
{
printf("你要找到的数据n");
printf("姓名:%sn",p2->name);
printf("学号:%st",p2->num);
printf("性别:%st",p2->sex);
printf("籍贯:%st",p2->from);
printf("政治面貌:%st",p2->political);
printf("手机号:%st",p2->phone);
printf("QQ号:%st",p2->QQ);
printf("宿舍:%sn",p2->dorm);
printf("======================================================================n");
b=1;
}
p2=p2->next;
}
if(b==0)
{
printf("n您要查找的人不存在!n");
}
}
update(stu *p2) //通过姓名查找修改数据
{
char name[20];
int b=0,i;
printf("nttt☆☆☆修改数据☆☆☆n");
printf("----------------------------------------------------------------------n");
printf("请输入将要修改人的姓名:");
scanf("%s",name);
while(p2!=NULL)
{
if(strcmp(name,p2->name)==0)
{
printf("该同学的基本信息n");
printf("姓名:%sn",p2->name);
printf("学号:%st",p2->num);
printf("性别:%st",p2->sex);
printf("籍贯:%st",p2->from);
printf("政治面貌:%st",p2->political);
printf("手机号:%st",p2->phone);
printf("QQ号:%st",p2->QQ);
printf("宿舍:%sn",p2->dorm);
printf("n请选择要修改的信息n");
printf("t1.姓名t2.学号t3.性别t4.籍贯nt5.政治面貌t6.手机号t7.QQt8.宿舍n");
printf("n您的选择是(1~8):");
scanf("%d",&i);
printf("请输入修改之后的内容n");
switch(i)
{
case 1:printf("姓名:");
scanf("%s",&p2->name);
break;
case 2:printf("学号:");
scanf("%s",&p2->num);
break;
case 3:printf("性别:");
scanf("%s",&p2->sex);
break;
case 4:printf("籍贯:");
scanf("%s",&p2->from);
break;
case 5:printf("政治面貌:");
scanf("%s",&p2->political);
break;
case 6:printf("手机号:");
scanf("%s",&p2->phone);
break;
case 7:printf("QQ:");
scanf("%s",&p2->QQ);
break;
case 8:printf("宿舍:");
scanf("%d",&p2->dorm);
break;
}
printf("n修改成功!n");
printf("=========================================================================n");
b=1;
}
p2=p2->next;
}
if(b==0)
{
printf("没有找到该人的资料!n");
}
}
save(stu *p2) //保存数据
{
FILE *fp;
char file[15];
printf("nttt☆☆☆保存数据☆☆☆n");
printf("----------------------------------------------------------------------n");
printf("输入文件名:");
scanf("%s",file);
if((fp=fopen(file,"w"))==NULL)
{
printf("cannot open this filen");
exit(0);
}
fprintf(fp,"姓名t学号t性别t籍贯t政治面貌t手机号tQQ号t宿舍n");
while(p2!=NULL)
{
fprintf(fp,"%st",p2->name);
fprintf(fp,"%st",p2->num);
fprintf(fp,"%st",p2->sex);
fprintf(fp,"%st",p2->from);
fprintf(fp,"%st",p2->political);
fprintf(fp,"%st",p2->phone);
fprintf(fp,"%st",p2->QQ);
fprintf(fp,"%sn",p2->dorm);
p2=p2->next;
}
printf("n保存成功!n");
printf("======================================================================n");
fclose(fp);
}
void screen()
{
int i;
char s[251]={"欢迎使用由ZM制作班级通讯录管理系统,nnttt本系统用于通讯录管理----排序,打印nnnttWelcome to use produced by ZM class address booknntt management system,sorting,printing"};
printf("n================================================================================n");
printf("nnnttt");
for(i=0;s[i]!=NULL;i++)
{
Sleep(30);
printf("%c",s[i]);
}
printf("nnnnnnnntt ~ Hi~ o(* ̄▽ ̄*)ブ~ ~ ~祝您旅途愉快~ ~n");
printf("================================================================================n");
}
void main()
{
int i;
system("color 4e");
screen();
Sleep(3000);
print();
while(1)
{
printf("请输入你的选择(1~9):");
loop:scanf("%d",&i);
if(i<1||i>9)
{
printf("输入有误,请在1~9中进行选择:");
goto loop;
}
switch(i)
{
case 1:
inputdata();
break;
case 2:
lookdata(head);
break;
case 3:
insert();
break;
case 4:
deleted();
break;
case 5:
find(head);
break;
case 6:
update(head);
break;
case 7:
save(head);
break;
case 8:
print();
break;
case 9:
exit(1);
break;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。
最后
以上就是明理银耳汤最近收集整理的关于C语言实现通讯录管理系统的全部内容,更多相关C语言实现通讯录管理系统内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复