1.程序填空题
给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
int fun(char *s)
{
int sum=0;
while(*s)
{
if(*s>='0' && *s<='9')
/**********found**********/
sum+= *s- __1__ ;
/**********found**********/
__2__;
}
/**********found**********/
return __3__ ;
}
int main()
{
char s[81];
int n;
printf("\nEnter a string:\n\n");
gets(s);
n=fun(s);
printf("\nThe result is: %d\n",n);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#define M 5
/************found************/
int fun(int n, int xx[][])
{
int i, j, sum=0;
printf( "\nThe %d x %d matrix:\n", M, M );
for( i = 0; i < M; i++ )
{
for( j = 0; j < M; j++ )
/************found************/
printf( "%4f ", xx[i][j] );
printf("\n");
}
for( i = 0 ; i < n ; i++ )
sum += xx[i][i]+xx[i][ n-i-1 ];
return( sum );
}
int main( )
{
int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
printf ("\nThe sum of all elements on 2 diagnals is %d.",fun(M, aa));
return 0;
}
3.程序设计题
编写函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
例如,若输入字符串“-1234”,则函数把它转换成整数值-1234。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
void NONO(void);
long fun(char *p)
{
}
int main()
{
char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char s[20] ;
long n ;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(fp, "%s", s) ;
n = fun(s);
fprintf(wf, "%ld\n", n) ;
}
fclose(fp) ;
fclose(wf) ;
}
1.(1)'0' (2)s++ (3)sum
2. int fun(int n, int xx[M][M])
printf( "%4d ", xx[i][j] );
3. long fun(char *p)
{
long num=0,t=1;
int i=0;
if (p[0]=='-')
{
t=-1; i=1;
}
for (;p[i]!='\0';i++)
{
num=num*10+(p[i]-'0');
}
return t*num;
}
第96套参考答案1.程序填空题
给定程序中,函数fun的功能是:判定形参a所指的N*N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1,;不是,函数返回值为0。“幻方”的判定条件是:矩阵的每行、每列、主对角线及反向对角线上元素之和都相等。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 3
int fun(int (*a)[N])
{
int i,j,m1,m2,row,colum;
m1=m2=0;
for(i=0; i<N; i++)
{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; }
if(m1!=m2) return 0;
for(i=0; i<N; i++)
{
/**********found**********/
row=colum= __1__;
for(j=0; j<N; j++)
{ row+=a[i][j]; colum+=a[j][i]; }
/**********found**********/
if((row!=colum) __2__ (row!=m1)) return 0;
}
/**********found**********/
return __3__;
}
int main()
{
int x[N][N],i,j;
printf("Enter number for array:\n");
for(i=0; i<N; i++)
for(j=0; j<N; j++)
scanf("%d",&x[i][j]);
printf("Array:\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
printf("%3d",x[i][j]);
printf("\n");
}
if(fun(x)) printf("The Array is a magic square.\n");
else printf("The Array isn't a magic square.\n");
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串中最大包含5位八进制数字字符。
例如,若输入77777,则输出32767。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int fun(char *p)
{
int n;
/**********found**********/
n= *P-'o';
p++;
while( *p!=0 )
{
/**********found**********/
n=n*7+*P-'o';
p++;
}
return n;
}
int main()
{
char s[6];
int i,n;
printf("Enter a string (Ocatal digits): ");
gets(s);
if(strlen(s)>5)
{
printf("Error: String too longer !\n");
exit(0);
}
for(i=0; s[i]; i++)
if(s[i]<'0'||s[i]>'7')
{ printf("Error: %c not is ocatal digits!\n",s[i]);exit(0); }
printf("The original string: ");
puts(s);
n=fun(s);
printf("\n%s is convered to integer number: %d\n",s,n);
return 0;
}
3.程序设计题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中。编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
#define N 16
typedef struct
{
char num[10];
int s;
} STREC;
STREC fun(STREC *a, char *b)
{
}
int main()
{
STREC s[N]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",91},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},
{"GA014",91},{"GA011",77},{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h;
char m[10];
int i;FILE *out ;
printf("The original data:\n");
for(i=0; i<N; i++)
{
if(i%4==0) printf("\n");
printf("%s %3d ",s[i].num,s[i].s);
}
printf("\n\nEnter the number: ");
gets(m);
h=fun( s,m );
printf("The data : ");
printf("\n%s %4d\n",h.num,h.s);
printf("\n");
out = fopen("out.dat","w") ;
h=fun(s,"GA013");
fprintf(out,"%s %4d\n",h.num,h.s);
fclose(out);
return 0;
}
1.(1)0 (2)|| (3)1
2. n= *p-'0';
n=n*8+*p-'0';
3. STREC fun(STREC *a, char *b)
{
STREC t;
int i;
t.num[0]='\0';
t.s=-1;
for (i=0;i<N;i++)
if (strcmp(a[i].num,b)==0)
{
t=a[i]; break;
}
return t;
}
第97套参考答案1.程序填空题
给定程序中,函数fun的功能是:判断形参s所指字符串是否为回文。若是,函数返回1,否则返回0。回文是指顺读和倒读都一样的字符串(不区分大小写字母)。
例如,字符串LEVEL和Level都是回文,而字符串LEVLEV就不是回文。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int fun(char *s)
{
char *lp,*rp;
/**********found**********/
lp= __1__ ;
rp=s+strlen(s)-1;
while ((toupper(*lp)==toupper(*rp)) && (lp<rp))
{
/**********found**********/
lp++; rp __2__ ;
}
/**********found**********/
if(lp<rp) __3__ ;
else return 1;
}
int main()
{
char s[81];
printf("Enter a string: ");
scanf("%s",s);
if(fun(s)) printf("\n\"%s\" is a Palindrome.\n",s);
else printf("\n\"%s\" isn't a Palindrome.\n",s);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
/**************found**************/
void fun(int a,int b,int c)
{
if(a+b>c && b+c>a && a+c>b)
{
if(a==b && b==c)
return 3;
else if(a==b||b==c||a==c)
return 2;
/**************found**************/
else retrun 1
}
else return 0;
}
int main()
{
int a,b,c,shape;
printf("\nInput a,b,c: ");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d, b=%d, c=%d\n",a,b,c);
shape =fun(a,b,c);
printf("\n\nThe shape : %d\n",shape);
return 0;
}
3.程序设计题
编写函数fun,其功能是:计算3到n之间(含3和n)所有素数的平方根之和。
例如,在主函数中给n输入100后,输出为:sum=148.874270。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <math.h>
void NONO(void);
double fun(int n)
{
}
int main()
{
int n;
double sum;
printf("\n\nInput n: ");
scanf("%d",&n);
sum=fun(n);
printf("\n\nsum=%f\n\n",sum);
NONO();
return 0;
}
void NONO(void)
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int n, i ;
double s ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\n", s) ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)s (2)-- (3)return 0
2. int fun(int a,int b,int c)
else return 1;
3. double fun(int n)
{
double s=0.0;
int i,k;
for (i=3;i<=n;i+=2)
{
for (k=3;k<=i/3;k+=2)
if (i%k==0) break;
if (k>i/3)
s+=sqrt(1.0*i);
}
return s;
}
第98套参考答案1.程序填空题
给定程序中,函数fun的功能是:在3*4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
例如,有下列矩阵
1 2 13 4
7 8 10 6
3 5 9 7
程序执行结果为:find:a[2][2]=9。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define M 3
#define N 4
void fun(int (*a)[N])
{
int i=0,j,find=0,rmax,c,k;
while( (i<M) && (!find))
{
rmax=a[i][0]; c=0;
for(j=1; j<N; j++)
if(rmax<a[i][j])
{
/**********found**********/
rmax=a[i][j]; c= __1__ ;
}
find=1; k=0;
while(k<M && find)
{
/**********found**********/
if (k!=i && a[k][c]<=rmax) find= __2__ ;
k++;
}
if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);
/**********found**********/
__3__ ;
}
if (!find) printf("not found!\n");
}
int main()
{
int x[M][N],i,j;
printf("Enter number for array:\n");
for(i=0; i<M; i++)
for(j=0; j<N; j++)
scanf("%d",&x[i][j]);
printf("The array:\n");
for(i=0; i<M; i++)
{
for(j=0; j<N; j++) printf("%3d",x[i][j]);
printf("\n\n");
}
fun(x);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:根据形参m的值,计算如下公式的值。

例如,若m=5,则应输出:0.536389。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
double fun ( int m )
{
double y = 1.0 ;
int i ;
/**************found**************/
for(i = 2 ; i < m ; i++)
/**************found**************/
y -= 1 /(i * i) ;
return( y ) ;
}
int main( )
{
int n = 5 ;
printf( "\nThe result is %f\n", fun(n));
return 0;
}
3.程序设计题
编写函数fun,它的功能是:移动字符串中的内容。移动规则如下:把第1到m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
例如,字符串中原有内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
#define N 80
void NONO(void);
void fun(char *w, int m)
{
}
int main()
{
char a[N]= "ABCDEFGHIJK";
int m;
printf("The original string:\n");puts(a);
printf("\n\nEnter m: ");scanf("%d",&m);
fun(a,m);
printf("\nThe string after moving:\n");puts(a);
printf("\n\n");
NONO();
return 0;
}
void NONO(void)
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
char a[N] ;
int m, i ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%d %s", &m, a) ;
fun(a, m) ;
fprintf(wf, "%s\n", a) ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)j (2)0 (3)i++
2. for(i = 2 ; i <= m ; i++)
y -= 1.0 /(i * i) ;
3. void fun(char *w, int m)
{
int k,i,t,n;
n=strlen(w);
for (k=1;k<=m;k++)
{
t=w[0];
for (i=1;i<n;i++)
{
w[i-1]=w[i];
}
w[n-1]=t;
}
}
第99套参考答案
1.程序填空题
给定程序中,函数fun的功能是:建立一个N*N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……依次类推。
例如,若N=5,生成的矩阵为
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 7
/**********found**********/
void fun(int (*a) __1__)
{
int i,j,k,m;
if(N%2==0) m=N/2 ;
else m=N/2+1;
for(i=0; i<m; i++)
{
/**********found**********/
for(j= __2__ ; j<N-i; j++)
a[i][j]=a[N-i-1][j]=i+1;
for(k=i+1; k<N-i; k++)
/**********found**********/
a[k][i]=a[k][N-i-1]= __3__;
}
}
int main()
{
int x[N][N]={0},i,j;
fun(x);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
printf("%3d",x[i][j]);
printf("\n");
}
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#define SIZE 20
int fun(double *s, double *w)
{
int k,i;
double sum;
for(k=2,i=0;i<SIZE;i++)
{ s[i]=k; k+=2; }
/**********found**********/
sun=0.0;
for(k=0,i=0;i<SIZE;i++)
{
sum+=s[i];
/**********found**********/
if(i+1%5==0)
{ w[k]=sum/5; sum=0; k++; }
}
return k;
}
int main( )
{
double a[SIZE],b[SIZE/5];
int i, k;
k = fun(a,b);
printf("The original data:\n");
for(i=0; i<SIZE; i++)
{
if(i%5==0) printf("\n");
printf("%4.0f", a[i]);
}
printf("\n\nThe result :\n");
for(i=0; i<k; i++) printf("%6.2f ",b[i]);
printf("\n\n");
return 0;
}
3.程序设计题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中。编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#define N 8
typedef struct
{
char num[10];
double s;
} STREC;
double fun(STREC *a,STREC *b,int *n)
{
}
int main()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t;
FILE *out ;
int i,j,n;
double ave;
ave=fun( s,h,&n );
printf("The %d student data which is lower than %7.3f:\n",n,ave);
for(i=0;i<n; i++)
printf("%s %4.1f\n",h[i].num,h[i].s);
printf("\n");
out = fopen("out.dat","w") ;
fprintf(out, "%d\n%7.3f\n", n, ave);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(h[i].s>h[j].s) {t=h[i];h[i]=h[j];h[j]=t;}
for(i=0;i<n; i++)
fprintf(out,"%4.1f\n",h[i].s);
fclose(out);
return 0;
}
1.(1)[N] (2)i (3)i+1
2. sum=0.0;
if((i+1)%5==0)
3. double fun(STREC *a,STREC *b,int *n)
{
double sum=0,avg;
int i,j;
for (i=0;i<N;i++)
sum+=a[i].s;
avg=sum/N;
for (i=0,j=0;i<N;i++)
if (a[i].s<avg)
b[j++]=a[i];
*n=j;
return avg;
}
第100套参考答案
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
我有一个帖子属于城市的关系,城市又属于一个州,例如:classPost现在我想找到所有帖子及其所属的城市和州。我编写了以下查询来获取带有城市的帖子,但不知道如何在同一查找器中获取带有城市的相应州:@post=Post.find:all,:include=>[:city]感谢任何帮助。谢谢。 最佳答案 Post.all(:include=>{:city=>:state}) 关于ruby-on-rails-使用Rails事件记录获取二级模型,我们在StackOverflow上找到一个类似的问
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包
目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks
1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进