INDUSTRIAL TRAINING INTERNSHIP REPORT
INDUSTRIAL TRAINING SEMINAR REPORT
TOPIC
JAVA PROGRAMMING DOMAIN
Submitted in partial fulfillment of the degree of
[Link] in Computer Science and Engineering
Government Engineering College
BY
Teerth Bhardwaj
22CS114
Government Engineering College
Ajmer, Rajasthan
ATTENDANCE CERTIFICATE
This is to certify that Teerth Bhardwaj has successfully completed an internship program
at INTERNPE. During this period, [he/she] demonstrated commendable dedication and
enthusiasm towards [his/her] assigned tasks and responsibilities. [He/She] actively
participated in various projects and initiatives, contributing positively to the team's
objectives.
Internship Supervisor: Krati Kumari
This certificate is awarded in recognition of [his/her] commitment and valuable
contribution to INTERNPE.
HR INTERNPE
INTERNSHIP MENTOR DECLARATION
This is to certify that the Industrial Training Internship In
INTERNPE entitled JAVA PROGRAMMING by Teerth
Bhardwaj has been done successfully and completed all the
tasks provided in the internship.
Date:
05/07/2024
Mentor
[Link]
TASK DESCRIPTION
TASK 1:
Guess a Number Task:
OBJECTIVE:
[Link] Number Generation: Generate a random number between a
specified range.
[Link] Input: Allow the user to guess the generated number.
[Link]: Compare the user's guess with the generated number.
[Link]: Provide feedback indicating whether the guess is correct,
too high, or too low.
HOW TO PERFORM:
[Link] Number Generation:
- Use Java's `Random` class or another method to generate
a random number within a specified range.
[Link] Input:
- Implement a mechanism to allow the user to input their guessed
number.
[Link]:
- Compare the user's guessed number with the randomly
generated number to determine if it's correct, too high, or too low.
[Link]:
- Provide clear feedback to the user based on the comparison,
indicating whether the guess is correct or providing a hint for the next
attempt.
[Link] (Optional):
- Optionally, implement a loop to allow the user multiple attempts
until they correctly guess the number or choose to exit the game.
[Link] Interaction:
- Ensure a user-friendly experience with clear instructions,
and possibly add features like prompting the user to play again.
7. Scalability (Optional):
- If desired, consider making the game scalable by allowing
users to choose the range of numbers or introducing difficulty
levels.
8. Testing:
- Test the game thoroughly to ensure that it works as
expected, including scenarios where the user guesses correctly or
incorrectly.
9. Documentation:
- Provide comments and documentation to explain the
functionality of the code for future reference or collaboration.
[Link]:
- Test the game thoroughly to ensure it
works as expected under various scenarios,
including winning, losing, and tying.
[Link]:
- Provide comments and documentation to
explain the functionality of the code for future
reference or collaboration.
TASK 2
ROCK PAPER SESSIOR
[Link] Input: Allow players to input their choice of rock, paper, or scissors.
[Link] Selection: Generate a random choice for the computer opponent.
3. Comparison: Compare user and computer choices to determine the
winner based on the Rock-Paper-Scissors rules.
[Link]: Provide clear feedback indicating the winner or if it's a tie.
HOW TO PERFORM:
[Link] Input:
- Allow players to input their choice of rock, paper, or
scissors using user interaction mechanisms.
[Link] Selection:
- Generate a random choice for the computer opponent. Utilize
Java's `Random` class or another method for randomness.
[Link]:
- Implement logic to compare the user's choice with the computer's
choice based on the Rock-Paper-Scissors rules to determine the winner.
[Link]:
- Provide clear feedback to the user, indicating the winner or
declaring a tie. This could be done through console output or a
graphical user interface.
[Link] Interaction:
- Ensure a user-friendly experience with clear instructions, and
consider providing options for the user to play again or exit the game.
[Link] (Optional):
- Optionally, consider making the game scalable by adding
more choices or introducing additional features, such as a scoring
system.
TASK 3:
TIC TAC TOE TASK:
[Link] Representation: Create a 3x3 grid to represent the Tic Tac
Toe game board.
[Link] Turns: Allow two players to take turns marking spaces
with 'X' and 'O'.
3. Winning Conditions: Define conditions for a player to win by
having three marks in a row, column, or diagonal.
4. User Experience: Ensure a user-friendly experience with
clear instructions, valid move validation, and an option to
replay.
HOW TO PERFORM:
[Link] Setup:
- Design a 3x3 grid to represent the Tic Tac Toe game board.
[Link] Turns:
- Allow two players to take turns marking spaces with 'X' and 'O'.
- Implement a mechanism to switch between players after each
move.
3. User Input:
- Enable user interaction by allowing players to input their
moves on the grid.
[Link] Conditions:
- Define winning conditions by checking for three marks in a row,
column, or diagonal.
- Implement logic to detect and announce a winner.
[Link] Detection:
- Implement logic to detect a tie when all spaces on the
grid are filled and no player has won.
[Link]:
- Provide clear feedback after each move, indicating the
current player, the outcome of the move, and game status.
[Link] and Replay:
- Include functionality to reset the game board for a new match.
- Allow players to replay without needing to restart the program.
8. Validation:
- Validate moves to ensure players can only mark empty spaces
and avoid illegal moves.
[Link] Interface Enhancements:
- Consider adding user-friendly features such
as highlighting winning combinations or animating
the mark placements.
[Link] and Debugging:
- Test the game thoroughly to ensure smooth
gameplay, including edge cases like invalid inputs, and
debug any issues.
[Link] Features (if time allows):
- Explore additional features like a scoreboard,
customizable player marks, or a graphical user interface.
TASK 4
CONNECT 4 GAME TASK
OBJECTIVE:
[Link] Structure: Create a 6x7 grid to represent the Connect 4
game board.
[Link] Interaction: Allow two players to take turns dropping
colored discs into columns.
3. Winning Conditions: Define conditions for a player to
win by connecting four discs horizontally, vertically, or
diagonally.
4. User Experience: Ensure a user-friendly experience with
clear instructions, valid move validation, and an option to
replay.
HOW TO PERFORM:
Certainly! Here's a non-code, step-by-step guide on how to create
a Connect 4 game in Java:
[Link] Setup:
- Design a 6x7 grid to represent the Connect 4 game board.
[Link] Turns:
- Allow two players to take turns dropping colored discs into
columns.
- Implement a mechanism to switch between players after each
move.
[Link] Placement:
- Enable user interaction by allowing players to drop their discs
into columns.
- Implement logic to place the disc in the lowest
available position within the selected column.
[Link] Conditions:
- Define winning conditions by checking for four
consecutive discs in a row, column, or diagonal.
- Implement logic to detect and announce a winner.
[Link] Detection:
- Implement logic to detect a tie when the grid is full with no
Connect 4.
[Link]:
- Provide clear feedback after each move, indicating the
current player, the outcome of the move, and game status.
[Link] and Replay:
- Include functionality to reset the game board for a new match.
- Allow players to replay without needing to restart the program.
[Link]:
- Validate moves to ensure players can only drop discs in
valid columns and avoid illegal moves.
[Link] Interface Enhancements:
- Consider adding user-friendly features such as
highlighting winning combinations or animating the
disc placements.
[Link] and Debugging:
- Test the game thoroughly to ensure smooth gameplay,
including edge cases like invalid inputs, and debug any issues.
[Link] Features (if time allows):
- Explore additional features like a scoreboard,
customizable disc colors, or a graphical user interface.
CONCLUSION
My Java internship at INTERNPE has been an immensely rewarding and
educational experience. Throughout this internship, I have deepened my
understanding of Java programming and its applications in building robust,
scalable software solutions.
During my time at INTERNPE, I worked on various projects that allowed me
to apply core Java concepts, including object-oriented programming,
multithreading, exception handling, and collections framework. These projects
challenged me to think critically and develop efficient, maintainable code.
A notable project I contributed to involved CONNECT 4 Game . This project
required extensive use of Java's features and reinforced my knowledge of
design patterns, data structures, and algorithms. It also provided me with
practical experience in using development tools such as Maven, Git, and
Jenkins, and frameworks like Spring and Hibernate.
The collaborative environment at INTERNPE enabled me to work closely with
experienced developers, participate in code reviews, and gain insights into
best practices in software development. I also had the opportunity to enhance
my debugging and problem-solving skills, ensuring that my code met the
highest standards of quality.
Overall, this internship has been a pivotal step in my professional journey. It
has equipped me with the technical skills and confidence to take on complex
programming challenges and contribute effectively to any software
development team. I am grateful for the mentorship and support provided by
my colleagues at INTERNPE and look forward to applying the knowledge and
experience I have gained in my future career endeavors.