考试管理系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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"); }