备案期间怎么做网站,广州建设工程交易网,青岛做网站的公司哪家好一点,建设网站对企业的重要性一、项目成员2018141461085龚泽楠2018141461012蔡铧荣二、项目名称黄金点小游戏三、项目简介游戏规则#xff1a; N个同学( N通常大于 10 )#xff0c;每人写一个 0~100 之间的有理数 (不包括 0或100) #xff0c;交给裁判算出所有数字的平均值然后乘以 0.618 (所谓黄金分割…一、项目成员2018141461085龚泽楠2018141461012蔡铧荣二、项目名称黄金点小游戏三、项目简介游戏规则 N个同学( N通常大于 10 )每人写一个 0~100 之间的有理数 (不包括 0或100) 交给裁判算出所有数字的平均值然后乘以 0.618 (所谓黄金分割常数)得到 G值。提交的数字最靠近 G(取绝对值)的同 学得到 N分离 G最远的同学得到 2分其他同学得 0分。黄金点游戏其实是一个博弈论G值(博弈值在黄金点游戏中为黄金点在市场竞标中为标线在拍卖中为成交额)的数据收集实验因此该项目为社会公益项目普遍情况黄金点游戏项目都会将最后数据或实时数据上传至网络公开使用。这个游戏规定第一名得到全部的分数, 第二名(不管多接近)到倒数第二名都是 0 分最后一名还要倒扣分。四、项目需求(1)项目结构需求(2)算法需求计算G值和每位玩家得分每位玩家得分分轮次存储查询每轮得分情况(3)数据库需求输入数据合法性检查输入数据分轮次存储(4)UI及可视化功能需求游玩人数输入显示每轮得分情况五、项目的主要功能a.基础功能:1.用户注册登陆2.输入数据进行游戏b.拓展功能:1.良好UI及可视化2.查看当局游戏数据3.查看排行榜六、 开发工具开发工具:IDEA,ECLIPSE七、 概要设计模块名称新房间创建输入设置游戏玩家个数、游戏回合时长、总回合数、限制玩家总数输出开始基于新的游戏设置回合功能开始新的游戏模块名称功能输入黄金点游戏用户想要输的点数输出黄金点游戏G值功能进行黄金点游戏模块名称得分纪录输出每回合每个玩家的得分功能记录玩家得分情况八、 代码实现(JAVA)主体功能实现(计算黄金值、比较排名计算分数)public static int Count(int n,int round) throws IOException {//负责统计数据和数据的写入int state 0; //表明数据状态Scanner input newScanner(System.in);System.out.println(请输入每位同学的点数: );String strinput.nextLine();String [] list str.split( );Double [] list2 new Double[list.length]; //用于计算距离Double [] list3 new Double[list.length]; //用于排名for(int i 0;i list.length;i){//检测数据是否异常并复制到另一个double数组list2[i] Double.parseDouble(list[i]);if(list2[i] 0 || list2[i] 100){state 1;return state; //返回异常}}//计算黄金点double sum 0; //加总double Msum 0; //乘上黄金分割比的Msumfor(int i 0;i list2.length;i){sumlist2[i];}Msum (sum / n) * 0.618;//每位选手离黄金点的距离Double [] Distance newDouble[n];for(int i 0;i list2.length;i){Distance[i] abs(list2[i] -Msum);list3[i]Distance[i];}//排名Arrays.sort(list3); //距离的升序排序int [] ExRank new int[list.length];int number 1; //用于排名,同时也代表着最低排名ExRank[0] 1; //最高位默认为排名1,for(int i 1;i list3.length;i){NumberFormat nfNumberFormat.getInstance();nf.setGroupingUsed(false);String DATA1nf.format(list3[i]);String DATA2 nf.format(list3[i-1]);if(DATA1.equals(DATA2)){ExRank[i]number;}else{ExRank[i] number;}}//索引回原先数字int [] Rank new int[list.length];for(int i 0;i list3.length;i){for(int j 0;j list3.length;j){if(Distance[i] list3[j]){Rank[i]ExRank[j];//System.out.print(Rank[i] )//testbreak;}}}//得分结算for(int i 0;i list.length;i){if(Rank[i] 1){score[i]n;}else if(Rank[i] number){score[i]- 2;}else{score[i] 0;}}//列出此局情况String [] data new String[n 2];data[0] 此为第 round 局;data[1] 此局的黄金点为 : Msum;System.out.println(data[0]);System.out.println(data[1]);for(int i 0;i list.length;i){//此局战况data[i2] 第 (i1) 位选手所选择的数 list[i] ; 其于黄金点的距离为 : Distance[i] ; 排名为 : Rank[i] ; 所得分 : score[i];System.out.println(data[i2]);}//数据保存在文件中inputdata(data);returnstate;}文件数据管理public static void Readdata() throws IOException {//将文件中的数据读取BufferedReader in new BufferedReader(newFileReader(path));String strnull;//定义一个字符串类型变量strint i 0;//定义一个整型变量while ((str in.readLine())! null) {//readLine()方法, 用于读取一行,只要读取内容不为空就一直执行i;byte[] bytesstr.getBytes();System.out.println(str);}in.close();}public static void inputdata(String [] input) throwsIOException {FileWriter fw new FileWriter(path,true);//将这个普通的FileWriter对象传递给BufferedWriter构造方法即可BufferedWriter bw newBufferedWriter(fw);//后面bw的时候和fw没有区别for(int i 0;i input.length;i){bw.write(input[i]);bw.newLine();}//关闭流bw.close();}public static void Delete() throwsIOException {FileWriter fileWriternewFileWriter(path);fileWriter.write();fileWriter.flush();fileWriter.close();}public static void WriteDate() throwsIOException{FileWriter fw new FileWriter(path,true);//将这个普通的FileWriter对象传递给BufferedWriter构造方法即可BufferedWriter bw newBufferedWriter(fw);SimpleDateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);//设置日期格式String DATE df.format(new Date());//new Date()为获取当前系统时间也可使用当前时间戳bw.write(DATE);bw.newLine();bw.close();}public static double abs(doublea){//绝对值函数return (a 0) ? -a : a;}}新建游戏以及游戏菜单public classGoldCount{static String path D:\\Project\\code\\java\\GoldCount\\src\\data.txt; //导出的数据static int [] score new int[100]; //得分人数尽量不大于100public static void main(String[] args) throwsIOException {WriteDate();Scanner input newScanner(System.in);System.out.print(请输入需要进行的游戏轮数(尽量大于10));int round input.nextInt();System.out.print(请输入参与该游戏的人数:);int n input.nextInt();for(int sur 0;sur round;sur) {int Qstate 1;int Dstate 1;while(1 1){//不用switch语法是因为不好控制选项menu();int choice input.nextInt();if(Dstate 0){WriteDate();Dstate 1;}if (choice 1){while(1 1){//用于处理数据异常int Mstate Count(n,sur1);if (Mstate 1){System.out.println(输入的数据有误请重新输入);}else{break;}}break;}else if (choice 2) {//System.out.println(现在是第 sur 轮);Readdata(); //返回至循环开始} else if (choice 3) {Delete();Dstate 0;}else if (choice 4) {Qstate 0;break;}else{System.out.println(输入有误请重新输入); //返回至循环开始}}if(Qstate 0){break;}}}九、 运行结果十、 后期计划进行产品迭代增加额外功能以及设计UI和可视化界面