自动点名系统c语言,用C语言编写一个随机点名系统

/*编写一个随机点名系统,运行该系统后,按空格键可以显示出一名同学,以前被选中的同学,将不会再次被选中*/

#include /*standard input & output*/

#include /*standard libary*/

#include /*string*/

#include /*Console Input/Output*/

#include

struct studentinfo /*学生信息的结构体*/

{

char sNo[5]; /*学生编号*/

char sxueNo[14];/*学号*/

char sname[20];/*学生的姓名*/

}st[100];

char hash[100] = {0}; /*链表的数组*/

int main()

{

int i=0,j=0,flag = 0,RN,*a;

FILE *fp;

char ch,filename[20]={0},line[100]={0};

printf("Please input file name:");

//fflush(stdin); /*用来清空输入缓存,以便不影响后面输入的东西*/

gets(filename); /*键盘输入文件名*/

fp=fopen(filename,"r"); /*open readonly*/

printf("名单如下:\n"); /*显示所有的学生信息*/

while (fgets(line,sizeof(line)-1,fp))

{

if (line[0]!='\n' && line[0]!=' ')

{

sscanf(line,"%s %s %s\n",st[i].sNo,st[i].sxueNo,st[i].sname); /*文件输入*/

printf("%s\n%s\n%s\n",st[i].sNo,st[i].sxueNo,st[i].sname);/*打印出来*/

i++; /*统计人数*/

}

}

/*设置随机数种子*/

srand((unsigned)time(NULL));

/*sizeof(类型符)是计算类型所占字节数,sizeof(int)是int所占字节数,再

乘以i,得到i个int型数据的总字节数。malloc函数用于动态开辟一块内存空间,

参数为开辟的内存空间字节数,返回开辟的内存空间的首地址指针。*/

a=(int*)malloc(sizeof(int)*i);

memset(a,-1,sizeof(a));/*将已开辟内存空间a的第4个字节设置为-1*/

printf("按空格键点名,其他键退出:");

fflush(stdin);

while((ch=getch())== ' ')

/*while (!(ch=getch())==NULL)*/

{

if(flag==i) /*如果flag等于总人数*/

{

printf("%s\n","点名结束");

break;

}

RN=rand()%i; /*产生一个随机数*/

while(hash[RN]==1)/*判断有没有完成某个一个学生点名*/

RN=rand()%i; /*产生随机数*/

flag++; /*计数*/

printf("\n~~~~~\n%s\n%s\n%s\n------------\n",st[RN].sNo,st[RN].sxueNo,st[RN].sname); /*输出学生的信息*/

hash[RN]=1;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017年全球AI芯片公司大盘点

来源:芯师爷概要:2017年,我们被AI公司的融资信息一次次刷屏,从2千万到1亿美金,让我惊诧道,AI的黄金年代真的来了吗?2017年,我们被AI公司的融资信息一次次刷屏,从2千万到1…

Oracle常用sql操作总结

一、选择行 1. 简单的SELECT 语句 SELECT 字段名1 [AS] 字段名1 解释 FROM table; 2. 处理NULL NVL函数可把NULL转换成其它类型的符号 编程技巧: NVL函数在多条件模糊查询的时候比较有用 NVL函数可返回多种数据类型: 返回日期 NVL(start_date,2002-02-01) 返回字符串 NVL(title…

51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...

/******************************************************************************** 实验名 : 红外控制步进电机1602显示值实验* 使用的IO : 电机用P2口* 实验效果 : LCD1602显示出读取到的红外线的值,步进电机作出…

邬贺铨:工业物联网的技术与前景

来源:走向智能论坛概要:工业物联网是企业信息化的进程,我们经历了流程电子化、管理数字化、生产自动化到企业互联网化和企业智能化。邬贺铨:工业物联网靠花钱是买不到的!12月20日,2017第八届中国物联网产业…

约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼主要问题在于删除约瑟夫环的数,结果一直出不来,看了好几天改了好几次都改不对#include #include typedef struct ysf{int num;struct ysf*next;}YSF;YSF*creat(int aa[]){int i;YSF *headNULL,*p1NULL,*p2NULL;headp1p2(YSF*)mallo…

Windows平台下GO语言编译器(GO-windows)

go for windows下载:http://code.google.com/p/go-windows/ ,http://savechina.download.csdn.net/使用前需要dos执行set GOROOT<the go folder>set GOOSmingwset GOARCH386set PATH<the go folder>/bin编译执行test.go文件需要执行8g test.go //编译生成test.88l …

30亿美金投入!一文读懂英伟达性能凶残的Tesla V100牛在哪?

来源&#xff1a;智东西概要&#xff1a;AI已无处不在&#xff0c;两股力量正推动计算机领域的未来。GTC CHINA 2017大会上&#xff0c;英伟达创始人兼CEO黄仁勋表示&#xff0c;AI已无处不在&#xff0c;两股力量正推动计算机领域的未来。第一、摩尔定律已终结&#xff0c;设计…

WPF Border

在 WPF 中&#xff0c;Border 是一种常用的控件&#xff0c;用于给其他控件提供边框和背景效果。 要使用 Border 控件&#xff0c;您可以在 XAML 代码中添加以下代码&#xff1a; <Border BorderBrush"Black" BorderThickness"2" Background"Lig…

C语言的数组基础,C语言基础-数组

一、数组(一维数组)什么是数组&#xff1f;数组是一组有序的、类型相同的数据的集合数组的作用&#xff1f;处理一些类型相同的数据集合数组的构成&#xff1a;元素、下标或索引、数组名定义&#xff1a;使用前必须定义1、存储类型2、数据类型3、数组名4、数组大小语法&#xf…

Go语言,在Ubuntu9.10和Windows安装

工作环境&#xff1a;Ubuntu9.10A、安装C语言工具Go的工具链采用C语言编写&#xff0c;构建需要安装以下开发工具&#xff1a;GCC,C语言标准库,the parser generator Bison,make,awk, 和ed &#xff08;编辑器&#xff09;.对于 OS X 系统&#xff0c;以上工具是Xcode的一部分。…

世界类脑AI巨系统研究综述,论ET大脑是不是全球首个类脑架构AI

前言&#xff1a;2017年12月20日阿里云云栖大会提出ET大脑&#xff0c;并宣称为全球首个类脑架构AI&#xff0c;本文详细介绍了类脑AI系统的理论研究和发展现状&#xff0c;分析了ET大脑理论的沿袭与借鉴。并指出企业为提升影响里推动新概念新理论无可厚非&#xff0c;但涉及到…

n元n次方程求解c 语言,解n元一次方程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼解N元一次方程从文件读入整数 N, 然后读入N*( N1)矩阵&#xff0c;得到解并输出到文件中。int main(){int ch;printf("\n");printf(" Gaussian Matrix Cal \n");printf("\n");printf("Choose:…

我为什么喜欢Go语言

来源&#xff1a;http://www.cnblogs.com/AllenDang/archive/2012/03/03/2378534.html 从2000年至今&#xff0c;也写了11年代码了&#xff0c;期间用过VB、Delphi、C#、C、Ruby、Python&#xff0c;一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效…

Netflix 官方技术博客:个性化分发与推荐,走在前列的 Netflix 是怎么做的?

来源&#xff1a;36氪概要&#xff1a;对于个性化分发与推荐&#xff0c;Netflix都是一个走在前面的公司。其首页的个性化推荐策略不断被后来者所模仿。对于个性化分发与推荐&#xff0c;Netflix都是一个走在前面的公司。其首页的个性化推荐策略不断被后来者所模仿。近日&#…

android主要文件的作用是什么,androidmanifest.xml文件的作用是什么

androidmanifest.xml文件的作用&#xff1a;1、是每个android程序中必须的文件&#xff0c;它位于整个项目的根目录&#xff1b;2、配置程序运行所必要的组件&#xff0c;权限&#xff0c;以及一些相关信息&#xff1b;3、是整个应用的入口&#xff0c;所以有助于更加深入的理解…

盘点丨2017年亚洲新晋18家独角兽公司

来源&#xff1a;网易科技概要&#xff1a;在投资领域&#xff0c;当一个创业公司估值达到10亿美元时&#xff0c;人们就称它加入了独角兽俱乐部。在投资领域&#xff0c;当一个创业公司估值达到10亿美元时&#xff0c;人们就称它加入了独角兽俱乐部。据国外媒体Tech in Asia报…

LiteIDE 编写Go的单元测试

第一步&#xff1a;新建一个 package "even" 第二步&#xff1a;编写代码 // even project even.go package evenfunc Even(i int)bool{return i%20 }func odd(i int)bool{return i%21 }第三步&#xff1a;在包 even 下新建测试文件 even_test.go第四步&#xff1a;…

揭秘Facebook SLAM技术,如何为人们生活增添奇幻的艺术色彩?

来源&#xff1a;将门创投概要&#xff1a;随着现代智能手机技术的发展&#xff0c;几乎所有的手机都配备了摄像头、陀螺仪和加速度传感器&#xff0c;硬件的进步帮助SLAM技术得到更广泛的传播和应用。 在过去的一年里&#xff0c;虚拟现实技术(Virtual Reality&#xff0c;简称…

android系统签名app自动更新,【Android 进阶】Apk 使用系统签名

刚入职的时候&#xff0c;固件中 app 需要在源码中编译&#xff0c;不是很理解&#xff0c;为什么不使用 IDE 编译&#xff0c;然后 copy 到 /system/app/*,咨询导师&#xff0c;得到反馈 app 需要使用系统的权限 在 AndroidManifest.xml 中声明了系统全下申明了系统权限androi…

数独游戏破解

游戏规则&#xff1a; 1、每行都是 1~9 2、没列都是 1~9 3、每块都是 1~9 解答思路&#xff1a; 从坐标 [0][0] 开始&#xff0c;算出其允许填入的数字集合&#xff08;每行允许数字集合、每列允许数字集合 和 每块允许数字集合 的交集&#xff09;。 从左到右&#xff0c…