Java 石家庄铁道大学软件工程系 学生学籍管理系统 2019 版

本系统的作用是简单实现一些学生成绩管理操作:录入,修改,绩点计算,以及系统退出等。

首先建一个主函数实现界面的实现,然后建一个数据类用来定义存放数据。之后建立一个工具类,用来实现所有要进行的操作。首先实例化数据类,给他开辟一个可存放五组数据的数组空间,之后进行数据类的构造,然后调用赋值函数实现初始数据的存入,之后开始创建录入函数,尤其是录入界面的实现,每输一个数据进行一次界面的更新。然后先将录入的数据用新定义的变量来存取,之后输入完全后当输入"Y”时,将数据存放在数组中,输入“N”则返回主界面。之后修改函数先将录入完成界面进行输出,然后用switch函数实现选择修改的数据,然后每次修改一个数据后输入YN来判定,是Y的话存入,N的话返回。最后成绩绩点定义一个函数实现绩点的计算,然后输出时调用该函数进行输出。之后进行平均绩点的计算与输出,然后用if语句判断平均绩点的大小进行对应的输出。

具体实现代码如下:

//20183714 1805-2 董维学
package text;

import java.util.Scanner;

public class jiemian {

public static void main(String[] args) {
tools tool=new tools();
tool.chushi();
A:while(true)//循环输出界面,并使退出界面成为可行。
{System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系");
System.out.println(" 学生学籍管理系统 2019版");
System.out.println("***********************************************************");
System.out.println(" 1、 学生考试成绩录入;");
System.out.println(" 2、 学生考试成绩修改;");
System.out.println(" 3、 计算学生成绩绩点;");
System.out.println(" 4、退出学籍管理系统;");
System.out.println("**********************************************************");

Scanner scanner =new Scanner(System.in);
switch(scanner.nextInt()) {
case 1:
System.out.println("你选择了学生考试成绩录入;");
tool.luru();
break;
case 2:
System.out.println("你选择了 学生考试成绩修改;");
tool.update();
break;
case 3:
System.out.println("你选择了计算学生成绩绩点;");
tool.jidian();
break;
case 4:
System.out.println("***********************************************************");
System.out.println(" 谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 制作人:董维学");
System.out.println("***********************************************************");
break A;
default:
System.out.println("输入错误请重新输入");
break ;
}
}
}
}

package text;

public class ScoreInformation {
private String stunumber;
private String name;
private double mathmaticsscore;
private double englishiscore;
private double networkscore;
private double databasescore;
private double softscore;
public String getStunumber() {
return stunumber;
}
public void setStunumber(String stunumber) {
this.stunumber = stunumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMathmaticsscore() {
return mathmaticsscore;
}
public void setMathmaticsscore(double mathmaticsscore) {
this.mathmaticsscore = mathmaticsscore;
}
public double getEnglishiscore() {
return englishiscore;
}
public void setEnglishiscore(double englishiscore) {
this.englishiscore = englishiscore;
}
public double getNetworkscore() {
return networkscore;
}
public void setNetworkscore(double networkscore) {
this.networkscore = networkscore;
}
public double getDatabasescore() {
return databasescore;
}
public void setDatabasescore(double databasescore) {
this.databasescore = databasescore;
}
public double getSoftscore() {
return softscore;
}
public void setSoftscore(double softscore) {
this.softscore = softscore;
}
public void fuzhi(String stunumber,String name,double mathmaticsscore,double englishiscore,double networkscore,double databasescore,double softscore)
{
this.stunumber = stunumber;
this.name = name;
this.mathmaticsscore = mathmaticsscore;
this.englishiscore = englishiscore;
this.networkscore = networkscore;
this.databasescore = databasescore;
this.softscore = softscore;
}//进行数据的赋值。
}

package text;

import java.util.Scanner;
public class tools {
ScoreInformation[] sco =new ScoreInformation[5];
Scanner scanner =new Scanner(System.in);
public void gouzao()
{
for(int i=0;i<5;i++)
sco[i]=new ScoreInformation();
}
public void chushi()//初始输入五个学生的学号姓名。
{
gouzao();
String a1,a2,a3,a4,a5;
String b1,b2,b3,b4,b5;
a1="20183714";
a2="65164651";
a3="31654313";
a4="16546131";
a5="13584135";
b1="董维学";
b2="小明";
b3="小红";
b4="小李";
b5="小刚";
sco[0].fuzhi(a1, b1, 0, 0, 0, 0, 0);
sco[1].fuzhi(a2, b2, 0, 0, 0, 0, 0);
sco[2].fuzhi(a3, b3, 0, 0, 0, 0, 0);
sco[3].fuzhi(a4, b4, 0, 0, 0, 0, 0);
sco[4].fuzhi(a5, b5, 0, 0, 0, 0, 0);
}
public void luru()//学生信息的录入
{

System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println("***********************************************************");
System.out.println("请输入学生学号:");
System.out.println("***********************************************************");
String num=scanner.next();
for(int j=0;j<=5;j++)
{
if(j<5)
{if(num.equals(sco[j].getStunumber()))
{ System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+num);
System.out.println(" 学生姓名:"+sco[j].getName());
System.out.println(" 请输入高等数学成绩: ");
System.out.println("***********************************************************");
double g=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println(" 学生学号:"+num);
System.out.println(" 学生姓名:"+sco[j].getName());
System.out.println(" 高等数学成绩"+g);
System.out.println(" 请输入大学英语成绩: ");
System.out.println("***********************************************************");
double y=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+num);
System.out.println(" 学生姓名:"+sco[j].getName());
System.out.println(" 高等数学成绩:"+g);
System.out.println(" 大学英语成绩:"+y);
System.out.println(" 请输入计算机网络成绩: ");
System.out.println("***********************************************************");
double w=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+num);
System.out.println(" 学生姓名:"+sco[j].getName());
System.out.println(" 高等数学成绩:"+g);
System.out.println(" 大学英语成绩:"+y);
System.out.println(" 计算机网络成绩:"+w);
System.out.println(" 请输入数据库成绩: ");
System.out.println("***********************************************************");
double s=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println("***********************************************************");
System.out.println(" 学生学号;"+num);
System.out.println(" 学生姓名:"+sco[j].getName());
System.out.println(" 高等数学成绩:"+g);
System.out.println(" 大学英语成绩:"+y);
System.out.println(" 计算机网络成绩:"+w);
System.out.println(" 数据库成绩:"+s);
System.out.println(" 请输入软件工程成绩: ");
System.out.println("***********************************************************");
double r=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+num);
System.out.println(" 学生姓名:"+sco[j].getName());
System.out.println(" 高等数学成绩:"+g);
System.out.println(" 大学英语成绩:"+y);
System.out.println(" 计算机网络成绩:"+w);
System.out.println(" 数据库成绩:"+s);
System.out.println(" 软件工程成绩:"+r);
System.out.println("该学生成绩已录入完毕,是否提交(Y/N)");
System.out.println("***********************************************************");
String x=scanner.next();
if(x.equals("Y"))
{
sco[j].fuzhi(num, sco[j].getName(), g, y, w, s, r);
System.out.println("数据存入成功");
}
else if(x.equals("N"))
{ System.out.println("数据存入取消,请重新输入。");
luru();}
}
break;
}
if(j==5)
{
System.out.println("该学号不存在");
}
}
}

public void update()
{
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩修改");
System.out.println("***********************************************************");
System.out.println("请输入你要修改的学生学号:");
System.out.println("**********************************************************");
String n=scanner.next();
for(int i=0;i<6;i++)
{
if(i<5)
{ if(n.equals(sco[i].getStunumber()))
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学成绩:"+sco[i].getMathmaticsscore());
System.out.println(" 2、 大学英语成绩:"+sco[i].getEnglishiscore());
System.out.println(" 3、 计算机网络成绩:"+sco[i].getNetworkscore());
System.out.println(" 4、 数据库成绩:"+sco[i].getDatabasescore());
System.out.println(" 5、 软件工程成绩:"+sco[i].getSoftscore());
System.out.println("***********************************************************");
System.out.println("请输入你要修改的成绩:");
int q=scanner.nextInt();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
switch(q){
case 1:
System.out.println("请输入修改后的高数成绩");
double g=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学成绩:"+g);
System.out.println(" 2、 大学英语成绩:"+sco[i].getEnglishiscore());
System.out.println(" 3、 计算机网络成绩:"+sco[i].getNetworkscore());
System.out.println(" 4、 数据库成绩:"+sco[i].getDatabasescore());
System.out.println(" 5、 软件工程成绩:"+sco[i].getSoftscore());
System.out.println("该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("***********************************************************");
String x=scanner.next();
if(x.equals("Y"))
{ sco[i].setMathmaticsscore(g);
break;}
else if(x.equals("N"))
update();
break;
case 2:
System.out.println("请输入修改后的大学英语成绩");
double y=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学成绩:"+sco[i].getMathmaticsscore());
System.out.println(" 2、 大学英语成绩:"+y);
System.out.println(" 3、 计算机网络成绩:"+sco[i].getNetworkscore());
System.out.println(" 4、 数据库成绩:"+sco[i].getDatabasescore());
System.out.println(" 5、 软件工程成绩:"+sco[i].getSoftscore());
System.out.println("该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("***********************************************************");
String e=scanner.next();
if(e.equals("Y"))
sco[i].setEnglishiscore(y);
else if(e.equals("N"))
update();
break;
case 3:
System.out.println("请输入修改后的计算机网络成绩");
double w=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学成绩:"+sco[i].getMathmaticsscore());
System.out.println(" 2、 大学英语成绩:"+sco[i].getEnglishiscore());
System.out.println(" 3、 计算机网络成绩:"+w);
System.out.println(" 4、 数据库成绩:"+sco[i].getDatabasescore());
System.out.println(" 5、 软件工程成绩:"+sco[i].getSoftscore());
System.out.println("该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("***********************************************************");
String t=scanner.next();
if(t.equals("Y"))
sco[i].setNetworkscore(w);
else if(t.equals("N"))
update();
break;
case 4:
System.out.println("请输入修改后的数据库成绩");
double s=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学成绩:"+sco[i].getMathmaticsscore());
System.out.println(" 2、 大学英语成绩:"+sco[i].getEnglishiscore());
System.out.println(" 3、 计算机网络成绩:"+sco[i].getNetworkscore());
System.out.println(" 4、 数据库成绩:"+s);
System.out.println(" 5、 软件工程成绩:"+sco[i].getSoftscore());
System.out.println("该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("***********************************************************");
String u=scanner.next();
if(u.equals("Y"))
sco[i].setDatabasescore(s);
else if(u.equals("N"))
update();
break;
case 5:
System.out.println("请输入修改后的软件工程成绩");
double r=scanner.nextDouble();
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学成绩:"+sco[i].getMathmaticsscore());
System.out.println(" 2、 大学英语成绩:"+sco[i].getEnglishiscore());
System.out.println(" 3、 计算机网络成绩:"+sco[i].getNetworkscore());
System.out.println(" 4、 数据库成绩:"+sco[i].getDatabasescore());
System.out.println(" 5、 软件工程成绩:"+r);
System.out.println("该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("***********************************************************");
String o=scanner.next();
if(o.equals("Y"))
sco[i].setSoftscore(r);
else if(o.equals("N"))
update();
break;
}
break;
}
if(i==5)
{ System.out.println("输入学号有误");
break;}
}
}
public double jdjs(double x)
{ double a = 0;
if(x>=90)
a= 4;
if(x>=85 &&x<=89.9)
a=3.7;
if(x>=82 &&x<=84.9)
a=3.3;
if(x>=78 &&x<=81.9)
a=3.0;
if(x>=75 &&x<=77.9)
a=2.7;
if(x>=72 &&x<=74.9)
a=2.3;
if(x>=68 &&x<=71.9)
a=2.0;
if(x>66 &&x<=67.9)
a=1.7;
if(x>64 &&x<=65.9)
a=1.5;
if(x>60 &&x<=63.9)
a=1.0;
else a=0;
return a;

}

public void jidian()
{
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试绩点统计");
System.out.println("***********************************************************");
System.out.println("请输入学生学号:");
System.out.println("**********************************************************");
String n=scanner.next();
for(int i=0;i<6;i++)
{
if(i<5)
{ if(n.equals(sco[i].getStunumber()))
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+sco[i].getStunumber());
System.out.println(" 学生姓名:"+sco[i].getName());
System.out.println(" 1、 高等数学绩点:"+jdjs(sco[i].getMathmaticsscore()));
System.out.println(" 2、 大学英语绩点:"+jdjs(sco[i].getEnglishiscore()));
System.out.println(" 3、 计算机网络绩点:"+jdjs(sco[i].getNetworkscore()));
System.out.println(" 4、 数据库绩点:"+jdjs(sco[i].getDatabasescore()));
System.out.println(" 5、 软件工程绩点:"+jdjs(sco[i].getSoftscore()));
double m=0;
m=jdjs(sco[i].getMathmaticsscore())*4+jdjs(sco[i].getEnglishiscore())*3+jdjs(sco[i].getNetworkscore())*4+jdjs(sco[i].getDatabasescore())*3+jdjs(sco[i].getSoftscore())*2;
double num=0;
num=m/16;
System.out.println(" 你的平均学分绩点为:"+String.format("%.2f", num));
if(num>=2)
System.out.println(" 你的学分绩点已达到毕业要求! ");
else
System.out.println(" 你的学分绩点不满足毕业要求! ");
System.out.println("是否返回主系统(Y/N)");
System.out.println("***********************************************************");
B:while(true)
{String o=scanner.next();
if(o.equals("Y"))
break B;
}
break;
}

if(i==5)
{System.out.println("未查到该学号!");
break;
}

}
}
}

转载于:https://www.cnblogs.com/dwx8845/p/11507201.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用户描述 1.引言 随着信息技术高速发展,信息化程度的不断提高,计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关愈来愈密切,还有人由于计算机操作的不方便而继续沿用传统的手工劳动。 为了适应现代社会的高效率,提高当前在教学领域的管理水平,我们特开发一套学籍管理统。 该统由目前主流的程序设计开发工具实现,其功能在统内部由源代码直接完成。通过操作手册,用户可以了解本软件的基本工作原理。操作人员只需输入一些简单的汉字、数字,即可达到自己的目标,从而为教学办公自动化带来了极大的方便。 1.1编写目的 此文档作为用户对即将开发的软件的功能要求,是软件设计和开发者的主要依据。 1.2项目背景 项目名称:学生学籍管理信息统 项目委托单位:XXX 软件开发单位:hustwh_xj 2.任务描述 2.1目标 使得学籍管理更为完善; 对学生档案的管理更为方便; 减轻教学管理人员的工作量。 2.2运行环境 本统是基于C/S模式的采用vb实现的学生管理信息统(Students Management Information System),以后简称SMIS。数据库服务器由access实现。操作统:WINDOWS xp;数据库服务器端软件Microsoft Access2000 + SQL查询语句。 3.数据描述 1. 数据流程图: 用 户 统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 2.针对这个处理流程,现具体描述如下: ① 用户登录:对统进行初始化设置,包括对专业、课程和班级的设置 ② 新生报到:按专业分班进行教学,并为每位新生分配学号,然后对学生基本信息进行录入, ③ 学生分配到班级、领教材开始新的大学学习生活 ④ 用户对学生在校期间个人基本信息发生变化的,在统中进行修改 ⑤ 期末考试结束,把每个学生的成绩进行录入、修改、查询和打印 3.功能 3.1功能划分 学生档案管理统必须完成以下功能: 统管理模块学籍管理模块,班级管理模块,专业课程管理模块,成绩管理模块,用户帮助模块。 3.2描述 统管理模块:包括用户管理,重新登录,退出统子功能 学籍管理模块:包括学生添加学生查询学生注销学生打印子功能。 班级管理模块:包括添加,查询,注销班级子功能。 专业课程管理模块:包括设置专业,设置课程,查询修改子功能。 成绩管理模块:添加成绩。 用户帮助模块:对各个病人的生理信号的安全范围进行输入、修改、查询。 二、可行性分析 1.可行性研究的前提 学生档案管理统必须完成以下功能: ① 数据添加功能:对于新生报到,统必须具有班级的建立,课程的设置,如果新增专业,则能添加新专业,期末学生的考试成绩信息必须能够录入; ② 数据修改功能: 当上述资料发生变化或有错误信息输入时,应能够及时对数据进行修改和补充; ③ 数据查询功能:该统的主要功能之一即根据用户提供的相关信息,能够及时查找出对应的学生信息,统应该提供多种查询方法,以便满足用户的不同需求; ④ 数据打印功能: 学生基本信息和成绩录入后应可以打印出来形成文字档案,装入学生档案,这也是学生档案管理统必须具备的功能。 2.技术可行性 a. 经费、投资方面的来源和限制:各种硬件和工作人员工资需至少1万元 b. 硬件、软件、运行环境和开发环境方面的条件和限制:软件需求:操作统WINDOWS 2000 Advance Server以上;数据库服务器端软件access。硬件需求:10M以上的LAN接入网络带宽,P4 3.0G Xeon CPU /1G内存/360G(10K) SCSI硬盘的服务器,P3以上微机(带网卡)的客户机,P4 3.0G Xeon CPU /1G内存/36G(10K) RAID硬盘的数据库服务器 本统采用vb实现,依靠其强大的控件统,access数据库管理统和用c语音编制的传感器驱动相结合,能在2个月内开发出统。 3.经济可行性 学校如果要采用完全人工的方式处理,现在看来基本上是不太可能的。首先是一个存放的问题,必需要有一个足够大的档案室来存放这些档案,而且随着年数的增加,这个规模几乎是成几何式的增长。其次是存取,查阅的问题,随着档案的不断增加,要从如此复杂的档案库中调阅某学生的档案所消耗的人力物力是无法估量的,而且学生档案本身就很复杂,要查阅或者修改其中的某一项值,其修改的冗余度太大。最后是 一个保存和管理的问题,纸质媒介存放时间短,体积大,需要的人力物力过大。虽然制作一个数据管理统的前期投资相对较大,但后期除了统的维护升级和少量人力的投入以外几乎无其他投资,随着时间的推移,就会逐步显现经济上的巨大优势。 4.法律可行性 法律可行性是考虑要开发统是否存在任何侵犯、妨碍和责任问题,用户操作可行性考虑待开发软件的运行方式在用户组织内是否行得通,现行管理制度、人员素质、操作知识是否可行。 由于在本统中是有合同作为双方合作的基础,所以不会存在任何侵犯、妨碍和责任问题。即使存在了,也可以根据合同进行分析,一定有人会负责任,所以此统完全可以进行开发。 由以上经济、技术、操作和法律四方面的分析可以看出,本统的开发时机成熟,从多种角度考虑,都是可行的。 5结论 本统投资势在必行。 三、需求分析 用户需求分析 根据统分析得到的现行业务处理流程,在反复研究后,首先得到目标统即学生档案管理统的业务流程,其处理流程如图所示 用 户 统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 针对新的处理流程,现具体描述如下: ① 用户登录:对统进行初始化设置,包括对专业、课程和班级的设置 ② 新生报到:按专业分班进行教学,并为每位新生分配学号,然后对学生基本信息进行录入, ③ 学生分配到班级、领教材开始新的大学学习生活 ④ 用户对学生在校期间个人基本信息发生变化的,在统中进行修改 ⑤ 期末考试结束,把每个学生的成绩进行录入、修改、查询和打印 3.1 用户调查 经过详细的调研,并多次与学生档案管理的老师进行研讨后,首先加深了对学生信息管理统业务的深刻了解,其次在充分熟悉学生档案管理业务的同时,将整个学生档案管理的业务流程描述如下: ○1 新生入校,首先报到并进行登记注册,然后到财务部门缴费。根据学生被录取的专业,持缴费单到所在部报到注册。 ○2 到或部注册后,根据选报专业分配到班级 ○3 进入正常大学生活,参加各种教学活动,学期期末要求每位同学参加各科的期末考试。 ○4 考试结束,由各或部将每位学生的考试成绩及其他一些相关信息记录到每个同学的档案中。 根据以上总结,得出可行的业务流程图 办理登记手续 部 安排课程 档案信息 开始学习活动 3.2 构造统的逻辑模型 根据现行学生信息管理的业务流程,确定数据流图中的源点和终点都选定为学生,如此就得到了学生档案管理统的基本统模型。 学生基本信息 学生成绩信息 根据基本统模型,逐步细化,得到描绘逻辑统细化后的数据流图。 D1 学生信息表 D3 课程信息表 学生基 本信息 课程信息 新生报到 1.2 1.3 成绩信息 注册 建档分班 课程确定 班级 信息 D2 班级信息表 D4 成绩信息表 学生 毕业分档 1.4 成绩信息 处理档案 统的主要数据元素的数据字典卡片,以具体说明数据字段卡片中相关数据的含义 3.3 数据分析——概念模型设计 分析用户对数据的要求。 3.4.1 数据库建模 实体:学生、课程、专业、班级等。它们的实体图分别如图所示 学生实体 学号 姓名 政治面貌 性别 出生日期 家庭住址 课程实体 课程名称 课 程 所属专业 专业实体 专业名称 专 业 所属院 班级实体 班级名称 人 数 所属院 班 级 所在教室 辅导员 根据两两实体之间的联,然后进行合并,给出所有实体的联图即E-R图,如图1所示 课程 学 学生 成绩 属于 班级 属于 专业 图1.9 学生信息管理的E-R图 3.4.2 关描述的设计 学生(学号、姓名、性别、政治面貌、出生日期、专业、班级、家庭住址、联方式、备注) key为学号, 课程(课程名称、所属专业)key为课程名称, 专业(专业名称、所属院)key为专业名称 班级(班级名称、所属院、辅导员、教室、人数)key为班级名称 成绩(学号、姓名、专业、课程名称、成绩)key为学号与课程名称 在考虑统安全的前提下,需要增加用户关,其关模式如下: 用户(用户名称、密码、用户ID)key为用户名称 得出以上关后,根据关数据库的理论要求,需要对所有关进行关规范化。 统设计 统设计一般分为总体设计和详细设计,进过需求分析阶段的工作,已经清楚统必须完成的工作,下面的工作就是决定“如何做”的问题。总体设计的基本目的就是“概括地说统应该如何实现?”。通过该阶段的工作将划分出组成统的物理元素——程序、文件、数据库、文档等,另一方面的主要工作就是设计软件的结构,即确定统都由哪些模块组成及模块之间的相互关。 3.5 软件统结构的设计 3.5.1得到新的业务流程 目标统即学生档案管理统的业务流程 用 户 统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 具体描述如下: ① 用户登录:对统进行初始化设置,包括对专业、课程和班级的设置 ② 新生报到:按专业分班进行教学,并为每位新生分配学号,然后对学生基本信息进行录入, ③ 学生分配到班级、领教材开始新的大学学习生活 ④ 用户对学生在校期间个人基本信息发生变化的,在统中进行修改 ⑤ 期末考试结束,把每个学生的成绩进行录入、修改、查询和打印 3.5.2 统功能结构图 学生信息管理统的统功能结构图。 学生档案管理统 学籍管理 添加用户 修改密码 退出统 添加学籍 修改学籍 删除学籍 打印信息卡 班级管理 专业与课程 添加班级 修改班级 专业信息 课程信息 设置专业课程 添加专业信息 设置课程 添加课程 修改课程 成绩管理 添加成绩 查询修改成绩 打印成绩单 3.6 数据库的设计 3.6.1 数据库的逻辑设计 根据前面得到的各个关,现把它们转化为数据表。 ① 学生信息表 ② 课程信息表 ③ 专业信息表 ④ 班级信息表 ⑤ 成绩信息表 ⑥ 用户表 3.6.2 数据库的物理设计 考虑程序设计的简易性及通用性,本学生管理信息统采用Microsoft的Access2000数据库,并在其下创建6个数据表,结构分别如下: ① 学生信息表(student),共有10个字段,分别为:学号、姓名、性别、政治面貌、出生日期、专业、班级、联电话、家庭住址、备注。 表1 学生信息表的结构 字段名 数据类型 字段长度与格式 关 键 字 学号 文本 15 是 姓名 文本 8 否 性别 文本 2 否 政治面貌 文本 10 否 出生日期 日期型 YYYY-MM-DD 否 专业 文本 20 否 班级 文本 10 否 家庭住址 文本 30 否 联电话 文本 15 否 备注 文本 50 否 ② 课程信息表(kc),本表有2个字段:课程名称、所属专业,见表2 表2 课程信息表的解放 字段名 数据类型 字段长度与格式 关键字 课程名称 文本 20 是 所属专业 文本 20 否 ③ 班级信息表(class),共有5个字段分别为:班级名称、所属院、辅导员、教室、人数,见表3 表3 班级信息表结构 字段名 数据类型 字段长度与格式 关键字 班级名称 文本 10 是 所属院 文本 20 否 辅导员 文本 8 否 教室 文本 15 否 人数 文本 3 否 ④ 专业信息表(zy),有2个字段分别为:专业名称、所属院 表4 专业信息表结构 字段名 数据类型 字段长度与格式 关键字 专业名称 文本 20 是 所属院 文本 20 否 ⑤ 成绩信息表(score),有5个字段分别为:学号、姓名、专业、课程名称、成绩, 表5 成绩信息表结构 字段名 数据类型 字段长度与格式 关键字 学号 文本 15 是 姓名 文本 8 否 成绩专业 文本 20 否 课程名称 文本 10 是 成绩 整型 否 ⑥ 用户表(yonghu),有2个字段为:用户名称、密码 表6 用户表结构 字段名 数据类型 字段长度与格式 关键字 用户名称 文本 8 是 密码 文本 8 否 以上为本统的6个表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值