java婴儿出生信息管理系统课程设计报告.docx

上传人:b****6 文档编号:3310356 上传时间:2022-11-21 格式:DOCX 页数:13 大小:318.48KB
下载 相关 举报
java婴儿出生信息管理系统课程设计报告.docx_第1页
第1页 / 共13页
java婴儿出生信息管理系统课程设计报告.docx_第2页
第2页 / 共13页
java婴儿出生信息管理系统课程设计报告.docx_第3页
第3页 / 共13页
java婴儿出生信息管理系统课程设计报告.docx_第4页
第4页 / 共13页
java婴儿出生信息管理系统课程设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java婴儿出生信息管理系统课程设计报告.docx

《java婴儿出生信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《java婴儿出生信息管理系统课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

java婴儿出生信息管理系统课程设计报告.docx

java婴儿出生信息管理系统课程设计报告

1课程设计内容

1.1课程设计目的

课程设计题目:

婴儿出生信息管理系统

要求编写一个程序进行出生婴儿的登记和预览管理,并且完成登记和在屏幕上进行显示的程序功能。

在java中,使用类模块来描述婴儿信息,学会图形界面的编程等。

1.2课程设计要求

程序要求实现的功能有:

(1)增加一个婴儿资料;

(2)按条件查询显示婴儿资料(条件有按医院,父母,性别以及日期等);

(3)显示超低婴儿体重。

1.3课程设计的实际用途

婴儿出生信息管理系统的目的是医院方便准确管理婴儿出生信息,是建立以出生实名登记,以及涵盖婴儿其他基本信息的一个系统。

同时,通过该系统能有效增强相关机构严格执行出生实名制的责任意识,达到节约管理成本,提高工作效率的目的。

2概要设计

2.1程序模块结构简介

本次课程设计,编写了四个主要的模块:

图形界面模块,信息输入操作模块,信息查找操作模块,和信息显示操作模块。

其中主界面模块实现了婴儿出生信息管理系统的主界面,为系统搭建一个整体框架;信息输入操作模块则包含了婴儿家庭地址等基本信息的输入功能;信息查找操作模块是按照婴儿性别进行查询并显示其基本信息;信息显示操作模块则是对超低体重婴儿和全部婴儿的信息的读取和显示。

程序模块结构图如下图2-1所示:

图2-1程序模块结构图

2.2程序需求分析

(1)主界面模块:

1.信息输入区的设计:

设计有家庭地址,邮政编码,婴儿体重等基本信息的输入栏;

2.按钮区的设计:

在界面上设计需要实现各项功能的按钮;

3.信息显示区的设计:

在界面上设计滚动窗格,用来显示所需要实现各项功能的基本信息。

(2)信息输入模块:

1.婴儿信息输入的设计:

设计有文本框,由用户输入婴儿家庭地址,邮政编码等基本信息;

2.添加婴儿资料的设计:

设计有“添加婴儿资料”的按钮,点击该按钮,将所输入的婴儿信息添加到工作表中。

(3)信息查找模块:

1.按性别男查找的设计:

由用户点击该按钮,查找男婴儿的信息;

2.按性别女查找的设计:

由用户点击该按钮,查找女婴儿的信息。

(4)信息显示模块:

1.显示超低体重婴儿信息的设计:

由用户点击该按钮,显示超低体重婴儿的信息;

2.显示所有婴儿信息的设计:

由用户点击该按钮,显示所有婴儿的信

息。

2.3程序各模块说明

主要类及方法

说明;

play

play类为主类,定义main方法

RollCall

继承JFrame类,专门用于设计界面

JPanel

创建面板

JButton

创建按钮

JTable

创建显示信息的表格

JTextField

创建用户进行单行文本输入的文本框

setLayout

实现用户对每个组件的合理布局

addActionListener

给按钮对象添加事件监听

CreatXLS

创建Excel表格

chaXLS

在Excel表格中查询信息

3详细设计

3.1主界面模块

婴儿出生信息管理系统的主界面分为三大区:

婴儿信息输入区,按钮区和婴儿信息显示区。

在屏幕上,为了使框架显示的位置以及大小更加合理,在程序中分别调用了框架类的setLocation()和setSize()方法;在主界面上各个组件的实现过程中,调用组件类方法setBounds(intx,inty,intwidth,intheight)来设置组件在界面上的位置以及大小,同时,在对按钮的实现过程中,使用addActionListener()方法给按钮对象添加事件监听;在对整个界面的布局中,使用了布局管理类中的BorderLayout()方法,从而使主界面在外观上布局合理,更具有视觉性。

以上过程的具体实现代码如下:

RollCall(Strings){

super(s);

setSize(800,300);

setLocationRelativeTo(null);

lab1=newJLabel("家庭地址:

");

address=newJTextField(128);

......

lab5=newJLabel("婴儿体重(kg):

");

weigh=newJTextField("0",6);

weigh.setHorizontalAlignment(JTextField.RIGHT);

......

lab1.setBounds(30,10,150,25);

address.setBounds(100,10,220,25);

......

lab_yiwu.setBounds(30,160,100,25);

cmbyiwu.setBounds(100,160,100,25);

Pantext.add(lab1);

Pantext.add(address);

......

Pantext.add(lab_yiwu);

Pantext.add(cmbyiwu);

Pantext.setLayout(null);

addyinger=newJButton("添加婴儿资料");

sreach=newJButton("按性别查找男");

sreach1=newJButton("按性别查找女");

showlow=newJButton("显示超低体重婴儿");

showAll=newJButton("显示所有婴儿信息");

addyinger.addActionListener(this);

sreach.addActionListener(this);

sreach1.addActionListener(this);

showlow.addActionListener(this);

showAll.addActionListener(this);

Panbtn.add(addyinger);

Panbtn.add(sreach);

Panbtn.add(sreach1);

Panbtn.add(showlow);

Panbtn.add(showAll);

String[]columnNames={"母亲姓名","父亲姓名","婴儿性别","婴儿体重"};

Object[][]date=newObject[20][4];

Table=newJTable(date,columnNames);

xls=newJScrollPane(Table);

Pane.setLayout(newBorderLayout());//边界布局

Pane.add(Pantext,BorderLayout.CENTER);

Pane.add(Panbtn,BorderLayout.SOUTH);

Pane.add(xls,BorderLayout.EAST);

婴儿出生信息管理系统的主界面如下图所示:

图3-1主界面图

3.2信息输入模块

信息输入模块实现了用户输入婴儿信息和医院信息的功能。

由用户在程序主界面上的文本输入框中输入婴儿的各项基本信息,使得婴儿信息能够被完整的读入,从而为查询功能提供便捷快速的服务。

3.2.1婴儿信息输入模块的实现

由用户输入婴儿的家庭信息,性别,体重以及医院信息。

该过程的具体实现主要代码如下:

address.addKeyListener(newKeyAdapter(){

publicvoidkeyTyped(KeyEvente){

if(address.getText().length()>63//不超过64位数

||address.getText().length()<0)

e.consume();

}

});

......

weigh.addKeyListener(newKeyAdapter(){

publicvoidkeyTyped(KeyEvente){

StringnumStr="0123456789"+(char)8;//只允许输入数字与退格键

if(numStr.indexOf(e.getKeyChar())<0)

e.consume();

if(weigh.getText().length()>2//不超过3位数

||weigh.getText().length()<0)

e.consume();

}

});

}

......

lab_yiwu=newJLabel("医务人员:

");

Stringnum1[]=newString[21];

for(intj=300;j<=320;j++)

num1[j-300]="0"+j;

cmbyiwu=newJComboBox(num1);

3.2.2添加婴儿资料模块的实现

创建一个Excel工作表格,并指定其路径,在用户输入完婴儿的各项信息后,该模块可以将婴儿的资料添加到该表格中,同时进行保存。

该过程的具体实现主要代码如下:

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==addyinger){

Strings=address.getText();

Strings1=id.getText();

Strings2=weigh.getText();

Strings3=mom_name.getText();

Strings4=fa_name.getText();

Strings5=Sex.getSelectedItem().toString();

Strings6=cmbhushi.getSelectedItem().toString();

Strings7=cmbyiwu.getSelectedItem().toString();

......

wb=Workbook.getWorkbook(newFile("D:

/婴儿出生信息.xls"));

System.out.println("读取成功");

WritableWorkbookwbe=Workbook.createWorkbook(newFile("D:

/婴儿出生信息.xls"),wb);//创建workbook的副本

Sheetsheets=wb.getSheet(0);

introws=sheets.getRows();

WritableSheetsheet1=wbe.getSheet(0);

for(inti=0;i<8;i++){

jxl.write.Labellbl=newjxl.write.Label(i,rows,str[i]);

sheet1.addCell(lbl);//将改过的单元格保存到sheet

}

未添加婴儿资料信息显示如下图所示:

未添加婴儿资料信息显示图

3.3信息查找模块

首先,用户在界面上点击相应的功能按钮,系统会在Excel工作表中进行遍历,最后会将全部相同性别的婴儿信息显示在主界面上的滚动窗格中。

该模块的实现,为用户提供了方便快捷的查询服务。

该过程的具体实现主要代码如下:

if(e.getSource()==sreach){

intu=-1;

String[]columnNames1={"母亲姓名","婴儿性别","婴儿体重","护理人员"};

chaXLSp=newchaXLS();

Objectdate[][]=newObject[15][4];

for(intj=1;j<15;j++)

if(p.ca[6][j].equalsIgnoreCase("男")){

inti,l=0;

u++;

for(i=0;i<4;i++){

if(i==0)l=4;

if(i==1)l=6;

if(i==2)l=3;

if(i==3)l=7;

date[u][i]=p.ca[l][j];

}

Table=newJTable(date,columnNames1);

xls.setViewportView(Table);

Table=newJTable(date,columnNames1);

}

}

if(e.getSource()==sreach1){

intu=-1;

String[]columnNames1={"母亲姓名","婴儿性别","婴儿体重","护理人员"};

chaXLSy=newchaXLS();

Objectdate[][]=newObject[15][4];

for(intj=1;j<15;j++)

if(y.ca[6][j].equalsIgnoreCase("女")){

inti,l=0;

u++;

for(i=0;i<4;i++){

if(i==0)l=4;

if(i==1)l=6;

if(i==2)l=3;

if(i==3)l=7;

date[u][i]=y.ca[l][j];

}

Table=newJTable(date,columnNames1);

xls.setViewportView(Table);

Table=newJTable(date,columnNames1);

}

}

3.4信息显示模块

该模块分为两部分来实现,即显示超低体重婴儿信息和显示所有婴儿信息。

用户在界面上点击相应的功能按钮,系统会在Excel表格中进行遍历,最后会将具备相应条件的婴儿的信息显示在主界面上的滚动窗格中。

3.4.1超低体重婴儿信息显示模块的实现

系统规定信息表中所有婴儿的体重小于3千克为超低,并且将这些超低体重婴儿的相关信息显示在界面上的滚动窗格中。

该过程的具体实现主要代码如下:

if(e.getSource()==showlow){

String[]columnNames1={"母亲姓名","婴儿性别","婴儿体重","护理人员"};

intu=-1;

chaXLSq=newchaXLS();

Objectdate[][]=newObject[20][4];

for(intj=1;j<20;j++)

if(q.ca[3][j].compareToIgnoreCase("3")<0){

inti,l=0;

u++;

for(i=0;i<4;i++){

if(i==0)l=4;

if(i==1)l=6;

if(i==2)l=3;

if(i==3)l=7;

date[u][i]=q.ca[l][j];

}

Table=newJTable(date,columnNames1);

xls.setViewportView(Table);

Table=newJTable(date,columnNames1);

}

}

3.4.2所有婴儿信息显示模块的实现

该模块是对整个信息表进行遍历,将得到的所有婴儿信息显示出来,它的实现会给用户查找婴儿信息提供便捷。

该过程的具体实现主要代码如下:

if(e.getSource()==showAll){

String[]columnNames1={"婴儿体重","母亲姓名","父亲姓名","性别"};

String[][]d;

try{

Workbookwb=Workbook.getWorkbook(newFile("D:

/婴儿出生信息.xls"));

Sheetsheet1=wb.getSheet(0);

introws=sheet1.getRows();

d=newString[rows-1][];

for(intj=0;j

Cell[]cells=sheet1.getRow(j+1);

d[j]=newString[cells.length-4];

for(intk=0;k

Stringcell=cells[k+2].getContents();

d[j][k]=newString(cell);

}

}

Table=newJTable(d,columnNames1);

xls.setViewportView(Table);

}catch(Exceptione1){

System.out.println(e1.getMessage());

}

}

}

}

4问题与解决

本次课程设计过程中,遇到很多问题。

在经过查阅相关资料,参考相关视频,以及老师同学的帮助下,问题得到一一解决。

现将在此次课程设计过程中遇到的主要问题及解决过程做如下描述:

1.对做本次课程设计题目的思路及方法的定位

此次课程设计的题目是:

婴儿出生信息管理系统。

根据其要求实现的功能在参考其他类似题目后发现,实现这些功能需要用到数据库的相关知识,但考虑到数据库尚未学习,对其中的知识点不熟悉,于是便考虑采用其他方法。

经过查阅资料和在同学的帮助下,我用了将数据读入到Excel工作表,继而再读出的整体方法来做本次课程设计。

同时,我采用图形界面的编程来实现可视化操作界面,是用户与程序交互更加方便。

2.在图形界面的设计过程中,如何将题目中的家庭地址,邮政编码等文本项添加到面板上?

解决方法:

自定义一个RollCall类,在构造方法中创建个组件。

首先,引用swing包中的JLable类,创建出包括家庭地址,邮政编码等各个标签,然后调用Pantext.add()方法在面板上添加创建好的标签,同时调用setBounds方法,在面板上对各个标签的位置和大小进行设置,以达到主界面美观的效果。

3.如何给事件源增加监听?

解决方法:

在本程序中调用swing包中的JButton类,在创建好“添加婴儿资料”“按性别男查找”等按钮后,使用addActionListener()方法对这些按钮事件增加监听。

使用同样的方法,给其他事件源增加监听。

4.如何实现工作表的功能?

解决方法:

获取工作表读入读出数据是本程序的核心,同时对于我来说也是比较困难的一部分。

在查阅相关资料以及参考相关视频后,问题得到解决。

自定义创建一个工作表类CreatXLS和读入表格类ReadXLS,并指定其路径。

在生成工作表后,将定义好的单元格添加到工作表中,接着定义一个数组,将所要添加的婴儿资料信息赋值给数组,由数组来实现完成该项功能。

5.如何按条件查找并显示婴儿信息?

解决方法:

以查找男性婴儿为例,只在工作表中性别那一列找男,将得到的有关该婴儿的信息读出。

如程序所示:

if(e.getSource()==sreach){

intu=-1;

String[]columnNames1={"母亲姓名","婴儿性别","婴儿体重","护理人员"};

chaXLSp=newchaXLS();

Objectdate[][]=newObject[20][4];

for(intj=1;j<20;j++)

if(p.ca[6][j].equalsIgnoreCase("男")){

inti,l=0;

u++;

for(i=0;i<4;i++){

if(i==0)l=4;

if(i==1)l=6;

if(i==2)l=3;

if(i==3)l=7;

date[u][i]=p.ca[l][j];

}

Table=newJTable(date,columnNames1);

xls.setViewportView(Table);

Table=newJTable(date,columnNames1);

}

}

如上程序所示,“l”代表母亲姓名等信息栏的位置,程序循环后得到的各个信息赋值给date数组,最后在主界面上显示出来。

使用同样的方法完成其他功能。

参考文献

[1]董小园,Java面向对象程序设计.北京:

清华大学出版社,2005.

[2]黄晓东,Java课程设计案例精编教程.北京:

中国水利电出版社,2007.

[3]良葛格,java学习笔记.北京:

清华大学出版社,2006.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1