基于Android的医院预下单叫号排队系统

  • 效果视频
    • 提前下单
      • RecyclerView双列表联动
        • 导入BaseQuickAdapter
        • 商品信息实体类
        • 左侧商品类型适配器
        • 右侧商品信息适配器
        • 初始化左右两个RecyclerView
        • 传入数据源
        • 列表联动
          • 左侧联动右侧
          • 右侧联动左侧
        • 子项添加点击
      • 选中的商品插入与显示
        • 效果图
        • 将选中的商品,存入数据库
          • 创建数据库实体类
          • 建表
          • 建立Dao类,封装CRUD
          • 插入选中的商品信息至数据库
          • 取出选中的商品信息从数据库
        • 显示选中的商品
          • 效果图
          • 子项数量为0删除子项
          • 子项清空
          • 商品总数统计
          • 商品总价统计
    • 排队系统
    • 优雅谢幕
      • killProcess
      • 应用
        • 添加Activity
        • 杀死所有Activity
  • 尾言

效果视频

提前下单

RecyclerView双列表联动

商品选购界面采用的是两个RecyclerView联动,使用一个第三方封装包BaseQuickAdapter

导入BaseQuickAdapter

一、添加库

maven { url "https://jitpack.io" }

二、添加依赖

implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'

商品信息实体类

GoodsTitle为左侧商品类型实体类
GoodsContent为右侧商品信息实体类
GoodsTitle、GoodsContent都有一个id字段,为左右联动而设置

public class Goods {private List<GoodsTitle> titleList;private List<GoodsContent> contentList;public static class GoodsTitle{private String Title;private int id;public GoodsTitle(String Title,int id){this.Title = Title;this.id = id;}public String getTitle() {return Title;}public void setTitle(String title) {Title = title;}public int getId() {return id;}public void setId(int id) {this.id = id;}}public static class GoodsContent{private int GoodsIMG;private String Content;private String Specs;private double Price;private int Number;private int AddIMG;private int SubIMG;private String Type;private int subId;public GoodsContent(int GoodsIMG,String Content,String Specs,double Price,int AddIMG,int SubIMG,int Number,int subId){this.GoodsIMG = GoodsIMG;this.Content = Content;this.Specs = Specs;this.Price = Price;this.AddIMG = AddIMG;this.SubIMG = SubIMG;this.Number = Number;this.subId = subId;}public int getGoodsIMG() {return GoodsIMG;}public void setGoodsIMG(int goodsIMG) {GoodsIMG = goodsIMG;}public String getContent() {return Content;}public void setContent(String content) {Content = content;}public String getSpecs() {return Specs;}public void setSpecs(String specs) {Specs = specs;}public double getPrice() {return Price;}public void setPrice(double price) {Price = price;}public int getAddIMG() {return AddIMG;}public void setAddIMG(int addIMG) {AddIMG = addIMG;}public int getSubIMG() {return SubIMG;}public void setSubIMG(int subIMG) {SubIMG = subIMG;}public String getType() {return Type;}public void setType(String type) {Type = type;}public int getNumber() {return Number;}public void setNumber(int number) {Number = number;}public int getSubId() {return subId;}public void setSubId(int subId) {this.subId = subId;}}}

左侧商品类型适配器

public class titleAdapter extends BaseQuickAdapter<Goods.GoodsTitle, BaseViewHolder> {public int Position;public titleAdapter(int layoutResId, @Nullable List<Goods.GoodsTitle> data) {super( layoutResId, data );}public titleAdapter(@Nullable List<Goods.GoodsTitle> data) {super( data );}public titleAdapter(int layoutResId) {super( layoutResId );}@Overrideprotected void convert(BaseViewHolder helper, Goods.GoodsTitle item) {helper.setTextColor( R.id.title_name,helper.getLayoutPosition() == Position ? Color.parseColor("#ff0000") : Color.parseColor("#000000") );helper.setText( R.id.title_name,item.getTitle() );}public void setSelection(int Position) {this.Position = Position;notifyDataSetChanged();}

右侧商品信息适配器

public class contentAdapter extends BaseQuickAdapter<Goods.GoodsContent, BaseViewHolder> {public contentAdapter(int layoutResId, @Nullable List<Goods.GoodsContent> data) {super( layoutResId, data );}public contentAdapter(@Nullable List<Goods.GoodsContent> data) {super( data );}public contentAdapter(int layoutResId) {super( layoutResId );}@Overrideprotected void convert(BaseViewHolder helper, Goods.GoodsContent item) {helper.setText( R.id.medicineName,item.getContent() );helper.setText( R.id.medicineSpecs,item.getSpecs() );helper.setText( R.id.medicinePrice,item.getPrice()+"" );helper.setText( R.id.Number,item.getNumber()+"" );helper.setImageResource( R.id.medicineIMG,item.getGoodsIMG() );helper.setImageResource( R.id.Add,item.getAddIMG() );helper.setImageResource( R.id.Sub,item.getSubIMG() );helper.addOnClickListener( R.id.Add );helper.addOnClickListener( R.id.Sub );}
}

初始化左右两个RecyclerView

private void InitRecyclerView(){titleManager = new LinearLayoutManager( getApplicationContext() );mGoodsTitle.setLayoutManager( titleManager );titleAdapter = new titleAdapter( R.layout.title_item,titleList );mGoodsTitle.setAdapter( titleAdapter );contentManager = new LinearLayoutManager( getApplicationContext() );mGoodsContent.setLayoutManager( contentManager );contentAdapter = new contentAdapter( R.layout.content_item,contentList );mGoodsContent.setAdapter( contentAdapter );}

传入数据源

private void InitTitle(){for (int i = 0; i <resources.listTitleName.length; i++) {goodsTitle = new Goods.GoodsTitle( resources.listTitleName[i],i );titleList.add( goodsTitle );}}private void InitContent(){for (int i = 0; i <resources.medicineContent.length ; i++) {/*感冒系列*/if ( i < 10){goodsContent = new Goods.GoodsContent( resources.medicineImg[i],resources.medicineContent[i],resources.medicineSpec[i],resources.medicinePrice[i],R.drawable.jiahao,R.drawable.jianhao,0,0 );}else if (i >= 10 && i < 20){/*家庭常用系列*/goodsContent = new Goods.GoodsContent( resources.medicineImg[i],resources.medicineContent[i],resources.medicineSpec[i],resources.medicinePrice[i],R.drawable.jiahao,R.drawable.jianhao,0,1);}else if (i >=20 && i  < 30){/*幸福生活系列*/goodsContent = new Goods.GoodsContent( resources.medicineImg[i],resources.medicineContent[i],resources.medicineSpec[i],resources.medicinePrice[i],R.drawable.jiahao,R.drawable.jianhao,0,2);}else if (i >= 30 && i < 35){/*妇科系列*/goodsContent = new Goods.GoodsContent( resources.medicineImg[i],resources.medicineContent[i],resources.medicineSpec[i],resources.medicinePrice[i],R.drawable.jiahao,R.drawable.jianhao,0,3);}else if (i >= 35 && i < 40){/*男科系列*/goodsContent = new Goods.GoodsContent( resources.medicineImg[i],resources.medicineContent[i],resources.medicineSpec[i],resources.medicinePrice[i],R.drawable.jiahao,R.drawable.jianhao,0,4);}contentList.add( goodsContent );}}

列表联动

在传入数据时,为左侧每一个类型传入不同的id,右侧商品信息根据数目传入不同的id,在右侧联动左侧时,对左侧id和右侧id进行匹配,然后移动左侧标题栏,实现列表联动

左侧联动右侧
  titleAdapter.setOnItemClickListener( new BaseQuickAdapter.OnItemClickListener() {@Overridepublic void onItemClick(BaseQuickAdapter adapter, View view, int position) {titleAdapter.setSelection( position );titleAdapter.notifyDataSetChanged();contentManager.scrollToPositionWithOffset( resources.listTitleName.length,0 );// mGoodsTitle.smoothScrollToPosition( resources.listTitleName.length );//contentAdapter.notifyDataSetChanged();}} );
右侧联动左侧
  mGoodsContent.addOnScrollListener( new RecyclerView.OnScrollListener() {@Overridepublic void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {super.onScrolled( recyclerView, dx, dy );int firstPosition = contentManager.findFirstVisibleItemPosition();goodsContent = contentList.get(firstPosition);int subId = goodsContent.getSubId();int pos = 0;for (int i = 0; i < titleList.size(); i++) {int id = titleList.get(i).getId();if ((subId == id)) {pos = i;}}titleAdapter.setSelection(pos);//mGoodsTitle.scrollToPosition( pos );titleAdapter.notifyDataSetChanged();}} );

子项添加点击

在适配器中添加如下定义,传入需要添加点击事件的子项ID

helper.addOnClickListener( R.id.Add );helper.addOnClickListener( R.id.Sub );

源码如下

 /*** add childView id** @param viewId add the child view id   can support childview click* @return if you use adapter bind listener* @link {(adapter.setOnItemChildClickListener(listener))}* <p>* or if you can use  recyclerView.addOnItemTouch(listerer)  wo also support this menthod*/@SuppressWarnings("unchecked")public BaseViewHolder addOnClickListener(@IdRes final int viewId) {childClickViewIds.add(viewId);final View view = getView(viewId);if (view != null) {if (!view.isClickable()) {view.setClickable(true);}view.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (adapter.getOnItemChildClickListener() != null) {adapter.getOnItemChildClickListener().onItemChildClick(adapter, v, getClickPosition());}}});}return this;}

然后再实现setOnItemChildClickListener方法即可
点击加号按钮时,商品数量增加,价格也增加,通过修改实体类字段的内容,然后通过如下语句刷新,减号按钮同理

contentAdapter.notifyDataSetChanged();
 contentAdapter.setOnItemChildClickListener( new BaseQuickAdapter.OnItemChildClickListener() {@Overridepublic void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {double  Price = contentList.get( position ).getPrice();switch (view.getId()){case R.id.Add:int numberAdd = contentList.get( position ).getNumber();numberAdd++;Monetary(Price);contentList.get( position ).setNumber( numberAdd );contentAdapter.notifyDataSetChanged();//Toast.makeText( FunctionActivity.this,"Add"+Price,Toast.LENGTH_SHORT ).show();break;case R.id.Sub:int numberSub = contentList.get( position ).getNumber();if (numberSub > 0 ){numberSub--;contentList.get( position ).setNumber( numberSub );LessMoney(Price);}else if (numberSub < 0){contentList.get( position ).setNumber( 0 );}contentAdapter.notifyDataSetChanged();//Toast.makeText( FunctionActivity.this,"Sub"+Price,Toast.LENGTH_SHORT ).show();break;}}} );

选中的商品插入与显示

效果图

将选中的商品,存入数据库

创建数据库实体类
public class GoodsList {private int Img;private String Name;private double Price;private int Number;private int Sub;private int Add;public GoodsList(int Img,String Name,double Price,int Number,int Sub,int Add){this.Img = Img;this.Name = Name;this.Price = Price;this.Number = Number;this.Sub = Sub;this.Add = Add;}public GoodsList(int Img,String Name,double Price,int Number){this.Img = Img;this.Name = Name;this.Price = Price;this.Number = Number;}public int getImg() {return Img;}public void setImg(int img) {Img = img;}public String getName() {return Name;}public void setName(String name) {Name = name;}public double getPrice() {return Price;}public void setPrice(double price) {Price = price;}public int getNumber() {return Number;}public void setNumber(int number) {Number = number;}public int getSub() {return Sub;}public void setSub(int sub) {Sub = sub;}public int getAdd() {return Add;}public void setAdd(int add) {Add = add;}}
建表
public class Helper extends SQLiteOpenHelper {/**数据库名称*/public static final String DataBase = "HospitalSystem.db";public static final SQLiteDatabase.CursorFactory factory = null;public static int version = 5;/**表名1*/public static final String TableName = "GoodsList";/**行名*/public static final String Row_ID = "ID";public static final String Row_GoodsImg = "GoodsImg";public static final String Row_GoodsName = "GoodsName";public static final String Row_GoodsPrice = "GoodsPrice";public static final String Row_GoodsNumber = "GoodsNumber";public static final String Row_GoodsSub = "GoodsSub";public static final String Row_GoodsAdd= "GoodsAdd";public Helper(@Nullable Context context) {super( context, DataBase, factory, version );}@Overridepublic void onCreate(SQLiteDatabase db) {String sql = "create table " + TableName + "("+Row_ID+" INTEGER primary key AUTOINCREMENT,"+Row_GoodsImg+" INTEGER, "+Row_GoodsName+" varchar(20),"+Row_GoodsPrice+" REAL,"+Row_GoodsNumber+" INTEGER,"+Row_GoodsSub+" NUMERIC,"+Row_GoodsAdd+" NUMERIC);";//String sql_Information = "create table " + InformationTable + "("+Row_InformationAddress+" varchar(20) primary key, "+Row_InformationParkType+" varchar(20),"+Row_InformationShareMode+" varchar(20),"+Row_InformationLastName+" varchar(20),"+Row_InformationSex+" varchar(20),"+Row_InformationPhone+" varchar(20));";db.execSQL( sql );//db.execSQL( sql_Information );}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {switch (oldVersion){case 4:String sql = "create table " + TableName + "("+Row_ID+" INTEGER primary key AUTOINCREMENT,"+Row_GoodsImg+" INTEGER, "+Row_GoodsName+" varchar(20),"+Row_GoodsPrice+" REAL,"+Row_GoodsNumber+" INTEGER,"+Row_GoodsSub+" NUMERIC,"+Row_GoodsAdd+" NUMERIC);";db.execSQL( sql );case 5:String sql5 = "create table " + TableName + "("+Row_ID+" INTEGER primary key AUTOINCREMENT,"+Row_GoodsImg+" INTEGER, "+Row_GoodsName+" varchar(20),"+Row_GoodsPrice+" REAL,"+Row_GoodsNumber+" INTEGER,"+Row_GoodsSub+" NUMERIC,"+Row_GoodsAdd+" NUMERIC);";db.execSQL( sql5 );}//db.execSQL("drop table if exists "+TableName);//db.execSQL("drop table if exists "+InformationTable);//onCreate(db);}
}
建立Dao类,封装CRUD
public class Dao {public static final String TAG = "DataBase";private Helper helper ;private SQLiteDatabase DB;public Dao(Context context){helper = new Helper(context);}public void Insert(GoodsList goodsList){DB = helper.getReadableDatabase();if (DB.isOpen()){ContentValues values = new ContentValues();values.put( Helper.Row_GoodsImg,goodsList.getImg());values.put( Helper.Row_GoodsName,goodsList.getName());values.put( Helper.Row_GoodsNumber,goodsList.getNumber());values.put( Helper.Row_GoodsPrice,goodsList.getPrice());values.put( Helper.Row_GoodsSub,goodsList.getSub() );values.put( Helper.Row_GoodsAdd,goodsList.getAdd() );long RowId = DB.replace(Helper.TableName,null,values);if(RowId == -1)Log.i(TAG, "数据插入失败!");elseLog.i(TAG, "数据插入成功!"+RowId);}}//根据序号删除数据//当前id为暂不为序号public void Delete(){DB = helper.getReadableDatabase();if (DB.isOpen()){String whereClause = null;String[] whereArgs = null;int count = DB.delete(Helper.TableName, whereClause, whereArgs);if (count > 0)Log.i(TAG, "删除了: " + count + "行");elseLog.i(Helper.TableName, "数据未删除!");DB.close(); // 数据库关闭}}
//    public void Update(Account account){
//        DB = helper.getWritableDatabase();
//        if(DB.isOpen()) {   // 如果数据库打开, 执行更新的操作
//            ContentValues values = new ContentValues();
//            //values.put( Helper.Row_Account,account.getUserID());
//            values.put( Helper.Row_UserName,account.getUserName());
//            //values.put( Helper.Row_PassWord,account.getPassWord());
//            values.put( Helper.Row_Sex,account.getSex());
//            values.put( Helper.Row_PhoneNumber,account.getPhoneNumber());
//            int count  = DB.update(Helper.TableName, values, "Account = ?", new String[]{account.getUserID() + ""});
//            if (count > 0)
//                Log.i(TAG, "修改了: " + count + "行");
//            else
//                Log.i(Helper.TableName, "数据未删除!");
//            DB.close(); // 数据库关闭
//        }
//    }
//    public String Query(String Account){
//        DB = helper.getReadableDatabase();
//        //selection查询子句的条件,可以使用主键查询
//        String[] columns = {Helper.Row_Account,Helper.Row_PassWord};  // 需要的列
//        String selection = "Account = ?";
//        String[] selectionArgs = {Account + ""};
//        Cursor cursor = DB.query(Helper.TableName,columns,selection,selectionArgs,null,null,null);
//        if (cursor.moveToFirst())
//        {
//                //String _id = cursor.getString(0);
//                String Content = cursor.getString(cursor.getColumnIndex( Helper.Row_PassWord ));
//                return Content;
//        }
//        DB.close();
//        return null;
//    }public List<GoodsList> QueryAll() {DB = helper.getReadableDatabase();  // 获得一个只读的数据库对象if(DB.isOpen()) {String[] columns = {Helper.Row_GoodsImg, Helper.Row_GoodsName,Helper.Row_GoodsNumber,Helper.Row_GoodsPrice};  // 需要的列String selection = null;    // 选择条件, 给null查询所有String[] selectionArgs = null;  // 选择条件的参数, 会把选择条件中的? 替换成数据中的值String groupBy = null;  // 分组语句  group by nameString having = null;   // 过滤语句String orderBy = null;  // 排序Cursor cursor = DB.query(Helper.TableName, columns, selection, selectionArgs, groupBy, having, orderBy);int mImg;String mName;double mPrice;int mNumber;int Add;int Sub;if(cursor != null && cursor.getCount() > 0) {List<GoodsList> goodsLists = new ArrayList<GoodsList>();while(cursor.moveToNext()) {    // 向下移一位, 知道最后一位, 不可以往下移动了, 停止.mImg = cursor.getInt(cursor.getColumnIndex( "GoodsImg" ));mName = cursor.getString(cursor.getColumnIndex( "GoodsName" ));mPrice = cursor.getDouble(cursor.getColumnIndex( "GoodsPrice"));mNumber = cursor.getInt(cursor.getColumnIndex( "GoodsNumber"));Add =  R.drawable.jiahao;Sub = R.drawable.jianhao;goodsLists.add(new GoodsList(mImg,mName,mPrice,mNumber,Sub,Add));}DB.close();return goodsLists;}DB.close();}return null;}
}
插入选中的商品信息至数据库

通过判断选中商品数量,将大于0的商品信息插入数据库

private void GotoSettlement(){for (int i = 0; i <contentList.size() ; i++) {int num = contentList.get( i ).getNumber();if (num > 0){/*插入数据为null*///Toast.makeText( context,""+num,Toast.LENGTH_SHORT ).show();goodsList = new GoodsList( contentList.get( i ).getGoodsIMG(),contentList.get( i ).getContent(),contentList.get( i ).getPrice(),contentList.get( i ).getNumber(),R.drawable.jianhao,R.drawable.jiahao );dao.Insert( goodsList );}}}
取出选中的商品信息从数据库
private void InitData(){goodsLists = dao.QueryAll();for (int i = 0; i <goodsLists.size() ; i++) {goodsList = new GoodsList( goodsLists.get( i ).getImg(),goodsLists.get( i ).getName(),goodsLists.get( i ).getPrice(),goodsLists.get( i ).getNumber(),goodsLists.get( i ).getSub(),goodsLists.get( i ).getAdd() );dataList.add( goodsList );}}

显示选中的商品

同样使用RecyclerView展示,实体类、适配器等省略

效果图

子项数量为0删除子项

在适配器中添加如下方法

public void subPrice(List<GoodsList> item,double price,int position,int number){number--;if (number > 0){totalPrice -= price;item.get( position ).setNumber( number );}else {item.remove( position );}notifyDataSetChanged();}
子项清空

添加如下方法

public void removeAllItem(List<GoodsList> item){item.removeAll( item );notifyDataSetChanged();}
商品总数统计
public int TotalNumber(List<GoodsList> item){int num = 0;for (int i = 0; i <item.size() ; i++) {num += item.get( i ).getNumber();}return num;}
商品总价统计
public double TotalPrice(List<GoodsList> item){double totalPrice = 0;for (int i = 0; i < item.size(); i++) {int num = item.get( i ).getNumber();double price = item.get( i ).getPrice();totalPrice += num * price;}return totalPrice;}

排队系统

参考另外一篇博客排队系统

优雅谢幕

killProcess

杀死所有Activity,添加如下类

public class killProcess extends Application {private List<Activity> activityList = new ArrayList<>(  );public void addActivity(Activity activity) {activityList.add(activity);}public void finishAll() {for (Activity activity : activityList) {if (!activity.isFinishing()) {activity.finish();}}}
}

应用

添加Activity

在每一个Activity的onCreate方法使用如下语句

 killProcess = new killProcess();killProcess.addActivity( GoodsListActivity.this );

杀死所有Activity

killProcess.finishAll();

尾言

花花世界,其心不恒,淤泥不染尚不可为之,唯独善其身,远离喧嚣。

基于Android的医院预下单叫号排队系统相关推荐

  1. 基于Android的医院预约挂号系统,基于Android的医院预约挂号系统设计与实现

    摘要: 网络预约挂号相对于现场预约挂号和电话预约挂号具有很大的优势,无论现场预约或电话预约,均受到窗口,设备或电话线路的制约,对大规模的用户请求往往不能够做到及时处理.网络预约挂号得益于网络数据通信机 ...

  2. android预约管理系统,基于Android的医院就诊预约管理系统的设计与实现.doc

    苏州科技学院本科生毕业设计(论文) 苏州科技学院 毕业设计(论文) 题 目 基于Android的医院就诊预约 管理系统的设计与实现 性 质: 毕业设计 毕业论文√ 专 业: 计算机科学与技术 年 级: ...

  3. 基于Android和WI-FI通信的智能家居系统

    针对传统智能家居系统存在的操作复杂.可移动性差.升级维护成本高等缺点,本文提出了一种基于Android的智能家居系统的设计和实现方案.采用了具有Android操作系统的智能手机或平板电脑作为家居控制终 ...

  4. 基于android平台的语音机器人服务娱乐系统

    分 类 号:TP311 学校代码:11460 学 号:10130920 本科生毕业论文 基于android平台的语音机器人服务娱乐系统 Robot Entertainment Service Syst ...

  5. Android开发英语听力软件,基于Android平台的大学英语听力学习系统的设计与实现...

    摘要: 随着信息技术的飞速发展,移动设备给学习提供了一种全新的学习模式,使学者能够在任何时间.任何地点获得自己想要的知识,实现自主学习.本文对基于Android平台的大学英语听力学习系统展开研究,旨在 ...

  6. android模板 警务,基于Android移动手机平台的警务查询系统

    摘要: 移动计算作为一种新的计算模式改变了人们使用信息的方式,使人们使用信息不再受时间和地点的限制.随着通讯技术的迅猛发展,手机.PDA等移动数字终端设备已经大量普及使用,在移动中获取信息的需求也越来 ...

  7. 基于Android 移动端的网络视频探索系统【100010403】

    基于移动端的网络视频探索系统 1 引言 1.1 研究背景 智能手机用户在 2015 年占全:人数比例超过百分之十,在 2016 年的时候手机用户超过 20 亿,中国占百分之三十左右.现如今,全:的智能 ...

  8. 华为android版本9什么意思,基于Android P的华为EMUI 9.0系统正式发布

    9月1日晚间,华为在德国柏林国际电子消费展览会(IFA)上举行媒体沟通会,正式发布华为EMUI 9.0系统. 全新的EMUI 9.0系统基于Android P打造,官方介绍该系统流畅度提升12.9%, ...

  9. 基于android的温室大棚监控管理信息系统研究,基于Android与GSM的温室大棚远程监控系统.pdf...

    基于Android与GSM的温室大棚远程监控系统.pdf 江苏农业科学 2015 年第43卷第4期 - 397 - 韩 剑,莫德清.基于Android 与GSM的温室大棚远程监控系统[J].江苏农业科 ...

  10. 基于Java毕业设计医院住院部管理源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计医院住院部管理源码+系统+mysql+lw文档+部署软件 基于Java毕业设计医院住院部管理源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. HashMap 的 7 种遍历方式与性能分析!(强烈推荐)
  2. 网元查看一个无厘头的core dump问题定位
  3. 谷歌公布十大恶意网站 均曾攻击上万网站
  4. 从0开始学springboot之启蒙篇
  5. 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法)
  6. Spark 1.2 发布,开源集群计算系统
  7. E 速度即转发(牛客挑战赛48)(树套树)
  8. 根据word模版导入word中用户填写的数据
  9. thymeleaf路径问题
  10. Hadoop开发第6期---HDFS的shell操作
  11. python实践答辩ppt_看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶没压力!...
  12. java show方法显示_Java Presence.Show方法代码示例
  13. 大集训的第二个小总结
  14. 魅族pro5 刷机 android,魅族 PRO5中文Recovery刷机教程
  15. 使用Freemark和aspose.word实现动态word转pdf
  16. 智慧社区综合信息服务平台,让你的社区更智能
  17. java520.1314表白_521.1314表白的数学题大全 临沂学霸520专用表白方式
  18. 在windows下安装pyLint,对python进行语法检查
  19. 使用Zbrush,Maya制作角色模型Xgen毛发流程
  20. 腾讯手机管家ROOT功能分析

热门文章

  1. 2个最好的中文图标搜索引擎
  2. 你说南京很好,但不是你最想去的城市,那么,上海呢,要不借这个机会去看看吧--写给自己
  3. round在oracle里怎么用,Oracle round 函数(图)
  4. E45: 'readonly' option is set (add ! to override)报错如何解决
  5. 弃用个人博客站重返CSDN缘由
  6. Java实现支付功能代码
  7. 一些javaweb开发常用工具类
  8. Linux/debian/ubuntu/deepin 等系统禁用鼠标中键(滚轮)按下粘贴的方法
  9. 纯净网站导航纯html无后台,仿360网址导航源码纯html页面无后台易操作修改无加密有留言后台...
  10. 二极管、稳压二极管、发光二极管电路测试