求救:设计一个题库,要创建哪些表?
答题结果如果不打算保留的话,简单实现就2个表
a 分数表: 用户名(varchar) 分数(decimal)
b 答案表 字段为:科目(varchar)题目编号(integer) 答案(varchar)
思路 把考试结束后的结果 +科目 和 b中的相关记录一一比较
计算 把结果存到a表中
难点是填空的处理 比较的话最好是和答案关键字匹配度来算 问题是比如有个题目答案为 正确 如果他填写“不是不对”,怎么处理?
目前来说是可以的:
1.python有强大的图形库,比如kivy,pyqt等,能够实现复杂的用户界面。
2.python能够很容易的与数据库通信,如SQL,MySQL等。
所以,python可以实现大部分程序软件等,只要个人或团队使用,就可以。
一个软件的实现所用的编程语言不是关键,关键是人和人的思维逻辑。
题库系统, 应该是一个自动组题系统的设计与实现吧, 不知道你的要求中是否包含在线考试等功能, 咱先说题库系统应该如何设计吧
技术框架我觉得应该选用ssm, 毕竟资料很多, 前端页面选一个bootstrap主题, 也挺好看
设计完多角色的权限控制登陆注册后, 就要开始设计组题的模型,应该包含如下几个
题目类型维护, 比如选择题判断题问答题等
题目具体内容维护, 包括难度, 注释, 类型, 参考答案
试卷维护, 根据业务逻辑维护一整套试卷, 与题目是多对多关系
导入导出功能
#include <stdlib.h>
#include <stdio.h>
bool G[2][20]
int main()
{
memset(G,0,sizeof(G))
FILE* input0=fopen("tiankongti.txt","r+")
FILE* input1=fopen("xuanzeti.txt","r+")
FILE* output=fopen("result.txt","a+")
if(input0==NULL||input1==NULL)
printf("can't open the file!\n")
printf("please input the number:\n")
int number
scanf("%d",&number)
while(number--)
{
int rand0=rand()%20+1,rand1=rand()%20+1
if(G[0][number])rand0=rand()%20+1
G[0][number]=true
if(G[1][number])rand1=rand()%20+1
G[1][number]==true
chat ch[2]={0}
while(1)
{
if((ch[0]-48==(rand0+1)/10&&ch[1]-48==(rand0+1)%10))
break
for(int i=0i<2i++)
if(!feof(input0))
{
fprintf(input0,"%c",ch[i])
fscanf(input1,"%c",&ch[i])
}
else break
}
memset(ch,0,sizeof(ch))
while(1)
{
if((ch[0]-48==(rand1+1)/10&&ch[1]-48==(rand1+1)%10))
break
for(int i=0i<2i++)
if(!feof(input1))
{
fprintf(input1,"%c",ch[i])
fscanf(input1,"%c",&ch[i])
}
else break
}
}
printf("finish!\n")
return 0
}
sum=0
k=0
for i in range(n):
sum=sum+a[i]
average=sum/n
for i in range:
if(a[i]>average):
k=k+a[i]
return k
2、编写函数fun求一个不多于五位数的正整数的位数
if(m>9999):
place=5
elif(m>999):
place=4
elif(m>99):
place=3
elif(m>9):
place=2
else:
place=1
return place
3、请编fun函数,求4*4整形数组的主对角线元素的和
sum=0.0
for i in range(4):
sum+=a[i][i]
return sum
4、已知:一元钱一瓶汽水,喝完后两个空瓶换一瓶汽水。问:请输入钱数(大于1的正整数),则根据钱数最多可以喝到几瓶汽水。
s=0
k=0
while m>0:
m=m-1
s=s+1
k=k+1
while k>=2:
k=k-2
s=s+1
k=k+1
return s
5、编写函数fun(x,y),函数的功能是若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。要求必须使用for结构。
主函数的功能是分别计算如下的值:
(1+3+5+……+777)+(2+4+6+……+888)=???
(1+3+5+……+1111)+(2+4+6+……+2222)=???
(1+3+5+……+1999)+(2+4+6+……+1998)=???
s=0
for i in range(x,y+1,2):
s=s+i
return s
6、编写函数main 求3!+6!+9!+12!+15!+18!+21!
s=0
for i in range(3,22,3):
r=1
for j in range(1,i+1):
r*=j
s+=r
print(s)