یک شرکت بسیار بزرگ، اطلاعات کارمندان خود را در یک جدول در یک پایگاه داده MySQL قرار داده است. اطلاعات در یک جدول به نام `auth_user` قرار دارد و نام ستونهای آن ,`uid`,`username`,`first_name`,`last_name` `city`, `salary` میباشد. ستونهای `uid` ، `salary` از نوع `int` و بقیه ستون ها از نوع `varchar` میباشد.
از شما خواسته شده با یک کد SQL کارهای زیر را بر روی پایگاه داده انجام دهید.
# لیست کارها
۱) اطلاعات کارمندان زیر را به پایگاه داده اضافه کنید.
| username | first_name | last_name | city | salary | uid |
|:----------:|:----------:|:---------:|:-------:|:------:|------|
| sajadw3s | sajad | kazemi | esfahan | 5245 | 1001 |
| ahmadnpo | ahmad | mohebi | tehran | 9875 | 1002 |
| kazemsin | kazem | jafari | mashhad | 1254 | 1003 |
۲) جدول را طوری به روز رسانی کنید که کسانی که نامشان (first_name آنها) `Myron` است مقدار حقوق آنها ۱۰۰ واحد اضافه شود.
۳) تمام کارمندانی که نام کاربری (`username`) آنها `atillman` است را حذف کنید.
۴) شماره (`uid`) کارمندانی را بدهید که حقوق آنها بیشتر از تمام کسانی است که نام کاربری آنها با حرف `e` آغاز میشود.
# روش پیادهسازی
در یک فایل `code.sql` کد خود را قرار دهید و آن را فشرده (`zip`) کنید و در سایت بارگذاری نمایید.
کد شما باید به صورت زیر باشد.
```
-- Section1
your first query here
-- Section2
your second query here
-- Section3
your third query here
-- Section4
your fourth query here
```
SQL
برای این سوال شما باید یک کلاس تعریف کنید که لازم نیست هیچ کار خاصی انجام دهد! صرفا بداند که تا کنون چند شی از آن ساخته شده است.
باید یک کلاس با نام `MyClass` تعریف کنید، که یک تابع به نام `get_count` دارد که هر وقت صدا زده می شود، در خروجی تعداد شی هایی که از آن کلاس ساخته شده را بر می گرداند.
برای مثال کد زیر را در نظر بگیرید:
```
\$obj = new MyClass();
\$obj = new MyClass();
\$obj = new MyClass();
echo MyClass::get_count();
```
در صورتی که کلاس `MyClass` به درستی ساخته شده باشد، این کد عدد 3 را در خروجی چاپ می کند.
فایل خود (فایل تعریف کلاس `MyClass`) با نام `submission.php` در یک فایل فشرده شده (zip) قرار دهید و آپلود کنید.
PHP
یک پروژه لاراول خالی در اختیار شما قرار داده شده است:
http://bayanbox.ir/info/8323962390710563027/project
برای اجرای صحیح پروژه در ترمینال و در دایرکتوری پروژه، دستور زیر را اجرا کنید:
`composer update`
در این پروژه تغییراتی ایجاد کنید URI ای به شکل زیر ایجاد شود، که هر عبارتی بعد print آمد را چاپ کند:
`/print/Something`
یعنی خط بالا در صفحه، کلمه Something را چاپ می کند و خط پایین در صفحه کلمه Hello_Quera را چاپ می کند:
`/print/Hello_Quera`
همچنین اگر بعد از `print` عبارت `404` آمده بود، باید یک خطای `404 - Not Found` از طرف پروژه برگردد.
برای ارسال، پوشه vendor را از پروژه حذف کنید و پروژه خود را با ترمینال zip کنید (جهت zip شدن فایل های پنهان مانند .env از ترمینال استفاده کنید. دستور zip) و سپس فایل فشرده شده را ارسال کنید.
Laravel
یک اسکریپت Bash به نام `wordcount.sh` بنویسید که آدرس یک فایل را به همراه یک رشته به عنوان آرگومان دریافت کند و تعداد تکرار رشته دادهشده در آن فایل را بدون توجه به بزرگی و کوچکی حروف، در خروجی استاندارد (stdout) بنویسد.
همچنین در صورتی که فایل دادهشده وجود ندارد، در stderr بنویسد `File not found`.
**نکته:** رشته دادهشده در هرجای متن که باشد شمرده میشود. حتی اگر جزئی از یک کلمه دیگر باشد. مثلاً اگر میخواهیم تعداد تکرار رشته `and` را بشماریم، این رشته را در میان کلمه `standard` نیز به حساب میآوریم.
# نمونه
فایل `sample.txt`:
```
In computer programming, standard streams are preconnected input and
output communication channels between a computer program and its
environment when it begins execution. The three I/O connections are
called standard input (stdin), standard output (stdout) and standard
error (stderr). Originally I/O happened via a physically connected
system console (input via keyboard, output via monitor), but standard
streams abstract this. When a command is executed via an interactive
shell, the streams are typically connected to the text terminal on
which the shell is running, but can be changed with redirection, e.g.
via a pipeline. More generally, a child process will inherit the
standard streams of its parent process.
```
نتیجه اجرای اسکریپت:
```
bash wordcount.sh sample.txt the
5
bash wordcount.sh sample.txt and
10
bash wordcount.sh sample.txt "via a"
3
bash wordcount.sh /nowhere/not-existing-file.txt command
File not found
```
فایل `wordcount.sh` را به صورت یک فایل zip فشرده کنید و به عنوان پاسخ آپلود کنید.
شمارش رشته (لینوکس)
سطح سوال: ساده
گرفته شده از مسابقه آموزشی جاواکاپ (درحال برگزاری در Quera)
در مدرسهی موشها تعدادی کلاس درس داریم که ظرفیت هر کلاس 10 دانشآموز است.
فایل [MiceSchool.zip](https://www.dropbox.com/s/t763qogy3skd0ds/MiceSchool.zip?dl=1) را دانلود کرده و دو کلاس Student و Course را مشاهده کنید. در کلاس Course تعدادی متد با بدنهی خالی وجود دارد که شما باید با توجه به توضیحات زیر آنها را پیادهسازی کنید:
| رفتار | نام متد |
|:------------------:|:------------------:|
| تعداد دانشآموزان ثبتنامکرده در کلاس را برمیگرداند. | `public int getNumOfStudents()` |
| آرایهای شامل دانشآموزان ثبتنامکرده را برمیگرداند. | `public Student[] getStudents()` |
| نام کلاس درس را برمیگرداند. | `public String getName()` |
| با توجه به پارامتر دادهشده، کلاس درس را نامگذاری میکند. | `public void setName(String s)` |
| دانشآموز دادهشده در پارامتر را در کلاس درس ثبتنام میکند. | `public boolean register(Student s)` |
**نکات**
+ با توجه به رفتار متدهای موجود، فیلدهای کلاس Course را خودتان تشخیص داده و به آن اضافه نمایید.
+ هیچیک از فیلدهای کلاس Course نباید از طریق کلاسهای دیگر قابل دسترس باشند.
+ متد register اگر ظرفیت کلاس تکمیل شده باشد، مقدار false و در غیر این صورت مقدار true برمیگرداند.
+ بدیهی است که طول آرایهی بازگشتی از متد getStudents باید به اندازه تعداد دانشآموزانی باشد که ثبتنام کردهاند.
**آنچه باید آپلود کنید:**
یک فایل zip که در آن پوشه src و در آن پوشه main و در آن پوشه java و کد شما به اسم Course.java در این پوشه قرار میگیرد.
```
<Your-zip-name>.zip
└── src
└── main
└── java
└── Course.java
```
جاوا
سطح سوال: ساده
در مدرسهی موشها تعدادی کلاس درس داریم که ظرفیت هر کلاس 10 دانشآموز است.
فایل [MiceSchool.zip](http://bayanbox.ir/download/2033363796285630873/MiceSchool.zip) را دانلود کرده و دو کلاس Student و Course را مشاهده کنید. در کلاس Course تعدادی متد با بدنهی خالی وجود دارد که شما باید با توجه به توضیحات زیر آنها را پیادهسازی کنید:
| رفتار | نام متد |
|:------------------:|:------------------:|
| تعداد دانشآموزان ثبتنامکرده در کلاس را برمیگرداند. (یک عدد صحیح) | `getNumOfStudents()` |
| لیستی شامل دانشآموزان ثبتنامکرده را برمیگرداند. | ` getStudents()` |
| یک رشته شامل نام کلاس درس را برمیگرداند. | `getName()` |
| با توجه به پارامتر دادهشده، کلاس درس را نامگذاری میکند. ورودی آن یک رشته است و هیچ چیز برنمیگرداند. | `setName(s)` |
| دانشآموز دادهشده در پارامتر را در کلاس درس ثبتنام میکند. ورودی این تابع یک شی از نوع Student خواهد بود. | `register(s)` |
\***نکات***
+ با توجه به رفتار متدهای موجود، فیلدهای کلاس Course را خودتان تشخیص داده و به آن اضافه نمایید.
+ متد register اگر ظرفیت کلاس تکمیل شده باشد، مقدار False و در غیر این صورت مقدار True برمیگرداند.
+ بدیهی است که طول لیست بازگشتی از متد getStudents باید به اندازه تعداد دانشآموزانی باشد که ثبتنام کردهاند.
\***آنچه باید آپلود کنید:***
یک فایل zip که فقط شامل فایل course.py است. یعنی وقتی فایل zip را باز میکنیم، فقط فایل course.py را ببینیم.
پایتون
در مدرسهی موشها تعدادی کلاس درس داریم که ظرفیت هر کلاس 10 دانشآموز است.
فایل [MiceSchool.zip](https://www.dropbox.com/s/mc49bnnyafmc072/MiceSchool.zip?dl=1) را دانلود کرده و دو کلاس Student و Course را مشاهده کنید. در کلاس Course تعدادی متد با بدنهی خالی وجود دارد که شما باید با توجه به توضیحات زیر آنها را پیادهسازی کنید:
| رفتار | نام متد |
|:------------------:|:------------------:|
| تعداد دانشآموزان ثبتنامکرده در کلاس را برمیگرداند. | `func getNumberOfStudents() -> Int` |
| آرایهای شامل دانشآموزان ثبتنامکرده را برمیگرداند. | `func getStudents() -> [Student]` |
| نام کلاس درس را برمیگرداند. | `func getName() -> String` |
| با توجه به پارامتر دادهشده، کلاس درس را نامگذاری میکند. | `func setName(_ name: String)` |
| دانشآموز دادهشده در پارامتر را در کلاس درس ثبتنام میکند. | `func register(student: Student) -> Bool` |
**نکات**
+ با توجه به رفتار متدهای موجود، فیلدهای کلاس Course را خودتان تشخیص داده و به آن اضافه نمایید.
+ متد register اگر ظرفیت کلاس تکمیل شده باشد، مقدار false و در غیر این صورت مقدار true برمیگرداند.
+ بدیهی است که طول آرایهی بازگشتی از متد getStudents باید به اندازه تعداد دانشآموزانی باشد که ثبتنام کردهاند.
**آنچه باید آپلود کنید:**
**فایل آپلودی**
یک فایل zip. که درون آن یک فولدر به نام Sources وجود دارد و در آن، فایل Course.swift قرار دارد.
```
<Your-zip-name>.zip
└── Sources
├── Course.swift
└── Student.swift
```
Swift
دانشگاه Stanford به تازگی تصمیم گرفته است که اطلاعات دانشجویان را روی سایت ذخیره کند !!
به این جهت به یکی از برنامه نویسان Django سفارش داده تا بخش Back-end این سایت را پیاده سازی کند.
مسئولین دانشگاه هنگامی که پروژه را تحویل گرفتند متوجه شدند که قسمت **views.py** داخل پوشهی **university** ناقص است و به این دلیل بعضی از درخواست (url) های سایت جواب داده نمیشود.
پوشهی پروژه را از [اینجا](https://www.dropbox.com/s/zwiw3wg0oovp79x/Django.zip?dl=1) دانلود کنید و محتوای فایل **university/views.py** را به گونهای تغییر دهید که ۵ مدل درخواست (url) زیر پاسخ داده شوند.
**دقت کنید که شما فقط باید محتوای فایل views.py واقع در پوشه ی university را تغییر دهید.**
| مدل۱ | URL | response |
|:-----:|:-------------------------------:|:-----------------------------------------------------:|
| ۱. | http://127.0.0.1:8000/students/ | صفحه student_list.html شامل لیست دانشجویان و شماره دانشجویی هر فرد واقع در پوشهی university/templates |
| نمونه: | http://127.0.0.1:8000/students/ | [نمونه html](https://www.dropbox.com/s/oup60zs3ncrwiu4/students.zip?dl=1) |
| مدل۲ | URL | response |
|:------:|:------------------------------:|:----------------------------------------------------------------------------------------------------:|
| ۲. | http://127.0.0.1:8000/courses/ | صفحه course_list.html شامل لیست دانشجویان و شماره دانشجویی هر فرد واقع در پوشهی university/templates |
| نمونه: | http://127.0.0.1:8000/courses/ | [نمونه html](https://www.dropbox.com/s/iwfmx7grpy032n5/courses.zip?dl=1) |
| مدل۳ | URL | response |
|:------:|:---------------------------------------------:|:-------------------------------------------------------------------------------------------------------:|
| ۳. | http://127.0.0.1:8000/student/student_number/ | صفحهی student_detail.html شامل اطلاعات دانشجو با شماره دانشجویی خاص واقع در پوشه ی university/templates |
| نمونه: | http://127.0.0.1:8000/student/9431020/ | [نمونه html](https://www.dropbox.com/s/10ka2mowmn5lary/student.zip?dl=1) |
| مدل۴ | URL | response |
|:------:|:-------------------------------------------:|:----------------------------------------------------------------------------------------------:|
| ۴. | http://127.0.0.1:8000/course/course_number/ | صفحهی course_detail.html شامل اطلاعات درس با شماره درس خاص واقع در پوشه ی university/templates |
| نمونه: | http://127.0.0.1:8000/course/2/ | [نمونه html](https://www.dropbox.com/s/8e8g82t0428n0d7/course.zip?dl=1) |
| مدل۵ | URL | response |
|:------:|:------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------:|
| ۵. | http://127.0.0.1:8000/student/student_number/GPA | صفحهی GPA_detail.html شامل اطلاعات معدل و درس دانشجو با شماره دانشجویی خاص واقع در پوشه ی university/templates |
| نمونه: | http://127.0.0.1:8000/student/9431020/GPA | [نمونه html](https://www.dropbox.com/s/i80sk4ykxqeddfr/GPA.zip?dl=1) |
**آنچه باید upload کنید :**
**فایل فشرده ای (zip) که محتوی یک پوشه به نام university باشد و داخل پوشه ی university فایل veiws.py موجود باشد.**
```
<Your-zip-name>.zip
└─── university
└── views.py
```
Django
میخواهیم یک app با HTML/CSS/JS بنویسیم که کد hex یک رنگ را دریافت کند و آن رنگ را به ما نشان دهد. برای این کار کد HTML زیر را نوشتهایم که یک input و یک div در آن قرار دارد:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML Color Test</title>
<style type="text/css">
#color_preview {
width: 200px;
height: 200px;
border: 1px solid grey;
background-color: white;
}
</style>
</head>
<body>
<h1>HTML Color Test</h1>
<input id="color_input" type="text"/>
<br/><br/>
<div id="color_preview"></div>
</body>
</html>
```
![توضیح تصویر](http://bayanbox.ir/view/5787155278519664984/html-color-1.png)
میخواهیم به کمک JS کاری کنیم که وقتی کد hex یک رنگ در input نوشته شد، رنگ پسزمینه div به آن رنگ تغییر کند تا بتوانیم آن رنگ را مشاهده کنیم :
![توضیح تصویر](http://bayanbox.ir/view/8469191187321575358/html-color-2.png)
باید به محض تغییر مقدار داخل input، رنگ div بر اساس آن مقدار به روز شود. همچنین میخواهیم در صورتی که کاربر مقدار نامعتبری وارد کرد، رنگ div سیاه شود. مثالهایی از مقادیر نامعتبر: `aa`، `4a4b4z`، `aaaaaaa`. مثالهایی از مقادیر معتبر: `777`، `4f568e`، `a8c`
تغییرات موردنظر را اعمال کنید و فایل(ها) را در یک فایل zip ارسال کنید. نام فایل HTML اصلی را `index.html` قرار دهید. همچنین میتوانید در کنار آن تعدادی فایل `.js` قرار دهید.
نکات:
- دقت کنید که فایل `index.html` داخل ریشه فایل zip باشد (داخل هیچ پوشهای نباشد.)
- مقدار id را برای input و div تغییر ندهید.