数据结构与算法课程设计 学生成绩管理系统.docx
- 文档编号:613818
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:18
- 大小:157.88KB
数据结构与算法课程设计 学生成绩管理系统.docx
《数据结构与算法课程设计 学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构与算法课程设计 学生成绩管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
数据结构与算法课程设计学生成绩管理系统
课程设计说明书
题目:
数据结构与算法课程设计
学院(系):
专业班级:
学号:
学生姓名:
指导教师:
教师职称:
起止时间:
课程设计(论文)任务及评语
院(系):
教研室:
软件工程
学号
学生姓名
专业班级
课程设计(论文)题目
数据结构与算法课程设计
课程设计(论文)任务
1.从十个题目中选择一个题目,,要求每个题目用标准的C语言程序实现,另外,完成思考题一题,思考题须写出相应的类C算法即可。
2.每个题目编写源程序时,要求有主菜单,每个子功能定义为相应的子函数,在主函数中调用各子函数,程序结构清晰。
3.根据题目,选择合适的逻辑结构和存储结构。
4.输入的数据由键盘输入。
5.分析算法的时间复杂度,要求算法的效率尽可能高。
6.验证排序算法的稳定性。
指导教师评语及成绩
成绩:
指导教师签字:
2012年月日
第1章课程设计目的与要求
1.1课程设计目的
本课程设计是计算机科学与技术专业、软件工程专业的专业技术实践课。
本实践课的主要目的是:
使学生学会利用在课堂中学过的理论知识,解决相应的实际问题,深入理解和灵活掌握所学的内容,培养学生理论和实践相结合的能力,培养学生分析问题解决问题的能力。
同时,在实验步骤规范化、程序设计方法等方面受到比较系统和规范的训练。
通过实践设计使学生进一步加深对程序设计的规范化及对复杂程序设计步骤的理解。
通过课程设计,加深对《数据结构》这一课程所学内容的进一步理解与巩固。
通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。
通过课程设计,开发一个中小型系统,掌握系统研发全过程。
通话课程设计,培养分析问题、解决实际问题的能力。
1.2课程设计的实验环境
PC机,WindowsXP,C++。
1.3课程设计的预备知识
C语言程序设计、数据结构。
1.4课程设计要求
(1)认真查找资料,分析每个题目应选择的数据结构(逻辑结构和物理结构);
(2)按时到实验室调试程序,遵守实验室的规章制度,爱护设备;
(3)每个题目编写源程序时,每个子功能定义为相应的子函数,在主函数中调用各子函数,程序结构清晰,有必要的注释,可读性强。
(4)程序健壮性强,当数据输入错误时,要进行相应的处理;
(5)分析算法的时间复杂度,要求算法的效率尽可能高;
(6)对于排序算法,要验证排序算法的稳定性。
第2章课程设计内容
2.1题目的选择
6、学生成绩管理系统
2.2题目的具体实现
(1)题目应实现的具体功能;
录入学生成绩信息并保存;
可查询显示所有学生的个人信息;
可查询显示所有学生的所学课程信息;
按学号或姓名查询成绩信息;
能添加、删除和修改学生的成绩信息;
(2)题目所选择的数据结构及存储结构;
采用线性数据结构及链式存储结构
(3)完整的源程序
#include
#include
#include
structstud
{
longnum;
charname[20];
doublescore1,score2;
};
typedefstructstucode
{
structstudstudent;
structstucode*next;
}L;
voidmenu();
voidcreatelist(structstucode**r);
voidout(structstucode*r);
voidsearch1(structstucode*r);
voidsearch2(structstucode*r);
voiddel(structstucode**r);
voidinsert(structstucode**r);
voidchange(structstucode**r);
voidmain()
{
charchoose;
intflag=1;
structstucode*r=NULL;
while(flag)
{
system("cls");
menu();
choose=getchar();
switch(choose)
{
case'1':
createlist(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'2':
search1(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'3':
search2(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'4':
del(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'5':
insert(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'6':
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'7':
change(&r);
out(r);
printf("Testingfunction1\nPressanykeytocontinue\n");
getchar();
getchar();
break;
case'0':
flag=0;
printf("Theend.\n");
break;
default:
printf("\nWrongSelection!
(选择错误,请重选!
)\n");
getchar();
getchar();
}
}
}
voidcreatelist(structstucode**r)
{
structstucode*p,*t;
longn;
chara[20];
doubles1,s2;
if(*r)*r=NULL;
printf("\n请输入:
\n学号姓名分数1分数2(若要结束请输入四个为零)\n");
scanf("%ld%s%lf%lf",&n,a,&s1,&s2);
if(n==0)return;
p=(L*)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score1=s1;
p->student.score2=s2;
p->next=NULL;
*r=p;
scanf("%ld%s%lf%lf",&n,a,&s1,&s2);
while(n)
{
t=p;
p=(L*)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score1=s1;
p->student.score2=s2;
p->next=NULL;
t->next=p;
scanf("%ld%s%lf%lf",&n,a,&s1,&s2);
}
}
voidsearch1(structstucode*r)
{
longx;structstucode*p=r;
if(!
r)
{
printf("没有学生信息可查询!
\n");
return;
}
printf("请输入要查询的学生信息的学生学号:
\n");
scanf("%ld",&x);
while(p&&p->student.num!
=x)
p=p->next;
if(p==NULL)
printf("Error!
Nosuchstudent!
\n");
else
printf("%ld%s%.2lf%.2lf\n",p->student.num,p->student.name,p->student.score1,p->student.score2);
}
voidsearch2(structstucode*r)
{
charm[20];
if(!
r)
{
printf("没有学生信息可查询!
\n");
return;
}
printf("请输入要查询的学生信息的学生姓名:
\n");
scanf("%s",m);
while(r&&strcmp(r->student.name,m))
r=r->next;
if(r==NULL)
printf("Error!
Nosuchstudent!
\n");
else
printf("%ld%s%.2lf%.2lf\n",r->student.num,r->student.name,r->student.score1,r->student.score2);
}
voiddel(structstucode**r)
{
longk;
structstucode*p=*r,*t;
if(!
(*r))
{
printf("没有学生信息可删除!
\n");
return;
}
printf("请输入要删除的学生信息的学生学号:
\n");
scanf("%ld",&k);
if(p->student.num==k)
*r=(*r)->next,free(p);
else
{
while(p->next&&p->next->student.num!
=k)
p=p->next;
if(p->next==NULL)
printf("Error!
Nosuchstudent!
\n");
else
{
t=p->next;
p->next=p->next->next;
free(t);
}
}
}
voidinsert(structstucode**r)
{
longn;
chara[20];
doubles1,s2;
L*p,*t,*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与算法课程设计 学生成绩管理系统 数据结构 算法 课程设计 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)