java学生成绩管理系统界面设计

关于学生成绩管理系统的界面设计:代码如下
数据库表设计

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `username` varchar(30) NOT NULL,
  `stu_time` datetime NOT NULL,
  `stu_score` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

主界面设计

package com.studensystem;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import com.studensystem.SqlHelper;
class MyPanel extends JPanel{
    Image img=Toolkit.getDefaultToolkit().getImage("c:/a.jpg");
   public void paint(Graphics g){
       g.drawImage(img,0,0,this);
   }
}
public class MainForm extends JFrame implements ActionListener
{

   JMenu mSystem=new JMenu("学生信息管理");
  JMenuItem mExit=new JMenuItem("操作");
   JMenuItem mExit1 = new JMenuItem("查看");
  JMenu mOperate=new JMenu("课程信息管理");
  JMenuItem mAdd=new JMenuItem("添加");
  JMenuItem mDel=new JMenuItem("删除");
   JMenuItem mModify=new JMenuItem("修改");
   JMenu mQuery=new JMenu("成绩信息管理");
   JMenuItem mName=new JMenuItem("按姓名查询");
   JMenuItem mScore=new JMenuItem("按成绩查询");
   JMenu mHelp=new JMenu("学期信息管理");
   JMenuItem mAbout=new JMenuItem("操作");
   JMenuItem mAbout1 = new JMenuItem("");
   JMenuBar mBar=new JMenuBar();
   MainForm()
   {
       super("学生成绩管理系统");
      setSize(500,500);
       mSystem.add(mExit);
      mOperate.add(mAdd);
       mOperate.add(mDel);
      mOperate.add(mModify);
       mQuery.add(mName);
      mQuery.add(mScore);
       mHelp.add(mAbout);
       mBar.add(mSystem);
      mBar.add(mOperate);
       mBar.add(mQuery);
      mBar.add(mHelp);
       setJMenuBar(mBar);
      mExit.addActionListener(this);
       mAdd.addActionListener(this);
       mDel.addActionListener(this);
       mModify.addActionListener(this);
       mName.addActionListener(this);
       mScore.addActionListener(this);
       mAbout.addActionListener(this);
       setContentPane(new MyPanel());
       setVisible(true);
   }
   public void actionPerformed(ActionEvent ae){
       if(ae.getSource()==mExit)
           System.exit(0);
       else if(ae.getSource()==mAbout)
           JOptionPane.showMessageDialog(this,"学生成绩管理系统\n对不起,功能暂时未开放\n功能有待完善\n\n","期末作品",JOptionPane.INFORMATION_MESSAGE);
      else if(ae.getSource()==mAdd)
           new AddForm().setVisible(true);
        else if(ae.getSource()==mDel)
           new DeleteForm().setVisible(true);
         else if(ae.getSource()==mModify)
          new ModifyForm().setVisible(true);
      else if(ae.getSource()==mName)
         new NameQueryForm().setVisible(true);
        else if(ae.getSource()==mScore)
          new ScoreQueryForm().setVisible(true);
   }
   public static void main(String[] args) {
       new MainForm();
  }
}

添加界面设计

package com.studensystem;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import com.studensystem.SqlHelper;
public class AddForm extends JFrame implements ActionListener
{
  JLabel labName=new JLabel("姓名:");
   JLabel labDate=new JLabel("出生日期:");
   JLabel labScore=new JLabel("成绩:");
   JTextField txtName=new JTextField(20);
   JTextField txtDate=new JTextField(18);
  JTextField txtScore=new JTextField(20);
   JButton btnAdd=new JButton("添加");
   JButton btnCancel=new JButton("取消");
   JPanel pan=new JPanel();
   JPanel pan1=new JPanel();
   JPanel pan2=new JPanel();
   JPanel pan3=new JPanel();
   JPanel pan4=new JPanel();
   Connection con;
   Statement sql;
   ResultSet rs;  
   AddForm()
   {
       super("添加数据");
       setSize(400,300);
       pan1.add(labName);
       pan1.add(txtName);
       pan2.add(labDate);
       pan2.add(txtDate);
       pan3.add(labScore);
       pan3.add(txtScore);
       pan4.add(btnAdd);
     pan4.add(btnCancel);
      pan.setLayout(new GridLayout(3,1));
      pan.add(pan1);
       pan.add(pan2);
       pan.add(pan3);
       getContentPane().add(pan,"Center");
       getContentPane().add(pan4,"South");
       btnAdd.addActionListener(this);
       btnCancel.addActionListener(this);
       btnAdd.setEnabled(true);
       txtDate.setEditable(true);        
        txtScore.setEditable(true);
       setVisible(true);
       txtName.requestFocus();
   }
   public void actionPerformed(ActionEvent ae)
   {
       String recode,insert1,stu_time,username;
       int stu_score;
       if(ae.getSource()==btnCancel)
       {
          this.dispose();
      } 
       else if(ae.getSource()==btnAdd)
               {
                  try
                   {
                       Class.forName("com.mysql.jdbc.Driver");
                       }
                      catch(ClassNotFoundException e){   
                      }
                       try{con=DriverManager.getConnection("driver","user","passwd");
                       sql=con.createStatement();
                       username=txtName.getText();
                       stu_time=txtDate.getText();
                       stu_score=Integer.parseInt(txtScore.getText());
                 // recode="("+"'"+username+"'"+","+"'"+stu_time+""+"',"+stu_score+")";
                   //   insert1="insert into student values "+recode;
                       insert1="insert into student values(?,?,?)";
                       sql.executeUpdate(insert1);
                       System.out.println("记录添加完毕!");
                       btnAdd.setEnabled(false);
                       txtName.setText("");
                       txtScore.setText("");
                       txtDate.setText("");
                       con.close();
                   }
                      catch(SQLException e){
                       }
               }
       }
           public static void main(String[] args) 
           {
               new AddForm();
          }
}

删除数据设计

package com.studensystem;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import com.studensystem.SqlHelper;
public class DeleteForm extends JFrame implements ActionListener
{
    JLabel labName=new JLabel("姓名:");
    JLabel labDate=new JLabel("出生日期:");
   JLabel labScore=new JLabel("成绩:");
   JTextField txtName=new JTextField(20);
   JTextField txtDate=new JTextField(18);
   JTextField txtScore=new JTextField(20);
   JButton btnDelete=new JButton("删除");
   JButton btnCancel=new JButton("取消");
   JButton btnQuery=new JButton("查询");
   JPanel pan=new JPanel();
  JPanel pan1=new JPanel();
  JPanel pan2=new JPanel();
   JPanel pan3=new JPanel();
  JPanel pan4=new JPanel();
   Connection con;
   Statement sql;
   ResultSet rs;
   DeleteForm()
   {
       super("删除数据");
      setSize(400,300);
       pan1.add(labName);
      pan1.add(txtName);
      pan2.add(labDate);
       pan2.add(txtDate);
       pan3.add(labScore);
       pan3.add(txtScore);
       pan4.add(btnQuery);
       pan4.add(btnDelete);
       pan4.add(btnCancel);
       pan.setLayout(new GridLayout(3,1));
      pan.add(pan1);
       pan.add(pan2);
       pan.add(pan3);
       getContentPane().add(pan,"Center");
       getContentPane().add(pan4,"South");
       btnQuery.addActionListener(this);
       btnDelete.addActionListener(this);
       btnCancel.addActionListener(this);
       btnDelete.setEnabled(false);//取消删除按钮的功能
       txtDate.setEditable(false);
      txtScore.setEditable(false);
       setVisible(true);
       txtName.requestFocus();
   }
   public void actionPerformed(ActionEvent ae)
   {
       if(ae.getSource()==btnCancel)
       {
           dispose();
     } 
      else if(ae.getSource()==btnQuery){      //实现查询功能
         try
          {
               Class.forName("com.mysql.jdbc.Driver");}
          catch(ClassNotFoundException e){   
           }
             try{con=DriverManager.getConnection("driver","user","passwd");
              sql=con.createStatement();
              rs=sql.executeQuery("select * from student where username='"+txtName.getText()+"'");
              if(rs.next())
              {
                 txtName.setText(rs.getString("姓名"));
                  txtScore.setText(new Integer(rs.getInt("成绩")).toString());
                   txtDate.setText(rs.getDate("出生日期").toString());
                  btnDelete.setEnabled(true);//使删除按钮功能实现
                   txtDate.setEditable(true);
                  txtScore.setEditable(true);
            }else{
                  System.out.println("不存在该记录!");
                  btnDelete.setEnabled(false);
                 txtName.setText("");
                  txtScore.setText("");
                   txtDate.setText("");
                   txtDate.setEditable(false);
                   txtScore.setEditable(false);
               }
           }catch(SQLException e){
           }
       }
               else if(ae.getSource()==btnDelete)        //实现删除功能
               {
                   try
                   {
                      System.out.println("update  student set stu_time='"+txtDate.getText()+"',stu_score="+txtScore.getText()+" where username='"+txtName.getText()+"'");
                      sql.executeUpdate("delete from  student where username='"+txtName.getText()+"'");
                      System.out.println("记录删除完毕!");
                      btnDelete.setEnabled(false);
                      txtName.setText("");
                       txtScore.setText("");
                      txtDate.setText("");
                       txtDate.setEditable(false);
                      txtScore.setEditable(false);
                      con.close();
                  }
                  catch(SQLException e){
                  }
              }
     }
          public static void main(String[] args) 
          {
              new DeleteForm();
          }
}

修改界面设计

import javax.swing.*;
import com.studensystem.SqlHelper;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class ModifyForm extends JFrame implements ActionListener
{
    JLabel labName=new JLabel("姓名:");
    JLabel labDate=new JLabel("出生日期:");
   JLabel labScore=new JLabel("成绩:");
   JTextField txtName=new JTextField(20);
  JTextField txtDate=new JTextField(18);
  JTextField txtScore=new JTextField(20);
  JButton btnModify=new JButton("修改");
   JButton btnCancel=new JButton("取消");
   JButton btnQuery=new JButton("查询");
   JPanel pan=new JPanel();
   JPanel pan1=new JPanel();
   JPanel pan2=new JPanel();
   JPanel pan3=new JPanel();
   JPanel pan4=new JPanel();
   Connection con;
   Statement sql;
  ResultSet rs;
  ModifyForm()
  {
      super("修改数据");
      setSize(400,300);
       pan1.add(labName);
      pan1.add(txtName);
      pan2.add(labDate);
      pan2.add(txtDate);
      pan3.add(labScore);
     pan3.add(txtScore);
       pan4.add(btnQuery);
       pan4.add(btnModify);
     pan4.add(btnCancel);
       pan.setLayout(new GridLayout(3,1));
       pan.add(pan1);
      pan.add(pan2);
      pan.add(pan3);
      getContentPane().add(pan,"Center");
      getContentPane().add(pan4,"South");
      btnQuery.addActionListener(this);
       btnModify.addActionListener(this);
      btnCancel.addActionListener(this);
       btnModify.setEnabled(false);
       txtDate.setEditable(false);
       txtScore.setEditable(false);
       setVisible(true);
       txtName.requestFocus();
   }
   public void actionPerformed(ActionEvent ae){
       if(ae.getSource()==btnCancel){
              dispose();
       } else if(ae.getSource()==btnQuery){
           try{
               Class.forName("com.mysql.jdbc.Driver");}
           catch(ClassNotFoundException e){   
           }
            try{con=DriverManager.getConnection("driver","user","passwd");
               sql=con.createStatement();
               rs=sql.executeQuery("select * from student where username='"+txtName.getText()+"'");
               if(rs.next()){
                  txtName.setText(rs.getString("姓名"));
                   txtScore.setText(new Integer(rs.getInt("成绩")).toString());
                   txtDate.setText(rs.getDate("出生日期").toString());
                   btnModify.setEnabled(true);
                   txtDate.setEditable(true);
                  txtScore.setEditable(true);
              }else{
                  System.out.println("不存在该记录! ");
                   btnModify.setEnabled(false);
                  txtName.setText("");
                  txtScore.setText("");
                  txtDate.setText("");
                   txtDate.setEditable(false);
                   txtScore.setEditable(false);
               }
          }catch(SQLException e){
          }
    }else if(ae.getSource()==btnModify){
          try{
               System.out.println("update  student set stu_time='"+txtDate.getText()+"',stu_score="+txtScore.getText()+" where username='"+txtName.getText()+"'");
              sql.executeUpdate("update  student set stu_time='"+txtDate.getText()+"',stu_score="+txtScore.getText()+" where username='"+txtName.getText()+"'");
              System.out.println("记录修改完毕!");
               btnModify.setEnabled(false);
               txtName.setText("");
               txtScore.setText("");
               txtDate.setText("");
               txtDate.setEditable(false);
              txtScore.setEditable(false);
              con.close();
           }catch(SQLException e){
          }
      }
   }
   public static void main(String[] args) {
       new ModifyForm();
  }
}

按名字查询数据

package com.studensystem;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import com.studensystem.SqlHelper;
public class NameQueryForm extends JFrame implements ActionListener
{
   JLabel labScore=new JLabel("请输入成绩:");
  JTextField txtScore=new JTextField(10);
   JButton btnQuery=new JButton("查询");
   JPanel pan1=new JPanel();
   JPanel pan2=new JPanel();
   String []str={"姓名","出生日期","成绩"};
   Object[][] data=new Object[10][3];
   JTable table=new JTable(data,str);
   JTableHeader head=table.getTableHeader();
   JScrollPane jsp=new JScrollPane(table);        //滚动
  Connection con;
   Statement sql;
   ResultSet rs;
   NameQueryForm()
   {
       super("按名字查询");
       setSize(400,300);
       pan1.add(labScore);
       pan1.add(txtScore);
      pan1.add(btnQuery);                        //以上3条在第一个面板加入内容
      getContentPane().add(pan1,"North");        //把面板1放到窗口顶部
      pan2.setLayout(new BorderLayout());
       pan2.add(head,"North");            //将表头放在面板2的顶部
       pan2.add(jsp,"Center");            //表格放在pan2中间
       getContentPane().add(pan2,"Center");//把面板2整体加入到主窗口中
       btnQuery.addActionListener(this);  //增加查询按钮的监视器
       setVisible(true);
   }
   public void actionPerformed(ActionEvent ae){
       if(ae.getSource()==btnQuery){
           int i,j,row;

           try{
               Class.forName("com.mysql.jdbc.Driver");}
           catch(ClassNotFoundException e){   
           }
           try{  con=DriverManager.getConnection("driver","user","passwd");
               sql=con.createStatement();
               rs=sql.executeQuery("select COUNT(*) as rowcount from student where stu_score="+txtScore.getText());                   //寻找相同成绩的行数
               rs.next();                                        //去掉头
              row=rs.getInt("rowcount");                    
              rs.close();
               data=new Object[row][3];
               rs=sql.executeQuery("select * from student where stu_score="+txtScore.getText());
               i=0;j=0;
              while(rs.next()){
                   data[i][j++]=rs.getString("姓名");
                   data[i][j++]=rs.getDate("出生日期");
                   data[i][j]=new Integer(rs.getInt("成绩"));//将数据库中查询到的信息保存到data中
                   i++;j=0;
               }
              pan2.removeAll();
              getContentPane().remove(pan2);
             table=new JTable(data,str);
               pan2.setLayout(new BorderLayout());
              head=table.getTableHeader();
               jsp=new JScrollPane(table);
               pan2.add(head,"North");
               pan2.add(jsp,"Center");
               getContentPane().add(pan2,"Center");
               this.validate();
               con.close();
           }catch(SQLException e){
           }
       }
   }
   public static void main(String[] args) {
       new NameQueryForm();
  }
}

按成绩查询数据

package com.studensystem;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import com.studensystem.SqlHelper;
public class ScoreQueryForm extends JFrame implements ActionListener
{
   JLabel labScore=new JLabel("请输入成绩:");
   JTextField txtScore=new JTextField(10);
   JButton btnQuery=new JButton("查询");
   JPanel pan1=new JPanel();
   JPanel pan2=new JPanel();
   String []str={"姓名","出生日期","成绩"};
   Object[][] data=new Object[10][3];
   JTable table=new JTable(data,str);
   JTableHeader head=table.getTableHeader();
   JScrollPane jsp=new JScrollPane(table);        //滚动
   Connection con;
   Statement sql;
   ResultSet rs;
   ScoreQueryForm()
   {
       super("按成绩查询");
       setSize(400,300);
       pan1.add(labScore);
      pan1.add(txtScore);
       pan1.add(btnQuery);                        //以上3条在第一个面板加入内容
       getContentPane().add(pan1,"North");        //把面板1放到窗口顶部
       pan2.setLayout(new BorderLayout());
       pan2.add(head,"North");            //将表头放在面板2的顶部
       pan2.add(jsp,"Center");            //表格放在pan2中间
       getContentPane().add(pan2,"Center");//把面板2整体加入到主窗口中
       btnQuery.addActionListener(this);  //增加查询按钮的监视器
       setVisible(true);
   }
   public void actionPerformed(ActionEvent ae){
       if(ae.getSource()==btnQuery){
           int i,j,row;
           try{
               Class.forName("com.mysql.jdbc.Driver");}
           catch(ClassNotFoundException e){   
           }
           try{  
               con=DriverManager.getConnection("driver","user","passwd");
              sql=con.createStatement();
               rs=sql.executeQuery("select COUNT(*) as rowcount from student where  stu_score="+txtScore.getText());                   //寻找相同成绩的行数
               rs.next();                                        //去掉头
               row=rs.getInt("rowcount");                    
               rs.close();
             data=new Object[row][3];
              rs=sql.executeQuery("select * from student where  stu_score="+txtScore.getText());
               i=0;j=0;
               while(rs.next()){
                   data[i][j++]=rs.getString("姓名");
                  data[i][j++]=rs.getDate("出生日期");
                   data[i][j]=new Integer(rs.getInt("成绩"));//将数据库中查询到的信息保存到data中
                   i++;j=0;
               }
              pan2.removeAll();
             getContentPane().remove(pan2);
            table=new JTable(data,str);
               pan2.setLayout(new BorderLayout());
               head=table.getTableHeader();
               jsp=new JScrollPane(table);
               pan2.add(head,"North");
               pan2.add(jsp,"Center");
               getContentPane().add(pan2,"Center");
               this.validate();
               con.close();
           }catch(SQLException e){
           }
       }
   }
   public static void main(String[] args) {
      new ScoreQueryForm();
   }
}

连接数据库操作

package com.studensystem;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;  

public class SqlHelper {  
    //========数据库  
    private Connection ct = null;  
    private PreparedStatement ps = null;  
   private ResultSet rs = null;  
   private String driver = "com.mysql.jdbc.Driver";  //后面加上utf-8 不然中文乱码
   private String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";  
   private String user = "root";  
   private String passwd = "";  


   //========查询  
   public ResultSet queryExecute(String sql, String []paras)  
   {  
       try {  
           //========1、加载驱动  
          Class.forName(driver);  
           //========2、连接  
           ct = DriverManager.getConnection(url, user, passwd);  
           //========3、创建PreparedStatement  
           ps = ct.prepareStatement(sql);  
           //========4、给问号赋值  
           if(paras != null) {  
               for(int i = 0; i < paras.length; i++) {  
                   ps.setString(i + 1, paras[i]);  
               }  
           }  
           //========5、执行  
           rs = ps.executeQuery();  
       } catch (Exception e) {  
           // TODO: handle exception  
           e.printStackTrace();  
       } finally {  
           //this.close();  
       }  
       //========返回值  
       return rs;  
   }  

   //========增删改  
   public boolean cudExecute(String sql, String []paras)  
   {  
       boolean b = true;  
       try {  
           //========1、加载驱动  
           Class.forName(driver);  
           //========2、连接  
           ct = DriverManager.getConnection(url, user, passwd);  
           //========3、创建PreparedStatement  
          ps = ct.prepareStatement(sql);  
           //========4、给问号赋值  
           for(int i = 0; i < paras.length; i++) {  
              ps.setString(i + 1, paras[i]);  
           }  
           //========5、执行  
           if(ps.executeUpdate() != 1) b = false;  
       } catch (Exception e) {  
           // TODO: handle exception  
           b = false;  
           e.printStackTrace();  
       } finally {  
           this.close();  
       }  
       //========返回值  
       return b;  
   }  

   //========关闭资源  
   public void close()  
   {  
       try {  
           if(rs!=null) rs.close();  
           if(ps!=null) ps.close();  
           if(ct!=null) ct.close();  
       } catch (Exception e2) {  
           // TODO: handle exception  
           e2.printStackTrace();  
      }  
   }  

}  

截图演示
1.JPG
2.JPG
3.JPG
4.JPG
5.JPG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260