在原版上进行改进,主要改进的功能有。

1.利用atof:将字符串转换为浮点型;

利用atoi:将字符串转换为整型;

原文地址:http://www.cnblogs.com/sddai/p/5774121.html

3.将结构体改变了,可能因为编码原因,只能char型输入,还好有ASCII码

4.将输出格式改变

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h> #pragma warning(disable : 4996)
#pragma warning(disable : 4477) FILE *fp; int count; char biubiubiu = '\n'; struct add
{
char ch[];
char a[];
char SID[];
char ch1[];
char b[];
char Name[];
char ch2[];
char c[];
char Age[];
char ch3[];
char d[];
char Gender[];
char ch4[];
char e[];
char EntranxeScore[];
char ch5[];
}add1[], student, *pointer; void color(const unsigned short color1)
{
if (color1 >= && color1 <= )
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);
else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), );
} void printinfor();//菜单函数 void wuyu_1();//按学号排序函数
void wuyu_2();//按总成绩排序函数 void function_1();//添加学生信息函数
void function_2();//删除学生信息函数
void function_3();//更改学生信息函数
void function_4();//查询学生信息函数
void function_5();//显示所有学生信息函数
void function_6();//附加功能选项函数 void findfunction_1();//通过学号查询函数
void findfunction_2();//通过学生姓名查询函数
void findfunction_3();//通过学生年龄查询函数
void findfunction_4();//通过学生分数查询函数 void add_txt(); int main(void)
{
int num_1, k;
fp = fopen("D:\\studyinfor.txt", "ab+");//打开文本/创建,进行操作
fread(add1, sizeof(struct add), , fp);//读取文本储存信息
add_txt();
for (k = ; k<; k++)//判断文本中储存人数(Age==0表示此处无数据)
{
if (add1[k].Age[] == '\0')
{
break;
}
count++;
}
fclose(fp);//关闭指针
printinfor();//显示菜单
while ()//使用者操作
{
do
{
printf("请输入要进行操作的序列号:");
scanf("%d", &num_1);
} while (num_1< || num_1>);
if (num_1 == )break; switch (num_1)
{
case :function_1(); break;
case :function_2(); break;
case :function_3(); break;
case :function_4(); break;
case :function_5(); break;
case :function_6(); break;
}
system("cls");
printinfor();
}
return ;
} void checkSID(int j)//检查学号大小函数
{
int num_int;
num_int = atoi(add1[j].SID);
while (num_int <= || num_int>)
{
color();
printf("warning:SID的取值范围在0~750,请重新输入.\n");
color();
printf("请输入学生的学号:");
scanf("%s", &add1[j].SID);
num_int = atoi(add1[j].SID);
if (num_int> && num_int <= )
{
break;
}
}
} void checkSID_1(int m)//检查学号是否重复函数
{
int k, num_int, num1_int;
num1_int = atoi(add1[m].SID);
for (k = ; k < count; k++)
{
if (k == m)
{
continue;
}
num_int = atoi(add1[k].SID);
while (num_int == num1_int)
{
color();
printf("学号重复,请重新输入.\n");
color();
printf("请输入学号:");
scanf("%s", &add1[m].SID);
num1_int = atoi(add1[m].SID);
k == ;
}
}
}
//因为选择输入的方式是ab+,从新从i=0开始输入进去,所以想要通过 void checkName(int m, char Name[])//检查姓名函数
{
while (strlen(Name)>)
{
color();
printf("warning:Name的字数最多为5,请重新输入.\n");
color();
printf("请输入学生的姓名:");
scanf("%s", &add1[m].Name);
}
} void checkGender(int i, char a[])//检查性别函数
{
while (strcmp(a, "男") && strcmp(a, "女"))
{
color();
printf("warning:Gender只能是男或女,请重新输入.\n");
color();
printf("请输入学生的性别:");
scanf("%s", &add1[i].Gender);
}
} void checkAge(int m)//检查年龄函数
{
int num_int;
num_int = atoi(add1[m].Age);
while (num_int< || num_int>)
{
color();
printf("warning:Age的取值范围在0~122,请重新输入,严肃对待!\n");
color();
printf("请输入学生的年龄:");
scanf("%s", &add1[m].Age);
num_int = atoi(add1[m].Age);
}
} void checkEntranxeScore(int k)
{
double num_double;
num_double = atof(add1[k].EntranxeScore);
while (num_double< || num_double>)
{
color();
printf("warning:EntranxeScore的取值范围在0~750,请重新输入.\n");
color();
printf("请输入学生的分数:");
scanf("%lf", &add1[k].EntranxeScore);
}
} void getName(char name[]) {
while () {
printf("请输入学生的姓名:");
fflush(stdin);
scanf("%s", name);
if (strlen(name)<) {
break;
}
}
} void printinfor()
{
system("date /t");
system("TIME /t\n");
printf(" **********欢迎使用学生信息管理系统(当前有%d人)********\n", count);
printf(" *\t\t(1)添加学生信息\t\t\t\t*\n");
printf(" *\t\t(2)删除学生信息\t\t\t\t*\n");
printf(" *\t\t(3)更改学生信息\t\t\t\t*\n");
printf(" *\t\t(4)查询学生信息\t\t\t\t*\n");
printf(" *\t\t(5)显示所有学生信息\t\t\t*\n");
printf(" *\t\t(6)附加功能选项\t\t\t\t*\n");
printf(" *\t\t(0)退出学生系统\t\t\t\t*\n");
printf(" *\t\t\t\t\t 作者:liu\t*\n");
printf(" *****************************************************\n");
} void findfunction()
{
system("cls");
system("date /t");
system("TIME /t\n");
printf(" ***************查询学生信息(当前有%d人)*****************\n", count);
printf(" *\t\t(1)通过学生学号查询 \t\t\t*\n");
printf("\n");
printf(" *\t\t(2)通过学生姓名查询 \t\t\t*\n");
printf("\n");
printf(" *\t\t(3)通过学生年龄查询 \t\t\t*\n");
printf("\n");
printf(" *\t\t(4)通过学生分数查询 \t\t\t*\n");
printf(" *********************************************************\n");
} void Morefunction()
{
system("cls");
printf(" *******************附加功能*****************\n");
printf("\t\t\t*\t\t\t\t\t *\n");
printf(" *\t\t(1)按学号进行整理 \t *\n");
printf("\t\t\t*\t\t\t\t\t *\n");
printf(" *\t\t(2)按总分进行整理 \t *\n");
printf("\t\t\t*\t\t\t\t\t *\n");
color();
printf("\t\t\t*待开发... ... *\n");
color();
printf("\t\t\t********************************************\n");
} void inputmomo(int i)
{
printf("请输入学生的学号:");
scanf("%s", &add1[i].SID);
checkSID(i);
checkSID_1(i);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
printf("请输入学生的名字:");
scanf("%s", &add1[i].Name);
checkName(i, add1[i].Name);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
printf("请输入学生的年龄:");
scanf("%s", &add1[i].Age);
checkAge(i);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
printf("请输入学生的性别:");
scanf("%s", &add1[i].Gender);
checkGender(i, add1[i].Gender);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
printf("请输入学生的总成绩:");
scanf("%s", &add1[i].EntranxeScore);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
} void function_1()//添加学生信息函数
{
int n, i, m = count;
if ((fp = fopen("D:\\studyinfor.txt", "ab+")) == NULL)//检测文本是否正常打开
{
color();
printf("Can't open the file!");
color();
system("pause");
exit();
}
printf("请输入您要添加的学生信息人数:");
scanf("%d", &n); for (i = count; i<n + m; i++)
{
printf("请输入No.%d的信息.\n", i + );
inputmomo(i - m);//录入学生信息
count++;
}
fwrite(add1, sizeof(struct add), n, fp);
rewind(fp);
color();
printf("添加中");
Sleep();
printf(".");
Sleep();
printf(".");
Sleep();
printf(". ");
Sleep();
printf(".");
Sleep();
printf(".");
Sleep();
printf(".\n");
color();
printf("添加成功!\n");
printf("学生信息目录已更新.\n");
fread(add1, sizeof(struct add), count, fp);//读取学生信息
color();
printf("___________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (i = ; i<count; i++)//打印更新的学生信息
{
if (add1[i].SID>)
printf(" %-3s %-3s %-6s %-3s \t %-6s \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
}
printf("|-------------------------------------------------|\n");
fclose(fp);
printf("按任意键返回主菜单... ....\n");
system("pause");
} void function_2()//删除学生信息
{
int m, k, i, j = , num_int;
if ((fp = fopen("D:\\studyinfor.txt", "wb+")) == NULL)
{
printf("Can't open the file!\n");
system("pause");
exit();
}
if (count == )
{
color();
printf("The file is NULL!!!\n");
color();
return;
}
printf("请输入你要删除的学生的学号:");
scanf("%d", &m);
fread(add1, sizeof(struct add), count, fp);
for (k = ; k<count; k++)
{
num_int = atoi(add1[k].SID);
if (num_int == m)
{
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
printf(" %.2d %-6s %-3d %-3s \t%5.2lf \n", add1[k].SID, add1[k].Name, add1[k].Age, add1[k].Gender, add1[k].EntranxeScore);
printf("|---------------------------------------------------|\n");
for (i = k; i<count - ; i++)//将要删除的数后面的函数往前进一格,占去要删除的部分
{
strcpy(add1[i].SID, add1[i + ].SID);
strcpy(add1[i].Name, add1[i + ].Name);
strcpy(add1[i].Age, add1[i + ].Age);
strcpy(add1[i].Gender, add1[i + ].Gender);
strcpy(add1[i].EntranxeScore, add1[i + ].EntranxeScore);
}
count--;
fwrite(add1, sizeof(struct add), count, fp);
rewind(fp);//使指针回到开头
fclose(fp);
color();
printf("删除中");
Sleep();
printf(".");
Sleep();
printf(".");
Sleep();
printf(". ");
Sleep();
printf(".");
Sleep();
printf(".");
Sleep();
printf(".\n");
Sleep();
color();
printf("删除成功!按任意键继续... ...\n");
color();
j++;
}
}
if (j == )
{
color();
printf("查无此人!\n");
color();
}
system("pause");
} void function_3()//更改学生信息
{
int m, k, j = , num_int;
if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
{
printf("Can't open the file!\n");
system("PAUSE");
exit();
}
if (count == )
{
color();
printf("The file is NULL!!!\n");
color();
return;
}
printf("请输入你要更改的学生的学号:");
scanf("%d", &m);
fread(add1, sizeof(struct add), count, fp);
for (k = ; k<count; k++)
{
num_int = atoi(add1[k].SID);
if (num_int == m)
{
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
printf(" %-6s %-6s %-3s %-3s \t %-6s \n", add1[k].SID, add1[k].Name, add1[k].Age, add1[k].Gender, add1[k].EntranxeScore);
printf("|---------------------------------------------------|\n");
printf("请输入你要修改的内容:\n");
inputmomo(k);
rewind(fp);
fwrite(add1, sizeof(struct add), count, fp);
//rewind(fp);
fclose(fp);
color();
printf("更改成功!按任意键继续... ...\n");
color();
j++;
}
}
if (j == )
{
color();
printf("查无此人!\n");
color();
}
system("pause");
} void function_4()//查询学生信息
{
int m;
findfunction();//进入查询菜单
printf("请输入你查询的方式序列号:");
scanf("%d", &m);
do {
switch (m)
{
case :findfunction_1(); break;
case :findfunction_2(); break;
case :findfunction_3(); break;
case :findfunction_4(); break;
}
} while (m< || m>);
} void function_5()//显示所有学生信息
{
int i;
if ((fp = fopen("D:\\studyinfor.txt", "rb")) == NULL)
{
printf("Can't open the file!\n");
system("PAUSE");
exit();
}
fread(add1, sizeof(struct add), count, fp);
if (count == )
{
color();
printf("The file is NULL!\n");
color();
system("pause");
return;
}
else {
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (i = ; i<count; i++)
{
if (add1[i].SID != '\0')
printf(" %-3s %-6s %-3s %-3s \t %-6s \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
}
printf("|---------------------------------------------------|\n");
}
fclose(fp);
printf("按任意键返回主菜单... ...\n");
system("pause");
} void function_6()//附加功能选项
{
Morefunction();//附加功能
int k;
do {
printf("请输入你要操作的序号:");
scanf("%d", &k);
switch (k)
{
case :wuyu_1(); break;
case :wuyu_2(); break;
default:
{
color();
printf("输入有误,请重新输入!\n");
color();
}
}
} while (k < || k>);
} void findfunction_1()//学生学号查询
{
int m, n, i, j = , num_int;
printf("请输入你要搜索的学生学号范围:\n");
printf("最小值:");
scanf("%d", &m);
printf("最大值:");
scanf("%d", &n);
fp = fopen("D:\\studyinfor.txt", "rb+");
fread(add1, sizeof(struct add), count, fp);
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (i = ; i<count; i++)
{
num_int = atoi(add1[i].SID);
if (num_int >= m && num_int <= n)
{
printf(" %-3s %-6s %-3s %-3s \t %-3s \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
printf("|---------------------------------------------------|\n");
j++;
}
}
if (j == )
{
printf("无相关学生信息.\n");
}
printf("按任意键返回主菜单... ...\n");
system("pause");
} void findfunction_2()//学生姓名查询
{
int i, n = ;
char name[];
getName(name);//输入学生姓名
rewind(fp);
fp = fopen("D:\\studyinfor.txt", "rb+");
fread(add1, sizeof(struct add), count, fp);
for (i = ; i<count; i++)
{
if (strcmp(add1[i].Name, name) == ) {
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
printf(" %-3s %-6s %-3s %-3s \t %-6s \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
printf("|---------------------------------------------------|\n");
++n;
break;
}
}
if (n == )
{
color();
printf("无相关学生信息!\n");
color();
}
printf("按任意键返回主菜单... ...\n");
system("pause");
} void findfunction_3()//学生年龄查询
{
int m, n, i, j = , num_int;
printf("请输入你要查询的学生年龄范围:\n");
printf("最小值:");
scanf("%d", &m);
printf("最大值:");
scanf("%d", &n);
fp = fopen("D:\\studyinfor.txt", "rb+");
fread(add1, sizeof(struct add), count, fp);
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (i = ; i<count; i++)
{
num_int = atoi(add1[i].Age);
if (num_int >= m && num_int <= n)
{
printf(" %-3s %-6s %-3s %-3s \t %-6s \n", add1[i - ].SID, add1[i - ].Name, add1[i - ].Age, add1[i - ].Gender, add1[i - ].EntranxeScore);
printf("|---------------------------------------------------|\n");
j++;
}
}
if (j == )
{
printf("无相关学生信息!\n");
}
printf("按任意键返回主菜单... ...\n");
system("pause");
} void findfunction_4()//学生分数查询
{
int m, n, i, j = ;
double num_double;
printf("请输入你要查询的学生总成绩范围:\n");
printf("最小值:");
scanf("%d", &m);
printf("最大值:");
scanf("%d", &n);
fp = fopen("D:\\studyinfor.txt", "rb+");
fread(add1, sizeof(struct add), count, fp);
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (i = ; i<count; i++)
{
num_double = atof(add1[i].EntranxeScore);
if (num_double >= m && num_double <= n)
{
printf(" %-3s %-6s %-3s %-3s \t %-6s \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
printf("|---------------------------------------------------|\n");
j++;
}
}
if (j == )
{
printf("无相关学生信息!\n");
}
printf("按任意键返回主菜单... ...\n");
system("pause");
} void ExchangeFunction(int m, int n)//交换数据结构中两个统一结构的不同下标的结构值
{
double max = ;
int max_1 = ;
strcpy(student.EntranxeScore, add1[m].EntranxeScore);
strcpy(add1[m].EntranxeScore, add1[n].EntranxeScore);
strcpy(add1[n].EntranxeScore, student.EntranxeScore);
strcpy(student.Age, add1[m].Age);
strcpy(add1[m].Age, add1[n].Age);
strcpy(add1[n].Age, student.Age);
strcpy(student.SID, add1[m].SID);
strcpy(add1[m].SID, add1[n].SID);
strcpy(add1[n].SID, student.SID);
strcpy(student.Gender, add1[m].Gender);
strcpy(add1[m].Gender, add1[n].Gender);
strcpy(add1[n].Gender, student.Gender);
strcpy(student.Name, add1[m].Name);
strcpy(add1[m].Name, add1[n].Name);
strcpy(add1[n].Name, student.Name);
} void wuyu_1()//按学号查询
{
if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
{
printf("Can't open the file!\n");
system("PAUSE");
exit();
}
int m, n, j, num_int, num1_int;
for (m = ; m < count - ; m++)//比较学号大小
{
for (n = m + ; n < count; n++)
{
num_int = atoi(add1[n].SID);
num1_int = atoi(add1[m].SID);
if (num_int < num1_int)
{
ExchangeFunction(m, n);//交换一个结构体整体值
}
}
}
color();
printf("排序中");
Sleep();
printf("(");
Sleep();
printf(";");
Sleep();
printf("—");
Sleep();
printf("_");
Sleep();
printf("—");
Sleep();
printf(")\n");
Sleep();
color();
printf("排序成功!按任意键继续... ...\n");
color();
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (j = ; j<count; j++)
{
printf(" %-3s %-6s %-3s %-3s \t %-6s \n", add1[j].SID, add1[j].Name, add1[j].Age, add1[j].Gender, add1[j].EntranxeScore);
printf("|---------------------------------------------------|\n");
}
rewind(fp);
fwrite(add1, sizeof(struct add), count, fp);
fclose(fp);
system("pause");
} void wuyu_2()//按总分排序
{
if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
{
printf("Can't open the file!\n");
system("PAUSE");
exit();
}
int m, n, j;
double num_double, num1_double;
for (m = ; m < count - ; m++)//比较总分大小
{
for (n = m + ; n < count; n++)
{
num_double = atof(add1[n].EntranxeScore);
num1_double = atof(add1[m].EntranxeScore);
if (num_double > num1_double)
{
ExchangeFunction(m, n);//交换两个结构体整体值
}
}
}
color();
printf("排序中");
Sleep();
printf("(");
Sleep();
printf("*");
Sleep();
printf("— ");
Sleep();
printf("з");
Sleep();
printf("—");
Sleep();
printf(")\n");
Sleep();
color();
printf("排序成功!按任意键继续... ...\n");
color();
printf("_____________________________________________________\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | 总分成绩 |\n");
for (j = ; j<count; j++)
{
printf(" %-3s %-6s %-3s %-3s \t %-6s \n", add1[j].SID, add1[j].Name, add1[j].Age, add1[j].Gender, add1[j].EntranxeScore);
printf("|---------------------------------------------------|\n");
}
rewind(fp);
fwrite(add1, sizeof(struct add), count, fp);
fclose(fp);
system("pause");
} void add_txt()
{
int i;
for (i = ; i<; i++)
{
strcpy(add1[i].ch, "\r\n");
strcpy(add1[i].ch1, "\r\n");
strcpy(add1[i].ch2, "\r\n");
strcpy(add1[i].ch3, "\r\n");
strcpy(add1[i].ch4, "\r\n");
strcpy(add1[i].ch5, "\r\n");
strcpy(add1[i].a, "SID:");
strcpy(add1[i].b, "Name:");
strcpy(add1[i].c, "Age:");
strcpy(add1[i].d, "Gender:");
strcpy(add1[i].e, "EntranxeScore:");
}
}

C语言学生管理系统(增进版)的更多相关文章

  1. C语言学生管理系统完善版

    #include<stdio.h>#include<string.h>#include <stdlib.h>#define M 100struct score    ...

  2. 模拟斗地主和学生管理系统 IO 版

    1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...

  3. C语言学生管理系统

    想练习一下链表,所以就有了这个用C写的学生管理系统 没有把它写入文件,才不是因为我懒哈哈哈,主要是为了练习链表的 #include<stdio.h> #include<stdlib. ...

  4. C语言学生管理系统(C语言课程设计/精简版)

    #include<stdio.h>#include<stdlib.h>#include<windows.h>#include<conio.h>typed ...

  5. C语言学生管理系统(原版本)(自编)

    /*系统特色:(大牛勿笑) *颜色提示 *文字提示 *功能 */ #include <stdio.h> #include <stdlib.h> #include <mat ...

  6. C语言学生管理系统源码分享

    大家好 我就是如假包换的...陈玲 自从运营了C语言程序设计微信公众号 很多粉丝都给我备注 ...奇葩 实在是不敢当 也被人开始叫玲玲姐 我知道 很多人都想看我出境 我本人也有 年多的舞台演讲训练 实 ...

  7. Java小例子(学习整理)-----学生管理系统-控制台版

    1.功能介绍: 首先,这个小案例没有使用数据库,用集合的形式暂时保存数据,做测试! 功能: 增加学生信息 删除学生信息 修改学生信息 查询学生信息:  按照学号(精确查询)  按照姓名(模糊查询) 打 ...

  8. Java 简化版学生管理系统(IO版)

    Student management system   学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...

  9. python开发的学生管理系统

    python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...

随机推荐

  1. php RAS加密类代码

    通过openssl实现的签名.验签.非对称加解密,需要配合x.509证书(如crt和pem)文件使用. <?php /** * RSA算法类 * 签名及密文编码:base64字符串/十六进制字符 ...

  2. 简介CentOS与 Ubuntu的不同

    1.关于登录用户 centos可以使用root登录  ubuntu不能使用root登录 centos普通用户默认不能通过sudo取得root权限执行命令, ubuntu可以,centos需要sudo时 ...

  3. Nginx的反向代理与负载均衡

    1.1 集群是什么 简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服器.这些服务器之间可 ...

  4. Opticks依赖库的下载和编译

    最近下载Opticks的代码编译,用其自带的retrieve-dependencies.bat下载依赖库,总是提示缺少模块. 分析了一下错误原因,根据命令窗的提示,手动下载如下配置文件: https: ...

  5. 剑指Offer_6_从尾到头打印链表

    题目描述        输入应该链表的头节点 , 从尾到头反过来打印出每个节点的值.链表定义如下 : typedef struct ListNode { int m_nKey ; ListNode * ...

  6. MySql的隔离级别和锁的关系

    一.事务的4个基本特征  Atomic(原子性):  事务中包括的操作被看做一个逻辑单元.这个逻辑单元中的操作要  么所有成功.要么所有失败. Consistency(一致性):  仅仅有合法的数据能 ...

  7. 翻译:CREATE DATABASE语句

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  8. 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

    一.MYSQL储存过程简介(技术文): 储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时 ...

  9. Caused by: java.net.SocketException: Broken pipe

    异常信息 时间:2017-03-24 17:22:16,719 - 级别:[ WARN] - 消息: [other] The web application [ROOT] appears to hav ...

  10. 文件系统常用命令df、du、fsck、dumpe2fs

    df 查看文件系统 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda5 16558080 1337676 15220404 9% / de ...