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

C语言课程设计通讯录实验报告
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需求分析

信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

2.2 总体设计

整个系统可设计分为数据插入模块、数据修改模块、数据删除模块、数据显示模块、数据查询模块和数据统计模块

2、3

2.3.1

2.3.2

2.3.2

2.3.4

2.3.5

删除通讯录通过数组中该位置之后的数据存放位置向前移一位来实现删除功能,其流程图

如下:

2.3.6

查找通讯录通过数组位置查找相关信息实现查找功能,其流程图如下:

2.3.7(假设w=1)流程图如下:

2.3.8

3、程序实现

3、11

23

4.5. 6.7功能调试; 8.完成系统总结报告以及系统使用说明书。

注:各函数之间的调用关系,如下图所示: 退出函数流程图

3、2源代码及说明

(见附加)

4、 测试分析

4.1 测试结果及分析(以下列操作为例)

进入系统后,系统会出现如下图:

显示输入账号和密码:

输入账号和密码后会进入主菜单页码:

在主菜单中输入1后,选择要操作的文件,选择同学,输入要添加的个数,输入姓 名 电

话号码 地址,结果如下图:

在主菜单中输入2后,输入要修改人的姓名。系统找到后会提示输入新的姓 名

电话号码 地址,结果如下图:

在主菜单中输入3后,选择要操作的文件,选择查找的方式,。结果如下图

在主菜单中输入4后,输入要操作的文件,然后输入要删除的人的姓 名,结果如下图:

在主菜单中输入5后,选择要操作的文件,会显示出此文件中所有的信息,结果如下图: main 函数 Tianjia() tongji() chazhao() shanchu() xianshi()

xiugai() Menu() 调用

在主菜单中输入6后,输入要操作的文件,系统会统计出此文件中的总数,结果如下图

在主菜单中输入7后,“会显示谢谢您的使用,请按任意键退出”。

在运行的过程中曾出现,每执行完一个操作返回主菜单後就无法再继续执行接下来的操作,后来我从网上搜了一下,当执行system("cls");时会清除屏幕,然后我就在多次的修改中将程序中多余的system("cls");语句删除后,程序终于可以正常运行。而且编译时会出现如下信息,但好在不影响程序的正常运行。

5、总结

这个课题是设计一个通讯录系统,该通讯系统能够较好的管理好我们的通讯录记录,具有添加、修改、查找、删除、显示和统计的功能,但是该系统依旧有漏洞,此程序必须按照系统提示的操作来执行,而且还有部分的功能缺陷,例如用户无法自行修改用户名和密码,必须使用系统分配的数据登陆系统。功能也不是很齐全,没有排序功能,没有加密功能,还需要进一步的更新,才能达到更好地效果。

从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里时不时的

有一种喜悦我在编写过程中,逐步的了解了程序模块化设计的思想含义。在整个程序设计的过程中语法的错误还是比较容易检查的,但是对于那些逻辑思维的问题方面的缺陷不易查出,因此常常出现系统提示没有错误但是仍然不能够正常运行的境况,尽管有很多不足之处,但我在整个系统程序设计的过程中,我可以感受到自己对C语言有了一定的掌握,对整体的把握度也提高了很多。

此外编程是一项高精度需求的工作,所以我们要有规范化,标准化的代码编写习惯。良好的编写习惯,不但有助于代码的纠错,也有助于各功能负责人员之间的协同合作。

我们还要有模块化思维能力,模块化思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大的避免重复性的工作。另外我们要重视程序的算法,在程序中,算法是灵魂,我们要努力学习各种先进的算法,提高自己的编程能力。

而在这个过程中,我更深的理解和运用结构化程序设计的思想和方法,掌握开发一

个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力(书写课程设计报告)。

参考文献

1、谭浩强着.C程序设计(第四版).北京:清华大学出版社,2010

2、谭浩强着.C程序设计(第四版)学习辅导.北京:清华大学出版社,2010

3、 3.C编写组编.常用C语言用法速查手册.北京:龙门书局,1995

4、[2]刘振安.C语言程序设计[M].机械工业出版社,2007

附加:

#include

#include

#include

#include

#include

#define LEN sizeof(struct Person)

void tianjia(); //对调用的函数进行声明

void tongji();

void shanchu();

void chazhao();

void xianshi();

void xiugai();

FILE *fp;

struct Person //声明一个结构体类型struct Person

{

char a[16];

char s[16];

char d[16];

char f[24];

struct Person *next;

}stu;

////////////////////////////////////////////主菜单

void menu()

{int i=0;

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

printf("* \t\t1添加通讯录

*\n");

printf("* \t\t2修改通讯录

*\n");

printf("* \t\t3查找通讯录

*\n");

printf("* \t\t4删除通讯录

*\n");

printf("* \t\t5显示通讯录

*\n");

printf("* \t\t6统计通讯录

*\n");

printf("* \t\t7退出通讯录

*\n");

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

printf("\t\t\t 请输入操作1-7,以Enter结束\n\t\t\t\t");

while(i==0)

{

scanf("%d",&i);

switch(i) //用switch函数实现多分支选择结构

{

case 1:tianjia();break;

case 2:xiugai();break;

case 3:chazhao();break;

case 4:shanchu();break;

case 5:xianshi();break;

case 6:tongji();break;

case 7:printf("\t\t\t谢谢您的使用,请按任意键退

出....\n");getchar();break;

default:printf("\t\t 您的输入有误,请重新输入,并以Enter结束\n");menu();

}

}

}

///////////////////////////////////////////////////////////////////////////// ////1添加

void tianjia()

{

int w=0;

int i=0,n;

struct Person *head;//定义指针变量

struct Person *p1,*p2;

printf("\t\t请输入要操作的通讯录文件 1 同学 2 家人 3 同事 4 朋

友:\n\t\t\t");

while(w==0)

{scanf("%d",&w);

if(w==1) //建立同学文件

{

if((fp=fopen("tongxue.txt","a"))==NULL)

{ fp=fopen("tongxue.txt","w+");

printf("\t\t\t同学文件已建立");

}

else printf("\t\t\t\t同学文件已存在\n");

}

else if(w==2) //建立家人文件

{ if((fp=fopen("jiaren.txt","a"))==NULL)

{ fp=fopen("jiaren.txt","w+");

printf("\t\t\t家人文件已建立");

}

else printf("\t\t\t\t家人文件已存在\n");

}

else if(w==3) //建立同事文件

{

if((fp=fopen("tongshi.txt","a"))==NULL)

{ fp=fopen("tongshi.txt","w+");

printf("\t\t\t同事文件已建立");

}

else printf("\t\t\t\t同事文件已存在\n");

}

else if(w==4) //建立朋友文件

{

if((fp=fopen("pengyou.txt","a"))==NULL)

{ fp=fopen("pengyou.txt","w+");

printf("\t\t\t朋友文件已建立");

}

else printf("\t\t\t\t朋友文件已存在\n");

}

else {printf("\t\t\t您的输入有误,请重新输入");w=0;}

}

printf("\t\t\t\t请输入添加的个数\n\t\t\t");

scanf("%d",&n);

p2=malloc(LEN);

while(i

{p1=malloc(LEN);

if(i==0) head=p1;

else p2->next=p1;

printf("\t\t\t请输入以下信息,并以Enter结束\n");

printf("\t\t\t姓名电话号码地址\n\t\t\t");

scanf("%s%s%s%s",p1->a,p1->s,p1->d,p1->f);

p2=p1;

i++;

}

p2->next=NULL;

while(head!=NULL)

{

fprintf(fp,"%-16s%-16s%-16s%-24s\n",head->a,head->s,head->d,head->f); head=head->next;

}

fclose(fp);

menu();

}

///////////////////////////////////////////////////////////////////////////// /2修改

void xiugai()

{ int i=0,w=0;

long offset;

char a[16],s[16],d[16],f[24];

struct Person *p;

printf("\t\t请输入要操作的通讯录文件 1同学 2家人 3同事 4朋友:\n\t\t\t");

while(w==0)

{scanf("%d",&w);

if(w==1)

{

if((fp=fopen("tongxue.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("tongxue.txt","w+");

printf("\t\t同学文件已建立\n");

}

else printf("\t\t\t同学文件已存在\n")

}

else if(w==2)

{if((fp=fopen("jiaren.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("jiaren.txt","w+");

printf("\t\t家人文件已建立\n");

}

else printf("\t\t家人文件已存在\n");

}

else if(w==3)

{

if((fp=fopen("tongshi.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("tongshi.txt","w+");

printf("\t\t同事文件已建立\n");

}

else printf("\t\t\t同事文件已存在\n");

}

else if(w==4)

{

fp=fopen("pengyou.txt","r+");

if((fp=fopen("pengyou.txt","r+"))==NULL)

{ fp=fopen("pengyou.txt","w+");

printf("\t\t朋友文件已建立\n");

}

else printf("朋友文件已存在");

}

else

{

printf("\t\t\t输入错误,请重新输入\n");

w=0;

}

}

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

scanf("%s%s",a,s);

p=malloc(LEN);

while(!feof(fp))

{ offset=ftell(fp);

fscanf(fp,"%s%s%s%s\n",p->a,p->s,p->d,p->f);

if((strcmp(a,p->a)==0)&&(strcmp(s,p->s)==0))

{ printf("\t\t\t已找到记

录:\n%-16s%-16s%-16s%-16s\n",p->a,p->s,p->d,p->f);

i=1;

break;

}

}

if(i==1)

{ printf("\t\t\t请输入新的姓名号码地址:\n\t\t\t");

scanf("%s%s%s%s",a,s,d,f);

fseek(fp,offset,0);

fprintf(fp,"%-16s%-16s%-16s%-24s\n",a,s,d,f);

printf("\t\t\t恭喜,已修改成功!\n");

}

else

printf("\t\t\t无此相关信息\n")fclose(fp);

menu();

}

///////////////////////////////////////////////////////////////////////////// ///3查找

void chazhao()

{

char a[16],s[16],d[16 ],f[24],m[16],n[16];

int w=0,e=0;

printf("\t\t请输入要操作的通讯录文件 1同学 2家人 3同事 4朋友:\n\t\t\t");

while(w==0)

{

scanf("%d",&w);

if(w==1)

{

if((fp=fopen("tongxue.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("tongxue.txt","w+");

printf("\t\t\t同学文件已建立\n");

}

else printf("\t\t\t同学文件已存在\n");

}

else if(w==2)

{

if((fp=fopen("jiaren.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("jiaren.txt","w+");

printf("\t\t\t家人文件已建立\n");

}

else printf("\t\t\t家人文件已存在\n");

}

else if(w==3)

{

if((fp=fopen("tongshi.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("tongshi.txt","w+");

printf("\t\t\t同事文件已建立\n");

}

else printf("\t\t\t同事文件已存在\n");

}

else if(w==4)

{ fp=fopen("pengyou.txt","r+");

if((fp=fopen("pengyou.txt","r+"))==NULL)

{ printf("\t\t\t请先添加数据\n");

menu(); fp=fopen("pengyou.txt","w+");

printf("\t\t\t朋友文件已建立\n");

}

else printf("\t\t\t朋友文件已存在\n");

}

else {printf("\t\t\t输入错误,请重新输入\n");w=0;

}

}

printf("\t\t请输入查找方式 1:按姓氏查找 2:按姓名查找\n\t\t\t"); while(e==0)

{scanf("%d",&e);

if(e==1) //按姓氏查找

{ printf("\t\t\t请输入姓氏:\n");

scanf("%s",m);

printf("\t\t\t查找结果如下:\n姓\t\t名\t\t电话\t\t地址\n\n");

while(feof(fp)==0)

{

fscanf(fp,"%s%s%s%s\n",a,s,d,f);

if(strcmp(a,m)==0)

printf("%-16s%-16s%-16s%-24s\n",a,s,d,f;

}

}

else if(e==2) //按姓名查找

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

scanf("%s%s",m,n);

printf("\t\t\t查找结果如下:\n姓\t\t名\t\t电话\t\t地址\n\n");

while(feof(fp)==0)

{

fscanf(fp,"%s%s%s%s\n",a,s,d,f);

if(strcmp(a,m)==0&&strcmp(s,n)==0)

printf("%-16s%-16s%-16s%-24s\n",a,s,d,f);

}

}

else {printf("你想干嘛,重新输入吧!1按姓氏查找 2按姓名查找");e=0;}

}

fclose(fp);

menu();

}

////////////////////////////////////////////////////////////////////////////4删除

void shanchu()

{

int i=0,w=0;

long offset;

char a[16],s[16],d[16],f[24];

struct Person *p;

printf("\t\t请输入要操作的通讯录文件 1同学 2家人 3同事 4朋

友:\n\t\t\t");

while(w==0)

{

scanf("%d",&w);

if(w==1)

{

if((fp=fopen("tongxue.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("tongxue.txt","w+");

printf("\t\t\t同学文件已建立\n");

}

else printf("\t\t\t同学文件已存在\n");

}

else if(w==2)

{

if((fp=fopen("jiaren.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("jiaren.txt","w+");

printf("\t\t\t家人文件已建立\n");

}

else printf("\t\t\t家人文件已存在\n");

}

else if(w==3)

{

if((fp=fopen("tongshi.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("tongshi.txt","w+");

printf("\t\t\t同事文件已建立\n");

}

else printf("\t\t\t同事文件已存在\n");

}

else if(w==4)

{

fp=fopen("pengyou.txt","r+");

if((fp=fopen("pengyou.txt","r+"))==NULL)

{ printf("\t\t\t请添加数据\n");

menu();

fp=fopen("pengyou.txt","w+");

printf("\t\t\t朋友文件已建立\n");

}

else printf("\t\t\t朋友文件已存在\n");

}

else{ printf("\t\t\t您的输入有误,请重新输入");

w=0;

}

}

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

scanf("%s%s",a,s);

p=malloc(LEN);

while(!feof(fp))

{ offset=ftell(fp);

fscanf(fp,"%s%s%s%s\n",p->a,p->s,p->d,p->f);

if((strcmp(a,p->a)==0)&&(strcmp(s,p->s)==0))

{ printf("\t\t\t已找到记

录:\n%-16s%-16s%-16s%-16s\n",p->a,p->s,p->d,p->f);

i=1;

break;

}

}

if(i==1) //找到信息,确认删除

{

fseek(fp,offset,0);

fprintf(fp,"%-16s%-16s%-16s%-24s\n","","","","");

printf("\t\t\t恭喜,已删除成功!\n");

}

else printf("\t\t\t好像没有此记录???\n");

fclose(fp);

menu();

}

////////////////////////////////////////////////////////////////////////////5显示

void xianshi()

{

char a[20],s[20],d[20],f[20]; //足够大

int w=0;

printf("请输入要操作的通讯录文件 1同学 2家人 3同事 4朋友:\n\t\t\t");

while(w==0)

{scanf("%d",&w);

if(w==1)

{

if((fp=fopen("tongxue.txt","r+"))==NULL)

{ fp=fopen("tongxue.txt","w+");

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

printf("\t\t\t请先添加数据\n");

menu();

}

else printf("\t\t\t同学文件已存在\n");

}

else if(w==2)

{

if((fp=fopen("jiaren.txt","r"))==NULL)

{ fp=fopen("jiaren.txt","w+");

printf("\t\t\t请添加数据\n");

menu();

}

else printf("\t\t\t家人文件已存在\n");

}

else if(w==3)

{

if((fp=fopen("tongshi.txt","r+"))==NULL)

{ fp=fopen("tongshi.txt","w+");

printf("\t\t\t请添加数据\n");

menu();

}

else printf("\t\t\t同事文件已存在\n");

}

else if(w==4)

{

fp=fopen("pengyou.txt","r+");

if((fp=fopen("pengyou.txt","r+"))==NULL)

{ fp=fopen("pengyou.txt","w+");

printf("\t\t\t请添加数据\n");

menu();

}

else printf("\t\t\t朋友文件已存在\n");

}

else {printf("\t\t\t您的输入有误,请重新输入");w=0;}

}

while(feof(fp)==0)

{

fscanf(fp,"%s%s%s%s\n",a,s,d,f);

printf("%-16s%-16s%-16s%-24s\n",a,s,d,f);

}

fclose(fp);

menu();//返回主菜单继续接下来的操作

}

///////////////////////////////////////////////////////////////////////////// //6统计

void tongji()

{ int w=0,i=0;

char a[20],s[20],d[20],f[20];

printf("请输入要操作的通讯录文件 1同学 2家人 3同事 4朋友:\n\t\t\t");

while(w==0)

{scanf("%d",&w);

if(w==1)

{

if((fp=fopen("tongxue.txt","r+"))==NULL)

{ printf("\t\t\t总数是0个,请先添加数据\n");

menu();

fp=fopen("tongxue.txt","w+");

printf("\t\t同学文件已建立\n");

}

else printf("\t\t\t同学文件已存在\n");

}

else if(w==2)

{

if((fp=fopen("jiaren.txt","r+"))==NULL)

{ printf("\t\t\t总数是0个,请先添加数据\n");

menu();

fp=fopen("jiaren.txt","w+");

printf("\t\t家人文件已建立\n");

}

else printf("\t\t\t家人文件已存在\n");

}

else if(w==3)

{

if((fp=fopen("tongshi.txt","r+"))==NULL)

{ printf("\t\t\t总数是0个,请先添加数据\n");

menu();

fp=fopen("tongshi.txt","w+");

printf("\t\同事文件已建立\n");

}

else printf("\t\t\t同事文件已存在\n");

}

else if(w==4)

{ fp=fopen("pengyou.txt","r+");

if((fp=fopen("pengyou.txt","r+"))==NULL)

{ printf("\t\t\t总数是0个,请先添加数据\n");

menu();

fp=fopen("pengyou.txt","w+");

printf(",朋友文件已建立");

}

else printf("朋友文件已存在");

}

else {printf("\t\t\t输入错误,请重新输入");w=0;} }

while(feof(fp)==0)

{

fscanf(fp,"%s%s%d%s",a,s,&d,f);

i++;

}

printf("\n\t\t\t总数是%d个\n",--i);

fclose(fp);

menu();

}

///////////////////////////////////////////////////////////////////////////// /主函数

#include

int main() //定义主函数

{ //主函数体开始

char a[20],b[20],c[20]="admin",d[20]="asd1244"; //设置密码

printf("\n\n\n\n\n\n\n\n"); //欢迎界面

system("COLOR 27"); //定义页面颜色

printf("\t*****Welcome to use the address book management system*****\n");

printf("\n");

printf("\t*****************欢迎使用通讯录管理系统********************\n");

printf("\n");

printf("\n\n\n\t\t\t\t经常联系,问问彼此,最近你过得好吗?\n");

printf("\n");

printf("\t\t\t\t愿亲情、爱情、友情永不凋零!\n");

printf("\n\n\n\n\n\n\\n\t\t\t\t litter Copyright litter.All rights reserved\n\n\n");

Sleep(3000);

("cls");

printf("\n\n\n\\n\n\n\n\n\n\n\n\n\t\t(Please enter your user name)请输入用户名:\n\n\n\n\n\n\t\t\t\t");

scanf("%s",a);

printf("\n\n\n\n\t(Please input your password)请输入密码:\n\t\t\t\t");

scanf("%s",b);

if((strcmp(a,c)==0)&&(strcmp(b,d)==0)) //为什么改为a[20]就不行呢????

{

printf("\n\n\n(The user name and password are correct, welcome to use)用户名和密码正确,欢迎使用\n");

Sleep(1000);

system("cls");

}

else

{printf("(Password mistake, please press any key to exit)密码错误,请按任意键退出\n");

exit(0);

}

system("COLOR 37");

menu();

}

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程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

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

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

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语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: 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语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 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语言课程设计通讯录管理系统

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语言课程设计:通讯录管理系统

目录 一、需求分析 (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语言通讯录系统课程设计报告

通讯录系统的设计与实现电子科技大学电信三班傅得耕 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 {

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)课程设计报告书 设计题目:电子通讯录 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语言课程设计通讯录管理系统

#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();

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语言课程设计)

安徽工业大学 《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统 实习成员:王刚 学号: 109074372 专业班级: 网络工程103班 指导教师: 郑啸老师

目录 一.问题描述 (2) 二. 各功能流程图与设计思路 (3) 2.1显示模块 (3) 2.2查找模块……………………………………………4.. 2.3添加模块 (6) 2.4删除模块 (8) 2.5修改模块 (9) 三、文件的读取与保存 (11) 四、程序源代码 (12) 五、调试与运行结果 (18) 六、计算机学院课程设计评定意见 (24) 一.问题描述

设计通讯录包含以下功能: (1)通讯录的每一条信息包括姓名、单位、固定电话、移动手 机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ 等。 (2)输入功能:可以一次完成若干条信息的输入。 (3)显示功能:完成全部通讯录信息的显示。 (4)查找功能:可以按姓名等多种方式查找通讯信息。 (5)增加、删除、修改功能:完成通讯录信息的多种更新。 二.各功能流程图与设计思路 Menu菜单:

运用switch()进行操作: case'1': 显示功能,list()函数 说明:利用for循环,逐个输出已保存的内容 代码如下: //*****************显示通讯录中的内容************* void list() { printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\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语言课程设计学生通讯录管理系统精编版

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语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

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

目录 课程设计评语......................................................... 目录................................................................ 1.课程论文题目...................................................... 2.程序设计思路...................................................... 3.功能模块图........................................................ 4.数据结构设计...................................................... 5.算法设计.......................................................... 6.程序代码.......................................................... 7.程序运行结果...................................................... 8.编程中遇到的困难及解决方法.. (27) 9.总结心得及良好建议 (28) 10.致谢 (28) 1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。

c语言课程设计学生通讯录管理系统(推荐文档)

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

不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动; 后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统;

设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20]; }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中:

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

c语言课程设计学生通讯 录管理系统 Last revision date: 13 December 2020.

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

添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动; 后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统;

设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20]; }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中: char name[20];

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

1设计题目的内容、任务及具体要求 一.需求分析 实现通讯录管理系统 任务:自学C语言有关链表及外部文件的内容,设计出通讯录管理系统,要求如下: ①建立通讯录信息,信息至少包含编号,姓名,年龄,电话,通讯录地址,电子邮箱等; ②能够提供添加,删除和修改通讯录信息的功能; ③能够提供按不同方式查询的功能;如按姓名或年龄,电话等查询; ④将通讯录保存在文件中; ⑤能够按表格方式输出通讯录信息 要求: 1.学生从以上几个设计任务中任选其中一个完成. 2根据以上功能需求,自己定义单链表结点的存储结构; 3.为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名,路径等自定; 4.提供友好的用户界面,方便用户操作. 二.源程序代码 #include #include #include

#define BUFLEN 80 /* 缓冲区最大字符数 */ #define LEN 30 /* 学号和姓名最大字符数,实际请更改 */ #define N 200 /* 最大学生人数,实际请更改*/ struct record { char code[LEN+1]; /* 学号 */ char name[LEN+1]; /* 姓名 */ int age; char sex[3]; char time[LEN+1]; char add[LEN+1]; char tel[LEN+1]; char mail[LEN+1]; }stu[N]; int k=1,n,m; void readfile();/* 函数声明 */ void seek(); void modify(); void insert(); void del(); void display(); void save(); void menu(); int main() { while(k) menu(); system("pause"); return 0; } void readfile()/* 建立信息 */ { char buf[BUFLEN],*p="student.dat"; FILE *fp; int i=0; if ((fp=fopen("student.dat","r"))==NULL) /* 把此程序和文件student.dat放在同一目录下 */ { printf("Open file %s error! Strike any key to exit!",p); system("pause"); exit(0);

相关文档
最新文档