在线考试系统-C语言课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程报告
课程名称:程序设计实践
专业班级:计算机1306
学生姓名:王永森
学号: 20131692****
任课教师:徐振强
学期: 2013-2014学年第二学期
课程报告任务书
成绩评定教师:
1 需求分析
标准化考试系统仅支持选择题,可以在学生做题之后进行自动批改试卷。主要包括以下几个基本功能:
(1)提供给教师添加试题的功能(试题信息用文件保存)--输入
(2)试题的整体浏览功能
(3)能够抽取试题组合成一套试卷(组卷的策略:可以是随机的,当然若教师添加的试题时有知识点、章节等信息,亦可以实现按照一定的组卷策略实现出题:如每个知识点抽取若干题目,最终组合一套试卷)
(4)教师实现题目信息的管理,比如删除、修改等
(5)查询功能(至少一种查询方式)、排序功能(至少一种排序方式)
2 概要设计
图1程序概要图
如图(1)所示,此程序中学生信息使用单向链表存储,题库中的试题采用结构体数组存储,主要流程分为两部分,一部分为学生登录进行操作,另一部分为老师登录进行操作。程序中自定义了大量的功能函数,包括学生密码的修改,登录权限的确定,个人资料的修改;老师对试题的查找、添加、修改、删除、排序,对学生信息的查找、添加、修改、删除,以及自动随机生成一套试卷。各个功能函数都是独立的,可以相互调用,最终构成一个完整的系统。
3 详细设计
头文件my_head.h
# include
# include
# include
# include
typedef struct student{ //学生信息采用链表char num[20];
char name[20];
char pass[20];
int score;
struct student *next;
} stu;
struct teacher{
char account[20];
char password[20];
} *Admin;
struct tests{ //试题库采用数组char maintest[500];
char a[30];
char b[30];
char c[30];
char d[30];
char ans[30];
int zhangjie;
char nandu[20];
} tests[100];
int ts[100][20];
int i, j, tt;
stu *head, *tail, *pm;
主函数my_main.c
# include "my_head.h"
int main(void)
{
system ("color 1E");
printf (" ------------------★--の--の--★------------------\n\n");
printf (" ------------------★欢迎进入★------------------\n\n"); printf (" ------------------★标准化考试系统★------------------\n\n"); printf (" ------------------★王永森制作★------------------\n\n"); printf (" ------------------★--¤--¤--★------------------\n\n");
printf ("\n 轻敲回车键开始……");
getchar();
i = 0;
j = 0;
tt = 0;
head = (stu *)malloc(sizeof(stu)); // 头结点申请空间head->next = NULL;
my_read();
my_menu();
return 0;
}
添加试题new_tests.c
# include "my_head.h"
void new_tests() //添加试题
{
static int n, l;
system("cls");
printf ("请输入个数:");
n = my_natural();
for (l = 1; l <= n; l ++)
{
i ++;
printf ("请输入题干:%d.", i);
gets(tests[i].maintest);
printf ("请输入A:");
gets(tests[i].a);
printf ("请输入B:");
gets(tests[i].b);
printf ("请输入C:");
gets(tests[i].c);
printf ("请输入D:");
gets(tests[i].d);
printf ("请输入答案(a、b、c、d):");
gets(tests[i].ans);
printf ("请输入章节(数字):");
tests[i].zhangjie = my_natural();
printf ("请输入难度(*号表示):");
gets(tests[i].nandu);
}
save_tests();
printf ("\n新建试题成功!\n回车键返回……"); getchar();
return ;
}
修改试题to_tests.c
# include "my_head.h"
void to_tests() //修改试题{