在windows7下,从D:\\nolt\\nlot.txt获取教师名单(name list of teachers),从d:\\nolt\\nlos.txt获取学生名单(name list of students),用户依次输入每位教师分配的学生数,程序接收输入后将分配结果存到d:\\nolt\\fod.txt文件中。程序清单如下:

#include<stdio.h>
#include<time.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>

FILE *fpnlot ;    //name list of teachers
    FILE *fpnlos ;    //name list of students
    FILE *fpfod ;    //the result
    int noas , totalnoas  =0;    //number of assigned students,total number of students
    int * seqos ;    //sequence of students
    static int arr[100];

int Rand( int X , int Y )//产生随机数
{
    int temp;
    if(X>Y)
    {
        temp=X;
        X=Y;
        Y=temp;
    }
    return rand()%(Y-X+1)+X;
 
}

int * getrand(void)    //generate the random array index from 0to99
{
    int i;
    int r;
    int temp;
    srand((unsigned)time(NULL));
    for(i=0;i<100;i++) arr[i]=i+1;
    for(i=0;i<100;i++)
    {
        r=Rand(0,99);
        temp=arr[i];
        arr[i]=arr[r];
        arr[r]=temp;
    
    }
    for(i=0;i<100;i++)    //added
    {printf("arr=%d  ",arr[i]);}    //added
    return arr;
}

int writelot(void)    //write list of teachers to fod
    {
    char nameot = 0;
        while(1)
    {
    nameot = getc(fpnlot);    
        
    if (nameot ==  '\n' )
        break;
    else
        putc(nameot,fpfod);
    }
    fprintf(fpfod,"\n");        
    return 0;
    }

int writelos(void)    //write list of students to fod
    {    
        int count , j , k  = 0;
        char nos;
        k = totalnoas;//随机数学生序号偏移量
        for(count=0;count<noas;count++)//打印学生名字次数
        {
                rewind(fpnlos);//回到学生名单开头
        printf("count:%d  ",count);    
        j=  arr[0+k]  ;//获得与学生序号对应的随机数
        printf("j:%d   k:%d  \n",j,k);
        k++;//随机数组序数加一        
        
          while(1)
        {
           for(; j>0 ; j--)
                        
               {
                     while((nos=fgetc(fpnlos))!= '\n');
                        }
        if ((nos=fgetc(fpnlos)) == '\n')
        {break;
                }
        else
        {fputc(nos,fpfod);}
        }
    fprintf(fpfod,"\n");                    
            
               }    
    fprintf(fpfod,"\n");         
    return 0;
    }

int main()
{
    int i,not ,judgescanf = 0 ;
fpnlot=fopen("D:\\nolt\\nlot.txt","r");
if (fpnlot== NULL )
    {
        perror("nlot.txt can't be open");
        exit(EXIT_FAILURE);
    }
fpnlos=fopen("d:\\nolt\\nlos.txt","r");
if (fpnlos== NULL)
   {
       printf("nlos.txt can't be open");
       exit(EXIT_FAILURE);
    }
fpfod=fopen("d:\\nolt\\fod.txt","a+");
if (fpfod == NULL)
   {
       printf("fod.txt can't be open");
       exit(EXIT_FAILURE);
    }

seqos = getrand();
not=8;
for (i=0;i<not;i++)
    {
writelot();
      do {      //from the writelot()
    /*if (noas>99-totalnoas)
        break;*/
    printf("%d please enter the number to assign:",totalnoas);    
           judgescanf=scanf("%d",&noas);
        getchar();        
        }
            while ((noas>99-totalnoas)||(judgescanf!=1)||noas<0);
    writelos();
        fprintf(fpfod,"\0");
        totalnoas += noas;
    }
if ( fclose(fpnlot)!=0)
   printf("error close");
if ( fclose(fpnlos)!=0)
   printf("error close");
if ( fclose(fpfod)!=0)
printf("error close");

return 0;

}

按教师名单分配学生抽签程序相关推荐

  1. 设计评选优秀教师和优秀学生候选人的程序。

    设计评选优秀教师和优秀学生候选人的程序.如果学生的分数大于90,则可评为优秀生;如果教师发 表的论文数大于 3,则可评为优秀教师.具体要求如下: (1)定义基类Base:①保护数据成员 char na ...

  2. 2.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出来。 图 12.5 类结构 类 base char name[8]; 含

    #define _CRT_SECURE_NO_WARNINGS /* 12.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示.当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出 ...

  3. 习题:编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。

    完整题干: 编写一个学生和教师数据输入和显示程序,学生数据有编号.姓名.班级和成绩,教师数据有编号.姓名.职称和部门.要求将编号.姓名输入和显示设计成一个类person,并作为学生数据操作类stude ...

  4. java上课签到如何写_java签到程序怎么设置?学生考勤程序怎么写?

    学好java之后,我们就可以将编程运用到生活中了,最近有小伙伴想知道java签到程序怎么设置?那么接下来,我们就来给大家讲解一下这方面的内容. 签到程序如下:import java.util.Scan ...

  5. 【python实现随机分组 一个公司年终庆典,需要将职员分成三组,现在有8位职员等待小组分配,编写程序实现职员的随机分配。】

    题目:一个公司年终庆典,需要将职员分成三组,现在有8位职员等待小组分配,编写程序实现职员的随机分配. 实现思路:遍历每一个职工,让他们自己随机选择分配到哪一个小组.当然,有特殊情况需要剔除,如果随机分 ...

  6. javascript随机抽签程序

    将下面的代码保存为html格式即可运行. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...

  7. 用C++评选优秀教师和优秀学生

    //评选优秀教师和优秀学生#include<iostream.h> #include<string.h>class base//定义基类 { protected:char na ...

  8. 记 计算机 科学学院 教师,永做学生的操作系统——记计算机科学技术学院、软件学院教师金虎...

    "我要做一名人民教师,做学生黑暗中的一盏明灯,前进路上的加油站,攀登高峰的人梯."那一年,他十五岁,高一,立志当一名人民教师. "最喜欢的事就是走上讲台,与学生共同耕耘学 ...

  9. 设有关系模式W(C,P,S,G,T,R)其中各个属性的含义是:C课程,P教师,S学生,G成绩,T实践,R教室,根据定义有如下依赖集D={C→P,(S,C)G,(T,R)C,(T,P)R,(T,S)R}

    设有关系模式W(C,P,S,G,T,R)其中各个属性的含义是:C课程,P教师,S学生,G成绩,T实践,R教室,根据定义有如下依赖集D={C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S ...

  10. 博弈论matlab程序,基于博弈论的频谱分配的matlab程序

    <基于博弈论的频谱分配的matlab程序>由会员分享,可在线阅读,更多相关<基于博弈论的频谱分配的matlab程序(5页珍藏版)>请在人人文库网上搜索. 1.是认知无线电场景下 ...

最新文章

  1. 谷歌学术公布2021年最有影响力工作,CV顶会论文“夹缝求生”!凯明 YYDS!
  2. python下载图片、已知url_python 爬虫之requests爬取页面图片的url,并将图片下载到本地...
  3. 如何获取空对象的类型
  4. 启明云端分享|在应用SSD201\SSD202D 核心板时,文件系统只读相关问题解决
  5. linux 下创建并动态加载.so 文件
  6. 什么是PCM综合语音复用设备?
  7. Java反射基础(三)--Methods对象的使用
  8. 商品领域ddd_为 Gopher 打造 DDD 系列:领域模型-资源库
  9. Unreal Engine 4 编码规范
  10. c语言gettop函数值,数据结构-栈 C和C++的实现
  11. 再看结构体对齐与小端联合问题
  12. 简易高重用的jdbcutils工具封装实现类以及简易连接池实现
  13. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_6_等待唤醒机制概述...
  14. 基础知识04 - 零基础入门学习汇编语言04
  15. android输入法横向,Android输入法横向评测—手写输入篇
  16. python3写入txt_[Python3] 写入文本文件[TZZ]
  17. 两小时从零学会vue-admin-template框架
  18. html css javascript七夕情人节表白网页【樱花雨3D相册】超好看
  19. 计算机组成原理之CPU、外存、内存之间的关系
  20. 数字图像处理(1)-图片信息获取和RGB-HSI

热门文章

  1. 转:模拟信号隔离法则
  2. mac被限制什么意思_苹果ip完美解决电脑ip被限制问题
  3. java 搭建ota服务器_通过文件服务器实现OTA升级的方法技术
  4. 线粒体可以进行个体识别?
  5. emacs java_Emacs配置与使用
  6. OMV搭建系列教程[5] – 安装Aria2
  7. python:基于TCP协议接收数据并解析保存至redis内存库
  8. ArcGIS教程 - 4 GIS数据
  9. D社创始人 苟方韬:当二次元恋上区块链,如何引爆流量
  10. 秦牧鸿蒙之体有什么用,第一五一二章 鸿蒙元气