c语言电话薄课设.doc_第1页
c语言电话薄课设.doc_第2页
c语言电话薄课设.doc_第3页
c语言电话薄课设.doc_第4页
c语言电话薄课设.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南理工大学计算机科学与技术学院课程设计报告20 11 20 12 学年第 1 学期课程名称 c语言课程设计 设计题目 班级通讯录管理系统 学生姓名 刘帅 学 号 311009030117 专业班级 信管一班 指导教师 于金霞 2011 年 9 月 8 日系统总体设计本系统设计的函数是由一个主函数几个子函数组成的。首先构思大局编出一个主函数,然后根据要实现的功能逐步细分设计,分别解决输入、显示、查找、删除、修改,退出功能的子函数编程中遇到的问题。首先通过结构体的定义,确定通讯录的项目和大小。首先通过输入函数添加信息,然后再逐步编写和验证其它功能。显示函数的设计利用C语言的循环功能依次输出信息。查找是用一个字符串比较得出两个相同的字符串的方法找出用户要查找的人。删除函数的设计是通过指定位置以后的数组下标减一实现删除目的的,for循环和 while循环在这此设计中也起了很大的作用。1概要设计系统功能模块图如图1所示: 主菜单输入通讯录显示通讯录查找通讯录删除通讯录添加通讯录退出通讯录路修改通讯录图1 系统功能模块图 2 系统流程图 输入错误,重新操作结束menu()=6?menu()=1?menu()=0?menu()=2?m=0?menu()=5?menu()=4?menu()=3?开始int length,m=0调用输入函数调用显示函数调用输出函数调用退出函数调用添加函数调用修改函数调用查找函数图2 主函数流程图真假真假真假真假真假真假真真假假 三 详细设计1 菜单函数菜单函数首先标出欢迎使用通讯录管理系,然后给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图3所示: int mm6返回 m结束开始输入选项06666真假图3 菜单函数流程图2 输入通讯录将结构体数组分成几个数组分别对每个数组赋值,用for循环对不同地址的数组分别赋值。其流程图如图4所示:i=0in?i+返回 n结束开始输入信息输入数目n真假图4 输入函数流程图3 显示通讯录int ii=0i=n-1?i+结束开始显示i位置信息真假图5显示函数流程图显示通讯录通过循环函数将全部的通讯录信息以此显示出来,其流程图如图5所示: 4 find函数find函数通过输入姓名与原通讯录中存储的姓名,两字符串的比较,找到与输入姓名相同的姓名的位置,其流程图如图6所示:i=0in-1ch=1return n调用删除函数是否重新输入j=i+1jn-1?真没有找到输出信息假是否继续真调用查找函数结束图8 查找函数流程图7 修改通讯录修改通讯录通过find函数找到所要修改通讯录位置,显示出信息,确认修改后,即可逐项修改,其流程图如图9所示: 结束假真输出要修改的信息假Int i,chin-1?是否要修改? 没有找到要修改的记录是否继续修改进行修改调用修改函数真开始真假图9 修改函数流程图8 添加通讯录在存储未满的情况下,用find函数找到要添加的位置后即可逐项添加通讯录信息,其流程图如图10所示: 输入插入信息输入插入位置真结束开始假int i,jN=ij-将该位置信息向后移一位储存已满返回n+1图10添加函数流程图假真9 退出通讯录在使用完通讯录后,按6键便会退出系统,其流程图如图11所示: n=-1输出谢谢使用结束开始图11退出函数流程图返回n 总结紧紧张张课程设计周即将过去,从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里时不时的有一种喜悦。通过这一周的实习,我认识到书上和老师教的内容是有限的,要想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去学习,同时我们还应向他人请教,从而了解更多自己不知道的知识。回头看来,编写这个程序并不像原来想像的那么难,我们要相信自己,无论做什么事,只要我们仔细的思考了,认真的去做了,我们就一定能做好。通过这周的编程我发现了自己的一些不足,在编写时经常犯一些低级错误,由于自己的马虎而浪费了不少时间。在不知如何进行的时候有一种不自信,总想别人正在做什么,这些不足既然被发现就得在以后的做事中注意,争取改掉。经过一周的努力我掌握了一些基本的C语言进行程序设计的技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力(书写课程设计报告)。这一周的实践让我受益匪浅,在此我要感谢孜孜不倦指导我们的老师,感谢在我困惑时给我帮助的同学,感谢学校给我们一个这样动手动脑的机会,使我们在理论与实践相结合方面又得到了一次很好的锻炼,让我们得到很大的收获。参考文献 1、许合利,C语言程序设计,江苏:中国矿业大学出版社,2010.92、附录#include#include#define N 80/*定义通讯录*/ typedef struct char numN; char name20; char tele15; char add20;char emal15; STUDENT;STUDENT stuN ;int menu();int shuru(STUDENT stuN);void xianshi(STUDENT stu,int n);int shanchu(STUDENT stu,int n);void chazhao(STUDENT stu,int n);void xiugai(STUDENT stu,int n);int tianjia(STUDENT stu,int n);int tuichu();/*主函数*/int main()int length,m=0; while(m=0)switch (menu()case 0:length=shuru(stu);break;case 1: xianshi(stu,length);break;case 2:length=shanchu(stu,length);break;case 3:chazhao(stu,length);break;case 4:xiugai(stu,length);break;case 5:length=tianjia(stu,length);break;case 6:m=tuichu();break;default:printf(输入错误,请重新输入n);return 0;/*主菜单*/int menu()int m;printf(*欢迎使用通讯录管理系统*n);printf(*主菜单*n);printf(ttt 0.输入通讯录n);printf(ttt 1.显示通讯录n);printf(ttt 2.删除通讯录n);printf(ttt 3.查找通讯录n);printf(ttt 4.修改通讯录n);printf(ttt 5.添加通讯录n);printf(ttt 6.退出通讯录n);do printf(ttt 请输入选项0-6n);scanf(%d,&m);while(m6);return m;/*输入通讯录*/ int shuru(STUDENT stuN) int i,n; printf(n请输入要加入通讯录的数目 n); scanf(%d,&n); printf(其输入信息 n); for(i=0;in;i+) printf(请输入编号:n); scanf(%s,stui.num); printf(n请输入姓名n:); scanf(%s,); printf( n请输入电话:n); scanf(%s,stui.tele); printf( n请输入地址:n); scanf(%s,stui.add); printf( n请输入emal:n); scanf(%s,stui.emal); printf(编号:%sn姓名:%sn电话:%sn地址:%snemal:%sn,stui.num,,stui.tele,stui.add,stui.emal); return n; /*显示通讯录*/void xianshi(STUDENT stu,int n)int i;for(i=0;i=n-1;i+)printf(编号:%sn姓名:%sn电话:%sn地址:%snemal:%sn,stui.num,,stui.tele,stui.add,stui.emal); /*查找函数*/ int find(STUDENT stu,int n) int i;char s20; printf(请输入的姓名n); scanf(%s,s); for(i=0;in-1) printf(没有找到要删除的记录,是否重新输入1/0n); scanf(%d,&ch);if(ch=1)n=shanchu(stu,n);else printf(编号:%sn姓名:%sn电话:%sn地址:%snemal:%sn,stui.num,,stui.tele,stui.add,stui.emal); printf(是否确定要删除:%d是%2d否n,1,0); scanf(%d,&ch); if(ch=1) for(j=i+1;jn-1) printf(没有找到要查找的记录,是否重新输入1/0n); scanf(%d,&ch);if(ch=1)chazhao(stu,n); else printf(编号:%sn姓名:%sn电话:%sn地址:%snemal:%sn,stui.num,,stui.tele,stui.add,stui.emal);/*修改通讯录*/void xiugai(STUDENT stu,int n) int i,ch; i=find(stu,n); if(in-1) printf(没有找到要修改的记录,是否重新输入1/0n); scanf(%d,&ch);if(ch=1)xiugai(stu,n); else printf(编号:%sn姓名:%sn电话:%sn地址:%snemal:%sn,stui.num,,stui.tele,stui.add,stui.emal); printf(是否确定要修改:%d是%2d否n,1,0); scanf(%d,&ch); if(ch=1) printf(编号:n); scanf(%s,stui.num); printf(n姓名n:); scanf(%s,); printf( n电话:n); scanf(%s,stui.tele); printf( n地址:n); scanf(%s,stui.add); printf( nnemal:n); scanf(%s,stui.emal); printf(修改成功n);/*添加通讯录*/ int tianjia(STUDENT stu,int n) int i,j; if(N=i;j-) strcpy(stuj+1.name,); strcpy(stuj+1.tele,stuj.tele); strcpy(stuj+1. add,stuj. add); strcpy(stuj+1.emal,stuj.emal); printf(其输入要插入的信息 n); printf(编号:n); scanf(%s,stui.num); printf(n请输入姓名:n); scanf(%s,); printf( n请输入电话:n); scanf(%s,stui.tele); printf( n请输入地址:n); scanf(%s,stui.add); printf( n请输入emal:n); scanf(%s,stui.emal); printf(添加成功); n+; return n; /*退出通讯录*/ int tuichu()int n;n=-1;printf(*谢谢使用*);return n; 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论