<学生成绩管理系统设计>

  • 选题背景

在日常生活中,学生成绩信息的管理是每个老师都不可或缺的,总分的统计,平均分的计算等,这些教学任务附带的工作往往给教师带来很大的负担,为了减轻教师上课负担,方便学生和老师的课堂教学,对当前学生成绩信息相关内容设计专门的软件进行管理,减轻教师管理学生成绩的工作量,在日常教学中具有积极的实践意义。

  • 系统说明
  1. 开发工具及环境

本系统在windows是pc机上使用QT+VS的模式进行相关的系统功能设计,使用一种轻量级的数据库sqllite进行数据的存储。

  1. 开发的环境

软件:VS2019 ,QT5,SQlite Expert personal

硬件:pc机一台

  1. 功能规划:

编写学生成绩管理系统:有100个以上学生,每个学生至少有2门以上课程成绩(尽可能实现可以增减课程数),能够统计平均成绩,不及格、及格、优、良、中所占比例。实现界面必须图形界面,功能用菜单或按钮形式,输入界面用对话框形式,数据保存在文件或数据库。角色分管理员、老师与学生。

  • 系统设计
  1. 模块划分

登录模块:设计登陆界面,验证登录用户,可以根据密码或者用户名的错误输出做出提示。

成绩管理模块:实现对学生成绩的增删改查功能,可以实现模糊查询成绩信息。

成绩分析模块:实现对成绩优,良,中,及格,不及格比例的统计,求各科的平均分和个人总的平均分。

用户管理:实现对登录用户信息的增,删,改,查功能。

  1. 系统流程图

  1. 数据库设计

用户表信息表:

成绩表信息表:

  • 系统实现

Sqlclass.cpp代码:

#include "mysqlclass.h"

SqliteDBAOperator::SqliteDBAOperator()

{

QSqlDatabase database;

if (QSqlDatabase::contains("qt_sql_default_connection"))

{

database = QSqlDatabase::database("qt_sql_default_connection");

}

else

{

db = QSqlDatabase::addDatabase("QSQLITE");

QString dbname = QString("C:\\Users\\Administrator\\Desktop\\wang.db");

db.setDatabaseName(dbname);

}

}

SqliteDBAOperator::~SqliteDBAOperator()

{

db.close();

}

bool SqliteDBAOperator::OpenDb(void)

{

//打开数据库

if (db.open() == false) {

qDebug() << "连接数据库失败!";

return false;

}

else

{

qDebug() << "连接数据库成功!";

return true;

}

}

//判断表是否存在

bool SqliteDBAOperator::IsTaBexists(QString& Tabname)

{

QSqlDatabase db = QSqlDatabase::database();

if (db.tables().contains(Tabname))

{

return true;

}

return false;

}

void SqliteDBAOperator::addNewcolumn(QString& columnNameAndproperty)

{

}

//查询数据

QString SqliteDBAOperator::queryTable(QString& str)

{

QSqlQuery sql_query;

QString select_sql = str;

if (!sql_query.exec(select_sql))

{

qDebug() << sql_query.lastError();

return  "错误的结果!";

}

else

{

while (sql_query.next())

{

QString pass = sql_query.value(0).toString();

qDebug() << "查询结果为:" << pass;

return pass;

}

}

}

//插入记录

void SqliteDBAOperator::singleinsertdata(QString str1)

{

QSqlQuery query;

if (!query.exec(str1))

{

qDebug() << query.lastError();

}

else

{

qDebug() << "数据插入成功!";

}

}

//数据删除函数

void SqliteDBAOperator::deletedata(QString str)

{

QSqlQuery query;

if (!query.exec(str))

{

qDebug() << query.lastError();

}

else

{

qDebug() << "数据删除成功!";

}

}

void SqliteDBAOperator::closeDb(void)

{

db.close();

qDebug() << "数据库关闭!";

}

QString  pingfen(float x)  //计算所属评分等级

{

QString a;

if (x >= 60 && x < 70)

{

a = "及格";

}

else if (x >= 70 && x < 80)

{

a = "中等";

}

else if (x >= 80 && x < 90)

{

a = "良好";

}

else if (x >= 90 && x <= 100)

{

a = "优秀";

}

else

{

a = "不及格";

}

return a;

}

界面按钮函数实现代码:

#include "QtWidgetsApplication.h"

#include "mysqlclass.h"

#include <QMessageBox>

#include "QtSql/QsqlQueryModel"

#include "QDebug"

#include "QModelIndex"

QString globaldata; //声明一个全局变量用于窗体间传值

int globaldata2=1;

//用消息盒子提示

SqliteDBAOperator sqldatabase = SqliteDBAOperator();

void  mainwindow::tableclick()               //主界面tableview选中函数

{

if (globaldata2 ==2)

{

int curRow = ui.tableView->currentIndex().row();//选中行行号

QAbstractItemModel* modessl = ui.tableView->model();

QModelIndex indextemp = modessl->index(curRow, 0);

QString datatemp = modessl->data(indextemp).toString();

ui.lineEdit_user->setText(datatemp);

indextemp = modessl->index(curRow, 1);

datatemp = modessl->data(indextemp).toString();

ui.lineEdit_pass->setText(datatemp);

indextemp = modessl->index(curRow, 2);

datatemp = modessl->data(indextemp).toString();

if (datatemp == "s")

{

ui.radioButton_2->setChecked(true);

}

else  if(datatemp=="m")

{

ui.radioButton_3->setChecked(true);

}

else

{

ui.radioButton->setChecked(true);

}

}

else

{

int curRow = ui.tableView->currentIndex().row();//选中行行号

QAbstractItemModel* modessl = ui.tableView->model();

QModelIndex indextemp = modessl->index(curRow, 0);

QString datatemp = modessl->data(indextemp).toString();

ui.lineEdit->setText(datatemp);

indextemp = modessl->index(curRow, 1);

datatemp = modessl->data(indextemp).toString();

ui.lineEdit_2->setText(datatemp);

indextemp = modessl->index(curRow, 2);

datatemp = modessl->data(indextemp).toString();

ui.lineEdit_3->setText(datatemp);

indextemp = modessl->index(curRow, 3);

datatemp = modessl->data(indextemp).toString();

ui.lineEdit_4->setText(datatemp);

indextemp = modessl->index(curRow, 4);

datatemp = modessl->data(indextemp).toString();

ui.lineEdit_5->setText(datatemp);

}

}

QtWidgetsApplication::QtWidgetsApplication(QWidget *parent)

: QMainWindow(parent)

{

ui.setupUi(this);

}

void QtWidgetsApplication::close()

{

// QApplication::exit();

}

void QtWidgetsApplication::pushbuttonlog()  //登录确定按钮

{

bool a = sqldatabase.OpenDb();

if (a)//如果数据库连接成功

{

QString  name = ui.lineEdit->text();

QString  pass = ui.lineEdit_2->text();

QString  sqlcount = QString("SELECT count(password) FROM userinfo where  username='%1'").arg(name);

if (sqldatabase.queryTable(sqlcount)!="0")

{

QString  sqlquery = QString("select  password  from userinfo where username='%1'").arg(name);

QString   test = sqldatabase.queryTable(sqlquery);

globaldata = sqldatabase.queryTable(QString("select flag from userinfo where username='%1'").arg(name));

sqldatabase.closeDb();

if (pass == test)

{

ui.label->setText(QString("登陆成功"));

mainsign = new mainwindow;

mainsign->show();

this->close();

}

else

{

ui.label->setText(QString("密码错误!"));

}

}

else

{

ui.label->setText(QString("账户名错误!"));

}

}

else

{

ui.label->setText(QString("登陆失败!"));

}

}

void  mainwindow::pushbutton1() //主界面插入操作函数

{

{

bool  a = sqldatabase.OpenDb();

if (a)//如果数据库连接成功

{

QString    name = ui.lineEdit->text();

QString    number = ui.lineEdit_2->text();

int    course1 = ui.lineEdit_3->text().toInt();

int    course2 = ui.lineEdit_4->text().toInt();

int    course3 = ui.lineEdit_5->text().toInt();

float    average = (course1 + course2 + course3) / 3.0;

ui.lineEdit_6->setText(QString("%1分(%2)").arg(QString::number(average, 'f', 2)).arg(pingfen(average)));

QString  sql_insert = QString("INSERT INTO student (name,number,c1,c2,c3,average,dengji)  VALUES('%1', '%2',"

"        %3, %4, %5, %6, '%7')").arg(name).arg(number).arg(course1).arg(course2).arg(course3).arg(average).arg(pingfen(average));

int ret = QMessageBox::warning(this, "提示", "更新插入一条数据?", QMessageBox::Yes, QMessageBox::No);

if (ret == QMessageBox::Yes)

{

sqldatabase.singleinsertdata(sql_insert);

// this->close();

}

sqldatabase.closeDb();

//更新表数据

clear();

fresh();

}

else {

qDebug() << "数据库连接成功!";

}

}

}

void  mainwindow::pushbutton2() //主界面删除操作函数

{

int curRow = ui.tableView->currentIndex().row();//选中行行号

QAbstractItemModel* modessl = ui.tableView->model();

QModelIndex indextemp = modessl->index(curRow, 1);

//这个是一个单元格的值。tostring()----ok

QString datatemp = modessl->data(indextemp).toString();

int ret = QMessageBox::warning(this, "提示",QString("删除用户%1的成绩信息?").arg(datatemp), QMessageBox::Yes, QMessageBox::No);

if (ret == QMessageBox::Yes)

{

sqldatabase.OpenDb();

QString sql_delete = QString("DELETE FROM student WHERE number = %1").arg(datatemp);

sqldatabase.deletedata(sql_delete);

sqldatabase.closeDb();

clear();

fresh();

}

}

void  mainwindow::pushbutton3() //主界面修改操作函数

{

int curRow = ui.tableView->currentIndex().row();//选中行行号

QAbstractItemModel* modessl = ui.tableView->model();

QModelIndex indextemp = modessl->index(curRow, 1);

//这个是一个单元格的值。tostring()----ok

QString datatemp = modessl->data(indextemp).toString();

int ret = QMessageBox::warning(this, "提示", QString("修改用户%1的成绩信息?").arg(datatemp), QMessageBox::Yes, QMessageBox::No);

if (ret == QMessageBox::Yes)

{

sqldatabase.OpenDb();

QString sql_delete = QString("DELETE FROM student WHERE number = %1").arg(datatemp);

sqldatabase.deletedata(sql_delete);

QString   name = ui.lineEdit->text();

QString    number = ui.lineEdit_2->text();

int    course1 = ui.lineEdit_3->text().toInt();

int    course2 = ui.lineEdit_4->text().toInt();

int    course3 = ui.lineEdit_5->text().toInt();

float    average = (course1 + course2 + course3) / 3.0;

ui.lineEdit_6->setText(QString("%1分(%2)").arg(QString::number(average, 'f', 2)).arg(pingfen(average)));

QString  sql_insert = QString("INSERT INTO student (name,number,c1,c2,c3,average,dengji)  VALUES('%1', '%2',"

"        %3, %4, %5, %6, '%7')").arg(name).arg(number).arg(course1).arg(course2).arg(course3).arg(average).arg(pingfen(average));

sqldatabase.singleinsertdata(sql_insert);

// this->close();

//更新表数据

sqldatabase.closeDb();

clear();

fresh();

}

}

void  mainwindow::pushbutton4()  //查询函数

{

QString   name = ui.lineEdit->text().trimmed();

QString    number = ui.lineEdit_2->text().trimmed();

QString   course1 = ui.lineEdit_3->text().trimmed();

QString   course2 = ui.lineEdit_4->text().trimmed();

QString    course3 = ui.lineEdit_5->text().trimmed();

QString    average = ui.lineEdit_6->text().trimmed();

QString  sql_inquery=QString("select * from student where name like '%1%' and number  like '%2%'and c1 like '%3%' and c2 like '%4%' and c3 like '%5%' and average like "

" '%6%'").arg(name).arg(number).arg(course1).arg(course2).arg(course3).arg(average) ;

sqldatabase.OpenDb();

static QSqlQueryModel* model = new QSqlQueryModel(ui.tableView);

model->setQuery(sql_inquery);

ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

ui.tableView->setModel(model);

sqldatabase.closeDb();

connect(ui.tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(show_list()));

}

void  mainwindow::pushbutton5()              //优良率计算函数

{

sqldatabase.OpenDb();

float all= sqldatabase.queryTable(QString("select count(*) from student")).toFloat();

float one= sqldatabase.queryTable(QString("select count(*) from student where dengji='优秀'")).toFloat();

float two = sqldatabase.queryTable(QString("select count(*) from student where dengji='良好'")).toFloat();

float three = sqldatabase.queryTable(QString("select count(*) from student where dengji='中等'")).toFloat();

float four = sqldatabase.queryTable(QString("select count(*) from student where dengji='及格'")).toFloat();

float five= sqldatabase.queryTable(QString("select count(*) from student where dengji='不及格'")).toFloat();

ui.label_you->setText(QString("%1").arg(QString::number(one/all, 'f', 2)));

ui.label_liang->setText(QString("%1").arg(QString::number(two / all, 'f', 2)));

ui.label_zhong->setText(QString("%1").arg(QString::number(three / all, 'f', 2)));

ui.label_jige->setText(QString("%1").arg(QString::number(four/ all, 'f', 2)));

ui.label_bujige->setText(QString("%1").arg(QString::number(five / all, 'f', 2)));

sqldatabase.closeDb();

}

void  mainwindow::pushbutton6() // 平均成绩计算

{

sqldatabase.OpenDb();

float one = sqldatabase.queryTable(QString("select avg(c1) from student")).toFloat();

float two = sqldatabase.queryTable(QString("select avg(c2) from student")).toFloat();

float three = sqldatabase.queryTable(QString("select avg(c3) from student")).toFloat();

float all = one + two + three;

ui.label_c1->setText(QString("%1").arg(QString::number(one, 'f', 2)));

ui.label_c2->setText(QString("%1").arg(QString::number(two, 'f', 2)));

ui.label_c3->setText(QString("%1").arg(QString::number(three, 'f', 2)));

ui.label_allaverage->setText(QString("%1").arg(QString::number(all, 'f', 2)));

}

void  mainwindow::pushbutton7() // 用户管理模式切换

{

if (globaldata2 == 1)  //进入用户管理模式

{

globaldata2 = 2;

fresh2();

ui.pushButton_manage->setText("成绩查看");

}

else

{

globaldata2 = 1;     //进入成绩管理模式

fresh();

ui.pushButton_manage->setText("用户管理");

}

}

void  mainwindow::pushbutton8()   //增加成员

{

QString  username = ui.lineEdit_user->text();

QString  pass = ui.lineEdit_pass->text();

QString  flag;

if (ui.radioButton->isChecked())

{

flag = "t";

}

else if(ui.radioButton_2->isChecked())

{

flag = "s";

}

else

{

flag = "m";

}

QString   sql_insert = QString(" INSERT INTO userinfo (username,password,flag)  VALUES('%1', '%2','%3')").arg(username).arg(pass).arg(flag);

if (sqldatabase.OpenDb())

{

QString  sqlcount = QString("SELECT count(password) FROM userinfo where  username='%1'").arg(username);

if (sqldatabase.queryTable(sqlcount).toInt() == 0)

{

sqldatabase.singleinsertdata(sql_insert);

fresh2();

}

else

{

qDebug() << "用户已存在";

}

}

sqldatabase.closeDb();

}

void  mainwindow::pushbutton9()   //删除成员

{

QString  username = ui.lineEdit_user->text();

QString  pass = ui.lineEdit_pass->text();

QString  flag;

if (ui.radioButton->isChecked())

{

flag = "t";

}

else if (ui.radioButton_2->isChecked())

{

flag = "s";

}

else

{

flag = "m";

}

int ret = QMessageBox::warning(this, "提示", QString("删除用户%1的成绩信息?").arg(username), QMessageBox::Yes, QMessageBox::No);

if (ret == QMessageBox::Yes)

{

sqldatabase.OpenDb();

QString sql_delete = QString("DELETE FROM userinfo  WHERE username = '%1'").arg(username);

sqldatabase.deletedata(sql_delete);

sqldatabase.closeDb();

}

fresh2();

}

void  mainwindow::pushbutton10()   //修改成员

{

QString  username = ui.lineEdit_user->text();

QString  pass = ui.lineEdit_pass->text();

QString  flag;

if (ui.radioButton->isChecked())

{

flag = "t";

}

else if (ui.radioButton_2->isChecked())

{

flag = "s";

}

else

{

flag = "m";

}

sqldatabase.OpenDb();

QString sql_delete = QString("DELETE FROM userinfo  WHERE username = '%1'").arg(username);

QString  sql_insert= QString(" INSERT INTO userinfo (username,password,flag)  VALUES('%1', '%2','%3')").arg(username).arg(pass).arg(flag);

sqldatabase.deletedata(sql_delete);

sqldatabase.singleinsertdata(sql_insert);

sqldatabase.closeDb();

fresh2();

}

void  mainwindow::pushbutton11()   //查询成员

{

QString  username = ui.lineEdit_user->text();

QString  sql_inquery = QString("select * from userinfo where username like '%1%' ").arg(username);

sqldatabase.OpenDb();

static QSqlQueryModel* model = new QSqlQueryModel(ui.tableView);

model->setQuery(sql_inquery);

ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

ui.tableView->setModel(model);

sqldatabase.closeDb();

connect(ui.tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(show_list()));

}

void  mainwindow::fresh()  //刷新函数

{

if (!sqldatabase.OpenDb())

{

qDebug() << "mistake1212"; //错误处理

}

static QSqlQueryModel* model = new QSqlQueryModel(ui.tableView);

model->setQuery(QString("select * from student"));

ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

ui.tableView->setModel(model);

sqldatabase.closeDb();

connect(ui.tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(show_list()));

}

void  mainwindow::fresh2()  //刷新函数2

{

if (!sqldatabase.OpenDb())

{

qDebug() << "mistake1212"; //错误处理

}

static QSqlQueryModel* model = new QSqlQueryModel(ui.tableView);

model->setQuery(QString("select * from userinfo"));

ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

ui.tableView->setModel(model);

sqldatabase.closeDb();

connect(ui.tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(show_list()));

}

运行结果:

登录界面测试:

主界面测试:

成绩管理:

查询成绩:

增加成绩:

修改成绩:

删除信息:

用户管理类似在此不做演示。

测试结果显示,虽然可能还不够完善,但是基本实现了系统要求中的各个功能,能进行成绩和用户信息的基本管理。

用户管理类似在此不做演示。

测试结果显示,虽然可能还不够完善,但是基本实现了系统要求中的各个功能,能进行成绩和用户信息的基本管理。

  • 课程小结

过此次课程设计,使我更加扎实的掌握了有关c++程序设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了qt的识别和测试;熟悉了c++;了解了新的编程框架和方法。我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。

学生信息成绩管理系统下载链接

学生成绩信息管理系统相关推荐

  1. 基于JavaWeb学生成绩信息管理系统(附源码资料)-毕业设计

    1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计.或者是需要实战项目的Java开发学习者. 2. 你将收获 提供:项目源码.项目文档.数据库脚本.软件工具等所有资料(在平台的课程附件中进行 ...

  2. C语言编写学生成绩信息管理系统

    用C语言设计简单的学生成绩信息管理系统 介绍 代码 结构体数组的定义 home_page() 函数 add_infor() 函数 browse_infor() 函数 find_infor() 函数 m ...

  3. 【基于SSM+MySQL+Jsp的高校学生成绩信息管理系统的设计与实现 ---(效果+源代码+数据库+获取 ~ ~】

    快速阅读目录 写在前面: (一)效果展示 (1)数据库表一览 (2)部分运行截图 (二)代码展示 (三)说明 写在前面: tips:这是一个基于SSM+MySQL+Jsp等技术的高校学生成绩信息管理系 ...

  4. 任务2 学生成绩信息管理系统

    系列文章 任务2 学生成绩信息管理系统 某班级学生C语言第一次正考的成绩存于数据文件score.txt中,记录了学生学号.姓名和考试成绩,bk.txt文件中记录了补考学生的学号.姓名和补考成绩,编写程 ...

  5. C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

    目录 一.创建数据库表和配置SQL数据库连接信息 1.创建数据库表 2.配置数据库连接信息 二.配置程序代码 1.StudentAccount类 2.Student类 3.TeacherAccount ...

  6. 基于python+tkinter的学生成绩信息管理系统

    基于python+tkinter的学生成绩信息管理系统 系统设计 2.开发工具 开发语言:python3.6.8 开发工具:JetBrains PyCharm 2019.1.2 x64 使用三方模块: ...

  7. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

    1.项目开发背景和意义 随着科学技术的快速发展和不断提高,尤其是计算机科学技术的日渐普及,其功能的强大以及运行速度已经被人们深刻地了解.近几年来高校的办学模式多元化和学校规模的扩大,为了实现对学生信息 ...

  8. C语言学生成绩信息管理系统课程设计报告

    C语言课程设计报告 一 .设计目的 学生成绩管理系统 主要功能: (1)能按学期.按班级完成对学生成绩的录入. 修改,删除 (2)能按班级统计学生的成绩,求学生的总分及 平均分,并能根据学生的平均成绩 ...

  9. JAVA大作业 | 学生成绩信息管理系统

    > * *JAVA大作业 | 学生成绩管理系统(含有用户界面)*** ----- ps :多个包写在一起---– package test; import java.awt.*; import ...

  10. C++文件读写的学生成绩信息管理系统

    编译环境:Windows VS2019 由于程序内部实现原因,由程序操作的文件的第一行,不可以被占用.必须空出来. 且文件最后一行不可以有多余的空行. 建议不要直接操作txt文件. #include ...

最新文章

  1. 存储安全 系统的最后一道防线
  2. 2018提高组训练Day2
  3. 淘宝双十一用5个“潜规则”冲击1500亿
  4. git 工具_Github开源工具分享之自托管GIT服务工具Gogs
  5. 如何将文件二进制传输至aix服务器,有什么办法把文件从WINDOWS系统中传到AIX中?...
  6. v4l2 框架下如何设置分辨率_【微学习】低压计量电表如何设置?(下)
  7. 程序员的进阶课-架构师之路(13)-B-树
  8. Linux 5.10将解决2038年问题
  9. linux mysql ssh通道_通过SSH通道来访问MySQL
  10. NullPointerException空指针异常的理解
  11. 以下c语言程序片段用于估测cpu的cache参数,优酷【C/C++类】:笔试题目1(最全)...
  12. unity-Profiler调试Android
  13. Java 文件上传与下载
  14. MATLAB GUI中的handles
  15. 笔记本Win10系统关于启动禁用触控板设置
  16. 编一个程序,将两个字符串连接起来,不要用strcat函数
  17. Selenium结合HttpWatch进行Web自动化测试(实时获取页面性能)
  18. 互联网时代,“羊毛出在狗身上,由猪买单”,打败你的不再是你的对手,而是........
  19. 关于技嘉雷电扩展卡SSDT驱动教程
  20. Android中的Glide

热门文章

  1. PostgreSQL 创建数据库
  2. python 中的拷贝、浅拷贝与深拷贝
  3. 农历日期用html怎么显示,怎么显示阴历(农历)日期的js代码?
  4. wordpress插件-wordpress常用插件大全
  5. C语言有负号的除法以及求余运算规则
  6. Java保留2位小数 JS保留2位小数 Java截取2位小数 Math.round((1.0/3)*100)/100.0
  7. python算方差_python 算方差
  8. 番外7. 在 Python OpenCV 寻找目标区域以及边缘扩展的解决方案
  9. 世界各国与中国时差查询
  10. Python字符串:isspace、istitle、isupper、islower