2 u011046042 u011046042 于 2014.11.23 22:34 提问

如何写一个随机点名系统

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

把文件存入在磁盘中,
name.txt 内容
张一
张二
张三
李一
李二
李三

不知道C的语言怎么实现??求指点

4个回答

caozhy
caozhy   Ds   Rxr 2014.11.23 23:25
已采纳

参考:http://www.sharejs.com/codes/cpp/6631,你需要对这个代码略加改动,一个是N不是52,而是6,一个是 for (i = 1; i <= N; i++)
{
j = rand() % N+1; //这里写成N
tmp = poker[i];
poker[i] = poker[j];
poker[j] = tmp;
}
后面的代码不用了,你可以写
char names[][] = { "张一", ... };
for (i = 1; i <= N; i++)
{
printf(names[poker[i]]);
}

dave_xiang
dave_xiang   2014.11.23 22:46

1.首先你得确定想用什么样的架构,三层的B/S吗?然后做技术选型,开发语言,数据库,实现框架(如Spring,Structs等),服务容器(tomcat,apache等),前端技术
2. 然后你要设计前后的模块,并设计模块接口,以及内部实现的类图结构。在具体实现上,像你这个系统,应该不复杂,一次点名的人数不会太多,200已经很多了,你可以全部放入内存,并进行排序编号,然后用随机数的方式生成被点名的编号,然后将已被点名的同学移入已点名列表或直接删除。
3. 最后,你就实现、调试

dave_xiang
dave_xiang 回复u011046042: 后面有人提供了c语言的代码。看起来你只是做一个课后作业,如果你要做的话,建议设计好的数据结构,然后放上来讨论,这样容易讨论,也利于你学习。
大约 3 年之前 回复
u011046042
u011046042 谢谢你耐心的回答,你说的很详细,但是我采用的是C语言 采用文件的读写来实现 在磁盘中存入对应的名字 通过识别换行符来实现名字的id识别,然后采用随机数来做 不知道用C语言代码如何实现
大约 3 年之前 回复
tractor_man
tractor_man   2014.11.23 23:19

详细的可以加我qq 306257206
可以初始化一个数组(同人数个数一样),每一个元素值都为0,当使用一次之后,把该元素值赋为1,下次再使用的时候随机选取数组中的一个元素,查看该元素是否为0,如果过为0,则显示该元素对应的姓名,同时把该元素值赋为1.

xianfajushi
xianfajushi   2014.11.24 22:33

金蛇狂舞:固定数组随机环(从本论坛回复抓阄问题来的)
http://blog.csdn.net/xianfajushi/article/details/24846979
参考,自己去修改.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!