C语言课程设计报告电子通讯录doc.docx

上传人:b****3 文档编号:4679456 上传时间:2022-12-07 格式:DOCX 页数:5 大小:18.84KB
下载 相关 举报
C语言课程设计报告电子通讯录doc.docx_第1页
第1页 / 共5页
C语言课程设计报告电子通讯录doc.docx_第2页
第2页 / 共5页
C语言课程设计报告电子通讯录doc.docx_第3页
第3页 / 共5页
C语言课程设计报告电子通讯录doc.docx_第4页
第4页 / 共5页
C语言课程设计报告电子通讯录doc.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计报告电子通讯录doc.docx

《C语言课程设计报告电子通讯录doc.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告电子通讯录doc.docx(5页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告电子通讯录doc.docx

C语言课程设计报告电子通讯录doc

C语言课程设计报告电子通讯录

课程名称高级语言程序设计课程设计题目名称电子通讯录

一、课程设计的内容熟悉VC6环境下C语言程序的创建、编辑、编译和调试改错等设计过程;根据设计任务中所描述的功能需求,设计合理的实现算法,并设计中等详细度的流程图;综合运用C语言的语法知识,将算法和流程图转换成C语言程序,实现一个基于Windows控制台的应用程序;对于标准C中未规定的与操作系统或编译器相关的部分,如键盘鼠标的输入检测、字符颜色的控制、系统时间的获取、多媒体文件的播放等,查阅MSDN中的相关说明和示例,完成程序设计。

二、课程设计的要求与数据设计一个学生电子通讯录,可以进行添加、删除、查找、排序(按学号或按姓名)和列表输出的完整程序。

每个学生的信息包括学号姓名性别出生日期宿舍电话Email可以使用结构体存取每个学生的信息,多个学生的信息可以保存到结构体数组中。

使用文本文件保存以往的所有学生信息,添加、删除和排序后应更新该文本文件。

程序运行后,应有一个简单的操作界面。

如有可能,用字符绘制一个简单的菜单界面,并随用户输入情况使用不同的颜色和动画进行显示。

本任务主要涉及字符数组、指针、结构体和文件操作的综合运用,字符模式的简单动画和色彩显示的程序设计与所使用的系统相关,不是标准C的内容,其实现需要参考MSDN中的PlatformSDKDocumentation相关资料(见后)。

三、课程设计应完成的工作程序运行后,显示一个操作界面,用户可选择“添加、删除、查找、排序(按学号或按姓名)和列表输出”等功能,用户选择某一功能后,程序或者提示下一步输入(添加、删除、查找),或者输出结果(排序(按学号或按姓名)、列表输出)。

程序对用户的错误输入数据应有一定的考虑,不至于导致错误的运行结果。

如果程序运行时尚未建立通讯录文件,应先创建,否则在原通讯录文件上进行相应的操作。

记录或复制各步骤的主要屏幕显示内容作为实验测试数据保留。

四、课程设计进程安排序号设计各阶段内容地点起止日期1熟悉VC6环境下C程序开发的方法和步骤,选择设计任务,程序设计资料搜集实3-5081.72制定实现算法,设计中等详细度的流程图,编写框架程序实3-5081.83独立编写各模块的具体实现程序,按照流程图完成完整程序的编写(结合调试)实3-5171.94独立完成程序的调试、差错定位和排错,修改完善程序功能,完成设计任务实3-5081.105演示和验收源程序及其可执行程序实2-2141.116完成课程设计报告1.111.13

五、应收集的资料及主要参考文献C语言文件操作库函数Windows98程序设计从入门到精通“第十五章利用控制台”MSDN“PlatformSDKDocumentationBaseServicesDLL,Processes,andThreadsCharacter-ModeApplications”MSDN“PlatformSDKDocumentationBaseServicesWindowsSystemInformationTime”发出任务书日期2008年1月2日指导教师签名计划完成日期2008年1月13日基层教学单位责任人签章主管院长签章摘要本设计基于C语言设计平台,在VC6环境下C语言程序的创建、编辑、编译和调试改错等设计过程,设计了一个简单的电子通讯录。

重点实现了从原有通讯录数据添加、查询、插入、删除及定格式输入输出。

通过控制台,用户根据操作界面提示,实现对通讯录资料的更改。

通过多维结构体数组获取即使信息,然后以读写文件方式将其回传到用户指定的通讯录文件上,实现用户数据的读写。

本程序具有简单的C源程序,设计方法合乎C语言结构性设计的要求。

并能实现多功能的电子通讯录。

此设计综合运用C语言的语法知识,将算法和流程图转换成C语言程序,实现一个基于Windows控制台的应用程序。

关键词C语言,通讯录,格式化,课程设计目录1设计任务目的及要求设计任务目的及要求61.1设计目的.61.2设计要求.62原理与模块介绍原理与模块介绍62.1输出记录模块62.2增添记录模块记录模块62.3插入与删除模块模块62.4查询模块22.5保存退出程序模块23设计方案设计方案23.1软件设计思想23.2设计流程图44实验结果与数据处理实验结果与数据处理74.1测试步骤及实验现象75结论与问题讨论结论与问题讨论125.1完成实验的基本要要求.125.2遇到的问题及解决办法125.3存在的不足及改进思路13参考文献参考文献14附录附录C语言源程序语言源程序141设计任务目的及要求设计任务目的及要求1.1设计目的设计一个学生电子通讯录,可以进行添加、删除、查找、排序(按学号或按姓名)和列表输出的完整程序。

1.2设计要求1学生电子通讯录每个学生的信息包括学号姓名性别出生日期宿舍电话Email2使用文本文件保存以往的所有学生信息,添加、删除和排序后应更新该文本文件3程序运行后,应有一个简单的操作界面。

如有可能,用字符绘制一个简单的菜单界面,并随用户输入情况使用不同的颜色和动画进行显示。

4字符数组、指针、结构体和文件操作的综合运用5熟悉VC6环境下C程序开发的方法和步骤,选择设计任务,程序设计资料搜集6制定实现算法,设计中等详细度的流程图,编写框架程序7独立编写各模块的具体实现程序,按照流程图完成完整程序的编写(结合调试)8独立完成程序的调试、差错定位和排错,修改完善程序功能,完成设计任务2原理与模块介绍原理与模块介绍2.1输出记录模块利用文件的录入操作函数及文件指针的使用可完成此操作。

2.2增添记录模块记录模块对于电子通讯录这样一张顺序表来说,内容的录入是必不可少的操作。

由于采用的是顺序存储结构。

这项工作只需要在把输入的信息按顺序放在空的friends数组元素中即可。

函数Data_Input完成了信息的录入工作。

2.3插入与删除模块模块在实际使用中,数据资料输入后,还需要不断的更新和维护操作,最常见的是数据的插入与删除。

作为顺序表来说,如何在插入与删除数据资料后仍然能保持原有数据之间的关系,是需要考虑的关键问题。

利用顺序表的所有元素加减移动便可实现此功能。

2.4查询模块用名字可查询到有关些名字的记录,查找出相应名字的字符串并嵌套Data_Show函数实现此功能。

2.5保存退出程序模块以文件及文件指针操作为主的voidData_Save实现此功能。

电子通讯录功能如下Functionchoose1.输出记录2.增加记录3.删除记录4.查询记录5.插入记录6.保存退出7.退出程序上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个同学的电话号码,通讯地址和出生日期,而且它还提供了检索和删除功能。

还可按学号进行排序,这些都有助于该通讯录的管理。

电子通讯录是采用线性表作为程序的基本结构的。

3设计方案设计方案3.1软件设计思想1)、设计思想用顺序表设计电子通讯录的结构为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。

一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮箱和宿舍二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构。

structaddr{charpost_num[10];charadd[40];};structbirth{intyear;intmonth;intday;};structfriend1{intnumber;charname[20];charsex;structbirthbirth;structaddraddr;chartelephone[13];}friends[50];3.2设计流程图程序开始清屏打印功能说明列表调用switch函数实现各功能case1输出记录模块case4查询记录模块case3删除记录模块case2增添记录模块case5插入记录模块case6保存退出模块case7退出程序模块1、输出记录模块打开文件输出记录输出“搜索完毕”有记录无记录2、增添记录模块按顺序输入一条记录跳出3、删除记录模块输出“没有记录”删除选中的记录没有保存记录有保存记录跳出4、查询记录模块输入要查询的姓名查找到结果输出结果跳出跳5、插入记录模块输入要插入的学号插入一条记录跳出6、保存退出模块将记录保存到文本文件退出程序7、退出程序模块退出不退出yn4实验结果与数据处理实验结果与数据处理4.1测试步骤及实验现象1)功能1及功能2的实现,记录的输出及增加记录。

如下图2)功能3及4的实现首先用查询功能可查到学号为1的记录,用功能3将此记录删除后,再用4功能便不可看到些记录。

如下图3)功能5的实现插入学号为“1”的记录,用输出功能可以看见刚刚插入的记录。

如下图4)功能6和功能7的实现选择6和7后程序退出。

如下图5结论与问题讨论结论与问题讨论5.1完成实验的基本要要求总的来说设计出一个学生电子通讯录,可以进行添加、删除、查找、排序(按学号)和列表输出的完整程序。

1学生电子通讯录每个学生的信息包括学号姓名性别出生日期宿舍电话Email2使用文本文件保存以往的所有学生信息,添加、删除和排序后应更新该文本文件3程序运行后,有一个简单的操作界面。

4字符数组、指针、结构体和文件操作的综合运用5熟悉VC6环境下C程序开发的方法和步骤,选择设计任务,程序设计资料搜集6制定实现算法,设计中等详细度的流程图,编写框架程序7独立编写各模块的具体实现程序,按照流程图完成完整程序的编写(结合调试)8独立完成程序的调试、差错定位和排错,修改完善程序功能,完成设计任务5.2遇到的问题及解决办法1)、在实际使用中,数据资料输入后,还需要不断的更新和维护操作,最常见的是数据的插入与删除。

作为顺序表来说,如何在插入与删除数据资料后仍然能保持原有数据之间的关系解决方法的插入算法如下printf“\n\tInsertNo“;/*录入插入位置*/scanf“d“,forji1;jk;j--/*插入位置后的元素顺序后移*/{strcpyfriends[j].name,friends[j-1].name;/*交换元素内容*/friends[j].sexfriends[j1].sex;friends[j].birth.yearfriends[j-1].birth.year;friends[j].birth.monthfriends[j-1].birth.month;friends[j].birth.dayfriends[j-1].birth.day;strcpyfriends[j].addr.post_num,friends[j-1].addr.post_num;strcpyfriends[j].addr.addr,friends[j-1].addr.addr;strcpyfriends[j].telephone,friends[j-1].telephone;}Data_Inputk;/*插入位置上填入待插入元素*/i;/*总元素个数增1*/删除算法如下printf“\n\tDeleteNo“;/*读入删除位置*/scanf“d“,forjk;jincludeincludeincludeincludestructaddr{charpost_num[10];charadd[40];};structbirth{intyear;intmonth;intday;};structfriend1{intnumber;charname[20];charsex;structbirthbirth;structaddraddr;chartelephone[13];}friends[50];FILE*fp;inti;voidData_Load{intj;longk;fpfopen“friend.txt“,“rt“;/*打开文件friend.txt*/iffpNULL{fori1;iiprintf“\n\t搜索完毕\n“;break;case2whilegetch0x1bbreak;case5printf“\n\t插入学号“;scanf“d“,forji1;jk;j{strcpyfriends[j].name,friends[j-1].name;friends[j].sexfriends[j-1].sex;friends[j].birth.yearfriends[j-1].birth.year;friends[j].birth.monthfriends[j-1].birth.month;friends[j].birth.dayfriends[j-1].birth.day;strcpyfriends[j].addr.post_num,friends[j-1].addr.post_num;strcpyfriends[j].addr.add,friends[j-1].addr.add;strcpyfriends[j].telephone,friends[j-1].telephone;}Data_Inputk;i;break;case6Data_Save;exit0;break;case7printf“\n\t是否保存y/n“;chgetch;ifchyData_Save;fclosefp;exit0;defaultprintf“请选1-4\n“;}}while1;}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1