java学生信息管理系统设计报告
一、需求分析:
学需要完整代码的请联系QQ3710167学生信息管理系统是对学生的基本信息和成绩信息进行管理,主要包括添加、修改和删除学生的基本信息,录入、修改和删除学生的成绩信息,对基本信息、成绩信息进行查询、排序等操作,从而实现学生信息管理的自动化与计算机化。本课题将实现一个简化的学生信息管理系统。
数据库要求:
1. 建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。
2. 至少要有5个班级,每个班级要有10名以上学生。
3. 使用.txt格式文本表示各种表。
功能需求:
1. 能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。
2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。
3. 能够实现学生信息的插入、删除和修改。
4. 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。
5. 能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。
界面要求:
1. 尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。
2. 如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。
其他要求:
1. 标识符命名遵循Windows命名规范。
2. 能够注意各种异常处理,注重提高程序运行效率。
提交内容:
1. 用于表示数据库的.txt文件格式说明。
2. 全部源代码。
3. 软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档)。
二、设计概要
本次设计因为时间仓促,知识有限,所以没有能够实现实习的具体要求,只简单的实现了一些功能,包括:
1、输入档案:用于学生档案信息的输入,信息包括学号、姓名、性别、成绩以及籍贯。
2、显示所有档案:用于显示已经输入的所有学生的档案。
3、删除档案:用于档案的删除。
4、查询:以姓名的方式查询一个学生的具体信息。
5、排序:将学生按成绩排序。
6、修改:修改学生的各个信息。
基于这些功能,我进行了这次设计。
三、设计中的问题
在设计中,我也遇到了很多问题,包括数据的输入输出,语法的错误等。例如try{
}
Catch()
的用法,BufferedReader的用法等,这些问题我通过参考资料以及上网查询等,最终解决了。转发请注明源于www.lwfree.cn
设计中还有一些未解决的问题,删除信息的时候总是会多出一个人来,不知道该怎么样子除去。
四、设计源程序
import java.awt.*; //引入相关包
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.sql.*;
public class stu
{
public static int i=1,n;
public static int bh;
public static String s_name;
public static String s;
public static class Student
{
public int sign;
public int num; /*学号*/
public String name; /*姓名*/
public String born_place;//出生地
public String sex;//性别
public int score; /*成绩*/
}
public static Student[] st=new Student[80]; /*结构体数组变量*/
public static void main(String args[])
{
n=0;101
java学生信息管理系统设计报告
for(int j=i;j<=79;j++)
{
st[j]=new Student();
st[j].sign=-1;
n=n+1;
}
menu_select();
xz();
}
/*=======================================================================================================*/
/**************************************************菜单***************************************************/
/*=======================================================================================================*/
转发请注明源于www.lwfree.cn
public static void menu_select()
{
System.out.printf("\t\t +***欢迎使用学生信息管理系统***+\n"); /*菜单选择*/
System.out.print("\t\t | 1. 输入档案 |\n");
System.out.print("\t\t | 2. 显示所有档案 |\n");
System.out.print("\t\t | 3. 删除档案 |\n");
System.out.print("\t\t | 4. 查询 |\n");
System.out.print("\t\t | 5. 排序 |\n");
System.out.print("\t\t | 6. 修改 |\n");
System.out.print("\t\t | 0. 退出 |\n");
System.out.print("\t\t +******************************+\n");
}
public static void xz()
{
while(true)
{
System.out.print("请输入:");
try
{
BufferedReader Console=new BufferedReader(new InputStreamReader(System.in));
s=Console.readLine();
bh=Integer.parseInt(s);
break;
}
catch(Exception e)
{
System.out.print("你输入的有误,请输入(1,2,3,4,5,,6,0)其中人一个\n");
}
}
switch(bh)
{
case 0:break;
case 1:add();menu_select();xz();break;
case 2:showall();menu_select();xz();break;
case 3:del();menu_select();xz();break;
case 4:find();menu_select();xz();break;
case 5:Sort_by_num();menu_select();xz();break;
case 6:mod();menu_select();xz();break;
}
}
/*===========================================================================================================*/
/***************************************************输入档案**************************************************/
/*==========================================================================================================*/
public static void add()
{
int k;
while(true)
{
try
{
BufferedReader Console=new BufferedReader
st[i].sign=(int)(i+1);
System.out.println("请输入学号:");
st[i].num=Integer.parseInt(Console.readLine());
System.out.print("请输入姓名:");
s=Console.readLine();
st[i].name=s;
System.out.print("请输入籍贯:");
st[i].born_place=Console.readLine();
System.out.print("请输入性别:");
转发请注明源于www.lwfree.cn
st[i].sex=Console.readLine();
System.out.print("请输入成绩:");
st[i].score=Integer.parseInt(Console.readLine());
i++;
System.out.print("是否继续输入?(y/n)");
while(true)
{
s=Console.readLine();
if(!s.equals("y") && !s.equals("n"))
{
System.out.print("有错,请重新输入");
}
else
}
}
}
/*=============================================================================================================================*/
/**********************************************************显示所有档案*********************************************************/
/*=============================================================================================================================*/
public static void showall()
{
System.out.print("学号 姓名 性别 成绩 出生地 \n");
for(int k=1;k<=79;k++)
if (st[k].sign!=-1)
{
java学生信息管理系统设计报告
System.out.println(st[k].num+" "+st[k].name+" "+st[k].sex+" "+st[k].score+" "+st[k].born_place+"\n");
}
}
/*=============================================================================================================================*/
/**********************************************************删除档案*************************************************************/
/*=============================================================================================================================*/
public static void del()
{
int j,k;
String a;
try
{转发请注明源于www.lwfree.cn
BufferedReader Console=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入学生姓名");
s_name=Console.readLine();
while(true)
{
System.out.print("确认删除?(y/n)");
while(true)
{
s=Console.readLine();
if(!s.equals("y") && !s.equals("n"))
{
System.out.print("有错,请重新输入");
}
else
{
break;
}
}
if(s.equals("n"))
{
break;
}
else if(s.equals("y"))
{
System.out.print("信息删除!\n"); /*返回成功信息*/
for(i=1;i<=n;i++)
if((st[i].name).equals(s_name)==true) break;
for(j=i;j<=n;j++)
{
k=st[j+1].num;
st[j].num=k;
a=st[j+1].name;
st[j].name=a;
a=st[j+1].born_place;
st[j].born_place=a;
a=st[j+1].sex;
st[j].sex=a;
k=st[j+1].score;
st[j].score=k;
break;
}
break;
}
else
{
break;
}
}
}
catch(Exception e) {System.out.print("错误!\n");}
}
/*=============================================================================================================================*/
/**********************************************************查询档案*************************************************************/
/*=============================================================================================================================*/
public static void find()
{
int j=0;
try
{
System.out.print("请输入学生姓名");
while(true)
{
BufferedReader Console=new BufferedReader(new InputStreamReader(System.in));
s_name=Console.readLine();
for(i=1;i<=n;i++)
if((st[i].name).equals(s_name)==true)
{
j=i;
show(j);
break;
}
break;
}
}
catch(Exception e)
{
System.out.print("无此信息或已被删除\n");
}
}
public static boolean show(int a)
{
if(st[a].sign!=-1)
{
System.out.println("学号 姓名 性别 成绩 出生地\n");
System.out.println(st[a].num+" "+st[a].name+" "+st[a].sex+" "+st[a].score+" "+st[
}
}
/*=============================================================================================================================*/
/**********************************************************修改信息*************************************************************/
/*=============================================================================================================================*/
java学生信息管理系统设计报告
public static void mod()
{
int j,k;
try
{转发请注明源于www.lwfree.cn
System.out.print("请输入学生姓名");
while(true)
{
BufferedReader Console=new BufferedReader(new InputStreamReader(System.in));
s_name=Console.readLine();
for(i=1;i<=n;i++)
if((st[i].name).equals(s_name)==true)
{
j=i;
if(show(j))
{
System.out.print("确认修改?(y/n)");
while(true)
{
s=Console.readLine();
if(!s.equals("y") && !s.equals("n"))
{
System.out.print("有错,请重新输入");
}
if(s.equals("n"))
{
break;
}
else if(s.equals("y"))
{
System.out.println("当前学号为:"+st[i].num+",更改为:");
k=Integer.parseInt(Console.readLine());
st[i].num=k;
System.out.println("当前姓名为:"+st[i].name+",更改为:");
s=Console.readLine();
st[i].name=s;
System.out.println("当前成绩为:"+st[i].score+",更改为:");
k=Integer.parseInt(Console.readLine());
st[i].score=k;
System.out.println("当前性别为:"+st[i].sex+",更改为:");
s=Console.readLine();
st[i].sex=s;
System.out.println("当前籍贯为:"+st[i].born_place+",更改为:");
s=Console.readLine();
st[i].born_place=s;
System.out.print("修改成功\n");
break;
}
}
break;
}
else
{
System.out.print("你输入的姓名不存在,请重新输入:");
}
}
break;
}
}
catch(Exception e)
{
System.out.print("错误");
}
}
/*=============================================================================================================================*/
/**********************************************************信息排序*************************************************************/
/*=============================================================================================================================*/
public static void Sort_by_num() /*按成绩排序*/
{
Student stu;
String a;
int m,k;
while(true)
{
for(i=1;i<=n;i++)
{
for(m=1;m<=n-i;m++)
{
if(st[m+1].score-st[m].score>0)
{ 转发请注明源于www.lwfree.cn
k=st[m+1].num;
st[m+1].num=st[m].num;
st[m].num=k;
a=st[m+1].name;
st[m;
st[m+1].born_place=st[m].born_place;
st[m].born_place=a;
k=st[m+1].score;
st[m+1].score=st[m].score;
st[m].score=k;
a=st[m+1].sex;
st[m+1].sex=st[m].sex;
st[m].sex=a;
}
}
show(m);
}
break;
}
}
}
五、运行结果
首先运行程序,得到如下界面
然后输入10个人的档案(最多可输入80人的档案);
返回主界面;然后选择2显示所有的档案然后选择3,删除一个档案
再看一下显示查询修改信息:按成绩排序最后选择0可以退出
六、设计的心得体会
通过这次课程设计,我深感程序语言的复杂与精深,同时也极大的提高了我对于程序语言的兴趣。从这次设计中我也有了很多新的体会,对于java程序语言的使用也进一步熟悉了。虽然没有达到预期的要求,但是这对于我来说仍然是一个极大的进步。因为我通过这次设计认识到了自己的不足,学习到了很多新的知识,并且独立的完成了设计,对我来说是个极大的鼓励。同时感谢崔老师的教导以及认真负责的态度,这也是我这次设计主要的动力之一。