1、C+语言学生通讯录系统学生通讯录系统1设计目标设计一个实用的小型职工信息管理系统,用链表来存储学生的姓名、性别、电话、住址,完成对信息的录入、修改、删除、查询、统计、输出等操作。2设计思想 设计职工工资信息的数据结构表序号 成员名 数据类型 长度 含义1 name char 8 学生姓名2 sex char 2 学生性别3 tel int 6 学生电话4 add char 20 学生住址(2) 以结构体建类,以类为结点建立链表 (3)用类的成员函数对链表的数据进行操作1)构造函数books();2)建立链表函数void initbook( );/初始化链表3)清空函数void clearboo
2、k( ); /清空链表4)统计函数int booksize( ); /求表长5) 检查函数bool bookempty( );/检查表是否为空6)遍历函数void traversebook( );/遍历表7)插入函数void insertbook( );/插入一个元素8)删除函数void detelebook( );/删除一个元素9)修改函数void updatebook( );/修改一个元素10)查询函数void findbook( );/查询一个元素(4)设计菜单来实现功能设计0)学生总名单查看1)增加一位学生资料2)删除一位学生资料3)修改一位学生资料4)查询学生资料5)清空通讯录6)安
3、全退出3设计类及对象本程序先定义结构体book,然后用结构体book建立类books,定义如下:struct Book char name8; char sex2; int num; char add20; Book *next;void InitBook(Book *&Head);/初始化链表void ClearBook(Book *&Head);/清空链表int BookSize(Book *Head);/求表长bool BookEmpty(Book *Head);/检查表是否为空void TraverseBook(Book *Head);/遍历表void InsertBook(Book
4、*&Head);/向表中插如元素void FindBook(Book * Head);/查询一个元素void UpdateBook(Book *Head);/修改一个元素void DeleteBook(Book *&Head);/删除一个元素4程序源代码/这是一个学生通讯系统管理/头文件/book1.hstruct Book char name8; char sex2; int num; char add20; Book *next;void InitBook(Book *&Head);/初始化链表void ClearBook(Book *&Head);/清空链表int BookSize(Bo
5、ok *Head);/求表长bool BookEmpty(Book *Head);/检查表是否为空void TraverseBook(Book *Head);/遍历表void InsertBook(Book *&Head);/向表中插如元素void FindBook(Book * Head);/查询一个元素void UpdateBook(Book *Head);/修改一个元素void DeleteBook(Book *&Head);/删除一个元素/book2.cpp#include#include#include#includevoid InitBook(Book *&Head) Head=N
6、ULL;void ClearBook(Book *&Head) Book *cp,*np; cp=Head; while(cp!=NULL) np=cp-next; delete cp; cp=np; Head=NULL;int BookSize(Book *Head) Book *p=Head; int i=0; while(p!=NULL) i+; p=p-next; return i;bool BookEmpty(Book *Head) return (Head=NULL);void TraverseBook(Book *Head) cout姓名t性别t电话t住址n; Book *p=H
7、ead; while(p!=NULL) coutnametsextnumtaddnext; coutendl;void InsertBook(Book *&Head) Book *new1; new1=new Book; coutnew1-name; coutendl; coutnew1-sex; coutendl; coutnew1-num; coutendl; coutnew1-add; new1-next=Head; Head=new1; void FindBook(Book * Head) char x8; Book *p=Head; coutx; while(p!=NULL) whi
8、le(strcmp(p-name,x)!=0) p=p-next; break; cout=endl;coutendl;cout 姓名:namet性别:sexendl; cout 电话:numt地址:addendl; coutendl;cout=endl;void UpdateBook(Book *Head) char x8; Book *p=Head; coutx; while(p!=NULL) while(strcmp(p-name,x)!=0) p=p-next; cout请输入新的资料endl; coutp-name; coutp-sex; coutp-num; coutp-add;
9、break; void DeleteBook(Book *&Head) if(Head=NULL) cout没有资料endl; else char x8; coutx; Book *p=Head,*q=NULL; while(p!=NULL) if(strcmp(p-name,x)=0) break; else q=p; p=p-next; if(p=NULL) cout对不起,找不到你要删除的人。next; else q-next=p-next; delete p; cout此人以删除endl; /book3.cpp#include#include#include#includevoid m
10、ain() cout欢迎来到通讯录系统管理系统endl; coutendl; cout 按(0):学生总名单查看;endl; cout 按(1):增加一位学生资料;endl; cout 按(2):删除一位学生资料;endl; cout 按(3):修改一位学生资料;endl; cout 按(4):查询学生资料;endl; cout 按(5):清空通讯录;endl; cout 按(6):安全退出;endl; coutendl; cout制作人:刘志杰endl; couta; Book *z; InitBook(z); while(a!=6) switch(a) case 0: TraverseBo
11、ok(z); int i; i=BookSize(z); cout通讯录中的人数:iendl; cout请选择:; break; case 1:InsertBook(z); cout请选择:; break; case 2:DeleteBook(z); cout请选择:; break; case 3:UpdateBook(z); cout请选择:; break; case 4:FindBook(z); cout请选择:; break; case 5:ClearBook(z); cout请选择:; break; case 6: exit(0); default:couta; 5.调试纪录(1)增加
12、学生资料的测试(2)学生总名单查看的测试(3)查询学生资料的测试(4)修改学生资料的测试6总结经过几个星期的努力,在老师和同学的帮助下,通过自己的努力和从资料的引用,终于完成了这次学生通讯录系统的简单课程设计。虽然是一个小小的系统却让我经过这段时间的不懈努力,对其中的艰辛,我是深有体会。在从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。的确工夫不负有心人,只要努力付出,就会得到美好的回报。通过课程设计作业的训练,我进一步学习和掌握了对软件的设计和编写,从中体会到了面向对象程序设计的方便
13、和巧妙。懂得了在进行编写一个软件之前,要有明确的目标和整体的设计思想,对整个程序的框架结构的思考是十分重要和关键的。另外某些具体的细节内容也是来不得半点马虎的,细节也相当的重要。这些宝贵的编程思想和从中摸索到的经验以及获得的经验和总结的教训都是在编程的过程中获得的宝贵财富。这些资源对我以后的编程会有很大的帮助的,我要好好利用。从这一点来看,编程序也要积累经验,把自己摸索到的东西和学习得来的有关知识,真正地变成自己的编程工具,以方便以后的编程。参考文献1 谭浩强 编著.C+面向对象程序设计.清华大学出版社,20062 马锐 胡思康 编著.C+语言程序设计习题集.人名邮电出版社,20033 夏崇镨 任海军 余健 编著.Visual C+ 课程设计案例精编.清华大学出版社,20084 张基温 张伟 编著.C+程序开发例题与习题.清华大学出版社,2003
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1