c语言课程设计.docx

上传人:b****0 文档编号:12841592 上传时间:2023-04-22 格式:DOCX 页数:19 大小:162.96KB
下载 相关 举报
c语言课程设计.docx_第1页
第1页 / 共19页
c语言课程设计.docx_第2页
第2页 / 共19页
c语言课程设计.docx_第3页
第3页 / 共19页
c语言课程设计.docx_第4页
第4页 / 共19页
c语言课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

c语言课程设计.docx

《c语言课程设计.docx》由会员分享,可在线阅读,更多相关《c语言课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

c语言课程设计.docx

c语言课程设计

课程设计(论文)

 

题目名称学生籍贯信息记录薄设计

课程名称C语言程序课程设计

学生姓名

学号

系、专业信息工程系、电子2班

指导教师邓波

 

2012年5月28日

邵阳学院课程设计(论文)任务书

年级专业

2011级电子科学与技术

学生姓名

学号

题目名称

学生籍贯信息记录薄设计

设计时间

2012.5.20-6.2

课程名称

C语言程序课程设计

课程编号

131301301

设计地点

计算机中心

一、课程设计(论文)目的

学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。

通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。

二、已知技术参数和条件

本学期已经学习了《C语言程序设计》课程中的所有内容,具备了一些程序设计的基础知

识和初步技能,再加上设计过程中可上网查阅资料,以及学校机房提供软件开发环境,具备了课程设计条件。

条件:

已经学习C语言的文件输入输出操作,结构体、数组等复合数据等相关技术。

三、任务和要求

编制一个学生籍贯信息记录簿,每个学生信息包括:

学号、姓名、籍贯。

具体功能:

(1)创建信息链表并以磁盘文件保存;

(2)读取磁盘文件并显示输出所有学生的籍贯信息;

(3)按学号或姓名查询其籍贯;

(4)按籍贯查询并输出该籍贯的所有学生;

(5)能添加、删除和修改学生的籍贯信息(可选项); 

注:

1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;

2.此表1式3份,学生、指导教师、教研室各1份。

四、参考资料和现有基础条件(包括实验室、主要仪器设备等)

参考资料:

[1]黄同成.程序设计基础教程(c语言)湖南人民出版社

基础条件:

本系有足够的计算机供学生上机用,每人一台计算机

五、进度安排

2012.5.13-2012.5.16:

指导教师拟定课程设计课题

2012.5.17-2012.5.20:

选题,下发任务书,学生搜集相关参考资料

2012.5.21-2012.5.27:

编程

2012.5.28-2012.6.2:

撰写课程设计报告

2012.6.4-2012.6.6:

指导教师批阅课程设计报告,评定学生成绩

六、教研室审批意见

 

教研室主任(签字):

年月日

七、主管教学主任意见

 

主管主任(签字):

年月日

八、备注

 

指导教师(签字):

学生(签字):

目录

1前言5

2需求分析5

2.1课程设计目的5

2.2课程设计任务5

2.3设计环境5

2.4开发语言5

3分析和设计6

3.1系统流程图6

4具体代码实现6

5课程设计总结13

5.1程序运行结果/预期运行结果13

5.2课程设计体会14

参考文献15

致谢15

1前言

任务:

编制一个学生籍贯信息记录薄,每个学生信息包括:

学号,姓名,籍贯。

2需求分析

2.1课程设计目的

学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。

通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。

2.2课程设计任务

(1)创建信息链表并以磁盘文件保存;

(2)读取磁盘文件并显示输出所有学生的籍贯信息;

(3)按学号或姓名查询其籍贯;

(4)按籍贯查询并输出该籍贯的所有学生;

(5)能添加、删除和修改学生的籍贯信息(可选项);

2.3设计环境

(1)WINDOWS2000/2003/XP/7/Vista系统

(2)VisualC++或TC集成开发环境

2.4开发语言

C语言

3分析和设计

3.1系统流程图

4具体代码实现

#include

#include

#include

 

structdate

{

intyear;

intmonth;

intday;

};

 

typedefstructstudent

{

longnum;

charname[20];

structdateshengri;

floatscore[3];

structstudent*next;

}Stu;

 

voidmenu()

{

printf("\n******************学生籍贯信息薄***********************************\n\n");

printf("\n1.新建并录入学生信息\n");

printf("\n2.删除某个学号的学生\n");

printf("\n3.插入新的学生信息\n");

printf("\n4.显示所有的学生信息\n");

printf("\n5.按学号排序\n");

printf("\n6.存储入学生信息\n");

printf("\n7.退出!

\n");

}

 

Stu*createlist()

{

longa;

Stu*head,*cnew,*clast;

Stu*p;

head=(Stu*)malloc(sizeof(Stu));

head->next=NULL;

clast=head;

printf("输入学号:

");

scanf("%ld",&a);

while(a>0)

{

p=head->next;

while(p)

{

if(p->num==a)

{

printf("该学号已经存在,请重新输入学号:

");

gotoloop;

}

p=p->next;

}

cnew=(Stu*)malloc(sizeof(Stu));

cnew->num=a;

printf("输入姓名:

");

scanf("%s",cnew->name);

printf("输入出生日期:

\n");

printf("年:

");

scanf("%d",&(cnew->shengri).year);

printf("月:

");

scanf("%d",&(cnew->shengri).month);

printf("日:

");

scanf("%d",&(cnew->shengri).day);

printf("性别:

");

scanf("%f",&cnew->name[0]);

printf("籍贯:

");

scanf("%f",&cnew->name[1]);

cnew->next=NULL;

clast->next=cnew;

clast=clast->next;

printf("输入学号:

");

loop:

scanf("%ld",&a);

}

returnhead;

}

 

voidinsert(Stu*head,longa)

{

Stu*p,*pf,*inew;

pf=head;

p=head->next;

while(p&&p->num

{

pf=p;

p=p->next;

}

while(p&&p->num==a)

{

printf("您输入的学号已经存在,请重新输入学号:

");

scanf("%ld",&a);

}

inew=(Stu*)malloc(sizeof(Stu));

inew->num=a;

printf("输入姓名:

");

scanf("%s",inew->name);

printf("输入出生日期:

\n");

printf("年:

");

scanf("%d",&(inew->shengri).year);

printf("月:

");

scanf("%d",&(inew->shengri).month);

printf("日:

");

scanf("%d",&(inew->shengri).day);

printf("性别:

");

scanf("%f",&inew->name[0]);

printf("籍贯:

");

scanf("%f",&inew->name[1]);

inew->next=pf->next;

pf->next=inew;

}

 

voidprintlist(Stu*head)

{

Stu*p=head->next;

printf("学号姓名出生日期性别籍贯\n");

if(!

p)printf("学生信息已经为空!

");

while(p!

=NULL)

{

printf("%6ld%6s%4d%2d%2d%4.1f%4.1f%4.1f\n",p->num,p->name,(p->shengri).year,

(p->shengri).month,(p->shengri).day,p->name[0],p->name[1]);

p=p->next;

}

printf("\n");

}

 

voiddel(Stu*head,longn)

{

Stu*pf,*p;

pf=head;

p=head->next;

if(p==NULL)

printf("你还没有输入学生信息,请先输入\n\n");

else

{

while(p&&p->num!

=n)

{

pf=p;

p=p->next;

}

if(p==NULL)

printf("该学生的信息不存在!

\n\n");

else

{

pf->next=p->next;

free(p);

printf("该学生的信息已经被删除!

\n\n");

}

}

}

 

voidsave(Stu*head)

{

FILE*fp;

Stu*p;

p=head->next;

if(p==NULL)

printf("现在没有学生信息,请先输入学生信息\n\n");

else

{

fp=fopen("student.txt","a");

if(!

fp)

printf("文件不存在\n");

else

{

while(p)

{

fprintf(fp,"%6ld%4s%2d%2d%2d%5.2f%5.2f%5.2f",p->num,p->name,(p->shengri).year,

(p->shengri).month,(p->shengri).day,p->name[0],p->name[1]);

p=p->next;

}

printf("已经存储到student.txt中\n\n\n\n\n");

}

fclose(fp);

}

}

 

voidsort(Stu*head)

{

Stu*thead,*q,*p,*pf;

thead=head->next;

head->next=NULL;

while(thead)

{

q=thead;

thead=thead->next;

pf=head;

p=head->next;

while(p&&q->num>p->num)

{

pf=pf->next;

p=p->next;

}

q->next=pf->next;

pf->next=q;

}

}

 

intmain()

{

charxuanze;

Stu*head=NULL;

longintn;

while

(1)

{

menu();

printf("请选择:

");

xuanze=getchar();

system("cls");

switch(xuanze)

{

case'1':

head=createlist();

printlist(head);

printf("\n按回车键返回主菜单");

getchar();

getchar();

system("cls");

break;

 

case'2':

if(head==NULL)printf("请先建立学生信息!

\n\n");

else

{

printf("输入你想删除的学生的学号:

");

scanf("%ld",&n);

del(head,n);

printlist(head);

}

printf("\n按回车键返回主菜单.");

getchar();

getchar();

system("cls");

break;

 

case'3':

if(head==NULL)printf("请先建立学生信息!

\n\n");

else

{

printf("输入你想添加的学生的学号:

\n\n");

scanf("%ld",&n);

insert(head,n);

printlist(head);

}

printf("\n按回车键返回主菜单.");

getchar();

getchar();

system("cls");

break;

 

case'4':

if(head==NULL)printf("请先建立学生信息!

\n\n");

else

printlist(head);

printf("\n按回车键返回主菜单.");

getchar();

getchar();

system("cls");

break;

 

case'5':

if(head==NULL)printf("请先建立学生信息!

\n\n");

else

{

sort(head);

printlist(head);

}

printf("\n按回车键返回主菜单.");

getchar();

getchar();

system("cls");

break;

 

 

 

case'6':

if(head==NULL)printf("请先建立学生信息!

\n\n");

else

save(head);

printf("\n按回车键返回主菜单.");

getchar();

getchar();

system("cls");

break;

 

case'7':

exit(0);

 

default:

printf("\n选择错误,按回车返回主菜单\n");

getchar();

system("cls");

}

}

}

5课程设计总结

一学期就这样结束了,在完成这次课程设计以来,我发现自己存在太多的不足。

发现自己知道的好像很不足够。

对于本次课程,虽然程序已经写出来了,但是还是需要查阅资料和老师的帮组。

因此自己需要对这门课程进行深一步学习,让自己得到更多的了解

5.1程序运行结果/预期运行结果

5.2课程设计体会

通过这次对本论文的设计与制作使我更加深刻的了解C语言这门课程。

这门课程主要是培养学生综合语用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。

作为二十一世纪的大学生来说掌握程序开发技术是十分重要的,也是今后工作必备的一种能力。

回顾这次课程设计,我们依旧感慨颇多,因为在这忙的半个多月里,可以学到很多东西,同时巩固了以前学过的知识,和很多在书本上没有的知识。

做到了从理论到实践,明白了理论知识必须应用到实际制作当中去,才会有更多的收获。

我这次做的是学生籍贯信息记录薄,虽然对我来说是个很大的挑战,但多亏有指导老师的指导才使不至于失败,所以的感谢老师以及我的合作伙伴们。

这一次程序中出现了大量的结构体,指针和链表方面的知识而我在这一块的知识几乎是一片空白。

同样也是通过这次的课程设计是我进一步的去学习了这方面所缺少的知识。

同时在做出这个程序是也出现了不少的问题,但是经过一系列的反复修改后还是做出来了,虽然做出来了,但是也有不完美的地方比如流程图,函数体等都存在一些问题。

所以经过这次的学习是我认识到自己的不足,我相信有过这一次的经历过后我们一定会更加努力的学习c语言这门课程的。

学好c语言希望以后能够对社会有一定的贡献。

参考文献

参考资料:

[1]黄同成.程序设计基础教程(c语言)湖南人民出版社

致谢

首先得感谢邵阳学院为我们提供的这一次有实际意义的机会。

过这次的学习使我们又学到了很多书本上没有的东西,加强了我们自己动手的能。

同样要感谢的还有负责这次课程设计的指导老师们,没有他们的认真负责的指导,我们的任务可能会举步维艰,正是有了老师的及时指导我们才能顺利的完成这次的任务。

一样要感谢的是这次我的合作伙伴们,没有他们的坚持与负责我们同样难以完成一次的课题设计。

所以我得再一次真挚的感谢他们,应为有了上面学校,老师,同学的帮助我才能完成这次课程设。

在此感谢所有帮助过我们的人。

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

当前位置:首页 > 高中教育 > 语文

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

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