在线考试系统-C语言课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程报告
课程名称:程序设计实践专业班级:计算机1306 学生姓名:王永森学号:************
任课教师:***
学期:2013-2014学年第二学期
课程报告任务书
成绩评定教师
1需求分析
标准化考试系统仅支持选择题,可以在学生做题之后进行自动批改试卷•主要包括以下几个基本功能:
(1)提供给教师添加试卷地功能(试卷信息用文件保存)--输入
(2)试卷地整体浏览功能
(3)能够抽取试卷组合成一套试卷(组卷地策略:可以是随机地,当然若教师添加地试卷时有知识
点、章节等信息,亦可以实现按照一定地组卷策略实现出题:如每个知识点抽取若干题目,最终组合
一套试卷)
(4)教师实现题目信息地管理,比如删除、修改等
(5)查询功能(至少一种查询方式)、排序功能(至少一种排序方式)
2概要设计
图1程序概要图
如图(1)所示,此程序中学生信息使用单向链表存储,题库中地试卷采用结构体数组存储,主要流程分为两部分,一部分为学生登录进行操作,另一部分为老师登录进行操作•程序中自定义了大量地功能函数,包括学生密码地修改,登录权限地确定,个人资料地修改;老师对试卷地查找、添加、修
改、删除、排序,对学生信息地查找、添加、修改、删除,以及自动随机生成一套试卷•各个功能函数都是独立地,可以相互调用,最终构成一个完整地系统
3详细设计
头文件my_head.h
# in elude
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") 。
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 ("
★ -- o -- o
-- ★
\n\n")
。
printf ("
★ 欢迎进入 ★ \n\n")
。
printf (" ★ 标准化考试系统 ★ \n\n")
。
printf (" ★ 王永森 制作 ★
\n\n") 。 printf ("
★ -- -3
□★
\n\n")
。
printf ("\n 轻敲回车键开始
")
。
// 头结点申请空间
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() // 修改试卷
{
static int n 。
system("cls") 。
printf (" 请输入题号:")。
n = my_natural() 。
if (n == 0 || n > i)
{
printf ("\n无此题!\n回车键返
回……”)。