考试管理系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计报告

( 2011 / 2012 学年第 1 学期)

题目:考试管理系统

专业高分子材料与工程

组长姓名于鑫

组长学号B********

成员姓名学号王淑娟B********

龙玲B10060204

指导教师朱旻如

指导单位计算机学院软件教学中心

日期2011年9月14日

一、分析及结构设计

1、程序需要完成的功能:

(1)实现考生信息的管理:考生信息包括考生姓名和学号,用文件存储信息,并可对信息进行增、删、改。

(2)考试过程管理:

a):设置考试题数:可以设置默认值,并允许修改

b):抽取试题:在考生考试过程中,可以从试题库中随机抽取规定数量的试题并显示,且要保证题目不能重复

(3)模拟考试过程:首先输入学号,已经参加过考试的给出提示,不允许再考。考生答题完成后立刻给出成绩,排序后存储到成绩文件中。同时要记录考生参加考试的时间(年,月,日)。

(4)试题库管理:以文件形式存储试题,可增加试题到试题库中。每个试题包括题干、4个备选答案以及标准答案

(5)成绩查询:输入考生姓名进行成绩的查询,当考生出现同名时,输入学号查询,以及查看考生的成绩排名。

2、可能遇到的问题:

(1)当分模块进行程序的设计时,要考虑各模块间的衔接问题,避免语句的重复及语法错误

(2)数据结构的选择:存储考生信息及试题时,可以用结构体数组存储从文件中读取考生信息及试题

(3)题库的管理:保持题目的唯一性和随机性

(4)考生重名时情况的处理办法

二、开发设计

1、程序结构:程序包括以下模块

main()函数:主函数,用于控制菜单函数和各个子子函数

menu()函数:菜单函数,用于控制各个功能模块

test()函数:考试过程,考生进入考试系统后,根据界面提示依次完成读取试题duqushiti()函数和考生答题kaoshi()函数两个过程

manage()函数:考生信息的管理,根据界面提示实现对考生信息的增加,删

除和修改,其中包括 regist()函数、deleter()函数、modify()函数search2()函数:查找考生信息及考试成绩通过search()函数实现

2、主要数据结构说明

定义学生结构体数组和试题结构体数组

(a)学生结构体数组

struct student

{

char name[20];//考生姓名,字符长度不超过20

char num[30];//考生学号,字符长度不超过30

float score;//考生成绩

int flag;//参加考试的标志1 已经参加0 未参加

}stu[N];

(b)试题结构体数组

struct shiti

{

char shiti[100];//题目,字符长度不超过100

char Ans[20];//答案,字符长度不超过20

int flag;//题目被选作标记,以免重复,以保证其唯一性和随机性

}T[N];

定义两个结构体数组可以将每一组数据作为一个整体,在函数中以便整体调用它们

3、核心功能的实现

主函数实现整个程序的运行

int main()

{

int choice=1;

menu();

printf("choose one operation you want to do:\n");

scanf("%d",choice);

switch(choice)

{

case 1: test(); break;//学生考试

case 2: manage(); break;//信息管理

case 3:search2(); break;//信息查询

case 0: printf("退出");system("pause");exit(1);//退出

default:printf("输入错误!");

}

return 0;

}

通过函数的调用,实现考试过程的管理,模拟考试,考生信息管理(包括信息的查询和信息的修改与删除),试题库管理,成绩查询。

五、源代码

#include

#include

#include

#include

#define N 100

struct student

{

char name[20];

char num[30];

float score;

int flag;//参加考试的标志1 已经参加0 未参加

}stu[N];

struct shiti

{

char shiti[100];

char Ans[20];

int flag;

}T[N];

int i,j,k;

int len;//学生人数

int tknum=10;//题库题目数

int tinum=10;//考试试题数

float fen=10;//每题分数

char str;

void menu()

{

printf("*******1.进入考试*******\n"); printf("*******2.信息管理*******\n"); printf("*******3.信息查询*******\n"); printf("*******0.退出系统*******\n");

}

void menuTest()

{

printf("*******1.学生注册*******\n");

printf("*******2.读取试题*******\n");

printf("*******3.开始考试*******\n");

printf("*******0.返回菜单*******\n"); }

void menuBase()

{

printf("*******1.删除记录*******\n");

printf("*******2.修改记录*******\n");

printf("*******0.返回菜单*******\n"); }

相关文档
最新文档