当前位置:首页 » 考试成绩 » 学生成绩查询系统课程总结

学生成绩查询系统课程总结

发布时间: 2020-12-13 17:29:24

Ⅰ 某高中欲建立“学生成绩分析系统”,主要包括三个功能:成绩录入,成绩查询和成绩分析统计

这个直接下载别人学校学籍管理系统也可以啊,比如以前读的初中:顺德北滘镇城区中学;以前他的成绩管理软件是挂出来让人下载的,以前做班干的时候,经常协助老师做你现在预想实现的功能!

Ⅱ 学生成绩管理系统课程设计

功能 能够实现输入记录、查询记录、更新记录、统计记录、输出记录等功能。
1. 输入记录。对每个学生的学号、姓名、班级、数学、英语、计算机成绩进行输入并存储,在程序的运行过程中,数据的存储可以采用结构体数组或者链表,但是最终应该存储在文件中。
2. 维护记录。能够实现添加、删除、修改学生记录,但是一定要将最终数据存储到文件中。
3. 查询记录。根据班级、学号、科目等查询学生的成绩。如果查询时学生数据并没有读入到结构体数组或者链表中,则应该先从文件中读出数据并存储在结构体数组或者链表中,然后在结构体数组或者链表中查询满足条件的数据。
4. 统计记录。完成对各门功课最高分和不及格人数的统计。

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define LEN sizeof(Student)

typedef struct student
{
int num;
char name[20];
int score[4];
int sum;
struct student *next;
}Student;
int n;

Student *cin(void);
Student *sort_1(Student *head,int);
void sort_2(Student *head);
void print(Student *head);
Student *sort_all(Student *head);
void find(Student *head);
Student *add_new(Student *head);

Student *cin()
{
int flag;
Student *head,*p1,*p2;
n=0;
head=(Student *)malloc(LEN);
p2=head;
printf("\n请输入第%d名学生的学号,学号为0表示结束输入:",n+1);
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
n++;
p1=(Student *)malloc(LEN);
p1->num=flag;
printf("请输入第%d名学生的姓名:",n);
scanf("%s",p1->name);
printf("请输入第%d名学生的语文成绩:",n);
scanf("%d",&p1->score[0]);
printf("请输入第%d名学生的数学成绩:",n);
scanf("%d",&p1->score[1]);
printf("请输入第%d名学生的英语成绩:",n);
scanf("%d",&p1->score[2]);
printf("请输入第%d名学生的计算机成绩:",n);
scanf("%d",&p1->score[3]);
p1->sum=p1->score[0]+p1->score[1]+p1->score[2]+p1->score[3];
p2->next=p1;
p2=p1;
printf("\n请输入第%d名学生的学号,没有此学生则输入0表示结束:",n+1);
scanf("%d",&flag);
}
p2->next=NULL;
printf("\n\n");
return head;
}

Student *sort_all(Student *head)
{
int choose;
for(;;)
{
printf("\n\t\t# # # # # 学生成绩统计排序 # # # #\n");
printf("\t\t#\t1.按学生学号排序\t #\n");
printf("\t\t#\t2.按学生总分排序\t #\n");
printf("\t\t#\t3.按学生语文成绩排序\t #\n");
printf("\t\t#\t4.按学生数学成绩排序\t #\n");
printf("\t\t#\t5.按学生英语成绩排序\t #\n");
printf("\t\t#\t6.按学生计算机成绩排序\t #\n");
printf("\t\t#\t7.单科高分及均分\t #\n");
printf("\t\t#\t8.显示当前学生成绩\t #\n");
printf("\t\t#\t0.返回上一级菜单\t #\n");
printf("\t\t# # # # # 由himpo友情提供# # # # #\n\n");
printf("请输入你要执行的操作:");
scanf("%d",&choose);
while(getchar()!='\n');
switch(choose)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:head=sort_1(head,choose);break;
case 7:print(head);sort_2(head);break;
case 8:print(head);break;
case 0:return head;
default: printf("\n\n您的输入有误!请重新输入:\n\n");break;
}
}
}

Student *sort_1(Student *head,int choose)
{
Student *p1,*p2=head->next,*pm,*px;
Student mid;
if (!p2) return head;
for(p1=p2;p1->next!=NULL;p1=p1->next)
{
pm=p1;
for(p2=p1->next;p2!=NULL;p2=p2->next)
switch(choose)
{
case 1:if (pm->num>p2->num) pm=p2;break;
case 2:if (pm->sum<p2->sum) pm=p2;break;
case 3:if (pm->score[0]<p2->score[0]) pm=p2;break;
case 4:if (pm->score[1]<p2->score[1]) pm=p2;break;
case 5:if (pm->score[2]<p2->score[2]) pm=p2;break;
case 6:if (pm->score[3]<p2->score[3]) pm=p2;break;
}
if (pm!=p1)
{
mid=*pm;
*pm=*p1;
*p1=mid;
px=pm->next;
pm->next=p1->next;
p1->next=px;
}
}
printf("\n排序后的成绩表为:\n");
print(head);
return head;
}

void sort_2(Student *head)
{
Student *p=head->next;
int max_1,max_2,max_3,max_4,min_1,min_2,min_3,min_4;
int max_sum,min_sum;
int sum_1=0,sum_2=0,sum_3=0,sum_4=0;
float aver_1,aver_2,aver_3,aver_4,aver_sum;
if (!p) return;
max_1=min_1=p->score[0];max_2=min_2=p->score[1];
max_3=min_3=p->score[2];max_2=min_2=p->score[3];
max_sum=min_sum=p->sum;
for(;p;p=p->next)
{
if (max_1<p->score[0]) max_1=p->score[0];
else if (min_1>p->score[0]) min_1=p->score[0];
if (max_2<p->score[1]) max_2=p->score[1];
else if (min_2>p->score[1]) min_2=p->score[1];
if (max_3<p->score[2]) max_3=p->score[2];
else if (min_3>p->score[2]) min_3=p->score[2];
if (max_4<p->score[3]) max_4=p->score[3];
else if (min_4>p->score[3]) min_4=p->score[3];
if (max_sum<p->sum) max_sum=p->sum;
else if (min_sum>p->sum) min_sum=p->sum;
sum_1+=p->score[0];sum_2+=p->score[1];sum_3+=p->score[2];sum_4+=p->score[3];
}
aver_1=1.0*sum_1/n;aver_2=1.0*sum_2/n;aver_3=1.0*sum_3/n;aver_4=1.0*sum_4/n;
aver_sum=aver_1+aver_2+aver_3+aver_4;
printf("总共%d名学生,具体数据为:\n",n);
printf("语文最高分为%d,最低分为%d,平均分为%.2f\n",max_1,min_1,aver_1);
printf("数学最高分为%d,最低分为%d,平均分为%.2f\n",max_2,min_2,aver_2);
printf("英语最高分为%d,最低分为%d,平均分为%.2f\n",max_3,min_3,aver_3);
printf("计算机最高分为%d,最低分为%d,平均分为%.2f\n",max_4,min_4,aver_4);
printf("总分最高分为%d,最低分位%d,平均分为%.2f\n",
max_sum,min_sum,aver_sum);
}

void find(Student *head)
{
Student *p;
int choose,fnum;
char tem[20];
if (n==0) {printf("\n当前系统没有任何学生数据,您就别费劲了!\n ");return;}
for(;;)
{
printf("\n请输入您要查询学生的方式:\n\n");
printf("1、按学号查询;2、按姓名查询;0、我不查询了。\n\n");
printf("请选择:");
scanf("%d",&choose);
while(getchar()!='\n');
if (choose==1)
{
printf("\n请输入你要查询的学生的学号,输入0退出学号查询:");
scanf("%d",&fnum);
for(;fnum;)
{
for(p=head->next;p!=NULL&&p->num!=fnum;p=p->next);
if (!p)
{
printf("\n\n找不到你要查询的学号,请重新输入,输入0表示结束:");
scanf("%d",&fnum);
}
else if (p->num==fnum)
{
printf("\n学号为%d学生的数据为:\n",p->num);
printf("学号\t姓名\t语文成绩 数学成绩 英语成绩 计算机\
成绩 总分\n");
printf("%d\t%s\t %d %d %d %d \
%d\n",p->num,
p->name,p->score[0],p->score[1],p->score[2],p->score[3],
p->sum);
printf("\n\n请输入你还要查询的学生的学号,输入0表示不按学\
号查询了:");
scanf("%d",&fnum);
}
}
}
else if (choose==2)
{
printf("\n请输入你要查询的学生的姓名,输入0退出姓名查询:");
scanf("%s",tem);
for(;strcmp(tem,"0");)
{
for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=p->next);
if (!p)
{
printf("\n\n找不到你要查询的姓名,请重新输入,输入0表\
示结束:");
scanf("%s",tem);
}
else if (!strcmp(p->name,tem))
{
printf("\n姓名为%s学生的数据为:\n",p->name);
printf("学号\t姓名\t语文成绩 数学成绩 英语成绩 \
计算机成绩 总分\n");
printf("%d\t%s\t %d %d %d \
%d %d\n",
p->num,p->name,p->score[0],p->score[1],p->score[2],
p->score[3],p->sum);
printf("\n\n请输入你还要查询的学生的姓名,输入0表\
示不按姓名查询了:");
scanf("%s",tem);
}
}
}
else if (choose==0) {printf("\n你选择了不查询!\n");break;}
else {printf("\n你以其他方式选择了不查询!\n");break;}
}
}

Student *add_new(Student *head)
{
Student *p;
int flag;
printf("\n\n请输入你要新加入学生的学号,学号为0表示结束输入:");
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
p=(Student *)malloc(LEN);
p->num=flag;
printf("请输入新加入学生的姓名:",n);
scanf("%s",p->name);
printf("请输入新加入学生的语文成绩:",n);
scanf("%d",&p->score[0]);
printf("请输入新加入学生的数学成绩:",n);
scanf("%d",&p->score[1]);
printf("请输入新加入学生的英语成绩:",n);
scanf("%d",&p->score[2]);
printf("请输入第%d名学生的计算机成绩:",n);
scanf("%d",&p->score[3]);
p->sum=p->score[0]+p->score[1]+p->score[2]+p->score[3];
p->next=head->next;
head->next=p;
n++;
printf("\n请输入还要加入学生的学号,没有此学生则输入0表示结束:");
scanf("%d",&flag);
}
head=sort_1(head,1);
printf("加入后的成绩表为:\n");
print(head);
return head;
}

void print(Student *head)
{
Student *p=head->next;
if (!p) {printf("\n\n此系统目前没有任何学生数据!\n\n\n");return;}
printf("此系统目前共计学生%d名:\n",n);
printf("**************************学生成绩统计一览************************\
*****\n");
printf("学号\t姓名\t语文成绩 数学成绩 英语成绩 计算机成绩 总分\n");
for(;p;p=p->next)
printf("%d\t%s\t %d %d %d %d %d\n",
p->num,p->name,
p->score[0],p->score[1],p->score[2],p->score[3],
p->sum=p->score[0]+p->score[1]+p->score[2]+p->score[3]);
printf("************************此软件由himpo友情提供*************************\
*\n\n");
}

int main()
{
Student *head;
int choose,i;
head=(Student *)malloc(LEN);
head->next=NULL;
for(;;)
{
printf("\n\t\t* * * * * 学生成绩管理系统 * * * *\n");
printf("\t\t*\t1.学生数据键盘录入\t *\n");
printf("\t\t*\t2.学生数据统计排序\t *\n");
printf("\t\t*\t3.查询学生数据\t\t *\n");
printf("\t\t*\t4.插入学生数据\t\t *\n");
printf("\t\t*\t5.显示当前成绩表\t *\n");
printf("\t\t*\t0.退出成绩管理系统\t *\n");
printf("\t\t* * * * * 由himpo友情提供* * * * *\n\n");
printf("\n请输入你要执行的操作:");
scanf("%d",&choose);
while(getchar()!='\n');
switch(choose)
{
case 1:printf("\n\t\t\t\t****注意****");
printf("\n\n 此选项将会建立新的学生数据系统 ,原来的数据将\
不再存在,你确信要删除原来的数据并建立新的数据系统么?\n\n");
printf("1、建立新的数据系统;0、放弃建立新的数据系统。\n\n");
printf("请选择:");
scanf("%d",&i);
if (i==1) {head=cin();print(head);break;}
else if (i==0)
{
printf("\n你选择了放弃建立新的数据系统!\n");
break;
}
else {
printf("\n你做出别的选择,当作放弃建立!\n");
break;
}
case 2:head=sort_all(head);break;
case 3:find(head);break;
case 4:head=add_new(head);
case 5:print(head);break;
case 0:system("pause");return 0;
default: printf("\n\n您的输入有误!请重新输入:\n\n");break;
}
}
}

Ⅲ 学生成绩查询系统 论文(vb)

学生成绩管理系统的开发
1 研究背景
1.1 研究目的
本系统的主要功能是对学校的学生的成绩进行管理。成绩管理是学校教务部门一项重要而繁杂的工作,它不仅数据多、处理量大、而且时间要求紧,牵涉到学生基本情况、学习成绩、教师情况、课程情况、任教情况、系部专业情况、班级管理、重修管理、留级处理等,因此,要求本系统能够将现有的手工作业全部电脑化,而且打印出符合教务要求的报表,、能够应用到实际应用中。系统开发的总体任务就是要实现学生信息关系的系统化、规范化,自动化,实现作业的迅速性。本系统是面向现实要求的一个实用系统,因此它具有一定的经济价值和社会价值。正如题目所言,本系统目的是对学校的学生的成绩进行管理,因此在设计本系统时,力图做到能使其真正的实用和方便。这就要求利用面向对象技术的开发方法结合原型法和结构化开发方法来编写整个学生成绩管理信息系统。
1.2 研究意义
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生的成绩,这种管理方式存在着许多缺点,如:效率低、易出错等,另外时间一长,将产生大量的文件和数据与实际上的数据不符,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
数据库管理是微机应用的重要方面,几乎所有微机应用系统都离不开对数据库的管理和操作。由于数据库管理系统所服务的对象各种各样、千差万别,各个不同行业需要开发适合本单位、本部门特点的数据库管理系统,甚至一个部门也需要多个不同的管理系统,因此,通过开发自动化程度较高的通用性软件,来满足不同对象的要求。现在,随着学校学生人数的增多,人工管理学生档案工作日益繁琐,而且容易出错,为了解决这些问题,在此我根据本校特点开发了学生信息管理系统,此系统是一种自动化程度较高的通用管理软件。
2 文献综述
2.1 管理信息系统的综述
管理信息系统是一个和机器结合的人机系统,是用系统的观点,数学的方法建立起来的,以电子计算机为基础,为管理过程服务的信息系统。
3 技术路线
本系统的主要功能是对学校的学生的成绩进行管理。成绩管理是学校教务部门一项重要而繁杂的工作,它不仅数据多、处理量大、而且时间要求紧,牵涉到学生基本情况、学习成绩、教师情况、课程情况、任教情况、系部专业情况、班级管理、重修管理、留级处理等,因此,要求本系统能够将现有的手工作业全部电脑化,而且打印出符合教务要求的报表,能够应用到实际应用中。系统开发的总体任务就是要实现学生信息关系的系统化、规范化,自动化,实现作业的迅速性。
3.1 分析问题,建立模型
分析一个要由计算机解决的问题,就是要设法确定该问题最合适的模型,这是分析问题的出发点和目的。为此,首先要分析问题和题意,明确所要解决的问题属于什么类型、原始数据是什么、是怎样被加工的、经计算机处理后需要输出什么结果,然后才能建立相应的系统模型,并把解决问题的方法确定下来。
3.2 确定算法
算法是一个过程,由一组清晰的规则组成,这些规则指定了一个操作顺序,依照这个有限的步骤可以完成特定类型问题的解答。如何确定算法是计算机程序设计的重点。数据结构加算法构成程序,我们可以利用出版刊物上的程序库或计算机厂家内部建立的程序库等来源找出合适的算法或者依据实际问题和所具备的经验自己设计算法。流程图是程序设计中很有用的工具,它直观、清晰易懂,便于检查交流和修改,详细的流程图可以作为编写程序的依据,当算法确定后,还可按照车家标准用流程图画出计算机解题步骤框。
3.3 编写程序
有了算法和相应程序流程图后,就可以选定高级语言,以书面形式将算法描述出来。编写程序的结果就是形成用程序设计语言编写的源程序,编程中应尽量采用可重用技术,引用已有的程序模块,进行二次开发,以提高编程效率。
3.4 高度运行程序
完成程序清单的书写并输入到计算机以后,就可以上机调试了。调试工作主要包括排错和测试两部分。排错是指查出在程序中隐藏的错误,并给予纠正;测试是确认程序在各种可能的情况下都可以正确执行,输出结果准确无误。这两个工作往往交叉进行,不仅使用合法数据测试,而且使用非法数据或误操作测试,直到经过足够量的实例测试后达到满意效果。
3.5 建立文档资料
文档资料是计算机软件工作的重要组成部分,从接受用计算机解题任务开始就应注意和加强文档资料的编写和建立。一般地,解题任务完成,文档资料也全部建好。
3.6 程序维护
程序维护指对已经交付使用后的程序进行修改、扩充、完善等工作。当程序应用于实际工作或生活中,就得到了实践的检验,由于计算机硬件、软件环境的变更、实际需求的变化或操作人员的变动,会出现这样那样的问题需要编程人员对程序更新数据、排除隐患、修改或扩充功能等都属于维护工作。根据实际情况,我们使用原型法(Rapid Prototyping),即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型做连续的精细处理,将系统需具备的性质逐步加上去,直到所有的性质全部满足。此时,模块也发展成为最终产品了。
4 进度计划
5 参考文献
[1] 刘韬,骆娟等.Visual Basic 6.0数据库系统开发实例导航[M]. 人民邮电出版社,2002年4月.
[2] 刘圣才,李春葆.Visual Basic 6.0程序设计导学[M].清华大学出版社,2002年1月.
[3] Mike Geundenloy[美]著,孙月琴等译.Visual Basic开发指南[M].电子工业出版社,2000年7月.
[4] 张海藩.软件工程导论[M].清华大学出版社,1998年1月.
[5] 伍俊良.VISUAL BASIC 课程设计与系统开发案例. 北京:清华大学出版社,2002;

Ⅳ 学生成绩查询系统

从易查分网站可以直接上传学生成绩Excel电子表格,一分钟就建立成绩查询网页和微信查分,非常好用,直接网络易查分就行了。

Ⅳ 基于VB的学生成绩查询系统

XX中学学生学籍管理系统

目录
摘要
引言
系统简介
第一章 可行性研究
第二章 需求要析
第三章 概要设计
第四章 详细设计
第五章 设计中遇到的问题及解决方法
(还有暂时未解决的问题)
第六章 结束语
第七章 主要参考文献
附:程序清单
学生:

摘要

-------引言(选题理由)-------
我的母校XX一中为一个市重点中学,但由于长期一来是传统的管理模式……
使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如: ……
学校为了提高工作效率,买了一批电脑,当务之急就是…… 因此,……

我选择母校来设计这个系统主要有两个原因:
一是:在母校我认识许多老师,他们为我提供了许多资料,……
二是:在母校学习的三年里,我受到了很多老师的关怀,他们……也算是对母校的一点回报。

本系统为学生学籍管理系统,是一个的信息管理系统,其开发主要包括数据库的建立和维护以及前端应用程序的开发两个方面。……

经过分析,我使用了 MICROSOFT公司的 VISUAL BASIC 6.0开发工具,利用其提供的各种面向对象的开发工具,在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成一个满意的可行系统。

在下面的各章中我将以开发学生学籍管理系统,谈谈其开发过程和所涉及到的问题及解决方法。
--------------------下面就让我们开始正文的介绍

第一章 可行性研究
计算机管理学生信息的意义:
在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。
我作为一个计算机应用的大学生,希望能有所贡献。用我三年的所学编制了一个实用的程序来帮助桂阳一中进行更有效的学籍档案管理。

可行性研究:
目的:可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。
经济上可行性:
现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,
为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;
第二,本系统的运行可以节省许多资源;
第三,本系统的运行可以大大的提高学校的工作效率;
第四,本系统可以使敏感文档更加安全,等等。
所以,本系统在经济上是可行的。
技术上可行性:

为本系统的开发我特对桂阳一中进行了深入的调查研究。现桂阳一中有32个班,其中一年级有10个班,二年级有9个班,三年级有13个班(包括文、理复读班),共有学生人数为1533人。学校有三十多台电脑及两台主机。并且开发人员对用户所提出的要求也都能够满足。

并且本系统的开发我利用Microsoft SQL Server2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。
使用Visual Basic6.0作为系统开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。

运行上可行性:
本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
法律可行性:
本系统纯为私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。

第二章:需求分析

21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。我所开发的这个系统所采用的是当前较为流行的编程软件VISUAL BASIC 6.0作为实现语言,以数据库Microsoft SQL Server2000作为系统的后台操作,其功能在系统内部有源代码直接完成。我们只需按系统要求输入即可操作。

引言
在学校,学生信息管理工作是非常重要的一项工作,它负责整个学校的……,学生的……。以前是……。随着学校……,教务工作者急切希望……

学校工作流程分析
学校工作总体规划由教务人员在学生学籍信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。
新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。
在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任及对此年级安排一个年级组长。并对各科老师进行安排。
每举行一次考试后由任课老师对本科的成绩进行录入。班主任对本班的成绩汇总。并进行排名,然后年级组长再进行汇总,并对本年级各科成绩及总成绩进行排名。
教务处、年级组长、班主任及任课老师跟据实际情况对录入的成绩进行维护,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。

学校具体需求分析
学生:对各科成绩的查询及查看本班成绩排名与年级成绩排名情况。
任课老师:输入并维护所教科目的学生成绩,计算本科的成绩排名、本科成绩在班上的排名。
输出本班科目的成绩及排名情况。
班主任:输入并维护本班的基本信息,对本班的各科成绩汇总,计算各科成绩的总分,排名,本班平均分等需求。
输出学生的基本信息,各科的成绩及各科成绩的部分,各科成绩的排名,总分的排名情况。
年级组长:对本年级学生基本情况的管理,对各班的成绩汇总,计算年级中各科成绩的排名,总成绩排名等需求。
输出年级学生基本信息,各科成绩的年级排名,总成绩在年级中的排名。
教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进行具体的管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护,可打印学生的所有信息。

系统设计思想
1、 采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。
2、 系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。
3、 系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。

系统设计分析
本系统适用于中小学校,其功能主要分为六大类:
用户管理:用于对用户的添加,赋于不同权限及对用户的修改及查询。
课程管理:用于对各学期课程的开设和修改。
成绩管理:用于对成绩的输入、修改、汇总及排名。
班级管理:用于对班级的录入与修改。
帮助信息:用于对本系统的具体操作进行详解。
本系统性能力求易于使用,具体有较高的扩展性和可维护性。

系统功能分析
权限功能:为用户设置权限功能,可分为普通用户,一般用户,超级用户。普通用户只是查询不能修改,一般用户只能对授权范围内进行相应修改及删除,超级用户能修改、删除所有信息。
录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。
查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。
维护功能:为一般用户提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。
打印功能:能打印全校学生的信息及积各班信息,科目成绩等。
帮助功能:能帮助初次使用者对本系统的应用及处理常见的问题。
退出功能:结束并关闭系统。

学生学籍系统的目标
节约资源,提高学籍信息的精确度
本系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。
方便快速操作,精减人员,节约开支
方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。

数据库分析
用户需求具体有学籍管理系统提供保存、更新、查询、维护和打印,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。

数据流图描述:本系统从总体上分为系统信息管理、学生信息管理、课程管理、班级管理和成绩管理五大部分。每个模块有自己的作用。下面的各模块功能流图就是由各功能之间的关系而得出的。
(图2、图3、图4、图5、图6、图7、图8)

学籍信息录入流图(图2)

学生信息查询流图(图3)

学籍信息维护流(图4)

一般用户、超级用户
用户添加

用户信息

系统管理数据流图(图5)

课程开课信息

课程信息

年级、班级查询条件

课程管理数据流图(图6)

成绩录入

成绩排名

按学号
按科目
按班号

成绩管理数据流图(图7)

班级录入

班级学生名单及成绩

按班号
按年级

班级管理数据流图(图8)
数据字典:是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明
下面给出本系统几个数据元素的字典卡片与具体数据卡片的含义:
名称:用户信息
描述:管理员的基本信息表
定义:用户=用户名+密码+性别+联系电话+出生年月+家庭住址
用户名={英文字母、数字、特殊符号}
姓名={英文字母、数字、文字}
------------------------------------------------------
名称:学生表
描述:学校学生注册基本信息表
定义:学生表=学号+姓名+性别+班级+民族+籍贯+政治面貌+出生日期+入学日期 +家庭住址+联系电话+{备注}4
学号=11 {数字} 11
姓名=2 {文字} 4
--------------------—---------------------------------
名称:成绩录入表
描述:学校学生各科成绩基本信息表
定义:成绩录入=考试编号+学号+姓名班级+课程名+成绩
学号=11 {数字} 11
姓名=2 {文字} 4
----------------—-------------------------------------
名称:班级表
描述:学校各班班级基本信息表
定义:班级表=年级+班号+班主任+教室
班号=3 {数字} 3
年级=2 {文字} 2
-------------------------------------------------------
名称:课程表
描述:各年级所学课程的基本信息表
定义:课程表=课程编号+课程名称+课程类型+课程描述
编号=3{数字}3
名称=4{文字}4

第三章:概要设计

目的:设计系统结构,根据需求要析给出的功能得出系统体系结构。如划分模块。

目标:通过本系统软件,能帮助工作人员利用计算机,快速方便的对所属学校的信息管理进行维护、输入、输出、查找的所需操作,使散乱的学校数据能够具体化,直观化、合理化。
运行环境:Windows2000/NT或更高的版本。
总体设计
处理流程:1.启动系统,激活登陆口令界面。
2.通过验证后,对系统进行初始化。
3.系统进入消息循环,通过事件驱动机制激活相应的功能模块,并执行相应的功能;
4.通过关闭系统事件,激活关闭系统模块,退出系统。
系统模块菜单:
学生学籍信息管理系统
用户管理
添加用户
修改用户
删除用户

学籍信息管理
添加学籍信息
查询学籍信息
修改学籍信息
删除学籍信息

班级信息管理
添加班级信息
修改班级信息

课程信息管理
添加课程信息
修改课程信息
设置年级信息

成绩信息管理
添加成绩信息
查询成绩信息
修改成绩信息
删除成绩信息
帮助文件
帮助信息
学生信息管理系统所需完成具体的功能:
系统管理模块: 用户的添加、删除、修改及权限的赋予。
学生信息管理模块:输入学生基本信息,并可以对学生信息进行添加、查询、修改、删除。还可以关键字查询并从数据库里调出的学生基本信息.
输出学生基本信息,学号、班号、姓名查询的信息结果。
班级信息管理模块: 输入班号、教室号、班主任等信息,并可以对班级信息进行添加、修改。包括班号、教室号、班主任、年级的录入及修改。
输出班号、教室号、班主任年级等信息。
成绩信息管理模块:输入成绩信息,并可以对成绩信息进行添加、查询、修改、删除。还可以用关键字查询并调出数据库里的学生基本成绩信息的修改、删除等。
输出查询的学生成绩信息。
课程信息管理模块:输入课程的基本信息,并可以对课程信息进行添加、修改、删除及课程设置。课程设置能够对各年级的课程进行分类。划分学期所学的课程。
输出课程的基本信息、年级及学期中所要学的课程等。

系统模块图:(图9)

帮助信息

添加班级信息 修改班级信息
添加成绩信息 修改成绩信息 删除成绩信息 查询成绩信息
添加用户 修改用户 删除用户 退出系统
添加学生信息 修改学生信息 删除学生信息 查询学生信息
添加课程信息 修改课程信息 设置年级课程

(图9)

接口设计
外部接口:用户一般通过终端进行操作,用户进入界面后进行相应的操作。
硬件接口:赛扬133 、内存32兆以上PC机满足输入端条件。
软件接口:Windows2000/NT或更高的操作系统。
内部接口:内部接口(模块之间的接口)
验证模块:启动系统时,便激活登陆口令界面;
初始化模块:对系统进行初始化;
系统功能模块:接收系统功能的相应消息,启动信息录入、信息查询、信息维护、SIM维护等模块。

各模块的具体分析:
1.系统管理模块:用于管理系统的用户及赋于权限对本系统的操作。实体E-R图如下:(图10)

(图10)
2.学生信息管理:主要用于学生的基本信息管理(如学号、姓名、性别、出生年月、联系地址等)。实体E-R图如下:(图11)

(图11)
3.班级管理:主要以班为单位对于学校班级信息管理。实体E-R图如下:(图12)

(图12)
4.成绩管理:主要用于学生考试的成绩进行管理(如统计分数等)实体E-R图如下:(图13)

(图13)
5.课程管理:主要用于学生课程的管理(如各学期的课程安排等)实体E-R图如下:(图14)

(图14)
系统维护模块:主要是对学校信息管理系统进行日常维护,该模块又包括:修改用户密码、增加与删除用户、数据备份、数据整理等功能。

关系型数据库的实现:Microsoft SQL Server2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Microsoft SQL Server2000 的优点在于它非常的可靠、质量好、易用、可伸缩性、简单的管理和调整(能自动运行管理和性能监测,提供了集中的数据库管理。)、灵活的和可扩展的数据转换(能够构建更加坚固的数据转换服务(DTS)软件包)、集成了可扩展的分析服务(提供了数据采集、为生成报表而设计了灵活的向上流动特性,实现单元级和成员安全的功能,还有写回原始大小的能力)。自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然,还提供了排序功能。Microsoft SQL Server2000也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。如上所述, Microsoft SQL Server2000 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
运行设计
运行模块的组合图(图15)

(图15)
出错处理设计
出错输出信息:本系统采用人-机对话模式,若操作失误则弹出对话框(如:身份验证、输错信息等)
出错处理对策:用户可根据弹出对话框中的提示信息进行操作。

安全保密设计:系统进入时设计了登录界面,并且对用户进行了权限区分。分为一般用户、管理员,对一般用户只可以进行查询,只有管理员才可以对信息进行删除与修改。另外还设计对数据的备份及还原,从而实现了数据可移植性。

第四章:详细设计
目的: 为系统中的每一个模块确定使用的算法和块内数据结构,并用表达工具给出清晰的描述。
实现数据库之间的联系:数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。
下面为本系统的数据流程图:(图16)

查询成员
学生基本信息录入

维护统计
班级注册

成绩查询结果

成绩和学生挡案打印
成绩维护
成绩录入
成绩打印

(图16)

修改已建的数据库:数据库的修改分为添加、编辑和删除记录。我都由Visual Basic 创建的程序来实现。

与Visual Basic 6.0的连接:Visual Basic 6.0提供了与底层数据库系统紧密的连接。Visual Basic 6.0 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic 6.0连接数据库的方式有两种:
•通过使用Visual Basic的 DATA控件。
•通过使用由Visual Basic提供的专用的直接与数据库相连的接口。

程序描述
功能模块的描述与数据表的创建如下:

学籍模块:
该模块主要完成学生基本信息的录入、删除 、更新等功能。在此模块中定义了九个域名来进行学生的信息存储。如果用户修改某一纪录中的某一项,可单添加按钮进行学生记录的编辑,此窗口使用数据窗口的FREEDOM风格(典型的录入界面)。该种风格特点是列标题紧挨着数据列在此窗口还可以增加新学生纪录。

学生基本信息表:
学生基本信息表里存储了学生的档案包括:学号、姓名、性别、年龄、班号等 表如下图

主键:学生学号
列名 数据类型 长度 允许空
学生学号
学生姓名
学生性别
出生日期
班号
联系电话
入校日期
政治面貌
籍贯
民族
家庭住址 Varchar 50 Yes
注释 Varchar 200 Yes

班级模块:
班级模块主要完成班级信息的录入、删除 、更新等功能。在此模块中定义了四个域名来进班级信息表的存储。

班级信息表:
班级信息表里存储了学生的信息包括:班号、年级等 表如下图

主键:班号
列名 数据类型 长度 允许空
班号
年级
班主任
教室

课程模块:
该模块主要完成存储课程的所有信息及录入、删除 、更新等功能。此模块主要有四个域名来进行学生课程信息的存储。

课程信息表:
课程信息表存储了课程的信息:课程纺号、名称、描述等如下表:

主键:课程编号
列名 数据类型 长度 允许空
课程编号
课程类型
课程描述

年级模块:
该模块主要完成存储年级与课程信息的录入、删除 、更新等功能。此模块主要有二个域名来进行年级信息的存储。

年级课程信息表:
年级课程信息表存储了年级的信息:年级、课程等如下表

年级课程信息表:
列名 数据类型 长度 允许空
年级
课程

成绩模块:
该模块主要完成学生成绩的基本信息的录入、删除 、更新等功能。在此模块中定义了六个域名来进行学生的信息存储。

成绩信息表:
成绩信息表里存储了学生的成绩包括:学号、成绩等如下表

列名 数据类型 长度 允许空
考试编号
学生学号
课程名称
分数

用户模块:
该模块主要完成用户基本信息的录入、删除 、更新等功能。在此模块中定义了三个域名来进行学生的信息存储。

用户信息表:
用户信息表里存储了用户的信息包括:用户名、密码等如下表
用户信息表:
列名 数据类型 长度 允许空
用户名
用户密码
用户注释
以上几张表为本系统的基本信息,还不够完善,以待改进。

程序逻辑
模块功能实现的算法流程图:(图17、图18、图19、图20、图21)

各实体间的E-R图(图17)

录入模块流程图(图18)

查询模块流程图(图19)

维护模块流程图(图19)

系统维护模块流程图(图20)

系统的实现:
设置数据库,选择“开始设置|控制面板,菜单,打开”管理工具文件夹,双击“数据源”项目,在弹出的对话框中选择“文件DSN”标签页,然后单击“添加”按钮,选择“SQL SERVER”项目。单击“完成”按钮,在名称文本框中填写“Hotel_MIS”,服务器中选择“(local)”, 单击“下一步”按钮,选择登录ID,这里使用认的选择,也可发自己设置其他的登录方式。单击“下一步”按钮,出现选择认数据库对话框,选中“更改认数据库为:”选项,然后选择“student”,单击下一步,单击完成按钮,完成数据源设置。单击“测试数据源”进行数据源测试,出现测试成功,单击“确定”,退出数据源设置。
在系统文件中选择SQL文件,复制此文件,然后按开始菜单选择Microsoft SQL Server2000/查询分析器/把此文件复制到此文件中,单击保存就可以生成数据库了。然后运行这个程序会出现登陆窗口。输入用户名和密码后,就可以进入系统了。

第五章:编码
见附录

第六章: 结束语
经过二个多月的设计和开发,永兴三中学籍管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生学籍的存储和成绩的查询以及各类相关报表的打印。
但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。

致谢:
在系统开发的两个月里,我受到了指导老师李平建老师的细心指导,李老师严谨的指导态度与深厚的理论知识都让我受益非浅,从他身上我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高.借此我特提出感谢.
同时我还感谢母校的老师,谢谢他们为本系统提供的帮助.让我能够顺利地完成本系统的开发.也感谢那些对我提供帮助的同学,没有他们就不会现在的系统.

第七章
参考文献
[1]软件工程 作者:陈明 中央广播电视大学出版社 2001年
[2]Visual Basic程序设计 作者:陈明 中央广播电视大学出版社 2000年
[3]Visual Basic6.0数据库系统开发实例导航 作者: 刘韬、骆娟、何旭洪
人民邮电出版社 2002年
[4]数据库基础与应用 作者:王利 中央广播电视大学出版社 1997年
[5]SQL Server2000系统管理 飞思科技产品研发中心 电子工业出版社 2001年
[6] Visual Basic 6.0 使用指南 作者:Bob Reselman , Richard Peasley , Wayne Pruchniak.
电子工业出版社
[7] Visual Basic 6.0 中文版控件大全 作者:Microsoft电子工业出版社

附录:

Ⅵ SQL Sever学生成绩管理系统包括学生管理、课程管理、成绩查询功能

可以借助Baihi示意我们
有机会能够处理你所遇到的工作
具体的要求也能够示意我们

ES:\\
交易提醒:预付定金有风险

Ⅶ 查询各课程的平均成绩并按成绩降序排列

SQL指令:

SELECT stu.name,a4.java,a4.mysql,a4.html,a4.`总成绩` from
(select a.stu_id,a.score 'java',a1.score 'mysql',a2.score 'html',a3.sum1 '总成绩' from
(select sc.score,sc.stu_id from score sc where sc.subject_id=10001) a
LEFT JOIN
(select sc.score,sc.stu_id from score sc where sc.subject_id=10002) a1
on a.stu_id = a1.stu_id LEFT JOIN
(select sc.score,sc.stu_id from score sc where sc.subject_id=10003) a2
on a1.stu_id=a2.stu_id
LEFT JOIN (SELECT sum(sc.score) sum1 ,sc.stu_id from score sc GROUP BY sc.stu_id) a3
on a2.stu_id = a3.stu_id
ORDER BY a3.sum1 desc) a4
LEFT JOIN student stu on a4.stu_id = stu.id

Ⅷ 学生成绩查询系统如何编写

随着教育部禁止对考试成绩进行公开排名及公开公布成绩后,学校一般都选择不再公开公布考试专成绩属,但是考试是检测学生一段时间的学习状态的主要手段,家长和老师也需要通过考试成绩来对孩子们近期的学习进行查缺补漏,所以考试是不可避免的!但是对于公布成绩,很多老师不知道怎样有效发布,其实老师们可以用易查分做一个自主查询系统,避免因为公布成绩而带来的各种问题,因为都是自己查自己的,所以私密度极高!用易查分发布查询系统也很方便,差不多3分钟左右就可以制作好一个查询系统!值得老师们尝试!!!

Ⅸ SQL查询求每个同学的课程成绩的最高分,查询结果项包括:学生姓名、课程号及最高分

你好,你展示的第一种sql查询方案,其意思是:

先根据score表中的sno分组求每个sno的最高分数。这求得的当然是每个同学的最高分啦,但是只是获得了最高分,没有指定是谁的最高分,导致在前面的【SELECT SNAME ,CNO,GRADE FROM Score Y,StudentWHERE (STUDENT.SNO=Y.SNO)】查询结果集中的后面检索条件【AND Y.GRANDE IN (所有人的最高分集合)】,这样系统就会查询分数在“所有人的最高分”里的结果集了。

而第二种方案,除了限定分数范围(最高分),还限定了学生的编号(

SELECTMAX(GRADE)FROMSCOREWHERE
SNO=Y.SNO
GROUPBYSNO,sno=y.sno就是限定学生的编号。

),所以结果自然不同了。

根据你的要求,我给你提供一种查询方式。其实原理是一样的哦。

selectstu.sname,scr.cno,scr.gradefromstudentstu
leftjoinscorescronscr.sno=stu.sno
whereexists(select1from(selects.sno,max(s.grade)asmgfromscoresgroupbys.sno)twheret.sno=stu.sno
andt.mg=scr.grade)

希望能帮助你。

Ⅹ 数据库sql学生选修课系统,使用查询功能查询学生成绩,只有有优秀良好

select成绩,count(1)as人数from成绩表where成绩in('优秀','良好')groupby成绩

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919