用java做一个学生成绩管理系统 需要哪些技术

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java做一个学生成绩管理系统 需要哪些技术相关的知识,希望对你有一定的参考价值。

学校有数据库课程设计,现在就想提前学习一下相关技术,但不知道要哪些技术,下面是我预测的,不知道对不对?
1.网页本:html jsp servlet + 数据库
2.本地版:javase GUI + 数据库

还有一个就是:上课教了数据库的课程,是否不需要专门学习java的数据库技术了?

用java做一个学生成绩管理系统,可以用到如下技术:

后台:SSH框架,不用框架的话,单纯地用JSP + Servlet也可以。

前台:html + css + js + jquery

数据库:掌握SQL语言的编写,数据库的连接。复杂的项目还需要用到存储过程。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高

效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话

和互联网,同时拥有全球最大的开发者专业社群。

Java由四方面组成:

1、Java编程语言,即语法。

2、Java文件格式,即各种文件夹、文件的后缀。

3、Java虚拟机(JVM),即处理*.class文件的解释器。

4、Java应用程序接口(Java API)。

参考技术A 用java做一个学生成绩管理系统,可以用到如下技术:

后台:SSH框架,不用框架的话,单纯地用JSP + Servlet也可以。

前台:html + css + js + jquery

数据库:掌握SQL语言的编写,数据库的连接。复杂的项目还需要用到存储过程。
参考技术B 你说的基本上正确,
要做这样的项目,如果是web版本,从前台到后台主要涉及下面技术:
前台:jsp+js
中间层:java语言,并通过java的驱动和接口来调用数据库,进行增删改查。
后台:数据库知识及sql写法
了解以上就差不多了。追问

需要servlet吗?我只知道jsp是服务器编程的,但servlet干什么不知道。

追答

需要的,servlet是接受jsp的请求,然后进行后天处理(查询数据库等等),然后进行跳转。

参考技术C 当然,你学会一个就好了,但是数据库本来就是要和程序结合起来使用的,如果你学过一个学其他也是很荣容易的 参考技术D 我才做了一个学生成绩管理系统的.全套代码+文档+rose图.
前台用的struts2
后台用的struts2+hibernate..
留下email,给分就发.

世上所有美好的感情加在一起,也抵不上一桩高尚的行动。

学生成绩管理系统

解析:

最近帮朋友做的一个相当于课程设计的学生成绩管理系统,她们要求是用c语言写,对于一个用惯c++的孩子来说真是感觉写起来的各种限制真心感觉到无语,不说了直接上代码

#include "student.h"


void main()
{
	char ch='0';
	int index=0;
	char id[ID_SIZE];
	student students;
	student phead;

	FILE *output=fopen("output.txt","w+");
	FILE *input=fopen("input.txt","r");	
	
	if(input==NULL)
	{
		printf("打开失败input\n");
		exit(1);
	}
	if(input==NULL)
	{
		printf("打开失败output\n");
		exit(1);
	}
	phead.next=NULL;

	InitStudent(&students);

	
	while(1)
	{
		ShowList();
		printf("请选择:");
		ch=getchar();
		switch(ch)
		{
		case '1':
			Student_Insert(&students);
			break;
		case '2':
			Student_Display(&students);
			break;
		case '3':
			{
				printf("请输入需要查找多少个学生:");
				scanf("%d",&index);
				Student_DisplaySingle(&students,index);
			}
			break;
		case '4':
			{
				printf("请输入需要删除的学号:");
				scanf("%s",id);
				Student_Delete(&students,id);
			}
			break;
		case '5':
			Student_Modify(&students);
			break;
		case '6':
			{
				printf("请输入需要查找学生姓名:");
				scanf("%s",id);
				Student_Select(&students,id);
			}
			break;
		case '7':
			Student_SortByAverage(&students,&phead);
			break;
		case '8':
			{
				IO_ReadInfo(&students,output);
				fclose(output);
			}
			break;
		case '9':
			{
				IO_WriteInfo(&students,output);
				fclose(output);
			}
			break;
		case '0':
			{
				printf("欢迎使用学生管理成绩系统\n");
				exit(1);
			}
		default:
			break;
		}
		getchar();
	}
}


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <string.h>
#define ID_SIZE 128
#define NAME_SIZE 128
#define SIZE 125


struct student
{
	char Id[ID_SIZE];  //学生学号
	char Name[NAME_SIZE]; //学生姓名
	float Math;   //数学
	float English; //英语
	float Chinese;  //语文
	float TotalScore; //总分
	float AverageScore; //平均分
	int PassStudent;  //及格人数
	struct student *next;
};
typedef struct student student;
static float PassRate=0.0;   //及格率

//初始化学生信息
void InitStudent(student *head)
{
	strcpy(head->Id,"");
	strcpy(head->Name,"");
	head->Chinese=0.0;
	head->English=0.0;
	head->Math=0.0;
	head->PassStudent=0;
	head->TotalScore=0;
	head->next=NULL;
}

//插入学生成绩
void Student_Insert(student *head)
{
	int flag=0;
	student *cur=head;
	student *tmp=(student *)malloc(sizeof(student));
	tmp->next=NULL;
	assert(tmp !=NULL);

	printf("***开始录入学生信息***\n");
	printf("请输入学号:");
	scanf("%s",tmp->Id);
	printf("请输入姓名:");
	scanf("%s",tmp->Name);
	printf("请输入数学成绩:");
	scanf("%f",&tmp->Math);
	printf("请输入英语成绩:");
	scanf("%f",&tmp->English);
	printf("请输入语文成绩:");
	scanf("%f",&tmp->Chinese);
	tmp->TotalScore=tmp->Chinese+tmp->English+tmp->Math;
	tmp->AverageScore=tmp->TotalScore/3;

	tmp->PassStudent=0;
	if(tmp->Chinese >=60)
		tmp->PassStudent++;
	if(tmp->English >=60)
		tmp->PassStudent++;
	if(tmp->Math >=60)
		tmp->PassStudent++;

	if(tmp->PassStudent==3)
		flag++;
	tmp->AverageScore=tmp->TotalScore/3;

	printf("学生及格人数:%d\n",flag);
	
	while(cur->next !=NULL)
		cur=cur->next;
	cur->next=tmp;
}
/*删除学生信息*/
void Student_Delete(student *head,char *id)
{
	student *del=NULL;
	student *cur=head;
	while(cur->next !=NULL)
	{
		if(strcmp(cur->next->Id,id)==0)
		{
			del=cur->next;
			cur->next=del->next;
			free(del);
			printf("删除成功\n");
			return;
		}
		cur=cur->next;
	}
	printf("删除失败\n");
}
/*修改学生信息*/
void Student_Modify(student *head)
{
	char number[ID_SIZE];
	int flag=0;
	student *cur=head->next;
	assert(cur !=NULL);
	printf("请输入学生学号:");
	scanf("%s",number);
	printf("开始查找\n");
	while(cur !=NULL)
	{
		if(strcmp(cur->Id,number)==0)
		{
			printf("请输入准备修改的语文成绩:");
			scanf("%f",&cur->Chinese);
			printf("请输入准备修改的数学成绩:");
			scanf("%f",&cur->Math);
			printf("请输入准备修改的英语成绩:");
			scanf("%f",&cur->English);
			flag=1;
			break;
		}
		cur->next;
	}
	if(flag)
		printf("修改成功\n");
	else
		printf("修改失败\n");
}
/*按姓名查询*/
void Student_Select(student *head,char *name)
{
	student *cur=head->next;
	while(cur!=NULL)
	{
		if(strcmp(cur->Name,name)==0)
		{
			printf("存在这个学生\n");
			return;
		}
		cur=cur->next;
	}
	printf("按姓名查找失败\n");
}
/*显示单条学生记录*/
void Student_DisplaySingle(student *head,int index)
{
	int count=1;
	student *cur=head->next;
	while(count <index && cur !=NULL)
	{
		cur=cur->next;
		count++;
	}
	if(count >index)
		printf("没有这个学生\n");
	else
	{
		printf("%s\t%s\t%.3f\t%.3f\t%.3f\t",cur->Id,cur->Name,cur->Chinese,cur->Math,cur->English);
		printf("%.3f\t%.3f\n",cur->AverageScore,cur->TotalScore);
	}	
}


//显示所有学生成绩
void Student_Display(student *head)
{
	int count=0;
	int number=0;
	student *cur=head->next;
	printf("学号\t姓名\t语文\t数学\t英语\t平均分\t总分\n");
	while(cur !=NULL)
	{
		printf("%s\t%s\t%.3f\t%.3f\t%.3f\t",cur->Id,cur->Name,cur->Chinese,cur->Math,cur->English);
		printf("%.3f\t%.3f\n",cur->AverageScore,cur->TotalScore);
		if(cur->Chinese >=60 && cur->English>=60 && cur->Math>=60)
			count++;
		cur=cur->next;
		number++;
	}
	PassRate=(float)count/number*100;
	printf("及格率:%.1f%%\n",PassRate);
}

/*按平均值排序*/
void Student_SortByAverage(student *head,student *phead)
{
	student *pcur=NULL;
	student *tmp=NULL;
	student *ptmp=NULL;

	student *cur=head->next;

	while(cur !=NULL)
	{
		pcur=cur;
		while(pcur !=NULL && pcur->AverageScore ==INT_MAX)
				pcur=pcur->next;
		if(pcur==NULL)
			break;
		tmp=pcur;
		while(pcur !=NULL)
		{	
			if(pcur->AverageScore > tmp->AverageScore && pcur->AverageScore !=INT_MAX)
			{
				tmp=pcur;
			}
			pcur=pcur->next;
		}

		if(tmp->AverageScore !=INT_MAX)
		{
			ptmp=(student *)malloc(sizeof(student));
			assert(ptmp !=NULL);

			strcpy(ptmp->Id,tmp->Id);
			strcpy(ptmp->Name,tmp->Name);

			ptmp->Chinese=tmp->Chinese;
			ptmp->English=tmp->English;
			ptmp->Math=tmp->Math;

			ptmp->AverageScore=tmp->AverageScore;
			ptmp->PassStudent=tmp->PassStudent;
			ptmp->TotalScore=tmp->TotalScore;

			ptmp->next=phead->next;
			phead->next=ptmp;

			tmp->AverageScore=INT_MAX;
		}
	}
	Student_Display(phead);
}

/*将学生信息从文件读出*/
void IO_ReadInfo(student *head,FILE *path)
{
	student *cur=head->next;
	while(cur !=NULL)
	{
		if(fread(cur,sizeof(student),1,path) < 0)
		{
			printf("fread failed\n");
			break;
		}
		cur=cur->next;
	}
	printf("读入成功\n");
}
/*将学生信息写入文件*/
void IO_WriteInfo(student *head,FILE *path)
{
	student *cur=head->next;
	while(cur !=NULL)
	{
		fprintf(path,"%s %s %f %f %f %f %f %d %s",			cur->Id,cur->Name,cur->Math,cur->English,cur->Chinese,			cur->TotalScore,cur->AverageScore,cur->PassStudent,"\n");
		cur=cur->next;
	}
	printf("写入数据成功\n");
}

//显示列表
void ShowList()
{
	printf("**********************************************\n");
	printf("**【1】插入学生成绩 【2】显示全部学生信息   **\n");
	printf("**【3】显示单个学生 【4】删除学生信息       **\n");
	printf("**【5】修改学生信息 【6】按姓名查询         **\n");
	printf("**【7】按平均值排序 【8】从文件读出学生信息 **\n");
	printf("**【9】写入文件     【0】退出学生管理系统   **\n");
	printf("**********************************************\n");

}


以上是关于用java做一个学生成绩管理系统 需要哪些技术的主要内容,如果未能解决你的问题,请参考以下文章

用java编写一个学生成绩管理系统. //1.学生类 学号 姓名 年龄 语数外三科成绩(三科成绩)?

用Python编写学生成绩分析系统

使用Jsp+Servlet+JavaBean技术做学生成绩管理系统

java的学生成绩管理系统(swing环境)

制作学生信息(姓名,学号,成绩)管理系统(用Java)

求java学生成绩管理系统(简单点好,小弟初学怕看不懂)