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

合集下载

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

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

C语言程序设计课程设计报告设计题目:通讯录学号2010211766班级通信与信息类0101012班姓名万同堂2011年12月03日录入联系人信息(包括姓名、电话号码、地址等信息);通讯录管理系统要求实现以下功能:1、输入每一位联系人记录,将其信息存入文件中。

2、查询所有联系人的信息,并按可选的自定义规则进行排序;3、记录修改,将修改的记录信息保存于文件中。

1、设一个通信录由以下几项数据信息构成:数据项类型姓名字符串地址字符串邮政编码字符串电话号码字符串试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。

2、要求:界面友好,易于操作系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱等后,会提示是否继续添加。

显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件(1).通讯录:主要代码struct user{char name[20];//用户名char adr[20];//地址char numb[20];//手机号char code[20];//邮政编码};typedef struct user user;int main(){int key,m ;int n = 0;user u[N];char num[20];// double insert;printf("\n\n\n"); /*欢迎界面*/printf("\t\t\t\t欢迎光临 \n");printf("\t\t\t 我的个人通讯管理系统\n");printf("\t\t\t 完成日期:2011年12月4日\n\n");using namespace std;time_t t = time(0);printf("\t\t\t您正进入添加界面...\r");Sleep(1000);printf(" \r");char tmp[64];int i=1;while(i<2){i++;strftime( tmp, sizeof(tmp), "\t %Y/%m/%d %X %A 本年第%j 天 %z",localtime(&t) );printf("%s",tmp); /*输出系统时间*/ }printf("\n\n\n\t\t\t\t正在进入...\n\n\n");Sleep(800);printf("\t 本产品已经通过金山、卡巴、江民、360等多款杀毒软件检测,\n");Sleep(800);printf("\t 安全无毒,绿色无插件,请大家放心使用。

c语言通讯录实验报告

c语言通讯录实验报告

c语言通讯录实验报告C语言通讯录实验报告一、实验目的通讯录是我们日常生活中常用的工具,可以帮助我们管理联系人信息。

本次实验旨在通过使用C语言编写一个简单的通讯录程序,加深对C语言的理解和运用。

二、实验环境本次实验使用的开发环境是Visual Studio Code,编程语言为C语言。

三、实验过程1. 通讯录数据结构设计在开始编写程序之前,我们需要先设计好通讯录的数据结构。

通讯录的基本信息包括姓名、电话号码和电子邮件地址。

我们可以使用结构体来表示一个联系人的信息,然后使用数组来存储多个联系人的信息。

2. 程序主体框架设计接下来,我们需要设计程序的主体框架。

首先,我们可以定义一个数组来存储通讯录中的联系人信息。

然后,我们可以使用一个循环来提供用户操作的选项,比如添加联系人、查找联系人、删除联系人等。

用户可以通过输入相应的数字来选择不同的操作。

3. 添加联系人功能在程序中添加联系人的功能可以通过用户输入联系人的姓名、电话号码和电子邮件地址来实现。

我们可以通过循环遍历通讯录数组,找到第一个空闲的位置,将新的联系人信息存储到该位置。

4. 查找联系人功能查找联系人的功能可以通过用户输入联系人的姓名来实现。

我们可以通过遍历通讯录数组,逐个比较联系人的姓名,找到匹配的联系人并输出其详细信息。

5. 删除联系人功能删除联系人的功能可以通过用户输入联系人的姓名来实现。

我们可以通过遍历通讯录数组,找到匹配的联系人并将其从数组中删除。

6. 修改联系人功能修改联系人的功能可以通过用户输入联系人的姓名来实现。

我们可以通过遍历通讯录数组,找到匹配的联系人,并允许用户修改其电话号码和电子邮件地址。

7. 显示通讯录功能显示通讯录的功能可以通过遍历通讯录数组,逐个输出联系人的详细信息来实现。

四、实验结果经过编写和调试,我们成功实现了一个简单的C语言通讯录程序。

用户可以通过输入相应的数字来选择不同的操作,包括添加联系人、查找联系人、删除联系人、修改联系人和显示通讯录。

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

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

C语言通讯录管理系统课程设计报告一、引言通讯录管理系统是一种常见的实用性软件,用于记录和管理个人或组织的联系人信息。

本文档旨在介绍一种基于C语言开发的通讯录管理系统的设计与实现。

通过本系统,用户可以方便地添加、删除、搜索和编辑联系人信息,实现了通讯录的基本功能。

二、系统需求分析本通讯录管理系统的主要功能包括: 1. 添加联系人:用户可以添加联系人的姓名、电话号码、邮箱等信息。

2. 删除联系人:用户可以根据联系人的姓名或电话号码删除对应的联系人信息。

3. 查找联系人:用户可以根据联系人的姓名或电话号码查找对应的联系人信息。

4. 修改联系人:用户可以修改已存在联系人的信息。

5. 显示所有联系人:用户可以查看通讯录中所有的联系人信息。

三、系统设计1. 数据结构设计为了实现通讯录管理系统,我们需要设计适当的数据结构来存储联系人信息。

在本设计中,使用结构体数组来表示每个联系人的信息,其中每个结构体包含姓名、电话号码、邮箱等成员变量。

struct Contact {char name[50];char phoneNumber[20];char email[50];};2. 功能模块设计本系统主要包含以下几个功能模块:a. 添加联系人模块用户可以选择添加新的联系人,输入姓名、电话号码和邮箱等信息后,系统将在通讯录中添加新的联系人。

b. 删除联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择删除对应的联系人。

c. 查找联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并在界面上显示查询结果。

d. 修改联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择修改对应的联系人。

e. 显示所有联系人模块用户可以选择显示通讯录中所有的联系人信息,在界面上进行展示。

3. 系统框架设计本系统的整体框架如下:1. 主菜单显示2. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。

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

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

河南城建学院C语言课程设计报告设计主题:(通讯录)学院(系):计算机科学与工程学院班级:0834131\信管指导教师:张俊峰学号:083413129 姓名:李傲实习时间:2014年6月9日至2014年6月20日二〇一四年六月一、课程设计的内容编写学生通讯录程序,包括以下功能模块:1、通讯录的每一条信息包括学号、姓名、电话(字符数组)。

2、输入功能:可以一次完成若干条信息的输入。

3、显示功能:完成全部通讯录信息的显示。

4、查找功能:完成按姓名查找通讯信息,并显示。

5、增加功能:增加通讯信息。

6、删除功能:完成按姓名删除通讯信息。

7、将通讯录信息存在文件addrbook中。

8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!二、课程设计的要求与数据1、用C语言实现系统;2、利用结构体数组或动态链表实现学生通讯录的数据结构设计;3、系统具有增加,查询,删除等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将通讯录信息存在文件中;6、完成设计任务并编写课程设计说明书。

三、课程设计应完成的工作1.完成程序的编制、调试,并能正确运行。

2.完成课程设计说明书的编写,其内容包括(1)封面(2)任务书(3)目录(4)正文(1)总体设计(包含几大功能模块)。

(2)详细设计(各功能模块的具体实现算法——流程图)(3)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。

(4)调试分析(包含各模块的测试用例,及测试结果。

)(5)总结(课程设计完成了哪些功能,还有哪些地方需要改进,及通过一周的课程设计有何收获,调试程序的体会等)(5)参考文献四、应收集的资料及主要参考文献[1] 谭浩强著. C程序设计(第三版). 北京:清华大学出版社,2005[2] 谭浩强著. C程序设计题解与上机指导. 北京:清华大学出版社,2005目录一、总体设计(包含几大功能模块) (4)二、详细设计(各功能模块的具体实现算法——流程图) (4)第一个函数为输入函数: (4)第二函数为显示函数: (4)第三个函数为查找函数: (5)第四为排序函数 (5)第五为插入函数: (6)第六删除函数. (6)三、数据结构设计描述,各模块(函数)的功能介绍,参数说明等 (7)(一):结构设计描述 (7)(二)功能介绍 (7)四、调试分析(包含各模块的测试用例,及测试结果)。

c语言课程设计报告 通讯录设计

c语言课程设计报告 通讯录设计

第一章作者简介作者,曹新晴,女,河北石家庄人,现为地球科学学院资源环境与城乡规划管理专业06级在读本科生。

我是女生中比较爱运动的类型,喜欢羽毛球和篮球,喜欢畅快运动后那种洒脱的感觉,可以把所有的烦闷和忧伤统统用自己挥舞的手臂和奔跑的步伐甩掉,然后不再疲惫、精力充沛地迎接可能的挑战或挫折。

运动让我更加自信,更加勇敢。

用朋友的话,是那种有点倔强的自信,是“咬定青山不放松”的坚持吧,让我一路上跌跌撞撞地走到了现在。

所以,我更加珍惜这里的学习机会。

我发挥自己的兴趣,运用自己的毅力,和一些志同道合的战友一起起早奋斗,在去年拿到了国家篮球三级裁判员的证书,这是对我的努力的肯定。

当然,我还会在自己的路上再接再厉,争取获得更大的进步。

有时候,我也会选择跑步来释放,因为大学孤身在外,很多问题都等着你去解决,而多数情况是要独自面对,所以我们要有自己的排解压力的方式。

一张一弛,才会游刃有余,这就是我的处世哲学。

上学期,我在韩涛老师的指导下学习了计算机C语言课程,对利用C程序进行编程的一般思想、方法和格式的规范性有了初步的认识和了解,并通过自己的刻苦学习在试卷上取得了不错的成绩。

希望通过这次课程设计,把所学的知识在实际中得到运用。

第二章报告摘要实习报告中主要介绍了程序编写的过程,整个管理系统的组成,各个功能模块如何发挥作用等,这些都在报告正文中有所体现。

实习报告分了五个部分来写, 即作者简介、报告摘要、报告目录、报告正文和总结。

其中报告目录清晰明了地展示报告的顺序;报告正文是最重要的一个部分,这个部分详细地介绍了这个程序设计的设计思想和方法,包括:题目要求、系统的需求分析、系统的总体设计和系统的详细设计。

第三章报告目录一. 题目要求 (3)二. 需求分析 (3)三. 总体设计 (3)四. 详细设计 (3)1.主函数 (3)2.各功能模块设计 (5)⑴输入模块 (6)⑵添加模块 (6)⑶显示模块 (7)⑷删除模块 (7)⑸查询模块 (8)⑹修改模块 (9)⑺保存模块 (10)一.题目要求设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。

C语言课程设计报告(通讯录)

C语言课程设计报告(通讯录)

面向过程程序设计(C语言)课程设计设计说明书通讯录系统起止日期:2011年01 月03 日至2011年01 月08 日学生姓名XXX班级学号成绩指导教师(签字)计算机与通信学院2011 年01 月08 日一、课题任务设计一个通讯录管理系统。

课题的主要任务是:1.对通讯录信息有添加、查找、显示、保存、删除、修改等操作功能。

2.可以将输入的数据保存在文本文件中,并可以将其调出使用。

我的主要任务是编写主函数,查找模块和修改模块。

二、设计要求建立通讯录信息,信息至少包含姓名、住址、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、E-mail、QQ等。

该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、单位、分类方式查找。

将通讯录保存在文件中。

能够输出通讯录中的信息。

二、程序的功能设计创建:创建通讯录文件并对其命名添加:添加通讯录记录输出:显示通讯录记录删除:删除通讯录记录查找:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件中四、程序的数据设计该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。

下面六个模块都是利用C语言文件,向文件中追加数据、修改数据、查询数据和删除数据。

创建:用fopen()建立一个文本文件,然后用fprintf()向其中输入数据(例如,向文件中输入“姓名”,“地址”等),并对文件进行命名。

添加:可以添加通讯录记录,利用C语言文件,向文件中按顺序输入姓名、住址、单位、固定电话、手机号码、分类(如同事、朋友、同学、家人等)、E-mail、QQ,再用fclose()函数关闭并保存文件。

输出:也是用通过循环依次输出文件中的数据,即输出所有通讯录里的记录。

删除:输入你要删除的人的姓名后,系统会自动删除他(她)的记录,在删除通过switch语句满足提示你确认删除的功能,只有等你确认删除后才会删除。

查找:为了满足用户的实际需求,设计了三种查询方式,可以用姓名、单位、分类三种方式查找通讯录记录。

c语言简易通讯录报告

c语言简易通讯录报告

实习报告①需求分析建立一个通讯系统,系统中保存着人员的姓名,电话,住址,邮编等信息,通过该系统的界面可以浏览这些信息,也可以插入,添加及删除某个人的信息1)录入人员信息,创建通讯录文件2)进行相应的插入,添加,删除操作,并输出相应的结果(1)确定设计程序接收的输入数据和输出数据的形式、取值范围;每条通讯录包含姓名,街道,城市,邮编,电话号码。

都以字符型数组存储,分别定义为15、30、20、20、20字节长。

输入同输出。

(2)初步列出测试数据以及测试目的;②程序设计说明程序中用到的所有数据类型的定义。

绘制主程序的流程图,以及各子程序模块间的调用关系流程图:③调式分析(1)列出调式过程中遇到的主要问题,并说明解决方法;链表和结构体在实习刚开始时理解不透彻,只知道大概需要用到程序中,翻阅了一些资料后基本学会使用了。

开始用if,else语句轮寻菜单中用户输入的数字对应功能,后来发现用swith,case更方便灵活。

(2)分析算法的时间和空间复杂度,如果有给出算法改进思想;作为一个完整可用的通讯录还缺少保存信息到硬盘功能。

但本人基础较薄,有限的实习时间内无法完成。

希望今后有机会继续完善。

④使用说明说明编写程序的使用方法,详细列出每一操作步骤;⑤测试结果列出若干输入的测试数据、测试目的、产生的结果;简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:姓名街道城市邮编------------------------------------- Irenedfbj100034110------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- ericfdbj100076119------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- rareijbj100056120------------------------------------- 继续输入吗?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 1显示所有记录如下:-------------------------------------姓名街道城市邮编------------------------------------- Irene df bj 100034-------------------------------------eric fd bj 100076-------------------------------------rare ij bj 100056-------------------------------------简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:2请输入姓名进行查询:Irene------------------------------------- 姓名街道城市邮编------------------------------------- Irene df bj 100034------------------------------------- 查询成功!继续查询?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 3请输入姓名删除纪录:eric确定要删除吗?(Y/N)ySuccess to delete!简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: ⑥其他(1)注释源程序代码;#include <stdio.h>#include <string.h>#include <malloc.h>typedef struct txl{char name[15];char street[30];char city[20];char eip[20];char phone[20];}dtxl; /*建立通讯录信息结构体;*/ typedef struct dlnode{dtxl data;struct dlnode *prior;struct dlnode *next;}dnode; /*建立双向链表结构体;*/ dnode *head;void enter(void){dnode *p,*rear;char flag='Y';head=(dnode *)malloc(sizeof(dnode));rear=head;head->next=head;head->prior=head; /*建立双链表空头节点;*/while(flag=='Y'||flag=='y'){p=(dnode *)malloc(sizeof(dnode));printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");scanf("%s %s %s %s %s",&p->,&p->data.street,&p->data.city,&p->data.eip,&p->data.phone);rear->next=p;p->prior=rear;rear=p;p->next=head; /*向双链表中动态增加节点数据;*/printf("-----------------------------------------------\ n");printf("继续输入吗?(Y/N)\n");scanf("%s",&flag);}printf("\n");}//显示子程序void display(dnode *head){dnode *p;p=head->next;printf("显示所有记录如下:\n");printf("-----------------------------------------------\n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\n");while(p!=head){printf("%s %8s %8s %8s %8s",p->,p->data.street, p->data.city,p->data.eip,p->data.phone);printf("\n");printf("-----------------------------------------------\ n\n");p=p->next;}}dnode *search(dnode *head){dnode *p;char name[9];p=head->next;scanf("%s",name);while(p!=head&&p&&strcmp(p->,name)!=0){p=p->next;}return p;}//删除子程序void delete(dnode *head){char f;dnode *p;p=search(head);if(p==head){printf("没有找到要删除的数据!!!\n\n");return;}else{printf("确定要删除吗?(Y/N)\n");scanf("%s",&f);if(f=='Y'||f=='y'){p->prior->next=p->next;p->next->prior=p->prior;free(p);printf("Success to delete!\n");}}}//退出子程序void quit(void){exit(0);}//主程序void main(){ char flag='Y';for(;;){dnode *q;int ch;printf("简易通讯录系统:\n");printf(" Designed by Irene\n\n");printf("=================================\n");printf(" 输入纪录-----------------0\n");printf(" 显示所有纪录-------------1\n");printf(" 查询纪录-----------------2\n");printf(" 删除纪录-----------------3\n");printf(" 退出---------------------4\n"); /*通讯录提示信息;*/printf("=================================\n");printf("请输入数字(0~4)选择,enter确定并输入:\n");scanf("%d",&ch);//菜单分支选择switch(ch){case 0:enter();break;case 1:display(head);break;case 2:jmp: printf("请输入姓名进行查询:\n");q=search(head);if(q!=head){printf("-----------------------------------------------\ n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");printf("%s %8s %8s %8s %8s",q->,q->data.street, q->data.city,q->data.eip,q->data.phone);printf("\n-----------------------------------------------\n");printf("查询成功!\n");printf("\n继续查询?(Y/N)\n");scanf("%s",&flag);if(flag=='Y'||flag=='y')goto jmp;}elseprintf("对不起,没有此数据相关的纪录!!!\n\n");break;case 3:printf("请输入姓名删除纪录:\n");delete(head);break;case 4:quit();break;default:printf("\n\n按错键了吧?请输入数字0-6!\n\n\n");} /*用SWITCH函数选择菜单;*/}}(2)如果结果中有多个文件,列出文件名清单,注明每个程序的作用。

c语言通讯录课程设计报告

c语言通讯录课程设计报告

C语言通讯录课程设计报告一、设计题目设计一个简单的通讯录管理系统,要求实现以下功能:1. 添加联系人信息;2. 删除联系人信息;3. 修改联系人信息;4. 查找联系人信息;5. 显示所有联系人信息。

二、设计要求1. 使用C语言实现,不得使用任何图形界面库;2. 使用结构体来表示联系人信息,每个联系人包括姓名、电话、邮箱等基本信息;3. 使用文件存储联系人信息,每次程序运行时从文件中读取联系人信息,程序结束时将联系人信息写入文件。

三、设计实现1. 定义联系人信息结构体:```ctypedef struct {char name[20];char phone[20];char email[30];} Contact;```2. 定义文件操作函数:```cvoid save_contacts(Contact contacts[], int size) { FILE *fp = fopen("contacts.txt", "w");if (fp == NULL) {printf("Failed to open file.\n");return;}for (int i = 0; i < size; i++) {fprintf(fp, "%s %s %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(fp);}void load_contacts(Contact *contacts, int *size) {FILE *fp = fopen("contacts.txt", "r");if (fp == NULL) {*size = 0;return;}fscanf(fp, "%d", size);for (int i = 0; i < *size; i++) {fscanf(fp, "%s %s %s", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(fp);}```3. 实现通讯录管理功能:```cint main() {Contact contacts[100];int size = 0;char choice;do {printf("\n--- Main Menu ---\n");printf("1. Add contact\n");printf("2. Delete contact\n");printf("3. Modify contact\n");printf("4. Search contact\n");printf("5. Display all contacts\n");printf("6. Exit\n");printf("Please choose an option: ");scanf("%c", &choice);switch (choice) {case '1': // Add contactadd_contact(contacts, &size); break;case '2': // Delete contactdelete_contact(contacts, size); break;case '3': // Modify contactmodify_contact(contacts, size);break;case '4': // Search contactsearch_contact(contacts, size);break;case '5': // Display all contactsdisplay_contacts(contacts, size);break;case '6': // Exit programsave_contacts(contacts, size); // Save contacts before exitbreak;default: // Invalid option choice, display error message and return to main menuprintf("Invalid option choice.\n");break;}} while (choice != '6'); // Exit program when option 6 is chosen or when user types 'q' instead of a number choice.以上就是关于c语言通讯录课程设计报告的介绍,欢迎补充。

c语言程序设计通讯录

c语言程序设计通讯录

长江大学工程技术学院C语言课程设计实习报告通讯录管理系统学生姓名:吴正杰学号:201461031 序号:19专业班级:计科61031指导老师:刘旨阳报告日期: 2015\7\61.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出 能力;还有就是要提供通讯录添加(个人信息包括姓名、邮编、住址、电话号码、QQ 、电子邮件等)、删除、显示、修改等基本功能。

2.概要设计系统总体设计是信息的输入、信息的编辑和退出。

系统功能模块如下:3.详细设计1.输出通讯录用于让使用者观看通讯录里所有的信息。

排序通讯录 删除通讯录 修改通讯录 查找通讯录 添加通讯录 输出通讯录 通讯录2.通讯录里无信息,所以要添加信息。

用键盘逐个输入通讯录里联系人的信息。

3.查找通讯录是让使用者可以通过姓名来查找通讯录里的联系人。

4.修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后其作出修改。

5.删除通讯录是用来按照联系人的姓名来单独删除通讯录中一些不想要的联系人。

6.排序通讯录联系人来进行开头的首写字母排序。

7.退出通讯录。

4.主要源程序代码void menu(); //定义的函数void newrecord();void xiugai();void shanchuname();void chazhaoname();void xianshi();int daoruwenji();void save();void paixu();struct friends //定义的数组{char name[8];char addr[14];char pc[7];char e_mail[14];char QQ[10];char tel[12];}frd[500];int NO = 10; //宏定义k定义为删除联系人的个数m定义为添加联系人的个数NO定义为原始通讯录中的联系人的个数int k, m;FILE*fp;void menu() //主菜单{int a;printf("\n\t\t |----------- 欢迎您使用通讯录管理系统1.0beat版----------|");printf(" \n\t\t| [1]添加联系人;[2]删除联系人;[3]查找联系人| ");printf(" \n\t\t| [4]显示联系人;[5]修改联系人;[6]排序联系人[7]退出| ");printf("\n\t\t |---------------------------------------------------------|");printf("\n\t\t请选择您所所要的服务:");scanf("%d", &a);switch (a){case 1:newrecord(); break;case 2:shanchuname(); break;case 3:chazhaoname(); break;case 4:xianshi(); break;case 5:xiugai(); break;case 6:paixu(); break;case 7:exit(0);default:exit(0);}}int main() //主函数{daoruwenji();while (1) //1是真的进行死循环{menu();}return 0;}void xianshi() //打印所有的通讯录的人的信息{int i;fp = fopen("jk0119.txt", "r");if (fp == 0){printf("\n\n\n\n\t 电话簿文件不存在");exit(0);}printf("\n\n********************************欢迎使用通讯录*******************************************");printf("\n 姓名地址邮编e_mail QQ 手机号");for (i = 0; i < NO-k+m; i++){fscanf(fp, "%s%s%s%s%s%s", frd[i].name, frd[i].addr, frd[i].pc,frd[i].e_mail, frd[i].QQ, frd[i].tel);}for (i = 0; i < NO-k+m;i++ ){printf("\t\n%3d", i + 1);printf("%8s%14s%7s%14s%10s%12s", frd[i].name, frd[i].addr, frd[i].pc, frd[i].e_mail, frd[i].QQ, frd[i].tel);}printf("\n\n******************************************************** *********************************");}int daoruwenji() //判断通讯录是否为空和如果为空就新建一个txt文本{if ((fp = fopen("jk0119.txt", "rb")) == 0) //打开jk0119.txt文件{printf("\n\n\n\n\t 电话簿文件不存在");if((fp = fopen("contact.txt", "wb")) == 0)//判断文件是否为空{printf("\n\t\t\t\t建立失败");exit(0);}else{printf("\n\t 电话簿已建立");printf("\n\t 按任意键进入主菜单");getch();return(0);}exit(0);}fseek(fp,0L, 2);//将读取文件的指针移至文件末端if (ftell(fp)>0)//统计文件的字节是否为0{rewind(fp);printf("\n\n\n\n\t \t\t\t\t 文件导入成功");printf("\n\t\t\t\t \t 按任意键返回主菜单");fclose(fp);getch();return(0) ;}printf("\n\n\n\n\t\t\t文件导入成功");printf("\n\t\t\t电话簿文件中无任何纪录");printf("\n\t\t\t按任意键返回主菜单");fclose(fp);getch();return(0);}void save() //对修改的函数进行保存到txt文本中{int i;if ((fp = fopen("jk0119.txt", "w")) == 0){printf("\n\t\t\t\t打开失败");}for (i = 0; i < NO-k+m; i++){fprintf(fp, "%s\t%14s%7s%14s%10s%12s\n", frd[i].name, frd[i].addr, frd[i].pc, frd[i].e_mail, frd[i].QQ, frd[i].tel); //打印出文件的信息}printf("\n\t 保存文件成功");fclose(fp);}void newrecord() //新建一个新的联系人{printf("\n\t\t******************请输入联系人信息************************");printf("\n\t\t 输入联系人的姓名");scanf("%s", &frd[NO-k+m].name);for (int i = 0; i < NO-k+m; i++){if (strcmp(frd[NO].name, frd[i].name) == 0){printf("\n\n\t姓名重复请重新新建联系人");newrecord();}}printf("\n\t\t 输入联系人的地址");scanf("%s", &frd[NO - k + m].addr);printf("\n\t\t 输入联系人的邮编");scanf("%s", &frd[NO - k + m].pc);printf("\n\t\t 输入联系人的e_mail ");scanf("%s", &frd[NO - k + m].e_mail);printf("\n\t\t 输入联系人的QQ ");scanf("%s", &frd[NO - k + m].QQ);printf("\n\t\t 输入联系人的手机号码");scanf("%s", &frd[NO - k + m].tel);if (strlen(frd[NO - k + m].tel) == 11){printf("输入的电话号码合法");}else{printf("请重新输入11位合法的数字");scanf("%s", &frd[NO - k + m].tel);}m++;save();printf(" 是否继续添加新联系人(y/n): ");if (getch() == 'y'){newrecord();}}void shanchuname() //对联系人信息进行全部的删除{int i,j;char name[14];printf("\n\t\t 输入联系人的姓名");fflush(stdin);scanf("%s", name);for (i = 0; i < NO-k+m; i++){if (strcmp(name, frd[i].name) == 0){printf("%8s%14s%7s%14s%10s%12s\n", frd[i].name, frd[i].addr, frd[i].pc, frd[i].e_mail, frd[i].QQ, frd[i].tel);printf("\n\n\t 是否删除该联系人的所有信息(y/n):");if (getch() == 'y'){for (j = i; j <NO - k + m - 1; j++){frd[j] = frd[j + 1];}k++;printf("\n\t已经删除了该联系人");save();printf("\n\t是否继续删除联系人(y/n):");if (getch() == 'y'){shanchuname();}}menu();}}printf("\n\n\t通讯录中不存在该联系人");}void chazhaoname() //查找通讯录里的联系人{int i;char name[14];printf("\n\t 输入联系人的姓名");fflush(stdin);scanf("%s",name);for (i = 0; i < NO-k+m; i++){if (strcmp(name, frd[i].name) == 0){printf("%8s %14s %7s %14s %10s %11s \n", frd[i].name, frd[i].addr, frd[i].pc, frd[i].e_mail, frd[i].QQ, frd[i].tel);menu();}}}void xiugai() //对联系人的部分信息进行修改{int i, a; char name[14];printf("\n\n\t 输入联系人的姓名");fflush(stdin);scanf("%s", name);for (i = 0; i < NO-k+m; i++){if (strcmp(name, frd[i].name) == 0){printf("%8s%14s%7s%14s%10s%13s\n", frd[i].name, frd[i].addr, frd[i].pc, frd[i].e_mail, frd[i].QQ, frd[i].tel);printf("\n\n\t 是否确定修改该联系人(y/n):");if (getch() == 'y'){printf("\n\n\t************************************************");printf("\n \t [1]姓名[2]地址[3]邮编");printf("\n \t [4]邮箱[5]QQ [6]手机号码[7]返回");printf("\n\n\t************************************************\n");printf("\n\t请输入序号");scanf("%d", &a);switch (a){case 1: printf("姓名:"); scanf("%s", frd[i].name); break;case 2: printf("地址:"); scanf("%s", frd[i].addr); break;case 3: printf("邮编:"); scanf("%s", frd[i].pc); break;case 4: printf("邮箱:"); scanf("%s", frd[i].e_mail); break;case 5: printf("Q Q:"); scanf("%s", frd[i].QQ); break;case 6: printf("11位手机号码:"); scanf("%s", frd[i].tel); break;case 7:menu();default:xiugai();}printf("\n\t\t您的修改结果为:");printf("\n\t姓名:%s", frd[i].name);printf("\n\t地址:%s", frd[i].addr);printf("\n\t邮编:%s", frd[i].pc);printf("\n\t邮箱:%s", frd[i].e_mail);printf("\n\tQ Q:%s", frd[i].QQ);printf("\n\t手机号码:%12s", frd[i].tel);save();return;}else{menu();}}}printf(" \n \n");}void paixu() //对联系人进行按字母进行排序{struct friends fr[500];struct friends t;int i, j;for (i = 0; i<NO-k+m; i++)fr[i] = frd[i];for (i = 0; i<NO-k+m - 1; i++){for (j = 1; j<NO-k+m; j++){if (strcmp(fr[i].name, fr[j].name) > 0){t = fr[i];fr[i] = fr[j];fr[j] = t;}}}printf("\n\n 姓名地址邮编e_mailQQ 手机号\n");for (i = 0; i<NO-k+m; i++){printf("%8s%20s%7s%14s%10s%12s\n", frd[i].name, frd[i].addr, frd[i].pc, frd[i].e_mail, frd[i].QQ, frd[i].tel);}Save();}本程序中大量使用了结构体和结构体数组,系统的功能模块都是使用子函数完成的,子函数中也存在大量结构体数组。

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

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

海南大学C语言程序课程设计报告学号:***************名:***年级:2012级学院:经济与管理专业:信息管理与信息系统分数:通讯录管理系统一、需求分析设计题目及要求:◆建立通讯录信息,信息包含姓名、籍贯、电话号码、电子邮箱等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或籍贯、电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。

系统功能需求分析:主要包含一下多种功能:1)添加:添加通讯录记录2)显示:显示通讯录记录3)删除:删除通讯录记录4)查询:查询通讯录记录5)修改:修改通讯录记录6)保存:将信息保存到文件二、概要设计系统功能模块图:添加:可以添加通讯录记录,依次输入姓名、电话号码、籍贯、电子邮箱后,会提示是否继续添加。

显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、、籍贯三种方式查询修改:输入欲修改的那个人的名字后,再依次输入姓名、电话号码、籍贯、电子邮箱即可完成修改保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件三、程序设计与分析1.1问题提出有个通讯录,要求该系统对通讯录的姓名,籍贯,电话号码,电子邮箱,进行输入,显示,查找,删除,添加,修改,保存等操作的管理。

1.2本系统涉及知识点本系统涉及到所学的知识点有:编译预处理、循环结构、选择结构、顺序结构、数组、函数等。

1.3 功能要求●制作一个通讯录,要求可以记录通讯人的详细联系方式,包括:,籍贯,电话号码,电子邮箱。

●能根据需要随时在通讯录中添加联系人●能根据联系人姓名,籍贯,电话号码中任一信息查找联系人●能根据需要修改某联系人的信息●能删除某联系人的所有详细信息1.4 各模块结构功能及程序说明◆各模块的功能➢Main 模块:根据选单内容实现调用函数➢Delete 模块:删除通讯录中某人信息➢List 模块:显示通讯录中所有人的信息◆程序说明Main 函数void main() /*主函数*/{int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t添加记录到通讯录\n"); /*添加记录*/n=Input(pe,n);break;case 2:printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/Display(pe,n);break;case 3:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(pe,n); /*删除记录*/printf("\t");system("pause");break;case 4:printf("\n\t在通讯录中查找记录\n");Query_a_record(pe,n); /*查找记录*/printf("\t");system("pause");break;case 5:printf("\n\t修改通讯录中的记录\n");Change(pe,n); /*修改数据*/printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n); /*保存数据*/printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/printf("\n\t\t");system("pause");exit(0);}}}四、通讯录工作流程图①添加:添加通讯录记录②显示:显示通讯录记录③删除:删除通讯录记录④查询:查询通讯录记录⑤修改:修改通讯录记录先选择查询方式,以姓名查询方式为例五、调试过程1).显示的主菜单界面2).删除界面:3).查询界面:4).保存界面:六、程序有待改进的地方源程序运用了大量的数组、循环、选择结构、函数调用,以及少量使用指针指向结构,涵盖了我们所学到绝大多数知识。

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

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

《C语言课程设计》目录摘要 (3)一、课程设计目的 (4)二、课程设计内容 (4)三、总体设计 (5)四、详细设计 (6)(1)数据结构设计 (6)(2)模块接口设计 (7)(3)流程图 (7)五、调试与测试 (10)(1)调试过程中的主要问题 (10)(2)测试结果的分析与讨论 (10)六. 实习总结 (12)注: 13摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式, 特别是对于做经常出差的人来说更是难, 所以通讯录能够便捷的给我们带来所需要的相关信息。

而随着计算机的普及, 人们的生活摆脱了传统式的记事本、电话簿, 越来越多的靠计算机来帮助人们记住这些事情, 极其简便。

这就需要有一个使用的通讯录管理系统, 用户可以方便的通过自己电脑的通讯录管理系统, 来随时查阅自己所需要的信息, 而不必再大费周折去翻开那繁琐的记事本。

通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统, 它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能, 大大减少了查找过程的时间。

一、课程设计目的1、通过课程设计, 加深对结构化设计思想的理解, 能对系统功能进行分析, 并设计合理的模块化结构。

2、通过课程设计, 学会设计数据结构。

其中包括对结构数组、链表和数据结构等知识的运用。

3、通过课程设计, 提高程序开发功能, 能运用合理的控制流程编写清晰高效的程序。

4、通过课程设计, 训练C程序调试能力, 能将一个中小型各级组织系统联调通过。

通过课程设计, 开发一个中小型系统, 掌握系统研发全过程。

通话课程设计, 培养分析问题、解决实际问题的能力。

二、课程设计内容(1)设计一个实用的通讯录管理系统, 能以简便高效的方式对通讯录进行管理和检索, 具体要示:(2)录入:通讯录信息包括:编号, 姓名, 单位, 电话, 地址, QQ, 邮编。

以结构通讯录信息。

(3)更新: 能插入、删除通讯录信息。

c语言通讯录设计与实现

c语言通讯录设计与实现

C 语言通讯录设计与实现本文主要介绍了如何使用 C 语言设计并实现一个通讯录程序,包括通讯录的存储、添加、查找、修改和删除等基本操作,同时考虑了数据的持久化存储问题。

下面是本店铺为大家精心编写的4篇《C 语言通讯录设计与实现》,供大家借鉴与参考,希望对大家有所帮助。

《C 语言通讯录设计与实现》篇1引言通讯录是一个常见的应用程序,用于存储和管理联系人的信息,包括姓名、电话号码、电子邮件地址等。

在现代智能手机中,通讯录已经成为了一个不可或缺的应用程序。

在本文中,我们将使用 C 语言来设计和实现一个简单的通讯录程序。

通讯录的设计通讯录程序需要存储联系人的信息,包括姓名和电话号码等。

我们可以使用结构体来存储联系人的信息,如下所示:```struct contact {char name[20];char phone[20];};```通讯录程序需要具有添加、查找、修改和删除联系人信息的功能。

我们可以使用数组来存储联系人的信息,并使用索引来标识每个联系人。

以下是通讯录程序的基本设计:```#define MAX_CONTACTS 100 // 通讯录最大容量struct contact contacts[MAX_CONTACTS]; // 通讯录数组int num_contacts; // 当前通讯录中的联系人数量// 添加联系人信息void add_contact(char *name, char *phone) {if (num_contacts == MAX_CONTACTS) {printf("通讯录已满,无法添加联系人");return;}contacts[num_contacts].name = name;strcpy(contacts[num_contacts].phone, phone);num_contacts++;}// 查找联系人信息void find_contact(char *name) {int i;for (i = 0; i < num_contacts; i++) {if (strcmp(contacts[i].name, name) == 0) {printf("找到联系人 %s,电话号码为 %s", name, contacts[i].phone);return;}}printf("未找到联系人 %s", name);}// 修改联系人信息void modify_contact(char *name, char *phone) { int i;for (i = 0; i < num_contacts; i++) {if (strcmp(contacts[i].name, name) == 0) {contacts[i].phone = phone;printf("修改联系人 %s的电话号码为 %s", name, phone);return;}}printf("未找到联系人 %s", name);}// 删除联系人信息void delete_contact(char *name) {int i, j;for (i = 0; i < num_contacts; i++) {if (strcmp(contacts[i].name, name) == 0) { for (j = i; j < num_contacts - 1; j++) { contacts[j] = contacts[j + 1];}num_contacts--;printf("删除联系人 %s成功", name);return;}}printf("未找到联系人 %s", name);}```通讯录的实现为了实现通讯录程序,我们需要将设计转化为代码。

C语言实验报告 通讯录

C语言实验报告 通讯录

C语言集中上机报告通信录院系:班级:姓名:合作者:指导教师:2015年6月1日目录一概述 (3)课程设计的目的 (3)二总体方案 (4)三程序的调试与运行结果说明 (4)四课程设计总结 (6)五后记 (7)六附录 (7)参考文献 (11)一概述课程设计的目的实现个人通讯录管理, 录入包括姓名、地址、邮政编码、电话号码的信息。

其中:1.对n名学生包括姓名、地址、邮政编码、电话号码等信息进行输入;2、显示所有记录的信息, 若无记录, 则给出提示信息;3.可以按姓名进行查询;4.可以按姓名进行删除;6.退出程序1.课程设计的要求教师要求:1、为通信录数据定义类型和定义通信录变量, 实现功能: 存取、显示、删除记录、查询记录等功能。

2.要求:界面友好, 易于操作。

(本题目限最多一个人完成)需要的基本知识和技能:1.利用C语言进行程序设计的能力;2.理解和运用结构化程序设计的思想和方法;3.初步掌握开发一个小型实用系统的基本方法;4.学会调试一个较长程序的基本方法;5.学会利用流程图或N-S图表示算法;6.掌握书写程序设计开发文档的能力。

2.课程设计的主要设计思想整个程序的设计是通过对每一个功能的设计, 然后, 再对每一个功能的程序进行模块化, 从而形成一个完整的管理系统。

自顶向下、逐步细化、逐步求精。

在对于给定问题进行透彻的了解和详细的分析的基础上, 把问题分解成若干个按顺序执行的逻辑部分(称为“模块”)。

每个子任务如果仍很复杂, 还可以再分解为若干个子任务。

对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法, 将它们分解成为基本结构为止, 就如同写文章先拟出题目和中心内容, 再确定分为几大部分, 每一大部分又分哪几节, 每一节分为几段, 每一段包括哪几个意思, 这就是“自顶向下, 逐步细化”的方法。

二总体方案整体设计思路: 程序主要运用到了文本文件的打开和读取, 文件中存取信息的格式为结构体数组, 一个主函数下面分为个子函数。

c语言个人通信录管理系统课程设计报告

c语言个人通信录管理系统课程设计报告

高级语言程序设计报告(个人通信录管理系统)院系:通信与信息工程学院班级:通信工程1104班成员:时间:2012年7月2日基于链表的个人通信录管理系统课程设计任务书课程设计情况课程设计名称基于链表的个人通信录管理系统指导教师姓名职称需学生数6人组长杨文刚成员李岩、王皓升、罗洋、王志旭、沈洋各成员主要负责内容杨文刚负责主体函数框架建立和函数模块整合李岩负责程序的添加模块王皓升负责程序的删除模块王志旭负责程序的查找模块罗洋负责程序的输出模块沈洋负责程序的输入模块程序的调试和测试由小组成员共同参与完成课程设计的报告撰写由杨文刚、李岩完成目录1.设计目的 (1)2.总体设计 (2)3.详细设计 (3)4.程序调试与测试 (5)5.程序清单与执行结果 (6)5.1 程序清单 (6)5.2 程序执行结果 (14)6.课程设计总结 (20)1.设计目的1.1 问题描述编写一C 语言程序,其功能是建立一个基于链表的个人通信录管理系统,个 人通信录进行建立、输出、添加、查找及删除运行结果进行打印等相关操作。

1.2 问题分析首先,选择合适的存储结构构造个人通信录,对该程序可以分为几个模块进行分析,每个模块在该程序中的作用进行了解。

最后用设计连接图将各模块之间的联系连接起来,以方便我们更容易理解。

然后,该程序需要一个详细的设计流程图来表示各个步骤所完成的先后顺序,(如,对个人通信录进行添加,查找输出打印结果)。

最后,按流程图进行编写个人通信录的程序,输出结果,并将打印的结果显示出。

1.3 设计分析本次实验设计主要是建立个人通信录,要实现个人通信录的建立,个人通信录的查找,个人通信录的添加及个人通信录的删除功能。

.设计需求上我们需要掌握以下几点:(1).设计部分1. 写出本次实验的详细设计方案。

2. 画出该次程序的流程图。

3. 分析该次程序的程序清单,进行程序测试并输出运行结果。

4. 对该次程序中个函数的功能分析结果。

5. 对该次实验完成后有总结。

C语言程序设计报告书(手机通讯录)

C语言程序设计报告书(手机通讯录)

此处所用字符函数 “strcpy”,由于删 除联系人后,需要进 行重新编号,故选将 第“q+1”个联系人 的信息复制给第“q” 个联系人。
ห้องสมุดไป่ตู้
PPTFLY
增加功能(APPEND)
void APPEND(int j) /*添加联系人的相关信息*/ { int n; fri[j].num=j+1; printf("Number:%d\n",j+1); printf("Name:"); scanf("%s",fri[j].name); printf("Kind:"); scanf("%s",fri[j].classify); printf("Telephone:"); scanf("%s",fri[j].telephone); printf("Mail:"); scanf("%s",fri[j].mail); }
c语言程序设计报告书手机通讯录c语言通讯录程序设计c语言程序设计报告书c语言通讯录课程设计c语言通讯录程序通讯录管理系统c语言c语言通讯录c语言通讯录代码用c语言编写通讯录c语言通讯录源代码
PPTFLY
C语言程序设计报告
报告人:曾强 学号:05311130 专业:工程力学
通讯录管理系统(A级)
模拟手机通讯录管理系统,初始通讯录信息由文本文件
if(i=20)
printf("\nThe room is full");break; case 2:SHOW(fri);getch();break; case 3:DIAL(fri);getch();break; case 4:CORRECT(fri);getch();break; case 5:DELETE(fri[i]);getch();break; case 6:exit(0); }

C语言课程设计报告通讯录设计报告说明

C语言课程设计报告通讯录设计报告说明

江苏教育学院信息技术专业课程设计报告2011-2012学年第一学期课程设计报告名称一、课程设计内容通讯录管理系统具体要求如下:1、建立通讯录信息,信息至少包括编号、姓名、年龄、电话、通讯地址、电子邮箱等内容;2、能够提供添加、删除和修改通讯录信息等功能;3、能够提供按照不同方式查询的功能,如按姓名或年龄、电话查询;4、能将通讯录保存在文件中;5、能够按表格方式输出通讯录信息。

二、课程设计目的1、为存储通讯录信息,需定义一个结构体类型,成员包括编号、姓名、年龄、电话、通讯地址、电子邮箱等,并建立链表,定义该结构体类型的指针,用于指向各结点;2、分别建立具有添加、删除、修改、查询等功能的子函数,完成相应功能,对程序实现模块化。

这其中要用到对链表的删除、插入等知识。

删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的学号,若相等就删除,不相等则后移指针,直至表尾。

插入时也要先找到相应结点,再添加。

查询功能要设置姓名、编号、地址等多种方式。

3、为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。

4、为以表格的形式输出文件,宏定义格式化输出语句,用横线和竖线构成表格三、算法的基本思想系统总体设计框架:对程序进行模块化,建立添加、修改、删除、查找和显示功能的子函数,各子函数中运用链表存储数据。

从主函数开始执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。

系统功能模块图:详细设计主要功能模块的算法设计思路如下:1、添加信息函数(void Add(Link l)) (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息;(4)调用保存函数,打开文件,保存输入信息。

2、修改信息函数(void Modify(Link l)) (1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数; (3)根据要修改的编号查找对应结点; (4)修改信息;(5)打开文件,保存修改记录。

C语言程序设计课程设计报告个人通信录管理

C语言程序设计课程设计报告个人通信录管理

重庆科技学院《C语言程序设计》课程设计报告学院:_电气与信息工程学院_ 专业班级: 11级学生姓名:学号: 201144 设计地点(单位)________计算机自主学习中心 ________ __设计题目:____个人通讯录管理______________________________ 完成日期: 2012 年1月13日指导教师评语: ______________________ __________________________________________________________________________________________________________________________________________________________________________________________________________________________ __________ _成绩(五级记分制):______ __________指导教师(签字):________ ________摘要通讯录[address book] 记录通讯地址的书本,通讯录涵盖了多项内容:可以储存一个人的姓名、手机号码、家庭住址、QQ等,以方便联系。

通过学习我设计一个个人通讯录管理,这个系统可以方便人们的查找个人信息,他具有快速查找的功能,主要是通过按姓名查找、按手机号码查找、按地址查询等。

这个通讯录可以修改已存所有人的任何信息,也可以删除里面你不想储存人的信息,当你在运行删除的时候,系统会再次提醒你是否删除,一旦删除将会永远删除。

关键字:通讯录查找删除重庆科技学院课程设计任务书设计题目:个人通讯录管理系统/ 杨治明 2012年1月1日目录摘要 (1)课程设计责任书 (2)软件需求分析说明书 (4)第一章系统分析与设计 (5)第二章软件的实现 (6)2.1 软件界面设计 (6)2.2 软件的数据(结构)设计 (6)2.3 软件的算法设计 (6)第三章软件测试 (7)第四章软件使用说明书 (8)致谢 (9)参考文献 (10)软件需求分析说明书个人通讯录管理是个可以储存、修改、查看、查找、删除的功能。

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

航空航天大学金城学院《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电子:44444444444QQ: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<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>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;int i,j;long int QQ;printf("\n\t\t 按QQ查找 \n");printf("\n请输入QQ:");scanf("%ld",&QQ);for(i=0;i<num;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<num;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)<num){printf("\n是否继续查找相同名字的联系人的信息?(1代表继续;2代表不继续)\n");scanf("%d",&j);if (j==1){a=i;mark++;continue;}elsebreak;}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<num;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<num-1;j++) /*纪录移动,从per数组中删除之*/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<num;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<num-1;j++) //*纪录移动,从per数组中删除之*//per[j]=per[j+1];num--;deletemark++;printf("\n\t\t删除成功");if((i+1)<num){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();elsebreak;}}elsecontinue;}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<num;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)<num){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<num;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(,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;}void showall()//*输出全部信息*//{int i,j;system("cls");system("color 3b");if(num!=0){printf("\n\t\t*************** 以下为通讯录所有信息************");for (i=0;i<num;i++){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("\t\t");if (i+1<num){printf("\n\t\t__________________________");system("pause");}}printf("\n\t\t************************************************");}elseprintf("\n\t\t对不起!通讯录中无任何纪录!");printf("\n\t\t请按任意数字键返回主菜单");scanf("%d",&j);return;}void writetofile()//*写入文件*//{int i,k;system("cls");system("color 84");if ((fp=fopen("per.bin","wb"))==NULL){printf("\n\t\t文件打开失败");}for (i=0;i<num;i++){if (fwrite(&per[i],sizeof(struct person),1,fp)!=1){printf("\n\t\t写入文件错误!\n");}}fclose(fp);printf("\n\t\t通讯录文件已保存");printf("\n\t\t请按任意数字键返回主菜单");scanf("%d",&k);return;}void readfromfile()//*读取文件*//{int i,j,k;system("cls");system("color 2b");if((fp=fopen("per.bin","rb"))==NULL){printf("\n\t\t****************************");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t* 通讯录文件不存在! *");if ((fp=fopen("per.bin","wb"))==NULL){printf("\n* 建立失败! *");printf("\n* *");printf("\n* *");printf("\n****************************");exit(0);}else{printf("\n\t\t* 通讯录文件已建立! *");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t****************************");printf("\n\t\t 按任意键进入主菜单 ");printf("\n\t\t 请输入您的数字选择: ");scanf("%d",&k);return;}exit(0);}fseek(fp,0,2); //*文件位置指针移动到文件末尾*//if (ftell(fp)>0) //*文件不为空*//{rewind(fp); //*文件位置指针移动到文件开始位置*//for (num=0;!feof(fp) && fread(&per[num],sizeof(struct person),1,fp);num++);printf("\n\t\t****************************");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t* 文件导入成功! *");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t****************************");printf("\n\t\t 按1显示所有信息,按2回主菜单! ");printf("\t\t\n 请输入您的数字选择: \n");scanf("%d",&j);if(j==1)showall();}else{printf("\n\t\t****************************");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t* 文件导入成功! *");printf("\n\t\t* 通讯录文件中无任何纪录! *");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t****************************");printf("\n\t\t请按任意数字键返回主菜单");scanf("%d",&i);return;}}void deleteall()//*删除所有信息*//{int i,j;system("cls");system("color 50");printf("\n\t\t确认删除?\n");printf("请按1和2(1代表确认;2代表不删除)\n ");scanf("%d",&i);if (i==1){fclose(fp);if ((fp=fopen("per.bin","wb"))==NULL){printf("\n\t\t不能打开文件,删除失败");readfromfile();}num=0;printf("\n\t\t纪录已删除!");printf("\n\t\t请按任意数字键返回主菜单");scanf("%d",&j);return;}}。

相关文档
最新文档