欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    c语言课程设计学生通讯录管理系统.doc

    • 资源ID:2384840       资源大小:162KB        全文页数:25页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计学生通讯录管理系统.doc

    学生通讯录管理系统任务说明: 主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能: 记录通讯录内的人员的学号、姓名、地址、电话号码。显示所有人员的信息。通过输入姓名查找人员信息。通过输入姓名查找到要删除的人员信息,然后可以进行删除。通过输入姓名查找到要修改的人员信息,然后可以进行修改。添加人员信息。系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。通讯录管理系统数据输入数据修改删除数据添加查找浏览图1 系统功能模块图软件中使用的结构体和结构体数组,如:struct callmemberchar name20;char address20;char code20;char callnumber20;对用户的信息进行保存,他们都以二进制的形式读写。其中:char name20;char address20;char code20;char callnumber20分别对姓名、地址、邮编、电话号码进行储存在子函数中还使用了结构体数组:struct callmember one100;还使用了exit()、 fclose()等库函数。还运用了头文件:#include "stdafx.h"#include"string.h "#include <stdio.h>#include<stdlib.h>其中还使用大量的子函数,例如:void output();void del();void found();void modify() ;void insert();部分子函数的详细代码:void output() int b=0,i=0; int j; struct callmember one100;FILE *fp;if(fp=fopen("e:通讯录.txt","r")=NULL) printf("无法从已有通讯录输入!n可能是因为原通讯录不存在或为空!n建议你检查你的通讯录文挡!n"); exit(1);while(fscanf(fp,"%s%s%s%s",onei.name,onei.address,onei.code,onei.callnumber)!=EOF)i+;j=i;for(i=0;i<j;i+)printf("%s %s %s %sn ",onei.name,onei.address,onei.code,onei.callnumber);fclose(fp);void insert() FILE *fp;struct callmember *p; if(fp=fopen("e:通讯录.txt","a+")=NULL) printf("操作失败."); exit(1);p=(struct callmember *)malloc(sizeof(struct callmember); printf(" *n");printf(" 姓名:");scanf("%s",p->name);printf(" 地址:");scanf("%s",p->address);printf(" 邮编:");scanf("%s",p->code);printf(" 电话:");scanf("%s",p->callnumber);printf(" *n");fprintf(fp,"%s %s %s %s",p->name,p->address,p->code,p->callnumber); fclose(fp);free(p);通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。程序流程图:执行printf()退出系统调用output()函数调用insert()函数调用modify()函数调用found()函数调用del()函数选择(a)执行printf()函数开始          else     printf("n对不起,通讯录中没有此人的记录。");             fclose(fp);      结果分析:1运行进入程序主菜单主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。主选单主要由主函数提供,其功能由子函数实现。2查看所有人员信息界面可以显示全部的人员的信息。可在3 .3参看流程图。3删除模块删除功能界面4查找模块进入查找记录界面5修改模块进入修改界面6添加模块进入添加界面可以根据要求添加用户想添加的人员信息。7.退出进入退出界面:当出现没有查找人员信息时会自动返回主选单总结1本程序的局限性及改进方法:本程序中包含的信息不够全面,比如年龄,性别,通讯地址,电子邮箱等,都没有包含。改进方法就是在设计程序时把这些内容都加进去,电子邮箱还可以建立链接。2运用本程序还可以编写比如对学生信息的管理系统,商店、超市里面对商品的管理,仓库里面对货物的查询等等。3在课程设计过程中遇到的问题,解决的办法1、从文本中写入数据时可能指针指错位置,导致不能正常进行。解决的办法是对指针进行必要跟踪,把该函数写入独立的cpp文件中,单个进行检查。2、从文本文件中载入数据时,当记录数为1的时,出现内存不能读的情况,当记录数为0时,当前记录数和总记录数以及用户信息显示的情况比较特殊,解决的办法是分三种情况,写段程序分别进行处理。4心得体会与收获:通过这次课程设计,我对很多的函数有了新的认识,我对C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,写软件的过程中我又学到啦曾经自己不知道的函数或是自己不会的函数的用法。特别是文件的开启和关闭,读与写。这次课程设计课总的来说让我受益匪浅。虽然在调试程序遇到了很多的困难,但是都一一去把它解决了。从中也让我知道了要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。程序清单:#include<stdio.h>   /*标准输入输出函数库*/#include<string.h>  struct student        char   name8;             char   tel15;             char   addr50;     ;         char   filename20;     FILE   *fp;         void   creat();     void   output();     void   search();     void   append();     void   modify();     void  remove();         main()         int   m;             creat();           while(1)         printf("nn添加,请按1");       printf("n查找,请按2");     printf("n修改,请按3");     printf("n删除,请按4");     printf("n输出,请按5");     printf("n退出,请按0n");     scanf("%d",&m);     if(m>=0&&m<=5)         switch(m)                 case   1:   append();             break;     case   2:   search();     break;     case   3:   modify();     break;     case   4:   remove();     break;     case   5:   output();     break;     case   0:   break;           printf("nn操作完毕,请再次选择!");           else     printf("nn选择错误,请再次选择!");                     void   creat()         struct   student   one;             long   s1;                 printf("n请输入通讯录名:");             scanf("%s",filename);             if(fp=fopen(filename,"w")=NULL)                 printf("n不能建立通讯录!");     exit();                         fprintf(fp,"%-10s%-20s%-50sn","姓名","电话号码","住址");             printf("n请输入姓名、电话号码及住址(以0结束)n");             scanf("%s",one.name);             while(strcmp(one.name,"0")                 scanf("%s%s",one.tel,one.addr);     fprintf(fp,"%-10s%-20s%-50sn",one.name,one.tel,one.addr);     scanf("%s",one.name);                         fclose(fp);             void   output()         struct   student   one;                 if(fp=fopen(filename,"r")=NULL)                 printf("n不能打开通讯录!");     exit();                         printf("nn%20sn","通   讯   录");             while(!feof(fp)                 fscanf(fp,"%s%s%sn",one.name,one.tel,one.addr);     printf("%-10s%-20s%-50s",one.name,one.tel,one.addr);                         fclose(fp);             void   append()         struct   student   one;                 if(fp=fopen(filename,"a")=NULL)                 printf("n不能打开通讯录!");     exit();                         printf("n请输入添加的姓名、电话号码及住址n");             scanf("%s%s%s",one.name,one.tel,one.addr);             fprintf(fp,"%-10s%-20s%-50sn",one.name,one.tel,one.addr);             fclose(fp);             void   search()             int   k=0;             char   namekey8;             struct   student   one;                 printf("n请输入姓名:");             scanf("%s",namekey);                 if(fp=fopen(filename,"rb")=NULL)                     printf("n不能打开通讯录!");     exit();                         while(!feof(fp)                     fscanf(fp,"%s%s%sn",one.name,one.tel,one.addr);     if(!strcmp(namekey,one.name)         printf("nn已查到,记录为:");     printf("n%-10s%-18s%-50s",one.name,one.tel,one.addr);     k=1;                                             if(!k)         printf("nn对不起,通讯录中没有此人的记录。");             fclose(fp);             void   modify()             int   m,k=0;             long   offset;             char   namekey8;             struct   student   one;                 printf("n请输入姓名:");             scanf("%s",namekey);                 if(fp=fopen(filename,"r+")=NULL)                     printf("n不能打开通讯录!");     exit();                         while(!feof(fp)                     offset=ftell(fp);     fscanf(fp,"%s%s%sn",one.name,one.tel,one.addr);     if(!strcmp(namekey,one.name)         k=1;     break;                                 if(k)             printf("n已查到,记录为:");                     printf("n%-10s%-18s%-50s",one.name,one.tel,one.addr);                     printf("n请输入新姓名、电话号码及住址:");     scanf("%s%s%s",one.name,one.tel,one.addr);     fseek(fp,offset,SEEK_SET);     printf("%ld",ftell(fp);     fprintf(fp,"%-10s%-20s%-50sn",one.name,one.tel,one.addr);                 else     printf("n对不起,通讯录中没有此人的记录。");             fclose(fp);             void   delete()             int   m,k=0,flag;             long   offset1,offset2;             char   namekey8,   valid4;             struct   student   one;                 printf("n请输入姓名:");             scanf("%s",namekey);             if(fp=fopen(filename,"r+")=NULL)                     printf("n不能打开通讯录!");     exit();                         while(!feof(fp)                     offset1=ftell(fp);     fscanf(fp,"%s%s%sn",one.name,one.tel,one.addr);     if(!strcmp(namekey,one.name)               k=1;     break;                               if(k)           printf("n已查到,记录为");                     printf("n%-10s%-18s%-50s",one.name,one.tel,one.addr);                     printf("n确实要删除,按1;不删除,按0:");                     scanf("%d",&m);                     if(m)               fseek(fp,offset1,SEEK_SET);     fprintf(fp,"%-10s%-20s%-50sn","","","");          

    注意事项

    本文(c语言课程设计学生通讯录管理系统.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开