Wrox Programmer Forums
|
VB How-To Ask your "How do I do this with VB?" questions in this forum.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the VB How-To section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old August 23rd, 2006, 02:23 PM
Authorized User
 
Join Date: Dec 2004
Posts: 26
Thanks: 0
Thanked 0 Times in 0 Posts
Default Teacher Needs Help!

Hello,

I am a school teacher who wants to create a program that will serve to test my students on the chemistry that we have learned. Let me make this clear of what I am asking, I am not asking how to code this project but in general how I should go about it.

I want to create a timed test that will allow them to answer a series of questions by clicking on a A B C or D radio buttons. I would like to clear the screen and put up the next question after each question is asked. I am thinking that having a new form pop up for each question would not be the way to go. I want the screen to look the same for each question except for the question and the possible answers.

Also, I would like the students to be able to review the questions that they missed.

Any help is appreciated.

Little Shell
 
Old August 23rd, 2006, 04:27 PM
Friend of Wrox
 
Join Date: Nov 2004
Posts: 1,621
Thanks: 1
Thanked 3 Times in 3 Posts
Default

I think I would seriously consider using web pages. This way you could have a pretty standard template with <Put Questions Here>, <Put Answer Options Here> types of sections that you could flesh in pretty quickly.

When you say “timed,” do you mean assesed for time taken, or that the questions need to time out?

What do you have access to?
Do you have access to an actual web server at your campus?
Can you add a web server to the machine(s) the students will be using?
Are you using VB 6? Access? VB.NET?
Will more than one student be accessing the fruit of your labor at the same time?
 
Old August 23rd, 2006, 05:45 PM
Authorized User
 
Join Date: Dec 2004
Posts: 26
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Thank you for your reply.

I am not that familiar with using web pages but that wouldn't stop me from learning and using it, but how would web pages be better than using a Windows App?

When I say "timed", I want to merely time the length of time it takes for the student to answer the questions.

Some of the computers will have access to a web server and others will not. We could, however, go with IIS on all machines.

I am using VB.Net 2003 edition, but do plan to update to 2005 soon.

How do you perceive I could use Access or a database?

I expect that several students will be accessing the program simultaneously. I didn't think this would be a problem because I was originally thinking of it as a Windows App. on each computer.

Your questions and insight are just the kind of discussion I was hoping for.

Thank You,

Little Shell
 
Old August 24th, 2006, 08:49 AM
Friend of Wrox
 
Join Date: Jun 2003
Posts: 2,189
Thanks: 5
Thanked 59 Times in 57 Posts
Send a message via MSN to gbianchi
Default

Hi there...

my preference is to make a desktop application.
you could have the same standard for every question, have more control over back and forward button and forget about having web access (but you always need the computer on the network).

if you can don't use access, it will have some problem with concurrent connections, and you will have more security on a SQL Server.

the distribution could be a little more tricky if the app is desktop, but it could be easy handle checking file versions.

HTH

Gonzalo
 
Old August 24th, 2006, 10:11 AM
Friend of Wrox
 
Join Date: Nov 2004
Posts: 1,621
Thanks: 1
Thanked 3 Times in 3 Posts
Default


    I like the web app approach because you can so easily have a source file that you use to begin each new screen/pag/form that you will be showing to the user. That's not the only approach by any means, and there could very well be reasons to go with a straight Windows Application (which is a technical term, not a characterization) instead.

    There is no problem having multiple users accessing the program at the same time; You do need to write what you write with that in mind as context. You need to ensure you don't have database collisions (for instance) and you need to plan how you will handle the types of issues that multiple simultaneous users can raise.

    Timed is much easier than timed out. Timed out necessitates the program initiating action, whereas timed only requires storing the beginning time, then comparing it to the ending time.

    One thing you can do with a database (DB) for this type of undertaking is to store the questions, the title across the top of a given question page, possible answers (if multiple choice) and the correct answer and so forth. This way, the program contains only the knowledge of how to present the data and how to interact with the user, and all of the content that is thus displayed is carried in the DB.
    When you need to change part of the text (a typo, some unclear question body, etc.) you only need modify the data in the DB, rather than having to modify, recompile, and redistribute the .EXE.
    The DB can also cary just which questions will be asked, based upon who it is taking the test, as well as caryying the question order. There's a lot you can do with a DB, and VB can interact with Access, SQL Server, MyDB, Oracle, et al. very easily. Data access is a very important programming need, and Microsoft has put in a lot of work to aid programmers in this undertaking.

    It will help you to write down some "stories" describing how the students will interact with the program, what the overview use of the program is to be, how the grader will interact with the program, what kinds of physical output the program will have (paper reports, updating central administration's database of grades/progress), and other aspects of the appearance/character of this program's integration into the lives of those whose lives it integrates with. Each of these would be a separate story, and a story connecting these separate "tales" would be helpful, too. These could be a sequence of hand-drawn screen shots, or a narrative (both have their uses; no reason to eschew the one for having done the other). This will help you get clear in your mind what the thing will look like. This dramatically improves the end result, and makes the overall project development time—including the time taken to create the stories—shorter than the development time by itself without. (Reduces mistakes/wrong turns and improves the consistency of look/feel as well {ie, improves quality}.)
    Interview possible users for input on what they need for their part in interacting with this program.

    Though it is true that a networked DB (Oracle, SQL Server) has more security, and has better control of issues of concurrency, it does not sound like you are writing something large enough to make that a show-stopper—at least not to me.
 
Old August 26th, 2006, 05:25 PM
Friend of Wrox
 
Join Date: Jun 2003
Posts: 627
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Hello Little Shell,

before coding, there is some considerations to keep in mind.
Your idea is to make a desktop application that runs for each student's computer, and that is fine. But where the data (questions) are got from? Are you thinking to hard-code them or to read them from some kind of centralized or local data (like a database or configuration files?) And how do you want to submit/store the results? I guess for each student you want to know the answer for each question, and then the total time taken, or it is supposed to be a timed test (that is, they have only a certain time to finish it?)

The app per se is not very difficult to write, but how to design it (as you already saw by the previous posts) depends on how the data is retrived/stored.

Personally (and I say personally) I will use only one form. I will create a basic FormControl, with a label (the question) and an array of Choice buttons. The Form will read the first question and associated answers (from some place), and add one of this Control, setting the right label and choices. When the students a Next button, a new question is read, a new Control is created and the previous are made invisible. And so on, so that only one Control will be visible at the same time, and the students can navigate them through a Next and Previous button (that will make the right COntrol visible, all the other invisible.
When the students press the Done button, you iterate through all Controls, and for each of them you store the answer in some place (file, database or whatever)

This is NOT the only way to do it, it is just the first to come to my mind. The advantage is that it is dynamic, to make another test you have only to change the data, but the app will remain only the same. Instead of using a control, you can also use the same label and Choice buttons, and change them for every questions (that will be easier to code, but you need a way to "remember" the answer for each question. Either ways will be ok.

Hope that helps...
 
Old August 29th, 2006, 03:54 PM
Authorized User
 
Join Date: Dec 2004
Posts: 26
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Thank you to all who responded! You have given me the constructive feed back that I requested. Now, I'll get to work.

Little Shell










Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.