الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل امتحان للطلاب فوري on line

بدأه mahmoodsami في 5 فبراير 2010 · 35 رد · 3,438 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

هذا برنامج لعمل امتحان وتكون برمجته على جزئين

1- يتعلق بادخال الاسئلة الى الطلاب وهو كما ياتي questForm.jsp

<%-- 
    Document   : questForm
    Created on : Feb 5, 2010, 6:55:21 PM
    Author     : Mahmood2010
--%>

<%@page language="java" import="java.sql.*" %>

<%
if(request.getParameter("submit")!=null)
{
 Connection con = null;
    String driver = "com.mysql.jdbc.Driver";

try{
	Class.forName(driver);
	con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");

try{
	Statement st = con.createStatement();
	String quest = request.getParameter("quest").toString();
	String QA = request.getParameter("QA").toString();
	String QB = request.getParameter("QB").toString();
	String QC = request.getParameter("QC").toString();
	String QD = request.getParameter("QD").toString();
	String correctAns = request.getParameter("correctAns").toString();
           out.println("quest : " + quest);

       String qry = "insert into question_deatil(quest,QA,QB,QC,QD,correctAns) values('"+quest+"','"+QA+"','"+QB+"','"+QC+"','"+QD+"','"+correctAns+"')";

         out.println("qry : " + qry);

	int val = st.executeUpdate(qry);

	con.close();
        if(val>0)
        {
          response.sendRedirect("quizeApplication.jsp");
        }

}

catch(SQLException ex){
	System.out.println("SQL satatment not found");
}
}
catch(Exception e){
	e.printStackTrace();
}
}
%>
<html>
<title>Quize application in jsp</title>
<head>

<script>
function validateForm(theForm){

	if(theForm.quest.value==""){
			//Please enter username
			alert("Please enter Question.");
			theForm.quest.focus();
			return false;
	}
      return true;
     }
 </script>
</head>

<body>
<br>
<br/>
<center>
<table border="1" width="450px" bgcolor="pink" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
      <form method="POST" action="" onsubmit="return validateForm(this);">
        <h2 align="center"><font color="red">Quize Application in JSP</font></h2>
        <table border="0" width="400px" cellspacing="2" cellpadding="4">
          <tr>
            <td width="50%"><b>Enter Question:</b></td>
            <td width="50%"><input type="text" name="quest" size="40"/> </td>
          </tr>
	<tr>
            <td width="50%"><b>Enter Answer(A.):</b></td>
            <td width="50%"><input type="text" name="QA" size="40"/> </td>
          </tr>
	 <tr>
            <td width="50%"><b>Enter Answer(B.):</b></td>
            <td width="50%"><input type="text" name="QB" size="40"/> </td>
          </tr>
          <tr>
            <td width="50%"><b>Enter Answer(C.):</b></td>
            <td width="50%"><input type="text" name="QC" size="40"/> </td>
          </tr>
	<tr>
            <td width="50%"><b>Enter Answer(D.):</b></td>
            <td width="50%"><input type="text" name="QD" size="40"/> </td>
          </tr>
	<tr>
            <td width="50%"><b>Correct Answer:</b></td>
            <td width="50%"><input type="text" name="correctAns" size="10"/> </td>
          </tr>
        </table>
	<center>
        <p><input type="submit" value="Submit" name="submit">
          <input type="reset" value="Reset" name="reset"></p>
        </center>
      </form>
    </td>
  </tr>
</table>
</center>
</body>
</html>

2- الجزء الخاص بالامتحان quizeApplication.jsp

وهو كما ياتي

<%-- 
    Document   : quizeApplication
    Created on : Feb 5, 2010, 6:57:26 PM
    Author     : Mahmood2010
--%>

<%@ page import="java.sql.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String ans=" ";
if(request.getParameter("correctAns")!=null)
{
    ans=request.getParameter("correctAns").toString();
}
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";
Statement st = null;
ResultSet qrst;
ResultSet rs = null;

String id=request.getParameter("id");
System.out.println("id:"+id);
int i=1;
String s,g;

int count=0;
try {
Class.forName(driver);
conn = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
st = conn.createStatement();
//for(i=1;i<=2;i++)
// {
rs = st.executeQuery("select * from question_deatil");

while(rs.next()) {
%>

<br>
<br/>
<center>

<table border="1" width="500px" bgcolor="pink" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
<form name="form1">
 <h2 align="center"><font color="red">Online Quize Application</font></h2>
<b>Select Correct Answer</b>
        <table border="0" width="500px" cellspacing="2" cellpadding="4">
 <tr>

<td width="50%"> Question:</td>
<input type="hidden" name="correctAns" value="<%=rs.getString(7)%>" />
<tr>
<td><%= rs.getString("quest") %></td></tr>
<tr>
<td>
1: <input type="radio" name="a" value= "QA" /></td>
    <td><%= rs.getString("QA") %></td></tr>
<tr>
<td>
2: <input type="radio" name="a" value="QB" /></td>
<td><%= rs.getString("QB") %></td></tr>
<tr>
<td>
3: <input type="radio" name="a" value="QC" /></td>
<td><%= rs.getString("QC") %> </td></tr>
<tr>
<td>
4: <input type="radio" name="a" value="QD" /> </td>
<td> <%= rs.getString("QD") %> </td></tr>
<tr>
<td>
<center>
   <input type="submit" value="Submit" name="submit"></center></td></tr>
</table>
</form>
 </td>
  </tr>
</table>
</center>
</body>
<%
g=request.getParameter("a");
%>
<%
if(g.equals(ans))
{

count++;
out.println("Correct");
}
else
out.println("false");
%>

<%
}}
// }
catch (Exception ex) {
ex.printStackTrace();

%>

<%
} finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}
out.println("Score="+count);
%>
</html>

3 – وهذه قاعدة البيانات

DROP TABLE IF EXISTS `mahmood`.`question_deatil`;
CREATE TABLE  `mahmood`.`question_deatil` (
  `id` int(11) NOT NULL auto_increment,
  `quest` varchar(100) collate utf8_unicode_ci default NULL,
  `QA` varchar(100) collate utf8_unicode_ci default NULL,
  `QB` varchar(100) collate utf8_unicode_ci default NULL,
  `QC` varchar(100) collate utf8_unicode_ci default NULL,
  `QD` varchar(100) collate utf8_unicode_ci default NULL,
  `correctAns` varchar(100) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

وهذه صور النتائج في المرفقات .

سلامي

محمود سامي

post-202915-12653991808604_thumb.gif

post-202915-12653992747723_thumb.gif

post-202915-12653994168425_thumb.gif

post-202915-1265399500113_thumb.gif

#2

السلام عليكم ورحمة الله وبركاته

اخوتي الاعزاء هذا تعديل بسيط الى البرنامج questForm.jsp

وهو انه واجهة الاسئلة عندما ادخل الاسئلة اليها واضغط على Submit

فانه سوف تدخل البيانات الى قاعدة البيانات وبعد ذلك ترجع الواجهة تظهر فارغة من جديد ويمكن ادخال سؤال اخر الى الامتحان .

<%-- 
    Document   : questForm
    Created on : Feb 5, 2010, 6:55:21 PM
    Author     : Mahmood2010
--%>

<%@page language="java" import="java.sql.*" %>

<%
if(request.getParameter("submit")!=null)
{
 Connection con = null;
    String driver = "com.mysql.jdbc.Driver";

try{
	Class.forName(driver);
	con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");

try{
	Statement st = con.createStatement();
	String quest = request.getParameter("quest").toString();
	String QA = request.getParameter("QA").toString();
	String QB = request.getParameter("QB").toString();
	String QC = request.getParameter("QC").toString();
	String QD = request.getParameter("QD").toString();
	String correctAns = request.getParameter("correctAns").toString();
           out.println("quest : " + quest);

       String qry = "insert into question_deatil(quest,QA,QB,QC,QD,correctAns) values('"+quest+"','"+QA+"','"+QB+"','"+QC+"','"+QD+"','"+correctAns+"')";

         out.println("qry : " + qry);

	int val = st.executeUpdate(qry);

	con.close();
        if(val>0)
        {
          response.sendRedirect("questForm.jsp");
        }

}

catch(SQLException ex){
	System.out.println("SQL satatment not found");
}
}
catch(Exception e){
	e.printStackTrace();
}
}

%>

<html>
<title>Quize application in jsp</title>
<head>

<script>

function validateForm(theForm){

	if(theForm.quest.value==""){
			//Please enter username
			alert("Please enter Question.");
			theForm.quest.focus();
			return false;
	}

      return true;
     }
 </script>
</head>

<body>
<br>
<br/>
<center>

<table border="1" width="450px" bgcolor="pink" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
      <form method="POST" action="" onsubmit="return validateForm(this);">

        <h2 align="center"><font color="red">Quize Application in JSP</font></h2>
        <table border="0" width="400px" cellspacing="2" cellpadding="4">
          <tr>
            <td width="50%"><b>Enter Question:</b></td>
            <td width="50%"><input type="text" name="quest" size="40"/> </td>
          </tr>
	<tr>
            <td width="50%"><b>Enter Answer(A.):</b></td>
            <td width="50%"><input type="text" name="QA" size="40"/> </td>
          </tr>
	 <tr>
            <td width="50%"><b>Enter Answer(B.):</b></td>
            <td width="50%"><input type="text" name="QB" size="40"/> </td>
          </tr>

          <tr>
            <td width="50%"><b>Enter Answer(C.):</b></td>
            <td width="50%"><input type="text" name="QC" size="40"/> </td>
          </tr>

	<tr>
            <td width="50%"><b>Enter Answer(D.):</b></td>
            <td width="50%"><input type="text" name="QD" size="40"/> </td>
          </tr>

	<tr>
            <td width="50%"><b>Correct Answer:</b></td>
            <td width="50%"><input type="text" name="correctAns" size="10"/> </td>
          </tr>

        </table>
	<center>
        <p><input type="submit" value="Submit" name="submit">
          <input type="reset" value="Reset" name="reset"></p>
        </center>
      </form>
    </td>
  </tr>
</table>
</center>
</body>

</html>

وعندما اريد الدخول الى الامتحان فانه سوف ندخل الى الامتحان عن طريق البرنامج quizeApplication.jsp

:wacko: ولكن المشكلة التي تواجهني هي : :wacko:

عندما ادخل اكثر من سؤال الى الامتحان فانه عندما ادخل لكي امتحن عن طريق

quizeApplication.jsp

فانه سوف يظهر اول سؤال ولكن عند الاختيار والضغط على Submit

فانه سوف تظهر جميع الاسئلة وما خذه نفس الحل :mellow: :mellow: :mellow:

اي قصدي اذا كان السؤال الذي حاله هو صح فانه سوف يظهر لي انه جميع الاسئلة صحيحة ويظهر لي نتيجة عدد الاسئلة الموجودة مثلا موجودة ثلاثة اسئلة تظهر درجة امتحاني هي ثلاثة وهذه مشكلة .

وكذلك اذا اضع خطا فسوف يظهر نفس المشكلة ولكن على الحل الخطأ والصور توضح ما اقصد .

المطلوب انه ارجو ان تعينوني وانتم اهل لهذا :)

الاسئلة تظهر واحدة بعد الاخرى ودرجة الامتحان تزداد كلما اكمل السؤال و اتحول الى السؤال الاخر وهكذا

ارجو من الاخوه Herch

علاء

Rohaili

وبقية الاخوه اعضاء المنتدى المحترمين .

سلامي

اخوكم

محمود سامي

post-202915-12654864733557_thumb.gif

post-202915-12654865087724_thumb.gif

تم تعديل هذه المشاركة بواسطة mahmoodsami في 6 فبراير 2010 في 23:10

#3

السلام عليكم ورحمة الله وبركاته

ارجو من الاخوه Herch

علاء

Rohaili

وبقية الاخوه اعضاء المنتدى المحترمين .

الله يبارك فيكم ارجو معاونتكم معي في حل هذه المشكلة وانتم اهل لهذا

سلامي

اخوكم

محمود سامي

#4

السلام عليكم ورحمة الله وبركاته

ارجو من الاخوه Herch

علاء

Rohaili

وبقية الاخوه اعضاء المنتدى المحترمين .

الله يبارك فيكم ارجو معاونتكم معي في حل هذه المشكلة وانتم اهل لهذا لانه تعتبر من المراحل المهمة هذا البرنامج في مشروعي وانا قدم لكم فكرتي وارجو معاونتي

الله يجزيكم خير عني

اخوكم

محمود سامي

#5

أخ محمود لا أفقه كثيراً مما تقول

لذا عندما لا تجد التفاعل المرجو

حاول إعادة صياغة مشكلتك بطريقة أخرى

على كل ضع نسخة من قاعدة البيانات الخاصة بك

حتى نقوم بالتجربة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

السلام عليكم ورحمة الله وبركاته

ا اخي العزيز اشكرك على هذا التنبيه

ولكن كنت اتوقع الصور لتنفيذ البرنامج توضح المشكلة

وهذه قاعدة البيانات

[code
]
DROP TABLE IF EXISTS `mahmood`.`question_deatil`;
CREATE TABLE `mahmood`.`question_deatil` (
`id` int(11) NOT NULL auto_increment,
`quest` varchar(100) collate utf8_unicode_ci default NULL,
`QA` varchar(100) collate utf8_unicode_ci default NULL,
`QB` varchar(100) collate utf8_unicode_ci default NULL,
`QC` varchar(100) collate utf8_unicode_ci default NULL,
`QD` varchar(100) collate utf8_unicode_ci default NULL,
`correctAns` varchar(100) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

وإن شاء الله اجد منكم الجواب وانتم اهل لذلك

ارجوكم والله يبارك فيك وفي بيقية اخوتي في المنتدى

سلامي

اخوكم

محمود سامي

#7
DROP TABLE IF EXISTS `mahmood`.`question_deatil`;
CREATE TABLE  `mahmood`.`question_deatil` (
  `id` int(11) NOT NULL auto_increment,
  `quest` varchar(100) collate utf8_unicode_ci default NULL,
  `QA` varchar(100) collate utf8_unicode_ci default NULL,
  `QB` varchar(100) collate utf8_unicode_ci default NULL,
  `QC` varchar(100) collate utf8_unicode_ci default NULL,
  `QD` varchar(100) collate utf8_unicode_ci default NULL,
  `correctAns` varchar(100) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
#8

السلام عليكم ورحمة الله وباركاته

اخوتي الاعزاء هل احد منكم استطاع ان يتوصل الى حل الله يبارك فيكم

وإن شاء الله ان توصلت ان لاابخل عليكم ولكن والله لحد الان عجزت من التفكير في البرنامج فارجو من الاخوة اعضاء المنتدى المحترمين ان يعينوني

واخص منهم

Herch و علاء الصالحي و Rohaili

وانتم اهل لذلك الله يبارك فيكم ويجعل وقتكم في اعانتي على حل هذه الفكرة لحاجتي الى هذا البرنامج في مشروعي .

سلامي

اخوكم

محمود سامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 9 فبراير 2010 في 15:04

#9

يا أخي, مجهود رائع بارك الله فيك و لكن, حاول تنظيم الكود أكثر لكي تسطيع تتبع و إصلاح الأخطاء بسهوله.

حاول أن تستخدم MVC pattern بأن تستخدم JSP و Servlets معا, (إذا كنت مضطر لإستخدام JSP و Servlets ) و إلا إستخدم Framework مثل JSF, Struts, GWT, JSPX, ......

فإنك حقا ستجد الموضوع أكثر إداريه.

إذا أردت مساعدة الأخوه فأظن أنه مما سيسهل ع الأخوه مساعدتك أن تحمل كود المشروع علي الموقع. (attachment)

#10

السلام عليكم ورحمةالله وبركاته

اخي العزيز هويدي وبقية الاخوه الاعزاء

اشكرك على هذا الاطراء ولكن انا لدي وقت محدد في المشروع (ماجستير ) وتعرف لدي كتابة

وانا الذي توصلت اليه طبعا الفضل الى الله ثم الى اخوتي في المنتدى وقرائتي للكتب

ولكن اخي انا اجد انه servelt معقد وبقية اللغات ليس لدي وقت بان ادرسها وذلك كما اسلفت انه انا محدد بموعد ولدي كتابه البحث ايضا ((( انا افرح بان اتعلم لغات برمجة لما فيها من متعة ولكن السبب الذي ذكرته هو الذي يحددني والله شاهد )).

فارجو منكم ان تعينوني على حل المشكلة حيث تكمن المشكلة فقط في البرنامج الثاني quizeApplication.jsp وانا اجد ان البرنامج باكملة سهل الفهم لولا هذه المشكلة

اضافه الى انه انا وضعت جميع الكود الخاص به ((((((((((((((((( والله شاهد على ما اقول))))))))))))))))))) سوى كان من اكواد او قاعدة بيانات

سلامي الى جميع اخوتي في المنتدى

اخوكم

محمود سامي

#11

كما يقال خير الكلام ما قل ودل.

لو استمريت بطرح أسئلتك بهاته الطريقة فلن تجد اي مساعدة. حدد المشكل بالضبط وضع الكود الذي فيه المشكل فقط. وممكن أيضا ترفق المشروع لمن يريد ان يجربه.

#12

هذه بعض التعديلات استخدم الجافا سكريبت لعملية تعدد الصفحات ... حيث يمكنك تقسيم الصفحة الواحدة و كنها عدة صفحات

شف هذا البرنامج له نفص الفكرة تقريبا

/index.php?showtopic=80358

web.rar

#13

السلام عليكم ورحمة الله وبركاته

ارفق لكم المشروع لمن يريد ان يجربه كي يعيننا على حل المشكلة .

والمشكلة تكمن عندما ادخل اكثر من سوال .

فعند الاجابة عندما اختار جواب السؤال الاول واضغط موافق سوف تعمم الاجابة على جميع الاسئلة وتظهر لي (((( نتجة الكلية ))) وكانه انا ((( اكملت الامتحان ))) علما انه انا فقط مجاوب على ((( سوال واحد )))

واتوقع الصور السابقة المؤشره موضحة المشكلة .

سلامي

اخوكم

محمود سامي

quiz.rar

تم تعديل هذه المشاركة بواسطة mahmoodsami في 10 فبراير 2010 في 00:23

#14

السلام عليكم ورحمة الله وبركاته

اخي الحبيب العيافـي

في البداية انا اشكر تعاونك معي في حل مشكلة برنامجي .

ولكن عندما نفذت برنامج وجدت انه بالنتيجة سوف يظهر لي

الاختيارات التي اخترتها انا في الامتحان ولا يعطيني النتيجة الخاصة بالامتحان .

فارجو ان كان هناك حل في بالك خاص بالنتيجة ترسله الي .

سلامي

اخوكم

محمود سامي

#15

هناك 3 خطوات لحل المشكلة

الاخطوه الاولى في صفحة عرض الاسئلة "quizeApplication"

استبدل الكود السابق بالكود التالي

1: <input type="radio" name="a_<%= rs.getString("id") %>" value= "<%= rs.getString("QA") %>" /></td>
    <td><%= rs.getString("QA") %></td></tr>
<tr>
<td>
2: <input type="radio" name="a_<%= rs.getString("id") %>" value="<%= rs.getString("QB") %>" /></td>
<td><%= rs.getString("QB") %></td></tr>
<tr>
<td>
3: <input type="radio" name="a_<%= rs.getString("id") %>" value="<%= rs.getString("QC") %>" /></td>
<td><%= rs.getString("QC") %> </td></tr>
<tr>
<td>
4: <input type="radio" name="a_<%= rs.getString("id") %>" value="<%= rs.getString("QD") %>" /> </td>
<td> <%= rs.getString("QD") %> </td></tr>

2- انشئ صنف يحتوي على (رقم السؤال - الاجابة المختارة - الاجابة الصحيحة ) وليكن مثلا

	String question;
	String answer;
	String correct;
	public QuezAnswer(String question, String answer, String correct) {
		super();
		this.question = question;
		this.answer = answer;
		this.correct = correct;
	}

	public boolean isCorrect(){
		return (answer.trim().equalsIgnoreCase(correct));
	}

3- في صفحة عرض النتيجة result

اضف الكود التالي

java.util.ArrayList list =new java.util.ArrayList();
		while(rs.next()) {
			list.add(
					new QuezAnswer( 
								rs.getString("id"),
								request.getParameter("a_"+rs.getString("id")),
								rs.getString("correctAns") 
								) 
					);
		}
		int correct=0;
		int count=0;
		// print
		for(int j=0;j<list.size();j++){
			QuezAnswer answer=(QuezAnswer)list.get(j);
			++count;
			if(answer.isCorrect()){
				++correct;
			}
		}
		out.println("Score="+correct+"/"+count);

اتمنى ان تستخدم IDE فقد يقلل عليك وقت تصميم ما تريد ....

كما نه لو استخدمة احد التقنيات فستستفيد فعلا .

#16

السلام عليكم ورحمة الله وبركاته

اخي العزيز العيافي انا الان رجعت من الجامعة ومباشرتا فتحت الانترنت

واشكر مشاركتك علما انه انا لم انفذ اضافاتك الجديد وإن شاء الله عند المساء سوف اطبقه

ولكن لدي سؤال ماذا تقصد ((((اتمنى ان تستخدم IDE فقد يقلل عليك وقت تصميم ما تريد .... ))) فما هو IDE هل تقصد برنامج Netbeans اما ماذا ؟

(((((كما نه لو استخدمة احد التقنيات فستستفيد فعلا)))) وما قو قصدك بالتقنيات ارجو توضيح ذلك ؟

سلامي

اخوكم

محمود سامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 10 فبراير 2010 في 15:36

#17
اقتباس
ولكن لدي سؤال ماذا تقصد ((((اتمنى ان تستخدم IDE فقد يقلل عليك وقت تصميم ما تريد .... ))) فما هو IDE هل تقصد برنامج Netbeans اما ماذا ؟

نعم أعتقد هذا ما يقصده أخي العيافي

أقول لك ثانيه لو إستخدمت مكاتب مساعده (frameworks) فستجد الموضوع أسهل بكثييييييييييييييييييييييييييير. و هناك مكاتب سهله الإستخدام مثل JSF, JSPX

#18

السلام عليكم ورحمة الله وبركاته

اخي العيافي الله يبارك فيك وفي وقتك الذي تصرفه في مساعدتي في حل المشكلة ولكن عندما استخدمت الكود الاخير المرسل من حضرتك

بعضها لم اعرف بالضبط مكانها ( اين اضعها وهل ابقي القديم ام لا ) وحسب ما يلي :

1- فمثلا انا انشأت صنف والذي تقصد به حضرتك Class

حيث اختاريت عندما انشائته Servlet

واعطيت له اسم QuezAnswer

هل اسمه صحيح حسب ما حضرتك صممته في حلك للمشكلة ام اعطيته غير اسم ؟

وهل اختياري الى Servlet هو الاختيار الصحيح في خلق الصنف ؟

        String question; 
        String answer; 
        String correct; 
        public QuezAnswer(String question, String answer, String correct) { 
                super(); 
                this.question = question; 
                this.answer = answer; 
                this.correct = correct; 
        } 

        public boolean isCorrect(){ 
                return (answer.trim().equalsIgnoreCase(correct)); 
        }

2- وكانت لدي مشكلة ((( معقدة ))) في عملية اضافة كود النتيجة result

حيث لم اعرف بالضبط اين اضعه و هل القديم احذفه ؟

والذي اقصد به الكود التالي عرض النتيجة result

java.util.ArrayList list =new java.util.ArrayList(); 
                while(rs.next()) { 
                        list.add( 
                                        new QuezAnswer(  
                                                                rs.getString("id"), 
                                                                request.getParameter("a_"+rs.getString("id")), 
                                                                rs.getString("correctAns")  
                                                                )  
                                        ); 
                } 
                int correct=0; 
                int count=0; 
                // print 
                for(int j=0;j<list.size();j++){ 
                        QuezAnswer answer=(QuezAnswer)list.get(j); 
                        ++count; 
                        if(answer.isCorrect()){ 
                                ++correct; 
                        } 
                } 
                out.println("Score="+correct+"/"+count);

3- حيث ارسلت لك طريقة وضعي الى التعديل الاخير الذي ارسلته الي والذي وضعته الى كودي القديم ولكن لم ( اعرف ان اضعه في مكانه الصحيح ).

فارجو منك بدون زحمة والله يبارك فيك ان تقوم بوضع الكودات المعدلة فقط في اماكنها الصحيحة في الملف المرسل في المرفقات .

الله يبارك فيك اخي وفي وقتك .

سلامي

اخوكم محمود سامي

quiz.rar

تم تعديل هذه المشاركة بواسطة mahmoodsami في 10 فبراير 2010 في 20:46

#19

هذا السكريبت كامل

test2.rar

#20

السلام عليكم ورحمة الله وبركاته

اخي العزيز الله يبارك فيكم وفي عنائك وجعل هذا الجهد في ميزان حسناتك وبارك الله لك في وقتك

ولكن تحدث لدي مشكلة عند تنفيذ الامتحان (( اي اختيار في السؤال اختاره سوف يخرج لي النتيجة خطأ و درجة الامتحان كذلك ))

فارجو من حضرتك الله يبارك فيك فقط ان تعدلي هذا الخطا الله يبارك فيك .

والصورة سوف تعبرلك عن التنفيذ الذي حصل فية ما بينته سابقا .

سلامي

اخوكم

محمود سامي

post-202915-1265837532303_thumb.gif

post-202915-12658375664966_thumb.gif

تم تعديل هذه المشاركة بواسطة mahmoodsami في 11 فبراير 2010 في 00:36

#21

عند اضافة سؤال كنت اعتقد بانك تضيف الاجابه الصحيحة في الخانة "Correct Answer:"، ولكن يبدوا انك تضيف اسم العمود واعتقد بان فكرة اضافة اسم العمود أفضل (كما فعلت انت) من ما قمت به انا.

لحل المشكلة يمكنك استبدال الكود في صفحة quizeApplication.jsp بالكود التالي

<%-- 
    Document   : quizeApplication
    Created on : Feb 5, 2010, 6:57:26 PM
    Author     : Mahmood2010
--%>

<%@ page import="java.sql.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>JSP Page</title>
</head>
<body>

<form name="form1" action="result.jsp" method="post">
<%
String ans=" ";
if(request.getParameter("correctAns")!=null)
{
    ans=request.getParameter("correctAns").toString();
}
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";
Statement st = null;
ResultSet qrst;
ResultSet rs = null;

String id=request.getParameter("id");
System.out.println("id:"+id);
int i=1;
String s,g;

int count=0;
try {
Class.forName(driver);
conn = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","");
st = conn.createStatement();
//for(i=1;i<=2;i++)
// {
rs = st.executeQuery("select * from question_deatil");

while(rs.next()) {
%>

<br>
<br/>
<center>

<table border="1" width="500px" bgcolor="pink" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
 <h2 align="center"><font color="red">Online Quize Application</font></h2>
<b>Select Correct Answer</b>
        <table border="0" width="500px" cellspacing="2" cellpadding="4">
 <tr>

<td width="50%"> Question:</td>
<tr>
<td><%= rs.getString("quest") %></td></tr>
<tr>
<td>
1: <input type="radio" name="a_<%= rs.getString("id") %>" value= "QA" /></td>
    <td><%= rs.getString("QA") %></td></tr>
<tr>
<td>
2: <input type="radio" name="a_<%= rs.getString("id") %>" value="QB" /></td>
<td><%= rs.getString("QB") %></td></tr>
<tr>
<td>
3: <input type="radio" name="a_<%= rs.getString("id") %>" value="QC" /></td>
<td><%= rs.getString("QC") %> </td></tr>
<tr>
<td>
4: <input type="radio" name="a_<%= rs.getString("id") %>" value="QD" /> </td>
<td> <%= rs.getString("QD") %> </td></tr>
<tr>
<td>
<center>
   </center></td></tr>
</table>

 </td>
  </tr>
</table>


<%
}}
// }
catch (Exception ex) {
ex.printStackTrace();

%>

<%
} finally {
if (rs != null) rs.close();
if (st != null) st.close();
if (conn != null) conn.close();
}
%>

<input type="submit" value="Submit" name="submit">
</form>
</center>
</body>
</html>

تم تعديل هذه المشاركة بواسطة العيافـي في 11 فبراير 2010 في 08:42

#22

قمت بترتيب الكود قدر ما استطيع ..

استخدمت صنف خاص بالاتصال و وجلب البيانات من قاعدة البيانات .. يمكنك توسيع الصنف على حسب حاجتك.

سيساعدك هذا الصنف من اعادة تكرار كتابة اكواد الاتصال مع قاعدة البيانات.

mahmoodsami.rar

#23

لقد قمت بعمل عسي الله أن ينفعك و ينفعني به :) , ستجده في المرفقات

لسهولة إستخدام المرفقات:

1- حمل eclipse ee من هنا

2- قم بنسخ mysql.jar (أو أيا كان إسمه) إلي المسار $TOMCAT/lib

3- بعد فك المشروع إذهب إلي :

MyQuize/WebContents/META-INF/context.xml و قم بتعديل معلومات الإتصال الخاصه ب mysql لتناسبك

4- تأكل من أن إسم كل من WEB-INF و META-INF بالأحرف الكبيره (أظن بسبب عملي على اللينوكس قد تجدها تحولت للأحرف الصغيره)

5- إفتح eclipse ثم إختر File-> import -> existing project into workspace

MyQuize.zip

#24

السلام عليكم ورحمة الله وبركاته

انا متأسف في تاخيري لشكركم وذلك كون ليس لدي انترنت في اليومين السابقين

اخوتي الاعزاء اشكركم شكر الجزيل على مساعدتكم لي على حل مشكلتي ( برنامج الامتحان )

واخص بالذكر اخي الذي الله يبارك فيه ويجزيه عني خير الجزاء وجعل الجنه مثواه

(((((((((( العيافـي ))))))))))))

وكذلك اشكر الذي نصحوني ووجهني في اسلوب طرح مشكلتي اخوتي herch و علاء و هويدي جزاهم الله خير

سلامي

اخوكم

محمود سامي

#25

السلام عليكم ورحمة الله وبركاته

اخي العزيز العيافي و اخوتي الاعزاء اعضاء المنتدى

هل هناك ايعازات يمكن ادخالها الى برنامج الدخول الى الامتحان من اجل ما يلي :

1- تحديد تاريخ ووقت الامتحان

مثلا عندما يدخل تظهر له رسالة تبين ان وقت الامتحان يكون في 14\2\2010 في الساعة التاسعة صباحا وعند هذا الوقت سوف يسمح له بالدخول ( اي الامتحان يكون غدا مثلا ) وغير هذا الوقت غير مسموح له بالامتحان.

2- عند دخول الامتحان يكون محدد بوقت وليس الوقت مفتوح ( مثلا خمسة دقائق ويظهر عداد تنازلي وعند الانتهاء تخرج الصفحة التابعة الى الامتحان الى صفحة النتائج .

الله يبارك فيكم

ارجو معاونتي عليها .

سلامي

اخوكم

محمود سامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 13 فبراير 2010 في 13:37

مواضيع مشابهة