学生成绩管理系统源代码.docx

上传人:b****5 文档编号:6590292 上传时间:2023-01-08 格式:DOCX 页数:28 大小:122.82KB
下载 相关 举报
学生成绩管理系统源代码.docx_第1页
第1页 / 共28页
学生成绩管理系统源代码.docx_第2页
第2页 / 共28页
学生成绩管理系统源代码.docx_第3页
第3页 / 共28页
学生成绩管理系统源代码.docx_第4页
第4页 / 共28页
学生成绩管理系统源代码.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统源代码.docx

《学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码.docx(28页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统源代码.docx

学生成绩管理系统源代码

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

学生成绩管理系统

二、本次课程设计(论文)应达到的目的

通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。

三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)

系统功能基本要求:

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*next;

};

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->next=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->next=NULL;

returnpnewstu;

}

structstudent*get_last_student(structstudent*p)

{

if(p->next==NULL)

returnp;

else

returnget_last_student(p->next);

}

voidPrint_Stu_Doc(structstudent*head)

{

structstudent*p;

charr;

print_table_head();

if(head==NULL)

{

printf("\nNoRecords\n");

}

for(p=head;p;p=p->next)

{

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->next;

/*isfound=1;*/

break;

}

p=p->next;

}

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->next;

/*isfound=1;*/

break;

}

p=p->next;

}

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->next;

}

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->next;

}

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->next=NULL;

}

elseif(head->num==id)

{

ptr->next=head;

head=ptr;

}

else

{

while(ptr2!

=NULL)

{

ptr1=ptr2;

ptr2=ptr1->next;

if(ptr2->num==id)

{

ptr1->next=ptr;

ptr->next=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->next;

}

if(p==NULL)

printf("抱歉,没有该学号的学生信息!

\n");

else

{

printf("确定要删除学号为%d的学生的信息吗?

(Y确定;N返回主菜单)\n",p->num);

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

{

ppre=h

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

当前位置:首页 > 医药卫生 > 基础医学

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

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