学生成绩管理系统源代码.docx
- 文档编号:17453940
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:29
- 大小:110.50KB
学生成绩管理系统源代码.docx
《学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码.docx(29页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统源代码
一、课程设计(论文)题目
学生成绩管理系统
二、本次课程设计(论文)应达到的目的
通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
系统功能基本要求:
1.学生信息维护;
2.教师信息维护;
3.课程信息维护;
4.学生选课信息;
5.任课教师操作课程成绩;
6.学生查询课程成绩。
四、应收集的资料及主要参考文献:
1.数据库:
原理编程与性能(影印版)(第2版),高等教育出版社,
ParickO'Ne订,ElizabethO'Neil编著,2005.7;
2.数据库系统概论(第4版),高等教育出版社,王珊,萨师煩编著,2006.05;
五、审核批准意见
教研室主任(签字)
•这次课设我做的是学生成绩管理系统,本系统依据开发要求
主要针对于教育系统,完成对日常的教育工作对学生成绩档案及其他信息的数字化管理。
开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,使各项管理更加规范化。
现在在各大中小学校,用计算机管理学校的信息已经越來越普遍了。
用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。
提高了学校的管理能力,为此,用计算机來管理学校的信息,是非常必要的。
目前,学校工作繁杂、资料重多,目前还没有一套完整的、统一的系统。
因此,开发一套适和大众的、兼容性好的系统是很有必要的,但由于知识积累及时间关系,这次课设我所设计的系统不是很完善,有些地方没有考虑到,所以实用性大打折扣,后面有时间将会将系统设计的全面些,更具有实用性。
在这次课设的开发过程中,我注意使其符合软件工程的设计的要求,在之前准备了许多时间來设计表结构,并将各个模块的流程画出来,使系统的各个模块功能完善,并力求系统应具有实用性、可靠性和适用性方便用户的操作,尽量减少用户的操作,并且能够对查询结果进行分类汇总,该系统还有许多不尽如人意的地方,比如用户界面不够美观,对于出错处理不够等多方面问题,这些都有待进一步改善。
设计目的1
需求分析6
概要设计7
配置数据源11
详细设计13
设计总结22
参考文献23
C语言程序课程设计一学生成绩管理系统
一.设计目的
通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。
二.问题描述
系统功能基本要求:
1.学生信息维护;
2.教师信息维护;
3.课程信息维护;
4.学生选课信息;
5.任课教师操作课程成绩;
6.
学生查询课程成绩。
“学生成绩管理信息系统”包括四个模块:
成绩录入、班级统计、年级统计、系统功能。
这四个模块既相互联系乂相互独立,班级统计、年级统计模块必须以成绩录入为基础。
(1)成绩录入模块:
主要功能用來对学生的成绩进行收集和修改。
具体包括学生成绩录入、修改、增加、删除、查询等功能,成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。
修改要与成绩录入相对应。
增加、删除是对基本表的操作。
查询条件设置应该齐全,可以班级查询,年级查询,也可以姓需查询,学号查询等等。
(2)班级统计模块:
主要功能用來对学生的成绩以班级为单位进行处理。
具体包括各班学生总成绩、平均成绩、班级排名及统计班级某分数段内的学生人数;各个学生该科成绩、班级排名及统计班级某分数段内的学生人数。
各项统计仅对于某学期某次考试而言。
(3)年级统计模块:
主要功能用來对学生的成绩以年级为单位进行处理。
具体包括各年级学生总成绩、年级排名统计年级某分数段内的学生人数;各个学生该科成绩、年级排名及统计、年级某分数段内的学生人数。
各项统计仅对于某学期某次考试而言,在统计时,还应注意各年级考试科目不同。
(4)系统功能模块:
关于系统及退出系统。
在概要设计里,根据系统需求设计系统EI图,程序流图,系统功能模块图等信息,并配置了数据源。
图1系统EI图
图4查询模块流程图
图5班级与学生成绩流图
(一)、系统的功能分析
该学生成绩管理系统是基于网络在线的学生成绩管理系统,在系统中分为大的两个方面:
一是教师登录页面、二是学生登录页面。
(1)教师进入学生成绩管理系统的主要功能是:
实现添加用户、添加成绩、学籍信息修改、修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等基本功能。
(2)学生进行学生成绩管量系统的主要功能是:
实现修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等基本功能。
(二)、系统功能模块图
图6教师功能模块图
教师在学生成绩管理系统中能够对所有学生的成绩查看,对学生按学号进行精确查询、按学生姓名进行模糊查询,可以修改自己的登录密码,添加用户,添加学生的成绩,打印学生的学籍信息。
图7学生功能模块
学生在系统中的基本功能是对自己所有成绩的查询,课程的查询,个人登录密码的修改,基本信息的查看,选课,打印自己的学籍信息。
七.代码
^include
#iiiclude
#iiiclude
#iiiclude
{
intnum;
chai-naine[10];
charbHthday[10];
intCyuyan;
mtshujujiegou;stmctstudent*next;
};
stmctstudent*creat_by_uiput();
stmctstudent*get_last_student(stmctstudent*head);stmctstudent*PrinCmenu_niain()〃主菜单
pnntf(M
*********************************************************************y).
pnntf(M
|1•…
•…输入学生信息1
\1T);
pnntf(M
•…输出学生信息1
E);
pnntf(M
.…查找学生信息1
E);
pnntf(M
•…修改学生信息1
E);
pnntf(M
.…插入学生信息1
E);
pnntf(M
|6•…
.…删除学生信息1
E);
pnntf(M
•…排序学生信息1
E);
pnntf(M
|0....
....退出系统1
E);
pnntf(M
}
L-
1
\n”);
stmctstudent*prinCtable_head()
pimtf^++++++\n);
prmtf(-|学号|姓名|出生口期|c成绩|数据结构成绩
++++++\n);
}
structstudent*print_table_row(sti-uctstudent*p)
printf(M|%lOd|%10s|%lOs|%10d|%lOdji,\p->num.p->name.p->biilhday?
p->Cyuyan,p->shujuJiegou);
}
voidprint_table_bottom()
{
pimtf^++++++\n);
}
stmctstudent*Creat_stu_record()//建立链表{
stmctstudent*plaststu=NULL,*pnewstu;charcontinue_inpiit=N;
stmctstudent*head=NULL;
xvhile(l)
{
if(head=NULL)
{
head=creat_by_mputQ;prmt_tableJieadQ;pdnt_table_TOW(head);priiiCtable^bottomO;
}
elsepnewstu=creat_by_mput();
prmt_tableJieadQ;
prmt_table_iow(pnewstu);
pimt_table_bottom();
plaststu=get_last_student(head);
plaststu->next=pnewstu;}
pimtfC*是否继续输入学生信息?
(Y继续,N返回菜单)\n”);getcharQ;
contmue_mput=getcharQ;
if(contmue_input==rn,||contmue_input==,N,)
{
system(ncls");
Piiiit_menu_mam();
break;
}
}
returnhead;
}
stmctstudent*creat_by_mput()
{
stmctstudent*pnewstu=(stnictstudent*)malloc(sizeoRstnictstudent));pnmf(”请输入学生信息⑴”);
pnntfC学号:
^;scanf(n%d^&pnewstu->num);
pnntff姓名,);scanfC%s”,pnewstu・>name);
出生年月:
n);scaiif(H%sH,pnewstu->bu-tliday);
pnmf(”请输入学生成绩曲);
pnntffC语言:
”);scanfC%d”,&(pnewstu・>Cyuyan));
数据结构:
H);scanf(H%dH,&(pnewstu->shujujiegou));
pnewstu->next=NULL;
returnpnewstu;
}
stmctstudent*geOast_student(stmctstudent*p)
{
if(p->next=NULL)
returnp;
else
returnget_last_student(p->next);
}
voidPdnt_Stu_Doc(structstudent*head)
stmctstudent*p;charr;
prinCtableJieadQ;if(head==NULL)
printf(”\nNoRecords\nH);
}
fbr(p=head;p;p=p->next)
printf(M|%10d|%10s|%lOs|%10d|%lOd|\n,\p->num.p->name,p->bulhday,p->Cyuyan,p->shuju
Jiegou);
pimtf^++++++\n);}
printf(”(按Enter键返回主菜单)\n”);
getcharQ;
r=getchai();
if(r!
=ll,)
system(MclsH);
Prmt_menu_mam();
else
system(MclsH);Prmt_menu_mam();
stmctstudent*search_by_name(stmctstudent*head)//按姓名查找
charnam亡[10];
stiuctstudent*p=head;
charcontiiiue_input;
/*mtisfbund=0;*/
pmitf(”请输入要查找的姓名:
”);scanfC%s-name);
查找%s\iin4iame);
prinCtableJieadQ;while(p!
=NULL)
if(strcmp(p->namejiame)==O)
pnnt_tabljn)w(p);p=p->next;
/*isfbund=l;*/break;
}
p=p->next;
}
prinCtable.bottomQ;
prmtf(”是否继续查找?
(Y继续;N返回主菜单)\n”);getchaiQ;
contmue_mput=getchai();
if(continue_mput=*n,|contimie_input==N)
{
systeni(Mclsn);
Piint_menu_niam();
}
else
seaich_by_name(head);
stmctstudent*s亡aich_by_id(structstudent*head)//按学号查找{
mtid;
stmctstudent*p=head;
charcontiiiue_input;
/*mtisfbund=0;*/
pnntf(-iW输入要查找的学号「);
scanfC%d”,&id);
pmitf(”查找%dS”,id);
piint_tablejiead();
while(p!
=NULL)
{
num==id)
{
prmt_table_row(p);
p=p->next;
/*isfbund=l;*/
break;
}
p=p->next;
}
prinCtable.bottomQ;
prmtf(”是否继续查找?
(Y继续;N返回主菜单)\n”);getchaiQ;
contmue_mput=getchai();
if(continue_mput=*n,|contimie_input==N){
systeni(Mclsn);Piint_menu_niam();
}
else
seaich_by_id(head);
retuinhead;
}stmctsn]dent*modify-.recoid_by_id(stiiictstudent*head)//按学号•修改{
stmctstudent*p=head;
intid;
charcontiiiue_input;
prmtf(”请输入要修改的学生的学号:
\n”);
scanfC%d”,&id);
while(p!
=NULL)
{
num==id)break;
p=p->next;
}if(p==NULL)
pnmf(”抱歉,没有学号%%d的学生\n-,id);
else
{
pnmf(”请输入学生信息:
\n”);
pirntfC1学号:
H);scanf(n%d\&(p->num));
pnntff姓名:
H);scanf(n%s\&(p->name));
pnntff出生年月J;scanf(”%s役&(p・>biithday));
pnntf(”请输入学生成绩:
\n”);
printffC语言:
”);scanfC%d”,&(p->Cyuyan));printf(”数据结构:
H);scanf(H%d,\&(p->shujiijiegou));pimt_tableJieadQ;prmt_table_iow(p);pimt_table_bottom();}pnntf(”继续修改学生信息吗0Y继续;N返回主菜单\n”);getcharQ;
contmue_mput=getchai();
if(continue_mput=y|continue_mput=rY,)
creat_by_iuput();
else
systeni(MclsH);
Piint_menu_niam();
}returnhead;
stmctsnident*modify-.iecoid_by_naiiie(stnictstudent*head)//按姓名修改{
stmctstudent*p=head;
charnaine[10];
charcontiiiue_input;
pmitf(”请输入要修改的学生的姓名:
\n”);scanf(H%sn4iame);
while(p!
=NULL)
{
if(strcmp(p->name4iame)==0)
break;
p=p->next;
}
if(p==NULL)
pnntf(”抱歉,没有姓名为%s的学生\n",name);
else
{
pnmf(”请输入学生信息:
\n”);
学号:
H);scanf(n%d\&(p->num));
姓名:
H);scanf(n%s\&(p->name));
出生年月J;scanf(”%s役&(p・>birthday));
pnntf(”请输入学生成绩:
\n”);
printffC语言:
”);scanfC%d”,&(p->Cyuyan));
printf(”数据结构:
,);scanf(,,%d,\&(p->shujujiegou));
prmt_tableJieadQ;piiiit_table_iow(p);pimt_table_bottomQ;}pnntf(”继续修改学生信息吗0Y继续;N返回主菜单\n”);getcharQ;
contmue_mput=getchai();
if(continue_mput=y|continue_mput=rY,)creat_by_input();
else
{
systeniC,clsH);
Pnnt_menu_niaiii();
}
returnhead;
}
structstudent*insert_iecord(stmctstudent*head)〃插入
stmctstudent*ptil;
stmctstudent*ptr,*stud;
stmctstudent*pti2=head;
chai-contiiiue_input=,N,;
intid;
prmtf(”请输入一个学号,在此之前插入学生信息:
”);scanfC%d”,&id);
stud=cieat_by_input();
pti-stud;
if(head==NULL)
{
head=pti;head->next=NULL;
}
elseif(headnum=id)
{
ptr->next=head;
head=pti-;
}
else
{
while(ptr2!
=NULL)
{
ptrl=ptr2;
ptr2=ptrl->next;
if(ptr2->num==id)
{
ptrl->next=ptr;
ptr->next=ptr2;
break;
}
}
}
piint_tablejiead();
piint_table_row(ptij;
piint_table_bottomQ;
prmtf(”是否继续插入学生信息?
(Y继续N返回主菜单)\n”);getchaiQ;
contmue_mput=getchai();
if(continue_mput=,y,|continue_mput=,Y,)
returniiisert_iecord(head);
else
systeni(,,clsH);
Piint_menu_niam();retuinhead;
stmctstudent*Delete_iecoid_by_id(stmctstudent*head)//按学号删除
{
stmctstudent*p=head.*ppre=NULL;
mtid;
charcontiiiue_input;
printfC请输入要删除的学号:
”);
scanf(n%d,\&id);
while(p!
=NULL)
{
if(p・>num==id)
break;
p=p->next;
}
if(p==NULL)
pnmf(”抱歉,没有该学号的学生信息!
\n”);
else
{
pruitfC确定要删除学号为%d的学生的信息吗?
(Y确定;N返回主菜单)
\nH,p->num);
getcharQ;
continue_iiiput=getchaiQ;
if(continue_mput=,y,||continue_mput=rY,)
{
ppre=head;
if(ppre==p)
{
head=p->next;
fiee(p);
}
else
{
wlule(ppre!
=NULL)
{
if(ppie->iiext==p)
pprenext=p亡xt;free(p);
break;
}
ppie=ppre>next;
}
}
pnntf("删除成功!
”);
}
//Pimt_menu_maiii();
}
pnmf(”继续删除学生信息吗?
(Y继续:
N返回主菜单)”);getcharQ;
contmue_mput=getchai();
if(continue_mput=y||contmue_mput==,Y,)
Delete_record_by_id(head);
else
{
system(MclsH);
returnhead;
}
return0;
}
stmctstudent*Delete_recoid_by_name(stnictstudent*head)//按姓名删除
{
stnictstudent*p=head.*ppre=NULL;
charnaine[10];
clwcontiiiue_input;
pnntfC请输入要删除的姓名:
”);
scanf(H%sn4iame);
while(p!
=NULL)
{
if(strcmp(p->name4iame)==0)break;
p=p->next;
}
if(p=NULL)
{
pnntf("抱歉,没有该姓名的学生信息!
\n”);
gotoend;
}
else
prmtf(-确定要删除姓名为%s的学生的信息吗?
(Y确定;N返回主菜单)
'\p->name);
getcharQ;contmue_iiiput=getcharQ;
if(contmue_mput=fy,||contmue_iiiput==,Y,)
{
ppre=head;
if(ppre=p)
{
head=p->next;
仕ee(p);
}
else
{
\vhile(ppre!
=NULL)
{
if(ppie->next=p)
{
ppre・>next=p・>next;
free(p);
break:
}
ppre=ppre->next;
}
}
pnntf(”删除成功!
”);
}
//elsePrmt_menu_mainQ;
end:
pimtfC继续删除学生信息吗?
(Y继续;N返回主菜单)”);
pnntffXir);
getcharQ;
contmue_input=getchar();
if(contmue_input==,Y,||contmue_mput=y)
Delete_recoid_by_name(head);
else
{
svstem(HclsH);
Print_menu_niainQ;re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 源代码