c语言课程设计.docx
《c语言课程设计.docx》由会员分享,可在线阅读,更多相关《c语言课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
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课程设计任务
2.3设计环境
(1)WINDOWS2000/2003/XP/7/Vista系统
(2)VisualC++或TC集成开发环境
2.4开发语言
C语言
3分析和设计
3.1系统流程图
4具体代码实现
#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("输入出生日期:
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;
loop:
returnhead;
voidinsert(Stu*head,longa)
Stu*p,*pf,*inew;
pf=head;
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");elseprintlist(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");elsesave(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语言)湖南人民出版社致谢首先得感谢邵阳学院为我们提供的这一次有实际意义的机会。过这次的学习使我们又学到了很多书本上没有的东西,加强了我们自己动手的能。同样要感谢的还有负责这次课程设计的指导老师们,没有他们的认真负责的指导,我们的任务可能会举步维艰,正是有了老师的及时指导我们才能顺利的完成这次的任务。一样要感谢的是这次我的合作伙伴们,没有他们的坚持与负责我们同样难以完成一次的课题设计。所以我得再一次真挚的感谢他们,应为有了上面学校,老师,同学的帮助我才能完成这次课程设。在此感谢所有帮助过我们的人。
pf=p;
while(p&&p->num==a)
printf("您输入的学号已经存在,请重新输入学号:
inew=(Stu*)malloc(sizeof(Stu));
inew->num=a;
scanf("%s",inew->name);
scanf("%d",&(inew->shengri).year);
scanf("%d",&(inew->shengri).month);
scanf("%d",&(inew->shengri).day);
scanf("%f",&inew->name[0]);
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]);
printf("\n");
voiddel(Stu*head,longn)
Stu*pf,*p;
if(p==NULL)
printf("你还没有输入学生信息,请先输入\n\n");
else
while(p&&p->num!
=n)
printf("该学生的信息不存在!
\n\n");
pf->next=p->next;
free(p);
printf("该学生的信息已经被删除!
voidsave(Stu*head)
FILE*fp;
printf("现在没有学生信息,请先输入学生信息\n\n");
fp=fopen("student.txt","a");
fp)
printf("文件不存在\n");
fprintf(fp,"%6ld%4s%2d%2d%2d%5.2f%5.2f%5.2f",p->num,p->name,(p->shengri).year,
printf("已经存储到student.txt中\n\n\n\n\n");
fclose(fp);
voidsort(Stu*head)
Stu*thead,*q,*p,*pf;
thead=head->next;
while(thead)
q=thead;
thead=thead->next;
while(p&&q->num>p->num)
pf=pf->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();
break;
case'2':
if(head==NULL)printf("请先建立学生信息!
printf("输入你想删除的学生的学号:
scanf("%ld",&n);
del(head,n);
printf("\n按回车键返回主菜单.");
case'3':
printf("输入你想添加的学生的学号:
insert(head,n);
case'4':
case'5':
sort(head);
case'6':
save(head);
case'7':
exit(0);
default:
printf("\n选择错误,按回车返回主菜单\n");
5课程设计总结
一学期就这样结束了,在完成这次课程设计以来,我发现自己存在太多的不足。
发现自己知道的好像很不足够。
对于本次课程,虽然程序已经写出来了,但是还是需要查阅资料和老师的帮组。
因此自己需要对这门课程进行深一步学习,让自己得到更多的了解
5.1程序运行结果/预期运行结果
5.2课程设计体会
通过这次对本论文的设计与制作使我更加深刻的了解C语言这门课程。
这门课程主要是培养学生综合语用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。
作为二十一世纪的大学生来说掌握程序开发技术是十分重要的,也是今后工作必备的一种能力。
回顾这次课程设计,我们依旧感慨颇多,因为在这忙的半个多月里,可以学到很多东西,同时巩固了以前学过的知识,和很多在书本上没有的知识。
做到了从理论到实践,明白了理论知识必须应用到实际制作当中去,才会有更多的收获。
我这次做的是学生籍贯信息记录薄,虽然对我来说是个很大的挑战,但多亏有指导老师的指导才使不至于失败,所以的感谢老师以及我的合作伙伴们。
这一次程序中出现了大量的结构体,指针和链表方面的知识而我在这一块的知识几乎是一片空白。
同样也是通过这次的课程设计是我进一步的去学习了这方面所缺少的知识。
同时在做出这个程序是也出现了不少的问题,但是经过一系列的反复修改后还是做出来了,虽然做出来了,但是也有不完美的地方比如流程图,函数体等都存在一些问题。
所以经过这次的学习是我认识到自己的不足,我相信有过这一次的经历过后我们一定会更加努力的学习c语言这门课程的。
学好c语言希望以后能够对社会有一定的贡献。
参考文献
致谢
首先得感谢邵阳学院为我们提供的这一次有实际意义的机会。
过这次的学习使我们又学到了很多书本上没有的东西,加强了我们自己动手的能。
同样要感谢的还有负责这次课程设计的指导老师们,没有他们的认真负责的指导,我们的任务可能会举步维艰,正是有了老师的及时指导我们才能顺利的完成这次的任务。
一样要感谢的是这次我的合作伙伴们,没有他们的坚持与负责我们同样难以完成一次的课题设计。
所以我得再一次真挚的感谢他们,应为有了上面学校,老师,同学的帮助我才能完成这次课程设。
在此感谢所有帮助过我们的人。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1