cambaluc的个人博客分享 http://blog.sciencenet.cn/u/cambaluc

博文

准备上网课时用到的小程序段

已有 2953 次阅读 2020-3-8 16:10 |个人分类:计算机|系统分类:教学心得| python

1.建立微信群时,查加群情况及规范群昵称。

2月初接通知要准备上网课,为了联系学生建立了课程微信群。开始学生并没有全部入群,且多数同学群昵称也不规范,编写了下列python代码,导出了群成员名单,并用Excel和选课学生名单对比,列出还差谁,以及未改群成员名为学号+姓名规范格式的同学。很快完整地建立课程群,在初期测试和平时交流中起了很好的作业,遇到的问题也能及时沟通。

import itchat

itchat.auto_login()

xiandairoom=itchat.search_chatrooms(name="线性代数18053132")

groupMember=itchat.update_chatroom(xiandairoom[0]['UserName'], detailedMember=True)

for c in groupMember['MemberList']:

        print(c['DisplayName'])

 

2.分割教材PDF文件。

   因教材PDF文件太大,在微信群中超过文件大小限制,也不方便网络传输和下载,并且书后有习题答案,所以编写以下代码对PDF教材文件按章节进行了分割。先在微信群中发放给同学前几章的文件。

import PyPDF2

reader=PyPDF2.PdfFileReader(open("线性代数.pdf","rb"))333

output=PyPDF2.PdfFileWriter()

for i in range(67,92):

    output.addPage(reader.getPage(i))

outputStream=open("线性代数第3.pdf","wb")

output.write(outputStream)

outputStream.close()

3.建立查看学生照片的小网站

    “为了增强上网课仪式感”,方便记住学生,生成了有学生名单和照片的小网站。过程简单,但描述有点复杂,就是利用学生名单数据库关联以学号为文件名的照片,配置IIS,ASP生成html文件。也可不建网站,用名单生成html文件等其它简便方式达到效果

学生照片网.jpg

4.为了防止学生复制作业上交,给每位同学出不一样的题。

如本课程中有“计算行列式”,让学生计算以自己的学号按规则生成的行列式,或随机出一些题目。教师用C语言或EXCEL生成不同学生的答案,来核对批改。如以下代码为读名单,并生成答案的主要程序段:

int readStudent_outAnswer()

{

   int i,n,j;

   double xh[100];

   double *A=new double [2*2];

   double *B=new double [3*3];

   char xm[100][10];

   char c_xh[20];

   FILE *fp,*fpo;

   if((fp=fopen("BookMd18053.txt","r"))==NULL)

   {printf("cannot open file\n");

   exit(0) ;}

   i=0;

  while(!feof(fp))

   {  fscanf(fp,"%lf,%s\n",&xh[i],&xm[i]);//读学号,姓名

    i++;

   }

   n=i;

    printf("n:%d\n",n);

   if((fpo=fopen("Book_out_homework2.txt","w"))==NULL)

   {printf("cannot open file\n");

   exit(0) ;}

   for(i=0;i<88;i++)

   {

       sprintf(c_xh,"%lf",xh[i]);

     for(j=0;j<8;j++)

     {B[j]=(int)(c_xh[j]-48);

     }

     B[8]=-2;

     A[0]=B[4]; A[1]=B[5]; A[2]=B[6]; A[3]=B[7] ;

     c_xh[8]='\0';

    printf("%s,\t|A|=%.2lf,\t|B|=%.2lf,\t%s\n",c_xh,det(A,2),det(B,3),xm[i]);

// fprintf(fpo,"%s,\t|A|=%.2lf,\t|B|=%.2lf,\t%s\n",c_xh,det(A,2),det(B,3),xm[i]);

   }

   fclose(fp);fclose(fpo);

   return 1;

}

以上是简单总结交流。

上网课一周,体会到“没黑板真是不行”,这点常识居然是最深切的体会。




https://blog.sciencenet.cn/blog-797552-1222412.html

上一篇:用Python、Matlab、C实现傅立叶变换FFT()
下一篇:线性代数(1)_这样开始讲“行列式”
收藏 IP: 124.64.18.*| 热度|

2 刘立 吴斌

该博文允许注册用户评论 请点击登录 评论 (3 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-25 18:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部