首页 > 精品范文库 > 8号文库
学生成绩管理数据库的建立
编辑:春暖花香 识别码:17-841451 8号文库 发布时间: 2023-12-20 17:40:54 来源:网络

第一篇:学生成绩管理数据库的建立

学生成绩管理数据库的建立

2、构建一个教学管理关系数据库如下: 学生(学号,姓名,性别,年龄,籍贯,班级代号)课程(课程号,课程名称,学分数,教师代号)成绩(学号,课程号,成绩,考试时间)教师(教师代号,姓名,性别,年龄,职称)

为方便起见,上述关系用英文字母表示如下:

S(,NAME,SEX,AGE,JG,CLASSNO)

C(CNAME,XF,TNO)

G(GRADE,DATE)

T(NAME,SEX,AGE,ZC)

上述关系模式中,带下划线的属性为各自关系的关键字,其中学生表输入20条记录;课程表输入10条记录;成绩表输入100条记录;教师表入5条记录。基于这些关系表,做如下查询:

(1)找出男性学生的姓名

(2)找出不是“202_”班的学生

(3)查询“李峰”老师所教课程的课程名称和学分

(4)检索出选修了课程代号为“c11”和“c23”课程的学生

(5)查询至少选修了一门“李峰”老师的课程的学生姓名

(6)求选修了课程名为“数据库原理”的所有学生的学号和姓名

(7)找出学生代号为“S101”和“S102”两个学生都选修了的课程

(8)检索出没有被任何学生选修的课程

(9)求出每个学生的成绩的平均分和总分

(10)求至少三门以上课程成绩在90分以上的学生学号

(11)求获得学分数在200以上的学生

(12)求出少于10个学生选修的课程

(13)求出有四门课程考试不及格的学生的姓名

(14)求出每个老师所教课程的学分总数

(15)求出教了三门课以上的老师

(16)求出只教一门课程的老师

求出每一个班级中每一门课程获得最高分的学生的学号

第二篇:建立学生成绩管理系统

问题的提出:编程建立学生成绩管理系统。要求具有以下功能:一个学生的信息包括学号、姓名、英语成绩、语文成绩、数学成绩,要求输入每位学生的信息并显示这些信息;同时计算每位学生的总分即英语、语文、数学成绩之和,并对输入的若干学生按总分排名,按总分名次输出每位学生及其信息;最后计算这些学生的英语平均分、语文平均分和数学平均分,并输出结果。

第三篇:学生成绩管理

为方便编程采用C++实现,同C类似,区别不大:

(1)学号为负数时结束输入:

#include“stdafx.h”

#define NULL 0

#include

#include

#include

using namespace std;

//声明结构体类型

typedef struct stnode

{

int id;//学号

char name[16];//姓名

intclass[4];//课程成绩数组

float ave;//学生个人所有课程的平均成绩struce stnode *next;//指针域

}Students;

// 函数原型声明

void PrintFailStudent(Student*head);

void PrintSuccessStudent(Student*head);void DeleteLink(Student*head);

Student*input_data();

void main()

{

Student*head=input_data();

Student*input_data();//调用input_data函数,录入学生信息

PrintFailStudent(head);//调用PrintFailStudent函数,存在不及格的学生

void PrintSuccessStudent(Student*head);//打印平均分90分以上的学生

DeleteLink(head);//调用DeleteLink函数,释放内存

}

//

{

int id;// 定义一个整数变量,存放学号

string name;//学生姓名

int class;//课程号

int scores;//各科成绩

int totl_score;//各科总成绩

Student *head=NULL, *temp;// 定义两个结构体指针

cout<<”开始录入学生成绩:”;

while(1){cout<<“请输入学生学号:”;cin>>id;// 输入学号 if(id<0){// 学号为负数时结束录入break;录入学生信息 Student*input_data()

}

temp=new Student;// 向内存动态申请一个结构体结点 cout<<“请输入学生姓名:”;

for(int a=0;a<=sizeof(a[0]);a++){temp->id=id;// 将输入的学号存入结构体结点的学号成员变量temp->name=name;// 存入学生姓名

cout<<“请输入学生课程”+a+”的成绩:”;

cin>>scores;// 输入学号

totl_score=totl_score+scores;//总成绩

temp->class[a]=scores;// 课程1的成绩录入}

ave=totl_score/sizeof(a[0]);

}

// 打印不及格学生信息

void PrintFailStudent(Student*head)

{

cout<<”存在不及格学生信息:”;

cout<<“学号”<next)// 输出有不及格情况的学生信息cout<

id<class[0]<class[1]<class[2]<class[3]<class[4]<class[0]<60||p->class[1]<60||p->class[2]<60||p->class[3]<60||p->class[4]<60||){} return head;//返回头指针 temp->next=head;// 将结点连接到链表中去 head=temp;// 更新头指针

}

}

// 打印90平均分学生

void PrintSuccessStudent(Student*head){

}

// 释放链表中的所有到结点 void DeleteLink(Student*head){

} Student*p;while(head!=NULL)// 头指针非空时循环 {} p=head;// 记住当前头指针 head=head->next;//当前头指针移到下一个结点 delete p;// 删除结点 for(Student*p=head;p!=NULL;p=p->next)cout<<”平均分为90分以上的学生学号:”+p->id;if(p->ave>=90){}

第四篇:学生成绩管理报告

宁波大红鹰学院

项目名称:项目组长:项目成员:班级名称:专业名称:完成时间:信息工程学院

课 程 设 计 报 告

学生成绩管理系统

黄轮

蔡萍萍、邵芬芬、雷骁 09计科1、09计科2

计算机科学与技术

202_.11.3

信息工程学院制

目 录

1课程设计过程概述 ……………………………………………………………………….1 2课程设计题目描述和基本设计要求……………………………………………………...1 2.1课程设计题目描述……………………………………………………………………..1 2.2基本设计要求…………………………………………………………………………..1.3系统需求分析与设计………………………………………………………………………1 3.1系统需求分析…………………………………………………………………………..1 3.2其他需求分析…………………………………………………………………………..1 3.3系统设计………………………………………………………………………………..1 4各功能模块设计……………………………………………………………………………1 4.1学生成绩管理系统录入学生成绩模块设计…………………………………………..1 4.2求各门课程的平均分模块设计………………………………………………………..2.4.3求各门课程的最高分模块设计………………………………………………………..3 4.4求各门课程的最低分模块设计………………………………………………………..4 4.5查询所有学生信息的模块设计………………………………………………………..5 4.6查询个别学生成绩的模块设计………………………………………………………..5 4.7退出系统的模块设计……………………………………………………………….….6 5系统总代码……………………………………………………………………………..…..7 6课程设计总结……………………………………………………………………………...10.6.1遇到的问题及解决办法……………………………………………………………….10 6.2心得体会……………………………………………………………………………….10.学生成绩管理系统

1课程设计过程概述

在202_年11月,我们进行了JAVA课程的第一个课程设计学生成绩管理系统,要求我们在课后完成,并且及时接受答辩。这次课程设计的主要目的是结合Java程序设计课程,培养我们的思维,提高用Java编程的实际动手能力并增强大家对JavaZ这门课程的了解。这次课程设计的主要内容是独立用Java语言开发一个小的应用程序,学生成绩管理系统,从而深刻体会Java的应用性及其作用。

2课程设计题目描述和基本设计要求

2.1课程设计题目描述

我们设计的是学生成绩管理系统。主要用到的是做一个学生成绩管理的界面,可以在很短的时间内存储学生信息,并且及时查到某个学生的相关信息。2.2基本设计要求

(1)系统安全、灵活、可靠;

(2)功能齐全;

(3)操作方便、简单,界面友好;

3系统需求分析与设计

3.1系统需求分析

功能目标:

 输入班级n个同学的学号,姓名,四科成绩(应用数学、大学英语、Java程序设计、计算机应用基础)

 计算出每个学生四门课的平均成绩,并输出。

 输出全组各科平均分,最高分和最低分。 输入姓名查询成绩

3.2其他需求分析

技能要求:

 通过定义学生类,建立学生对象,学会运用面向对象思想进行程序设计。

 通过对学生信息的输入/输出,初步掌握Java基本输入/输出方法。 通过菜单处理,掌握字符界面的菜单处理能力。 了解复杂问题的分析、设计、规划的一般流程。

3.3系统设计

要求学生成绩管理系统用字符界面实现、也可用图形界面实现,并能实现客户端的查阅。

4各功能模块设计

4.1学生成绩管理系统录入学生成绩模块设计

录入学生的成绩,可以方便用户管理更多的信息 主要的功能代码:

case 1:

for(i=0;i

System.out.print(“请输入该生的学号:”);s[i].num=in.skip(“n”).nextLine();System.out.print(“请输入该生的姓名:”);s[i].name=in.nextLine();System.out.print(“请输入该生的应用数学成绩:”);s[i].Math_1=in.nextDouble();System.out.print(“请输入该生的英语成绩:”);s[i].English=in.nextDouble();System.out.print(“请输入该生的java成绩:”);s[i].Java_1=in.nextDouble();System.out.print(“请输入该生的计算机成绩:”);s[i].Computer=in.nextDouble();

} break;图1

4.2求各门课程的平均分模块设计

在这一界面我们要通过已有的数据,得出各门学科的平均分 主要的功能代码:

case 2:

double Math_1sum=0,Englishsum=0,Java_1sum=0,Computersum=0;double Math_1pj=0,Englishpj=0,Java_1pj=0,Computerpj=0;for(i=0;i

Englishsum=Englishsum+s[i].English;Java_1sum=Java_1sum+s[i].Java_1;Computersum=Computersum+s[i].Computer;} Math_1pj=Math_1sum/i;Englishpj=Englishsum/i;Java_1pj=Java_1sum/i;Computerpj=Computersum/i;System.out.println(i+“位同学应用数学的平均分为:”+Math_1pj);System.out.println(i+“位同学英语的平均分为:”+Englishpj);System.out.println(i+“位同学Java的平均分为:”+Java_1pj);System.out.println(i+“位同学计算机的平均分为:”+Computerpj);break;

图2

4.3求各门课程的最高分模块设计

在聊天界面中,用户可以得出各门课程的最高分 主要的界面代码为:

case 3:

double Math_1max=0,Englishmax=0,Java_1max=0,Computermax=0;for(i=0;i

if(s[i].Math_1>Math_1max)

Math_1max=s[i].Math_1;if(s[i].English>Englishmax)

Englishmax=s[i].English;if(s[i].Java_1>Java_1max)

Java_1max=s[i].Java_1;if(s[i].Computer>Computermax)Computermax=s[i].Computer;

} System.out.println(“应用数学最高分:”+Math_1max);System.out.println(“英语最高分:”+Englishmax);System.out.println(“Java最高分:”+Java_1max);System.out.println(“计算机最高分:”+Computermax);break;图3

4.4求各门课程的最低分模块设计

主要是能得出各门课程的最低分 主要的界面代码为:

case 4:

double Math_1min=120,Englishmin=120,Java_1min=120,Computermin=120;for(i=0;i

Math_1min=s[i].Math_1;if(s[i].English

Englishmin=s[i].English;

if(s[i].Java_1

Java_1min=s[i].Java_1;if(s[i].Computer

} System.out.println(“应用数学最低分:”+Math_1min);System.out.println(“英语最低分:”+Englishmin);System.out.println(“Java最低分:”+Java_1min);System.out.println(“计算机最低分:”+Computermin);break;

图4

4.5查询所有学生信息的模块设计

主要是为了快速的查出所有学生的信息

主要的界面代码为:

case 5:

for(i=0;i

System.out.print(“姓名:”+s[i].name);System.out.print(“应用数学:”+s[i].Math_1);System.out.print(“英语:”+s[i].English);System.out.print(“Java:”+s[i].Java_1);System.out.println(“计算机:”+s[i].Computer);} break;图5

4.6查询个别学生成绩的模块设计

主要是为了快速的查出个别学生的信息

主要的界面代码为:

case 6:

System.out.print(“请输入要查找的姓名:”);int j=0;String name=in.skip(“n”).nextLine();for(i=0;i

System.out.println(“学号:”+s[i].num);

System.out.println(“姓名:”+s[i].name);

System.out.println(“应用数学:”+s[i].Math_1);

System.out.println(“英语:”+s[i].English);

System.out.println(“Java:”+s[i].Java_1);

System.out.println(“计算机:”+s[i].Computer);

j=s.length;} } if(j==0)

System.out.println(“没有你要查找的人,请确认后再查找!”);

图6 break;

查无此人的情况下:

4.7退出系统的模块设计

当查询结束的时候可以顺利的退出。

主要的界面代码为:

case 7:

System.out.println(“byebye!”);

System.exit(0);default: System.out.println(“您输入的数字有误,应为1~7”);图7

5系统总代码

import java.util.*;class Student{

String num;

String name;double Math_1,English,Java_1,Computer;

} public class StudentMassage{

public static void main(String[] args){

Student[]s=new Student[3];int i;for(i=0;i

} while(true){ System.out.println(“**********学生成绩管理系统**********”);System.out.println(“1.录入学生成绩”);System.out.println(“2.求各门课程的平均分”);

System.out.println(“3.求各门课程的最高分”);System.out.println(“4.求各门课程的最低分”);System.out.println(“5.查询所有学生信息”);System.out.println(“6.查询个别学生成绩”);System.out.println(“7.退出系统”);System.out.print(“请选择:”);Scanner in=new Scanner(System.in);int x=in.nextInt();

switch(x){ case 1:

for(i=0;i

System.out.println(“请输入第”+(i+1)+“个学生的成绩信息”);

System.out.print(“请输入该生的学号:”);

s[i].num=in.skip(“n”).nextLine();System.out.print(“请输入该生的姓名:”);s[i].name=in.nextLine();System.out.print(“请输入该生的应用数学成绩:”);s[i].Math_1=in.nextDouble();System.out.print(“请输入该生的英语成绩:”);s[i].English=in.nextDouble();System.out.print(“请输入该生的java成绩:”);s[i].Java_1=in.nextDouble();System.out.print(“请输入该生的计算机成绩:”);s[i].Computer=in.nextDouble();}

break;case 2:

double Math_1sum=0,Englishsum=0,Java_1sum=0,Computersum=0;double Math_1pj=0,Englishpj=0,Java_1pj=0,Computerpj=0;

for(i=0;i

Math_1sum=Math_1sum+s[i].Math_1;Englishsum=Englishsum+s[i].English;Java_1sum=Java_1sum+s[i].Java_1;Computersum=Computersum+s[i].Computer;} Math_1pj=Math_1sum/i;Englishpj=Englishsum/i;Java_1pj=Java_1sum/i;Computerpj=Computersum/i;System.out.println(i+“位同学应用数学的平均分为:”+Math_1pj);System.out.println(i+“位同学英语的平均分为:”+Englishpj);System.out.println(i+“位同学Java的平均分为:”+Java_1pj);System.out.println(i+“位同学计算机的平均分为:”+Computerpj);break;case 3:

double Math_1max=0,Englishmax=0,Java_1max=0,Computermax=0;for(i=0;iMath_1max)

Math_1max=s[i].Math_1;if(s[i].English>Englishmax)

Englishmax=s[i].English;if(s[i].Java_1>Java_1max)

Java_1max=s[i].Java_1;if(s[i].Computer>Computermax)Computermax=s[i].Computer;

} System.out.println(“应用数学最高分:”+Math_1max);System.out.println(“英语最高分:”+Englishmax);System.out.println(“Java最高分:”+Java_1max);System.out.println(“计算机最高分:”+Computermax);break;case 4:

double Math_1min=120,Englishmin=120,Java_1min=120,Computermin=120;

for(i=0;i

Math_1min=s[i].Math_1;

if(s[i].English

Englishmin=s[i].English;if(s[i].Java_1

Java_1min=s[i].Java_1;if(s[i].Computer

} System.out.println(“应用数学最低分:”+Math_1min);System.out.println(“英语最低分:”+Englishmin);System.out.println(“Java最低分:”+Java_1min);System.out.println(“计算机最低分:”+Computermin);

}

}

}

}

break;case 5:

for(i=0;i

System.out.print(“学号:”+s[i].num);

System.out.print(“姓名:”+s[i].name);

System.out.print(“应用数学:”+s[i].Math_1);

System.out.print(“英语:”+s[i].English);

System.out.print(“Java:”+s[i].Java_1);

System.out.println(“计算机:”+s[i].Computer);} break;case 6:

System.out.print(“请输入要查找的姓名:”);int j=0;String name=in.skip(“n”).nextLine();for(i=0;i

if(s[i].name.equals(name)){

System.out.println(“学号:”+s[i].num);

System.out.println(“姓名:”+s[i].name);

System.out.println(“应用数学:”+s[i].Math_1);

System.out.println(“英语:”+s[i].English);

System.out.println(“Java:”+s[i].Java_1);

System.out.println(“计算机:”+s[i].Computer);

j=s.length;} } if(j==0)System.out.println(“没有你要查找的人,请确认后再查找!”);break;case 7:

System.out.println(“byebye!”);

System.exit(0);default: System.out.println(“您输入的数字有误,应为1~7”);6课程设计总结

6.1遇到的问题及解决办法

在此次课程设计中,我遇到了一些问题,如:不能很好的将C语言的代码转化成Java语言,对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。

对于以上的问题,自己有清楚的认识,首先必须要对计算机产生兴趣,多阅读相关的书籍,多跟精通此方面的老师和同学交流、像他们学习。还有就是应该多动手编程。6.2心得体会

由于对java这门课还未深入了解,这是第一次小组合作设计程序,刚开始我们对它真的是很无措的,不知道该从哪里入手;经过指导老师的部分讲解和演示,我们茅塞顿开,着手开始编写代码,可是写着写着就出现问题了,程序实现不了,也改不出错误;后来无意中一位组员将字体改变了一下,程序错误变少了。检查一发现我们程序中字体错竟占绝大部分。再想想,这是因为我们写的过程中不够仔细,对细节问题还不够注重,以致最后的程序出现大批量的错误。不过在我们的后续检查中,这一问题已经完全解决了。当然,写的过程中遇到的问题肯定不止这样的,但最后在指导师与我们齐心协力的修改后,这些难题将不是问题了。程序完成后,我们真的很开心,虽然困难重重,但我们最终还是有了一个很好的结束啊。

这个实验让我们对java有更进一步的了解,也让我们对它产生了极大地兴趣,希望我们以后两次的实验也能顺利完成。

第五篇:学生成绩管理系统

//*学生成绩管理系统*//

#include

#define N 3

struct student

{

int no;

char name[20];

float english;

float computer;

float math;

float average;

};

void getclass(struct student *class_gishui)

{

int i;

printf(“请输入%d个学生的学号 姓名 英语 计算机 数学n”,N);

for(i=0;i

{

printf(“第%d个学生”,i+1);

scanf(“%d%s%f%f%f”,&class_gishui[i].no,&class_gishui[i].name,&class_gishui[i].english,&class_gishui[i].computer,&class_gishui[i].math);

}

}

void print_class(struct student *class_gishui)

{

int i;

for(i=0;i

{

class_gishui[i].average=(class_gishui[i].english+class_gishui[i].computer+class_gishui[i].math)/3;

}

printf(“学生信息表如下:n”);

printf(“学号tt姓名tt英语tt计算机tt数学tt平均成绩n”);

for(i=0;i

printf(“%dtt%stt%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average);

}

void paixu(struct student *class_gishui)

{

int i,j,flag;

struct student t[1];

for(i=0;(i

{

flag=0;

for(j=0;j

if(class_gishui[j].average>class_gishui[j+1].average)

{

t[0]=class_gishui[j];

class_gishui[j]=class_gishui[j+1];

class_gishui[j+1]=t[0];

flag=1;

}

if(flag==0)

break;

}

printf(“排序后学生成绩为:n”);

printf(“学号t姓名t英语tt计算机tt数学tt平均成绩n”);

for(i=0;i

printf(“%dt%st%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average);

}

void main()

{

struct student class_gishui[N];

getclass(class_gishui);

print_class(class_gishui);

paixu(class_gishui);

}

学生成绩管理数据库的建立
TOP