軟件工程個人電子相冊詳細設計.doc
《軟件工程個人電子相冊詳細設計.doc》由會員分享,可在線閱讀,更多相關《軟件工程個人電子相冊詳細設計.doc(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
一、實驗目的 1.通過對所選題目進行詳細設計,掌握算法的設計方法與算法的描述; 2.掌握常用算法描述工具的使用; 3. 完成一個小型軟件系統(tǒng)的算法設計。 二、實驗準備 1. 熟悉算法描述工具的使用 三、實驗要求 完成所選題目的詳細設計,提交實驗報告 四、實驗內(nèi)容: 1. 背景 在完成了針對《電子相冊管理》軟件市場的前期調(diào)查,同時與多位軟件使用者進行了全面深入地探討和分析的基礎上,提出了這份軟件需求規(guī)格說明書。 此需求規(guī)格說明書對《電子相冊管理系統(tǒng)》軟件做了全面細致的用戶需求分析,明確所要開發(fā)的軟件應具有的功能、性能與界面,使系統(tǒng)分析人員及軟件開發(fā)人員能清楚地了解用戶的需求,并在此基礎上進一步提出概要設計說明書和完成后續(xù)設計與開發(fā)工作。本說明書的預期讀者為用戶、業(yè)務或需求分析人員、測試人員、項目管理人員。 2. 程序(模塊)系統(tǒng)的組織結(jié)構(gòu) (1) 用戶注冊 進入注冊界面 錄入基本及必填信息 提交數(shù)據(jù) 是否注冊 取消服務,等待用戶下步操作 Yes No 進入登錄首界面 (2) 用戶登入 是否登錄 取消服務,退出界面 Yes No 管理員進入登錄首界面 輸入用戶名及密碼 進入管理員界面 系統(tǒng)查詢匹配 Yes No (3) 用戶管理功能 進入個人檔案 用戶界面 選擇相應操作 進入個人相冊 查看、修改相應數(shù)據(jù) 選擇相應操作 打開相冊 上傳相片 刪除相冊 …… 瀏覽相片 3. 界面設計要求 (1)用戶注冊 (2)用戶登錄 (3) 用戶個人相冊管理 4. 本軟件系統(tǒng)中各程序(模塊)的設計說明 (1) 用戶注冊的代碼 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class qwe extends JFrame implements ActionListener { private static final String ADD = "ADD"; private static final String CANCEL = "CANCEL"; private static final long serialVersionUID = -196950585230726337L; private JLabel name_lab; private JLabel age_lab; private JLabel sex_lab; private JRadioButton man; private JRadioButton woman; private JLabel jLabel0; private JTextArea info_ta; private JScrollPane jScrollPane0; private JTextField name_jf; private JTextField age_jf; private JButton add; private JButton cancel; private ButtonGroup bg=new ButtonGroup(); public static void main(String[] args) { new qwe(); } private void initComponents() { setTitle("注冊"); setLayout(null); add(getName_lab()); add(getAge_lab()); add(getSex_lab()); add(getMan()); add(getWoman()); add(getJLabel0()); add(getJScrollPane0()); add(getName_jf()); add(getAge_jf()); add(getAdd()); add(getCancel()); setSize(316, 320); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); } private JButton getCancel() { if (cancel == null) { cancel = new JButton(); cancel.setText("取消"); cancel.setActionCommand(CANCEL); cancel.setBounds(177, 203, 81, 28); cancel.addActionListener(this); } return cancel; } private JButton getAdd() { if (add == null) { add = new JButton(); add.setText("注冊"); add.setActionCommand(ADD); add.setBounds(69, 203, 81, 28); add.addActionListener(this); } return add; } private JTextField getAge_jf() { if (age_jf == null) { age_jf = new JTextField(); age_jf.setText(""); age_jf.setBounds(61, 41, 138, 22); age_jf.setHorizontalAlignment(JTextField.RIGHT); } return age_jf; } private JTextField getName_jf() { if (name_jf == null) { name_jf = new JTextField(); name_jf.setText(""); name_jf.setBounds(62, 10, 178, 22); } return name_jf; } private JScrollPane getJScrollPane0() { if (jScrollPane0 == null) { jScrollPane0 = new JScrollPane(); jScrollPane0.setBounds(63, 103, 210, 80); jScrollPane0.setViewportView(getInfo_ta()); } return jScrollPane0; } private JTextArea getInfo_ta() { if (info_ta == null) { info_ta = new JTextArea(); info_ta.setText(""); } return info_ta; } private JLabel getJLabel0() { if (jLabel0 == null) { jLabel0 = new JLabel(); jLabel0.setText("簡歷"); jLabel0.setBounds(17, 99, 41, 18); } return jLabel0; } private JRadioButton getWoman() { if (woman == null) { woman = new JRadioButton(); bg.add(woman); woman.setSelected(true); woman.setText("女"); woman.setBounds(105, 65, 45, 26); } return woman; } private JRadioButton getMan() { if (man == null) { man = new JRadioButton(); bg.add(man); man.setText("男"); man.setBounds(58, 66, 47, 26); } return man; } private JLabel getSex_lab() { if (sex_lab == null) { sex_lab = new JLabel(); sex_lab.setText("性別"); sex_lab.setBounds(16, 70, 41, 18); } return sex_lab; } private JLabel getAge_lab() { if (age_lab == null) { age_lab = new JLabel(); age_lab.setText("年齡"); age_lab.setBounds(14, 42, 41, 18); } return age_lab; } private JLabel getName_lab() { if (name_lab == null) { name_lab = new JLabel(); name_lab.setText("姓名"); name_lab.setBounds(15, 11, 41, 20); } return name_lab; } public qwe() { initComponents(); } public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); System.out.println(action); if (action != null && ADD.equals(action)) { StringBuffer sb=new StringBuffer(); sb.append("姓名: ").append(name_jf.getText()).append("\n") .append("年齡: ").append(age_jf.getText()).append("\n") .append("性別: "); if(woman.isSelected()) { sb.append("女\n"); }else { sb.append("男\(zhòng)n"); } sb.append("簡歷: ").append(info_ta.getText()); JOptionPane.showMessageDialog(this, sb.toString()); } else if (action != null && action.equals(CANCEL)) { name_jf.setText(""); age_jf.setText(""); woman.setSelected(true); man.setSelected(false); info_ta.setText(""); } } } (2) 用戶登錄的代碼 import javax.swing.*; import java.awt.*; import java.awt.event.*; class MyJPanel extends JPanel implements ActionListener{ private int count=0; private JLabel label1,label2; private JTextField text; private JPasswordField pass; private JButton button1,button2; MyJPanel(){ label1=new JLabel("用戶名"); label2=new JLabel("密碼"); button1=new JButton("確定"); button2=new JButton("取消"); text=new JTextField(20); pass=new JPasswordField(20); button1.setMnemonic(KeyEvent.VK_O);//設置按鈕快捷鍵 button2.setMnemonic(KeyEvent.VK_C); button1.setActionCommand("entry"); button2.setActionCommand("cancel"); button1.addActionListener(this);//注冊按鈕事件 button2.addActionListener(this);//注冊按鈕事件 setBackground(Color.cyan);//設定面板背景色 add(label1); add(text); add(label2); add(pass); add(button1); add(button2); } public void actionPerformed(ActionEvent e){ if (e.getActionCommand().equals("entry")){ count++; //計數(shù) String username,password; if (count<3) { username=text.getText(); password=pass.getText(); if (username.equals("abcd")&&password.equals("123456")){ text.setText("用戶名及密碼正確!"); pass.setText(""); } else{ text.setText(""); pass.setText(""); } } else System.exit(0);//退出程序 } else System.exit(0);//退出程序 } } public class dengru extends JFrame { public static void main(String[] args) { MyJPanel jp=new MyJPanel();//定義面板 jp.setBorder(BorderFactory.createTitledBorder("輸入用戶名和密碼"));//設定邊界 JFrame frame=new JFrame("用戶登錄"); frame.setSize(300,150); frame.setContentPane(jp);//在框架中加載面板 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設置框架關閉按鈕事件 frame.setVisible(true); } } (3) 用戶個人電子相冊管理的代碼 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.sql.Time; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.Timer; public class task extends JFrame implements ActionListener{ JPanel p_photo=new JPanel(); JLabel l_photo=new JLabel(); JPanel p_button=new JPanel(); JButton jb_open=new JButton("打開"); JButton jb_prev=new JButton("上一個"); JButton jb_next=new JButton("下一個"); JButton jb_auto=new JButton("自動"); JButton jb_fangda=new JButton("放大"); JButton jb_suoxiao=new JButton("縮小"); JButton jb_close=new JButton("關閉"); int c=500,d=380; JFileChooser fc=new JFileChooser(); File[] files; ImageIcon ii; Timer t; public task() { super("電子相冊"); l_photo.setOpaque(true); BorderLayout bb=new BorderLayout(); p_photo.setLayout(bb); p_photo.add(l_photo,BorderLayout.CENTER); this.add(p_photo,BorderLayout.CENTER); p_button.add(jb_open); jb_open.addActionListener(this); p_button.add(jb_prev); jb_prev.addActionListener(this); p_button.add(jb_next); jb_next.addActionListener(this); p_button.add(jb_auto); jb_close.addActionListener(this); p_button.add(jb_fangda); jb_fangda.addActionListener(this); p_button.add(jb_suoxiao); jb_suoxiao.addActionListener(this); jb_auto.addActionListener(this); p_button.add(jb_close); this.add(p_button,BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(500,420); this.setLocationRelativeTo(null); this.setVisible(true); } public static void main(String[] args) { new task(); } int index; int flag; public void actionPerformed(ActionEvent e) { String str=e.getActionCommand(); System.out.println(str); if(str.equals("打開")) { open(); } if(str.equals("上一個")) { c=500;d=380; prev(); } if(str.equals("下一個")) { c=500;d=380; next(); } if(str.equals("自動")) { auto(); } if(str.equals("放大")) { c+=10; d+=10; cd(); } if(str.equals("縮小")) { c-=10; d-=10; cd(); } if(str.equals("關閉")) { System.exit(0); } } public boolean open() { fc.setMultiSelectionEnabled(true); fc.showOpenDialog(null); files=fc.getSelectedFiles(); index=files.length; flag=files.length; if(index==0) { JOptionPane.showMessageDialog(null,"你未添加任何圖片\n請重新添加"); return false; } else { setimage(0); return true; } } public void prev() { if(index==0){ JOptionPane.showMessageDialog(null,"你還未添加任何圖片"); } else { if(index<0){ index=flag; setimage(index--); } else { setimage(index--); } } } public void cd() { if(index==0) { JOptionPane.showMessageDialog(null,"你還未添加任何圖片"); } else { if(index>flag){ index=0; setimage(index++); } else { setimage(index++); } } } public void next() { if(index==0){ JOptionPane.showMessageDialog(null,"你還未添加任何圖片"); } else { if(index>flag) { index=0; setimage(index++); } else { setimage(index++); } } } public void auto() { ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) { jb_next.doClick(); } }; t= new Timer(2000,taskPerformer); t.start(); } public void setimage(int a) { ii = new ImageIcon(files[a].toString()); ii.setImage(ii.getImage().getScaledInstance(c,d,Image.SCALE_FAST)); l_photo.setIcon(ii); } } 5、 模塊相互關系表 系統(tǒng)功能總結(jié)構(gòu)圖 … 電子相冊管理系統(tǒng) 用戶注冊子系統(tǒng) 登錄子系統(tǒng) 管理員信息管理子系統(tǒng) 用戶信息管理子系統(tǒng) 系統(tǒng)設置管理子系統(tǒng) 注 冊 信息完善 個人電子相冊的管理 5、 試驗總結(jié)- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 軟件工程 個人 電子相冊 詳細 設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://weibangfood.com.cn/p-9163605.html