为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

手机通讯录报告

2011-09-09 23页 doc 379KB 212阅读

用户头像

is_546374

暂无简介

举报
手机通讯录报告沈阳工程学院 沈 阳 工 程 学 院 课 程 设 计 设计题目: 程序设计基础课程设计 -----手机通讯录管理系统 系 别 班级 学生姓名 学号 指导教师 职称 起止日期: 沈 阳 工 程 学 院 课程设计任务书 课程设计题目: 程序设计基础课程设计 ----手机通讯录管理系统 系 别 信息工程系 班级 计本081 学生姓名 王浩 学号 2008412110 指导教师 栾好利 张楠 职称 副教授 助教 课程设计进行地点: 实训F 座 任 务 下 达 时 间: 2009 年 6 月 11 日 止日期: 2009 年 6月 15...
手机通讯录报告
沈阳工程学院 沈 阳 工 程 学 院 课 程 设 计 目: 程序设计基础课程设计 -----手机通讯录管理系统 系 别 班级 学生姓名 学号 指导教师 职称 起止日期: 沈 阳 工 程 学 院 课程设计任务书 课程设计题目: 程序设计基础课程设计 ----手机通讯录管理系统 系 别 信息工程系 班级 计本081 学生姓名 王浩 学号 2008412110 指导教师 栾好利 张楠 职称 副教授 助教 课程设计进行地点: 实训F 座 任 务 下 达 时 间: 2009 年 6 月 11 日 止日期: 2009 年 6月 15日起——至 2009 年 6月 26日止 教研室主任 姜柳 6 月 10日批准 1.设计的原始资料及依据 通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力。 2.设计的主要内容及要求 设计题目:手机通讯录管理系统 需要完成的功能: ⑴查看功能; ⑵增加功能; ⑶拨号功能; ⑷修改功能; ⑸删除功能; ⑹菜单功能; ⑺查询功能。 必须用到链表,能将生成的文件存储与外部存储器上,并且从外部存储器上可以编写该文件的功能。 3.对设计说明书撰写内容、格式、字数的要求 ⑴ 学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计说明书()的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。 ⑵ 装订格式 封面、任务书、成绩评审意见表、摘要和关键词、目录、正文、结论、致谢、参考文献。 ⑶ 课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,三级节标题采用黑体小四号字,表题与图题采用宋体五号字。 4. 设计完成后应提交成果的种类、数量、质量等方面的要求 ⑴ 课程设计任务书 ⑵ 课程设计报告 ⑶ 设计成品(光盘) 5.时间进度安排 顺序 阶段日期 计 划 完 成 内 容 备注 1 6月15日 查阅资料,充分解读题目内容,小组分工,确定每个人的具体任务。 1天 2 6月16日至6月19日 上机编程 4天 3 6月22日至6月23日 程序整合,综合调试。 2天 4 6月24日至6月25日 答辩。 2天 5 6月26日 撰写课程设计报告。 1天 6.主要参考资料(文献) [1] C语言程序设计 天津大学出版社 高福成 主编 [2] C语言程序设计 高教出版社 谭浩强 主编 [3] C语言程序设计实习指导与习题集(第二版) 谭浩强 主编 [4] C语言程序设计 高等教育出版社 巫家敏 主编 沈 阳 工 程 学 院 课程设计成绩评审表 系(部): 信息工程系 班级: 计本081 学生姓名: 王浩 评价 内容 具 体 要 求 权重 评 分 加权分 5 4 3 2 调查 论证 能独立查阅文献和从事其他调研;能提出并较好地论述课题的实施;有收集、加工各种信息及获得新知识的能力。 0.1 实践 能力 能正确选择研究(实验)方法,独立进行研究工作。如装置安装、调试、操作。 0.2 分析解决问题能力 能运用所学知识和技能去发现与解决实际问题;能正确处理实验数据;能对课题进行理论分析,得出有价值的结论。 0.2 工作量及态度 按期圆满完成规定的任务,工作量饱满,难度较大,工作努力,遵守纪律;工作作风严谨务实。 0.2 质量 综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;论文结果有应用价值。 0.2 创新 工作中有创新意识;对前人工作有改进或独特见解。 0.1 评语或需说明的问题: 指导教师签名: 年 月 日 沈 阳 工 程 学 院 课程设计成绩评审表 系(部): 信息工程系 班级: 计本081 学生姓名: 王浩 评价 内容 具 体 要 求 权重 评 分 加权分 5 4 3 2 资料综 述材料 查阅文献有一定广泛性;有综合归纳资料的能力和自己的见解。 0.15 课程设 计质量 综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学;文字通顺,技术准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;论文结果有应用价值。 0.5 工作量 难 度 工作量饱满,难度较大。 0.25 创 新 对前人工作有改进或突破,或有独特见解。 0.10 评语或需说明的问题: 评阅教师签名: 年 月 日 摘 要 本次C程序设计课程设计我小组负责手机通讯录管理系统,在菜单上显示各功能的选项。在增加功能中可按照编号、姓名、电话号码和类型等输入每个人的通讯信息。在查看时,可按三种类型如办公类、个人类和商务类等查询,并把各类型的通讯人信息列出。修改功能中,可以先选中某个人的姓名在进行数据修改,删除功能同上。在查询功能中可通过姓名和电话号码查询此人信息。而且在此次设计过程中,我小组特别地增加了一项拨号功能,在拨号时,在屏幕上渐渐显示拨的号码。 关键词 手机通讯录管理系统 菜单 输入功能 修改功能 删除功能 拨号功能 查询 查看 目 录 摘 要 I 第1章 绪论 1 第2章 需求分析 2 2.1编写目的 2 2.2需求概述 2 2.3需求说明 2 第3章 总体设计 3 3.1编写目的 3 3.2总体结构 3 3.3数据结构 3 第4章 流程图 4 第5章 详细设计 5 5.1编写目的 5 5.2详细设计 5 5.3程序运行 11 结论 13 致谢 14 参考文献 15 第1章 绪 论 在本次课程设计中,本小组设计手机通讯录管理系统,而我个人负责其中的主函数和输入函数。在主函数中,主要用到了多分支语句(switch), 在无限循环时也能用到了语句for,当每一个功能使用完毕或输入错误时就会返回,再次调用菜单函数进入菜单界面。设计主函数时,还大量使用了函数的调用。在编写输入函数时,运用到了结构体指针,链表,开辟结构体空间。用比较函数,当输入的通讯人的姓名、号码相同时,系统会提示输入重复并返回。当每次输入个人通讯信息完毕后,就打开一个确定文本文档,并把它写入磁盘中,再关闭文件。因本通讯录设计只能存储十五个通讯人信息,所以当存到第十五个时,系统就会提示存储已满。 这次课程设计本组分工情况如下表1-1所示: 表1-1 分工情况 班级 计本081 名称 手机通讯录管理系统 项目组长 刘益闯 组员 刘益闯 王浩 魏红彦 刘兴昊 组员学号 2008412107 2008412110 2008412106 2008412128 本人工作简介 菜单模块 修改模块 整体衔接 主函数 输入模块 查询模块 拨号模块 查看模块 删除模块 组长评语 工作认真负责,能合理分配任务并监督帮助组员完成编程工作。 对待工作认真,能及时完成任务。对C语言的理解较为透彻。 能独立思考并通过讨论解决问题。程序完成的很认真、出色。 模块完成及时,并能帮助大家一起解决遇到的问题,勤奋认真。 第2章 需求分析 2.1编写目的 通过该系统实现对通讯录信息进行录入,显示,修改,插入,排序,保存等操作的管理。 2.2需求分析 设计一个通讯录管理系统具有以下功能 ⑴查看功能:选择此功能时,列出三类选择:A 办公类、B 个人类、C 商务类;当选中某类时,显示出此类所有数据中的姓名和电话号码等详细信息。 ⑵增加功能:能录入新数据 包括:姓名、电话号码、分类(参照第一个功能的分类),电子邮件等(还有其他的功能可以添加但需通过组员商量决定)。 ⑶拨号功能:能显示出通讯录中所有人的名字,当选中某个名字时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声音。 ⑷修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 ⑸删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条 ⑹菜单功能:至少采用文本菜单界面(如果能采用图形菜单界面更好)。 ⑺查询功能:要求能通过输入姓名或者电话号码查询此人的详细信息。 2.3需求说明 在主界面菜单下,根据提示,选择功能操作,来实现输入通讯信息的存储、修改、删除、查看和拨号等功能。通讯录个人信息包括个人的编号、姓名、号码、类型及email等,并且要求人名、号码不能重复,录入的个人信息要求用文件形式保存,并可以进行查看、查询、修改、删除和拨号等基本操作。个人信息显示要求有一定的规范的格式。对个人信息的查询应能够按照号码和姓名两种方式来查找浏览信息。对个人信息的修改应逐个进行,而不能影响其他个人信息。 第3章 总体设计 3.1编写目的 根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备。 3.2总体设计 该手机通讯录管理系统按功能划分可得功能模块图,如图3-1所示。 图3-1 功能模块图 其中:输入通讯录信息模块完成通讯个人信息的输入功能,输入信息包括个人的编号、姓名、号码、类型、email等;修改联系人信息模块完成个人通讯信息的修改功能;删除联系人信息模块完成个人通讯信息的删除功能;查询联系人信息模块完成个人通讯信息的查询,查询时对应有按号码和姓名两种方式;联系人拨号模块完成通讯人拨号功能查看联系人信息模块完成已录入个人通讯信息的显示功能;菜单选择模块完成用户命令的接受,此模块也是手机通讯录管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择而调用其他模块实现相应的功能。 3.3数据结构 本系统中主要的数据结构就是个人通讯信息,包括个人编号、姓名、类型、号码和email等,在处理过程中各项可以作为一个人的不同属性来进行处理。 第4章 程序流程 系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下: 图4-2 手机通讯录管理系统流程图 第5章 详细设计 5.1编写目的 根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。 5.2详细设计 1、在本次课程设计中,小组合作完成手机通讯录管理系统的程序,对应于总体设计时的系统功能模块图,各个功能系统模块的处理逻辑如下: ⑴查看功能:选择此功能时,列出三类选择:A 办公类、B 个人类、C 商务类;当选中某类时,显示出此类所有数据中的姓名和电话号码等详细信息。 ⑵增加功能:能录入新数据 包括:姓名、电话号码、分类(参照第一个功能的分类),电子邮件等(还有其他的功能可以添加但需通过组员商量决定)。 ⑶拨号功能:能显示出通讯录中所有人的名字,当选中某个名字时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声音。 ⑷修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 ⑸删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条 ⑹菜单功能:至少采用文本菜单界面(如果能采用图形菜单界面更好)。 ⑺查询功能:要求能通过输入姓名或者电话号码查询此人的详细信息。 我主要负责其中的主函数和输入通讯录信息两个模块。在主函数前先定义结构体和结构体指针变量,申明菜单中各功能需要调用的函数。 2、其中由我负责的主函数和输入通讯录信息模块的流程图分别如图4-3和图4-4所示。 图4-3 主函数流程图 图4-4 输入通讯录信息流程图 3、其中我负责主函数和输入通讯录信息函数如下: void main() /*主函数开始*/ { for(;;) /*每次功能结束后或输入错误时,循环返回主界面*/ { switch(menu_select()) /*调用菜单函数*/ { case 1:system("cls"); /*系统清屏*/ printf("****************************\n"); printf(" 输入通讯录信息\n"); printf("****************************\n"); head=CreateList(); /*调用输入通讯录信息模块函数*/ break; /*跳出case1语句的循环*/ case 2:system("cls"); printf("****************************\n"); printf(" 修改联系人信息\n"); printf("****************************\n"); p=edit(head); /*调用修改联系人信息模块函数*/ break; /*跳出case2语句的循环*/ case 3:system("cls"); printf("****************************\n"); printf(" 删除联系人信息\n"); printf("****************************\n"); DelNode(head); break; case 4:system("cls"); printf("****************************\n"); printf(" 查看联系人信息\n"); printf("****************************\n"); PrintList(head); printf("按任意键返回..."); getch(); /*接收输入的一个字符*/ system("cls"); break; case 5:system("cls"); printf("****************************\n"); printf(" 输入号码拨号\n"); printf("****************************\n"); PrintList(head); /*调用查看联系人信息函数*/ bohao(); /*调用拨号功能函数*/ printf("选择联系人号码:"); break; case 6:system("cls"); printf("****************************\n"); printf(" 查找联系人信息\n"); printf("****************************\n"); p=ListFind(head); /*调用查找联系人信息函数并返回指针赋给p*/ if(p!=NULL) /*p指针指向的地址不为空就执行下面的语句*/ { printf("编号 姓名 电话 类型 e-mail\n");\ printf("=====================================\n"); printf("%s\t%s\t%s\t%s\t%s\n",p->data.num,p->data.name,p->data.phone,p->data.leixing,p->data.email); /*输出所查找联系人的信息*/ printf("=====================================\n"); } printf("查找完毕,按任意键返回..."); getch(); /*接收输入的一个字符*/ system("cls"); break; case 0:printf("\t谢谢使用,再见!\n"); /*结束该系统的使用*/ return; /*返回上一语句的输出值*/ } } } LinkList CreateList(void) /*输入联系人函数*/ { LinkList head=(ListNode *)malloc(sizeof(ListNode)); /*开辟一个长度为ListNode的内存区,并强制转换为结构体类型,把其指针地址赋给头指针head*/ ListNode *p,*rear,*q; /*定义三个结构体类型指针*/ int i=0,flag=1,a; /*定义整形变量*/ char leixing; /*定义一个字符型变量*/ rear=head; /*把头指针head赋给rear*/ while(flag==1&&i<=16) /*当i>16时退出当前循环*/ { i++; if(i<=15) { p=(ListNode *)malloc(sizeof(ListNode)); /*开辟一个长度为ListNode的内存区,并强制转换为结构体类型,把其指针地址赋给头指针p*/ printf("请输入编号:"); scanf("%s",p->data.num); printf("请输入姓名:"); scanf("%s",p->data.name); if(i>1) { fp=fopen("a.txt","rb"); /*打开一个可读写的文件a.txt*/ for(q=head,a=0;anext) { a++; if(strcmp(p->data.name,q->data.name)==0) /*比较两个字符串的大小*/ { printf("输入重复!\n"); printf("按任意键返回..."); getch(); system("cls"); return; } } fclose(fp); /*关闭文件*/ } printf("请输入号码:"); scanf("%s",p->data.phone); if(i>1) /*把刚输入的通讯信息写入文件中*/ { fp=fopen("a.txt","rb"); /*打开文件*/ for(q=head,a=0;anext) { a++; if(strcmp(p->data.phone,q->data.phone)==0) { printf("输入重复!\n"); printf("按任意键返回..."); getch(); system("cls"); return; } } fclose(fp); /*关闭文件*/ } printf("类型为:1 办公类 2 个人类 3 商务类 请用序号填写\n"); printf("请输入类型:"); scanf("%s",p->data.leixing); printf("请输入e-mail:"); scanf("%s",p->data.email); printf("输入完毕,按任意键存储...\n"); getch(); fp=fopen("a.txt","a"); /*打开文件*/ fprintf(fp,"%s\t%s\t%s\t%s\t%s\n",p->data.num,p->data.name,p->data.phone,p->data.leixing,p->data.email); fclose(fp); /*关闭文件*/ printf("存储完毕!\n"); rear->next=p; /*把p的地址赋给rear的下一个*/ rear=p; printf("继续输入吗? (1/0):"); scanf("%d",&flag); system("cls"); } else { printf("存储空间已满!\n"); printf("按任意键进行存储..."); getch(); i++; } } system("cls"); rear->next=NULL; /*把空赋给最后指针的下一个*/ return head; /*返回头指针*/ } 5.3运行程序 1、运行程序,打开主界面菜单如图4-5所示。 图4-5 菜单 2、根据提示输入数字“1”即可打开输入通讯信息窗口,如图4-6所示。 图4-6 输入通讯信息 3、根据提示按任意键存储,打开窗口如图4-7所示,再根据提示可输入“1”继续存储,若输入“0”则回到主菜单。 图4-7 存储完毕 结 论 很快两个星期的课程设计过去了,这次我小组负责手机通讯录管理系统的课程设计。这次实训,我感受良多,获益匪浅。 经过这次实训,我深深地感觉到实践的重要性,唯有实践才能体会到更多在学习理论知识中学不到的知识。俗话说:“实践是检验真理的。”只有通过实训,我才发现在课程设计中,编程时有许多疑点和纰漏在平常时在草纸上编程很难找到。而且实训时,我又不断地复习和回想曾经老师讲的C语言知识要点。而曾经所学的知识终究是纸上的的知识,用到了实际生活中才有用。在课设之前,我小组先是到图书馆查找资料,在网上浏览相关网页,万事开头难啊, 以前的程序设计总是停留在之上或是简单的一些函数、数组、指针、结构体等相结合的比较容易的程序,而这次编程需要把所学的知识特别是函数的调用,指针的运用等知识综合使用。相对来说这次的课程设计的难度是相当的大的。唯有坚持不懈,团结合作,才能成功。 实训之后还得写报告,我渐渐地明白,这样才能把自己刚学到的和用到的知识来个总结,加深印象。在写实训报告可以把问题慢慢细化,把知识分类总结,条理更清晰明了。回想当时编程来的情景是一目了然。编程时,遇到很多问题,但经过组员的团结合作和不断努力,破关斩将,并向身边的同学请教,我们才渐渐地走出迷茫和重围。不编不知道,只有编了我们才有所体会,发现了太多平常忽略的小问题,而在这次编程中一一暴露出来,然后我们把它一一解决。其中的快乐大概只有当事人才能体会到吧,呵呵。 编程实训已经结束了,但是我们不会停止编程。俗话说:“逆水行舟,不进则退。”我们需要不断地努力,奋斗。在以后的学习过程中,我们也会抽空来编编程,熟练编程语句,总结编程经验,来提高自己的编程能力。只有这样,我才会在不断进步,在以后的人生发展道路上有更大的收获和提高。 程序设计和应用开发能力的提高,需要不断地上机实践和长期地经验积累,在上机的过程中会碰到各种各样的问题,而分析问题、解决问题的过程就是一个积累的过程。的确是这样的,作为大学生的我们就是要有进取拼搏的精神和思考问题的能力,只有这样,将来的我们才会立足于世界之林。 致 谢 尊敬的老师, 你们辛苦了! 非常地感谢这两个星期你们的谆谆教诲。虽然两个星期的时间有些短暂,但你们的教导仍然铭记于我心。你们教会了我如何编程,课程设计对错误程序进行调试、如何运用创新能力、如何实现数据为功能。没有老师的辛勤指导,我们也不会在这么短时间里完成课程设计,完成程序的调试,在此我表示深深的感谢。 老师的知识和学识的丰富让我深感钦佩,因此在以后的生活中,我会以老师作为榜样,多看一些相关书籍,增长知识,不断提高自己的编程能力。 参考文献 [1] C语言程序设计 天津大学出版社 高福成 主编 [2] C语言程序设计 高教出版社 谭浩强 主编 [3] C语言程序设计实习指导与习题集(第二版) 谭浩强 主编 [4] C语言程序设计 高等教育出版社 巫家敏 主编
/
本文档为【手机通讯录报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索