C语言课程设计__第1页
C语言课程设计__第2页
C语言课程设计__第3页
C语言课程设计__第4页
C语言课程设计__第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计说明书 NO.11.课程设计的目的为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。其次课程设计有利于治学态度的培养。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常

2、运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。 程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。可运用于小的管理软件。软件运用菜单实现交互式 管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足

3、的需要。通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。 沈 阳 大 学课程设计说明书 NO.2 2.设计方案论证21设计思路建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。通讯录信息管理系统添加记录显示记录删除记录保存极录查询记录修改记录退出程序图

4、1. 通讯录信息管理系统 沈 阳 大 学课程设计说明书 NO.32.2程序设计2.2.1根据图1定义数据类型建立函数typedef struct char score; /*编号*/char name10; /*姓名*/ char num15; /*号码*/ char email20;/*邮箱*/char age8;/*年龄*/char adds20;/*住址*/Person;2.2.2主函数及其流程图定义主函数 main()和一系列的功能函数,只有通过这些函数才可实现程序的功能。每次使用都会调用主函数。主函数主要是利用switch语句对数据进行处理,流程图如下: 沈 阳 大 学课程设计说明书

5、 NO.4开 始选择1Y添加记录选择2YYYYYY保存记录修改记录查找记录删除记录显示记录选择6选择5选择4选择3NNNNNN结 束图2.主函数流程图 沈 阳 大 学课程设计说明书 NO.52.2.3增加函数及其流程图.添加通讯录记录流程图:图3. 添加通讯录记录流程图 沈 阳 大 学课程设计说明书 NO..显示通讯录记录流程图:图4. 显示通讯录记录流程图: 沈 阳 大 学课程设计说明书 NO..删除通讯录记录流程图 : .查询通讯录记录流程图: 图6.查询通讯录记录流程图图5. 删除通讯录记录流程图 沈 阳 大 学课程设计说明书

6、NO..修改通讯录记录流程图:图7. 修改通讯录记录流程图 沈 阳 大 学课程设计说明书 NO.92.3源程序#include #include#include typedef struct char score; /*编号*/char name10; /*姓名*/ char num15; /*号码*/ char email20;/*邮箱*/char age8;/*年龄*/char adds20;/*住址*/Person; Person pe80; int menu_select() char c; do system(cls); printf(tt *通讯录* n); pri

7、ntf(ttn); printf(tt 1. 添加记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); printf(tt 5. 修改记录 n); printf(tt 6. 保存记录 n);printf(tt 0. 退出程序 n); printf(ttn); printf(tt请您选择(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; 沈 阳 大 学课程设计说明书 NO.10char sig

8、n,x10; while(sign!=n&sign!=N) printf(t编号:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+); printf(t年龄:); scanf(t%s,pern+i.age);printf(t电话号码:); scanf(t%s,pern+i.num); printf(t通讯住址:); scanf(t%s,pern+i.adds);printf(t电子邮箱:);scanf(t%s,pern+i.email);gets(x); printf(nt是否继续添加?(Y/N); scanf(t

9、%c,&sign); i+; return(n+i); void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(编号 姓名 年龄 电话号码 通讯地址 电子邮箱n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); 沈 阳 大 学课程设计说明书 NO.11system(pause); printf(t-n); printf(-n);system(pause); int Delete_a_record(Person per,int n) char s20; int

10、i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num); strcpy(,perj+1.name); strcpy(perj.age,perj+1.age);strcpy(perj.adds,perj+1.adds);strcpy(perj.email,perj+1.email);perj.score=p

11、erj+1.score; printf(ttt已经成功删除!n); return(n-1); void Query_a_record(Person per,int n) int m; 沈 阳 大 学课程设计说明书 NO.12printf(tn请选择查询方式:n); printf(tn); printf(t1-姓名 n); printf(t2-电话 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);

12、scanf(%d,&m);if(m=1)char s20; int i=0; printf(t请输入想查询的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score);printf(t此人年龄: %sn,peri.age); printf(t电话号码: %sn,peri.num); printf(t通讯地址: %sn,peri.adds);printf(t电子邮箱: %sn,peri.email); ;if(

13、m=2)char s20; int i=0; printf(t请输入想查询的电话:); scanf(t%s,s);while(strcmp(peri.num,s)!=0&in) i+; 沈 阳 大 学课程设计说明书 NO.13if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score);printf(t此人姓名: %sn,);printf(t此人年龄: %sn,peri.age); printf(t通讯地址: %sn,peri.adds);printf(t电子邮箱: %sn,peri.email); ;i

14、f(m=3)char s20; int i=0; printf(t请输入想查询的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score);printf(t此人姓名: %sn,);printf(t此人年龄: %sn,peri.age); printf(t电话号码: %sn,peri.num); printf(t电子邮箱: %sn,peri.email); ;void Change(Perso

15、n per,int n) char s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); 沈 阳 大 学课程设计说明书 NO.14while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t编号:); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,); printf(t年龄:); scanf(t%s,peri.age);printf(t电话号码:); scanf(t%s,pe

16、ri.num); printf(t通讯住址:); scanf(t%s,peri.adds);printf(t电子邮箱:);scanf(t%s,peri.email);printf(t修改成功!);void WritetoText(Person per,int n) int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf(t保存到文件n); /*输入文件名*/ printf(t请输入所保存的文件名:); scanf(t%s,filename); if(fp=fopen(filename,w)=NULL) printf(t无法

17、打开文件n); system(pause); return; fprintf(fp,*通讯录*n);fprintf(fp,编号 姓名 年龄 电话号码 通讯地址 电子邮箱n); 沈 阳 大 学课程设计说明书 NO.15fprintf(fp,-n);while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20sn,peri.score,,peri.age,peri.num,peri.adds,peri.email); i+; fprintf(fp,-n);fprintf(fp,*共有%d条记录*n,n); fclose(fp); /*关

18、闭文件*/ printf(保存成功!n); void main() /*主函数*/ int n=0; for(;) switch(menu_select() case 1: printf(nt添加记录到通讯录n); /*添加记录*/ n=Input(pe,n); break; case 2: printf(nttt 通讯录记录表n); /*显示记录*/ Display(pe,n); break;case 3: printf(nt从通讯录中删除记录n); n=Delete_a_record(pe,n); /*删除记录*/ printf(t); system(pause); break; case

19、 4: printf(nt在通讯录中查找记录n); 沈 阳 大 学课程设计说明书 NO.16Query_a_record(pe,n); /*查找记录*/ printf(t); system(pause); break;case 5: printf(nt修改通讯录中的记录n); Change(pe,n); /*修改数据*/ printf(t); system(pause); break; case 6: printf(nt保存功能n); WritetoText(pe,n); /*保存数据*/ printf(t); system(pause); break; case 0: printf(ntt谢

20、谢使用,再见!n); /*结束程序*/ printf(ntt); system(pause); exit(0); 沈 阳 大 学课程设计说明书 NO.173设计结果与分析3.1运行程序将源程序编译、链接后生成可执行文件,运行该文件会看到如图8所示界面。图8.菜单函数界面运行主函数时,首先调用函数menu();,该函数主要是利用输出函数printf进行输出,其结图所示。3.2 增加信息3.2.1输入1显示添加通讯录界面。图9.添加通讯录界面图这一函数实现了对字符串赋值的功能1。系统提示通讯录使用者输入相应信息, 沈 阳 大 学课程设计说明书 NO.18然后用scanf函数获取输入数据。每次输入结

21、束后,系统输出询问是否继续添加的信息,然后执行switch语句,如果返回值是“y”,则继续执行addnewcard()函数添加用户,否则返回主菜单。3.2.2输入2显示显示通讯录界面。图10.显示通讯录界面图这一函数实现了对字符串赋值的功能2。系统提示通讯录使用者输入相应信息,然后用scanf函数获取输入数据。,然后执行switch语句,如果返回值是“y”,则继续执行函数显示,否则返回主菜单。3.2.3在主菜单输入3显示删除通讯录界面。图11.选择删除通讯录记录显示图 图12.成功删除通讯录记录显示图 沈 阳 大 学课程设计说明书 NO.19在主菜单界面输入数字“3”,执行deletecard()函数删除用户。当通讯录执行者输入要删除学生的姓名,系统会搜索数据库并将搜索结果输出。然后征求确认。每次删除成功后系统会询问是否继续删除,然后执行相应操作。删除后,通讯录里的显示记录显示:图13.删除后通讯录显示记录图删除通讯录记录时首先选择出名字,其次在显示删除后程序才真正的删除,再进入显示界面就不会再显示原来所谓信息 沈 阳 大 学课程设计说明书 NO.203.2.4在主菜单输入4显示查询通讯录界面。图13.查询通讯录记录界面图这一函数提示通讯录管理人员可以有姓名、电话、地址三种输入方式,调用scanf函数获取输入信息,然后执行if语句,则会显示查询用户信

温馨提示

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

评论

0/150

提交评论