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

阅读: 评论:0

手机通讯录管理系统设计
1.题目要求
模拟手机通讯录管理系统,实现对手机中的通讯录进行管理.功能要求如下:
(1).查看功能:选择此功能时,列出以下三类选择:
①办公类
②个人类
③商务类
(2).增加功能:能录入新数据.
一个结点包括:姓名、电话号码、分类(办公类、个人类、商务类)、。例如:杨**1358******** 商务类 c*****
当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条
信息时,存储空间已满,不能再录入新数据,录入的新数据能按递增的顺序自动进行条目编号。
(3).修改功能:选中某个人的姓名时,可对此人的相印数据进行修改。
(4).删除功能:选中某个人的姓名时,可对此人的相印数据进行删除,并自动调整后续条目的编号。
2.需求分析
根据题目要求,手机通讯录文件存放在手机上的指定位置(假设默认位置为D:\),所以应提供文件的输入、输出等操作;在浏览通讯录时要提供显示,查、插入、修改、删除等操作;另外还应该提供键盘式选择菜单实现功能选择。
3.总体设计
根据上面的要求分析,可以将这个系统分成以下模块:菜单选择;查看数据;增加数据;修改数据;删除数据。
4.详细设计.
①.函数预备   
函数准备部分主要包含库文件,预定义部分和本函数定义并使用的函数声明。
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#define N 15//根据程序要求,本程序内的通讯录条数最多为15条
char address[100]="";
//结构体声明
typedef struct person//通讯录结构中结点的定义
{
    int num;
    char name[20];
    char tel_number[100];
    char type[20];
    char email[30];
    struct person *next;
}PERSON;
PERSON person[N];//定义N个结构体变量,用于存储文件数据
PERSON *head,*tail;//定义头指针和尾指针
//函数声明部分
PERSON *input();//建立文件,输入原始数据
PERSON *output();//建立文件,实现原始文本覆盖
void browse();//浏览(用包含browse1()和back()实现)
void browse1();//浏览模块子程序
void add();//添加数据
void modify();//修改数据
void del();//删除数据
void menu();//菜单程序
void back();//返回菜单或退出选择程序
PERSON *findnum(int num);//通过序号到数据
PERSON *findname(char name[]);//通过姓名到数据
PERSON *findtel(char tel[]);//通过电话号码到数据
②.主函数
主函数功能一般设计得比较简单,只提供输入、处理和输出的部分函数调用。其中各部分功能模块用菜单方式选择。其流程图如右图所示:
[程序]
//主函数入口
void main()
{
    int n,w1;//变量n保存选择菜单数字,w1判断输入的数字是否在对应的数字范围内
printf("\t\t\t********Design by yiwanfu********\n");
    Printf("\t\t\t\t------Connect me please send e-mail to ************** !^-^"); //程序设计者声明
    printf("This is a program to manage your telephone address book.\n");
    printf("And we just can manage %d pieces of message.\n\n",N);
    printf("The message's form we necessary just as follows:\n");
    printf("1.sequence-number,  2.name,  3.type,  4.telephone-number,  5.email\n");
    printf("the type we afford is:\n\t");
    printf("1.Office\n\t");
    printf("2.Person\n\t");
    printf("3.Bussiness\n\n");//函数作用声明
    puts("\t\t******************MENU******************\n\n");//菜单选择
    puts("\t\t\t\t  1.Input File");
    puts("\t\t\t\t  2.Browse Data");
    puts("\t\t\t\t  3.Add new Data");
    puts("\t\t\t\t  4.modify Data");
    puts("\t\t\t\t  5.Delete Data");
    puts("\t\t\t\t  6. exit");
    puts("\n\n\t\t****************************************\n");
    printf("Choice your number(1-6):[ ]\b\b");
    scanf("%d",&n);
    while(n<1||n>6)
    {
        system("cls");//清屏
        printf("\nThe function you choice is not included in our program,\nif your want new functions please contact us,\nat present, we just afford the function as follows:\n ");
        puts("\t\t****************************************\n\n");
        puts("\t\t\t\t  1.Input File");
        puts("\t\t\t\t  2.Browse Data");
        puts("\t\t\t\t  3.Add new Data");
        puts("\t\t\t\t  4.modify Data");
        puts("\t\t\t\t  5.Delete Data");
        puts("\t\t\t\t  6. exit");
        puts("\n\n\t\t****************************************\n");
        printf("Now please choice the  function you wanted with a number between 1 to 6:[ ]\b\b");
        w1=1;
        getchar();       
    }
    switch(n)
    {   
        case 1:input();break;//从手机通讯录输入数据(默认为本程序所在文件夹下的)
        case 2:browse();break;//浏览数据
        case 3:add();break;//添加数据
        case 4:modify();break;修改数据
        case 5:del();break;//删除数据
        case 6:exit(0);//退出
        default :exit(0);
    }
    return;
}
//菜单程序
void menu()//函数体内容与主函数下半相同
{
    int n;//变量n保存选择菜单数字,w1判断输入的数字是否在对应的数字范围内
    system("cls");
    puts("\t\t******************MENU******************\n\n");
    puts("\t\t\t\t  1.Input File");
    puts("\t\t\t\t  2.Browse Data");

本文发布于:2023-05-11 20:18:24,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/95952.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   选择   通讯录   菜单   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图