1、班级通讯录数据结构C语言班级通讯录1、设计目的设计一个计算机管理系统对班级通讯录进行管理。2、设计要求一个学生的数据包括:学号、姓名、电话号码、手机、QQ号。要求设计一个计算机管理系统对班级通讯录进行管理,具有的功能是能够进行录入、修改、删除、查找和输出所有记录。为提高数据的可访问性,电话号码、手机、QQ号建立索引表,索引表可以在维护数据时动态维护,也可能最后一次建立。设计条件:硬件条件:(1)学生用微机(2)多媒体教室(3)局域网环境软件条件:(1)Windows XP中文操作系统 (2)Turbo C 3.03、课程设计的内容3.1、需求分析:随着科技的进步和信息产业的发展,通讯录成为了现
2、代生活中的一个重要的工具。利用通讯录管理系统对通讯录进行统一管理,包括添加,修改,查询记录等功能,实现通讯录管理工作的系统化,规范化和自动化,为生活提供便利。在设计的通讯录中,学生学号,电话号码,手机号码,QQ均以数字的形式进行输入,学生姓名则以中文,英文输入均可进行记录,输出的形式与输入形式相同。按要求,设计的通讯录管理系统可以实现添加、修改、删除、查找,对学号的排序和输出所有学生记录。进行测试的数据和执行情况如下图所示:程序主观图:添加记录:显示所有记录:删除一条记录:根据学号查找:对记录的排序:主要是对添加新纪录在链表中按升序排列,如新加李伟这条记录,对它采取排序,具体结果如下:进行排序
3、:输入6即退出:3.2、概要设计:对该系统各种函数的定义在源代码给出,先给出函数的定义,然后给出菜单的执行函数,建立链表,并对各个功能的实现编出程序,直到调试成功为止。3.3、详细设计主要给出程序的流程图,如下所示:菜单函数:链表构造:按学号显示学生数据:删除记录:显示所有信息:排序:3.4、程序调试与测试结果:经过认真调试最终结果为正确。如图:3.5、结果分析:在编译过程中遇到很多困难,程序也基本上符合要求,但是有一点目前还没解决,就是基于链表的修改还没掌握,因此花了很大的力气,但是还是没有完成,只好采取的修改方式为:删除,添加,排序的方法对链表中的元素进行修改。4、总结本系统基本实现了班级
4、通讯录系统的典型功能,如添加查找等功能,而且具有较高的安全性。但是因为能力有限,还有部分功能未能完善,这些局限性都是有待逐步完善的方面。而且通过这次课程设计,我培养了自己对C编程的兴趣,进一步了解了数据结构的特色和,编程能力也有所提高,但仍存在许多不足,不能独自编写完整代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。5、参考文献1 宁正元,王秀丽.算法与数据结构.北京:清华大学出版社,20062 姜灵芝,余键.C语言课程设计案例精编 北京:清华大学出版社,2008 6、附录该程序的源代码:#include#include#include#include#includetyped
5、ef struct student char Number10; /学号 char name20; /姓名 char telephone20; /电话号码 char cellphone20; /手机号码 char QQ10; /QQ struct student *next;student;student *headLink; /链表表头指针void DesplayMenu(); /以下是函数声明void CreateHeadLink();student *MallocNode();void GetInformation(student *t);void OutputInformation()
6、;void DesplayInfoByNumber();void DesplayOneNode(student *t);void InsertOneNode(student *t);void rangebyNumber();void DeleteNodeByNumber();void DesplayInfoByName();int choose; /用于接受用户的选择void main() /主函数 CreateHeadLink(); DesplayMenu();void DesplayMenu() /显示菜单,根据用户的输入完成相应的功能 student *p; printf(n-请选择相应
7、功能-nn); printf( 1 显示所有学生信息 n); printf( 2 增加一条学生信息 n); printf( 3 删除一条学生信息 n); printf( 4 根据学号查找学生的信息 n); printf( 5 按学号高到低排序 n); printf( 6 退出 n); printf(请输入序号:n); scanf(%d,&choose); /取得用户的选择 switch(choose) case 1: OutputInformation(); break; case 2: p=MallocNode(); /先申请一个新结点 GetInformation(p); /要求用户输入信
8、息到新结点中 InsertOneNode(p); /将新结点加到链表中 break; case 3: DeleteNodeByNumber(); break; case 4: DesplayInfoByNumber(); break; case 5: rangebyNumber(); break; case 6: free(headLink); /先释放内存空间 exit(1); break; default: break; DesplayMenu(); /递归调用void CreateHeadLink() /建立链表表头 student *p; p=(student*)malloc(size
9、of(student); headLink=p; p-next=NULL;student *MallocNode() /申请一个新结点,并将其初始化 student *p; int i; p=(student*)malloc(sizeof(student); if(p=NULL) return NULL; for(i=0;iNumberi=0; for(i=0;inamei=0; for(i=0;itelephonei=0; for(i=0;icellphonei=0; for(i=0;iQQi=0; p-next=NULL; return p;void GetInformation(stud
10、ent *t) /添加学生信息 printf(请输入序号:n); scanf(%s,t-Number); printf(请输入姓名:n); scanf(%s,t-name); printf(请输入电话:n); scanf(%s,t-telephone); printf(请输入手机号:n); scanf(%s,t-cellphone); printf(请输入QQ:n); scanf(%s,t-QQ);void InsertOneNode(student *t) /在链表的结尾处增加一个结点 student *p; p=headLink; while(p-next) p=p-next; p-nex
11、t=t;void DesplayInfoByNumber() /根据学号显示该学号学生的信息 student *p; char good10; char flag=0; p=headLink-next; if(p=NULL) printf(对不起,现在没有学生信息!n); return; printf(请输入序号:n); scanf(%s,good); printf(学号t姓名t电话t手机号tQQtn); while(p) if(strcmp(p-Number,good)=0) DesplayOneNode(p); flag=1; break; p=p-next; if(!flag) prin
12、tf(对不起,不存在序号为 %s 的学生n,good);void DesplayOneNode(student *t) /输出一个学生结点的信息 printf(%st,t-Number); printf(%st,t-name); printf(%st,t-telephone); printf(%st,t-cellphone); printf(%stn,t-QQ);void DeleteNodeByNumber() /根据学号删除该学生信息 char good10; student *p,*q; char flag=0; printf(请输入要删除的学生序号:); scanf(%s,good);
13、 p=headLink; q=headLink-next; while(q) if(strcmp(q-Number,good)=0) p-next=q-next; free(q); flag=1; break; p=p-next; q=q-next; if(!flag) printf(不存在这学生n);void OutputInformation() /显示所有学生的信息 student *p; p=headLink-next; if(p=NULL) printf(现在没有任何信息,请先输入学生信息nn); return; printf(学号t姓名t电话t手机号tQQtn); while(p) DesplayOneNode(p); p=p-next; void rangebyNumber() /根据输入的学号,按低到高排序 char Number10; student exchange,*r,*p,*q; r=headLink-next; if(r=NULL) printf(现在还没任何信息,请先输入学生信息n); return;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1