




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计——学生通讯录PAGE8 C语言程序设计课程设计材料学生姓名:学号:系(院):专业:设计(论文)题目:完成日期:指导教师:
目录课程设计目的…………2课程设计内容…………2总体设计………………2详细设计………………3运行结果………………5编程体会………………8
课程设计目的通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。通过课程设计,进一步掌握C语言当中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个中小型系统。通过课程设计,加强了自己的程序分析能力,提高了自己对程序的优化能力。通过课程设计,发现自己在编写程序方面的薄弱环节和不足之处,学会运用网络、书籍等手段解决问题,学会请教同学老师,加强团队合作。课程设计内容此系统以班级学生为背景,建立班级通讯录,包括学生的学号、姓名、年龄、电话号码、住址、QQ、邮编等基本信息,实现对学生个人信息的输入、查询、修改、删除、显示等功能。具体功能实现如下:系统以菜单方式工作,界面清晰,易于操作。信息录入:实现学生个人信息的录入功能,并能将其以文件形式加以保存。添加功能:实现对学生个人信息的添加,并可以根据需要不断继续输入。查询功能:实现按学号查询、按姓名查询学生个人信息的功能。修改功能:实现对指定学生的个人信息的修改,可以对单项修改。删除功能:实现对指定学生的个人信息的删除功能。信息显示功能:实现对班级学生的学生个人信息浏览。总体设计本系统的模块功能如图1所示,主要有以下模块:主菜单界面:直接写入main函数当中,实现系统主菜单的显示,并通过switch语句实现对其它各功能子函数的调用。建立通讯录界面:构造函数voidcreate(),实现对第一个学生个人信息的录入,并显示创建成功。添加新记录界面:构造函数voidadd(),实现对其他学生个人信息的录入,并可以根据需要选择继续添加信息或返回到主菜单。查找信息界面:构造函数voidfindname(structmessage*fphead)和voidfindnumber(structmessage*fphead)实现按姓名查找和按学号查找的功能。修改信息界面:构造函数voidmodify(structmessage*fphead),实现对指定学生个人信息进行显示并修改的功能。删除信息界面:构造函数voidDelete(structmessage*fphead),实现对指定学生更让人信息进行显示并删除的功能。显示信息界面:构造函数voidprint(),实现对所有学生个人信息的显示。主菜单界面主菜单界面添加新记录建立新通讯录查询信息修改信息删除信息显示信息退出通讯录按姓名查找按学号查找图1系统功能模块图详细设计数据结构设计本程序用到的数据结构主要有:结构体,数组,指针,链表,文件等。先声明一个类型为structmessage的结构体,其成员为学生的个人信息。然后通过对指针、链表、文件等数据结构的操作,实现对学生个人信息的录入、添加、查询、修改、删除、显示等一系列操作。其中,结构体定义如下:typedefstructmessage{charnumber[15]; charname[15]; charage[5]; chartel[20]; charaddress[50]; charqq[15]; charpostcode[10]; structmessage*next;}Mes; 模块接口设计所有函数模块声明如下 voidcreate();//建立通讯录voidadd();//添加通讯录voidfindname(structmessage*fphead);//按姓名查找voidfindnumber(structmessage*fphead);//按学号查找voidmodify(structmessage*fphead);//修改记录voidDelete(structmessage*fphead);//删除记录structmessage*open(void);//打开文件,载入链表voidprint();//显示通讯录定义两个全局变量defineNULL0 defineLENsizeof(structmessage)主要模块的实现系统以主函数voidmain()为入口,直接显示主菜单界面,然后通过switch语句调用各个子函数。系统接收用户输入的选择,进入到下一级菜单,以实现不同的功能。以下是几个主要模块的流程图:主菜单打印主菜单打印主菜单接收用户选择输入是否合法是否为0调用相应函数退出系统是否是否图2主函数流程图查找信息函数查找信息查找信息是否为1按姓名查找调用相应函数是否为2按学号查找是否调用相应函数返回主菜单是否图3信息查找流程图修改信息函数00退出1学号2姓名3年龄4电话5QQ6邮编修改信息输入学号该学号是否存在无此通讯录,返回主菜单是否图4信息修改流程图运行结果(1)主菜单界面:图5主菜单界面这是主菜单界面,用户可根据需要选择1~6操作项目,不同的选项可进入不同的功能界面,0则为退出系统。查找信息界面图6信息查找界面进入此界面后,用户可以根据需要选择两种查询方式,选择不同的方式则会进入不同的界面,输入所要查找的相关信息即可:图7按姓名查找信息图8按学号查询信息修改信息界面图9修改信息界面进入此界面之后,只要输入所要修改学生的学号,即可得到学生信息:图10显示修改界面根据提示,选择要修改的项目,从键盘输入新的信息即可。图11(a)修改示例图11(b)修改示例编程体会在这次课程设计过程中,我收获了很多。首先是对C语言的更加深刻的认识和了解。在课程设计过程中难免会遇到各种各样的问题,这就督促我去复习书本,温习知识,从而就渐渐熟悉了结构体、链表、指针等内容,并通过自己的动手实践,不断尝试,熟能生巧,慢慢去掌握去消化这些知识。这学期学习的数据结构也给了我很大的帮助,以前很难理解的程序片段也逐渐明了起来。其次是学会了通过各种途径解决问题。在程序刚开始运行的时候,问题比较多,比如无法正常调用子函数,经过检查,发现是函数参数传递错误;有时候主界面和子界面会同时出现在同一个界面内,造成界面层次不够清晰,运用system("cls")清屏函数可以解决这个问题;调用函数后界面有时会一闪而过,原来是没有使用getchar()语句使程序运行界面暂停;还有文件的打开与关闭一直有问题,原来是文件的打开方式不正确。这些问题很小,在编译过程中并不会提示有错误,但在运行中就会出现障碍,这就需要细心和耐心,才能发现问题所在。遇到这些问题后,我会通过查书、上网搜索、问同学等,不断修改、编译、运行,直到问题解决。这个过程有时让人泄气,有时让人欣喜,但是我学会了面对问题不退缩,通过自己的不断尝试努力解决问题。最后是增强了优化程序的能力。这个程序虽然是从网上找来的,但是我站在用户的角度运行程序的时候却发现了很多不够人性化的地方,比如显示时行与行之间的距离,界面与界面之间的层次,处理信息的过程等等,有许多让人不舒服的地方,于是我都根据自己的理解做了调整,努力让程序层次清晰、简单明了、便于操作。程序运行基本无误后,我又反复对系统做了测试,依然发现了很多瑕疵,比如删除操作时应该再多一步让用户选择是否要删除,而不是直接就删除,我对此做了调整,增加了一个显示的过程,让用户可以进一步做出选择。还有修改信息时,应该要让用户可以针对每个小的方面进行修改,而不需要所有信息都重新输入。还有对于非法输入的提示,可以在用户输入时就给定范围,或者在程序中加以限制,这样就可以减少程序出现未知错误。在这个优化的过程中,我体会到了细节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生思品课件
- 广州代理销售合同范本
- 钢厂皮带销售合同范本
- 小型设备采购合同范本
- 临时搭建合同范本
- 香港租凭合同范本
- 按摩课程培训课件
- 农村的门窗合同范本
- 智能家居设备使用安全免责协议
- 绿色农业科技项目投资扶持协议
- 消防行业岗位培训与校企联合方案
- 中国通 用技术集团招聘笔试题库
- 四川政采评审专家入库考试基础题复习测试有答案
- 自动化部门的发展规划
- 2024-2025学年上海市松江区高三一模生物试卷(含答案)
- 2024年中国天然橡胶产业数据分析简报-农小蜂
- 《S公司客户开发与维护策略改进探究》开题报告10000字
- 用电检查知识培训
- 部编版五年级语文下册《习作:写读后感》课件
- 2024年社区工作者考试试题库
- 人教PEP版(2024)三年级上册英语Unit 4《Plants around us》单元作业设计
评论
0/150
提交评论