按教师名单分配学生抽签程序
在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;
}
按教师名单分配学生抽签程序相关推荐
- 设计评选优秀教师和优秀学生候选人的程序。
设计评选优秀教师和优秀学生候选人的程序.如果学生的分数大于90,则可评为优秀生;如果教师发 表的论文数大于 3,则可评为优秀教师.具体要求如下: (1)定义基类Base:①保护数据成员 char na ...
- 2.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出来。 图 12.5 类结构 类 base char name[8]; 含
#define _CRT_SECURE_NO_WARNINGS /* 12.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示.当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出 ...
- 习题:编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。
完整题干: 编写一个学生和教师数据输入和显示程序,学生数据有编号.姓名.班级和成绩,教师数据有编号.姓名.职称和部门.要求将编号.姓名输入和显示设计成一个类person,并作为学生数据操作类stude ...
- java上课签到如何写_java签到程序怎么设置?学生考勤程序怎么写?
学好java之后,我们就可以将编程运用到生活中了,最近有小伙伴想知道java签到程序怎么设置?那么接下来,我们就来给大家讲解一下这方面的内容. 签到程序如下:import java.util.Scan ...
- 【python实现随机分组 一个公司年终庆典,需要将职员分成三组,现在有8位职员等待小组分配,编写程序实现职员的随机分配。】
题目:一个公司年终庆典,需要将职员分成三组,现在有8位职员等待小组分配,编写程序实现职员的随机分配. 实现思路:遍历每一个职工,让他们自己随机选择分配到哪一个小组.当然,有特殊情况需要剔除,如果随机分 ...
- javascript随机抽签程序
将下面的代码保存为html格式即可运行. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...
- 用C++评选优秀教师和优秀学生
//评选优秀教师和优秀学生#include<iostream.h> #include<string.h>class base//定义基类 { protected:char na ...
- 记 计算机 科学学院 教师,永做学生的操作系统——记计算机科学技术学院、软件学院教师金虎...
"我要做一名人民教师,做学生黑暗中的一盏明灯,前进路上的加油站,攀登高峰的人梯."那一年,他十五岁,高一,立志当一名人民教师. "最喜欢的事就是走上讲台,与学生共同耕耘学 ...
- 设有关系模式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 ...
- 博弈论matlab程序,基于博弈论的频谱分配的matlab程序
<基于博弈论的频谱分配的matlab程序>由会员分享,可在线阅读,更多相关<基于博弈论的频谱分配的matlab程序(5页珍藏版)>请在人人文库网上搜索. 1.是认知无线电场景下 ...
最新文章
- 谷歌学术公布2021年最有影响力工作,CV顶会论文“夹缝求生”!凯明 YYDS!
- python下载图片、已知url_python 爬虫之requests爬取页面图片的url,并将图片下载到本地...
- 如何获取空对象的类型
- 启明云端分享|在应用SSD201\SSD202D 核心板时,文件系统只读相关问题解决
- linux 下创建并动态加载.so 文件
- 什么是PCM综合语音复用设备?
- Java反射基础(三)--Methods对象的使用
- 商品领域ddd_为 Gopher 打造 DDD 系列:领域模型-资源库
- Unreal Engine 4 编码规范
- c语言gettop函数值,数据结构-栈 C和C++的实现
- 再看结构体对齐与小端联合问题
- 简易高重用的jdbcutils工具封装实现类以及简易连接池实现
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_6_等待唤醒机制概述...
- 基础知识04 - 零基础入门学习汇编语言04
- android输入法横向,Android输入法横向评测—手写输入篇
- python3写入txt_[Python3] 写入文本文件[TZZ]
- 两小时从零学会vue-admin-template框架
- html css javascript七夕情人节表白网页【樱花雨3D相册】超好看
- 计算机组成原理之CPU、外存、内存之间的关系
- 数字图像处理(1)-图片信息获取和RGB-HSI