From eaa1811ce777ebde7c7c2842ca9fc17f0948a65e Mon Sep 17 00:00:00 2001 From: smallkun Date: Tue, 25 Mar 2025 19:00:16 +0800 Subject: [PATCH 1/7] Auto commit --- 最后一舞/C语言基础进阶合集版编程题.md | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/最后一舞/C语言基础进阶合集版编程题.md b/最后一舞/C语言基础进阶合集版编程题.md index d2c7f96..e779034 100644 --- a/最后一舞/C语言基础进阶合集版编程题.md +++ b/最后一舞/C语言基础进阶合集版编程题.md @@ -112,6 +112,53 @@ int main(){ 输出样例:1 0 2 0 3 5 6 8 ``` + ```c + #include + void change(int a[], int n){ + int i, j, t, index=0; + + for(i=1;i a[i]){//i当前遍历的元素下标 如果当前下标值小于中间值则进入 + index++;//存储位置后移 + t = a[i];//备份当前位置的值 + j = i;//将当前位置的下标存储 + while(j > index){//如果当前遍历位置下标大于存储位置下标则元素整体后移 + a[j] = a[j-1]; + j--; + } + a[index] = t;//元素整体后移后再赋值操作 + } + } + for(i=0;i a[i+1]){ + t = a[i]; + a[i] = a[i+1]; + a[i+1] = t; + } + } + } + + int main(){ + int len, i; + int a[100]; + + scanf("%d", &len); + for(i=0;i Date: Wed, 26 Mar 2025 08:47:15 +0800 Subject: [PATCH 2/7] Auto commit --- 2208/存储函数练习题.md | 5 +++++ 最后一舞/存储函数练习题.md | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/2208/存储函数练习题.md b/2208/存储函数练习题.md index f4ce487..fa0d984 100644 --- a/2208/存储函数练习题.md +++ b/2208/存储函数练习题.md @@ -115,6 +115,11 @@ INSERT INTO employee (emp_name, salary, hire_date, dept_id, job_id) VALUES 创建一个存储函数 `calculate_annual_salary`,接受员工的月薪作为参数,返回其年薪(假设年薪为月薪的 12 倍)。 +```c +``` + + + #### 练习题 2: 计算员工工龄 创建一个存储函数 `calculate_years_of_service`,接受员工的入职日期作为参数,返回该员工的工龄(以年为单位)。 diff --git a/最后一舞/存储函数练习题.md b/最后一舞/存储函数练习题.md index c7ddeda..7fc2704 100644 --- a/最后一舞/存储函数练习题.md +++ b/最后一舞/存储函数练习题.md @@ -177,10 +177,46 @@ SELECT calculate_avg_salary_by_dept(1); 创建一个存储函数 `calculate_avg_salary_by_job`,接受职位 ID 作为参数,返回该职位的平均工资。 +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS calculate_avg_salary_by_job; +CREATE FUNCTION calculate_avg_salary_by_job(job_id INT) +RETURNS INT +DETERMINISTIC +BEGIN + RETURN ( + SELECT AVG(e.salary) + FROM employee e + WHERE e.job_id = job_id + ); +END $$ +DELIMITER ; + +SELECT calculate_avg_salary_by_job(1); +``` + + + #### 练习题 5: 计算员工税后工资 创建一个存储函数 `calculate_net_salary`,接受员工的工资作为参数,返回其税后工资(假设税率为 15%)。 +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS calculate_net_salary; +CREATE FUNCTION calculate_net_salary(sal DECIMAL(10, 2)) +RETURNS DECIMAL(10, 2) +DETERMINISTIC +BEGIN + RETURN sal*0.85; +END $$ +DELIMITER ; + +SELECT calculate_net_salary(3000); +``` + + + #### 练习题 6: 判断员工是否满足加薪条件 创建一个存储函数 `is_eligible_for_raise`,接受员工的工资和工龄作为参数,返回一个布尔值(1 或 0)。加薪条件如下: From be5497370f9b22d2815bb2c0eceb5a7a036f0d9f Mon Sep 17 00:00:00 2001 From: smallkun Date: Wed, 26 Mar 2025 08:50:26 +0800 Subject: [PATCH 3/7] Auto commit --- 最后一舞/存储函数练习题.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/最后一舞/存储函数练习题.md b/最后一舞/存储函数练习题.md index 7fc2704..7ce5f64 100644 --- a/最后一舞/存储函数练习题.md +++ b/最后一舞/存储函数练习题.md @@ -224,6 +224,26 @@ SELECT calculate_net_salary(3000); - 如果工资低于 60000 且工龄大于等于 3 年,返回 1(满足条件)。 - 否则返回 0(不满足条件)。 +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS is_eligible_for_raise; +CREATE FUNCTION is_eligible_for_raise(sal DECIMAL(10, 2), work_age INT) +RETURNS INT +DETERMINISTIC +BEGIN + IF sal < 60000 AND work_age >= 3 THEN + RETURN 1; + ELSE + RETURN 0; + END IF; +END $$ +DELIMITER ; + +SELECT is_eligible_for_raise(3000, 1); +``` + + + #### 练习题 7: 计算部门总工资 创建一个存储函数 `calculate_total_salary_by_dept`,接受部门 ID 作为参数,返回该部门所有员工的总工资。 From 932fcc500cee8a03f83a337eb7038287e7b6ad36 Mon Sep 17 00:00:00 2001 From: smallkun Date: Wed, 26 Mar 2025 09:07:14 +0800 Subject: [PATCH 4/7] Auto commit --- 最后一舞/存储函数练习题.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/最后一舞/存储函数练习题.md b/最后一舞/存储函数练习题.md index 7ce5f64..d140181 100644 --- a/最后一舞/存储函数练习题.md +++ b/最后一舞/存储函数练习题.md @@ -248,6 +248,26 @@ SELECT is_eligible_for_raise(3000, 1); 创建一个存储函数 `calculate_total_salary_by_dept`,接受部门 ID 作为参数,返回该部门所有员工的总工资。 +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS calculate_total_salary_by_dept; +CREATE FUNCTION calculate_total_salary_by_dept(dept_id INT) +RETURNS INT +DETERMINISTIC +BEGIN + RETURN ( + SELECT SUM(e.salary) + FROM employee e + WHERE e.dept_id = dept_id + ); +END $$ +DELIMITER ; + +SELECT calculate_total_salary_by_dept(1); +``` + + + #### 练习题 8: 计算职位总工资 创建一个存储函数 `calculate_total_salary_by_job`,接受职位 ID 作为参数,返回该职位所有员工的总工资。 From 0ed3a59e2c1b29c4dd23b88f9c88145ce80136e0 Mon Sep 17 00:00:00 2001 From: smallkun Date: Wed, 26 Mar 2025 09:14:45 +0800 Subject: [PATCH 5/7] Auto commit --- 最后一舞/存储函数练习题.md | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/最后一舞/存储函数练习题.md b/最后一舞/存储函数练习题.md index d140181..8479fad 100644 --- a/最后一舞/存储函数练习题.md +++ b/最后一舞/存储函数练习题.md @@ -157,17 +157,18 @@ SELECT calculate_years_of_service('2023-12-31'); ```sql DELIMITER $$ DROP FUNCTION IF EXISTS calculate_avg_salary_by_dept; -CREATE FUNCTION calculate_avg_salary_by_dept(deptId INT) +CREATE FUNCTION calculate_avg_salary_by_dept(dept_id INT) RETURNS DECIMAL(10,2) DETERMINISTIC BEGIN RETURN ( - SELECT AVG(salary) + SELECT AVG(e.salary) FROM employee e - WHERE e.dept_id = deptId + WHERE e.dept_id = dept_id ); END $$ DELIMITER ; + SELECT calculate_avg_salary_by_dept(1); ``` @@ -181,7 +182,7 @@ SELECT calculate_avg_salary_by_dept(1); DELIMITER $$ DROP FUNCTION IF EXISTS calculate_avg_salary_by_job; CREATE FUNCTION calculate_avg_salary_by_job(job_id INT) -RETURNS INT +RETURNS DECIMAL(10,2) DETERMINISTIC BEGIN RETURN ( @@ -252,7 +253,7 @@ SELECT is_eligible_for_raise(3000, 1); DELIMITER $$ DROP FUNCTION IF EXISTS calculate_total_salary_by_dept; CREATE FUNCTION calculate_total_salary_by_dept(dept_id INT) -RETURNS INT +RETURNS DECIMAL(10,2) DETERMINISTIC BEGIN RETURN ( @@ -272,6 +273,26 @@ SELECT calculate_total_salary_by_dept(1); 创建一个存储函数 `calculate_total_salary_by_job`,接受职位 ID 作为参数,返回该职位所有员工的总工资。 +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS calculate_total_salary_by_job; +CREATE FUNCTION calculate_total_salary_by_job(job_id INT) +RETURNS DECIMAL(10,2) +DETERMINISTIC +BEGIN + RETURN ( + SELECT SUM(e.salary) + FROM employee e + WHERE e.job_id = job_id + ); +END $$ +DELIMITER ; + +SELECT calculate_total_salary_by_job(1); +``` + + + #### 练习题 9: 判断员工是否属于高薪部门 创建一个存储函数 `is_high_salary_department`,接受部门 ID 作为参数,返回一个布尔值(1 或 0)。如果该部门的平均工资大于等于 70000,返回 1(高薪部门),否则返回 0(非高薪部门)。 From 947c7e78d2a3d1faf6b59ad83b355713be4344f2 Mon Sep 17 00:00:00 2001 From: smallkun Date: Wed, 26 Mar 2025 09:17:09 +0800 Subject: [PATCH 6/7] Auto commit --- 最后一舞/存储函数练习题.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/最后一舞/存储函数练习题.md b/最后一舞/存储函数练习题.md index 8479fad..048d055 100644 --- a/最后一舞/存储函数练习题.md +++ b/最后一舞/存储函数练习题.md @@ -297,6 +297,30 @@ SELECT calculate_total_salary_by_job(1); 创建一个存储函数 `is_high_salary_department`,接受部门 ID 作为参数,返回一个布尔值(1 或 0)。如果该部门的平均工资大于等于 70000,返回 1(高薪部门),否则返回 0(非高薪部门)。 +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS is_high_salary_department; +CREATE FUNCTION is_high_salary_department(dept_id INT) +RETURNS INT +DETERMINISTIC +BEGIN + IF( + SELECT AVG(e.salary) + FROM employee e + WHERE e.dept_id = dept_id + ) > 70000 THEN + RETURN 1; + ELSE + RETURN 0; + END IF; +END $$ +DELIMITER ; + +SELECT is_high_salary_department(1); +``` + + + #### 练习题 10: 计算员工的总收入 创建一个存储函数 `calculate_total_income`,接受员工的工资和奖金(假设奖金为工资的 10%)作为参数,返回其总收入(工资 + 奖金)。 \ No newline at end of file From cc59f1a38bed2a99bf27b0bd09c52163bcb5631b Mon Sep 17 00:00:00 2001 From: smallkun Date: Wed, 26 Mar 2025 09:18:31 +0800 Subject: [PATCH 7/7] Auto commit --- 最后一舞/存储函数练习题.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/最后一舞/存储函数练习题.md b/最后一舞/存储函数练习题.md index 048d055..a06d896 100644 --- a/最后一舞/存储函数练习题.md +++ b/最后一舞/存储函数练习题.md @@ -323,4 +323,19 @@ SELECT is_high_salary_department(1); #### 练习题 10: 计算员工的总收入 -创建一个存储函数 `calculate_total_income`,接受员工的工资和奖金(假设奖金为工资的 10%)作为参数,返回其总收入(工资 + 奖金)。 \ No newline at end of file +创建一个存储函数 `calculate_total_income`,接受员工的工资和奖金(假设奖金为工资的 10%)作为参数,返回其总收入(工资 + 奖金)。 + +```sql +DELIMITER $$ +DROP FUNCTION IF EXISTS calculate_total_income; +CREATE FUNCTION calculate_total_income(sal DECIMAL(10, 2)) +RETURNS DECIMAL(10, 2) +DETERMINISTIC +BEGIN + RETURN sal*1.2; +END $$ +DELIMITER ; + +SELECT calculate_total_income(3000); +``` +