欢迎来到天天文库
浏览记录
ID:12533030
大小:236.50 KB
页数:10页
时间:2018-07-17
《c语言课程设计班级通讯录》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言课程设计·班级通讯录C语言程序课程设计学生姓名:陈明通学号:111705104系(院):信息工程学院专业:计算机科学与技术设计题目:班级通讯录系统完成日期:2013年6月15日-2013年6月21日指导教师:徐永安二零一三年六月10C语言课程设计·班级通讯录目录一、课程设计目的……………………………………………….3二、设计内容…………………………………………………….3三、总体设计…………………………………………………….4四、详细设计…………………………………………………….4五、程序调试…………………………………………………….8六、心得体会……………………………………
2、………………1110C语言课程设计·班级通讯录一、课程设计目的◆通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语结构体等;加深对循环,分支等结构的运用;最后还可以熟悉查找,输入,输出等经典算法。◆通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如菜单函数,结构体函数等。◆通过课程设计,加深对结构化程序设计思想的理解,能
3、进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。二、设计内容通讯录管理系统◆建立通讯录信息,信息至少包括编号、姓名、性别、年龄、电话、通讯地址、电子邮箱等内容;◆能够提供添加、删除和修改通讯录信息等功能;◆能够提供按照不同方式查询的功能,如按姓名或年龄、电话查询;◆能将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。系统功能需求分析:◆为存储通讯录信息,需定义一个结构体类型,成员包括编号、姓名、年龄、电话、通讯地址、电子邮箱等,并建立链表,定义该结构体类型的指针,用于指向各结点;◆分别建立具有添加、删除、修改、查询等功能的子函数,完成相应功能,对程序实现模块
4、化。这其中要用到对链表的删除、插入等知识。删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的学号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查询功能要设置姓名、编号、地址等多种方式。◆为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。◆为以表格的形式输出文件,宏定义格式化输出语句,用横线和竖线构成表格。三、总体设计系统总体设计框架:对程序进行模块化,建立添加、修改、删除、查找和显示功能的子函数,各子函数中运用链表存储数据。从主函数开始执行,调用各个子函数,并运用文件相关知识将信息存入磁盘
5、中。10C语言课程设计·班级通讯录进入系统界面菜单添加信息修改信息删除记录显示记录查询记录退出系统通讯录系统图1系统功能模块图四、详细设计主要功能模块的算法设计思路如下:/*定义与联系人有关的数据结构*/structperson/*标记为person*/{charnum[6];/*联系人编号*/charname[10];/*联系人姓名*/charsex[6];charphone[12];/*联系人电话号码*/intage;/*联系人年龄*/charaddress[10];/*联系人地址*/charemail[20];/*联系人电子邮箱*/};/*定义每条记录或结点的数据结构,标记为
6、:node*/typedefstructnode{structpersondata;/*数据域*/structnode*next;/*指针域*/}Node,*Link;/*Node为node类型的结构变量,*Link为node类型的指针变量*/1、添加信息函数(voidAdd(Linkl))(1)定义指向结构体变量的指针;(2)移动指针,找到插入结点;(3)在要插入的结点输入信息;(4)调用保存函数,打开文件,保存输入信息。10C语言课程设计·班级通讯录FILE*p,打开该磁盘文件从键盘输入数据链表为空是否插入表头插入表尾输出数据,存入磁盘文件关闭文件图2添加信息图2、修改信息函数
7、(voidModify(Linkl))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找对应结点;(4)修改信息;(5)打开文件,保存修改记录。3、删除信息函数(voidDel(Linkl))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找要删除的结点;(4)修改链表,删除对应结点。4、显示记录函数(voidDisp(Linkl))(1)打
此文档下载收益归作者所有