文档视界 最新最全的文档下载
当前位置:文档视界 › C语言程序设计报告-个人通讯录

C语言程序设计报告-个人通讯录

C语言程序设计报告-个人通讯录
C语言程序设计报告-个人通讯录

南京航空航天大学金城学院

《C语言程序设计》课程设计报告个人通讯录系统

学号:姓名:

学号:姓名:

日期:

目录

一、需求分析: (3)

二、程序的主要功能: (3)

三、程序运行平台: (3)

四、系统总框架图: (6)

五、程序类的说明: (6)

六、模块分析: (8)

七、比较有特色的函数: (9)

八、存在的不足与编程体会 (10)

九、程序源代码: (10)

一、需求分析

各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。

二、程序的主要功能

用户信息界面美观、简洁,采用菜单式显示功能选择;

能够从磁盘文件输入和输出数据;

能够对联系人信息进行增、删和改的操作;

能够根据联系人的姓名的拼音顺序从高到低排序;

三、程序运行平台

VC6.0

运行程序“perosnalcontact.exe”,进入登录界面如下

****************************

* *

* *

* 通讯录文件不存在! *

* 通讯录文件已建立! *

* *

* *

****************************

按任意键进入主菜单

请输入您的数字选择:

一、按下任意键进入主菜单

您好! 欢迎使用通讯录!

1: 添加个人信息

2: 查询个人信息

3: 删除个人信息

4: 修改个人信息

5: 信息排序

6: 输出全部信息

7: 写入文件

8: 读取文件

9: 删除所有

0: 退出

请输入您的数字选择:

选择1进入添加信息模块:

请输入您要添加的联系人的信息:

请输入姓名:

选择2进入查询个人信息模块:

欢迎使用查询菜单

1-按姓名查询

2-按QQ查询

3-返回主菜单

请输入您的选择

选择3进入删除个人信息模块

删除菜单

1-删除单个

2-返回主菜单

请输入您的数字选择:

选择4.进入修改个人信息模块

1-按姓名修改

请输入您的数字选择:

选择5.进入联系人排序模块

排序菜单

1-按姓名排序

2-返回主菜单请输入您的数字选择:

选择6.进入输出信息模块

*************** 以下为通讯录所有信息************

________________________________

名字:13213

性别:2144444444444

手机号码:44444444444

电子邮件:44444444444

QQ号码:444444444

________________________________

************************************************

请按任意数字键返回主菜单

选择7.进入写入文件模块

通讯录文件已保存

请按任意数字键返回主菜单

选择8.进入读取信息模块

****************************

* *

* *

* 文件导入成功! *

* *

* *

****************************

按1显示所有信息,按2回主菜单!请输入您的数字选择:

选择9.删除所有信息

四、系统总框架图

五、程序类的说明

struct person

{

char name[15];

char sex[2];

char celephone[22];

char email[40];

long int QQ;

}per[500];//定义一个per数据,有500个元素。

六、模块分析

1. 添加模块

系统将提示用户输入新添加的联系人信息,添加在数据中。

2. 查询模块

根据用户输入的姓名或者QQ号,然后运用strcmp函数对数组中的元素进行对比,然后输入匹配的信息。

3. 删除模块

首先由用户输入姓名,运用strcmp函数查找,显示匹配的信息,由用户输入1或2进行判断是否删除。删除之后将num的值-1。定义int型的findmark,和mark用来判断是否有同名信息,由用户判断时候继续删除同名的联系人。

4. 个人信息修改模块

首先由用户输入姓名,查询到匹配的信息,显示出来,由用户判断是否删除,运行xiugaixinxi(a)函数。

5. 排序模块

用strcmp函数判断数据中第一个元素和它的后一个元素是否相同,不相同则把数据两个元素进行交换。

6. 写文件模块

程序结束时将所有联系人的信息写入到“per.bin”文件中。

7.显示所有信息

用for循环将从0到num的所有信息全部打印在屏幕上。

8. 读文件模块

程序开始时从“per.bin”读取所有联系人信息。

9. 删除所有信息模块

由用户输入航班号和订票数目,系统判断能满足用户需求则输出“订票成功”信息。先尝试读取文件信息,若读取失败,则输出信息已删除,否则将0赋给num,显示信息已删除。

七、比较有特色的函数

void newrecord()//*添加纪录*//

{

int a;

system("cls");

system("color 2a");

loop: printf("\n\n\n\n\t\t 请输入您要添加的联系人的信息:\n");

printf("\n请输入姓名:\n");

name: scanf("%s",&per[num].name);

if(strlen(per[num].name)>15)

{

printf("\n对不起!您的输入有误!请重新输入");

goto name;

}

八、存在的不足与对策、编程体会

添加个人信息的方式过于麻烦,可以使用链表来代替数据,方便临时添加信息。

九、参考文献

百度文库

十、程序源代码

//制作一个个人通讯录,用来保存联系人的电话,性别,姓名,QQ号,Eamil地址。

//组成部分:1.显示界面2.信息写入磁盘,从磁盘中读取信息3.对联系人信息进行删改4.根据联系人的姓名进行排序

#include

#include

#include

#include

struct person

{

char name[15];

char sex[2];

char celephone[22];

char email[40];

long int QQ;

}per[500];//定义一个per数据,有500个元素。

int num=0;//*外部变量num为文件中的纪录数*//

FILE *fp;

void mainmenu();//*主菜单*//

void newrecord();//新添纪录*//

void xiugaimenu();//*修改菜单*//

void xiugaibyname();//*按姓名修改*//

void searchmenu();//*查询菜单*//

void searchbyname();//*按姓名查询*//

void searchbyQQ();//*按QQ号查询*//

void deletemenu();//*删除菜单*//

void deleteall();//*删除所有信息*//

void deleteone();//*删除单个*//

void showall();//*输出全部信息*//

void readfromfile();//*读取文件*//

void writetofile();//*写入文件*// /

void deletebyname();//*按姓名删除*/

void listbyname();//*按姓名排序*//

void listmenu();//*排序菜单*//

void deleteall();//*删除所有信息*//

void main()//*主函数*//

{

system("cls");//清空屏幕

readfromfile(); //读取文件

while (1)

{

mainmenu(); //主菜单

}

}

void mainmenu()//*主菜单函数*//

{

int a;

system("cls");

system("color 2a");//更改背景板为绿色

printf("\n\t 您好! 欢迎使用通讯录!\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");

printf(" 9: 删除所有\n");

printf(" 0: 退出\n");

printf("\n 请输入您的数字选择: \n");

loop1: scanf("%d",&a);

switch (a)

{

case 1:newrecord();break;

case 2:searchmenu();break;

case 3:deletemenu();break;

case 4:xiugaimenu();break;

case 5:listmenu();break;

case 6:showall();break;

case 7:writetofile();break;

case 8:readfromfile();break;

case 9:deleteall();break;

case 0:exit(0);

default:printf("\n对不起!您的输入有误!请重新输入: \n");goto loop1;

}

}

void newrecord()//*添加纪录*//

{

int a;

system("cls");

system("color 2a");

loop: printf("\n\n\n\n\t\t 请输入您要添加的联系人的信息:\n");

printf("\n请输入姓名:\n");

name: scanf("%s",&per[num].name);

if(strlen(per[num].name)>15)

{

printf("\n对不起!您的输入有误!请重新输入");

goto name;

}

printf("\n请输入性别:\n");

sex: scanf("%s",&per[num].sex);

if(strlen(per[num].sex)==0)

{

printf("\n对不起!您的输入有误!请重新输入\n");

goto sex;

}

printf("\n请输入手机号码:\n");

celephone: scanf("%s",&per[num].celephone);

if(strlen(per[num].celephone)!=11)

{

printf("\n对不起!您的输入有误!请重新输入\n");

goto celephone;

}

printf("\n输入电子邮箱:");

email: scanf("%s",&per[num].email);

if(strlen(per[num].email)>30||strlen(per[num].email)<4)

{

printf("\n对不起!您的输入有误!请重新输入\n");

goto email;

printf("\n输入QQ号码:\n");

QQ: scanf("%ld",&per[num].QQ);

if(per[num].QQ>1600000000||per[num].QQ<10000000)

{

printf("\n对不起!您的输入有误!请重新输入\n");

goto QQ;

}

num++;

printf("\n是否继续添加?\n");

printf("\n请按1和2(1代表继续;2代表不继续)\n");

printf("\n请输入您的选择\n ");

scanf("%d",&a);

if(a==1)

{

goto loop;

}

else

{

return;

}

}

void searchmenu()//*查询菜单*//

{

int a;

system("cls");

system("color 2a");

printf("\n\t\t 欢迎使用查询菜单");

printf("\n\t\t 1-按姓名查询");

printf("\n\t\t 2-按QQ查询");

printf("\n\t\t 3-返回主菜单");

printf("\n\t\t");

printf("\n请输入您的选择\n");

scanf("%d",&a);

switch (a)

{

case 1:searchbyname();break;

case 2:searchbyQQ();break;

case 3:mainmenu();break;

}

}

void searchbyQQ()//*按QQ查询*//

{

int mark=0;

long int QQ;

printf("\n\t\t 按QQ号码查找\n");

printf("\n请输入QQ号码:");

scanf("%ld",&QQ);

for(i=0;i

{

if(per[i].QQ==QQ)

{

printf("\n\t\t 以下是您查找的联系人的信息");

printf("\n\t\t________________________________");

printf("\n\t\t名字:%s",per[i].name);

printf("\n\t\t性别:%s",per[i].sex);

printf("\n\t\t手机号码:%s",per[i].celephone);

printf("\n\t\t电子邮件:%s",per[i].email);

printf("\n\t\tQQ号码:%ld",per[i].QQ);

printf("\n\t\t________________________________");

printf("\n\t\t请按任意数字键返回主菜单");

mark++;

scanf("%d",&j);

return;

}

}

if (mark==0)

{

printf("\n\t\t对不起!没有该联系人的信息!");

printf("\n\t\t请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

}

void searchbyname()//*按姓名查询*//

{

int mark=0;

int i,j,findmark=0;

int a=0;

char name[15];

printf("\n 按姓名查找");

printf("\n请输入姓名:");

scanf("%s",name);

for(i=a;i

{

if (strcmp(per[i].name,name)==0)

{

findmark++;

printf("\n\t\t 以下是您查找的联系人的信息");

printf("\n\t\t________________________________");

printf("\n\t\t名字:%s",per[i].name);

printf("\n\t\t性别:%s",per[i].sex);

printf("\n\t\t手机号码:%s",per[i].celephone);

printf("\n\t\t电子邮件:%s",per[i].email);

printf("\n\t\tQQ号码:%ld",per[i].QQ);

printf("\n\t\t________________________________");

if ((i+1)

{

printf("\n是否继续查找相同名字的联系人的信息?(1代表继续;2代表不继续)\n");

scanf("%d",&j);

if (j==1)

{

a=i;

mark++;

continue;

}

else

break;

}

else

{

printf("\n请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

}

}

if(mark!=0)

{

printf("\n对不起! 没有相同名字的该联系人的信息!!");

printf("\n请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

else if(findmark==0)

{

printf("\n对不起!没有该联系人的信息!");

printf("\n请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

}

void deletebycelephone()//*按手机号码删除*//

{

int i,j,h,m;

int deletemark=0;

char celephone[11];

printf("\n\t\t请输入要删除的联系人的手机号码:");

scanf("%s",celephone);

for(i=0;i

{

if(strcmp(per[i].celephone,celephone)==0)

{

deletemark++;

printf("\n\t\t以下是您要删除的联系人的纪录:");

printf("\n\t\t________________________________");

printf("\n\t\t名字:%s",per[i].name);

printf("\n\t\t性别:%s",per[i].sex);

printf("\n\t\t手机号码:%s",per[i].celephone);

printf("\n\t\t电子邮件:%s",per[i].email);

printf("\n\t\tQQ号码:%ld",per[i].QQ);

printf("\n\t\t________________________________");

printf("\n\t\t是否删除?(1代表删除;2代表不删除)\n");

printf("\n 请输入您的数字选择: \n");

scanf("%d",&h);

if(h==1)

{

for (j=i;j

per[j]=per[j+1];

num--;

printf("\n\t\t删除成功");

printf("\n是否继续删除?(1代表继续;2代表不继续)\n");

printf("\n 请输入您的数字选择: \n");

scanf("%d",&h);

if(h==1)

deletebycelephone();

}

}

}

if(deletemark==0)

{

printf("\n\t\t对不起!没有该联系人的纪录!");

printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)\n");

printf("\n 请输入您的数字选择: \n");

scanf("%d",&m);

if(m==1)

deletebycelephone();

}

}

void deletemenu()//*删除菜单*//

{

int i,j;

system("cls");

system("color 3b");

if(num==0)

{

printf("\n\t\t对不起!文件中无任何纪录!");

printf("\n\t\t请先添加个人信息!");

printf("\n\t\t请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

else

{

printf("\n\t\t 删除菜单");

printf("\n\t\t 1-删除单个");

printf("\n\t\t 2-返回主菜单");

printf("\n\t\t ");

printf("\n\t\t请输入您的数字选择: ");

loop4: scanf("%d",&i);

switch (i)

{

case 1:deleteone();break;

case 2:mainmenu();break;

default:printf("\n对不起!您的输入有误!请重新输入: \n");goto loop4;

}

}

}

void deleteone()//*删除单个*//

{

int i;

printf("\n\t\t1-按手机号码删除2-按姓名删除");

printf("\n\t\t请输入您的选择:");

loop5:scanf("%d",&i);;

switch (i)

{

case 1:deletebycelephone();break;

case 2:deletebyname();break;

default:printf("\n对不起!您的输入有误!请重新输入: \n");goto loop5;

}

}

void deletebyname()//姓名删除*//

{

int a=0;

int findmark=0;

int i,j,k;

int deletemark=0;

char name[15];

printf("\n\t\t请输入您要删除的联系人的姓名:");

scanf("%s",name);

for (i=a;i

{

if (strcmp(per[i].name,name)==0)

{

printf("\n\t\t以下是您要删除的联系人的纪录:");

findmark++;

printf("\n\t\t________________________________");

printf("\n\t\t名字:%s",per[i].name);

printf("\n\t\t性别:%s",per[i].sex);

printf("\n\t\t手机号码:%s",per[i].celephone);

printf("\n\t\t电子邮件:%s",per[i].email);

printf("\n\t\tQQ号码:%ld",per[i].QQ);

printf("\n\t\t________________________________");

printf("\n\t\t是否删除?(1代表删除;2代表不删除)\n");

printf("\n\t\t请输入您的数字选择: ");

scanf("%d",&k);

if(k==1)

{

for (j=i;j

per[j]=per[j+1];

num--;

deletemark++;

printf("\n\t\t删除成功");

if((i+1)

{

printf("\n\t\t是否继续删除相同姓名的联系人的信息?(1代表删除;2代表不删除)");

printf("\n\t\t请输入您的数字选择: ");

scanf("%d",&k);

if(k=1)

{

a=i;

findmark++;

continue;

}

}

printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)");

printf("\n\t\t请输入您的数字选择: ");

scanf("%d",&k);

if(k==1)

deleteone();

else

break;

}

}

else

continue;

}

if((deletemark==0)&&(findmark==0))

{

printf("\n\t\t对不起!没有该联系人的纪录!");

printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)");

printf("\n 请输入您的数字选择: \n");

scanf("%d",&k);

if(k==1)

deleteone();

}

else if(findmark!=0)

{

printf("\n\t\t对不起!没有重名信息!");

printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)");

printf(" \n 请输入您的数字选择: \n");

scanf("%d",&k);

if(k==1)

deleteone();

}

}

void xiugaimenu()//*修改菜单*//

{

int i,j;

system("cls");

system("color 3f");

if(num==0)

{

printf("\n\t\t对不起!文件中无任何纪录!");

printf("\n\t\t请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

else

{

printf("\n\t\t 1-按姓名修改\n");

printf(" \n 请输入您的数字选择: \n");

loop6:scanf("%d",&i);

switch (i)

{

case 1:xiugaibyname();break;

default:printf("\n对不起!您的输入有误!请重新输入: \n");goto loop6;

}

}

}

void xiugaixiangmu(int a)//*修改项目*//

{

int i;

system("cls");

system("color c0");

printf("\n\t\t 请输入您要修改的项目");

printf("\n\t\t\n");

printf("\n\t\t1-手机号码\n");

printf("\n\t\t2-姓名\n");

printf("\n\t\t3-QQ号码\n");

printf("\n\t\t4-电子邮件\n");

printf("\n\t\t5-回主菜单\n");

printf("\n\t\t\n");

printf("\n 请输入您的数字选择: ");

scanf("%d",&i);

loop9: switch (i)

{

case 1:printf("请输入手机号码:");

scanf("%s",&per[a].celephone);break;

case 2:printf("请输入姓名:");

scanf("%s",&per[a].name);break;

case 3:printf("请输入QQ号码:");

scanf("%s",&per[a].QQ);break;

case 4:printf("请输入email:");

scanf("%s",&per[a].email);break;

case 5:mainmenu();break;

default: printf("\n对不起!您的输入有误!请重新输入: \n ");goto loop9;

}

}

void xiugaibyname()//*按姓名修改*//

{

int a=0;

int findmark=0;

int xiugaimark=0;

int i,j;

char name[15];

printf("\n\t\t请输入要修改联系人的姓名:");

scanf("%s",name);

for (i=a;i

{

if (strcmp(per[i].name,name)==0)

{

printf("\n\t\t以下是您要修改的联系人的纪录:");

findmark++;

printf("\n\t\t________________________________");

printf("\n\t\t名字:%s",per[i].name);

printf("\n\t\t性别:%s",per[i].sex);

printf("\n\t\t手机号码:%s",per[i].celephone);

printf("\n\t\t电子邮件:%s",per[i].email);

printf("\n\t\tQQ号码:%ld",per[i].QQ);

printf("\n\t\t________________________________");

printf("\n\t\t是否修改?(1代表修改;2代表不修改)");

printf(" \n 请输入您的数字选择: \n ");

scanf("%d",&j);

if (j==1)

{

xiugaixiangmu(i);

xiugaimark++;

printf("\n\t\t修改成功");

if((i+1)

{

printf("\n\t\t是否继续修改相同姓名的联系人的信息?(1代表继续;2代表不继续)");

printf(" \n 请输入您的数字选择: \n");

scanf("%d",&j);

if (j==1)

{

a=i;

findmark++;

continue;

}

}

printf("\n\t\t是否继续修改?(1代表继续;2代表不继续)");

printf(" 请输入您的数字选择: ");

scanf("%d",&j);

if (j==1)

xiugaibyname();

return;

}

}

}

if ((xiugaimark==0)&&(findmark==0))

{

printf("\n\t\t没有该联系人的纪录");

printf("\n\t\t是否继续修改?(1代表继续;2代表不继续)");

printf(" \n 请输入您的数字选择: \n");

scanf("%d",&j);

if (j==1)

xiugaibyname();

return;

}

else if (findmark!=0)

{

printf("\n\t\t没有重名信息");

printf("\n\t\t是否继续修改?(1代表继续;2代表不继续)");

printf(" \n 请输入您的数字选择: \n ");

scanf("%d",&j);

if (j==1)

xiugaibyname();

return;

}

}

void listmenu()//*排序菜单*//

{

int i,j;

system("cls");

system("color b0");

if(num==0)

{

printf("\n\t\t对不起,文件中无任何纪录");

printf("\n\t\t请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

else

{

system("cls");

system("color 12");

printf("\n\t\t 排序菜单");

printf("\n\t\t 1-按姓名排序");

printf("\n\t\t 2-返回主菜单");

printf(" \n 请输入您的数字选择: \n");

loop10: scanf("%d",&i);

switch(i)

{

case 1:listbyname();break;

case 2:mainmenu();break;

default:printf("\n对不起!您的输入有误!请重新输入: \n ");goto loop10;

}

}

}

void listbyname()//*按姓名排序*//

{

int i,j,k;

struct person tmp;

for (i=1;i

{

if(strcmp(per[i].name,per[i-1].name)<0)

{

tmp=per[i];

j=i-1;

do

{

per[j+1]=per[j];

j--;

}

while ((strcmp(https://www.docsj.com/doc/f63247418.html,,per[j].name)<0&&j>=0));

per[j+1]=tmp;

}

}

printf("\n\t\t排序成功,是否显示?(1代表继续;2代表不继续)");

printf(" \n请输入您的数字选择: \n ");

scanf("%d",&k);

if (k==1)

showall();

return;

C语言课程设计报告—手机通讯录管理系统

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

C语言课程设计---通讯录管理系统

中国地质大学本科生课程论文封面 课程名称C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (5) 4.数据结构设计 (5) 5.算法设计 (5) 6.程序代码 (14) 7.程序运行结果 (14) 8.编程中遇到的困难及解决方法 (27) 9.总结心得及良好建议 (28) 10.致谢 (28)

1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。 ⑴数据包括:人名、工作单位、电话号码和E-mail地址。 ⑵可对记录中的姓名和电话号码进行修改。 ⑶可增加或删除记录。 ⑷可显示所有保存的记录。 ⑸可按人名或电话号码进行查询。 2.程序设计思路 根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图 4.数据结构设计 整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。 5.算法设计 1.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

通讯录管理系统课程设计报告书C语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:

学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

通讯录设计报告

C程序设计报告 系(部、中心) 姓名学号 专业班级 课程名称 设计题目名称 起止时间 成绩 指导教师签名

目录 第1章题目与要求 (3) 1.1 基本要求(及格 (3) 1.2 高级要求(加分)... (3) 第2章用户需求分析 (3) 2.1 功能需求 (3) 第3章设计方案 (3) 3.1设计思路 (3) 3.2功能设计 (3) 第4章实施方案 (4) 第5章软件调试 (5) 5.1 错误介绍 (5) 5.2 错误分析及解决方案 (5) 第6章程序流程图及结构说明 (6) 第7章程序清单 (7) 第8章效果展示 (18)

第1章题目与要求 本次程序设计实践的题目是《通信录管理系统的设计》。 1.1基本要求(及格) (1)使用C语言,设计一个字符界面并带有菜单的通信录管理系统,每个记录中应包含:姓名、性别、年龄、联系电话、电子邮箱等项目。 (2)最大记录数:100。 (3)程序基本功能:显示记录、添加记录、删除记录。 1.2高级要求(加分) (1)以多文件方式设计该程序。 (2)对程序中的数据类型进行自定义(为方便程序的阅读和管理,定义自己的类型名)。 (3)能将该通讯录制作成文件保存于磁盘。 第2章用户需求分析 2.1 功能需求 通过《程序设计实践I(能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时用户需求的基本功能,要求系统需要有以下功能:(1)有菜单选择界面; (2)联系人信息修改简单方便,支持多种方式的修改; (3)方便的联系人信息查询,支持多种方式的查询; (4)联系人信息查看功能能供用户详细的查看; (5)退出时若用户更改了联系人相关信息或添加、删除联系人时,会提示用户联系人信息已更改是否保存; (8)有动态的开始界面。 第3章设计方案 3.1 设计思路 为了更好地实现上述内容,此程序采用了结构体、链表,来处理联系人的数据。结构体能够包含联系人的各项信息,如姓名、家庭地址、电话号码等,克服了数组只能包含同种类型的数据的缺点。链表数据的存放不需要连续的内存,相对于结构体数组减少了内存空间的浪费。利用fopen等函数创建文件、保存文件数据等,实现退出程序后联系人的数据能够保存,方便以后的查看、添加、修改等动作。采取多文件的方式,能够更好地对程序进行维护调试。 3.2 功能设计

C语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 2015年12 月30日 计算机工程系课程设计报告 课程名称:C语言课程设计 课程设计题目:通讯录管理系统 班级:网络14-3班姓名:苏建花学号: 目录(参考) 1.设计目的与要求…………………………………………X 1.1题目与设计要求……………………………………X 1.2本程序涉及的知识点………………………………X 2.功能设计………………………………………………X 2.1总体设计……………………………………………X 2.2详细设计……………………………………………X 3.程序实现……………………………………………X 3.1程序实现时应考虑的问题…………………………X 3.2 XX模块核心代码…………………………………X 4.测试分析……………………………………………X 4.1 测试结果及分析…………………………………X 4.总结…………………………………………………X 参考文献………………………………………………X 1、设计目的与要求 这次课程设计的目的在于: 1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用; 2.通过综合C语言的基本知识来解决实际问题; 3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果

1.1 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、 同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、 姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 1.2 本程序设计的知识点 (1)采用结构体数组。 struct Person { char a[16]; char s[16]; char d[16]; char f[24]; struct Person *next; }stu; (2)运用函数之间的调用 主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。 (3)利用指针变量 struct Person *head; struct Person *p1,*p2 2 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 2.1需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

C语言课程设计通讯录管理系统

C语言课程设计通讯录 管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

***科技大学 本科生课程设计说明书 题目:C语言课程设计 ——通讯录管理系统 学生姓名:** 学号:*** 专业:软件工程 班级:1 指导教师:**

内蒙古科技大学课程设计任务书 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 通讯录管理系统 现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块: 新建文件、打开文件、保存信息到文件 输入记录、输出记录 查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查 询) 修改、插入和删除记录 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天? 选择课程设计题目,分析课题的要求 第二天? 编程 第三天? 编程及调试 第四天? 写课程设计报告

C语言程序设计学生通讯录管理系统

C语言程序设计学生通讯录管理系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

#define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add();

int listbyname(); int dele(); int save(); int exit(); void main() { system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() {

char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; } adduser()

C++-通讯录课程设计报告

C++面向对象程序设计 课程设计报告 》 设计题目:通讯录系统 学生学号: P P 学生姓名: 王元波次仁多布杰 专业班级:2009级计算机科学与技术(3)班学生成绩: 指导教师:蔡正琦 ] 计算机科学与信息工程学院 2010-6-26

一、设计任务分析 实现以下功能: · 1) 通讯录编辑(添加、删除); 2) 按不同的项进行查找; 3) 对已存在的通讯录按不同的项排序; 4) 将通讯录写入文件; 5) 从文件读入通讯录。 二、模块设计 本次程序设计主要设计了六个模块(主要是:(),(),(),(),(),(),())()函数用于通讯录中的信息进行添加,主要流程如下: — ()函数用于通讯录中的信息进行删除,主要流程如下:

()函数用于通讯录中的信息进行修改,主要流程如下: ()函数用于通讯录中的信息进行查找,主要流程如下:

~ ()函数用于通讯录中的信息进行排序,主要流程如下: ()函数用于从文本文件中读取信息,主要流程如下:

()函数用于将信息写入文本文件,主要流程如下:

三、… 四、主要数据结构 结构数组: struct student o<

通讯录管理系统 C语言课程设计

C语言课程设计:通讯录管理系统

目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (3) 四、上机操作 (14) 五、实习心得 (19) 六、源程序 (20)

一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1)数据包括:人名、工作单位、电话号码和E-MAIL地址。(2)可对记录中的姓名和电话号码进行修改。 (3)可增加和删除记录。 (4)可显示所有的保存记录。 (5)可按人名或电话号码进行查询。 [提示] 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。

三、详细设计 1、主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N 【程序】 int main()

***********\n"); printf("\t\t**********************************************\n"); scanf("%d",&n); for(i=0;i

通讯录C语言程序设计报告书

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

C语言通讯录系统课程设计报告

通讯录系统的设计与实现电子科技大学电信三班傅得耕 3.1系统的需求分析 通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。根据系统界面的提示信息对通讯录进行查询、初始化等操作。 系统功能需求分析描述如下: (1)创建联系人。 (2)显示所有联系人:显示可以进行的操作。 (3)删除联系人。 (4)查询:根据进行查询,并可显示所有关于该人的信息。(5) :退出。 3.2系统的设计 3.2.1 系统的总体设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。 (2)系统模块结构图 根据需求分析结果,通讯录系统可以分为五大模块:创建联

系人模块、显示功能模块、查找联系人功能模块、删除联系人模块以及退出模块。 系统模块结构如图: 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询、创建显示及删除。 ㈡查询人物信息 进入此菜单功能模块,输入您要查询的图书的名字。 图书查询模块流程如图:

否是 是 重新输入 否 退出系统 3.3 测试结果 系统主界面

创建 显示系统 查询系统

删除系统 3.4 源代码 #include #include #include #define LEN sizeof(struct people) struct people {

通讯录系统程序设计报告

通讯录系统程序设计报告专业班级:电创新1301班 项目名称:通讯录系统程序设计 (address book system) 小组成员:陈灯念(组长) 罗晶晶 杨苒晨 于桐桐 盛超群 指导老师:张丽静 完成日期:2013年1月2日 教师评价:

目录 一、系统简介 1. 目标功能 2. 实现功能 3. 未实现功能 二、成员分工及完成情况 三、数据库 1. 登录数据库 2. 查询数据库 3. 老师通讯信息数据库 4. 同学信息数据库 四、具体模块设计 1. 登录部分 2. 主界面 3. 单击同学按钮 4. 单击老师按钮 5. 单击按姓名查找按钮 6. 单击按学号查找按钮功能 五、项目总结

一系统简介 ①目标功能: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2.登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“朋友”按钮,弹出对话框,可依次查看自己的朋友的通讯信息。 (4)单击“家人”按钮,弹出对话框,可依次查看自己的家人通讯信息。 (5)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 (6)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的学号,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 3. 点击同学,老师,朋友或家人按钮后,弹出对话框,可以单击“添 加”按钮或“删除”按钮添加或删除联系人或者单击“修改”按钮修 改联系人的信息。 ②实现功能: 通过本小组成员的通力合作,在看书和上网查询资料后,目前本通讯录实现的功能有: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2. 登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧”按钮,即弹出消息框显示被查询人的通讯信息。 (4)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须

c语言课程设计学生通讯录管理系统精编版

c语言课程设计学生通讯录管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;

后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统; 设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20];

C语言设计报告(电子通讯录)

辽宁工程技术大学 高级语言程序设计(C)课程设计报告书 设计题目:电子通讯录 2013年01月

目录 一、引言…………………………………… 二、系统功能和原始数据……………………………………… 三、程序总体设计……………………………………………… 四、功能模块函数设计和调试……………………………… 五、程序清单…………………………………………………… 六、课程设计总结……………………………………………

一、引言 通过使用C语言编程实现通讯录管理系统的基本功能,并设计了简单的界面。该程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。用到的知识点是结构体类型定义结构提数组的的定义及应用。另外还用到了大量的自定义函数。本人设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。 二、系统功能和原始数据 2.1 原始数据 录入内容包括ID号,姓名,性别,出生日期,固定电话号码,移动电话号码,QQ号码,电子邮箱,通讯地址和邮编等。其中出生日期又包括年份,月份和日期三项。 2.2 系统功能 ●查找功能:能够提供检索除功能,他可以随心所欲的查找通讯录中任意一位 朋友的详细信息。通讯录结构中的许多项,都可以作为查找的线索,例如出生日期,邮编和姓名。 ●自动排序功能:它能提供按姓名等排序的功能 ●纪录和读盘功能:在用户结束程序时,如果做了改动操作,程序会提示用户 是否存盘。 三、程序总体设计和调试 3.1 总体设计:包括系统总体设计框架和系统功能模块图;

按出生日期查询:输入出生日期显示对应朋友资料 按邮编查询:输入邮编显示对应的朋友资料 3.2 详细设计: 1、主函数:main() 显示系统工作菜单,罗列该系统所有功能。先声明所有将会调用到的函数名。再运用选择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。亮点:定义一个全局指针变量 *p和全局变量a。其中a表示当前系统中职工人数,p指向a的地址,追踪人数变化,这样在添加或者删除导致人数变化后,浏览函数display()能够正确显示出当前人数的职工信息。宏定义define N指定首次输入的职工人数,可根据不同需要随时更改。 2、输入函数:void input()

C语言程序的设计报告_个人通讯录

航空航天大学金城学院 《C语言程序设计》课程设计报告个人通讯录系统 学号:: 学号:: 日期:

目录 一、需求分析: (3) 二、程序的主要功能: (3) 三、程序运行平台: (3) 四、系统总框架图: (6) 五、程序类的说明: (6) 六、模块分析: (8) 七、比较有特色的函数: (9) 八、存在的不足与编程体会 (10) 九、程序源代码: (10)

一、需求分析 各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。 二、程序的主要功能 ?用户信息界面美观、简洁,采用菜单式显示功能选择; ?能够从磁盘文件输入和输出数据; ?能够对联系人信息进行增、删和改的操作; ?能够根据联系人的的拼音顺序从高到低排序; 三、程序运行平台 VC6.0 运行程序“perosnalcontact.exe”,进入登录界面如下 **************************** * * * * * 通讯录文件不存在! * * 通讯录文件已建立! * * * * * **************************** 按任意键进入主菜单 请输入您的数字选择: 一、按下任意键进入主菜单 您好! 欢迎使用通讯录! 1: 添加个人信息 2: 查询个人信息 3: 删除个人信息 4: 修改个人信息 5: 信息排序 6: 输出全部信息 7: 写入文件 8: 读取文件 9: 删除所有 0: 退出 请输入您的数字选择:

选择1进入添加信息模块: 请输入您要添加的联系人的信息: 请输入: 选择2进入查询个人信息模块: 欢迎使用查询菜单 1-按查询 2-按QQ查询 3-返回主菜单 请输入您的选择 选择3进入删除个人信息模块 删除菜单 1-删除单个 2-返回主菜单 请输入您的数字选择: 选择4.进入修改个人信息模块 1-按修改 请输入您的数字选择: 选择5.进入联系人排序模块 排序菜单 1-按排序 2-返回主菜单请输入您的数字选择: 选择6.进入输出信息模块 *************** 以下为通讯录所有信息************ ________________________________ 名字: 13213 性别: 2144444444444 手机: 44444444444 电子:44444444444 QQ:444444444 ________________________________ ************************************************ 请按任意数字键返回主菜单 选择7.进入写入文件模块

C语言课程设计通讯录管理系统

#include #include #include #include #define N 100 int M=5; struct student { char num[10];char name[10];char tel[10];}; void myprint(); void mycreat(struct student *p,int); void mydisplay(struct student *p,int); void mysearch(struct student *p,int); void mymodify(struct student *p,int); void mydelete(struct student *p,int); void myadd(struct student *p,int); void main() { char choose='\0',yes_no='\0'; struct student record[N]={0}; do { myprint(); printf("请选择(0-6):"); choose=getche(); switch(choose) { case '1':mycreat(record,M);break; case '2':mydisplay(record,M);break; case '3':mysearch(record,M);break; case '4':mymodify(record,M);break; case '5':myadd(record,M);break; case '6':mydelete(record,M);break; case '0':exit(0); default :printf("\nerror...\n"); } printf("\n继续选择吗(y/n)?\n"); do {yes_no=getch();} while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } void myprint() { system("cls");

C语言通讯录系统课程设计报告

通讯录系统的设计与实现桂林电子科技大学电信三班傅得耕 3.1系统的需求分析 通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。根据系统界面的提示信息对通讯录进行查询、初始化等操作。 系统功能需求分析描述如下: (1)创建联系人。 (2)显示所有联系人:显示可以进行的操作。 (3)删除联系人。 (4)查询:根据姓名进行查询,并可显示所有关于该人的信息。 (5) :退出。 3.2系统的设计 3.2.1 系统的总体设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。 (2)系统模块结构图 根据需求分析结果,通讯录系统可以分为五大模块:创建联系人模块、显示功能模块、查找联系人功能模块、删除联系人模

块以及退出模块。 ㈡查询人物信息 进入此菜单功能模块,输入您要查询的图书的名字。 图书查询模块流程如图: 3.3 创建

删除系统 3.4 源代码 #include #include #include #define LEN sizeof(struct people) struct people { char name[10]; char address[50]; char postcode[7]; char phonenum[12]; struct people * next; }; int n = 0, c; static struct people * head; void insert(); void show();

相关文档
相关文档 最新文档