C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx

上传人:b****6 文档编号:21319350 上传时间:2023-01-29 格式:DOCX 页数:21 大小:495.22KB
下载 相关 举报
C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx_第1页
第1页 / 共21页
C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx_第2页
第2页 / 共21页
C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx_第3页
第3页 / 共21页
C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx_第4页
第4页 / 共21页
C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx

《C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告学生通讯录管理系统设计Word文档下载推荐.docx

调试程序,运行程序,再次将程序修改;

1月3日至1月5日:

完善程序,仔细填写课程设计报告,再次认真阅读程序并熟悉程序,为验收做最后的准备。

设计过程、步骤(可加页):

整个程序主要使用了结构体类型,结构体类型充当了整个程序的骨架,将各个程序段有机巧妙的结合在一起。

例如:

structstudent//声明一个结构体类型structstudent

{

longnum;

//学号

charname[20];

//姓名

intbanji;

//班级

chartel[11];

//号码

charEmail[20];

//邮箱

intsushe;

//宿舍

structstudent*next;

//next是指针变量,指向结构体变量

};

整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个程序中,一共用了9个函数,分别是:

主菜单函数voidmenu(void);

输入函数structstudent*shuru(void);

输出单个学生信息函数voidshuchu(structstudent*s);

输出所有学生信息函数voidfindall();

按姓名查找函数voidfindname();

按学号查找函数voidfindnum();

删除函数structstudent*stushanchu(structstudent*stu);

排序函数voidpaixu();

主函数voidmain(),

这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。

下面是摘自源程序的主函数:

voidmain()/*主函数*/

chara;

menu();

puts("

\n您为首次使用本系统,建议您按1开始录入学生信息,"

);

a=getche();

while(a){

"

switch(a)

case'

0'

:

gotoend;

break;

case'

1'

\n好了,您可以开始向本系统录入学生通讯录信息了:

stu=shuru();

system("

cls"

\n学生信息录入完毕,请输入你的选择(0~6):

\n"

break;

2'

findall();

puts("

\n请输入你的选择(0~6):

3'

findname();

4'

findnum();

5'

stu=shanchu(stu);

6'

paixu();

default:

输错了!

按数字1键录入学生信息吧!

}

end:

;

谢谢您使用本系统,欢迎再次使用!

}

结果与分析(可以加页):

主界面:

按1录入学生通讯录信息:

按2查看所有学生信息:

按3按姓名查找学生信息:

按4按学号查找学生信息:

按5删除学生信息:

删除后:

按6将通讯录信息排序:

按0退出:

程序已实现对学生信息的录入、按姓名查询、按学号查询和删减,唯一的不足之处是没能实现对学生信息的修改。

设计体会与建议:

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在是生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。

具体的各个函数是参照课本上《链表》那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,例如在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的。

回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温顾。

在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。

在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。

在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。

没有了柳暗花明的一天,那么我怎么能说经受住了考验?

谢谢老师的那句话,她说:

人力有所不能及,然而,人的精神是不会败倒的。

我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。

不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。

我们的课程设计结束了,但是它留给我的印象是不可磨灭的。

无论我以后会不会涉及到C语言程序编译的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多。

附录:

#include<

stdio.h>

string.h>

malloc.h>

stdlib.h>

conio.h>

#defineNULL0

structstudent{

longnum;

charname[20];

intbanji;

chartel[11];

charEmail[20];

intsushe;

structstudent*next;

};

structstudent*stu;

intn;

voidmenu(void){/*主菜单函数*/

system("

****************************************************************************"

**^_^学生通讯录管理系统^_^**"

************"

*****1=录入学生通讯录信息*****"

****2=列出所有学生通讯录****"

***3=按姓名查询信息***"

**4=按学号查询信息**"

*5=删除学生信息*"

**6=按学号将通讯录排序**"

*****0=退出***"

**********"

************"

**************"

structstudent*shuru(void)/*输入函数*/

{

structstudent*s1,*s2;

n=1;

intnum;

请输入学生个数(提示:

个数不能输入0!

):

scanf("

%d"

&

num);

s1=s2=(structstudent*)malloc(sizeof(structstudent));

*************************************************"

请输入学号:

%ld"

s1->

请输入学生姓名:

%s"

s1->

name);

请输入班级:

banji);

请输入电话号码:

tel);

请输入电子邮件:

Email);

请输入学生宿舍号:

sushe);

stu=s1;

while(n<

num)

s2->

next=s1;

s2=s1;

s1=(structstudent*)malloc(sizeof(structstudent));

n=n+1;

next=NULL;

return(stu);

//system("

voidshuchu(structstudent*s){/*输出单个学生信息*/

printf("

*%-8ld"

s->

%-15s"

%-8d"

%-5d*\n"

voidfindall()/*输出所有学生信息*/

{

structstudent*s;

//if(n=2)

//printf("

\n现在有%d个学生信息,分别是:

n);

//else

________________________________________________________________________"

*学号姓名班级电话电子邮件宿舍*"

s=stu;

while(s!

=NULL)

shuchu(s);

s=s->

next;

返回主菜单请按【9】"

if(getche()=='

9'

)menu();

voidfindname(){/*按姓名查找函数*/

\n请输入你要查询的学生姓名:

name);

while(strcmp(s->

name,name)!

=0)

s=s->

if(s==NULL)

查无此学生姓名!

gotoend;

else

该学生的信息为:

end:

voidfindnum()/*按学号查找函数*/

请输入你要查询的学生学号:

longi;

i);

while(s->

num!

=i)

{puts("

查无此学生学号!

else

shuchu(s);

structstudent*shanchu(structstudent*stu)/*删除函数*/

chars;

if(stu==NULL)

没有任何学生信息。

请输入你要删除的学生学号:

s1=stu;

警告:

你确定要删除这个学生的信息吗(Y/N)?

s);

if((s=='

Y'

)||(s=='

y'

))

while((num!

=s1->

num)&

&

(s1->

next!

=NULL))

{s2=s1;

s1=s1->

if(num==s1->

{puts("

shuchu(s1);

if(s1==stu)

stu=s1->

else

s2->

next=s1->

注意哟,该学生的信息已经删除了!

剩下的学生通讯录信息如下:

n=n-1;

voidpaixu(){/*排序函数*/

structstudent*p,*p1,*p2;

inti,j;

inttemp;

charb[20];

if(stu==NULL)

{printf("

\n学生信息不存在\n"

for(i=0;

i<

n-1;

i++)

{p1=stu;

for(j=0;

j<

j++)

p2=p1->

if(p1->

num>

p2->

{temp=p1->

num;

p1->

num=p2->

num=temp;

strcpy(b,p1->

strcpy(p1->

name,p2->

strcpy(p2->

name,b);

temp=p1->

banji;

banji=p2->

banji=temp;

tel,p2->

tel,b);

strcpy(b,p1->

Email,p2->

Email,b);

temp=p1->

sushe;

sushe=p2->

sushe=temp;

}

p1=p1->

p=stu;

已按学生学号顺序排序完毕!

重新排序如下:

while(p!

p->

p=p->

if(getche()=='

voidmain()/*主函数*/

chara;

menu();

a=getche();

while(a){

{case'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1