C语言课程设计:
通讯录管理系统
一、需求分析………………………………………………………2
二、概要设计………………………………………………………2
三、详细设计………………………………………………………3
四、上机操作………………………………………………………14
五、实习心得………………………………………………………19
六、源程序  ………………………………………………………20
一、需求分析
  具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。
(1)数据包括:人名、工作单位、电话号码和E-MAIL地址。
(2)可对记录中的姓名和电话号码进行修改。
(3)可增加和删除记录。
(4)可显示所有的保存记录。
(5)可按人名或电话号码进行查询。
[提示]
  建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。
根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。
二、概要设计
根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出
三、详细设计
1、主函数;
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。
                    流程图
        N
   
    Y
【程序】
int main()    //主函数
{
    Man man[500],*pman=man;;
    char control;
    int size;
    printf("\t\t**********************************************\n");  //窗口初始化
    printf("\t\t********** 欢迎使用通讯录管理系统! ***********\n");
    printf("\t\t*--------------------------------------------*\n");
    printf("\t\t*            请按回车键继续!                *\n");
    printf("\t\t**********************************************\n");
    scanf("%c",&control);
    if(control)
    {
        size=Scan(pman);                              //判断文件是否存在
        printf("\t\t\t请输入相应操作数操作\n");
        for(;;)                                                      //菜单生成
        {
            printf("\t\t**********************************************\n");
            printf("\t\t*              1--插入信息                  *\n");
            printf("\t\t*              2--按姓名查                *\n");
            printf("\t\t*              3--按电话查                *\n");
            printf("\t\t*              4--删除信息                  *\n");
            printf("\t\t*              5--显示信息                  *\n");
            printf("\t\t*              6--修改信息                  *\n");
            printf("\t\t*              0--退出系统                  *\n");
            printf("\t\t**********************************************\n");
            scanf("%s",&control);
            switch(control)
            {
                case '1':    size=Insert(pman,size);break;    //插入新的通讯录
                case '2':    S_asname(pman,size);break;        //按姓名查
                case '3':    S_astel(pman,size);break;        //按电话查
                case '4':    Delete(pman,size);break;          //删除信息
                case '5':    Display(pman,size);break;        //显示所有信息
                case '6':    Modify(pman,size);break;          //修改信息c语言程序设计教程李丽娟
                case '0':    printf("**************谢谢使用!再见!**************\n");  //退出系统
                    return 0;
                    default:    printf("**********输入数字有误,请重新输入**********\n");break;
            }
        }
    }
    return 0;
}
2、插入模块
  此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。
                      流程图
                                   
【程序】
int Insert(Man * pMan,int Size)    //插入模块
{
    int i,n;
    printf("\t\t***********请输入要插入数据的个数.************\n");
    printf("\t\t**********************************************\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)        //从键盘输入数据再写入文件
    {  printf("您将要录入第%d条记录(共有%d条)\n",i+1,n);
        printf("请输入姓名:\n");
        scanf("%s",&pMan[Size+i].Name);
        printf("请输入工作单位:\n");
        scanf("%s",&pMan[Size+i].Depart);
        printf("请输入电话号码:\n");
        scanf("%s",&pMan[Size+i].TEL);
        printf("请输入Email地址:\n");
        scanf("%s",&pMan[Size+i].Email);
    }
    if(Save(pMan,Size+n))
    {
        printf("\t\t***********  恭喜!数据插入成功!  ***********\n");
    }
    else
    {
        printf("\t\t***********  操作失败,请稍后再试 !***********\n");
    }
    return Size+n;
}
3、显示模块
此模块为显示所有记录,流程图如下:
【程序】
void Display(Man * pMan,int Size)  //显示所有记录

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