版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、好理爭院课程设计电话簿管理系统ver1.0系别:计算机科学与技术系专业(«):电子信息科学与技术2班姓名徐楚奇学号51202022022指导教师:赵翔摘要2第一章前言3第三章主要功能实现6摘要本次课程设计的题目是个人通讯录管理系统,要求将程序中所输 人的联系人姓名、电话、qq、msn和地址信息这些数据以文本的方 式保存,并且能够对所储存的联系人信息进行显示、查询、修改、删 除等功能。本文通过利用模块化程序设计思想,使用单链表和结构体等编写 出的可以实现存储、打印、删除等功能的电话簿管理系统。通过完成 这个课程设计让我们熟悉并掌握在c语言中使用结构体、单链表,指 针,函数,和模块化设计
2、思想。关键词结构体,链表,指针,函数第一章 前言在前面我们学习了 c语言的一些基础知识对c语言有了初步的认识 和了解,为了让我们更加全面地了解c语言程序设计的步骤和方法, 在老师的指导下我们进行了一次综合实训。设计一个简单的电话簿 管理系统,可以存储,删除等电话号码。为了方便使用dev-c+来编 写程序,可以添加汉字备注方便理解程序。根据前面所学的单链表、 指针、函数、结构体等知识在使用模块化设计思想去编写。设计“通 讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑 结构、存储结构和操作实现算法,以及它们在程序中的使用方
3、法。使 学生掌握软件设计的基木内容和设计方法,并培养学生进行规范化软 件设计的能力。使学生掌握使用各种计算机资料和有关参考资料,提 高学生进行程序设计的基木能力。其功能包括以下各项:1)数据包括:人名、电话号码。2)可对记录中的姓名和电话号码进行修改。3)可增加或删除记录。4)可显示所有保存的记录。第二章电话簿管理系统介绍2.1流程图电话簿管理系统因具备以下功能有流程图表示,如下图2.10电话簿管理系统添加新记录查找功能退出系统保存当前输入的内容图 2. 102. 2程序编写概要1主函数main()主函数使用户进入电话簿管理系统主界面用户选择界面,用户可 以选择要使用的功能并选择相应的选项进入
4、该功能。使用printf函 数和switch case结构来编写主函数。2 creat ()函数 creat函数用来建立新的电话号码簿,用户可以通过它来向系统输入 数据。为下面的操作提供数据。3 delete 函数delete函数用来删除不需要的数据,可以用单链表来实现,并要记 住用free函数來释放被删除链表的空间,避免浪费空间。4 save函数当需要保存已输入的数据时就需要用到save函数,该函数可以将数 据存储到指定的地方为以后使用。5 load函数顾名思义load函数是将所存的数据从文件所在位置读取出來以便做 打印等处理。6 search 函数当存入很多文件时候,再用普通的方法打印输出
5、所有数据再查找文件 中的目标文件就会很麻烦,这时你需要从已存文件中快速找出你所想 要的用户的电话号码就要选择此功能,他可以快速找出你所输入用户 名的电话号码,简单方便。7 append 函数append函数用来像已有的文件屮添加新的电话号码文件。8 modify 函数在你无意中或心急的时候很有可能将数据输入错误,所以你还需要具 有修改数据的功能,将错误的数据重新输入在进行保存工作,确保数 据的止确性,modify函数具有该功能。第三章主要功能实现3.1删除功能设计单链表中的元素是可以删除的,要想删除指定的元素逻辑上是把它从单链表中分离出來,并调用free函数释放其储存空间。算法如下:删除链表中
6、的第i个结点,就是要让其前驱的指针绕过该结点, 指向该结点的后续结点。假设指针p已经指向链表屮的第i-1个结点,如图3. 10所示。则删除ai结点最基木的操作可以用一条语句实现:pnext=p-nextnext。all图 3. 10这样操作会浪费掉所有删除的结点空间。如果被删除的结点不再使用 了,则释放其存储空间,因此需要按如下方式实现: temp=p->next;p->next二tempnext;free (temp);3.2添加功能设计链表的插入是指将一个结点插入到一个已有的链表中去。算法如下:首先产生新结点,并放入数据,然后搜索要插入的位置,再将结点 连入到已有链表中。设指针
7、p已经指向了 ai-1结点,且要插入结 点(值为data)由s指向,如图3. 20所示,则插入的操作由下面两 个语句来实现。s->next=p->next;p->next=s;上面的两条插入语句顺序不可颠倒。图 3. 20第四章#includestdio. h>#include<malloc. h>源程序typedef struct contactschar name20;char tele20;char qq15;/your friend,s/your friend,s/your fri end,snametelephoneqq (0- 429496729
8、5)char emai130:/your friend,s e-mailstruct contacts *pre;struct contacts *next;c0n;void dismenu (void)printf (n*menu*n n “);printf (zz1.new contact.n);printf(“2.edi t contacte n);printf (z/3.search contact.printf(“4.delete contact.n);printf(“5.show all contact.printf (zz6.exit the system.);pri ntf (
9、*口 );int menuchose(void)int chose;dis_menu();lp: printf (''please input you choice (1 6):); seanf(d, &chose);if(chose < 10&&chose > 0)return chose:elseprintf ("'warning! ! !“);goto lp;void con_input(con *load)if(load 二二 null)printf (z,failded in malloc for new node
10、! n);return ;printf (z,n please input friend,s name: n,/);scanfload->name);printf (,z please input friend,s mobile:n,z);seanf(s,load->tele);printf (“ please input friend,s qq:rt);scanfload->qq);printf (“ pl ease tnput fri end's e-mai1:n);scanf(s,load->e_mail);printf(rt);con *tnsert_c
11、ontact(con *head, con *load)if(head=null) /the fist friendload->pre=null;1oad->next=null;head二load;printf (z,check_rz);elsehead->pre=load;load->next二head;load->pre=null;head=load;printf (,check_2,/);return head;/chose 1 new contactcon *add_contact(con *head)con *load=(con *)malloc(siz
12、eof(con);con_input(load);head=insert contact(head, load); return head;con *read_file(con *head)file *fp=fopen(/home/kuye/phone,rb+);int ret=0;while (feof (fp) =0)con *load二(con *)malloc(sizeof(con):if (load=null)inprintf (,z%s %d: failedmallocnz,, _function_, _line_);fclose(fp);return null;ret=fread
13、(load, sizeof(con), 1, fp);printf (,zret 二 %dn,z, ret);if (ret=l)head=insert cont3ct(head, load);elsefree(load);return head;/chose 2 edit contact void edit name (con *load) if (load=null)printf (z, please check you input “);return ;con input (load);/chose 3 search contactcon *find_name(con *head)con
14、 *load = head;char found_name20:printf (please enter to your contact name :n");scanf(s,found_name);while (load != null)if (strcmp (load->name , found_name) =0)return load;load 二 load->next;printf(,z it's not find ! ! ! n);return null;/chose 4 delete contactcon* delete_name (con *head)
15、con*load = head;load 二 find_name(head);if (head->pre=null&&head->next=null)free (head);return null:if (head->pre二二null)head->next->pre=null; head=head->next;free (head);return head;else if (load->next=null)1oad->pre->next=null;free (load);return head;elseload->n
16、ext->pre=load->pre;load->prenext=load->next;free (load);return head;/chose 5 show all contactvoid show_all_nodes(con *head)con *load = null;load = head;printf (nallcontactn);if (load = null)printf(“null .you can choce menu 1contact");printf(nn");while(load !二 null)printf(z, nam
17、e : %s n tele : %s q:%s ne-mail:n", io8d->n8nie, load->tele, 1 oad->qq, load->e_mai 1);printf(nn);load二load->next;to addq%svoid delete_all_nodes(cont *head)con *load二head;con *pnext二null;int ret;file *fp二fopen(/home/kuye/phone,wb+); if (fp=null)printf (/zfailed in open written f订
18、ert); return ;whi l e(l oad! =null)head=load-next;retfwrite(load, sizeof(cont), 1, fp);printf (zzret= %dnz,, ret):free (load);load二head; fclose(fp);int main ()int chose;char sure;con *pst二null;con *fd二null;pst=read_file(pst);whi le(l)chose = menu chose ();switch(chose)case 1:/newneweditprintf(nconta
19、ct);pst=add_contact(pst);break;case 2:/editprintf(ncontactn);fd 二find_name(psi);edi t_name(fd);break;case 3:/search fd 二 find_name(pst);if(fd != null)printf(/znsearchcontactn);printf(z, name : %s n tele : %s nq q:%s ne-mail:%sn,fd->name, fd->tele, fd->qq, fd->e_mail);printf (“n");br
20、eak;case 4:/deletepst 二 delete_name(pst):break;case 5:/showshow_all_nodes(pst);break;case 6:/exitprintf(“are you sure exit? (y/n) n);loop: seanf(s, &sure);if (sure 二二y' |sure 二二y')del ete_all_nodes (pst);return 1;else if(sure = ' n'|sure = ' n')elseprintf (z,war ning ! ! ! please in put y/n.);goto loop;break;return 1;第五章总结心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决 实际问题,锻炼实践能力的重要环节,而在学期末我们也进行了一次c 语言程序设计,对我们来说也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年浙江省宁波市慈溪市高三第三次教学质量监测数学试题试卷
- 城市扩建土地征用协议范例2024
- 2024年公司销售协议条款样本
- 2024年食品企业厂长聘任协议范本
- 2024年度专项法律支持公司协议
- 2024公司行政人员专属劳动协议草案
- 文书模板-应届生三方协议签订流程
- 2024年子女赡养义务履行协议
- 2024年家用电器保修协议样本
- 办公室装修升级协议模板 2024
- 课程定位与课程设计情况
- 2024-2025学年七年级生物上册 第二单元第一、二章 单元测试卷( 人教版)
- 人教部编版三年级上册《道德与法治》教案全套
- Unit 4 Weekend Activities Part B(教学设计)-2024-2025学年闽教版英语五年级上册
- 2024-2025学年高中生物下学期《细胞增殖》教学设计
- 2024年全国检验类之临床医学检验技术(师)考试历年考试题附答案
- 三级动物疫病防治员职业鉴定理论考试题库-上(单选题)
- 杭州萧山国际机场控制区通行证考试题库附有答案
- 医学美容技术专业《医学美容技术顶岗实习》课程标准
- 旋挖成孔灌注桩工程技术规程
- 2024届四川省绵阳市高三上学期一诊模拟考试生物试题(解析版)
评论
0/150
提交评论