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-06-29 17:47:13

相关推荐

真皮和玛莎皮哪个透气

真皮和玛莎皮哪个透气:玛莎皮透气。玛莎皮是真皮,真皮是使用动物的皮制作加工而成的,概念.上相对于人工使用化学纤维材料制成的人造革,市场上所说的真皮一般是头层皮、二层皮、合成皮三种之一,三种皮的价格依次递减。以下...
展开详情

一个人冷落你的句子

一个人冷落你的句子:当一个人开始冷落你的时候是能感受的到的,有的时候我们就不要热脸贴冷屁股了,喜欢你的人自然会喜欢你的,不喜欢你就随便他吧。今天特意为你们准备了关于一个人被冷落的句子。1、选择只有一次,选错了,...
展开详情

大麦怎么转票

1.打开大麦APP,点击右下角“我的”。2.点击“我的订单”,找到需要转让的电子票订单。3.点击该订单右上角的“转让”。4.接受转让的购票者需要确认电子票转让,可以在大麦APP中打开“我的”页面,点击“我的订单...
展开详情

买几楼房子最吉利

买几楼房子最吉利:从风水的角度来说,一般最吉利的数字是,3楼、6楼、8楼、13楼、16楼和18楼,这几层楼寓意比较好,听起来也吉利,也是比较受欢迎的。不过现如今大家购买房子并不会想太多,只会选择合适的楼层。比如...
展开详情

签字笔弄到手上怎么洗掉

签字笔弄到手上怎么洗掉,怎么洗掉的方法如下:1.卸妆油+洗涤剂把卸妆油慢慢涂抹在手上,搓揉2分钟,然后配合洗涤剂在搓揉2分钟,用清水漂洗,经测试污迹稍减,可持续反复多次渐渐消退。缺点:时间长。2.酒精+肥皂给手...
展开详情

精选推荐更多>

实干的名人例子素材

实干的名人例子素材:
1、达尔文小时候的学习成绩远不如他的妹妹,他在老师和父亲的心目中,是一个十分平庸的孩子,甚至还在一般智慧的水准之下。但他以惊人的毅力坚持野外观察活动和室内研究,最终成为举世闻名的生物学家。
2、三国时,曹操率军作战,在行军途中自己的马踏坏了农田里的庄稼。按照军纪当斩,曹操不掩饰自己的过错,当众割发代首,晓谕三军,受到将士尊敬。
3、中国首位诺贝尔生理学和医学奖获得者屠呦呦凭着艰苦奋斗的精神,经过不断地深入研究和实验,她终于提取出对疟原虫抑制率100%的青蒿素。
4、扁鹊是我国的大医学家,扁鹊在青年时期,结识了一位民间良医,就拜良医为师。他刻苦学习,反复钻研、实践,他不仅掌握了老师积累的全部知识,而且有了新的创造和发展,后来他成为良医。
5、马克思是全世界无产阶级革命的伟大导师,为了揭开资本家剥削工人的秘密,他每天坚持到大英博物馆读书,查阅资料,长时间的大量读书,致使他常做的地方水泥面上磨下了两行沟壕。

校次是什么意思

校次,拼音jiào cì,汉语词语,逐一检查。出自《周礼·天官·宫正》:“以时比宫中之官府次舍之众寡。”汉代郑玄注:“比,校次其人之在否。”
造句:
1、这篇稿子是他负责校次。
2、古卷在旧约全书的基础上彻底做了校次。
3、毕竟,作为经理,你的职责是让别人成长,因此,如果让别人成天到晚地做复印、校次的活,那么你就没有尽职。
4、但是,美玉微瑕,仔细研读,仍能发现其中校勘上的不足,而这些不足多是属于校次的技术性错误。

元朝使用什么样的制度管理中国

元朝(1271年—1368年),是中国历史上首次由少数民族建立的大一统王朝,统治者为蒙古孛儿只斤氏。传五世十一帝,从1206年成吉思汗建立蒙古政权始为162年,从忽必烈定国号元开始历时98年。元朝退出中原后的北元政权一直持续到1402年。
1206年,成吉思汗统一蒙古各部,建立大蒙古国。先后攻灭西辽、西夏、花剌子模、金朝等政权。蒙哥汗去世后,引发了阿里不哥与忽必烈的汗位之争,促使大蒙古国分裂。1260年忽必烈即位称帝,建元“中统”,定都开平府(上都)。1271年,忽必烈取《易经》“大哉乾元”之意改国号为“大元”,次年定都大都。1279年,结束了自唐末以来长期的混乱局面。之后元朝持续对外扩张,进攻日本、缅甸、越南、爪哇等,但均遭失败。元朝中期皇位继承紊乱,政治始终未上正轨,而且汉化迟滞,发展不前。后期政治腐败,权臣干政,民族矛盾与阶级矛盾日益加剧,导致元末农民起义。1368年,朱元璋建立明朝,随后北伐驱逐元廷攻占大都。此后元廷退居漠北,史称北元。1402年,元臣鬼力赤篡夺政权建立鞑靼,北元灭亡。
元朝时期统一多民族国家进一步巩固,疆域超越历代。元朝废除尚书省和门下省,保留中书省与枢密院、御史台分掌政、军、监察三权,地方实行行省制度,开中国行省制度之先河。

宇宙最大的星球是什么星球?

宇宙最大的星球是红巨星。这颗超级恒星的直径超过太阳的114倍,是一个双星系统的一部分。该恒星的质量为太阳的150倍,专家们支持,这是人类历史上首次观测到如此巨大的恒星系统,此前发现的最大恒星的质量为太阳的83倍。
盾牌座UY位于遥远的盾牌座,半径就比太阳大了2000倍,体积则达到了太阳的50亿倍左右。但是质量只有其12倍而已。据估计,这颗恒星的质量大约只有太阳的10倍,在演化为红特超巨星的过程中急剧膨胀,损失了至少一半的质量。
太阳系中的星球相比较大小,海王星是地球的58倍,天王星是地球的65倍,这么看地球也没有差到哪里去,不算太小。接着和更大的星球相比较,比如土星是地球的830倍,木星是地球的1300倍,数千倍的大小差距,已经可以感受到地球的渺小了。地球在宇宙中可能连一粒尘埃都算不上。但就是这个在宇宙中连一粒尘埃都算不上的地球,却孕育了无数智慧的生命,尤其是孕育了人类这种高智慧的生物,这是很多大星球都比不上的。
常见热点问答
热点搜索
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