C语言课程设计报告学生电话薄管理系统设计说明_第1页
C语言课程设计报告学生电话薄管理系统设计说明_第2页
C语言课程设计报告学生电话薄管理系统设计说明_第3页
C语言课程设计报告学生电话薄管理系统设计说明_第4页
C语言课程设计报告学生电话薄管理系统设计说明_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

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

文档简介

1、 课程设计报告(本科)课程:高级语言程序设计学号:1310411031:钱军班级:2013级计算机科学与技术教师:凤时间:2014年1月计算机科学与技术系17 / 18设计名称:学生通讯录管理系统设计设计容、目的与要求:设计容:设计一个学生通讯录,学生通讯录数据信息构成容可自行设计(如:、家庭地址、邮政编码、等等),通讯录数据类型定义为结构类型。目的与要求: 设计学生通讯录1.主要功能:(1)能建立、修改和增减学生通讯录 (2)能够多种方式进行查询2.要求:界面友好,易于操作,采用文件存储数据。计划与进度安排:12月20日至12月22日:研究题目的要求与所给条件,综合分析实验应该达到的目标,探

2、讨实验需要使用的方法和解决此问题的实际情况,图书馆查阅相关资料,综合比较;12月23日至12月25日:设计解题的方法和具体步骤,并进行分步思考,利用主菜单函数menu()将程序模块化,在进行各个模块的设计和制作方案,绘制实验的流程图,再将各个模块综合,将各个函数运用于主函数中,绘制主函数的流程图,综合运用所有的函数;12月26日至12月31日:查阅书籍,仔细研究书本上的例题,再结合网络资料,结合各方面所得的资料,编写程序,仔细修改程序;1月1日至1月2日:调试程序,运行程序,再次将程序修改;1月3日至1月5日:完善程序,仔细填写课程设计报告,再次认真阅读程序并熟悉程序,为验收做最后的准备。设计

3、过程、步骤(可加页):整个程序主要使用了结构体类型,结构体类型充当了整个程序的骨架,将各个程序段有机巧妙的结合在一起。例如: struct student /声明一个结构体类型 struct student long num; /学号 char name20; / int banji; /班级 char tel11; / char Email20; / int sushe; / 宿舍 struct student *next; / next是指针变量,指向结构体变量 ;整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在

4、我写的这个程序中,一共用了9个函数,分别是:主菜单函数 void menu(void);输入函数 struct student *shuru(void);输出单个学生信息函数 void shuchu(struct student *s);输出所有学生信息函数 void findall();按查找函数 void findname();按学号查找函数 void findnum();删除函数 struct student *stushanchu(struct student *stu);排序函数 void paixu();主函数 void main(),这样在整个程序的设计过程中也就一目了然,写起来

5、也相对轻松了不少。下面是摘自源程序的主函数: void main() /*主函数*/ char a; menu(); puts("n您为首次使用本系统,建议您按1开始录入学生信息,"); a=getche(); while(a) puts(""); switch(a) case'0':goto end;break; case '1': puts("n好了,您可以开始向本系统录入学生通讯录信息了:"); stu=shuru(); system("cls"); menu(); puts(

6、"n学生信息录入完毕,请输入你的选择(06):n"); break; case '2':findall();puts("n请输入你的选择(06):"); break; case '3':findname();puts("n请输入你的选择(06):"); break; case '4':findnum();puts("n请输入你的选择(06):"); break; case '5':stu=shanchu(stu);puts("n请输入你的选择

7、(06):"); break; case '6':paixu();puts("n请输入你的选择(06):"); break; default:puts("输错了!按数字1键录入学生信息吧!"); break; a=getche(); end:; puts("您使用本系统,欢迎再次使用!");结果与分析(可以加页): 主界面:按1录入学生通讯录信息:按2查看所有学生信息:按3按查找学生信息:按4按学号查找学生信息:按5删除学生信息:删除后:按6将通讯录信息排序:按0退出: 程序已实现对学生信息的录入、按查询、按

8、学号查询和删减,唯一的不足之处是没能实现对学生信息的修改。设计体会与建议: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。具体的各个函数是参照课本上链表那一章的容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,例如在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到

9、实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温顾。在课程设计过程中,我

10、学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?老师的那句话,她说:人力有所不能与,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不

11、说这是精神的胜利,是永不言败的精神让我的程序重见天日。我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉与到C语言程序编译的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感课程设计,它的确教会我很多。附录:#include<stdio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#include<conio.h>#define NULL 0struct studentlong nu

12、m;char name20;int banji;char tel11;char Email20;int sushe;struct student *next;struct student *stu;int n;void menu(void) /*主菜单函数*/system("cls");puts("*");puts("* _学生通讯录管理系统_ *");puts("*");puts("* *");puts("* 1=录入学生通讯录信息 *");puts("* 2=列

13、出所有学生通讯录 *");puts("* 3=按查询信息 *");puts("* 4=按学号查询信息 *");puts("* 5=删除学生信息 *");puts("* 6=按学号将通讯录排序 *");puts("* 0=退出 *");puts("* *");puts("* *");puts("* *");puts("*");struct student *shuru(void) /*输入函数*/system

14、("cls");struct student *s1,*s2;n=1;int num;puts("请输入学生个数(提示:个数不能输入0!):");scanf("%d",&num);s1=s2=(struct student *)malloc(sizeof(struct student);puts("*");puts("请输入学号:");scanf("%ld",&s1->num);puts("请输入学生:");scanf("%

15、s",s1->name);puts("请输入班级:");scanf("%d",&s1->banji);puts("请输入:");scanf("%s",s1->tel);puts("请输入电子:");scanf("%s",s1->Email);puts("请输入学生宿舍号:");scanf("%d",&s1->sushe);stu=s1;while(n<num)s2->n

16、ext=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student);puts("*");puts("请输入学号:");scanf("%ld",&s1->num);puts("请输入学生:");scanf("%s",s1->name);puts("请输入班级:");scanf("%d",&s1->banji);puts("请输入:");scanf

17、("%s",s1->tel);puts("请输入电子:");scanf("%s",s1->Email);puts("请输入学生宿舍号:");scanf("%d",&s1->sushe);n=n+1;puts("*");s2->next=s1;s2=s1;s2->next=NULL;return(stu);/system("cls");void shuchu(struct student *s) /*输出单个学生信息*/

18、printf("* %-8ld",s->num);printf("%-15s",s->name);printf("%-8d",s->banji);printf("%-15s",s->tel);printf("%-15s",s->Email);printf("%-5d *n",s->sushe);void findall() /*输出所有学生信息*/ system("cls");struct student *s;/if(

19、n=2)/printf("n现在有%d个学生信息,分别是:n",n);/elseprintf("n现在有%d个学生信息,分别是:n",n);puts("_");puts("* 学号 班级 电子 宿舍 *");s=stu;while(s!=NULL) shuchu(s); s=s->next;puts("_");puts("返回主菜单请按9");if(getche()='9') menu();void findname() /*按查找函数*/system(

20、"cls");struct student *s;char name20;printf("n请输入你要查询的学生:n");scanf("%s",name);s=stu;while(strcmp(s->name,name)!=0)s=s->next;if(s=NULL)puts("查无此学生!");goto end;elseputs("该学生的信息为:"); puts("* 学号 班级 电子 宿舍 *");shuchu(s);end:;puts("返回主菜

21、单请按9");if(getche()='9') menu();void findnum() /*按学号查找函数*/system("cls");struct student *s;puts("请输入你要查询的学生学号:");long i;scanf("%ld",&i);s=stu;while(s->num!=i)s=s->next;if(s=NULL)puts("查无此学生学号!");goto end;elseputs("该学生的信息为:");puts

22、("* 学号 班级 电子 宿舍 *");shuchu(s);end:;puts("返回主菜单请按9");if(getche()='9') menu();struct student *shanchu(struct student*stu) /*删除函数*/system("cls");long num;char s;struct student *s1,*s2;if(stu=NULL)puts("没有任何学生信息。");goto end;puts("请输入你要删除的学生学号:");

23、scanf("%ld",&num);s1=stu;puts("警告:你确定要删除这个学生的信息吗(Y/N)?");scanf("%s",&s);if(s='Y')|(s='y') while(num!=s1->num)&&(s1->next!=NULL) s2=s1;s1=s1->next; if(num=s1->num) puts("该学生的信息为:"); puts("* 学号 班级 电子 宿舍 *");

24、shuchu(s1);if(s1=stu) stu=s1->next; else s2->next=s1->next; puts("注意哟,该学生的信息已经删除了!剩下的学生通讯录信息如下:"); n=n-1; findall();return(stu);end:;puts("返回主菜单请按9");if(getche()='9') menu();void paixu() /*排序函数*/struct student *p, *p1,*p2;int i,j;int temp; char b20; if(stu=NULL)

25、printf("n学生信息不存在n"); goto end; for(i=0;i<n-1;i+) p1=stu; for(j=0;j<n-1;j+) p2=p1->next; if(p1->num>p2->num) temp=p1->num;p1->num=p2->num;p2->num=temp; strcpy(b,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,b); temp=p1->banji;p1->banji=p

26、2->banji;p2->banji=temp; strcpy(b,p1->tel);strcpy(p1->tel,p2->tel);strcpy(p2->tel,b); strcpy(b,p1->Email);strcpy(p1->Email,p2->Email);strcpy(p2->Email,b); temp=p1->sushe;p1->sushe=p2->sushe;p2->sushe=temp; p1=p1->next; p=stu; puts("已按学生学号顺序排序完毕!重新排序如下:"); puts("*"); puts("* 学号 班级 电子 宿舍 *");while(p!=NULL)printf("* %-8ld",p->num);printf("%-15s",p->name);printf("%-8d",p->banji);printf("%-15s",p->tel);printf("%-15s&quo

温馨提示

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

评论

0/150

提交评论