个人通讯录管理系统课程设计报告示例

时间:2024.3.31

重庆科技学院

课程设计报告

   

院(系):_电子信息工程学院_ 专业班级:                 

学生姓名:                   学    号:                

设计地点(单位):_ _____________    

设计题目:______ _____________

完成日期:  20##年  3月  5日

指导教师评语: _______________________________________

_________________________________________________________________________________________________________________________________________________________________________________________________________    __________ _        

成绩(五级记分制):______ __________
          指导教师(签字):________  ________


重庆科技学院

课程设计任务书

设计题目:个人通讯录管理系统

教研室主任:                                指导教师:                                                    20##年 2 月27 日

摘要

    本次课程设计的题目是个人通讯录管理系统,要求在磁盘中以二进制文件的形式存储人员的姓名、年龄、性别等基本信息,并运用程序将磁盘文件中的个人基本信息进行查询、修改和删除等。

我编写的程序从整体上看可分为五大部分,分别是“添加”、“查询”、“修改”、“删除”和“全部显示”。其中添加信息是将人员的基本信息输入并以二进制文件的形式保存在文件中,当添加完所要输入的个人通讯信息后继续选择其它功能;若要对文件中存储的个人通讯信息进行查询、修改和删除等时,则可按照程序提示分别进行。

关键词:通讯信息、添加、查询、修改、删除、全部显示。

目录

1 设计内容与要求... 1

1.1 设计内容... 1

1.2 设计要求... 1

2 概要设计... 2

2.1 信息的存储... 2

2.2个人通讯信息的设计... 2

2.3主函数设计... 2

2.4信息添加的设计... 2

2.5信息查询的设计... 3

2.6信息删除的设计... 3

2.7信息修改的设计... 3

2.8 信息显示的设计... 3

3 详细设计... 4

3.1 主函数... 4

3.2信息输入... 6

3.3信息查询... 7

3.4信息删除... 7

3.4信息修改... 8

3.4信息显示... 9

4 调试分析... 10

4.1 问题解决... 10

5测试结果... 11

5.1文件输入... 11

输入个人通讯信息,运行结果如下:... 11

.. 11

5.2查询结果... 12

5.3 修改结果... 13

5.4 删除结果... 14

5.5 全部显示结果... 14

总结... 15

参考文献... 16

致谢... 17

附录... 18


1 设计内容与要求

1.1 设计内容

  建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。

系统所涉及的信息以二进制文件的形式保存在磁盘上。

1.2 设计要求

进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。

根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告

2 概要设计

2.1 信息的存储

运行编写好的程序,通过提示,输入人员的姓名、性别、年龄和电话等信息,再根据提示反复输入,并以二进制文件形式保存。

2.2个人通讯信息的设计

需定义一个结构体类型,用来表示学生的各种信息,如下。

typedef struct Man{

    char Name[12];

    char Sex[4];

    char Old[4];

    char Mobil[12];

char Tel[12];

    char Address[16];

    char QQ[12];

    char Email[16];

    char Sort[12];

}man;

2.3主函数设计

其功能实现从屏幕输出6个选择: 1添加信息2. 查询信息3.删除信息4.修改信息5.显示信息6.退出程序,从中选择任一一个来进行个人通讯信息的管理。

2.4信息添加的设计

    此模块通过void TianJia( );函数实现。从键盘输入个人通讯信息,以二进制文件将这些信息写入文本。先建立一个文件指针(FILE *fp),打开文件,输入信息,写入文件,关闭文件。

2.5信息查询的设计

此模块通过void ChaXun()。从键盘输入要查询的人员姓名,程序将从文件中读出先前出入的个人通讯信息,再从屏幕上输出您要查找的信息。

2.6信息删除的设计

此模块通过void ShanChu( )函数实现。从屏幕上输出所要删除的人员姓名,根据操作提示,然后删除信息。

2.7信息修改的设计

此模块通过void XiuGai( )函数实现。从屏幕上输出:请输入您要修改的人员姓名,然后显示要修改的人员信息,并根据提示继续输入需修改后的信息,这些信息将以二进制形式写入文本。这需要打开文件读出原信息,再将修改后的所有通讯信息一起写入文件并保存。

2.8 信息显示的设计

此模块通过void XianShi( )函数实现,只需选择显示信息菜单即可显示全部通讯录信息。

 

3 详细设计

3.1 主函数

(1)函数说明

先从屏幕上显示6个选项,以供选择。第一个选项调用了TianJia函数、第二个调用了ChaXun函数,第三个选项调用了ShaChu函数,第四个调用了XiuGai函数,第五个选项调用XianShi函数,从而实现学生信息的添加、查询、删除、修改、 显示 等功能;最后一个选项实现退出的功能。

 (2)流程图

3.2信息输入

(1)   函数说明

     此函数用于输入个人通讯信息。先定义一个文件指针FILE(*fp),然后用fopen()函数打开文件,从键盘输入数据,用fwrite函数将信息写入到文件中,最后用fclose()函数关闭文件。屏幕上会显示“请输入y继续其他功能”您可以根据您的需要进行选择然后进行下面的操作。

(2)流程图

3.3信息查询

(1)    函数说明

此函数用于查找学生信息,用fopen()函数打开文本文件,用fread函数从文件中将原有信息读出,屏幕上会显示“请输入您要查找的人员姓名”,从键盘输入,屏幕上会显示您要查找的学生信息,最后用fclose()函数关闭文件。

(2)流程图

3.4信息删除

(1)    函数说明

此函数用于删除个人通讯信息,用fopen()函数打开文本文件,读出原有信息并输出到屏幕,从屏幕上输出提示“请输入要删除的人员姓名”,输入后显示该信息即被删除。最后用fclose()函数关闭文件。

(2)流程图

3.4信息修改

(1)函数说明

此函数用于修改信息。用fopen()函数打开文本文件,读出原有信息并输出到屏幕,此时屏幕上会显示"请输入您要修改的人员姓名:",从键盘输入姓名,屏幕上将会显示要修改的信息 用fwrite()函数将现在的信息写入到磁盘中,最后用fclose()函数关闭文件。

(2) 流程图

3.4信息显示

(1)函数说明:

     此函数用来打印学生全部信息,用fopen( )函数打开文本文件,读出原所有信息并输出到屏幕,最后用fclose()函数关闭文件。

(2)    流程图:

4 调试分析

4.1 问题解决

首先,由于所要将输入通讯信息要以二进制文件的形式进行存储,所以在添加信息和查询信息就遇到了麻烦,读取信息的时候显示的全部是乱码,一个是因为在输入和读取“年龄”、“电话”等信息的时候是以%d的形式,二是因为没有运用到”rb+”对信息进行存储和输出。

在同学的帮助下对程序进行了反复的修改,最终达到了以二进制存储和读取的目的。

其次就是在对存储的信息进行删除的时候是以空白来覆盖的,而在全部显示存储的信息时用来覆盖的空白信息也被读取,最后是在仔细查询课本的时候,按照书上的方法进行了修改。

最后就是在全部显示文件中存储的信息时,而最后一个信息会被读取两次,最终我运用的计数器对文件中存储的信息量统计,而对读取信息的次数进行控制,以达到全部显示的目的。

5测试结果

5.1文件输入

输入个人通讯信息,运行结果如下:

5.2查询结果

查询个人通讯信息,运行结果如下:

 

 

5.3 修改结果

修改个人通讯信息,运行结果如下:

5.4 删除结果

删除个人通讯信息,运行结果如下:

5.5 全部显示结果

删除个人通讯信息,运行结果如下:

总结

本次课程设计的要求是建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。虽然我对该实验的内容及要求都有所了解,在对程序的大体规划上还很清楚,但是在编写程序时思维却很混乱,由于在对个人通讯信息的输入、查询、修改和删除中要求逻辑思维严密谨慎,所以在本次程序的编写中不能独立完成,而是在同学的帮助下,对每一个步骤的深入思考才得出了结果。

通过这次的专题实验让我意识到,自己在该门学科中还有很多不懂的地方,其主要原因是上机操作太少,对一些细节考虑还不够全面,今后我会努力学习本课程,要求自己能熟练掌握程序的编写。

参考文献

[1]C程序设计经典教程,

[美]Deitel,H.M.,[美]Deitel,P.J.著,清华大学出版社,2006

[2] Windows程序设计,

[美] Charles Petzold 著,北京大学出版社,2004

 

致谢

我要感谢老师对我们的认真负责的教导,在我们与到问题不理解时能构给我们耐心的讲解,并且在学习该专业课是对我们的要求,迫使我们在平日里抓紧时间学习。还要感谢学校为我们提供了良好的学习环境和设备,让我们能够更好的学习计算机方面的知识。以及在平日的学习中同学们对我的帮助。

附录

#include<stdio.h>

#include<string.h>

#include<windows.h>

typedef struct Man{

    char Name[12];

    char Sex[4];

      char Old[4];

      char Mobil[12];

      char Tel[12];

      char Address[16];

      char QQ[12];

      char Email[16];

      char Sort[12];

}man;

void TianJia( FILE *fp);

void XiuGai( FILE *fp);

void ShanChu( FILE *fp);

void ChaXun( FILE *fp);

void XianShi( FILE *fp);

int jishu(char *p);

int main()

{

      system("color 51");

      char b,c;

    FILE *fp;

do{

    printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");

    printf("\t\t★              通 讯 录              ☆\n");

      printf("\t\t☆   1、添加信息       2、查询信息    ★\n");

    printf("\t\t★                                    ☆\n");

      printf("\t\t☆   3、删除信息       4、修改信息    ★\n");

      printf("\t\t★                                    ☆\n");

      printf("\t\t☆   5、显示信息       6、退出程序    ★\n");

      printf("\t\t★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");

    printf("请选择您想要执行操作的代码: ");

      scanf("%d",&c);

      printf("\n");  

    switch ( c )

      {

      case 1:

        fp = fopen("d:\\tongxunlu.txt","ab+");

             TianJia( fp);

             break;

      case 2:

        fp = fopen("d:\\tongxunlu.txt","rb");

             ChaXun( fp);

             break;

      case 3:

        fp = fopen("d:\\tongxunlu.txt","rb+");

        ShanChu( fp);

        break;

      case 4:

             fp = fopen("d:\\tongxunlu.txt","rb+");

             XiuGai( fp);

             break;

      case 5:

             fp = fopen("d:\\tongxunlu.txt","rb");

             XianShi( fp);

             break;

      case 6:

             printf("谢谢使用!\n");

             exit(0);

      default:

             printf("输入有误,请重新输入!\n");

        break;

      }

          fflush( stdin);

          fclose(fp);       

    

             printf("请输入y继续其他功能\n");

        scanf("%c",&b);

        if(b == 'y')

             {           system("cls");

             }

}while(c != 6);

      return 0;

}

void TianJia( FILE *fp)

{    man a1;

      printf("请输入您要添加的人员信息\n");

      rewind( fp);

                printf("\n");

                printf("姓名:");

            scanf("%s",&a1.Name);

                fflush(stdin);

      

            printf("\n");

             printf("性别:");

             scanf("%s",&a1.Sex);

                fflush(stdin);

                printf("\n");

                printf("年龄:");

                scanf("%s",&a1.Old);

                fflush(stdin);

                printf("\n");

                printf("移动电话:");

                scanf("%s",&a1.Mobil);

                fflush(stdin);

                printf("\n");

                printf("固定电话:");

                scanf("%s",&a1.Tel);

                fflush(stdin);

                printf("\n");

                printf("住址:");

                scanf("%s",&a1.Address);

                fflush(stdin);

                printf("\n");

                printf("QQ:");

                scanf("%s",&a1.QQ);

           fflush(stdin);

                printf("\n");

                printf("Email:");

                scanf("%s",a1.Email);

                fflush(stdin);

                printf("\n");

                printf("类别:");

                scanf("%s",a1.Sort);

                fflush(stdin);

            

                fp = fopen("d:\\tongxunlu.txt","a+");            

                fwrite(&a1,sizeof( a1),1,fp);        

       

       fclose( fp);

}

void ChaXun( FILE *fp)

{    man a2;

       char name1[12];

     printf("请输入你要查找的人员姓名:");

       scanf("%s",name1);

       fflush( stdin);

     rewind(fp);

           while( fread( &a2, sizeof( a2), 1, fp) != NULL)

              {         

                   if( strcmp( name1, a2.Name) == 0)

                      {

                          printf("您所查询的人员信息如下:\n");

                          printf("姓名:%s\n\n性别:%s\n\n年龄:%s\n\n住址:%s\n\n移动电话:%s\n\n固定电话:%s\n\nQQ:%s\n\nEmail:%s\n\n类别:%s\n",

                             a2.Name, a2.Sex, a2.Old, a2.Address, a2.Mobil,a2.Tel, a2.QQ, a2.Email, a2.Sort);

              }

                   else

                      {

                          printf("您要查询的人员资料不存在!\n");

                            

                      }

              }

       fclose( fp);

       return;

}

void XiuGai( FILE *fp)

{

      man a3;

      man one;

      int count1 = 0;

      char name2[12];

         printf("请输入您要修改的人员姓名:");

         scanf("%s", &name2);

         fflush( stdin);

        while( !feof( fp))

        {

              fread( &a3,sizeof( a3), 1, fp);

              count1++;

             if( strcmp( name2,a3.Name) ==0)

             {

                        printf("姓名:%s\n性别:%s\n年龄:%s\n住址:%s\n移动电话:%s\n固定电话:%s\nQQ:%s\nEmail:%s\n类别:%s\n",

                            a3.Name, a3.Sex, a3.Old, a3.Address, a3.Mobil, a3.Tel, a3.QQ, a3.Email, a3.Sort);

                           printf("请输入您要修改的资料.\n");

                           printf("\n");

                     printf("姓名:");

                 scanf("%s",&one.Name);

                     fflush(stdin);

      

                 printf("\n");

                  printf("性别:");

                  scanf("%s",&one.Sex);

                     fflush(stdin);

                     printf("\n");

                     printf("年龄:");

                     scanf("%s",&one.Old);

                     fflush(stdin);

                     printf("\n");

                     printf("移动电话:");

                     scanf("%s",&one.Mobil);

                     fflush(stdin);

                     printf("\n");

                     printf("固定电话:");

                     scanf("%s",&one.Tel);

                     fflush(stdin);

                     printf("\n");

                     printf("住址:");

                     scanf("%s",&one.Address);

                     fflush(stdin);

                     printf("\n");

                     printf("QQ:");

                     scanf("%s",&one.QQ);

                fflush(stdin);

                     printf("\n");

                     printf("Email:");

                     scanf("%s",&one.Email);

                     fflush(stdin);

                     printf("\n");

                     printf("类别:");

                     scanf("%s",&one.Sort);

                     fflush(stdin);

                           fseek(fp,(count1 - 1)*sizeof( a3),SEEK_SET);

                fwrite(&one,sizeof( one),1,fp);               

                  printf("修改成功!\n");

                           return;

}

                Else

                    {

                       printf("您要修改的人员不存在!\n");                       

                       return;

                    }

        }

       fclose( fp);

       return; 

      void ShanChu( FILE *fp)

{  

       man a4;

         man blank = {0};

         char name3[12];

         int count = 0;

       rewind(fp);

         printf("请输入您要删除的人员姓名:");

         scanf("%s",&name3);

         fflush( stdin);

         while( !feof( fp))

         {

                fread( &a4,sizeof( a4), 1, fp);

           count++;

                if( strcmp( name3,a4.Name) ==0)

                {

                      printf("姓名:%s\n性别:%s\n年龄:%s\n住址:%s\n移动电话:%s\n固定电话:%s\nQQ:%s\nEmail:%s\n类别:%s\n",

                            a4.Name, a4.Sex, a4.Old, a4.Address, a4.Mobil, a4.Tel, a4.QQ, a4.Email, a4.Sort);

                 fseek( fp,( count - 1) * sizeof( a4), SEEK_SET);

                 fwrite( &blank, sizeof( blank), 1, fp);

                            printf("删除成功!");

                   fclose( fp);

                      return;

                }

               else

               {

                    printf("您要删除的人员不存在!\n");

            return;

               }

            fclose( fp);

               return;

         }

}

void XianShi( FILE *fp)

{

      char m = 0, n;

      man a5;

  while( !feof( fp))

  {

             fread( &a5,sizeof( a5), 1, fp);

        m++;     

  }      

     for( n = 0; n < m -1; n++ )

       {  

         fread( &a5, sizeof( a5), 1, fp);

           printf("您所需要的资料如下:\n");

           printf("姓名:%s\n性别:%s\n年龄:%s\n住址:%s\n移动电话:%s\n固定电话:%s\nQQ:%s\nEmail:%s\n类别:%s\n",

                            a5.Name, a5.Sex, a5.Old, a5.Address, a5.Mobil, a5.Tel, a5.QQ, a5.Email, a5.Sort);

       }

           fclose( fp); 

}

更多相关推荐:
c课程设计报告书——通讯录管理系统

C语言课程设计课程设计报告题目学号姓名年级专业指导教师完成日期安徽师范大学物理与电子信息学院CollegeofPhysicsandElectronicInformationAnhuiNormalUniversi...

c++课程设计总结报告 通讯录管理系统

源代码includeltiostreamgtincludeltstringgtincludeltiomanipgtincludeltfstreamgtincludeltconiohgtincludeltcstd...

手机通讯录管理系统课程设计报告模板

山东工商学院信电学院高级语言程序设计课程设计报告高级语言程序设计课程设计报告题目手机通讯录管理系统专业电子信息工程班级电子112学号姓名指导教师日期20xx年7月9日至20xx年7月14日山东工商学院信电学院山...

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

设计课题题目一课程设计目的与要求1课程设计目的1综合运用之前所学知识选择控制循环控制数组函数指针结构体和文件等来完成一个简单的信息管理程序的设计2充分体现和体会函数在程序设计中的必要性和实用性并反映主函数mai...

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

目录摘要2第一章绪论311课程设计目的和内容概述312题目手机通讯录管理系统3第二章程序分析421总体设计422详细设计423总流程图4第三章模块介绍和总体实现731构建结构体写入文件732构造函数与模块833...

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

高级语言程序设计报告个人通信录管理系统院系班级成员时间通信与信息工程学院杨文刚1107020xx020xx年7月2日基于链表的个人通信录管理系统课程设计任务书目录1设计目的12总体设计23详细设计34程序调试与...

通讯录管理系统设计报告

C语言通讯录管理系统通讯录管理系统学生姓名学院计算机与通信工程学院班级班学号摘要本课程设计主要是一个简单的通讯录管理系统通过程序中的菜单编号实现对数据的添加修改删除等操作在本课程设计中系统开发平台为Window...

c++课程设计报告【通讯录】【样本】

课程设计报告题目通讯录管理系统的设计与开发学生姓名学号院系专业20xx年9月9日目录一系统开发相关情况1一开发背景1二系统开发的目标1二系统以及需求分析1一系统目标1三程序功能描述以及模块结构2一功能模块描述及...

C++课程设计报告(简单通讯录管理)

C语言课程设计报告一课题名称简单通讯录管理二程序功能一个简单的通讯录管理程序具有插入删除显示修改和查询联系人通讯方式等功能三课题分析本课程设计的数据有每个人的姓名电话号码和Email地址并且所有人的数据默认以姓...

通讯录管理系统数据结构课程设计论文

学生课程设计论文题目通讯录管理系统学生姓名0学号20所在院系计算机学院专业0班级0指导教师0职称0年月日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书注任务书由指导教师填写课程设计论文指导教师成绩评定表目录...

个人通讯录管理系统课程设计报告示例

重庆科技学院课程设计报告院系电子信息工程学院专业班级计科1002学生姓名刘杰学号20xx41756设计地点单位计算机自主学习中心设计题目个人通讯录管理系统完成日期20xx年6月24日指导教师评语成绩五级记分制指...

通讯录管理系统毕业设计

东南大学毕业设计论文报告题目院系专业学生姓名学号指导教师起讫日期通信录管理系统电工电子电气工程及其自动化年月1摘要本通信录信息管理系统用计算机管理电子通信录的一种计算机应用技术的创新在计算机还未普及之前通信管理...

通讯录管理系统课程设计报告(29篇)