C#上机 第九周 任务2 从题库中随机抽题
2012-10-29 17:10
253 查看
/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从题库中随机抽题 * 作 者:薛广晨 * 完成日期:2012 年 10 月 29 日 * 版 本号:x1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: 假定已经获取题库中的试题号,并存放在数组arrayKT中。 * 例如, int [] arrayKT={10,13,18,19,20,22,30,31...}。 * 定义一个静态成员方法,该方法实现从上述数组中随机抽出给定数量(n,1<=n<=arrayKT.Length)的考题,并组成一个考题字符串。 * 比如,随机从arrayKT中抽取5题组成考题字符串:“10,18,20,22,30”。 * 要求,组成考题字符串中考题不重复,且一定在数组中存在。自行设计程序验证上述方法正确性。 public static string getKTH(int n,params int [] arrayKT) { //提示:主体中使用random类 } * 程序输出: * 程序头部的注释结束 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { int[] arrayKT = { 10, 13, 18, 19, 20, 22, 30, 31, 32, 35, 41, 46 }; string str = getKTH(5, arrayKT); Console.WriteLine("考题为:{0}", str); Console.ReadKey(); } public static string getKTH(int n, params int[] arrayKT) { if(n > arrayKT.Length) { Console.WriteLine("超出题库的总题目数目!"); return ""; } string str = ""; int[] index = new int[arrayKT.Length]; for (int i = 0; i < arrayKT.Length; i++) index[i] = arrayKT[i]; Random rd = new Random(); //用来保存随机生成的不重复的10个数 int[] result = new int ; int site = arrayKT.Length;//设置下限 int id; for (int j = 0; j < n; j++) { id = rd.Next(site - 1); //在随机位置取出一个数,保存到结果数组 result[j] = index[id]; //最后一个数复制到当前位置 index[id] = index[site - 1]; //位置的下限减少一 site--; } for (int i = 0; i < n; i++) { str += result[i].ToString(); if (i < n - 1) { str += ", "; } } return str; } } }
运行结果:
相关文章推荐
- C#上机 第九周 任务2 实现字符串反转
- C#--第九周实验--任务3--定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数。
- C#上机 第九周 任务四 计算数列的极限值
- C#上机 第九周 任务1 用于提取文件名
- 第十二周上机实践项目——c#之随机向左移动的小动画
- C#上机 第八周 任务2 接口的练习
- 第九周上机任务四--本月有几天
- 《从题库中随即抽取题号——C#第九周》
- 第九周上机任务项目2-Time类
- 第九周上机任务(一)
- 第九周上机任务(个人所得税)
- 第九周上机任务五--求一元二次方程的根
- 二次函数求解(第九周上机任务)
- 第九周上机任务项目5:求一元二次方程的根
- C#上机 第十周 任务1 我的窗体实验
- 第九周上机任务项目2:个人所得税计算器
- 第九周上机项目六(2)委派任务
- C#上机 第四周 任务1.2 输出其中的大写字母、小写字母、数字和其他字符的个数
- C#上机 第五周 任务1和任务2 出现次数和逆序
- C#上机 第八周 任务8 移位运算来避免乘法运算