欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序设计报告.docx

    • 资源ID:994387       资源大小:78.35KB        全文页数:9页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    C语言程序设计报告.docx

    二O一一年九月设计要求题目三通讯录管理系统任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: 建设通讯录信息,信息至少包含编号、姓名、年龄、通讯地址、电子邮箱等;; 能够提供添加、删除和修改通讯录信息的功能,并给出确认是否保存或删除记录的提示信息; 能够提供按姓名或等查询并显示相应记录信息; 将通讯录保存在文件中; 能够按表格方式输出通讯录信息。二、要求为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写标准,构造清晰。重点函数的重点变量,重点功能局部均要求给出清晰的程序注释。程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进展测试,然后分析测试结果。如果程序不能正常运行或结果不正确,那么需对程序进展单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和修正。程序详解首先,定义构造体structstudentlongnUm;用于存储学号Charname20;姓名intage;年龄longtelephoney/号码charadress40;地址charE_mail30;邮箱intQQ12;/增设的QQ一栏structstudent*next;用于存放下一级指针Jfirst;first为第一个节点,继而在其后动态的开创假设干节点。输入函数显示所有记录删除函数插入函数 按学号查找 按姓名查找查找函数选择函数以下是用于链表处理的各个函数:structstudent*creat(structstudent*p)voidprintall(structstudent*head)structstudent*delet(structstudent*head)structstudent*insert(structstudent*head)structstudent*searchbynum(structstudent*head)structstudent*searchbyname(structstudent*head)structstudent*search(structstudent*head)menu_select()以下是各个函数的详细说明:CreatO函数用于创立链表,其中以n记录节点的个数,并在创立时实现自加,以便于后面函数的处理,其循环输入的实现,依靠库函数mallocO和后面的WhiIe循环。PrintaIl函数用于显示当前的的所有记录,依靠头指针找到链表首地址,有WhiIe循环实现所有记录的输出。DeletO函数用于删除某个记录,删除可以按姓名或学号这两种方式进展的,但本程序中没有这个功能即只可以按学号进展删除(因为学号唯一)。InsertO函数用于插入,同样以头指针找到链表的首地址,并将要插入的学号依次与各个节点中得num比较,然后按顺序将一个节点插入。SearchO函数用于查找,查找函数提供了两种方式,即按姓名查找和按学号查找。在SearCh()函数中可以按提示调用SearChbyname()和SearChbynUmMenu-SelectO函数用于提供函数选项,旨在简化主函数。流程图#include<string.h>#include<malloc.h>#include<conio.h>#include<stdliHl>#define LEN :PrinlalISearch Insert IDelet#defineNULLQ#defineSHU"%dn%sn%5dn%ldn%sn%sn%s"intn;structstudent(longnum;charname20;intage;longtelephone;charadress40J;charE-mail30;intQQ12;structstudent*next;first;structstudent*creat(structstudent*p)创立链表的函数,即输入函数(structstudent*head;structstudent*pl,*p2;n=0;先给n赋值0pl=p2=(structstudent*)malIoc(LEN);强制类型转换Printf("ttt*请输入用户信息*n");printf(',ttt输入学号:n”);scanf(%ld",<fcpl->num);Printfettt输入姓名:n");scanf(',%s"p1->name);printf(',ttt输入年龄An”);scanf(',%d"p1->age);printf(',ttt输入:nn);scanf(',%ld",<fcpl->telephone);printf(',ttt输入地址n");scanf(%s"p1->adress);printf(',ttt输入E-mailn,);scanf(',%s"p1->E_mail);printf(',ttt输入QQn");scanf(,%s"p1->QQ)40head=NULL;while(pl->num!=O)(n=n+l;实现n的自加,记录节点的个数if(n=l)head=pl;elsep2->next=pl;p2=pl;pl=(structstudent*)malloc(LEN);printf(,ttt请输入用户信息*3<cn");printf(',ttt输入学号:W");scanf(',%ld'pl->num);Primf("ttt输入姓名:n");scanf(',%s",p1->name);printf(ttt输入年龄:n");scanf(',%d",pl->age);printf("ttt输入:nn);scanf(',%ld",pl->telephone);printf(ttt输入地址n");scanf(',%s'',p1->adress);printf(',ttt输入E-mail:nH);scanf(',%s",p1->E_mail);printf(,ttt输入QQn");scanf(',%s',p1->QQ);p2->next=NULL;return0;voidprintall(structstudent*head)显示所有记录(structstudent*p;printf(',n全部的记录如下n:");p=head;doprintf(SHU,p->num,p->name,p->age,p->telephone,p->adress,p->E-mail,p->QQ);p=p->next;while(p!=NULL);)/80structstudent*delet(structstudent*head)/删除函数(longnum;PrindC请输入要删除的号码:n,');scanf(',%ld",<fenum);structstudent*pl,*p2;if(head=NULL)(Printf("列表为空!n");returnhead;pl=head;while(num!=p1->num&&pl->next!=NULL)2=pl;pl->next;)if(num=p1->num)(if(pl=head)要删除的节点为首节点head=pl->next;elsep2->next=pl->next;printf(',deletz%dn,num);n=n-l;节点减一1elseprintf(',%d未找到该节点!n,num);returnhead;)structstudent*insert(structstudent*head)插入函数(structstudent*stud;structstudent*p,*pl,*p2;pl=head;=studp指向的是要插入的节点if(head=O)(head=p;p0->next=NULL120)else(while(pO->num>pl->num)&&(pl->next!=NULL)(2=pl;pl=pl->next;1if(p->num<=pl->num)(if(head=pl)head=p,插入到原来第一个节点之前elsep2->next=p;p->next=pl;/插入到p2所指的节点之后n=n+l;returnhead;structstudent*searchbynum(structstudent*head)按学号查找(longnumb;Printf("请输入要删除的号码:n,');scanf(',%ld",<fenumb);structstudent*p;p=head147scanf(%ld",<fcnumb);if(numb!=p->num)p=p->next;elseprintf(SHU,p->num,p->name,p->age,p->telephone,p->adress,p->E-mail,p->QQ);returnhead;)structstudent*searchbyname(structstudent*head)按姓名查找(chara100;PrMf("请输入要查找的姓名:n');scanf(,%s",a);structstudent*p;p=head;scanf(',%s",a);if(strcmp(a,p->name)!=0)p=p->next;elseprintf(SHU,p->num,p->name,p->age,p->telephone,p->adress,p->E-mail,p->QQ);returnhead;)structstudent*search(structstudent*head)(charchoic;PriIHf("tttl-按号码查找2-按姓名查找”);Primfrttt请选择:”);choic=getch();switch(choic)(caserr:searchbynum(&first);break;case2:SearChbyname(&first);break;1returnhead;inimenu_select()chars80J;inta;定义整形变量system("cls);Printf("tt*欢迎进入通讯管理界面*nn");printf("ttt. pr

    注意事项

    本文(C语言程序设计报告.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开