保龄球计分系统c语言课程设计毕业设计word格式内容摘要:
ile(m==0)。 } else { printf(请输入第十格第二次击倒瓶数 :)。 scanf(%d,amp。 a[9][1])。 do { if( a[9][1]10 || a[9][1]0 || a[9][0]+a[9][1]10 || a[9][0]+a[9][1]0 ) 8 { m=0。 printf(错误,请再次输入 :)。 scanf(%d,amp。 a[9][1])。 } else m=1。 } while(m==0)。 if(a[9][0]+a[9][1]==10) { printf(请输入追加一次击倒瓶数 :)。 scanf(%d,amp。 a[10][0])。 do { if( a[10][0]10 || a[10][0]0 ) { m=0。 printf(错误,请再次输入 :)。 scanf(%d,amp。 a[10][0])。 } else m=1。 } while(m==0)。 } } /*用 if 和 dowhile 语句按照比赛规则判断第十格第一次击球后所有输入情况 */ 以及 Read 模块实现 1. 算法思想 定义两个字符串组以及一个包含 10 个二维数组的结构体,前者用来输入文件名,后者用来包含 10 局以内数量的比赛数据,然后通过二进制读写方式,将整个结构体存储进自己命名的文件中;读取文件时也采用二进制将整个结构体读取。 读入、读取文件时采用 for 循环方式 全部读入、读写。 注意: Save 模块保存的只是比赛数据,即几局比赛每局每格击倒的瓶数;并不是直接保存比赛积分结果;所以 Read 模块读取后,还要再将数据进行计算然后得出积分结果。 struct game_number { int turn[11][2]。 } game[10]。 char ch,infile[15],outfile[15]。 void save() 9 { FILE *fp1。 int i。 printf(请输入保存比赛数据的文件名: )。 /*自己命名保存数据的文件名 */ scanf(%s,infile)。 if((fp1=fopen(infile,wb+))==NULL) { printf(cannot open file\n)。 return。 } for(i=0。 i=9。 i++) fwrite(amp。 game[i],sizeof(struct game_number),1,fp1)。 fclose(fp1)。 } void read() { FILE *fp2。 int i。 printf(请输入读取比赛数据的文件名: )。 /*输入 比赛 数据所在文件 命以 读取数据 */ scanf(%s,outfile)。 printf(\n)。 printf(请输入要查询的比赛局数: )。 scanf(%d,amp。 t)。 if((fp2=fopen(outfile,rb+))==NULL) { printf(cannot open file\n)。 } for(i=0。 i=9。 i++) fread(amp。 game[i],sizeof(struct game_number),1,fp2)。 /*用 for循环读取整个结构体的数据 */ } 模块实现 根据题目要求的积分格式,在 Count 模块中,我只算出每轮所得分数,然后供 Print 模块调用, Print 模块再用 for 循环即可加和求总积分,所以 Count 模块中我只利用 if else 语句判断击球情况来根据规则积分。 void count(int p[ ][4],int n) /*定义形式参数,方便已经赋值的二维数组进行计 算 */ { if(n==9) /*由于比赛规则特殊性,所以从第 9 格后的积分算法要专门判断计算 */ p[n][2]=p[n][0]+p[n][1]+p[n+1][0]+p[n+1][1]。 /*将每轮分数赋值到 p[][2]中去 */ else 10 { if(p[n][0]==10) { if(p[n+1][0]!=10) p[n][2]=10+p[n+1][0]+p[n+1][1]。 else p[n][2]=10+p[n+1][0]+p[n+2][0]。 } else if(p[n][0]+p[n][1]==10) p[n][2]=10+p[n+1][0]。 else if(p[n][0]+p[n][1]10) p[n][2]=p[n][0]+p[n][1]。 } } 11 4 测试结果与分析 主页面,按照提示,测试输入数据计算结果这一项。 看到如果输入有误会立即提示并重新输入 12 这次输入数据后计算出的结果,并且按照要求格式输出; 数据的文件保存 接下来测试能否保存文件。 再继续又输入一局比赛数据后,将两句的比赛数据一起保存进了名为“ 2game”的文件中: 从文件读入数据并计算结果 现在继续测试是否能选择读取文件数据,然后同样计算得积分。 13 选择载入 这 个 文 件 , 要 查 询 的 是 第 二 局 比 赛 的 数 据 : 可以看到得到的是之前输入的第 二局比赛的数据,然后系统再次运算得出了相同的积分结果。 14 5 个人总结 虽然能在输入数据时报错,但是由于定义的输入数据为 int 型,所以如果输入字母等其他的话,就会有错误,所以还要继续改进。 定义太多全局变量,而且定义结构体有些多余,完全可以通过定义三维数组达到。 有些界面不能直接返回主界面,所以还需在一些数据输入的界面上加上这一选项。 15 6 附 录 源代码 include include struct game_number { int turn[11][2]。 } game[10]。 int a[11][4]。 int t。 char ch,infile[15],outfile[15]。 void scan() { int i,m。 printf(请输入比赛局数: )。 scanf(%d,amp。 t)。 for(i=0。 i=8。 i++) { printf(请输入第 %d 格第一次击倒瓶数 :,i+1)。 scanf(%d,amp。 a[i][0])。 do { if( a[i][0]10 || a[i][0]0 ) { m=0。 printf(错误,请再次输入 :)。 scanf(%d,amp。 a[i][0])。 } else m=1。 } while(m==0)。 printf(请输入第 %d 格第二次击倒瓶数 :,i+1)。 scanf(%d,amp。 a[i][1])。 do {。保龄球计分系统c语言课程设计毕业设计word格式
相关推荐
opinion super vision, t he power ful f or ce f or med t o ur ge par ty m embers and leading cadr es pr operly exer cise their power s. Second, st rong super vision and inspection. Dem ocr atic lif e
数值代数中各类问题的计算规律和方法。 (3) 熟悉、掌握在实际过程中微分方程数值解中各类问题的计算规律和方法。 (5) 熟悉、掌握在实际过程中最优化问题的计算规律和方法。 (6) 熟悉、学会在实际过程中智能化算法。 ( 7)熟悉、掌握计算机编程语言解决实际问题。 ( 8) 熟悉、掌握各种智能算法分析与设计。 ( 9)熟悉、掌握数据管理方法。 ( 10)熟悉、掌握计算机模拟方法。 ( 11)熟悉
.......................................................................................... 13 6 ............................................................................................ 14 .......
K8G5D1A x*t $qZnVkSgPdMaI 7F4C0z) vamp。 s! pXm Uj Rf OcK9H6E2B+y( u% r ZoWl ThQeNbJ8G4D1A w*t $qYnVkSgPdLaI 7F3C0z) vamp。 spXm Ui Rf OcK9H5E2B+x( u%r ZoWkThQeMbJ8G4D1z w*t! qYnVj SgOdLaI 6F3C0y) v%
理论计算值( m2) 实际设计值( m2) 管理用房: 150 — 301 运政办公用房 路政办公用房 站务管理办公用房 养护管理办公室 资料室 会议室 20 — 41 20 — 41 20 — 39 20 — 43 20 — 40 50 — 97 车辆检验、检修 80 — 145 养护设备仓库 120 — 110 养护材料堆场 900~ 1300 — 1045 ( 4)总体布局