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

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

课程报告

课程名称:程序设计实践

专业班级:计算机1306

学生姓名:王永森

学号: ****

任课教师:徐振强

学期: 2013-2014学年第二学期

课程报告任务书

成绩评定教师:

1 需求分析

标准化考试系统仅支持选择题,可以在学生做题之后进行自动批改试卷。主要包括以下几个基本功能:

(1)提供给教师添加试题的功能(试题信息用文件保存)--输入

(2)试题的整体浏览功能

(3)能够抽取试题组合成一套试卷(组卷的策略:可以是随机的,当然若教师添加的试题时有知识点、章节等信息,亦可以实现按照一定的组卷策略实现出题:如每个知识点抽取若干题目,最终组合一套试卷)

(4)教师实现题目信息的管理,比如删除、修改等

(5)查询功能(至少一种查询方式)、排序功能(至少一种排序方式)

2 概要设计

图 1程序概要图

如图(1)所示,此程序中学生信息使用单向链表存储,题库中的试题采用结构体数组存储,主要流程分为两部分,一部分为学生登录进行操作,另一部分为老师登录进行操作。程序中自定义了大量的功能函数,包括学生密码的修改,登录权限的确定,个人资料的修改;老师对试题的查找、添加、修改、删除、排序,对学生信息的查找、添加、修改、删除,以及自动随机生成一套试卷。各个功能函数都是独立的,可以相互调用,最终构成一个完整的系统。

3 详细设计

头文件

# include <>

# include <>

# include <>

# include <>

typedef struct student{ , 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 ;

}

修改试题

# include ""

void to_tests() , n);

gets(tests[n].maintest);

printf ("请输入A:");

gets(tests[n].a);

printf ("请输入B:");

gets(tests[n].b);

printf ("请输入C:");

gets(tests[n].c);

printf ("请输入D:");

gets(tests[n].d);

printf ("请输入答案:");

gets(tests[n].ans);

printf ("请输入章节(数字):");

tests[n].zhangjie = my_natural();

printf ("请输入难度(*号表示):");

gets(tests[n].nandu);

}

save_tests();

printf ("\n修改成功!\n");

printf ("回车键返回……");

getchar();

return ;

}

删除学生信息

# include ""

void del_stu() ....\n");

Admin = (struct teacher *)malloc(sizeof(struct teacher));

fread(Admin,sizeof(struct teacher),1,fp);

fclose(fp);

}

if((fp = fopen("","rb")) == NULL) n");

fp = fopen("","wb+");

fclose(fp);

}

else

{

....\n");

s = (stu *)malloc(sizeof(stu));

s->next = NULL;

while (fread(s,sizeof(stu),1,fp) != 0)

{

if (head->next == NULL)

{

head->next = s;

tail = s;

}

else

{

tail->next = s;

tail = s;

}

s = (stu *)malloc( sizeof(stu) );

s->next = NULL;

}

fclose(fp);

}

if ((fp = fopen("","rb")) == NULL) n");

fp = fopen("","wb+");

fclose(fp);

}

else

{

....\n");

相关文档
最新文档