婴儿出生信息管理系统.docx
- 文档编号:5674977
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:20
- 大小:129.57KB
婴儿出生信息管理系统.docx
《婴儿出生信息管理系统.docx》由会员分享,可在线阅读,更多相关《婴儿出生信息管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
婴儿出生信息管理系统
婴儿出生信息管理系统
1课程设计内容
1.1课程设计目的
课程设计题目:
婴儿出生信息管理系统
要求编写一个程序进行出生婴儿的登记和预览管理,并且完成登记和在屏幕上进行显示的程序功能。
在java中,使用类模块来描述婴儿信息,学会图形界面的编程等。
1.2课程设计要求
程序要求实现的功能有:
(1)增加一个婴儿资料;
(2)按条件查询显示婴儿资料;
(3)显示超低婴儿体重。
2概要设计
2.1程序模块结构简介
本次课程设计,编写了四个主要的模块:
图形界面模块,信息输入操作模块,信息查找操作模块,和信息显示操作模块。
其中主界面模块实现了婴儿出生信息管理系统的主界面,为系统搭建一个整体框架;信息输入操作模块则包含了婴儿家庭地址等基本信息的输入功能;信息查找操作模块是按照婴儿性别进行查询并显示其基本信息;信息显示操作模块则是对超低体重婴儿和全部婴儿的信息的读取和显示。
程序模块结构图如下图所示:
2.2程序需求分析
(1)主界面模块:
1.信息输入区的设计:
设计有家庭地址,邮政编码,婴儿体重等基本信息的输入栏;
2.按钮区的设计:
在界面上设计需要实现各项功能的按钮;
3.信息显示区的设计:
在界面上设计滚动窗格,用来显示所需要实现各项功能的基本信息。
(2)信息输入模块:
1.婴儿信息输入的设计:
设计有文本框,由用户输入婴儿家庭地址,邮政编码等基本信息;
2.添加婴儿资料的设计:
设计有“添加婴儿资料”的按钮,点击该按钮,将所输入的婴儿信息添加到工作文件(E:
\\AddressBook.txt)中。
(3)信息查找模块:
1.查找男孩的设计:
由用户点击该按钮,查找男婴儿的信息;
2.查找女孩的设计:
由用户点击该按钮,查找女婴儿的信息。
(4)信息显示模块:
1.显示超低体重婴儿信息的设计:
由用户点击该按钮,显示超低体重婴儿的信息;
2.显示所有婴儿信息的设计:
由用户点击该按钮,显示所有婴儿的信
息。
2.3程序各模块说明
主要类及方法
说明;
KidSystem
KidSystem类为主类,定义main方法
MyJFrame
用于设计界面
JPanel
创建面板
JButton
创建按钮
JTable
创建显示信息的表格
JTextField
创建用户进行单行文本输入的文本框
setLayout
实现用户对每个组件的合理布局
addActionListener
给按钮对象添加事件监听
Search
MyFrame的内部类,实现查询操作
datecsh
初始化Object[][]
3详细设计
3.1主界面模块
婴儿出生信息管理系统的主界面分为三大区:
婴儿信息输入区,按钮区和婴儿信息显示区。
在屏幕上,为了使框架显示的位置以及大小更加合理,在程序中分别调用了框架类的setLocation()和setSize()方法;在主界面上文本组件和文本框的实现过程中,直接使用布局管理器GridLayout()方法,同时,在对按钮的实现过程中,使用addActionListener()方法给按钮对象添加事件监听;在对整个界面的布局中,使用了布局管理类中的BorderLayout()方法,从而使主界面在外观上布局合理,更具有视觉性。
以上过程的具体实现代码如下:
setLocationRelativeTo(null);
lab1=newJLabel(""+"家庭住址:
");
address=newJTextField(128);
lab2=newJLabel(""+"邮政编码:
");
num=newJTextField(6);
......
在实现,性别、医务人员、护理人员这些可以选择的信息时,我们将它们定义成Chioce的对象
cmbsex=newChoice();
cmbsex.addItem("男");
cmbsex.addItem("女");
cmbhuli=newChoice();
cmbhuli.addItem("0100");
cmbhuli.addItem("0101");
cmbhuli.addItem("0102");
cmbhuli.addItem("0103");
......
cmbyiwu=newChoice();
cmbyiwu.addItem("0300");
cmbyiwu.addItem("0301");
cmbyiwu.addItem("0302");
.......
设置功能实现的按钮,并对按钮进行监听;
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=newJPanel(newFlowLayout());
panbtn.add(addyinger);
panbtn.add(sreach);
panbtn.add(sreach1);
panbtn.add(showlow);
panbtn.add(showAll);
创建一个JTable,为它添加标题,和Object的二维数组,为它加上滚轮;
columnNames=newString[]{"母亲姓名","父亲姓名","婴儿性别","婴儿体重"};
date=newObject[20][4];
table=newJTable(date,columnNames);
xls=newJScrollPane(table);
对Jpanel进行布局,然后显示主界面
pane=newJPanel();
pane.setLayout(newBorderLayout());//边界布局
pane.add(pantext,BorderLayout.CENTER);
pane.add(panbtn,BorderLayout.SOUTH);
pane.add(xls,BorderLayout.EAST);
this.add(this.pane);
this.setVisible(true);
婴儿出生信息管理系统的主界面如下图所示:
3.2信息输入模块
3.2.1婴儿信息输入模块的实现
由用户输入婴儿的家庭信息,性别,体重以及医院信息。
该过程的具体实现主要代码如下:
根据设计要求,对文本框中的键盘输入进行限制
address.addKeyListener(newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
if(address.getText().length()>127//不超过128位数
||address.getText().length()<0)
e.consume();
}
});
num.addKeyListener(newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
if(num.getText().length()>5//不超过6位数
||num.getText().length()<0)
e.consume();
}
});
......
3.2.2添加婴儿资料模块的实现
创建一个txt文件,并指定其路径,在用户输入完婴儿的各项信息后,该模块可以将婴儿的资料添加到该表格中,同时进行保存。
直接用MyFrame类重写actionPerformed()方法,在方法中实现监听输入按钮
该过程的具体实现主要代码如下:
if(e.getSource()==addyinger){//添加
判断信息输入是否完整,如果不完整则弹出窗口提示;
if(e.getSource()==addyinger){//添加资料
if(mather.getText().equals("")){
JOptionPane.showMessageDialog(null,"添加失败,母亲姓名必须填写!
",
"添加结果",JOptionPane.INFORMATION_MESSAGE);
}
else{
try{
FileWriterAddressBook=newFileWriter("E:
\\AddressBook.txt",true);
PrintWriteradd=newPrintWriter(AddressBook);
Strings1,s2,s3,s4,s5;
if(mather.getText().equals(""))s1="无";elses1=mather.getText();
if(father.getText().equals(""))s2="无";elses2=father.getText();
if(address.getText().equals(""))s3="无";elses3=address.getText();
if(num.getText().equals(""))s4="无";elses4=num.getText();
if(weigh.getText().equals(""))s5="无";elses5=weigh.getText();
add.println(cmbsex.getSelectedItem()+'\t'+s1+'\t'+s2+'\t'+s5+'\t'+Cbirthyear.getSelectedItem()+
Cbirthmonth.getSelectedItem()+Cbirthday.getSelectedItem()+'\t'+cmbhuli.getSelectedItem()+
'\t'+cmbyiwu.getSelectedItem()+'\t'+s3+'\t'+s4);
add.close();
AddressBook.close();
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
添加完成后,提示添加成功
JOptionPane.showMessageDialog(null,"添加成功",
"录入结果",JOptionPane.INFORMATION_MESSAGE);
文本框初始化
mather.setText("");
father.setText("");
address.setText("");
num.setText("");
weigh.setText("0");
}
}
3.3信息查找模块
3.3.1性别便捷查找
首先,用户在界面上点击相应的功能按钮,系统会在txt文件中进行遍历,最后会将全部相同性别的婴儿信息显示在主界面上的滚动窗格中。
该模块的实现,为用户提供了方便快捷的查询服务。
该过程的具体实现主要代码如下:
if(e.getSource()==sreach){
datecsh(date);
try{
FileReaderfile=newFileReader("E:
\\AddressBook.txt");
Scannerfind=newScanner(file);
intn=-1;//构造扫描器
while(find.hasNext()){
Stringa=find.next();
if(a.equals("男")){
n++;
Stringa1=find.next();
Stringa2=find.next();
Stringa3=find.next();
date[n][0]=a1;
date[n][1]=a2;
date[n][2]=a;
date[n][3]=a3;
}
}
//table=newJTable(nul,columnNames);
table=newJTable(date,columnNames);
table.updateUI();
pane.add(xls,BorderLayout.EAST);
//this.setVisible(true);
}catch(FileNotFoundExceptione1){
System.out.print("未找到文件");
}
}
3.3.2自主选择类型查找
用户在界面上点击“查找”的功能按钮,会弹出一个子窗口,在子窗口上可以自主选择查找类型进行查找,该过程的具体实现主要代码如下:
在MyFarm中定义一个内部类Search,通过JDialog类构造一个dialog对象,在其中添加组件来生成对话框。
publicSearch(){
dialog.setSize(250,200);
Containerc=dialog.getContentPane();
dialog.setLayout(newBorderLayout());
JMenuBarmenubar=newJMenuBar();
JLabelLsearch=newJLabel("请选择查询类型");
JMenuedit=newJMenu("条件");
JMenuItemedit1=newJMenuItem("母亲姓名");
JMenuItemedit2=newJMenuItem("父亲姓名");
JMenuItemedit3=newJMenuItem("生日");
JMenuItemedit4=newJMenuItem("性别");
menubar.add(edit);
edit.add(edit1);
edit.add(edit2);
edit.add(edit3);
edit.add(edit4);
JButtoncertain=newJButton("确定");
JButtoncancel=newJButton("取消");
//finalStringin=Tname.getText();
JPanelpane1=newJPanel();
JPanelpane2=newJPanel();
JPanelpane3=newJPanel();
c.add(pane1,BorderLayout.NORTH);
c.add(pane2,BorderLayout.SOUTH);
c.add(pane3,BorderLayout.CENTER);
pane1.add(Lsearch);
pane1.add(menubar);
pane2.add(certain);
pane2.add(cancel);
.....
}
监听不同选择菜单
来向对话框中添加不同的组件;
edit1.addActionListener(newActionListener()//监听“母亲姓名”
{
publicvoidactionPerformed(ActionEvente)
{
n=1;
pane3.removeAll();
pane3.add(mname);
pane3.updateUI();
}
});
edit2.addActionListener(newActionListener()//监听“父亲姓名”
{
publicvoidactionPerformed(ActionEvente)
{
n=2;
pane3.removeAll();
pane3.add(fname);
pane3.updateUI();
}
});
.....
对确认的监听实现不同的查找,然后显示在JTable中;
certain.addActionListener(newActionListener()//确认
{
publicvoidactionPerformed(ActionEvente)
{
if(n==4){//性别男查找
datecsh(date);
try{
if(sexs.getSelectedItem()=="男"){
FileReaderfile=newFileReader("E:
\\AddressBook.txt");
Scannerfind=newScanner(file);
intn=-1;//构造扫描器
while(find.hasNext()){
Stringa=find.next();
if(a.equals("男")){
n++;
Stringa1=find.next();
Stringa2=find.next();
Stringa3=find.next();
date[n][0]=a1;
date[n][1]=a2;
date[n][2]=a;
date[n][3]=a3;
}
}
}
if(sexs.getSelectedItem()=="女"){//性别女查找
FileReaderfile=newFileReader("E:
\\AddressBook.txt");
Scannerfind=newScanner(file);
intn=-1;//构造扫描器
while(find.hasNext()){
Stringa=find.next();
if(a.equals("女")){
n++;
Stringa1=find.next();
Stringa2=find.next();
Stringa3=find.next();
date[n][0]=a1;
date[n][1]=a2;
date[n][2]=a;
date[n][3]=a3;
}
}
}
//table=newJTable(nul,columnNames);
table=newJTable(date,columnNames);
pane.add(xls,BorderLayout.EAST);
table.updateUI();
//this.setVisible(true);
}catch(FileNotFoundExceptione1){
System.out.print("未找到文件");
}
}
......
......
if(n==1){//根据母亲姓名查找
datecsh(date);
try{
Stringsmn=mname.getText();
FileReaderfile=newFileReader("E:
\\AddressBook.txt");
Scannerfind=newScanner(file);
intn=-1;
Stringa1=null;
Stringa2=null;
Stringa3=null;
Stringa4=null;
while(find.hasNext()){
Stringa=find.next();
if(a.equals("女")||a.equals("男")){
a1=a;
a2=find.next();
a3=find.next();
a4=find.next();
}
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 婴儿 出生 信息管理 系统