精华内容
下载资源
问答
  • 毕业设计,管理系统,大学生毕业设计应该这么

    万次阅读 多人点赞 2019-11-21 11:02:33
    1.毕业设计选题(3小时),选择一个自己熟悉的,题目尽量新颖,避免最后查重过高,降重困难; 2.如果会java web开发,中间时间随便玩,或者出去找工作上班,不需要管毕业设计了;如果不会,就要自己自学了,也可以...

    个人认为软件开发---大学生毕业设计的正常流程应该是这样的:

    1.毕业设计选题(3小时),选择一个自己熟悉的,题目尽量新颖,避免最后查重过高,降重困难;

    2.如果会java web开发,中间时间随便玩,或者出去找工作上班,不需要管毕业设计了;如果不会,就要自己自学了,也可以通过定制毕业设计从而有个快速成品,在成品的基础上学习,可以更加快速成长

    3. 接下来撰写毕业设计论文以及查重降重,修改测试项目。

    也可以买论文,毕竟我觉得大学生写论文意义不大,所学浅薄,怎能谈的上论文二字!!!!!!

     

    毕业设计与论文会有一个老师带你,答辩组是3个老师,其中一个是院长。当你写设计的时候一定要注意老师的态度,比如我一两周找她一次,她就拿这个说事,说我不找她。加功能的时候不提前说,看一次就嫌弃我没有加。。。这种时候就应该说:老师是我的错,是是是,我改,我真改。。。。。。

    老师都是抽风的,上位领导是得罪不起的。你不要以为她对你笑就是真正的原谅你,也不要以为她会记得关于你的所有事情。一切都是老师说的对,以老师为准。老师说的话就是真理。帝心诡辩,难测啊。。。。。。大量各种系统

    展开全文
  • 用java写一个学生管理系统

    万次阅读 多人点赞 2019-02-21 15:08:43
    学习java一学期了,写了一个简单的学生管理系统。用swing写界面,连接后台mysql数据库。 导入导出使用的是poi的jar包。 在学习过程中有很多没有教过的知识需要自己去网络上或书上查找资料。对一些类的操作有了练习...

    学习java一学期了,写了一个简单的学生管理系统。用swing写界面,连接后台mysql数据库。
    导入导出使用的是poi的jar包。
    在这里插入图片描述
    在这里插入图片描述
    在学习过程中有很多没有教过的知识需要自己去网络上或书上查找资料。对一些类的操作有了练习了解。比如List类用来存放数据、swing的使用、一对一关系、正则表达式、事件监听、数据库相关操作、还有输入流、输出流等知识。有了一定的模块化思想,比如写了一个connection类封装数据库连接的代码,其他类再进行调用。但还是很多地方没有写的很完善,代码的冗余性还比较高,可以进一步优化。还学习了怎么使用WindowBuilder插件绘制swing界面。通过项目实战学习到很多知识,显著的对本学期知识进行了巩固加强。

    XsglMain.java

    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JRootPane;
    import javax.swing.border.EmptyBorder;
    import javax.swing.event.TableModelEvent;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JTextField;
    import javax.swing.SwingConstants;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JTable;
    import javax.swing.JScrollPane;
    import java.awt.event.ActionListener;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Vector;
    import java.util.regex.Pattern;
    import java.awt.event.ActionEvent;
    import javax.swing.JLabel;
    import javax.swing.JMenuBar;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import java.awt.Color;
    /*
     * 主界面
     */
    public class XsglMain extends JFrame implements ActionListener {
    	private ImageIcon background;
    	private JRootPane imagePanel;
    	private JPanel contentPane;
    	private JTextField text1;
    	JTable table;
    	private DefaultTableModel tableModel;
    	XsglInformation stuInfo ;
    	boolean flag = false;
    	private JLabel mainInfo = new JLabel();
    	XsglLogin login = null;
    	public void setXsglLogin(XsglLogin login){
    		this.login = login;
    	}
    	public static void main(String[] args) {		
    		XsglMain frame = new XsglMain();
    					
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public XsglMain() {
    		setTitle("\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF");
    		setVisible(true);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 722, 514);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
    		
    		JPanel panel = new JPanel();
    		panel.setBounds(5, 5, 697, 20);
    		contentPane.add(panel);
    		panel.setLayout(null);
    		
    		JMenuBar menuBar = new JMenuBar();
    		menuBar.setBounds(0, 0, 697, 20);
    		panel.add(menuBar);
    		
    		JMenu menu = new JMenu("\u529F\u80FD");
    		menu.setForeground(Color.DARK_GRAY);
    		menuBar.add(menu);
    		
    		JMenuItem mntmexcel = new JMenuItem("\u5BFC\u51FA\u81F3Excel");
    		mntmexcel.setHorizontalAlignment(SwingConstants.LEFT);
    		mntmexcel.addActionListener(this);
    		mntmexcel.setActionCommand("exportExcelFile");
    		menu.add(mntmexcel);
    		
    		JMenuItem mntmexcel_1 = new JMenuItem("\u4ECEExcel\u5BFC\u5165");
    		mntmexcel_1.setHorizontalAlignment(SwingConstants.LEFT);
    		mntmexcel_1.addActionListener(this);
    		mntmexcel_1.setActionCommand("fromExcel");
    		menu.add(mntmexcel_1);
    		
    		JMenu menu_1 = new JMenu("\u7528\u6237");
    		menu_1.setForeground(Color.DARK_GRAY);
    		menuBar.add(menu_1);
    		
    		JMenuItem logout = new JMenuItem("\u5207\u6362\u8D26\u6237");
    		logout.setHorizontalAlignment(SwingConstants.LEFT);
    		logout.addActionListener(this);
    		logout.setActionCommand("logout");
    		menu_1.add(logout);
    		
    		JMenuItem thisInfo = new JMenuItem("\u5F53\u524D\u7528\u6237\u4FE1\u606F");
    		thisInfo.addActionListener(this);
    		thisInfo.setActionCommand("getInfo");
    		menu_1.add(thisInfo);
    		
    		JPanel panel_1 = new JPanel();
    		panel_1.setBounds(5, 429, 697, 33);
    		contentPane.add(panel_1);
    		panel_1.setLayout(null);
    		
    		JButton add = new JButton("\u6DFB\u52A0");		
    		add.addActionListener(this);
    		add.setActionCommand("add");
    		add.setBounds(399, 0, 93, 33);
    		panel_1.add(add);
    		
    		JButton delete = new JButton("\u5220\u9664");
    		delete.addActionListener(this);
    		delete.setActionCommand("delete");
    		delete.setBounds(502, 0, 93, 33);
    		panel_1.add(delete);
    		
    		JButton all = new JButton("\u5237\u65B0");
    		all.addActionListener(this);
    		all.setActionCommand("all");
    		all.setBounds(604, 0, 93, 33);
    		panel_1.add(all);
    		
    		
    		mainInfo.setBounds(0, 10, 175, 15);
    		panel_1.add(mainInfo);
    		mainInfo.setText("");
    		
    		JScrollPane scrollPane = new JScrollPane();
    		scrollPane.setBounds(5, 65, 697, 354);
    		contentPane.add(scrollPane);
    		table = new JTable();	
    		tableModel =(DefaultTableModel) table.getModel() ;
    		stuInfo = new XsglInformation("select * from student");		
    		
    		tableModel.setDataVector(this.stuInfo.data, this.stuInfo.columns);
    		tableModel.fireTableDataChanged();
    		
    		scrollPane.setViewportView(table);
    		
    		JButton search = new JButton("");
    		search.setForeground(Color.WHITE);
    		search.setIcon(new ImageIcon("F:\\JavaTest\\\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF 2.0\\2.jpg"));
    		search.setBounds(672, 35, 20, 20);
    		contentPane.add(search);
    		search.setActionCommand("search");
    		search.addActionListener(this);
    		search.setActionCommand("search");		
    		
    		this.tableModel.addTableModelListener(e -> tableChanged(e));//表格事件监听
    		
    //
    //		//背景部分
    //		background = new ImageIcon("F:/JavaTest/学生管理系统 2.0/bin/1.jpg");// 背景图片
    //		 ImageIcon img = new ImageIcon("F:/JavaTest/学生管理系统 2.0/bin/1.jpg"); 
    //		  JLabel imgLabel = new JLabel(img); //JLabel imgLabel = new JLabel(new ImageIcon("back.jpg"));
    //		  getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE)); 
    //		  imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight()); //背景图片的位置
    //		  //将contentPane设置成透明的 
    //		  ((JPanel)getContentPane()).setOpaque(false);
    		  
    		  text1 = new JTextField();
    		  text1.setBounds(5, 27, 697, 34);
    		  contentPane.add(text1);
    		  text1.setText("\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u67E5\u627E\uFF08\u53EF\u4EE5\u4E3A\u5B66\u53F7\u3001\u59D3\u540D\u3001\u5E74\u9F84\u3001\u6027\u522B\uFF09");
    		  text1.setHorizontalAlignment(SwingConstants.LEFT);
    		  text1.setColumns(40);
    		 
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO 自动生成的方法存根		
    		if (e.getActionCommand().equals("search")){
    			//调用查询模块
    			flag = true;
    			String name = this.text1.getText().trim();
    			String i=this.keyWord();
    			String sql = "select * from student where "+i+" = '"+name+"'";
    			stuInfo = new XsglInformation(sql);				
    			tableModel.setDataVector(this.stuInfo.data, this.stuInfo.columns);
    			tableModel.fireTableDataChanged();
    			this.mainInfo.setText("搜索'"+this.text1.getText()+"'完成");
    			flag = false;
    		}else if (e.getActionCommand().equals("all")){	
    			//刷新模块
    			flag = true;
    			stuInfo = new XsglInformation("select * from student");
    			tableModel.setDataVector(stuInfo.data,stuInfo.columns);
    			tableModel.fireTableDataChanged();
    			this.mainInfo.setText("刷新成功");
    			flag = false;
    		}else if (e.getActionCommand().equals("add")){	
    			//增加模块
    			if(this.login.identity.equals("管理员")){
    			flag = true;
    			String sql = "select * from student where Sno = '20001000'";
    			try {
    			PreparedStatement pstmt = stuInfo.conn.prepareStatement(sql);
    			ResultSet rs = pstmt.executeQuery();						
    								
    			if(rs.next()){
    				this.mainInfo.setText("请先进行修改再继续添加下一行");
    			}else{
    			try {
    				stuInfo.add("99999999","姓名", "18" ,"男女");
    			} catch (Exception e1) {
    				// TODO 自动生成的 catch 块
    				e1.printStackTrace();
    				}		
    			Vector<Object> date = new Vector<Object>();
    			date.add("99999999");
    			date.add("姓名");
    			date.add("18");
    			date.add("男女");
    			this.tableModel.addRow(date);
    			this.mainInfo.setText("添加一行成功");			
    			flag = false;
    				}
    			} catch (SQLException e1) {
    				// TODO 自动生成的 catch 块
    				e1.printStackTrace();
    			}	
    			flag = false;
    			}else{
    				this.mainInfo.setText("您是学生,没有添加权限");
    			}
    	    }else if (e.getActionCommand().equals("delete")){
    			//调用删除模块 
    	    	if(this.login.identity.equals("管理员")){
    	    	flag = true;
    			int row = this.table.getSelectedRow() ;	
    		
    			if(row == -1){
    				this.mainInfo.setText("请先选择一行");
    			}else{
    			Object value = this.table.getValueAt(row,0);
    			try {
    				this.stuInfo.delete(value);
    			} catch (SQLException e2) {
    				// TODO 自动生成的 catch 块
    				e2.printStackTrace();
    			}
    			try {
    				stuInfo.searchAll();
    			} catch (SQLException e1) {
    				// TODO 自动生成的 catch 块
    				e1.printStackTrace();
    			}
    			tableModel.setDataVector(stuInfo.data, stuInfo.columns);
    			tableModel.fireTableDataChanged();
    			this.mainInfo.setText("删除成功");
    			}
    			flag = false;
    	    	}else{
    				this.mainInfo.setText("您是学生,没有删除权限");
    				}	    	
    		}else if (e.getActionCommand().equals("exportExcelFile")){
    			//导出模块			
    			try {
    				new Xsgl_Excel().exportTable(table);
    			} catch (Exception e1) {
    				// TODO 自动生成的 catch 块
    				e1.printStackTrace();
    			}		
    		}else if (e.getActionCommand().equals("fromExcel")){
    			//导入模块			
    			if(this.login.identity.equals("管理员")){
    				flag = true;
    				new Xsgl_Excel().fromExcel();	
    				this.mainInfo.setText("导入成功");	
    				//刷新表格信息
    				stuInfo = new XsglInformation("select * from student");
    				tableModel.setDataVector(stuInfo.data,stuInfo.columns);
    				tableModel.fireTableDataChanged();
    				flag = false;
    			}else{
    				this.mainInfo.setText("您是学生,没有导入权限");				
    			}
    		}else if (e.getActionCommand().equals("logout")){
    			//注销模块	
    			new XsglLogin().setVisible(true);
    			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    			this.dispose();
    			
    		}else if (e.getActionCommand().equals("getInfo")){
    			//获得当前账户模块				
    			Info in = new Info();
    			in.id.setText(this.login.id);			
    			try {
    				in.setInfo(this.login.id);
    			} catch (SQLException e1) {
    				// TODO 自动生成的 catch 块
    				e1.printStackTrace();
    			}			
    		}		  
    	}
    	
    	public void tableChanged(TableModelEvent e){
    		if(this.login.identity.equals("管理员")){
    			if(e.getType() == TableModelEvent.UPDATE && flag == false){					
    				int row = table.getSelectedRow();	
    		    	int column = table.getSelectedColumn();
    		    	String Sno = table.getValueAt(row,0).toString();    	
    		    	String Sname = table.getValueAt(row,1).toString();	  	
    		    	Object Sage = table.getValueAt(row,2);	
    		    	String Sgender = table.getValueAt(row,3).toString();		
    		    	if(column == 0){ 
    		    		if(stuInfo.matchesSno(Sno)){
    		    		String sql = "UPDATE student SET Sno='"+Sno+"' WHERE Sname ='"+Sname+"'";
    					stuInfo.updata(sql);
    					this.mainInfo.setText("’"+Sno+"‘修改成功");
    		    		}else{
    		    			this.mainInfo.setText("’"+Sno+"‘输入格式不正确");
    		    		}
    				}else if(column == 1){
    					if(stuInfo.matchesSname(Sname)){
    					String sql = "UPDATE student SET Sname='"+Sname+"' WHERE Sno ='"+Sno+"'";
    					new XsglInformation().updata(sql);	
    					this.mainInfo.setText("’"+Sname+"‘修改成功");
    					}else{
    		    			this.mainInfo.setText("’"+Sname+"‘输入格式不正确");
    		    		}
    				}else if(column == 2){
    					if(stuInfo.matchesSage(Sage.toString())){
    					String sql = "UPDATE student SET Sage='"+Sage+"' WHERE Sno ='"+Sno+"'";
    					new XsglInformation().updata(sql);	
    					this.mainInfo.setText("’"+Sage+"‘修改成功");
    					}else{
    		    			this.mainInfo.setText("’"+Sage+"‘输入格式不正确");
    		    		}
    				}else if(column == 3){
    					if(stuInfo.matchesSgender(Sgender)){
    					String sql = "UPDATE student SET Sgender='"+Sgender+"' WHERE Sno ='"+Sno+"'";
    					new XsglInformation().updata(sql);		
    					this.mainInfo.setText("’"+Sgender+"‘修改成功");
    					}else{
    		    			this.mainInfo.setText("’"+Sgender+"‘输入格式不正确");
    		    		}
    				}else{
    					System.out.println("更新失败");
    				}
    			}			
    		}
    		else{
    			this.mainInfo.setText("您是学生,没有修改权限");
    		}
    	}
    	
    	public String keyWord(){
    		String key = this.text1.getText().trim();
    		String type = null;
    		if(Pattern.matches("\\d{8}",key)){
    			type = "Sno";			
    		}else if(Pattern.matches("([男]|[女])+$",key)){
    			type = "Sgender";			
    		}else if(Pattern.matches("^[0-9]*$",key)){
    			type = "Sage";			
    		}else if(Pattern.matches("^[\u4E00-\u9FA5]+$",key)){
    			type = "Sname";			 
    		}else{
    			type = null;
    		}
    		return type;		
    	} 			
    }
    

    登录界面:
    XsglLogin.java

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.SQLException;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    import javax.swing.WindowConstants;
    
    class LoginCheck{
    	private String name ;
    	private String password ;
    	public LoginCheck(String name,String password) {
    		this.name = name ;
    		this.password = password ;
    
    	}
    
    	public boolean check(String ID,String pass) {
    		boolean i = false;
    		try {
    			i = new XsglInformation().checkID(ID, pass);
    		} catch (SQLException e) {
    			
    			e.printStackTrace();
    		}
    		return i;
    	}
    }
    public class XsglLogin extends JFrame implements ActionListener{
    	private JFrame frame = new JFrame("学生管理系统--登录") ;
    	private JButton submit = new JButton("\u767B\u5F55");
    	private JButton reset = new JButton("\u91CD\u7F6E");
    	private JLabel nameLab = new JLabel("NAME\uFF1A") ;
    	private JLabel passLab = new JLabel("PASS\uFF1A") ;
    	private JLabel infoLab = new JLabel("\u8BF7\u8F93\u5165\u8D26\u53F7\u5BC6\u7801") ;
    	private JTextField nameText = new JTextField(10) ;
    	private JPasswordField passText = new JPasswordField() ;
    	private JPanel pan = new JPanel() ;
    	private JPanel imagePanel;
    	private ImageIcon background;	
    	private XsglMain main = null;
    	String id = null;
    	String identity = null;
    	public XsglLogin(){
    		submit.setBounds(208, 303, 126, 23);
    		submit.addActionListener(this);
    		submit.setActionCommand("login");
    		reset.setFont(new Font("宋体", Font.PLAIN, 13));
    		reset.setBounds(448, 336, 67, 19);
    		reset.addActionListener(new ActionListener(){
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				if (e.getSource()==reset) {
    					nameText.setText("");
    					passText.setText("");
    					infoLab.setText("请输入账号密码");
    				}
    			}
    		});
    		frame.getContentPane().setLayout(null);
    		frame.getContentPane().setLayout(null);
    		nameLab.setBounds(136, 196, 57, 15);
    		frame.getContentPane().add(nameLab) ;
    		passLab.setBounds(136, 242, 57, 15);
    		frame.getContentPane().add(passLab) ;
    		infoLab.setBounds(10, 336, 162, 15);
    		frame.getContentPane().add(infoLab) ;
    		nameText.setForeground(Color.BLACK);
    		nameText.setBackground(Color.WHITE);
    		nameText.setBounds(184, 193, 184, 21);
    		frame.getContentPane().add(nameText) ;
    		passText.setBounds(184, 239, 184, 21);
    		frame.getContentPane().add(passText) ;
    		frame.getContentPane().add(submit) ;
    		frame.getContentPane().add(reset) ;
    		frame.setTitle("\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF");
    		
    		frame.setBackground(Color.DARK_GRAY) ;
    		frame.setLocation(300,200) ;
    		frame.setVisible(true) ;
    		
    		//背景部分
    		background = new ImageIcon("F:/JavaTest/学生管理系统 2.0/bin/bgbg.jpg");// 背景图片
    		  JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
    		  // 把标签的大小位置设置为图片刚好填充整个面板
    		  label.setBounds(0, 0, background.getIconWidth(),
    		    background.getIconHeight());
    		  // 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
    		  imagePanel = (JPanel) frame.getContentPane();
    		  
    		  JButton btnNewButton = new JButton("\u6CE8\u518C");
    		  btnNewButton.setBounds(381, 336, 67, 19);
    		  frame.getContentPane().add(btnNewButton);
    		  imagePanel.setOpaque(false);
    		  frame.getLayeredPane().setLayout(null);
    		  // 把背景图片添加到分层窗格的最底层作为背景
    		  frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
    		  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		  frame.setSize(541, 404);
    		
    		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    	}
    	public static void main(String[] args) {
    		new XsglLogin() ;
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getActionCommand().equals("login")){
    			String ID = nameText.getText() ;
    			String pass = new String(passText.getPassword()) ;
    			LoginCheck login = new LoginCheck(ID,pass) ;
    			if(login.check(ID,pass)){
    				infoLab.setText("登陆成功") ;
    				frame.setVisible(false);
    				this.main = new XsglMain();
    				this.id = ID;
    				try {
    					this.identity = new XsglInformation().setIdentity(ID);
    				} catch (SQLException e1) {
    					// TODO 自动生成的 catch 块
    					e1.printStackTrace();
    				}
    				main.setXsglLogin(this);
    				
    				}else{
    					infoLab.setText("账号或密码错误") ;			
    			}
    		}
    	}
    }
    

    学生信息类:
    存放一些方法

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Vector;
    import java.util.regex.Pattern;
    
    import javax.swing.table.DefaultTableModel;
    
    public class XsglInformation  {	
    	Connection conn = new Xsgl_connection().getConn();
    	DefaultTableModel model = null;
    	Vector columns,data = null;
    	public XsglInformation(String sql){
    		try {
    			this.excuteSql(sql);
    		} catch (SQLException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    		
    	}
    	public XsglInformation() {
    		// TODO 自动生成的构造函数存根
    	}
    	public void delete(Object value) throws SQLException{		
    		
    		String sql="delete from student where Sno=?";
    		PreparedStatement ps=conn.prepareStatement(sql);
    		ps.setObject(1, value);
    		ps.executeUpdate();
    		
    	}
    	public DefaultTableModel searchAll() throws SQLException{	
    		this.excuteSql( "select * from student");				
    		return model;		
    	}
    	
    	public void add(String Sno,String Sname,String sage,String Sgender)throws Exception{
    		//添加模块	
    		boolean i = false;		
    		if(this.matchesSno(Sno)&&this.matchesSname(Sname)&&this.matchesSage(sage)&&this.matchesSgender(Sgender)){			
    			try {				
    				int Sage = Integer.parseInt(sage);
    				String sql="insert into student values('"+Sno+"','"+Sname+"',"+sage+",'"+Sgender+"')";
    				PreparedStatement ps=conn.prepareStatement(sql);
    				int result=ps.executeUpdate();
    				System.out.println("成功添加一行 ( "+Sno+" "+Sname+" "+sage+" "+Sgender+" )");
    			} catch (Exception e1) {
    				// TODO 自动生成的 catch 块
    				e1.printStackTrace();
    				}						
    			}else{
    				System.out.println("添加失败,信息格式输入有错");
    			}
    		}
    	
    	public boolean checkID(String ID,String pass) throws SQLException{
    		String sql = "SELECT * FROM admin WHERE adminID ='"+ID+"' AND adminPassword='"+pass+"'";
    		PreparedStatement ps=conn.prepareStatement(sql);
    		ResultSet rs=ps.executeQuery();
    		while(rs.next()){
    			String adminID = rs.getString(1);
    			String adminPass = rs.getString(2);
    			if(adminID.equals(ID)&&adminPass.equals(pass)){				
    				return true;
    			}
    		}
    		return false;
    	}
    	DefaultTableModel excuteSql(String sql) throws SQLException {
    		// TODO 自动生成的方法存根
    		this.data = new Vector(); 
    		this.columns = new Vector<String>();
        	columns.add("学号");
        	columns.add("姓名");
        	columns.add("年龄 ");
        	columns.add("性别");    	
        	Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);     
           
            while (rs.next()) {        	
            	Vector row = new Vector();        
            	row.add(rs.getInt(1));
            	row.add(rs.getString(2));
            	row.add(rs.getInt(3));
            	row.add(rs.getString(4));
            	data.add(row);
            	}
            model = new DefaultTableModel(data, columns);
            return model;
            
            }
    	public void updata(String sql)  {				
    		try {
    			PreparedStatement ps = conn.prepareStatement(sql);
    			int result=ps.executeUpdate();			
    		} catch (SQLException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}	
    									
    	}	
    	public boolean matchesSno(String Sno){
    		String regex = "\\d{8}";
    		if(Pattern.matches(regex, Sno)){
    			return true;
    		}else{
    			System.out.println(Sno+"数据有误");
    			return false;
    		}
    	}
    	public boolean matchesSgender(String sgender) {
    		// TODO 自动生成的方法存根
    		String regex = "([男]|[女])+$";
    		if(Pattern.matches(regex, sgender)){
    			return true;
    		}else{
    			System.out.println(sgender+"数据有误");
    			return false;
    		}
    	}
    	public boolean matchesSage(String sage) {
    		// TODO 自动生成的方法存根
    		String regex = "^[0-9]*$";
    		if(Pattern.matches(regex, sage)){
    			return true;
    		}else{
    			System.out.println(sage+"数据有误");
    			return false;
    		}
    	}
    	public boolean matchesSname(String sname) {
    		
    		String regex = "^[\u4E00-\u9FA5]+$";
    		if(Pattern.matches(regex, sname)){
    			return true;
    		}else{
    			System.out.println(sname+"数据有误");
    			return false;
    		}
    	}	
    	public Boolean checkPrimaryKey(String primaryKey){
    		String sql = "select * from student where Sno = '"+primaryKey+"'";
    		Boolean flag = false;
    		PreparedStatement pst;
    		try {
    			pst = conn.prepareStatement(sql);
    			ResultSet rs = pst.executeQuery();
    			if(rs.next()){
    				flag = true;
    			}else{
    				flag = false;
    			}
    		} catch (SQLException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    		return flag;			
    	}
    	public String setIdentity(String ID) throws SQLException{
    		String sql = "SELECT Identity FROM admin WHERE adminID ='"+ID+"'";
    		String identity = null;
    		PreparedStatement ps=conn.prepareStatement(sql);
    		ResultSet rs=ps.executeQuery();
    		while(rs.next()){
    			identity = rs.getString(1);					
    		}
    		return identity;				
    	}
    }
    
    

    导入导出实现类:

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import javax.swing.JFileChooser;
    import javax.swing.JLabel;
    import javax.swing.JTable;
    import javax.swing.table.TableModel;
    
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.CellType;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    public class Xsgl_Excel {
    	Workbook wb = null;	
    	String Sno ;
    	String Sname;
    	String Sage;
    	String Sgender;
    	String filePath ;
    	XsglInformation info = null;
    	public void exportTable(JTable table) throws Exception {
    	//用POI包导出
    		wb = new XSSFWorkbook();
    		Sheet hs = wb.createSheet();
    		TableModel tm = table.getModel();
    		int column = tm.getColumnCount();
    		int row = tm.getRowCount();
    		for (int i = 0; i < row + 1; i++) {
    			Row hr = hs.createRow(i);
    			for (int j = 0; j < column; j++) {
    				if (i == 0) {
    					String value = tm.getColumnName(j); 					
    					Cell hc = hr.createCell(j);
    					hc.setCellValue(value);
    					}else if (tm.getValueAt(i - 1, j) != null) {
    						String value = tm.getValueAt(i - 1, j).toString();							
    						Cell hc = hr.createCell(j);
    						hc.setCellValue(value);	
    					}
    				}
    			}		
    	    //导出文件路径
    	    String basePath = this.selectPath();
    	    //文件名
    	    
    	    String exportFileName = ".xlsx";
    	    File  file = new File(basePath+exportFileName);
    	    //文件输出流
    	    FileOutputStream outStream = new FileOutputStream(file);
    	    wb.write(outStream);
    	    outStream.flush();
    	    outStream.close();
    	    System.out.println("导出文件成功!文件导出路径: "+basePath+exportFileName);
    	    
    	}
    	public String selectPath() throws Exception {
    		
    		JFileChooser jfc=new JFileChooser("F:\\JavaTest\\学生管理系统 2.0\\excel");  
    		jfc.showDialog(new JLabel(), "选择");  
    		jfc.setMultiSelectionEnabled(false);//不能多选			
    		File file=jfc.getSelectedFile();
    		return filePath = file.getAbsolutePath();
    	}
    	public void getDateFromExcel(){
    		
    		if(!filePath.endsWith(".xls")&&!filePath.endsWith(".xlsx"))
            {
                System.out.println("文件不是excel类型");
            }else{
            	System.out.println("文件是excel类型");
            }
    	}
    	public Xsgl_Excel(){}
    	
    	public void fromExcel() {
    		try {
    			this.selectPath();
    		} catch (Exception e1) {
    			// TODO 自动生成的 catch 块
    			e1.printStackTrace();
    		}
    		this.getDateFromExcel();		
    		try {
    			FileInputStream fileIn = new FileInputStream(filePath);
    			wb = WorkbookFactory.create(fileIn);
    		} catch (IOException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    		Sheet sh = wb.getSheetAt((short)0);
    		for(int i = 1;i<=sh.getLastRowNum();i++){
    			Row row = sh.getRow(i);
    			for(int j = 0;j<=3;j++){
    				Cell cell = row.getCell((short)j);
    				cell.setCellType(CellType.STRING);
    				if(j==0){
    					Sno = cell.getStringCellValue().toString();					
    				}else if(j==1){
    					Sname = cell.getStringCellValue().toString();
    				}else if(j==2){					
    					Sage = cell.getStringCellValue().toString();					
    				}else if(j==3){
    					Sgender = cell.getStringCellValue().toString();					 
    				}	            
    			}			
    			info = new XsglInformation();
    			if(info.checkPrimaryKey(Sno)){
    				System.out.println("已存在"+Sno+"不能重复增加");
    			}else{
    				try {
    					info.add(Sno, Sname, Sage, Sgender);
    				} catch (Exception e) {
    					// TODO 自动生成的 catch 块
    					e.printStackTrace();
    				}
    				
    			}
    						
    		}			
    	}
    }
    
    

    连接数据库类

    import java.sql.*;
     
    public class Xsgl_connection {
    	//private static String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	private static String DBURL = "jdbc:mysql://localhost:3306/xsgl?serverTimezone=UTC";
    	private static String DBUSERNAME = "root";
    	private static String DBPASSWORD = "mysqladmin";
    	Connection conn = null;	//数据库连接
    	
    	public Connection getConn(){
    		
    		try {
              //Class.forName(DBDRIVER);
                conn = DriverManager.getConnection(DBURL, DBUSERNAME, DBPASSWORD);
              //  stmt= conn.createStatement();
            } catch (Exception e) {
                e.printStackTrace();
            }
    		return conn;
    	}
    	
    	public static void close(Connection conn){
    		if(conn!=null){
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			}
    		}
    	}
        public static void main(String[] args) throws SQLException {
        	//测试代码
        	String sql = "SELECT Sno,Sname,Sage,Sgender FROM student";
            Connection conn = new Xsgl_connection().getConn(); 
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);        
            rs = stmt.executeQuery(sql);
            while(rs.next()){
            	int sno = rs.getInt(1);
            	String sname = rs.getString(2);
            	int sage = rs.getInt(3);
            	String sgander = rs.getString(4);
            	System.out.println("学号:"+sno);
            	System.out.println("姓名:"+sname);
            	System.out.println("年龄:"+sage);
            	System.out.println("性别:"+sgander);
            	System.out.println("--------------");
            }
            try {
    			stmt = conn.createStatement();
    			 rs = stmt.executeQuery(sql);
    		     close(conn);
    		     System.out.println("关闭");
    		} catch (SQLException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
        }
    }
    

    弹出框查看当前登录信息

    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import javax.swing.JDialog;
    import javax.swing.JPanel;
    import javax.swing.WindowConstants;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    
    public class Info extends JDialog {
    	private final JPanel contentPanel = new JPanel();
    	JLabel id = new JLabel("id");
    	JLabel Name = new JLabel("name");
    	JLabel identity = new JLabel("identity");
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		try {
    			Info dialog = new Info();
    			dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    			
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	/**
    	 * Create the dialog.
    	 */
    	public void setInfo(String ID) throws SQLException{
    		String sql = "SELECT Name,Identity FROM admin WHERE adminID ='"+ID+"'";
    		PreparedStatement ps=new Xsgl_connection().getConn().prepareStatement(sql);
    		ResultSet rs=ps.executeQuery();
    		while(rs.next()){
    			String Name = rs.getString(1);
    			String identity = rs.getString(2);
    			this.Name.setText(Name);
    			this.identity.setText(identity);
    		}
    				
    	}
    	
    	public Info() {
    		this.setVisible(true);
    		setBounds(100, 100, 272, 231);
    		getContentPane().setLayout(new BorderLayout());
    		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
    		getContentPane().add(contentPanel, BorderLayout.CENTER);
    		contentPanel.setLayout(null);
    		{
    			JLabel label = new JLabel("\u8D26  \u540D\uFF1A");
    			label.setBounds(74, 61, 50, 15);
    			contentPanel.add(label);
    		}
    		
    		
    		id.setBounds(134, 61, 54, 15);
    		contentPanel.add(id);
    		
    		JLabel label = new JLabel("\u6635  \u79F0\uFF1A");
    		label.setBounds(74, 86, 54, 15);
    		contentPanel.add(label);
    		
    		Name = new JLabel("name");
    		Name.setBounds(134, 86, 54, 15);
    		contentPanel.add(Name);
    		
    		JLabel llll = new JLabel("\u8EAB  \u4EFD\uFF1A");
    		llll.setBounds(74, 111, 54, 15);
    		contentPanel.add(llll);
    		
    		
    		identity.setBounds(134, 111, 54, 15);
    		contentPanel.add(identity);
    		{
    			JPanel buttonPane = new JPanel();
    			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
    			getContentPane().add(buttonPane, BorderLayout.SOUTH);
    		}
    	}	
    }
    
    
    展开全文
  • 一、创建项目 首先我们先安装Vue脚手架,vue-cli。打开CMD命令行输入下面的指令安装。...在自己指定的目录下创建一个新的项目,然后输入 init -y 初始化项目。 然后选择手动配置项目,根据自己的需求安装响应...

    一、创建项目

    首先我们要先安装Vue脚手架,vue-cli。打开CMD命令行输入下面的指令安装。

    npm install -g @vue/cli
    # OR
    yarn global add @vue/cli

    然后输入 vue ui 指令打开创建vue脚手架的图形界面。在自己指定的目录下创建一个新的项目,然后输入 init -y 初始化项目。

    然后选择手动配置项目,根据自己的需求安装响应的插件(我安装了Babel、Router、Linter和使用配置文件),然后配置如下

    然后等待项目创建就行了。项目安装完成之后我们还要安装相关的插件和依赖,比如(element-ui插架、依赖和axios依赖,依赖安装在运行依赖下面),安装element插件的时候我们只好选择按需导入我们需要的模块,这样可以使我们的项目更加小。

    然后我们就在服务栏中点解serve运行项目,没有报错后我们就启动app,这样一个vue脚手架项目已经搭建好了。

    二、前期准备

    我们使用的是别人提供的一个在线后台接口,后台接口的创立可参考下面。 https://blog.csdn.net/krous/article/details/104419865,然后接口地址为:http://106.12.11.162:8888/api/private/v1,然后我们使用postman工具测试后台接口是否可用。

    然后我们打开我们的开发工具,把component中那些默认存在的单文件组件删掉,然后把跟组件App.vue中的东西清空,恢复初始化状态。然后为了我们敲代码时格式化代码格式的时候,自动补全(;),然而这在ESLInt语法中会报错,所以我们要在根目录下新建一个 .prettierrc 的文件,让我们在格式化代码时,不在自动补全(;)

    然后我们在App.vue根组件中放一个路由占位符,用来显示我们的登录单文件组件,如果不使用路由占位符,则无法把我们的路由页面显示出来。

    然后我们在components文件夹中创建一个Login.vue文件,用来编写登录的界面,然后再router文件夹中的index.js文件中导入这个单文件组件,然后声明它的路由规则,然后我们把跟路由重定向登录界面上,使用redirect关键字。如果实在一个路由中嵌套子路由,则需要使用children关键字。

    然后我们的Login.vue中使用element-ui中的form表单,但是由于之前我们安装element插件时是按需导入,所以我们要到plugins文件夹中的element.js文件夹中导入我们的form表单,不然会报错。

    然后我们的样式使用 带scope关键字的less样式,然后我们要回到我们的脚手架图形界面中,在开发依赖中安装less和less-loader依赖。

    然后就是无论我们要导入任何的外部文件,我们都必须要在根目录下的main.js入口文件中生命。

    接下来就是关于axios的使用。我们必须先要在main.js中导入并声明才可以使用,我们还可以自定义使用的关键字。

    然后我们为了防止别人不登录直接通过路径直接访问我们的后台页面,我们根据后台返回来的token设置一个axios拦截器。在每次对后台数据进行交互的时候,先要进行判断是否已经登录,如果没有则把页面重定向到登录页面。在main.js中设置拦截器,人后早router的index.js中挂载路由守卫。

    详细的代码请到https://gitee.com/ZJ_GUO/vue_shop下载

    展开全文
  • 当你写项目的时候,如何快速的完成一个项目的搭建,这个时候就需要借助到一些模板了,前端开发的一个好处就是,各类UI模板都是相当的齐全的,直接拿来用就可以了,脱离了一行又一行垒代码的繁琐的工...

    当你写项目的时候,如何快速的完成一个项目的搭建,这个时候就需要借助到一些模板了,前端开发的一个好处就是,各类UI模板都是相当的齐全的,直接拿来用就可以了,脱离了一行又一行垒代码的繁琐的工作,以下的开源后台管理系统模板是我在逛GitHub的时候看到的,排名先后是按照2020/5月份GitHub上面的star进行排名的。

    1:vue-element-admin

    推荐指数:star:55k
    Github 地址:https://github.com/PanJiaChen/vue-element-admin
    demo预览体验地址:https://panjiachen.github.io/vue-element-admin/#/dashboard

    一个基于 vue2.0 和 Eelement 的控制面板 UI 框架,这是使用vue技术栈开发的前端程序员的首选管理系统模板,模板以及非常的成熟了,并且有相关的社区和维护人员,开发时候遇到问题也不要慌。

    2:AdminLTE

    推荐指数:star:34.7k
    Github 地址:https://github.com/almasaeed2010/AdminLTE
    预览:https://adminlte.io/themes/AdminLTE/index2.html

    非常流行的基于 Bootstrap 3.x 的免费的后台 UI 框架,这是一个非常老牌的后台管理系统模板,每个页面都是单独的html网页,适合前端入门新手来做项目。

    3:ant-design-pro

    推荐指数:star:25.2k
    Github 地址:https://github.com/ant-design/ant-design-pro
    demo预览:https://preview.pro.ant.design/

    这个就不多说了,选择react技术栈的童鞋们必然离不开这个优秀开箱即用的中台前端/设计解决方案,文档齐全,组件丰富,一键生成模板,更支持开启复制黏贴模式哦。

    4:ng2-admin

    推荐指数:star:20.6k
    Github 地址:https://github.com/akveo/ngx-admin
    demo:https://www.akveo.com/ngx-admin/pages/dashboard

    这是基于 Angular 2, Bootstrap 4 和 Webpack 的后台管理面板框架,要说前面已经有了react和vue技术栈的模板,那怎么能少的了ng的?虽然在国外用的比较多,国内较少使用,但丝毫不影响ng作为前端框架三大巨头之一的地位呀。

    5:Gentelella

    推荐指数:star:19.1k
    Github 地址:https://github.com/puikinsh/gentelella
    demo预览:https://colorlib.com/polygon/gentelella/index.html

    Gentelella 是一个可免费使用的 Bootstrap 管理界面模版,使用群体比较广泛,这个模版使用默认的 Bootstrap 3 的样式,还有一系列功能强大的 jQuery 插件和工具,可快速创建管理界面模版或者后台的 Dashboard。

    6:iview-admin

    推荐指数:star:14.7k
    Github 地址:https://github.com/iview/iview-admin
    demo 预览:https://admin.iviewui.com/home

    iView admin 是基于 iView 的 Vue 2.0 控制面板,搭配使用 iView UI 组件库形成的一套后台集成解决方案 。

    7:blur-admin

    推荐指数:star:10.9k
    Github 地址:https://github.com/akveo/blur-admin
    demo:https://www.akveo.com/blur-admin-mint/#/dashboard

    BlurAdmin 是一款使用 AngularJs + Bootstrap实现的单页管理端模版,视觉冲击极强的管理后台,各种动画效果。

    8:vue-manage-system

    推荐指数:star:10.6k
    地址:https://github.com/lin-xin/vue-manage-system
    demo预览:https://lin-xin.gitee.io/example/work/#/dashboard

    vue-manage-system,一个基于 Vue.js 和 element-ui 的后台管理系统模板,挺喜欢这个界面的UI,简约清晰不累赘,多功能的后台框架模板,适用于绝大部分的后台管理系统开发。

    9:material-dashboard

    推荐指数:star:9.1k
    Github 地址:https://github.com/creativetimofficial/material-dashboard
    demo:https://demos.creative-tim.com/material-dashboard

    基于 Bootstrap 4 和 Material 风格的控制面板。Material Dashboard 是一个开源的 Material Bootstrap Admin,其设计灵感来自谷歌的 Material Design 。

    10:d2-admin

    推荐指数:star:8.7k
    github地址:https://github.com/d2-projects/d2-admin

    D2Admin 是一个完全 开源免费 的企业中后台产品前端集成方案,基于 vue.js 和 ElementUI 的管理系统前端解决方案 ,小于 60kb 的本地首屏 js 加载,已经做好大部分项目前期准备工作。

    11:vuestic-admin

    推荐指数:star:7.1k
    GitHub:https://github.com/epicmaxco/vuestic-admin
    预览:https://vuestic.epicmax.co/admin/dashboard

    vuestic-admin管理台仪表盘是一个响应式的仪表盘模板,采用Bootstrap 4和Vue.js构建。这个精美的管理台模板提供了自定义元素组件,如地图,聊天,个人资料卡,图标,进度条等,以及用于登录和注册的预建页面。

    展开全文
  • 这是一个界面简洁的薪资管理系统,虽然界面简单,但其工资项配置,与考勤挂钩,自动核算功能强大,并有完整的从菜单到按钮的操作权限控制。
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    Linux 是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统...
  • 基于Springboot 十分钟搭建后台管理系统第1章 Guns系统预热1-1课程体系介绍1-2 Guns框架介绍1.3 guns框架包结构介绍1.4 导入数据文件 第1章 Guns系统预热 1-1课程体系介绍 1-2 Guns框架介绍 Guns...
  • C语言学生管理系统(开源)

    千次阅读 多人点赞 2021-02-22 21:51:58
    大一的时候可真美好啊,当时为了实现一个项目熬夜写一个星期都觉得累,反而单人完成项目之后还异常兴奋,有种难言的喜悦感,也挺佩服当时的自己的,一个人捣鼓了2000多行代码,不过还好当初了亿点点注释,不然现在...
  • 设计实现一个图书管理系统。图书信息存放到一个数据库中。图书包含信息:图书号、图书名、作者、价格、备注字段。 要求:基于JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行...
  • java入门简单程序——超市管理系统

    千次阅读 多人点赞 2019-11-26 16:28:26
    该项目实现了超市管理系统中最基本的增、删、改、查。 代码简单明了,适合入门级新手学习。 连接MySQL方便内容存储。 代码如下: 1.对商品类的声明与创建 package entity; public class ComInfor { int ID;//商品...
  • 首先,信息系统项目管理师属于高级软考,每年有两次考试。考试成绩查询的开放时间一般在考试后两月内。比如上半年5月份软考成绩通常在7月初的时候公布,下半年11月份软考成绩通常在12月底的时候公布。信息系统项目...
  • 中台透彻讲解

    万次阅读 多人点赞 2019-06-27 21:59:01
    曾经淘宝就曾大费精力搭建了一个CRM平台,但大部分商家不买账,因为仅靠一套系统,根本无法满足不同行业、不同规模的几百万商家多样化的需求。 后来淘宝采用中台战略思想,将15万家ISV的服务能力组织起来,进行...
  • 从0到1设计一个高可用数据对账系统

    千次阅读 2019-05-16 18:27:27
    一、业务系统设计概述 1、什么是业务系统 ...C端系统偏重用户体验,强调感性,持续的数据分析优化,同一个按钮不同的摆放位置都精心设计、论证,服务对象是个人;B端系统偏重流程、模块化,...
  • SpringBoot开发简单的书籍管理系统

    千次阅读 多人点赞 2020-03-17 22:24:22
    KK书屋后台登录 KK书屋管理系统 © 2020 湖人总冠军 CSDN GitHub 开发文档 然后在controller包下创建一个LoginController控制类,编写login请求映射,return”login”,即跳转到login页面 Controller public class ...
  • 前端面试锦集

    千次阅读 多人点赞 2019-07-20 13:41:45
    在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 ajax的工作原理: 通过XmlHttpRequest对象来向服务器发出异步...
  • 简单的车票管理系统(c语言)

    万次阅读 多人点赞 2018-12-31 01:31:18
    简单的车票管理系统(c语言) 前言:(作者瞎比比,没耐心请跳过) 先给大家看一张图片
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 21 每HTML文件里开头都有很重要的东西,Doctype,知道这是干什么的吗? 21 Quirks模式是什么?它和Standards模式有什么区别 21 div+css的布局较...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    12、使用QTP功能测试,录制脚本的时候,验证多用户的登录情况/查询情况,如何操作? ......... 6 13 、 QTP 中的 Action 有什么作用?有几种? ............................................................
  • 学生管理系统(增删改查)SSM+idea+maven+mysql

    千次阅读 多人点赞 2019-04-02 19:12:41
    写了一个利用SSM+idea+meavn+mysql的简单的学生管理系统,明天开始写一个crm了,先把这个贴上来. 项目结构 配置文件 jdbc.properties #JDBC Global Setting #jdbc.driver=com.mysql.jdbc.Driver jdbc.driver=...
  • 汽车销售管理系统前景与范围文档

    千次阅读 2014-11-05 15:26:38
    汽车销售管理系统 前景与范围文档                                   文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 文件标识: CST-PSD-RD-PRS...
  • 试试用这些内置命令和附加工具吧!大多数 Linux 发行版都附带了大量的监控工具。...本文提到的是一些基本的命令,用于系统分析和服务器调试等,例如:找出系统瓶颈磁盘(存储)瓶颈CPU 和内存瓶颈网络瓶颈...
  • 面试专题:Linux运维精华面试题

    千次阅读 多人点赞 2019-03-14 15:31:53
    下面是名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家跳槽找高薪好工作。 1、什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是保证业务的上线与...
  • 《第行代码》作者郭霖大神安卓问题解答

    千次阅读 多人点赞 2016-06-14 19:24:36
    列举了几郭霖大神解答的问题
  • 本人参加的是2017年上半年信息系统项目管理师考试,今天看到2017上半年考试的成绩合格分数为45,也算是侥幸通过,在这里写写自己是如何备考的,供各位考友参考一下。 这里说的50天是指白天上班以业余时间备考所需...
  • 最近在网上搜集了一下国内的CMS程序,包括了...CMS(Content Management System),中文叫作整站系统、文章系统,大概 2004以前,如果想进行网站内容管理,基本上都是靠手工维护,但千变万化的信息流,但没有好的程序支持
  • 第五章-Linux实操篇

    千次阅读 多人点赞 2019-10-24 18:45:20
    title: 第五章 Linux实操篇 categories: Linux tags: linux typora-root-url: … ...第五章 Linux实操篇 远程登录Linux系统 5.1 为什么远程登录服务器 5.2 xhell5(windows)远程登录软件 需要Linux开启sshd服...
  • 图书馆管理系统——模板建立

    万次阅读 热门讨论 2015-06-05 17:01:09
    图书馆管理系统也进行了有一段时日... 熟悉的是我们学习BS的第一个项目就是牛腩新闻发布系统,这个项目就是从代码到界面搭建,整合等项目的全套学习,我们的图书馆管理系统基本上都是这里面所讲到过的,对于我们来说都
  • 物业管理系统项目经验积累

    千次阅读 2011-02-23 11:08:00
    协作篇 不要运用还不成熟的技术... 不要自己太突出,不能一个得太多。 不要去分配给其它人的工作。 制定代码规范。 使用SVN管理代码。 与合作成员随时保持联系。需求篇 制定详细的开发计划,认真讨论可能出现的问
  • 基于 Node.js 的内容管理系统 DoraCMS

    千次阅读 2018-08-03 08:22:06
    DoraCMS 详细介绍 DoraCMS 使用的技术栈: ...DoraCMS是基于Nodejs+express+mongodb编写的一套内容管理系统,结构简单,较目前一些开源的cms,doracms易于拓展,特别适合前端开发工程师二次开发。  

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,046
精华内容 19,218
关键字:

做一个管理系统要多久