/*系统特色:(大牛勿笑)
  *颜色提示
  *文字提示
  *功能
*/ #include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <windows.h>
#include <conio.h> FILE *fp;//定义文件指针 int count;//这个count在这个系统中起到了莫大的作用,比较参参数,规定参数范围等 struct add
{
int SID;
char Name[];
int Age;
char Gender[];
double EntranxeScore;
}add1[], student, *pointer;//定义结构体,最大不得超过750.但我对下面的动态分配还是不清楚
//add1 = (char*)malloc(sizeof(struct add)*100);
void color(const unsigned short color1)
{
if (color1 >= && color1 <= )
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);
else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), );
}//定义一个表示颜色(0~15),当然我们也可以直接用system那种形式 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();//通过学生分数查询函数 int main(void)
{
int num_1, k;
fp = fopen("D:\\studyinfor.txt", "rb+");//打开文本/创建,进行操作
fread(add1, sizeof(struct add), , fp);//读取文本储存信息
for (k = ; k<; k++)//判断文本中储存人数(Age==0表示此处无数据)
{
if (add1[k].Age == )
{
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)//检查学号大小函数
{
while (add1[j].SID <= || add1[j].SID>)
{
color();
printf("warning:SID的取值范围在0~750,请重新输入.\n");
color();
printf("请输入学生的学号:");
scanf("%d", &add1[j].SID);
if (add1[j].SID > && add1[j].SID <= )
{
break;//符合要求就结束循环
}
}
} void checkSID_1(int m)//检查学号是否重复函数
{
int k;
for (k = ; k < count; k++)
{
while (add1[k].SID == m)
{
color();
printf("学号重复,请重新输入.\n");//这里不知道为什么不能检查第一个是否与输入的重复
color();
printf("请输入学号:");
scanf("%d", &m);
}
}
}
//因为选择输入的方式是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 checkAge(int m)//检查年龄函数
{
while (add1[m].Age< || add1[m].Age>)
{
color();
printf("warning:Age的取值范围在0~122,请重新输入,严肃对待!\n");
color();
printf("请输入学生的年龄:");
scanf("%d", &add1[m].Age);
}
} void checkGender(int i, char a[])//检查性别函数
{
while (strcmp(a, "男") && strcmp(a, "女"))
{
color();
printf("warning:Gender只能是男或女,请重新输入.\n");
color();
printf("请输入学生的性别:");
scanf("%s", &add1[i].Gender);
}
} checkEntranxeScore(int k)
{
while (add1[k].EntranxeScore< || add1[k].EntranxeScore>)
{
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("Time : %s\n", __TIME__);
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("%d", &add1[i].SID);
checkSID(i);
checkSID_1(add1[i].SID);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
printf("请输入学生的名字:");
scanf("%s", &add1[i].Name);
checkName(i, add1[i].Name);
color();
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
color();
printf("请输入学生的年龄:");
scanf("%d", &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("%lf", &add1[i].EntranxeScore);
checkEntranxeScore(i);
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(" %.2d %-6s %-3d %-3s \t %5.2lf \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 = ;
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++)
{
if (add1[k].SID == 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++)//将要删除的数后面的函数往前进一格,占去要删除的部分
{
add1[i].SID = add1[i + ].SID;
strcpy(add1[i].Name, add1[i + ].Name);
add1[i].Age = add1[i + ].Age;
strcpy(add1[i].Gender, add1[i + ].Gender);
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 = ;
if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
{
printf("Can't open the file!\n");
getch();
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++)
{
if (add1[k].SID == 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");
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);
switch (m)
{
case :findfunction_1(); break;
case :findfunction_2(); break;
case :findfunction_3(); break;
case :findfunction_4(); break;
}
} void function_5()//显示所有学生信息
{
int i;
if ((fp = fopen("D:\\studyinfor.txt", "rb")) == NULL)
{
printf("Can't open the file!\n");
getch();
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 != )
printf(" %.2d %-6s %-3d %-3s \t %5.2lf \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 = ;
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++)
{
if (add1[i].SID >= m && add1[i].SID <= n)
{
printf(" %.2d %-6s %-3d %-3s \t %5.2lf \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(" %.2d %-6s %-3d %-3s \t %5.2lf \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 = ;
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++)
{
if (add1[i].Age >= m && add1[i].Age <= n)
{
printf(" %.2d %-6s %-3d %-3s \t %5.2lf \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 = ;
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++)
{
if (add1[i].EntranxeScore >= m && add1[i].EntranxeScore <= n)
{
printf(" %.2d %-6s %-3d %-3s \t %5.2lf \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 = ;
max = add1[m].EntranxeScore;
add1[m].EntranxeScore = add1[n].EntranxeScore;
add1[n].EntranxeScore = max;
max_1 = add1[m].Age;
add1[m].Age = add1[n].Age;
add1[n].Age = max_1;
max_1 = add1[m].SID;
add1[m].SID = add1[n].SID;
add1[n].SID = max_1;
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;
for (m = ; m < count - ; m++)//比较学号大小
{
for (n = m + ; n < count; n++)
{
if (add1[n].SID < add1[m].SID)
{
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(" %.2d %-6s %-3d %-3s \t %5.2lf \n", add1[j].SID, add1[j].Name, add1[j].Age, add1[j].Gender, add1[j].EntranxeScore);
printf("|---------------------------------------------------|\n");
}
rewind(fp);
//fread(add1,sizeof(struct add),count,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");
getch();
exit();
}
int m, n, j;
for (m = ; m < count - ; m++)//比较总分大小
{
for (n = m + ; n < count; n++)
{
if (add1[n].EntranxeScore > add1[m].EntranxeScore)
{
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(" %.2d %-6s %-3d %-3s \t %5.2lf \n", add1[j].SID, add1[j].Name, add1[j].Age, add1[j].Gender, add1[j].EntranxeScore);
printf("|---------------------------------------------------|\n");
}
rewind(fp);
//fread(add1,sizeof(struct add),count,fp);加了这句,无法储存,难道会改变内部指针位置?
fwrite(add1, sizeof(struct add), count, fp);
fclose(fp);
system("pause");
}

C语言学生管理系统(原版本)(自编)的更多相关文章

  1. C语言学生管理系统

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

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

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

  3. C语言学生管理系统(增进版)

    在原版上进行改进,主要改进的功能有. 1.利用atof:将字符串转换为浮点型: 利用atoi:将字符串转换为整型: 原文地址:http://www.cnblogs.com/sddai/p/577412 ...

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

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

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

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

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

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

  7. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  8. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

  9. c语言之学生管理系统

    0x00 学生管理系统 说到学生管理系统,对于每一个初学c语言的人都是一道不得不过的砍.不过,学习c,我觉得每个人都应该写一个学生管理系统,至于为什么,我想倘若连一个学生管理系统都写不好,哪么他的c是 ...

随机推荐

  1. linux内核模块编程实例

    linux内核模块编程实例 学号:201400814125 班级:计科141 姓名:刘建伟 1.确定本机虚拟机中的Ubuntu下Linux的版本 通过使用命令uname -a/uname -r/una ...

  2. 进程互斥(锁)------------------>一个坑

    进程互斥锁 引入: 进程之间数据不共享,但是共享同一套文件系统(如硬盘.键盘.cpu等),所以访问同一个文件,或同一个打印终端,是没有问题的,竞争带来的结果就是错乱,如何控制,就是加锁处理,即进程加锁 ...

  3. Scala入门系列(十一):模式匹配

    引言 模式匹配是Scala中非常有特色,非常强大的一种功能. 类似于Java中的switch case语法,但是模式匹配的功能要比它强大得多,switch只能对值进行匹配,但是Scala的模式匹配除了 ...

  4. System.getProperty()方法获取系统变量

    来自我的CSDN博客   今天在阅读JDBC的DriverManager类源码时,看到了这么一句代码: System.getProperty("jdbc.drivers"):    ...

  5. Create-React-App创建antd-mobile开发环境(学习中的记录)

    (参考别人结合自己的整理得出,若有错误请大神指出) Facebook 官方推出Create-React-App脚手架,基本可以零配置搭建基于webpack的React开发环境,内置了热更新等功能. 详 ...

  6. 哈希表(散列)HashTable实现

    近期刷Leetcode发现凡是找字符串中反复字符或者数组中找反复数据的时候就不知道从何下手了. 所以决定学习一下哈希表解题.哈希表的原理主要是解决分类问题,hash表是介于链表和二叉树之间的一种中间结 ...

  7. jsp内置对象 的使用范围和类型【说明】

    jsp内置对象 jsp内置对象有以下9种,我们会在后面的章节中分别介绍他们.这9种对象例如以下: 名称 类型 使用范围 request javax.servlet.http.HttpServletRe ...

  8. 【swift-总结】函数

    swift的函数在swift2中的使用改变了不少 /** *param: personName 參数 *returns: String为返回值 */ func sayHello(personName: ...

  9. 趋势科技PC-cillin2015,你来公測我发奖!

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXF1c2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  10. MS OFFICE WORD 绝招

    以MS OFFICE WORD 2010为例. 1.WORD 文件夹连接线(标准称呼:前导符)为什么有的稀,有的密? 答案:文件夹格式字体不同. 2.首页.文件夹页.正文有的要页眉,有的不要,首页不要 ...