精品C语言毕业课程设计通讯录管理系统.docx

上传人:b****1 文档编号:757198 上传时间:2022-10-12 格式:DOCX 页数:18 大小:261.70KB
下载 相关 举报
精品C语言毕业课程设计通讯录管理系统.docx_第1页
第1页 / 共18页
精品C语言毕业课程设计通讯录管理系统.docx_第2页
第2页 / 共18页
精品C语言毕业课程设计通讯录管理系统.docx_第3页
第3页 / 共18页
精品C语言毕业课程设计通讯录管理系统.docx_第4页
第4页 / 共18页
精品C语言毕业课程设计通讯录管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

精品C语言毕业课程设计通讯录管理系统.docx

《精品C语言毕业课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《精品C语言毕业课程设计通讯录管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

精品C语言毕业课程设计通讯录管理系统.docx

精品C语言毕业课程设计通讯录管理系统

C语言通讯录管理系统

课程设计报告

题目

通讯录管理系统

学号

姓名

年级专业

09级电子信息工程

指导教师

完成日期

 

1设计题目的内容、任务及具体要求

本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。

本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。

我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。

记录通讯录内的人员的姓名、地址、邮编、电话号码。

显示所有人员的信息。

通过输入姓名查找人员信息。

通过输入姓名查找到要删除的人员信息,然后可以进行删除。

通过输入姓名查找到要修改的人员信息,然后可以进行修改。

添加人员信息。

2总体设计思路

本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、添加功能的子函数。

在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。

删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。

查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。

修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。

下面就是总的程序流程图:

3功能模块的具体设计

3.1界面分析

3.1.1开始界面

3.1.2显示功能的界面:

选择1后系统出现现有的所有人员名单:

3.1.3显示删除功能的界面

3.1.4查找功能:

通过5:

find—by—name用姓名来查找个人的通讯录信息

通过6:

find—by—tel用电话号码来查找个人的通讯录信息

3.1.5修改功能的界面:

输入姓名后的系统界面:

输入修改信息后的系统界面:

3.1.6添加功能的界面:

选择1后的系统界面:

3.2程序设计主要内容

#include

{

intm;

printf("***************************************************\n\n\n");

printf("*********Welcometouseyufeng's***************\n\n\n");

printf("**************addressbook**********************\n\n\n");

creat();*主界面*

while

(1)

{printf("******************************\n\n");

printf("0exit,press0\n\n");

printf("1append,press1\n\n");

printf("2modify,press2\n\n");

printf("3output,press3\n\n");

printf("4delete,press4\n\n");

printf("5findbyname,press5\n\n");

printf("6findbytel,press6\n\n");*功能菜单*

printf("******************************\n");

scanf("%d",&m);

if(m>=0&&m<=6)

{

switch(m)

{

case1:

append();

break;

case2:

modify();

break;

case3:

output();

break;

case4:

delete();

break;

case5:

find_by_name();

break;

case6:

find_by_tel();

break;

case0:

exit();

}

printf("\n\nHavefinished,selectagain!

\n");

}

else

printf("\n\nError,selectagain!

\n");

}

}

voidcreat()

{

structstudentone;

printf("\nInputthenameofaddressbook:

");

gets(filename);

if((fp=fopen(filename,"w"))==NULL)

{

printf("\nCann'tcreataddressbook!

");

exit();

}

*fprintf(fp,"%-10s%-8d%-20s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);

*printf("\nInputname,num,dis,tel,addr(endpress#)\n");

gets(one.name);

while(strcmp(one.name,"#"))

{

gets(one.num);

gets(one.dis);

gets(one.tel);

gets(one.addr);

fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);

gets(one.name);

}

fclose(fp);

}

voidfind_by_name()

{

intk=0;

charnamekey[8];

structstudentone;

printf("\nInputname:

");

scanf("%s",namekey);

if((fp=fopen(filename,"rb"))==NULL)

{

printf("\nCann'topenthisaddressbook!

!

!

");

exit();

}

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

printf("\n\nHavefinded,asfollow:

\n");

printf("namenumdisteladdr");

printf("\n%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);

k=1;

}

}

if(!

k)

printf("\n\nSorry,thereisnothisstudent!

!

");

fclose(fp);

}

voidfind_by_tel()

{

intk=0;

chartelkey[8];

structstudentone;

printf("\nInputtel:

");

scanf("%s",telkey);

if((fp=fopen(filename,"rb"))==NULL)

{

printf("\nCann'topenthisaddressbook!

!

!

");

exit();

}

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);

if(!

strcmp(telkey,one.tel))

{

printf("\n\nHavefinded,asfollow:

\n");

printf("namenumdisteladdr");

printf("\n%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);

k=1;

}

}

if(!

k)

printf("\n\nSorry,thereisnothisstudent!

!

");

fclose(fp);

}

voidoutput()

{

structstudentone;

if((fp=fopen(filename,"r"))==NULL)

{

printf("\nCann'topenthisaddressbook!

!

!

");

exit(0);

}

*printf("\n\n%20s\n","\nCann'topenthisaddressbook\n");*

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);

if(strcmp(one.name,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);

}

fclose(fp);

}

voidappend()

{

structstudentone;

if((fp=fopen(filename,"a"))==NULL)

{

printf("\nCann'topenthisaddressbook!

!

");

exit();

}

printf("\nInputnewname,num,dis,tel,addr\n");

scanf("%s%s%s%s%s",one.name,one.num,one.dis,one.tel,one.addr);

fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);

fclose(fp);

}

voidmodify()

{

intm,k=0;

longoffset;

charnamekey[8];

structstudentone;

printf("\nInputname:

");

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\nCann'topenthisaddressbook!

!

!

");

exit();

}

while(!

feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1