交大SQLSERVER2005实用数据库上机作业(2)
实用数据库上机作业
建立二张数据表,一张是员工信息表(Employee),一张是部门信息表(Department)。
Employee包括:员工编号(EmployeeId, int、员工姓名(EmployeeName, varchar(20))、雇佣时间(HireDate, smalldatetime)、基本工资(BaseWage, money)、部门编号(DepartmentId, char(3)
Department包括:部门编号(DepartmentId, char(3)、部门名称(DepartmentName, varchar(20))、负责人(Principal, varchar(20))、平均工资(AvgWage, money, 允许空)
一. 表的设计(使用SQL语句创建数据库表,具体要求如下)
将Department中的DepartmentId设置主键
将Employee中的EmployeeId设置主键
对Employee中的EmployeeName设置唯一性约束
对Employee中的HireDate设置检查约束,要求输入的日期大于’1980-1-1’
设置两个表的外键联系
二.数据库更新语句
使用Insert语句,定义一条记录并插入到部门信息表中。
对每个部门,求员工基本工资的平均值,并将结果存入到部门信息表中的平均工资字段中。(使用update语句)
从员工信息表中删除员工编号为“10030021”的所有信息。
从员工信息表中删除部门名称为“市场部”的所有员工信息。(使用带子查询的删除语句)
将所有员工的基本工资上涨10%。
将所有属于“市场部”的员工的基本工资加上100元。(使用带子查询的更新语句)
交大 SQLSERVER2005 实用数据库上机作业(1)
实用数据库上机作业
建立二张数据表,一张是员工信息表(Employee),一张是部门信息表(Department)。
Employee包括:员工编号(EmployeeId, char(6)、员工姓名(EmployeeName, varchar(20))、员工性别(EmployeeSex, nchar(1))、雇佣时间(HireDate, smalldatetime)、基本工资(BaseWage, money)、部门编号(DepartmentId, char(3)等
Department包括:部门编号(DepartmentId, char(3)、部门名称(DepartmentName, varchar(20))、负责人(Principal, varchar(20))等
注:以上表中字段名最好使用英文或拼音。
选取所有部门信息表中的信息,随机返回前3行数据。
查询基本工资介于2000到3000之间的员工姓名,输出结果按照基本工资从低到高排序。
查询员工姓名中有“海”字且雇佣时间晚于2000年1月1日的所有员工的基本工资。
查询各个部门男员工中平均的工资额(使用统计函数Avg)。
查询有多个员工基本工资不低于3000的部门编号。
查询所有员工的姓名,同时列出员工所在部门名称,部门负责人。(使用连接查询)
查询部门负责人为“张三”的所有员工信息。
实现交叉查询的结果如下:
性别 工资大于等于5000元 工资小于5000元
男 人数 人数
女 人数 人数
数据结构C严蔚敏版_全注释源码_线性表队列栈监视哨查找折半直接插入排序冒泡快速选择
数据结构及算法C语言版。严蔚敏版。VC6运行通过,这个是源代码CPP文件,包含顺序线性表、单链表的插入、删除、查找。包含监视哨查找,折半查找,直接插入排序,希尔排序,冒泡排序,快速排序,选择排序。里面包含超大量的注释,包括对VC6的语法解释和算法的解释和理解。具体效果可以看 http://download.csdn.net/detail/changechange/8236207 我上次上传的 EXE demo,带输入输出,能与用户交互。在运行的时候会把整个运算的过程都显示出来。摘录代码如下://数据结构 上机第一次 栈应用,转换进制题目。
//请用每一个cpp作为一个项目,不要把多个cpp放到同一个项目中,因为我为每个cpp都定义了main。
//这个教材上没有,只能自己补全了
#include
using namespace std;
//p10
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
//下面这行书上没找到,自己补的。
typedef int SElemType;
//p46书上的。
#define STACK_INIT_SIZE 100 //定义最初申请的内存的大小
#define STACKINCREMENT 10 //每一次申请内存不足的时候扩展的大小
typedef struct
{
SElemType *base; //在栈构造之前和销毁之后,base的值为null
SElemType *top; //栈顶指针
int stacksize; //当前已分配的存储空间,以元素为单位
}SqStack; //定义顺序栈别名。
//构造一个空栈S
Status InitStack(SqStack &S)
{
// 参考之前的 List.cpp中队malloc的解释。
S.base=(SElemType *) malloc(STACK_INIT_SIZE * sizeof (SElemType));
if (!S.base)
exit(OVERFLOW); // 存储分配失败
S.top = S.base; //初始时栈顶等于栈低
S.stacksize = STACK_INIT_SIZE; //初始栈容量
return OK;
} //end of InitStack
//插入元素e为新的栈顶元素
Status Push(SqStack &S, SElemType e)
{
if (S.top - S.base >= S.stacksize) // 栈满,追加存储空间
{
S.base = (SElemType *) realloc(S.base, //原栈底指针
(S.stacksize + STACKINCREMENT) * sizeof (SElemType)); //新大小
if (!S.base)
exit(OVERFLOW); // 存储分配失败
//调整栈顶的位置
S.top = S.base + S.stacksize;
//修改栈大小为新的大小
S.stacksize += STACKINCREMENT;
}
//*符号为求值符。
*S.top++ = e; //先把e压入栈顶,S.top再增1指向栈顶元素e的下一个位置
return OK;
} //end of Push
// 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR
Status Pop(SqStack &S, SElemType &e)
{
if (S.top == S.base) //栈顶=栈底表示空栈,如果空栈,报错
return ERROR;
e = *--S.top; //S.top先减1指向栈顶元素,再取值,赋值给e用于返回。
return OK;
}
//这个书上没有,自己加的
//书上没有,自己写的,用来处理每一个元素的data
Status PrintEach(SElemType e){
cout<<e<<";";
return OK;
}
//从栈底依次对栈中每个元素调用函数visit(),主要用于输出
//关于visit的解释参考 List.cpp
Status StackTraverse(SqStack &S,Status(* visit)(SElemType)){
int l = S.top-S.base;
S.top=S.base; //从栈底开始输出
for(int i=0;i<l;i++) //用长度控制输出的个数
{
(* visit)(*(S.top)++);
}
return OK;
}
// 若栈S为空栈,则返回TRUE,否则返回FALSE
Status StackEmpty(SqStack &S)
{
//栈顶指针S.top是否等于栈底指针S.base是判断栈是否为空的条件
if (S.top == S.base)
return TRUE;
else
return FALSE;
}
//p48 进行进制转换
//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数
void conversion() // 算法3.1
{
SqStack S; //声明顺序栈S
unsigned int N; //unsigned 表示无符号,unsigned int 从0开始,非负整数
SElemType e; //栈元素e
InitStack(S); //构造空栈S
cout<=0)"<<endl;
scanf("%d",&N); //获取用户的输入,%d 是对数据的格式化。 &N 表示对变量 N 引用。
while (N) //只要n不等于0就循环。从n为用户输入的十进制数开始,一直到n等于0为止
{
Push(S, N % 8); //n除以8的余数(8进制的低位)入栈
//先压入的余数是八进制的低位,后压入的余数是八进制的高位
N = N / 8; //令n等于n整除以8的商,进入下轮循环
}
//我自己加的,先输出一遍栈内的内容。
cout<<"从底到顶输出栈内的内容,用于调试:";
StackTraverse(S,PrintEach);
cout<<endl;
//循环结束时,n等于0
while (!StackEmpty(S)) //只要栈S没pop空就不断循环,直到pop出栈底元素栈S为空为止
{
Pop(S, e); //pop出栈顶元素且赋值给e进行返回
//先pop出的是八进制的高位,后pop出的是八进制的低位
printf("%d", e); //依次输出e
}
//循环结束时,栈S为空
cout<<endl;
}
int main()
{
for(int i=0;i<4;++i)
conversion();
return 0;
}
Sandcastle加图形工具加中文模板
自动根据 VS2005 VS2008 的 XML注释生成CHM帮助文档的软件、模板、帮助
包含以下文件:
Sandcastle2.4.10520.zip:命令行界面的Sandcast,界面是英文的。
SandcastleBuilderSetup_1801.zip:第三方开发GUI界面方便编译为chm文件,界面是英文的。
zh-CN_Docs.zip:生成中文 CHM 所需要的模板。
Sandcastle的简单学习总结.doc。
示例.rar:vs .net的项目文件源代码、dll、xml注释文件、SandcastleBuilder的项目文件、最终生成的chm。
GIF动画录像软件
自动录制用户的操作为 GIF 文件,绿色免安装