在线考试系统-C语言课程设计

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

相关文档
最新文档