Thursday, October 6, 2016

COMPRO6 - Test Case #2

Implement this following features and restrictions to Test Case #1 (your existing program):

     1. Strictly impose proper logging-in and out. The computation of total hours worked should    follow the work schedule 8:00 to 12:00 in the morning and 1:00 to 5:00 in the afternoon.
              For example:
                     If the employee came early in the morning, let us say 7:30 AM. The system should still consider this as 8:00 AM. Likewise, if the employee logged-out in the morning at 12:15 PM the system will still consider this as 12:00 PM. Similarly, if the employee logs-in in the afternoon at 12:50 PM it will still be considered as 1:00 PM.


    2. Include computation for overtime hours
              Formulas:

                     Regular Hour Rate = Daily Rate / 8
                     Overtime Hour Rate = Regular Hour Rate + 2%

          Note: Overtime hours starts from 5:01 PM to 12:00 AM

   3. Modify Gross Pay Screen
             Example:

                  ...
                 Total Regular Hours Worked: 40.0
                 Total Overtime Hours: 5.0
                 Hourly Rate: 68.75
                 Overtime Rate: 70.125
                 Gross Pay: 3100.625

Thursday, September 29, 2016

HOW TO IMPLEMENT A LOGIN FORM IN VB6

Before anything else, I will assume that you have previous knowledge with regards to constructing basic SQL commands using MS Access. This tutorial will demonstrate how to create a login form in Visual Basic 6.0 using MS Access as database engine.

To get us started, we need to create a new table to our database. Name it ‘Users’, with the following structure:
FIELD NAME
DATA TYPE
ATTRIBUTES
ID
AutoNumber

Username
Text
Field Size: 15
Password
Text
Field Size: 255 | Input Mask:*

The structure is pretty straight forward. The ID field is Auto Incremented and will serve as the Primary Key. The Username is of type Text with the length of 15 characters long. Finally, the Password field 255 in length.

It is time to populate the table. We are going to start with two users only for this tutorial. Insert the following records:
ID
Username
Password
1
alex
Kulot01@
2
john
Whitewolf69

Now our table is ready. We only have two authorized login credentials which of Alex and John with their corresponding password.

Next, we will design our login form in VB6 IDE. Create a form with similar objects in it as shown below:


Form Layout

Control
Property
Value
Form
Name
Caption
BorderStyle
Height
Width
Form1
Login
1 – Fixed Single
3135
4845
Label1
Caption
User:
Label2
Caption
Password:
Text1
Name
Text
txtUser
Text2
Name
Text
PasswordChar
txtPassword

*
Command1
Name
Caption
cmdCancel
Cancel
Command2
Name
Caption
cmdLogin
Login
Controls, Properties and Values Matrix

Source Code
Form1.frm

Option Explicit

Private Sub cmdCancel_Click()   
    Unload Me
End Sub

Private Sub cmdLogin_Click()
    Dim rs As New Recordset
    Dim user As String
    Dim password As String
    Dim sql As String
   
    user = txtUser.Text
    password = txtPassword.Text
   
    sql = "SELECT * FROM Users WHERE Username = '" & user & "'"
    Debug.Print sql
    rs.Open sql, con, adOpenDynamic, adLockOptimistic
   
   
    If rs.State Then
        While Not rs.EOF
            If rs!password = password Then
                   
                'Load your main form because the access has been authorized
                Unload Me
                Exit Sub
            End If
           
            rs.MoveNext
        Wend
    End If
   
    MsgBox "Invalid Username or Password!", vbExclamation, "Authentication"
   
    rs.Close
    Set rs = Nothing
End Sub


NOTE: Upon running the application, the first form to load should be the Login form.

Wednesday, September 28, 2016

Test Case #1 - HINT

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class fileinput {
public static void main(String[] args) throws IOException {
BufferedReader br = null;
String sCurrentLine;
String emp[];
Scanner input=new Scanner(System.in);
String id;
boolean flag=false;
int position;
String position_desc="";
Double daily_rate=0.0;

System.out.print("Enter Code: ");
id=input.nextLine();

br = new BufferedReader(new FileReader("C:\\Users\\home\\Documents\\employees.txt"));

while ((sCurrentLine = br.readLine()) != null) {
emp=sCurrentLine.split(",");

if ( id.equals(emp[0])  ){

position=  Integer.parseInt( emp[2] );
if (position==1){
position_desc="Manager";
daily_rate=650.0;
}else if(position == 2){
position_desc="Supervisor";
daily_rate=550.0;
}else if(position == 3){
position_desc="Messenger";
daily_rate=500.0;
}

System.out.println( "Name: " + emp[1]);
System.out.println( "Position: " + position_desc);
System.out.println( "Daily Rate: " + daily_rate);

flag=true;


}

}

if (flag==false ) System.out.println("Employee not found!");


}

}

Thursday, September 22, 2016

Processing Delimited String


public class Parse {

    public static void main(String [] args) {
    String arr[];
    String str="E006,Herbert Colanggo,3";
   
    arr=str.split(",");
   
   
   
   
    System.out.println(arr[0]);
    System.out.println(arr[1]);
    }
    
    
}

How To Read A Text File in Java




import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class fileinput {
public static void main(String[] args) throws IOException {
BufferedReader br = null;
String sCurrentLine;

br = new BufferedReader(new FileReader("C:\\Users\\home\\Documents\\Db.txt"));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}

}

}

Wednesday, September 21, 2016

TEST CASE 1 - Compro6

Download the files below:

  1. compro6-endterm-project-testcase1.docx
  2. employees.txt

How to compute hour interval between two times? Click here!

How to compute the number of hours between two given times in Java

/**
 * @(#)testcase1.java
 *
 *
 * @author : A. Dichosa
 * @version 1.00 2016/9/21
 */


public class testcase1 {
    public static void main(String [] args) {
    String timein,timeout;
    double time_interval=0; 
        
    timein="8:00";
    timeout="12:00";
    time_interval=GetHourInterval(timein,timeout);
       

    System.out.println(String.format("%.2f",time_interval));    
    }   
    
    /*
     *Description: This method computes the hour interval between two times. It takes two parametes in and out.
     */
    private static double GetHourInterval(String in, String out){
    String timein_arr[];
    String timeout_arr[];
   
    double in_hours=0;
    double out_hours=0;
    double total_hours=0;
   
    timein_arr=in.split(":");
    timeout_arr=out.split(":");
   
    in_hours=Double.parseDouble( timein_arr[0])+ (Double.parseDouble(timein_arr[1])/60);
    out_hours=Double.parseDouble( timeout_arr[0])+ (Double.parseDouble(timeout_arr[1])/60);
    total_hours=out_hours-in_hours;
   
    return total_hours;
   
    }
    
}

Thursday, September 15, 2016

A Simple CRUD using Laravel 5.2 Framework

Steps to Install the Application to a Remote Server
  1. Decompress and upload all files to target directory gregorytest.rar.
  2. Import the database gregorydata.sql
  3. Copy all files inside /public folder into the default project folder.
  4. Remove folder /public.
  5. Edit file ./index.php, add this line
    use Illuminate\Contracts\Http\Kernel; to the topmost line.
    On the same file, look for line
    require __DIR__.'/../bootstrap/autoload.php';
    and replace it with
    require __DIR__."/bootstrap/autoload.php";
    Also, line
    $app = require_once __DIR__.'/../bootstrap/app.php';
    with
    $app = require_once __DIR__."/bootstrap/app.php";
    Lastly line $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
    with
    $kernel = $app->make(Kernel::class);
  6. Edit file /config/bootstrap.php and locate line 'url' => env('APP_URL', 'http://localhost'), and replace it with 'url' => env('APP_URL', 'http://[you_project_folder]/'),
  7. Finally, .env file needs editing also
    APP_ENV=local
    APP_DEBUG=true
    APP_KEY=base64:eegf6eODvThzJiyXWMp3Bh7OLUbgqOJhQ16kZcXr9qw=
    APP_URL=http://[project_directory]
    DB_CONNECTION=mysql
    DB_HOST=sql6.freemysqlhosting.net
    DB_PORT=3306
    DB_DATABASE=sql6135311
    DB_USERNAME=sql6135311
    DB_PASSWORD=3te5D9vhTU
  8. Enjoy!

Tuesday, September 13, 2016

Java - Files and I/O

Important: Use the comment section below for questions. Use the format {your fullname}: {question}
               
The java.io package contains nearly every class you might ever need to perform input and output (I/O) in Java. All these streams represent an input source and an output destination. The stream in the java.io package supports many data such as primitives, Object, localized characters, etc.

Stream

InPutStream: The InputStream is used to read data from a source.
OutPutStream: the OutputStream is used for writing data to a destination.

A stream can be defined as a sequence of data. there are two kinds of Streams




Java I/O Streams



Java provides strong but flexible support for I/O related to Files and networks but this tutorial covers very basic functionality related to streams and I/O. We would see most commonly used example one by one:

Byte Streams

Java byte streams are used to perform input and output of 8-bit bytes (for reference check the table of 8-bit characters). Though there are many classes related to byte streams but the most frequently used classes are , FileInputStream and FileOutputStream. Following is an example which makes use of these two classes to copy an input file into an output file:

import java.io.*;

public class CopyFile {
   public static void main(String args[]) throws IOException
   {
      FileInputStream in = null;
      FileOutputStream out = null;

      try {
         in = new FileInputStream("input.txt");
         out = new FileOutputStream("output.txt");
         
         int c;
         while ((c = in.read()) != -1) {
            out.write(c);
         }
      }finally {
         if (in != null) {
            in.close();
         }
         if (out != null) {
            out.close();
         }
      }
   }
}
Now let's have a file input.txt with the following content:
This is test for copy file.
As a next step, compile above program and execute it, which will result in creating output.txt file with the same content as we have in input.txt. 

Dissecting the Program
What the program does is just to copy the content of file input.txt and write it down to output.txt.

CHECK YOURSELF
What would be written to file output.txt if we run these statements individually?

  1. out.write(078);
  2. out.write(079);
  3. out.write(095);
  4. out.write(080);
  5. out.write(065);
  6. out.write(073);
  7. out.write(078);
  8. out.write(095);
  9. out.write(078);
  10. out.write(079);
  11. out.write(095);
  12. out.write(071);
  13. out.write(065);
  14. out.write(073);
  15. out.write(078);



Tuesday, July 12, 2016

Solus and Gnome - COMPRO6

Lab Activity #3:

To those who did not make it in time last session's activity, you need to comply by submitting the attached source code to email adichosa@gmail.com with email subject "Act3-Late-[Your Section]-[Fullname]". This should be sent to my email not later than 12PM for Solus and 3PM for Gnome.

-------------------------------------------------

Lab Activity #4:

Problem:

Write a program to accept five integers from the keyboard and store them to array arr. Process the array and display the sum, average, min and max.

Sample Output:

Enter element 1: 3
Enter element 2: 6
Enter element 3: 2
Enter element 4: 10
Enter element 5: 31

Processing...

Sum: 56
Average: 11.2
Min: 2
Max: 31

Important: Email to adichosa@gmail.com with subject "Act4-[Your Section]-[Your name]".

Very very very ... very IMPORTANT:
I am appointing Mr. Togle of Solus and Mr. Pedrajas of Gnome to jot-down the names of those who are making loud noises during the session. Necessary deductions to Activity #4 will be imposed to those who are in the list.

Friday, July 8, 2016

IDP2 - Activity #3

GUI:


Source Code:

Option Explicit

Dim StrHeight As Integer
Dim StrWidth As Integer
Dim FormHeight As Integer
Dim FormWidth As Integer


Private Sub Form_Load()
    StrHeight = Label1.Height
    StrWidth = Label1.Width
    
    FormHeight = Form1.ScaleHeight
    FormWidth = Form1.ScaleWidth
    
    Timer1.Enabled = True
    Timer2.Enabled = False
    
    Timer1.Interval = 50
    Timer2.Interval = 50
    
    Call ResetStr
End Sub

Private Sub ResetStr()
    Label1.Top = 0
    Label1.Left = 0
End Sub

Private Sub Timer1_Timer()
    If Label1.Left <= (FormWidth - StrWidth) Then
        Label1.Left = Label1.Left + 100
    Else
        Timer1.Enabled = False
        Timer2.Enabled = True
    End If
End Sub

Private Sub Timer2_Timer()
    If Label1.Top <= (FormHeight - StrHeight) Then
        Label1.Top = Label1.Top + 50
    Else
        Timer2.Enabled = False
        'Timer3.Enabled = True
    End If
End Sub

--------------------------------------

Objective:

Append the program and add the functionality to complete the cycle of the moving label. Make sure that the label will keep on rotating until such time the user interferes and stop the program.

Tuesday, June 28, 2016

Input Stream

Activity #2


Problem 1:

Write a program to require the user to input a string. Process the string by counting the total number of vowels and consonants in the string. For additional reference, please visit http://www.tutorialspoint.com/java/java_strings.htm , http://bit.ly/28TBVbB


VALIDATION

Sample Output #1:
Enter a string: Chance favors the prepared minds.

Vowels: 9
Consonants: 19

Sample Output #2:
Enter a string: The quieter you become, the more you are able to hear!

Vowels: 22
Consonants: 20

Sample Output #3:
Enter a string: Swing your rope down low.

Vowels: 7
Consonants: 13

------------------------------------------------------------------------------------------------------
Problem 2:

Write a program to require a string input from the keyboard. Using a loop structure, read the string backwards and display the result.

Sample Output #1:
Enter a string: Government
tnemnrevoG


Sample Output #2:
Enter a string: Aliens
sneilA

Sample Output #3:
Enter a string: Absurd
drusbA





Note: Once you're done, email the source code to adichosa@gmail.com. Use as subject <SECTION>-Act2-<fullname>. Deadline is on or before 12PM for Solus and 3PM for GNOME. TODAY!!!

Sunday, May 22, 2016

FIND THE SECOND LARGEST NUMBER IN THE ARRAY

/**
* find the second largest integer in an array.
* @param ia an array of integers
* @return the second largest number in ia
*/
private static int secondLargest(int[] ia)
{
int first_largest=0;
int second_largest=0;

//find the first largest
for (int i=0; i<ia.length; i++){
if (ia[i] > first_largest)//determine first the first largest so that we can identify the second largest
first_largest=ia[i];

}
//find the second largest
for (int i=0; i<ia.length; i++){
if (ia[i] > second_largest && ia[i]<first_largest) //check if it is the second largest
second_largest=ia[i];

}

return second_largest;
} //secondLargest