




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
宿迁学院课程设计报告20072008学年第二学期C语言程序设计课程设计报告系部: 三 系专业班级:电子资讯工程(2)班 学号: 070306210 姓名: 冀 鹏 超设计题目: 同学通讯录设计 起讫日期:2008.6.16 至 2008.6.29 指导老师: 徐化祥 2008年6月 课程设计(论文)内容要求:1本课程设计的目的(1)熟练掌握C语言的基本知识和技能; (2)掌握程序设计的一些经典算法和基本方法;(3)了解数组、指针和结构体的应用;(4)利用所学的基本知识和技能,解决日常生活中经常面临的问题;(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。 2课程设计的任务及要求1)课程设计题目:同学通讯录设计2)基本要求:(1)设计一个菜单将在实现的功能显示出来,并有选择提示;(2)通讯簿应包含姓名、性别、电话号码、QQ号码、Email、班级、宿舍等基本信息;(3)能够查询全部成员清单;(4)能够按号码或姓名查询某一个成员的信息;(5)能够增加、修改某一个成员的信息;(6)要求有错误提示功能,例如性别只能输入F,M,输入错误提示重新输入。3)创新要求: (1)加入删除功能,实现对指定成员信息的删除操作; (2)信息的输入输出可以用文件的存取和显示的方式,建立文件,直接存取默认檔或指定文件。4)课程设计报告编写要求(1)要按照课程设计模板的规格书写课程设计报告;(2)报告包括目录、正文、心得体会、参考文献等;(3)课程设计论文用A4纸统一打印,装订按学校的统一要求完成。5)参考数据:(1)谭浩强. C程序设计(第三版). 北京:清华大学出版社,2005.7(2)张强华. C语言程序设计. 北京:人民邮电出版社,2001.8 (3)/(4)http:/www.VcOK.com/(4)/6)提交内容:(1)可执行档(.exe)和程序源代码;(2)课程设计报告(3)程序使用说明书7)课程设计进度安排内容 时间安排地点构思及收集资料 6.16 - 6.18 209实验室编程设计与调试 6.18 - 6.25 209实验室撰写报告 6.25 - 6.28 209实验室提交所有数据 6.28 - 6.29 209实验室8)评分标准: (1)完成基本功能:60分; (2)完成调试:10分(3)设置错误提示或者按照要求改变结果:10分; (4)完成设计报告和使用说明书:20分;9)小组成员:冀鹏超(070306210) 李长明(070306211) 学生签名: 年 月 日目录一、设计思路4二、设计说明与调试分析5三、源代码6四、测试结果12五、设计心得15六、参考文献16附录17- 17 -一、设计思路()设计主菜单选择接口.简单菜单的制作可利用Printf函数来实现用Printf函数将主菜单项一次打印到屏幕上,接口中的边框可以通过多个Printf函数来实现,菜单应根据用户的选择作出不同的反应,因此需要使用多分支结构来实现选择项的功能,因为主菜单至少要显示一次,所有用do-while比较好.输入主菜单接口的程序段写在menu()中这样可使主函数的代码简捷,提高程序可读性.()设计各模块的算法.一个最基本的通讯录要求实现最基本的功能,包括浏览、录入、删除、查找、和修改,为此需要首先定义记录项的内容,其基本属性包括姓名、性别、年龄、电话号码、QQ号码、Email、班级、宿舍等其它基本信息。同时系统还需要记录用户的所有记录项内容和总的项数。功能:创建通讯录模块. 创建一个文件,并将从键盘输入的若干记录存放在文件中,不传递参数.输入通讯录模块. 打开通讯录文件,通过循环逐条读取数据,并将数据一一输入到屏幕上.不传递参数.查询通讯录模块.打开通讯录文件,根据选择,按姓名查找.不传递参数.按姓名查找模块:传递文件指针,输入要查询记录的姓名,并用循环与檔中读入的姓名一一进行比较.删除通讯录模块. 在这些模块的操作中,首先打开通讯录文件,然后从文件中逐条读取数据,并将它们存放在结构体类型的数组中;对数组进行删除操作,最后再将数组存放到文件中去.增加通讯录模块。根据要求保存已改动的通讯簿,然后建立新的记录。释放原通讯簿所占空间并插入新的记录。修改通讯录模块。打开通讯录文件,根据提示选择修改相关信息,enter键结束操作。退出通讯录模块。 打开通讯录文件,根据提示press any key to continue退出程序。二、设计说明与调试分析设计说明:1. 编写主函数.一般情况下,都在主函数中调用其它功能的函数,为了能够测试主函数,可在调用函数的位置处先用空函数占位,每编写好一个函数,再用相应的调用语句取代对应的空函数.2. 编写显示菜单的函数, 并编译,连接,运行程序.此函数不需要传递参数,也不需要定义任何变量.3. 编写创建通讯录函数并编译,连接,运行程序.4. 编写显示通讯簿的函数, 并编译,连接,运行程序.在函数中只需定义循环控制变量.5. 编写浏览、输入、查询、删除、增加、修改、退出通讯簿的函数,并编译,连接,运行程序.调试分析:运行程序,进入主菜单:选择1执行浏览通讯录命令,选择2执行输入通讯录命令,首先输入要记录的组数,然后进行数据输入,通讯簿信息包括:姓名,性别,电话,QQ,电子邮件,班级,地址.选择3执行查询命令, 首先输入要查询记录的名字,通过for循环语句进行定位.当找到相应记录时,显示相应记录.当记录不存在于通讯簿内时,显示“找不到记录!”选择4执行删除记录命令,首先输入要删除记录的名字,通过for循环语句进行定位,当找到相应记录时,显示相应记录,按任意键删除当记录不存在于通讯簿内时,显“找不到记录!”选择5执行增加记录命令,首先确定所要插入信息的位置,然后进行数据录入,方法同1.选择6执行修改记录命令,首先输入要修改的同学名字,然后修改相关信息,方法同上选择7执行退出命令,按任意键退出程序三、源代码#include#include#define N 200int print1();struct txl char name15; char sex5; int age; char tel13; char qq13; char email20; char major20; char classes30; char room90; char others90;void init(struct txl stu)int i,j; /*下面的循环是对初始值的处理*/ for(i=0;iN;i+) strcpy(,); strcpy(stui.sex,); stui.age=0; strcpy(stui.tel,); strcpy(stui.major,); strcpy(stui.classes,); strcpy(stui.room,); strcpy(stui.qq,); strcpy(stui.email,); strcpy(stui.others,); int print1() int n; printf(ttttn);printf(*n);printf(t欢迎使用本通讯录应用程序,愿您从中找到所需要的信息。n);printf(制作人:冀鹏超 & 李长明t学号:070306210 & 070306211t班级:07电子信息(2)班n);printf(*n); printf(n); printf(ttt1.浏览通讯簿n); printf(ttt2.输入同学信息n); printf(ttt3.查询同学信息n); printf(ttt4.删除同学信息n); printf(ttt5.增加同学信息n); printf(ttt6.修改同学信息n); printf(ttt7.退出通讯簿n); printf(n请输入您的选择(1-7):); scanf(%d,&n); return n;void menu(struct txl stu) int i,j,flag=1;char str15;for(;flag=1;) switch( print1() )case 1: for(i=0;stui.age!=0;i+) printf(姓名: %sn性别:%sn年龄:%dn电话:%sn班级:%sn宿舍:%sn专业:%snQQ号:%snEmail: %sn,,stui.sex,stui.age,stui.tel,stui.classes,stui.room,stui.major,stui.qq,stui.email);printf(其它信息:%sn,stui.others); if(i=0)printf(目前通讯簿为空,请先输入信息n); break;case 2: for(i=0;stui.age!=0;i+) ; printf(你现在将要进行的是输入同学信息n); printf(输入同学的姓名: ); scanf(%s,); printf(输入同学的性别: ); scanf(%s,stui.sex); printf(输入同学的年龄: ); scanf(%d,&stui.age); printf(输入同学的电话: ); scanf(%s,stui.tel); printf(输入同学的班级: ); scanf(%s,stui.classes); printf(输入同学的宿舍: ); scanf(%s,stui.room); printf(输入同学的专业: ); scanf(%s,stui.major); printf(输入同学的QQ号: ); scanf(%s,stui.qq); printf(输入同学的Email: ); scanf(%s,stui.email); printf(输入同学的其它信息: ); scanf(%s,stui.others); break; case 3: printf(现在你将进行查询操作!请输入要查询同学的名字,按Enter结束.n); scanf(%s,str); for(i=0;iN;i+) if(strcmp(,str)=0) printf(姓名: %sn性别:%sn年龄:%dn电话:%sn班级:%sn宿舍:%sn专业:%snQQ号:%snEmail: %sn,,stui.sex,stui.age,stui.tel,stui.classes,stui.room,stui.major,stui.qq,stui.email); printf(其它信息:%sn,stui.others); break; if(i=N) printf(t通讯簿中没有你要找的同学!n); break;case 4: printf(现在你将进行删除操作!请输入要删除的同学的名字,按Enter结束.n); scanf(%s,str); for(i=0;iN;i+) if(strcmp(,str)=0) printf(姓名: %sn性别:%sn年龄:%dn电话:%sn班级:%sn宿舍:%sn专业:%snQQ号:%snEmail: %sn,,stui.sex,stui.age,stui.tel,stui.classes,stui.room,stui.major,stui.qq,stui.email); printf(该同学将被删除n); for(j=i;jN;j+) strcpy(,stuj+1.name); strcpy(stuj.sex,stuj+1.sex); stuj.age=stuj+1.age; strcpy(stuj.tel,stuj+1.tel); strcpy(stuj.classes,stuj+1.classes); strcpy(stuj.room,stuj+1.room); strcpy(stuj.major,stuj+1.major); strcpy(stuj.qq,stuj+1.qq); strcpy(stuj.email,stuj+1.email); strcpy(stuj.others,stuj+1.others); break; if(i=N) printf(t通讯簿中没有你要找的同学!n); break;case 5: printf(现在你将进行增加操作!请输入要增加信息的同学的名字,按Enter结束.n); scanf(%s,str); for(i=0;iN;i+) if(strcmp(,str)=0) printf(姓名: %sn性别:%sn年龄:%dn电话:%sn班级:%sn宿舍:%sn专业:%snQQ号:%snEmail: %sn,,stui.sex,stui.age,stui.tel,stui.classes,stui.room,stui.major,stui.qq,stui.email);printf(请输入该同学的新信息n);scanf(%s,stui. others); break; break; if(i=N) printf(t通讯簿中没有你要找的同学!n); break;case 6: printf(你现在将要进行的是修改同学的信息n); scanf(%s,str); for(i=0;iN;i+) if(strcmp(,str)=0) printf( 姓名: %sn性别:%sn年龄:%dn电话:%sn班级:%sn宿舍:%sn专业:%snQQ号:%snEmail: %sn,,stui.sex,stui.age,stui.tel,stui.classes,stui.room,stui.major,stui.qq,stui.email); printf(请输入该同学要修改的信息n); printf(输入同学的姓名: ); scanf(%s,); printf(输入同学的性别: ); scanf(%s,stui.sex); printf(输入同学的年龄: ); scanf(%d,stui.age); printf(输入同学的电话: ); scanf(%s,stui.tel); printf(输入同学的班级: ); scanf(%s,stui.classes); printf(输入同学的宿舍: ); scanf(%s,stui.room); printf(输入同学的专业: ); scanf(%s,stui.major); printf(输入同学的QQ号: ); scanf(%s,stui.qq); printf(输入同学的Email: ); scanf(%s,stui.email); printf(输入同学的其它信息: ); scanf(%s,stui.others); break; case 7: flag=0; break; default: printf(你的输入有错误,请重新输入!n); void main() struct txl stuN;init(stu);menu(stu);四、测试结果1.通讯录菜单如下图所示:2输入“1”,进行“浏览通讯录操作:3输入“2”,进行“输入同学信息”的操作:4输入“3”,进行“查询同学信息操作:5输入“4”,进行删除同学信息操作:6输入“5”,进行“增加同学信息”操作:7输入“6”,进行“修改同学信息”操作:8输入“7”,进行“退出通讯簿”操作:五、设计心得自从记事以来就听过了计算机这个高科技,现在终于实现了自己的一个小小愿望成为了计算机系的一名学生,这学期我们学的C语言,以前就听过这个名字,打开书一看简直一窍不通,学好这门科简直就是一个挑战,课前课后都要把书啃一遍,要不然上课就跟不上,终于学期快结束了,我们有一个课程设计,在两个星期内,完成一个复杂的程序,我们的题目是做一个通讯簿。 通过为期一周的C课程设计实验课使我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了基础。在编程的过程中,我体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有良好的思维,这才使得我完成这个任务,也使我感到一分喜悦,毕竟自己完成了一个有模有样的程序。于此,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心仍是我要加强的,同别人的交流也是必须的,这样才能不断使我进步。在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询数据,虚心向同学、老师请教,才一一得到了解决。我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。在设计过程中,合作精神必不可少。单凭一个人的力量是不能完成的,毕竟一个人学的很有限。每个人掌握的不同。我相信:态度决定一切,只有努力才有收获。总的来说,这次程序设计让我获益匪浅,对C语言也有了进一步的认识:C语言功能高、表达能力强、使用灵活方便、目标程序效率高。C语言是在国内外广泛使用的一种计算机语言,我相信除了以上优点之外还有许多,希望能在以后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 残疾人合法权益保护与聘用协议书
- 车辆买卖合同纠纷处理流程规范
- 跨境电商采购合同变更及税收政策协议范本
- 闽教版小学六年级下册数学期中考试试卷附答案
- 2025年金属焊接材料项目规划申请报告模板
- 临床试验中心的测试题及答案
- 初级导购测试题及答案
- 2025年抗辐射光学石英玻璃项目申请报告模板
- 2025年RCP项目申请报告
- 湖南省株洲市荷塘区2025届八下英语期末统考模拟试题含答案
- Python数据科学与机器学习结合试题及答案
- 海鲜水产电商商业计划书
- 托育转让合同协议书
- 2025江西中考:政治必背知识点
- 装饰音在乐理考试中的应用试题及答案
- 购犬协议书范本
- 通信汛期安全生产课件
- 物业工程服务意识培训
- 提高分级护理的巡视率
- 中国心力衰竭诊断和治疗指南(2024)解读
- 失重致血管细胞衰老和心脏代谢异常及干预策略的研究
评论
0/150
提交评论