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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C程序课程设计报告

--手机通讯录管理系统

**:**

学院:珠宝学院

学号:649

班级:141082

一课程设计目的和内容概述

1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。

2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。

其中结构体,函数的调用,算法的设计是尤为重要的。

二题目

手机通讯录管理系统。

[问题描述]

该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理

[基本要求]

要能提供以下几种功能:

(1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类

(2)当选中某类时,显示出此类所有数据中的姓名和电话号码

(3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类

当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。

(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。

三程序设计

1.总体设计

首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。

2.详细设计

根据功能需要建立显示,添加,查看,删除,修改,保存五个模块。在模块中通过调用各个函数来实现功能。详细设计如下:

(1)构建结构体,写入文件

FILE *fp;

int i;

struct address

{ char a[40]; um);

printf("\n\t姓名-Name:%-20s",friends[j].name);

printf("\n\t性别-kind:%s",friends[j].kind);

printf("\n\t联系电话-Telephone:%-13ld",friends[j].telephone);

printf("\n\temail-address:%-40s",friends[j].;

}

void Append(int j)

{

system("cls");

friends[j].num=j;

printf("\n\t\t\t序号-Number : %d",j);

printf("\n\t\t\t姓名-Name : ");

scanf("%s",friends[j].name);

printf("\t\t\t类别-kind : ");

scanf("%s",&friends[j].kind);

printf("\t\t\t联系电话-telephone : ");

scanf("%ld",&friends[j].telephone);

while(friends[j].telephone<0||friends[j].telephone>)

{

printf("电话号码不合法!请重新输入: ");

scanf("%ld",&friends[j].telephone);

}

printf("\t\t\temail-Address : ");

scanf("%s",friends[j].;

getchar();

}

void Delete()

{

int k;int j;

system("cls");

printf("\n\tDelete 序号-Number : ");

scanf("%d",&k);

if(k<=i)

{

for(j=k;j

{

strcpy(friends[j].name,friends[j+1].name); /*交换元素内容*/

strcpy(friends[j].kind,friends[j+1].kind);

friends[j].telephone=friends[j+1].telephone;

strcpy(friends[j].,friends[j+1].;

}

i--;

}

else

{

printf("输入的序号太大!");

}

}

void Modify(int j)

{

system("cls");

Append(j);

}

void Save()

{

int i,j;

system("cls");

printf("\n\n\t\t请耐心等待,信息正在保存!\n");

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

for(i=0;i<20;i++)

{

Sleep(300);

printf(".");

}

printf("\n\n信息已经保存成功!\n");

fp=fopen("","w");

for(j=1;j<=i;j++)

{

fwrite(&friends[j],sizeof(struct ffriend),1,fp);

}

fclose(fp);

}

(3)主函数调用各个模块

用switch语句判断输入者要使用的功能,然后调用函数,模块实现功能。程序如下:

void main()

{

int j;char a;char x;

相关文档
最新文档