C语言设计个人通讯录管理系统
文章插图
1、创建学生社团管理系统的欢迎界面,该欢迎界面以图片的方式呈现,系统启动时再屏幕中居中显示 。2、再创建用户登录窗口 , 用户通过文本框输入用户名和密码,单击“登录”按钮后,在窗体中显示登录是否成功;单击“重置”按钮后,清空文本框信息 。3、创建“社团成员信息管理”窗体,用户可以对成员信息进行浏览、添加、删除与修改等多种操作;本任务重将实现添加成员信息的部分功能 , 从窗体各个控件中获取新成员的各项数据并显示在窗体右侧 。4、完成的“社团成员信息管理”窗体中实现社团成员照片的选择,并将选择的图片显示在窗体中,为用户提供预览功能 。5、设计并创建“学生社团管理系统”的主界面,主界面中具有背景图片、菜单、工具栏、状态栏等元素 。6、对于“成员编号”等有固定长度或长度限制以及有使用规定字符集合的信息 , 在输入错误时作提示 。窗体左侧“成员列表”上方的文本框中输入姓名并按回车,实现按键查询 。
手机通讯录管理系统我这里有一个,你看看吧 , 满意的给分哦(在visual c++6.0上运行)
#include
#include /*使用字符串函数*/
#include /*使用通过控制台进行数据输入和数据输出的函数*/
#include
#include /*使用DOS函数*/
int i; /*定义一个全局变量i*/
struct addr /*定义通讯地址结构体*/
{ char post_num[10]; /*邮编*/
char addr[60]; /*家庭地址*/
};
struct birth /*定义出生年月结构体*/
{ int year; /*年份*/
int month; /*月份*/
int day; /*日期*/
};
struct record1 /*定义电子通讯录结构体*/
{ int number; /*序号*/
char name[20]; /*姓名*/
char sex; /*性别*/
struct birth birth; /*出生年月*/
struct addr addr; /*通信地址*/
char telephone[13]; /*联系电话*/
}records[50];
FILE *fp; /*定义指向file类型结构体的指针变量*/
void Data_Load() /*定义载入数据函数*/
{ int j;
long k;
fp=fopen("record.txt","r+t"); /*打开文件record.txt,进行读写*/
if(fp!=NULL) /*如果文件不为空*/
{ for(i=1;i<50;i++)
{ j=fgetc(fp); /*从"records.txt"文件读入整型数字*/
if(j==EOF) /*判断是否到了文件尾*/
return; /*如果到了结尾,返回*/
k=i-1;
fseek(fp,k*sizeof(struct record1),SEEK_SET); /*将位置指针移到record1结构体所含字节
的第k倍个字节处*/
fread(&records[i],sizeof(struct record1),1,fp); /*读取一条记录*/
}
}
else
{ fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
i=1;
}
}
void Data_Show(int j) /*定义显示数据函数*/
{
printf("\n\n\tNo:%3d\n",records[j].number); /*序号*/
printf("\n\tname:%2s\n",records[j].name); /*姓名*/
printf("\n\tbirthday (y/m/d):%4d%2d%2d", records[j].birth.year, records[j].birth.month,
records[j].birth.day); /*打印第j个成员的出生年月日*/
printf("\n\tpost code:%-10s",records[j].addr.post_num); /*邮编*/
printf("\n\taddress:%-40s",records[j].addr.addr); /*家庭地址*/
printf("\n\tphone%-13s",records[j].telephone); /*联系电话*/
}
void Data_Input(int j) /*定义添加数据函数*/
{
fflush(stdin); /*清空输入缓冲区*/
records[j].number=j;
printf("\n\n\n\tinputNo %d ",j);
printf("\n\tname:"); /*输入姓名*/
scanf("%s",records[j].name);
fflush(stdin); /*清空输入缓冲区*/
printf("\tsex(m/f):"); /*输入性别*/
scanf("%c",&records[j].sex);
printf("\t---birthday---"); /*输入出生年月*/
printf("\n\tyear:");
scanf("%d",&records[j].birth.year);
printf("\tmonth:");
scanf("%d",&records[j].birth.month);
printf("\tday:");
scanf("%d",&records[j].birth.day);
printf("\tpost code:"); /*输入邮编*/
scanf("%s",records[j].addr.post_num);
printf("\taddress:"); /*输入家庭地址*/
scanf("%s",records[j].addr.addr);
printf("\tphone:"); /*输入联系电话*/
scanf("%s",records[j].telephone);
}
void Data_Save() /*定义保存函数*/
{
int j;
fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
for(j=1;j<=i;j++)
{ fwrite(&records[j],sizeof(struct record1),1,fp); /*将结构体变量records的确定个数字节输
入到record.txt文件中,个数为结构体friend1所含字节数*/
}
}
void main() /*主函数*/
{
int j,k;
char ch;
char search_name[40]; /*定义字符串变量*/
Data_Load(); /*声明载入数据函数*/
i--;
do
{ printf("********************************* MENU ***************************************\n");
printf("------------------------! WELLCOME TO THE SYSTEM !------------------------------");
printf("\n*\tSelect Function: *");
printf("*\t1.Add New *");
printf("*\t2.View the data *");
printf("*\t3.Delete *");
printf("*\t4.Search *");
printf("*\t5.Insert *");
printf("*\t6.Save and quit *");
printf("*\t7.Quit *");
printf("\n******************************** MENU ****************************************\n");
printf("\tPlease choose the option you need:");
ch=getche(); /*输入字符*/
switch(ch)
{
case '1':
{ int p;
printf("\n\tPlease input the number of people you want to add:");
scanf("%d",&p);/*增加记录*/
printf("\tPlease press ENTER again");
while(getch()!=0x1b&&i<p)
{ i++;
Data_Input(i);
printf("Please press Enter again to continue\n");
}
if(i==p)printf("\n\tThe data is full\n");
} /*记录完后显示通讯录已满*/
break;
case '2': j=1; /*打印所有记录*/
while(getch()!=0x1b&&j<=i) Data_Show(j++); /*声明打印数据函数*/
if(j>i) printf("\n\tThe system is end\n"); /*显示记录末尾*/
break;
case '3': /*删除通讯录中的记录*/
if(i<1)
{ printf("\n\tno record\n"); /*显示无记录*/
break;
}
printf("\n\tplease input the number you want to delect:");
scanf("%d",&k);
printf("\tsucceed!\n");
for(j=k;j<i;j++) /*将删除位置后的元素顺序前移,即后一数据复制到前一位置,循环操作*/
{ strcpy(records[j].name,records[j+1].name);
records[j].sex=records[j+1].sex;
records[j].birth.year=records[j+1].birth.year;
records[j].birth.month=records[j+1].birth.month;
records[j].birth.day=records[j+1].birth.day;
strcpy(records[j].addr.post_num,records[j+1].addr.post_num);
strcpy(records[j].addr.addr,records[j+1].addr.addr);
strcpy(records[j].telephone,records[j+1].telephone);
}
i--; /*元素总数减1*/
break;
case '4': /*通讯录搜索功能*/
printf("\n\tPlease input the name:"); /*输入名字*/
scanf("%s", search_name); /*获得名字到指针型字符串变量*/
for(j=1;j<=i;j++)
{
if(strcmp(search_name,records[j].name)==0) /*比较字符串,即查看是否与记录中名字
相同*/
{ Data_Show(j);
printf("\n"); /*搜索成功,打印记录结束循环*/
break;
}
}
if(j>i) /*搜索失败*/
printf("\n\tNo Record "); /*显示无此记录*/
break;
case '5':
printf("\n\tInsert No:"); /*录入插入位置*/
scanf("%d",&k);
for(j=k+1;j<i;j++) /*将插入位置后的元素顺序后移,即将其复制到后一位置,循环操作*/
{ strcpy(records[j].name,records[j-1].name);
records[j].sex=records[j-1].sex;
records[j].birth.year=records[j-1].birth.year;
records[j].birth.month=records[j-1].birth.month;
records[j].birth.day=records[j-1].birth.day;
strcpy(records[j].addr.post_num,records[j-1].addr.post_num);
strcpy(records[j].addr.addr,records[j-1].addr.addr);
strcpy(records[j].telephone,records[j-1].telephone);
}
Data_Input(k); /*声明增加数据函数*/
i++;/*将记录数目加一*/
break;
case '6': Data_Save();
printf("\n"); /*声明保存函数*/
exit(0); break; /*保存后退出*/
case '7': printf("\n\tsave or not?:(y/n)");
ch=getch(); /*获得输入字符*/
if(ch=='y') Data_Save();
fclose(fp); /*关闭record.txt文件*/
exit(0); /*退出程序*/
default: printf("Please choose1-4\n"); /*输入的如果不是数字1-4,让其重新输入*/
}
}
while(1); /*每次都从第一个功能开始 , 循环操作*/
}
请采纳答案,支持我一下 。
通讯录管理系统是做什么的呢 。【回答要全面】【通讯录管理系统】目前各种在线服务系统已经深刻的影响了人们的联系方式 , 使人们可以在远隔千里之外随时通讯 。过去种种陈旧的联系方式,已经不能满足现代生活的需要 。为此,本设计就为用户提供了一个管理联系方式的方法,本系统设计通过用ASP建立一个WEB平台管理联系方式信息,基于ASP的通讯录性能优良,查询方便,能及时、灵活的进行查询、修改、添加、删除等操作 , 实现了通讯簿的自动化 。通过提供完善的通讯簿服务和规范通讯录的管理,可以达到增进人们交流感情 。本文介绍了通讯录管理系统的基本设计方法,阐述了整个应用系统的设计思路,并对各部分设计进行了详细的分析,最终达到一个完整的设计方案 。最后根据设计的系统进行调试,以便保证系统的可靠性与稳定性 。
通讯录管理系统的设计?程序是我自己的课程设计,已经试验可用
#include
#include
#include
typedef struct{
char num[6];
char name[10];
char unit[20];
char phone[13];
char addr[30];
}datatype;
typedef struct node{
datatype data;
struct node * next;
}listnode;
typedef listnode * linklist;
linklist head;
listnode *p;
int menu_select( );
linklist createlist(void);
void insertnode(linklist head,listnode *p);
listnode *listfind(linklist head);
void delnode(linklist head);
void printlist(linklist head);
void main()
{
for( ; ; ){
switch(menu_select() )
{
case 1:
printf(" ***********************************************\n");
printf(" ************** 通讯录链表的建立 ***************\n");
printf(" ***********************************************\n");
head=createlist();
break;
case 2:
printf(" ***********************************************\n");
printf(" ************** 通讯录信息添加 *****************\n");
printf(" ***********************************************\n");
printf(" ** 编号(4) 姓名(8) 单位(20) 电话(11) 地址(30)**\n");
printf(" ***********************************************\n");
p=(listnode *)malloc(sizeof(listnode));
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.unit,p->data.phone,p->data.addr);
insertnode(head,p);
break;
case 3:
printf(" ******************************\n");
printf(" ******* 通讯录信息查询 *******\n");
printf(" ******************************\n");
p=listfind(head);
if(p!=NULL){
printf(" ** 编号姓名 单位 电话 地址**\n");
printf(" ------------------------------\n");
printf("%s,%s,%s,%s,%s\n",p->data.num,p->data.name,p->data.unit,p->data.phone,p->data.addr);
printf(" ------------------------------\n");
}
else
printf("没有你要找的人 ! \n");
break;
case 4:
printf(" ***********************************\n");
printf(" **********通讯信息的删除***********\n");
printf(" ***********************************\n");
delnode(head);
break;
case 5:
printf(" ***********************************\n");
printf(" **********通讯录链表的输出*********\n");
printf(" ***********************************\n");
printlist(head);
break;
case 0:
printf("\t 谢谢您的使用! \n");
return;
}
}
}
int menu_select()
{
int sn;
printf("\n");
printf("\n");
printf(" \n");
printf("通讯录管理系统\n");
printf(" \n");
printf("======================\n");
printf("1.通讯录链表的建立\n");
printf("2.通讯者结点的插入\n");
printf("3.通讯录链表的查询\n");
printf("4.通讯者结点的删除\n");
printf("5.通讯录链表的输出\n");
printf("0.退出通讯录管理系统\n");
printf("======================\n");
printf( "请选择操作0-5\n\n");
for(; ;)
{
scanf("%d",&sn);
if(sn5)
printf("\t输入错误\n");
else
break;
}
return sn;
}
linklist createlist(void)
{
linklist head=(listnode *)malloc(sizeof(listnode));
listnode *p,*rear;
int flag=1;
rear=head;
while(flag==1)
{
p=(listnode *)malloc(sizeof(listnode));
printf(" 编号(4) 姓名(8)单位(20) 电话(11) 地址(31) \n");
printf(" --------------------------------------------\n");
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.unit,p->data.phone,p->data.addr);
rear->next=p;
rear=p;
printf(" 继续建表吗? (1.是/0.不):");
scanf("%d",&flag);
}
if(flag==1)
printf("创建成功!\n");
rear->next=NULL;
return head;
}
void insertnode(linklist head,listnode *p)
{
listnode *p1,*p2;
p1=head;
p2=p1->next;
while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0)
{
p1=p2;
p2=p2->next;
}
p1->next=p;
p->next=p2;
printf("插入成功!\n");
}
listnode * listfind(linklist head)
{
listnode * p;
char num[6];
char name[10];
int xz;
printf("--------------------\n");
printf(" 1.编号查询\n");
printf(" 2.姓名查询\n");
printf("--------------------\n");
printf("请选择: \n");
p=head->next;
scanf("%d",&xz);
if (xz==1){
printf(" 请输入要查找的编号: ");
scanf("%s",num);
while(p && strcmp(p->data.num,num)<0)
p=p->next;
if (p==NULL || strcmp(p->data.num,num)>0)
p=NULL;
}
else
if(xz=2){
printf("请输入要查询者的姓名: ");
scanf("%s",name);
while(p && strcmp(p->data.name,name)!=0)
p=p->next;
}
return p;
}
void delnode(linklist head)
{
int jx;
listnode *p,*q;
p=listfind(head);
if(p==NULL){
printf("没有要删除的通讯者!:\n");
return;
}
printf ("真的要删除该结点吗?(1.是/0.不):");
scanf("%d",&jx);
if (jx==1){
q=head;
while(q!=NULL && q->next!=p)
q=q->next;
q->next=p->next;
free(p);
printf("通讯者已被删除!\n");
}
}
void printlist(linklist head)
{
listnode * p;
p=head->next;
printf(" 编号姓名单位电话地址\n");
printf(" -----------------------------\n");
while(p!=NULL)
{
printf("%s,%s,%s,%s,%s\n",p->data.num,p->data.name,p->data.unit,p->data.phone,p->data.addr);
printf(" ------------------------------\n");
p=p->next;
}
}
C语言课程设计:通讯录管理系统#include
#include
#include
int n=10;//通讯录中信息的条数 。
char string[80];
//以下几个语句为函数的声明 。
void menu1();//主菜单 。
void menu2();//小菜单,供用户在使用完某个功能后选择回主菜单或结束 。
void choose1();//用于菜单中的选择,为了方便输入错误后重新输入 。。
void choose3(int); //用于modify()函数中的选择 。
void search();//查询 。
void show();//显示通讯录中全部内容 。
void showchoose(); //询问用户是否按照姓名排序后再进行输出 。
void showinorder();//按照姓名进行排序并将其显示 。
void add();//添加数据 。
void modify();//修改数据 。
void del();//删除数据 。
void dial();//对通讯录中某个人进行拔号 。
void thanks();//作者的话 。
void end();//结束该程序 。
struct//定义结构体数组用来存放文件中数据 。
{char name[7];
char add[30];
char pos[7];
char email[20];
char qq[10];
char phone[12];
}people[199];
void menu1()//主菜单函数 。
{
puts("\n\n\n");
printf("Welcom!欢迎使用个人通讯录管理系统!\n");
puts("====================================");
puts("↓↓↓↓↓↓\n");
printf("☆☆☆→ 个人通讯录管理系统 ←☆☆☆\n\n");
printf("※→1. 按姓名进行查询 。\n");
printf("※→2. 显示当前通讯录中的全部内容 。\n");
printf("※→3. 通过姓名添加新数据 。\n");
printf("※→4. 通过姓名修改数据 。\n");
printf("※→5. 通过姓名删除数据 。\n");
printf("※→6. 选择您想找的数据并进行拔号 。\n");
printf("※→7. 感谢 。\n");
printf("※→8. 结束该程序 。\n");
puts("************************************");
puts("====================================\n\n");
printf("^_^