学生成绩管理系统源代码.docx
- 文档编号:23470589
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:31
- 大小:35.58KB
学生成绩管理系统源代码.docx
《学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码.docx(31页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统源代码
一、课程设计〔论文〕题目
学生成绩管理系统
二、本次课程设计〔论文〕应到达的目的
通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。
三、本次课程设计〔论文〕任务的主要容和要求〔包括原始数据、技术参数、设计要求等〕
系统功能根本要求:
1.学生信息维护;
2.教师信息维护;
3.课程信息维护;
4.学生选课信息;
5.任课教师操作课程成绩;
6.学生查询课程成绩。
四、应收集的资料及主要参考文献:
1.数据库:
原理编程与性能(影印版)(第2版),高等教育,ParickO'Neil,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图
图2学生信息
图3功能模块图
:
查询
条件
满足条件
数据库
显示结果
退出
不符合条件
图4查询模块流程图
学生成绩
**
**
考试日期
操作系统
数据库
组成原理
计算机网络
数据构造
班级
班级号
年级号
班级人数
总人数
图5班级与学生成绩流图
〔一〕、系统的功能分析
该学生成绩管理系统是基于网络在线的学生成绩管理系统,在系统中分为大的两个面:
一是教师登录页面、二是学生登录页面。
〔1〕教师进入学生成绩管理系统的主要功能是:
实现添加用户、添加成绩、学籍信息修改、修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等根本功能。
〔2〕学生进展学生成绩管量系统的主要功能是:
实现修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等根本功能。
〔二〕、系统功能模块图
登录
添加用户
添加成绩
信息修改
修改密码
查询课程
查询成绩
信息查询
退出系统
系统首页
教师功能界面
图6教师功能模块图
教师在学生成绩管理系统中能够对所有学生的成绩查看,对学生按**进展准确查询、按学生**进展模糊查询,可以修改自己的登录密码,添加用户,添加学生的成绩,打印学生的学籍信息。
退出系统
信息查询
修改密码
选课
课程查询
成绩查询
登录
系统首页
学生功能界面
图7学生功能模块
学生在系统中的根本功能是对自己所有成绩的查询,课程的查询,个人登录密码的修改,根本信息的查看,选课,打印自己的学籍信息。
七.代码
*include
*include
*include
*include
structstudent//构造体定义
{
intnum;
charname[10];
charbirthday[10];
intCyuyan;
intshujujiegou;
structstudent*ne*t;
};
structstudent*creat_by_input();
structstudent*get_last_student(structstudent*head);
structstudent*Print_menu_main()//主菜单
{
printf("*********************************************************************\n");
printf("|1.........输入学生信息|\n");
printf("|2.........输出学生信息|\n");
printf("|3.........查找学生信息|\n");
printf("|4.........修改学生信息|\n");
printf("|5.........插入学生信息|\n");
printf("|6.........删除学生信息|\n");
printf("|7.........排序学生信息|\n");
printf("|0.........退出系统|\n");
printf("|_____________|\n");
}
structstudent*print_table_head()
{
printf("+----------+----------+----------+----------+-------------+\n");
printf("|**|**|出生日期|c成绩|数据构造成绩|\n");
printf("+----------+----------+----------+----------+-------------+\n");
}
structstudent*print_table_row(structstudent*p)
{
printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shujujiegou);
}
voidprint_table_bottom()
{
printf("+----------+----------+----------+----------+-------------+\n");
}
structstudent*Creat_stu_record()//建立链表
{
structstudent*plaststu=NULL,*pnewstu;
charcontinue_input='N';
structstudent*head=NULL;
while
(1)
{
if(head==NULL)
{
head=creat_by_input();
print_table_head();
print_table_row(head);
print_table_bottom();
}
else
{
pnewstu=creat_by_input();
print_table_head();
print_table_row(pnewstu);
print_table_bottom();
plaststu=get_last_student(head);
plaststu->ne*t=pnewstu;}
printf("是否继续输入学生信息.(Y继续,N返回菜单)\n");
getchar();
continue_input=getchar();
if(continue_input=='n'||continue_input=='N')
{
system("cls");
Print_menu_main();
break;
}
}
returnhead;
}
structstudent*creat_by_input()
{
structstudent*pnewstu=(structstudent*)malloc(sizeof(structstudent));
printf("请输入学生信息\n");
printf("**:
");scanf("%d",&pnewstu->num);
printf("**:
");scanf("%s",pnewstu->name);
printf("出生年月:
");scanf("%s",pnewstu->birthday);
printf("请输入学生成绩\n");
printf("C语言:
");scanf("%d",&(pnewstu->Cyuyan));
printf("数据构造:
");scanf("%d",&(pnewstu->shujujiegou));
pnewstu->ne*t=NULL;
returnpnewstu;
}
structstudent*get_last_student(structstudent*p)
{
if(p->ne*t==NULL)
returnp;
else
returnget_last_student(p->ne*t);
}
voidPrint_Stu_Doc(structstudent*head)
{
structstudent*p;
charr;
print_table_head();
if(head==NULL)
{
printf("\nNoRecords\n");
}
for(p=head;p;p=p->ne*t)
{
printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shujujiegou);
printf("+----------+----------+----------+----------+-------------+\n");}
printf("(按Enter键返回主菜单)\n");
getchar();
r=getchar();
if(r!
='1')
{
system("cls");
Print_menu_main();
}
else
{
system("cls");
Print_menu_main();
}
}
structstudent*search_by_name(structstudent*head)//按**查找
{
charname[10];
structstudent*p=head;
charcontinue_input;
/*intisfound=0;*/
printf("请输入要查找的**:
");
scanf("%s",name);
printf("查找%s\n",name);
print_table_head();
while(p!
=NULL)
{
if(strcmp(p->name,name)==0)
{
print_table_row(p);
p=p->ne*t;
/*isfound=1;*/
break;
}
p=p->ne*t;
}
print_table_bottom();
printf("是否继续查找"(Y继续;N返回主菜单)\n");
getchar();
continue_input=getchar();
if(continue_input=='n'||continue_input=='N')
{
system("cls");
Print_menu_main();
}
else
search_by_name(head);
}
structstudent*search_by_id(structstudent*head)//按**查找
{
intid;
structstudent*p=head;
charcontinue_input;
/*intisfound=0;*/
printf("请输入要查找的**:
");
scanf("%d",&id);
printf("查找%d\n",id);
print_table_head();
while(p!
=NULL)
{
if(p->num==id)
{
print_table_row(p);
p=p->ne*t;
/*isfound=1;*/
break;
}
p=p->ne*t;
}
print_table_bottom();
printf("是否继续查找.(Y继续;N返回主菜单)\n");
getchar();
continue_input=getchar();
if(continue_input=='n'||continue_input=='N')
{
system("cls");
Print_menu_main();
}
else
search_by_id(head);
returnhead;
}
structstudent*modify_record_by_id(structstudent*head)//按**修改
{
structstudent*p=head;
intid;
charcontinue_input;
printf("请输入要修改的学生的**:
\n");
scanf("%d",&id);
while(p!
=NULL)
{
if(p->num==id)
break;
p=p->ne*t;
}
if(p==NULL)
printf("抱歉,没有**为%d的学生\n",id);
else
{
printf("请输入学生信息:
\n");
printf("**:
");scanf("%d",&(p->num));
printf("**:
");scanf("%s",&(p->name));
printf("出生年月:
");scanf("%s",&(p->birthday));
printf("请输入学生成绩:
\n");
printf("C语言:
");scanf("%d",&(p->Cyuyan));
printf("数据构造:
");scanf("%d",&(p->shujujiegou));
print_table_head();print_table_row(p);print_table_bottom();}
printf("继续修改学生信息吗"Y继续;N返回主菜单\n");
getchar();
continue_input=getchar();
if(continue_input=='y'||continue_input=='Y')
creat_by_input();
else
{
system("cls");
Print_menu_main();
}
returnhead;
}
structstudent*modify_record_by_name(structstudent*head)//按**修改
{
structstudent*p=head;
charname[10];
charcontinue_input;
printf("请输入要修改的学生的**:
\n");
scanf("%s",name);
while(p!
=NULL)
{
if(strcmp(p->name,name)==0)
break;
p=p->ne*t;
}
if(p==NULL)
printf("抱歉,没有**为%s的学生\n",name);
else
{
printf("请输入学生信息:
\n");
printf("**:
");scanf("%d",&(p->num));
printf("**:
");scanf("%s",&(p->name));
printf("出生年月:
");scanf("%s",&(p->birthday));
printf("请输入学生成绩:
\n");
printf("C语言:
");scanf("%d",&(p->Cyuyan));
printf("数据构造:
");scanf("%d",&(p->shujujiegou));
print_table_head();print_table_row(p);print_table_bottom();}
printf("继续修改学生信息吗"Y继续;N返回主菜单\n");
getchar();
continue_input=getchar();
if(continue_input=='y'||continue_input=='Y')
creat_by_input();
else
{
system("cls");
Print_menu_main();
}
returnhead;
}
structstudent*insert_record(structstudent*head)//插入
{
structstudent*ptr1;
structstudent*ptr,*stud;
structstudent*ptr2=head;
charcontinue_input='N';
intid;
printf("请输入一个**,在此之前插入学生信息:
");
scanf("%d",&id);
stud=creat_by_input();
ptr=stud;
if(head==NULL)
{
head=ptr;head->ne*t=NULL;
}
elseif(head->num==id)
{
ptr->ne*t=head;
head=ptr;
}
else
{
while(ptr2!
=NULL)
{
ptr1=ptr2;
ptr2=ptr1->ne*t;
if(ptr2->num==id)
{
ptr1->ne*t=ptr;
ptr->ne*t=ptr2;
break;
}
}
}
print_table_head();
print_table_row(ptr);
print_table_bottom();
printf("是否继续插入学生信息"(Y继续N返回主菜单)\n");
getchar();
continue_input=getchar();
if(continue_input=='y'||continue_input=='Y')
returninsert_record(head);
else
{
system("cls");
Print_menu_main();
returnhead;
}
}
structstudent*Delete_record_by_id(structstudent*head)//按**删除
{
structstudent*p=head,*ppre=NULL;
intid;
charcontinue_input;
printf("请输入要删除的**:
");
scanf("%d",&id);
while(p!
=NULL)
{
if(p->num==id)
break;
p=p->ne*t;
}
if(p==NULL)
printf("抱歉,没有该**的学生信息!
\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 源代码