# C# to Design and Implement Mathematical Skill Assessment Program

Control Structures:

Control structures are the most important and basic concepts of any programming language. They are important to implement a solution to the given problem. In short, control structures are known as constructs. There are two types of control structures provided by the C#, i.e. Iteration constructs and Decision constructs. Following are some control structures that is implemented in the code.

Iteration Constructs:

We can cyclically repeat the code using the iteration constructs.

1. For Loops:

In for Loop, we can specify the number of times to repeat the code.

1. Foreach Loops:

The loop is used to iterate through the items of array or collections.

1. While loops

It repeats the block of code until the given condition remains true.

1. Do While loops

This loop first executes the block of code and then check the given condition. So, if the condition becomes false, the block of code will execute at least once.

Decision Constructs:

Following are some decision constructs we have implemented in the code.

1. If Statement:

The conditional statements are designed by using If statement. The sequence of code changes with if statements. The Boolean condition is checked by the If statements.

1. Switch Statement:

In the switch statement, different blocks of code are selected based on the multiple values of the single variable.

1. Break Statement:

The break statement terminated the repetition of the code of either the switch statement or any loop.

1. Continue Statement:

The continue statement is utilised to provide control to the next iteration of the statement in which it resides.

Procedures or Methods:

It is a block of code containing multiple statements. These statements are executed by the program by calling the methods. The methods may have arguments. If the method has any arguments, then they are specified first, and then the method is executed. Following are some methods provided by C# that we have implemented in our code.

1. Substring (int s, int length )
2. WriteLine (string s)
5. Main (String[] args)

Justifying C-sharp:

C-sharp is the latest rendition of C++. Before C-sharp, it was C++ language; it was used by many people to code solutions. C++ has added an object-oriented approach to C, and C++ has been widely used to develop and design “genuine” applications for Windows (as indicated by the C++ designers). The low-level applications and systems are developed using C++. The business-level application is developed by basic visual developers and experts.

C# provides fast improvement in the world of visual basics within the community of C++ programmers, with some conspicuous changes. The .NET framework is very well utilised by the C-Sharp, which implies you approach a capable forms engine, much the same as VB developers have had for a considerable length of time. New data types have been included, for example, the decimal information type for performing money-related estimations.

C# is type-safe, which implies a few things. For instance, you can’t utilise uninitialized variables. In C++ it is anything but difficult to declare a variable and afterwards check its esteem; whatever was in the memory deliver given to that variable would then appear, and this could wreak ruin on an application. The C# compiler will advise you if you endeavour to utilise a variable before you have initialised it to some substantial value.

While C++ is to a great degree, a capable language, it has not regularly been viewed as simple. C# endeavours to disentangle the linguistic structure to be more steady and more sensible while additionally evacuating a portion of the more unpredictable features of C++. For instance, C# gets rid of pointers. As a type-safe dialect, C# doesn’t permit coordinate memory control, so pointers are never again required in C#.

4.1 Different types of testing

Testing is divided into two main types “black box testing” and “white box testing”.

1. Black box Testing:

The “black box testing” focuses on the functionality of the modules. It does not test the internal mechanism instead, it tests the output in response to any input and other processes of the system. It is also known as “functional testing”. “Black box testing” is used for validation.

1. White box Testing:

The “white box testing” tests the internal mechanism of a system. It is also known as “glass box testing” and structural testing. Verification is done by “white box testing”.

Further, the above two testing types are divided into the following testing types.

• Unit testing
• Integration testing
• Functional testing
• System testing
• Stress Testing
• Performance testing
• Usability Testing
• Acceptance Testing
• Regression Testing
• Beta Testing

Unit Testing:

This type of testing is used to tests individual units or groups of units. This is a type of white box testing as the testing of the internal mechanism is conducted. This testing is done by the programmer to test a unit and analyse whether the output is according to the expectations against the specified input.

Integration Testing:

In this type of testing, different components are analysed that whether they produce the expected output when combined. The integration testing is also for the software and hardware if they are associated with each other. Integration testing is categorised as both “black box testing” and “white box testing”.

Functional testing:

This type of testing confirms whether the components of the system are producing the required functionality or not. “Functional testing” is a type of “black box testing”.

System testing:

System testing ensures the working of software in different environments and conditions. For example, the software is tested by installing it in different operating systems; its functionality is analysed; hence it falls under the black box testing.

Stress Testing:

This type of testing analyses the behaviour of the software in conditions which are favourable. It is also the type of black box testing.

Performance Testing:

Performance testing ensures that the effectiveness and the speed of the software. It also tests whether the software is generating the expected results within a specific time duration. It is a type of “black box testing”.

Usability Testing:

The usability testing is conducted according to the client’s perspective; it tests whether the graphical user interface is friendly or not, and is the software easy to learn. It tests how easy to use its design. It is a type of “black box testing”.

Acceptance testing:

This type of testing is conducted by the end user to ensure that the software is according to the requirements and works according to the customer’s expectations.

Regression Testing:

It is a type of testing that ensures after modification, the software is working accurately, and the change does not cause unexpected results.

To test our developed program, we will test it using unit testing and functional testing. Acceptance testing. As C-sharp is an object-oriented language, so it is very important to conduct unit testing to ensure that different modules or units are working according to the expectations. The functional testing will be conducted to analyse the overall functionality of the system designed. In the end, we prefer acceptance testing. This testing is conducted by the customer; he ensures that the software is working according to the requirements delivered to the developers. The customer can better tell how the product is functioning and whether it is fulfilling his needs or not.

#### Test Cases:

Functional testing is carried out to test the functionality of the program.

4.3

After conducting functionality testing, it is analysed that the program is working according to the requirements and expectations. The control structures of the program are properly working. They execute relevant blocks of code after a user specifies the option. There are no unhandled exceptions in the program, which affects the functionality of the program. The program is displaying correct confirmation messages. The flow of the program is accurate. However, the program still needs some improvements listed below:

1. In this software version, the questions are stored in an array, and they are static. The program should be more dynamic. The questions and their answers should be properly stored in the database. There should be proper database connectivity code implemented and tested.
2. The program should use a dynamic data structure to store the questions and their answers. This will improve the performance of the program.
3. There should be a proper admin section. Admin can manage the members. He can add, delete and modify the questions.
4. The program should evaluate the performance of different students by generating proper reports or performance charts. The program should display the student name on the home page who has scored highest up till now. This will motivate users to perform better.
5. The graphical user interface of the program should be enhanced as GUI enhances user experience and usability.
6. Exception and error handling should be improved.
7. The program should interact with the user by proper message display.
8. To enhance usability and readability, the program should display one question at a time.
9. Stopwatch must be implemented for every question.

4.4 On-screen guidance

1. Press 2 to start the numerical test.

r

1. Finish the test. The Result will be displayed.

1. If you score exceptionally, then press 3 to start the problem-solving test; otherwise, it will show you an error.

1. Of the problem-solving test will be displayed.

1. Results stored in a file

8. Press 5 to view the guidance program

9. Press 6 to end the Mathematics Skill Assessment test.

4.5 Technical Documentation:

Abstract:

The main goal of our project is to assess the mathematical skills of the students online. The students can give tests and evaluate themselves through the generated result. The students can give numerical skill tests and problem-solving tests.

Our work mostly focuses on developing a user-friendly, attractive system using C# where students can register themselves and test themselves.

Introduction:

Purpose:

The purpose of this project is to evaluate the mathematical skills of the student through an online platform. The student can give a numerical skill test and then a problem-solving test. The overall test result will be generated within a few seconds, and the user will be able to view the result as well as he can get the result file.

Scope:

The mathematical skill assessment program is a platform in which students of a particular institution can give numerical skill tests and problem-solving tests. This platform enhances the mathematical skills of the students. The students first register themselves to give tests.

Program Requirements Specifications:

Functional Requirements:

2. If a user has entered the wrong credentials, then the system should give the user three chances to enter the correct login and password. If he fails, the system automatically shuts down.
3. If a user enters the correct credentials, then the main menu should be displayed.
4. The main menu should have five items on it.
1. Children Registration
2. Numerical skill test
3. Problem-solving skill test
4. View test result
5. Help
6. Exit
5. The children’s registration module should ask for the details such as full name, age, gender and class.
6. Children can go for a numerical test after registration.
7. The information on students and their test results should be stored in a file.
8. The system should display supporting information about the system.
9. The user can exit the system by selecting the exit option.

Non-functional Requirements:

1. The program should authenticate the user within 2 seconds after he enters his credentials.

2. After the user is verified, the program should move towards the main screen within 2 seconds.

3. After completing the problem-solving test, the result should be calculated immediately within 2 seconds.

4. The program should not be platform specific. It should run on any operating system.

Design Details:

The following components are included in the design detail:

1. Behaviour

2. Static structure

3. User interface

The class diagram depicts the Static structure of the system. The flow of the system and its various activities exhibits its behaviour. The user interface of the system is one of the important components of software design. A user usually explores systems which are attractive and eye-catching.

Technologies:

We have used C# to design and implement the program, i.e. Mathematical skill assessment program.

Use Case:

System architecture:

#### References

Elements of a Java Program. (n.d.). Retrieved October 23, 2017, from http://www.codemiles.com/java/elements-of-a-java-program-t3449.html?mobile=off

flowchart. (n.d.). Retrieved October 23, 2017, from https://www.smartdraw.com/flowchart/

How to Write Test Cases: Sample Template with Examples. (n.d.). Retrieved October 23, 2017, from https://www.guru99.com/test-case.html

Why you should move to C#. (2002). Retrieved October 23, 2017, from https://www.techrepublic.com/article/why-you-should-move-to-c/

Zafar, R. (2012). What is software testing? What are the different types of testing? Retrieved October 23, 2017, from https://www.codeproject.com/Tips/351122/What-is-software-testing-What-are-the-different-ty

WHY US?

\$310

\$263.5

## YOU MAY ALSO LIKE

### Three Laws of Newton

Newton in his masterpiece Principia explained the reason why planets revolving in orbits are not circles in their structures but ellipses for which he developed