C语言课程设计报告(学生通讯录管理系统设计)

樱树抽芽 范文 报告范文
精选回答

C语言课程设计报告(学生通讯录管理系统设计)本文简介:课程设计报告(本科)课程:高级语言程序设计学号:1310411031姓名:秦钱军班级:2013级计算机科学与技术教师:冯凤时间:2014年1月计算机科学与技术系设计名称:学生通讯录管理系统设计设计内容、目的与要求:设计内容:设计一个学生通讯录,学生通讯录数据信息构成内容可自行设计(如:姓名、家庭地址

C语言课程设计报告(学生通讯录管理系统设计)本文内容:

课程设计报告

(本科)

课程:

高级语言程序设计

学号:

1310411031

姓名:

秦钱军

班级:

2013级计算机科学与技术

教师:

冯凤

时间:

2014年1月

计算机科学与技术系

设计名称:

学生通讯录管理系统设计

设计内容、目的与要求:

设计内容:设计一个学生通讯录,学生通讯录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通讯录数据类型定义为结构类型。

目的与要求:

设计学生通讯录

1.主要功能:(1)能建立、修改和增减学生通讯录

(2)能够多种方式进行查询

2.要求:界面友好,易于操作,采用文件存储数据。

计划与进度安排:

12月20日至12月22日:研究题目的要求及所给条件,综合分析实验应该达到的目标,探讨实验需要使用的方法和解决此问题的实际情况,图书馆查阅相关资料,综合比较;

12月23日至12月25日:设计解题的方法和具体步骤,并进行分步思考,利用主菜单函数menu()将程序模块化,在进行各个模块的设计和制作方案,绘制实验的流程图,再将各个模块综合,将各个函数运用于主函数中,绘制主函数的流程图,综合运用所有的函数;

12月26日至12月31日:查阅书籍,仔细研究书本上的例题,再结合网络资料,结合各方面所得的资料,编写程序,仔细修改程序;

1月1日至1月2日:调试程序,运行程序,再次将程序修改;

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

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

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

struct

student

//声明一个结构体类型

struct

student

{

long

num;

//学号

char

name[20];

//姓名

int

banji;

//班级

char

tel[11];

//号码

char

Email[20];

//邮箱

int

sushe;

//

宿舍

struct

studentnext;

//

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

};

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

主菜单函数

void

menu(void);

输入函数

struct

studentshuru(void);

输出单个学生信息函数

void

shuchu(struct

students);

输出所有学生信息函数

void

findall();

按姓名查找函数

void

findname();

按学号查找函数

void

findnum();

删除函数

struct

studentstushanchu(struct

studentstu);

排序函数

void

paixu();

主函数

void

main(),

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

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

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(“\n学生信息录入完毕,请输入你的选择(0~6):\n“);

break;

case

2

:findall();puts(“\n请输入你的选择(0~6):“);

break;

case

3

:findname();puts(“\n请输入你的选择(0~6):“);

break;

case

4

:findnum();puts(“\n请输入你的选择(0~6):“);

break;

case

5

:stu=shanchu(stu);puts(“\n请输入你的选择(0~6):“);

break;

case

6

:paixu();puts(“\n请输入你的选择(0~6):“);

break;

default:puts(“输错了!按数字1键录入学生信息吧!“);

break;

}

a=getche();

}

end:;

puts(“谢谢您使用本系统,欢迎再次使用!“);

}

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

主界面:

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

按2查看所有学生信息:

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

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

按5删除学生信息:

删除后:

按6将通讯录信息排序:

按0退出:

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

设计体会与建议:

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

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

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

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

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

附录:

#include

#include

#include

#include

#include

#define

NULL

0

struct

student{

long

num;

char

name[20];

int

banji;

char

tel[11];

char

Email[20];

int

sushe;

struct

studentnext;

};

struct

studentstu;

int

n;

void

menu(void){

/*主菜单函数*/

system(“cls“);

puts(“****************************************************************************“);

puts(“**

^_^学生通讯录管理系统^_^*“);

puts(“****************************************************************************“);

puts(“***********“);

puts(“*****

1=录入学生通讯录信息****“);

puts(“****

2=列出所有学生通讯录***“);

puts(“***

3=按姓名查询信息**“);

puts(“**

4=按学号查询信息*“);

puts(“*

5=删除学生信息“);

puts(“**

6=按学号将通讯录排序*“);

puts(“*****

0=退出**“);

puts(“*********“);

puts(“***********“);

puts(“*************“);

puts(“****************************************************************************“);

}

struct

studentshuru(void)

/*输入函数*/

{

system(“cls“);

struct

students1,*s2;

n=1;

int

num;

puts(“请输入学生个数(提示:个数不能输入0!):“);

scanf(“%d“,s1=s2=(struct

student)malloc(sizeof(struct

student));

puts(“*************************************************“);

puts(“请输入学号:“);

scanf(“%ld“,puts(“请输入学生姓名:“);

scanf(“%s“,s1->name);

puts(“请输入班级:“);

scanf(“%d“,puts(“请输入电话号码:“);

scanf(“%s“,s1->tel);

puts(“请输入电子邮件:“);

scanf(“%s“,s1->Email);

puts(“请输入学生宿舍号:“);

scanf(“%d“,stu=s1;

while(nnext=s1;

s2=s1;

s1=(struct

student)malloc(sizeof(struct

student));

puts(“*************************************************“);

puts(“请输入学号:“);

scanf(“%ld“,puts(“请输入学生姓名:“);

scanf(“%s“,s1->name);

puts(“请输入班级:“);

scanf(“%d“,puts(“请输入电话号码:“);

scanf(“%s“,s1->tel);

puts(“请输入电子邮件:“);

scanf(“%s“,s1->Email);

puts(“请输入学生宿舍号:“);

scanf(“%d“,n=n+1;

}

puts(“*************************************************“);

s2->next=s1;

s2=s1;

s2->next=NULL;

return(stu);

//system(“cls“);

}

void

shuchu(struct

students){

/*输出单个学生信息*/

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

students;

//if(n=2)

//printf(“\n现在有%d个学生信息,分别是:\n“,n);

//else

printf(“\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(“cls“);

struct

students;

char

name[20];

printf(“\n请输入你要查询的学生姓名:\n“);

scanf(“%s“,name);

s=stu;

while(strcmp(s->name,name)!=0)

{

s=s->next;

}

if(s==NULL)

{

puts(“查无此学生姓名!“);

goto

end;

}

else

{

puts(“该学生的信息为:“);

puts(“*

学号

姓名

班级

电话

电子邮件

宿舍“);

shuchu(s);

}

end:;

puts(“返回主菜单请按【9】“);

if(getche()==

9

)

menu();

}

void

findnum()

/*按学号查找函数*/

{

system(“cls“);

struct

students;

puts(“请输入你要查询的学生学号:“);

long

i;

scanf(“%ld“,s=stu;

while(s->num!=i)

{

s=s->next;

}

if(s==NULL)

{puts(“查无此学生学号!“);goto

end;}

else

{

puts(“该学生的信息为:“);

puts(“*

学号

姓名

班级

电话

电子邮件

宿舍“);

shuchu(s);

}

end:;

puts(“返回主菜单请按【9】“);

if(getche()==

9

)

menu();

}

struct

studentshanchu(struct

student*stu)

/*删除函数*/

{

system(“cls“);

long

num;

char

s;

struct

students1,*s2;

if(stu==NULL)

{

puts(“没有任何学生信息。“);

goto

end;

}

puts(“请输入你要删除的学生学号:“);

scanf(“%ld“,s1=stu;

puts(“警告:你确定要删除这个学生的信息吗(Y/N)?“);

scanf(“%s“,if((s==

Y

)||(s==

y

))

{

while((num!=s1->num)s1=s1->next;}

if(num==s1->num)

{

puts(“该学生的信息为:“);

puts(“*

学号

姓名

班级

电话

电子邮件

宿舍“);

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

studentp,*p1,*p2;

int

i,j;

int

temp;

char

b[20];

if(stu==NULL)

{printf(“\n学生信息不存在\n“);

goto

end;

}

for(i=0;inext;

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=p2->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“,p->Email);

printf(“%-5d\n“,p->sushe);

p=p->next;

}

end:;

puts(“返回主菜单请按【9】“);

if(getche()==

9

)

menu();

}

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(“\n学生信息录入完毕,请输入你的选择(0~6):\n“);

break;

case

2

:findall();puts(“\n请输入你的选择(0~6):“);

break;

case

3

:findname();puts(“\n请输入你的选择(0~6):“);

break;

case

4

:findnum();puts(“\n请输入你的选择(0~6):“);

break;

case

5

:stu=shanchu(stu);puts(“\n请输入你的选择(0~6):“);

break;

case

6

:paixu();puts(“\n请输入你的选择(0~6):“);

break;

default:puts(“输错了!按数字1键录入学生信息吧!“);

break;

}

a=getche();

}

end:;

puts(“谢谢您使用本系统,欢迎再次使用!“);

}

17

风枫 2022-07-18 21:47:56

相关推荐

适合发朋友圈的唯美说说短语

一、我嫉妒你身边每一个无关紧要的人,他们就那样轻而易举的见到,我朝思暮想的你。二、不要做廉价的自己,不要随意去付出,不要一厢情愿去迎合别人,圈子不同,不必强融!三、凡是离开你的,都不是你的,不管是人还是钱。做一...
展开详情

经典个人签名 最经典的个性签名

人生到老不容易,不能事事都如意。一杯苦酒对月歌,歌不尽离愁,明月清风与谁说,说不出寂寞。快乐不像烦恼那样随时随地的跟随在你的身边。你在飞奔,我在行走!可我,永远不会摔倒。时光不老、我们依旧还在。哥,不寂寞。因为...
展开详情

神兽放假经典语录 神兽放假经典唯美语录

终于放寒假了,各路神兽欢聚一堂,势必闹个天翻地覆。“神兽”归笼!妈妈送孩子返校后哈哈大笑:他不开心我开心开心开心,在家三个月的神兽终于归笼了,期待俩个月后的蜕变!这周日是不是工作日我不知道,但是……我知道家里的...
展开详情

如何更改图片上的文字 这个方法还是很简便的

用美图秀秀就可以更改图片上的文字,具体操作步骤如下:在电脑上下载并打开“美图秀秀”,点击“美化图片”。选择“打开一张图片”,打开需要修改的图片。点击“消除笔”,涂抹需要修改的文字。点击“应用”即可消除文字。打开...
展开详情

打扮自己9大技巧 让你一天都美

妆前乳之前,用纸巾轻压全脸:清洁皮肤后,在涂抹妆前乳之前,用纸巾轻轻压于全脸。肌肤外多余的油脂会容易造成脱妆。切记不要使用吸收力过强的吸油面纸,适度地吸收油脂还是使用纸巾最恰当!别忘了检查容易出油的t字部位和鼻...
展开详情

精选推荐更多>

高考报名教育局周末上班吗

教育局周末不上班,所以高考报名不要选择在周末,在周一至周五去教育局报名即可。学校是高考报名单位,教育局是官方确认单位。应届毕业生在学校报名,不需要到教育局进行确认,其他考生应该在招生办指定的高考报名点报名,之后可去教育局确认是否报名成功。
高等教育自学考试简称自考,是对自学者进行的以学历考试为主的高等教育国家考试,是个人自学、社会助学和国家考试相结合的高等教育形式,是我国社会主义高等教育体系的重要组成部分。中华人民共和国公民,不受性别、年龄、民族、种族和已受教育程度的限制,均可依照国家有关规定参加高等教育自学考试。
根据自考取得学历的不同,自考分为自考专科学历和自考本科学历。关于自考的报考条件没有要求,但是在考取本科毕业证书时,申请毕业的时候一定要出具专科毕业证书。所有科目考试成绩合格后,通过毕业论文答辩、学位英语考核达到规定成绩,符合学位申请条件的,可申请授予成人学士学位,并可继续攻读硕士学位和博士学位。

富饶的西沙群岛第二自然段主要写了什么

《富饶的西沙群岛》的第二自然段主要写西沙群岛一带的海水五光十色、瑰丽无比的特点。原文:西沙群岛一带海水五光十色,瑰丽无比:有深蓝的,淡青的,浅绿的,杏黄的。一块块,一条条,相互交错着。因为海底高低不平,有山崖,有峡谷,海水有深有浅,从海面看,色彩就不同了。
赏析:这篇文章可按总、分、总的记叙顺序分为三段。第一段是全文的总述,写西沙群岛风景优美、物产丰富,是个可爱的地方。第二段是分述,按照由上到下、由近及远的顺序从海面、海底、海滩和岛上四方面描述,具体写出西沙群岛的美丽富饶。第三段是总结,写守卫在岛上的英雄儿女必将使西沙群岛变得更加美丽和富饶。

类比是什么意思

类比是将两个本质上不同的事物就其共同点进行比较,是通过比喻手法的综合运用帮助说明道理或描述某种复杂情况。在文学中,类比属于比喻范畴,与明喻、隐喻紧密相连,但又同中存异。
类比的作用是借助类似的事物的特征刻画突出本体事物特征,更浅显形象地加深本体事物理解,或加强作者的某种感情,烘托气氛,引起读者的联想。
类比的逻辑推理能引起读者丰富的想象和强烈共鸣。
在文学中,类比属于比喻范畴,与明喻、隐喻紧密相连,但又同中存异。类比是扩展式的比喻,所涉及的两事物间的相似点往往非止一端,各各对应,形成逻辑推理的前提。

诚信的名言10条

诚信的名言有:
1、诚实是人生的命脉,是一切价值的根基。——德莱塞
2、诚实是一个人得以保持的最高尚的东西。——乔臾
3、若有人兮天一方,忠为衣兮信为裳。——卢照龄
4、言必诚信,行必忠正。——孔子
5、没有诚信,何来尊严。——西塞罗
6、没有诚实何来尊严。——西塞罗
7、当信用消失的时候,肉体就没有生命。——大仲马
8、失足,你可能马上复站立,失信,你也许永难挽回。——富兰克林
9、信用就像一面镜子,只要有了裂缝就不能像原来那样连成一片。——阿米尔
10、信用既是无形的力量,也是无形的财富。——松下幸之助
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200