diff options
Diffstat (limited to 'testapp')
-rwxr-xr-x | testapp/c_cpp_files/main_array_check.cpp | 34 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_array_check_all.cpp | 34 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_check_digit.cpp | 32 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_count667.cpp | 42 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_count7.cpp | 42 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_mean.cpp | 38 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_roundTo10.cpp | 42 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_specialSum.cpp | 42 | ||||
-rwxr-xr-x | testapp/c_cpp_files/main_within.cpp | 38 | ||||
-rw-r--r-- | testapp/exam/urls.py | 6 | ||||
-rw-r--r-- | testapp/exam/views.py | 44 | ||||
-rw-r--r-- | testapp/templates/exam/quizzes_user.html | 2 | ||||
-rw-r--r-- | testapp/templates/exam/results_user.html | 2 | ||||
-rw-r--r-- | testapp/templates/exam/show_quiz.html | 1 | ||||
-rw-r--r-- | testapp/templates/exam/showquestionpapers.html | 4 |
15 files changed, 378 insertions, 25 deletions
diff --git a/testapp/c_cpp_files/main_array_check.cpp b/testapp/c_cpp_files/main_array_check.cpp new file mode 100755 index 0000000..38b9004 --- /dev/null +++ b/testapp/c_cpp_files/main_array_check.cpp @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> + +extern bool array_check(int [], int); + +template <class T> + +void check(T expect,T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + bool result; + int a[] = {1,2,3,0,0}; + result = array_check(a, 2); + printf("Input submitted to the function: {1, 2, 3, 0, 0} and index 2"); + check(false, result); + int b[] = {1,2,3,4,5}; + result = array_check(b, 3); + printf("Input submitted to the function: {1, 2, 3, 4, 5} and index 3"); + check(true, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_array_check_all.cpp b/testapp/c_cpp_files/main_array_check_all.cpp new file mode 100755 index 0000000..fc740a9 --- /dev/null +++ b/testapp/c_cpp_files/main_array_check_all.cpp @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> + +extern bool array_check_all(int []); + +template <class T> + +void check(T expect,T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + bool result; + int a[] = {1,2,3,2,8}; + result = array_check_all(a); + printf("Input submitted to the function: {1, 2, 3, 2, 8}"); + check(false, result); + int b[] = {4,2,32,4,56}; + result = array_check_all(b); + printf("Input submitted to the function: {4, 2, 32, 4, 56}"); + check(true, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_check_digit.cpp b/testapp/c_cpp_files/main_check_digit.cpp new file mode 100755 index 0000000..80a92aa --- /dev/null +++ b/testapp/c_cpp_files/main_check_digit.cpp @@ -0,0 +1,32 @@ +#include <stdio.h> +#include <stdlib.h> + +extern bool check_digit(int, int); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + bool result; + result = check_digit(12, 23); + printf("Input submitted to the function: 12, 23"); + check(true, result); + result = check_digit(22, 11); + printf("Input submitted to the function: 121"); + check(false, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_count667.cpp b/testapp/c_cpp_files/main_count667.cpp new file mode 100755 index 0000000..dc33ede --- /dev/null +++ b/testapp/c_cpp_files/main_count667.cpp @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> + +extern int count667(int[]); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + int result; + int arr[5] = {2,6,4,5,6}; + result = count667(arr); + printf("Input submitted to the function: [2, 6, 4, 5,6]"); + check(0, result); + int arr2[5] = {6,6,2,17,9}; + result = count667(arr2); + printf("Input submitted to the function: [6, 6, 2, 17, 9]"); + check(1, result); + int arr3[5] = {6,6,6,7,1}; + result = count667(arr3); + printf("Input submitted to the function: [6, 6, 7, 2, 1]"); + check(3, result); + int arr4[5] = {6,7,7,6,6}; + result = count667(arr4); + printf("Input submitted to the function: [6, 7, 7, 6, 6]"); + check(2, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_count7.cpp b/testapp/c_cpp_files/main_count7.cpp new file mode 100755 index 0000000..92971fd --- /dev/null +++ b/testapp/c_cpp_files/main_count7.cpp @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> + +extern int count7(int[]); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + int result; + int arr[4] = {2,3,4,5}; + result = count7(arr); + printf("Input submitted to the function: [2, 3, 4, 5]"); + check(0, result); + int arr2[4] = {1,2,17,9}; + result = count7(arr2); + printf("Input submitted to the function: [1, 2, 17, 9]"); + check(0, result); + int arr3[4] = {7,9,2,1}; + result = count7(arr3); + printf("Input submitted to the function: [7, 9, 2, 1]"); + check(1, result); + int arr4[4] = {1,7,7,7}; + result = count7(arr4); + printf("Input submitted to the function: [1, 7, 7, 7]"); + check(3, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_mean.cpp b/testapp/c_cpp_files/main_mean.cpp new file mode 100755 index 0000000..f23db68 --- /dev/null +++ b/testapp/c_cpp_files/main_mean.cpp @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <stdlib.h> + +extern bool mean(int, int , int); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + bool result; + result = mean(11, 11, 11); + printf("Input submitted to the function: 11, 121, 11"); + check(true, result); + result = mean(16, 12, 9); + printf("Input submitted to the function: 16, 144, 9"); + check(true, result); + result = mean(19, 221, 9); + printf("Input submitted to the function: 19, 221, 9"); + check(false, result); + result = mean(34, 12, 3); + printf("Input submitted to the function: 11, 121, 11"); + check(false, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_roundTo10.cpp b/testapp/c_cpp_files/main_roundTo10.cpp new file mode 100755 index 0000000..0a1284e --- /dev/null +++ b/testapp/c_cpp_files/main_roundTo10.cpp @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> + +extern int roundTo10(int,int,int); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + int result; + result = roundTo10(10, 22, 39); + printf("Input submitted to the function: 10, 22, 39"); + check(70, result); + result = roundTo10(45, 42, 39); + printf("Input submitted to the function: 45, 42, 39"); + check(130, result); + result = roundTo10(7, 3, 9); + printf("Input submitted to the function: 7, 3, 9"); + check(20, result); + result = roundTo10(1, 2, 3); + printf("Input submitted to the function: 1, 2, 3"); + check(0, result); + result = roundTo10(30, 40, 50); + printf("Input submitted to the function: 30, 40, 50"); + check(120, result); + + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_specialSum.cpp b/testapp/c_cpp_files/main_specialSum.cpp new file mode 100755 index 0000000..5d0fcae --- /dev/null +++ b/testapp/c_cpp_files/main_specialSum.cpp @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> + +extern int specialSum(int,int,int); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + int result; + result = specialSum(10, 2, 9); + printf("Input submitted to the function: 10, 2, 9"); + check(21, result); + result = specialSum(1, 21, 9); + printf("Input submitted to the function: 1, 21, 9"); + check(1, result); + result = specialSum(21, 2, 3); + printf("Input submitted to the function: 21, 2, 3"); + check(0, result); + result = specialSum(10, 2, 21); + printf("Input submitted to the function: 10, 2, 21"); + check(12, result); + result = specialSum(10, 2, 6); + printf("Input submitted to the function: 10, 2, 6"); + check(18, result); + + printf("All Correct\n"); + return 0; +} diff --git a/testapp/c_cpp_files/main_within.cpp b/testapp/c_cpp_files/main_within.cpp new file mode 100755 index 0000000..d83c50d --- /dev/null +++ b/testapp/c_cpp_files/main_within.cpp @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <stdlib.h> + +extern bool within(int, int, int); + +template <class T> + +void check(T expect, T result) +{ + if (expect == result) + { + printf("\nCorrect:\n Expected %d got %d \n",expect,result); + } + else + { + printf("\nIncorrect:\n Expected %d got %d \n",expect,result); + exit (1); + } +} + +int main(void) +{ + bool result; + result = within(12, 3, 20); + printf("Input submitted to the function: 12, 3, 20"); + check(true, result); + result = within(12, 13, 20); + printf("Input submitted to the function: 12, 13, 20"); + check(false, result); + result = within(29, 13, 120); + printf("Input submitted to the function: 29, 13, 120"); + check(true, result); + result = within(12, 12, 20); + printf("Input submitted to the function: 12, 3, 20"); + check(false, result); + printf("All Correct\n"); + return 0; +} diff --git a/testapp/exam/urls.py b/testapp/exam/urls.py index 14aaa8a..33b2edf 100644 --- a/testapp/exam/urls.py +++ b/testapp/exam/urls.py @@ -8,14 +8,14 @@ urlpatterns = patterns('exam.views', url(r'^start/$', 'start'), url(r'^start/(?P<questionpaper_id>\d+)/$','start'), url(r'^quit/(?P<questionpaper_id>\d+)/$', 'quit'), - url(r'^intro/$','start'), + url(r'^intro/(?P<questionpaper_id>\d+)/$','intro'), url(r'^complete/$', 'complete'), url(r'^complete/(?P<questionpaper_id>\d+)/$', 'complete'), url(r'^register/$', 'user_register'), url(r'^(?P<q_id>\d+)/$', 'question'), url(r'^(?P<q_id>\d+)/check/$', 'check'), url(r'^(?P<q_id>\d+)/check/(?P<questionpaper_id>\d+)/$', 'check'), - + url(r'^intro/$', 'start'), url(r'^manage/$', 'prof_manage'), url(r'^manage/addquestion/$', 'add_question'), @@ -32,7 +32,7 @@ urlpatterns = patterns('exam.views', url(r'^manage/showquestionpapers/$','show_all_questionpapers'), url(r'^manage/showquestionpapers/(?P<questionpaper_id>\d+)/$',\ 'show_all_questionpapers'), - url(r'^manage/monitor/(?P<quiz_id>\d+)/$', 'monitor'), + url(r'^manage/monitor/(?P<questionpaper_id>\d+)/$', 'monitor'), url(r'^manage/user_data/(?P<username>[a-zA-Z0-9_.]+)/$','user_data'), url(r'^manage/designquestionpaper/$','design_questionpaper'), url(r'^manage/designquestionpaper/(?P<questionpaper_id>\d+)/$',\ diff --git a/testapp/exam/views.py b/testapp/exam/views.py index 2545d8b..f21357e 100644 --- a/testapp/exam/views.py +++ b/testapp/exam/views.py @@ -151,6 +151,14 @@ def quizlist_user(request): context = {'quizzes': avail_quiz, 'user': user} return my_render_to_response("exam/quizzes_user.html", context) +def intro(request, questionpaper_id): + """Show introduction page before quiz starts""" + user = request.user + context = {'user': user, 'paper_id': questionpaper_id } + ci = RequestContext(request) + return my_render_to_response('exam/intro.html', context, + context_instance=ci) + def results_user(request): """Show list of Results of Quizzes that is taken by logged-in user.""" @@ -158,7 +166,11 @@ def results_user(request): papers = AnswerPaper.objects.filter(user=user) quiz_marks = [] for paper in papers: - temp = paper.question_paper.quiz.description, paper.get_total_marks() + marks_obtained = paper.get_total_marks() + max_marks = paper.question_paper.total_marks + percentage = round((marks_obtained/max_marks)*100,2) + temp = paper.question_paper.quiz.description, marks_obtained,\ + max_marks, percentage quiz_marks.append(temp) context = {'papers': quiz_marks} return my_render_to_response("exam/results_user.html", context) @@ -653,16 +665,9 @@ def start(request, questionpaper_id=None): questions = [str(_.id) for _ in questionpaper.questions.all()] random.shuffle(questions) - #questions = questionpaper.questions - #random.shuffle(questions) new_paper.questions = "|".join(questions) new_paper.save() - # Show the user the intro page. - context = {'user': user, 'paper_id': questionpaper_id} - ci = RequestContext(request) - return my_render_to_response('exam/intro.html', context, - context_instance=ci) - + return start(request, questionpaper_id) def question(request, q_id, questionpaper_id,success_msg=None): """Check the credentials of the user and start the exam.""" @@ -680,7 +685,9 @@ def question(request, q_id, questionpaper_id,success_msg=None): if not paper.question_paper.quiz.active: reason='The quiz has been deactivated!' return complete(request, reason, questionpaper_id) - + #if new: + # paper.start_time = datetime.datetime.now() + # paper.end_time = datetime.datetime.now() time_left = paper.time_left() if time_left == 0: return complete(request, reason='Your time is up!') @@ -731,7 +738,6 @@ def check(request, q_id, questionpaper_id=None): if question.type == 'mcq': # Add the answer submitted, regardless of it being correct or not. if user_answer is not None : - print "EEERRRROOOORRRRRRR :P" new_answer = Answer(question=question, answer=user_answer, correct=False) new_answer.save() @@ -790,13 +796,9 @@ def check(request, q_id, questionpaper_id=None): context_instance=ci) else: if time_left <= 0: - print "success" - print str(time_left) reason='Your time is up!' return complete(request, reason, questionpaper_id) else: - print "fail" - print time_left next_q = paper.completed_question(question.id) return show_question(request, next_q, questionpaper_id,success_msg) @@ -850,14 +852,14 @@ def complete(request, reason=None, questionpaper_id=None): return my_redirect('/exam/') -def monitor(request, quiz_id=None): +def monitor(request, questionpaper_id=None): """Monitor the progress of the papers taken so far.""" user = request.user if not user.is_authenticated() or not is_moderator(user): raise Http404('You are not allowed to view this page!') - if quiz_id is None: + if questionpaper_id is None: q_paper = QuestionPaper.objects.all() context = {'papers': [], 'quiz': None, @@ -866,15 +868,15 @@ def monitor(request, quiz_id=None): context_instance=RequestContext(request)) # quiz_id is not None. try: - quiz = QuestionPaper.objects.get(id=quiz_id) + q_paper = QuestionPaper.objects.get(id=questionpaper_id) except QuestionPaper.DoesNotExist: papers = [] - quiz = None + q_paper = None else: - papers = AnswerPaper.objects.all().annotate( + papers = AnswerPaper.objects.filter(question_paper=q_paper).annotate( total=Sum('answers__marks')).order_by('-total') - context = {'papers': papers, 'quiz': quiz, 'quizzes': None} + context = {'papers': papers, 'quiz': q_paper, 'quizzes': None} return my_render_to_response('exam/monitor.html', context, context_instance=RequestContext(request)) diff --git a/testapp/templates/exam/quizzes_user.html b/testapp/templates/exam/quizzes_user.html index af2d98a..b55d3e5 100644 --- a/testapp/templates/exam/quizzes_user.html +++ b/testapp/templates/exam/quizzes_user.html @@ -12,7 +12,7 @@ <center><h4>No active quizzes for you</h4></center> {% endif %} {% for paper in quizzes %} - <a href="{{ URL_ROOT }}/exam/start/{{paper.id}}">{{ paper.quiz.description }}</a><br> + <a href="{{ URL_ROOT }}/exam/intro/{{paper.id}}">{{ paper.quiz.description }}</a><br> {% endfor %} {% endblock %} diff --git a/testapp/templates/exam/results_user.html b/testapp/templates/exam/results_user.html index bf847c0..2a2a309 100644 --- a/testapp/templates/exam/results_user.html +++ b/testapp/templates/exam/results_user.html @@ -13,6 +13,8 @@ <center><table class="span6"> <th>Quiz Description <th>Obtained Marks + <th>Maximum Marks + <th>Percentage {% for paper in papers %} <tr> {% for i in paper %} diff --git a/testapp/templates/exam/show_quiz.html b/testapp/templates/exam/show_quiz.html index 886a696..cf3f552 100644 --- a/testapp/templates/exam/show_quiz.html +++ b/testapp/templates/exam/show_quiz.html @@ -10,6 +10,7 @@ {% block manage %} {% if not quizzes and not quiz %} <center><h5> No quizzes available. </h5></center> +<button class="btn" type="button" onClick='location.replace("{{URL_ROOT}}/exam/manage/addquiz");'>Add New Quiz</button> {% endif %} {# ############################################################### #} diff --git a/testapp/templates/exam/showquestionpapers.html b/testapp/templates/exam/showquestionpapers.html index 26b756d..e511472 100644 --- a/testapp/templates/exam/showquestionpapers.html +++ b/testapp/templates/exam/showquestionpapers.html @@ -8,6 +8,7 @@ {% endblock %} {% block manage %} +{% if papers %} <form name=frm action="" method="post"> {% csrf_token %} {% for i in papers %} @@ -16,4 +17,7 @@ <br> <button class="btn" type="submit" onClick="return confirm_delete(frm);" name='delete' value='delete'>Delete Selected</button> </form> +{% else %} +<center><h3>No Question Papers available</h3></center> +{% endif %} {% endblock %} |