求C语言编程很长的程序100多行的

Python010

求C语言编程很长的程序100多行的,第1张

C语言写的21点程序!

#include

#include

#include

#define

NULL

0

int

compare(char

sum1,char

sum2)

{

if(sum1>=sum2)

return

1

else

return

0

}

int

breakal(int

sum)

{

if(sum>21)

return

0

else

return

1

}

char

change(int

card)

{

char

ch,n,m,x

switch(card)

{

case

1:

ch='A'

break

case

10:

{

n=1+int(rand()/(RAND_MAX+1.0))

if(n==1)

ch='K'

else

{

m=1+int(rand()/(RAND_MAX+1.0))

if(m==1)

ch='Q'

else

{

x=1+int(rand()/(RAND_MAX+1.0))

if(x==1)

ch='J'

}

}

break

}

}

//以上switch语句用于将数字转换成字符

return

ch

}

void

game()

{

int

i,k,n

char

host_ch,player_ch,host_card[15],player_card[15]

int

host_sum=0,player_sum=0

srand(time(NULL))

for(i=0i<2i++)

{

int

(10.0*rand()/(RAND_MAX+1.0))

player_card[i]=1+int

(10.0*rand()/(RAND_MAX+1.0))

player_ch=change(player_card[i])

if(player_card[i]>1

&&

player_card[i]<10)

//输出玩家抽到的牌的点数

printf("您抽到的第%d张牌是%d\n",i+1,player_card[i])

else

if(player_card[i]==10)

printf("您要到的第%d张牌是%c\n",i+1,player_ch)

else

printf("您要到的第%d张牌是A\n",i+1)

if(player_ch=='A')

//询问判断玩家的A的点值为1或11

{

printf("

您有一张A,您想要A作1还是11?\n")

printf("

1.

1\n"

)

printf("

2.

11\n")

if(scanf("%d",&n)

&&

n==1)

player_card[i]=1

else

player_card[i]=11

}

host_card[i]=1+int

(10.0*rand()/(RAND_MAX+1.0))

host_ch=change(host_card[i])

if(host_ch=='A')

//电脑自动判断庄家的A的点值为1或11

{

k=1+int(rand()/(RAND_MAX+1.0))

if(k==1)

host_card[i]=11

else

host_card[i]=1

}

player_sum+=player_card[i]

//分别对庄家和玩家的点数求和

host_sum+=host_card[i]

}

printf("您现在的总面值为%d\n",player_sum)//输出玩家的总面值

for(i=2i<5i++)

{

if(host_sum<18

&&

host_sum>0)//电脑自动判断庄家是否要牌

{

host_card[i]=1+int

(10.0*rand()/(RAND_MAX+1.0))

host_ch=change(host_card[i])

if(host_ch=='A')

//电脑自动判断庄家的A的点值为1或11

{

k=1+int(rand()/(RAND_MAX+1.0))

if(k==1)

host_card[i]=11

else

host_card[i]=1

}

host_sum+=host_card[i]

}

printf("您还要继续要牌吗?\n")

printf("

1.要\n")

printf("

2.不要\n")

scanf("%d",&k)

if(k==1)

{

{

player_card[i]=1+int

(10.0*rand()/(RAND_MAX+1.0))

player_ch=change(player_card[i])

if(player_ch=='A')

//询问判断玩家的A的点值为1或11

{

printf("您有一张A,您想要A作1还是11?\n")

printf("

1.

1\n"

)

printf("

2.

11\n")

if(scanf("%d",&n)

&&

n==1)

player_card[i]=1

else

player_card[i]=11

printf("您要到的第%d张牌是A\n",i+1)

}

else

printf("您要到的第%d张牌是%d\n",i+1,player_card[i])

player_sum+=player_card[i]

if(i==4)

printf("您手中已有5张牌,一决胜负的时刻到啦!\n")

if(breakal(host_sum)==0)

{

if(breakal(player_sum)==0)

{

printf("庄家爆牌了,您也爆牌了!庄家的牌面值是%d,您的牌面值是%d\n",host_sum,player_sum)

printf("\nYou

lose..\n")

break

}

}

else

if(breakal(player_sum)==0)

{

printf("您爆牌了!您的牌面值是%d\n

\nYou

lose..\n",player_sum)

break

}

}

if(breakal(host_sum)==0)

{

printf("庄家爆牌了!庄家的牌面值是%d\n",host_sum)

printf("\nCongratulations!

YOu

win!\n")

break

}

}

else

{

printf("庄家的牌面值是%d,您的牌面值是%d\n",host_sum,player_sum)

if(compare(host_sum,player_sum)==1)

printf("\nYou

lose..\n")

else

printf("\nCongratulations!

You

win!\n")

break

}

}

}

int

main()

{

kaishi:

int

n

printf("

欢迎进入21点游戏!\n")

printf("

************************************\n")

printf("

1.开始游戏\n")

printf("

2.退出游戏\n")

printf("

************************************\n")

if(scanf("%d",&n)&&n==1)

game()

else

if(n==2)

{

printf("

******************************\n")

printf("

游戏结束!祝您愉快!\n")

printf("\n\n")

printf("

再见!\n")

printf("

******************************\n")

return

0

}

goto

kaishi

}

#include <string.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include <Windows.h>

#define SIZE 6

#define N3

#define WM 3

void bsxm()

void csxy()

void Information()

int main()

void menu()

void printf_back()

void saveathlete()

void saveprogram()

void saveschool()

void savescore()

void Search()

void ttzf()

int i

FILE *fp1,*fp2,*fp3,*fp4

struct athlete//定义运动员信息

{

char univ[5]

char name[8]

char prog[15]

int mingci[15]

int score

}at[SIZE]

struct xueyuan//定义学院信息

{

char univ[5]

char prog[15]

int num_athlete

}xy[N]

struct program//定义项目信息

{

int quming

char prog[5]

char ath1[5]

char ath2[5]

char univ1[5]

char univ2[5]

}pro[WM]

struct zongfen //定义学院得分信息

{

char univ[5]

char prog1[5]

char prog2[5]

char prog3[5]

int score1

int score2

int score3

int total_score

}zf[N]

void Information()

{

int n,w

do {

puts("\n\n\n")

puts("\t\t-------------- 信息录入--------------\n")

puts("\t\t*************************MENU*************************\n")

puts("\t\t--------- 1.运动员 ----------\n")

puts("\t\t-------- 2.参赛学院 ----------\n")

puts("\t\t-------- 3.比赛项目 ----------\n")

puts("\t\t-------- 4.退出 ----------\n")

puts("\t\t******************************************************\n")

printf("请输入序号(1-4)进行操作:[ ]\b\b")

scanf("%d",&n)

if (n<1||n>4)

{

w=1

getchar()

}

else w=0

}

while (w==1)

switch(n)

{

case 1 : saveathlete()break// 保存运动员信息子函数

case 2 : saveschool()break //保存学院信息子函数

case 3 : saveprogram()break //保存项目比赛信息子函数

case 4 : exit(0)

}

}

void saveathlete()//保存运动员信息子函数

{

printf("请输入各项目获奖运动员的信息:\n")

for(i=0i<SIZEi++)

{

printf("请输入第%d个运动员的信息:\n",i+1)

printf("姓名:")

scanf("%s",at[i].name)

printf("学院:")

scanf("%s",at[i].univ)

printf("参赛项目:")

scanf("%s",at[i].prog)

printf("名次:")

scanf("%d",&at[i].mingci)

printf("得分:")

scanf("%d",&at[i].score)

}

fp1=fopen("ath","w")

for(i=0i<SIZEi++)

{

if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1)

printf("File write error!\n")

}

fclose(fp1)

fp1=fopen("ath","r")

if(fp1 == NULL)

{

printf("[saveathlete]文件打开失败!错误码:%d\n", GetLastError())

exit(0)

}

printf("\n现在各运动员的信息如下:\n\n")

printf("姓名 性别 学院 项目名次 得分\n")

for(i=0i<SIZEi++)

{

fread(&at[i],sizeof(struct athlete),1,fp1)

printf("%-10s%-10s%-10s%-10s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].score)

}

fclose(fp1)

printf_back()

}

void saveschool()//保存学院信息子函数

{

printf("\n请输入各参赛学院的信息:\n")

for(i=0i<Ni++)

{

printf("\n请输入第%d个学校的信息:\n",i+1)

printf("学院:")

scanf("%s",xy[i].univ)

printf("参赛的项目:")

scanf("%s",xy[i].prog)

printf("参赛人数:")

scanf("%d",&xy[i].num_athlete)

}

fp2=fopen("xyuan","w")

if(fp2 == NULL)

{

printf("[saveschool]文件打开失败!错误码:%d\n", GetLastError())

exit(0)

}

for(i=0i<Ni++)

{

if(fwrite(&xy[i],sizeof(struct xueyuan),1,fp2)!=1)

printf("File write error!\n")

}

fclose(fp2)

printf_back()

}

void saveprogram()//保存项目比赛信息子函数

{

printf("\n请输入关于比赛项目的信息:")

for(i=0i<WMi++)

{

printf("\n请输入第%d项比赛的信息:\n",i+1)

printf("项目:")

scanf("%s",pro[i].prog)

printf("取分情况:")

scanf("%d",&pro[i].quming)

printf("参赛者1:")

scanf("%s",pro[i].ath1)

printf("所属学院:")

scanf("%s",pro[i].univ1)

printf("参赛者2:")

scanf("%s",pro[i].ath2)

printf("所属学院:")

scanf("%s",pro[i].univ2)

}

fp3=fopen("pr","w")

if(fp3 == NULL)

{

printf("[saveprogram]文件打开失败!错误码:%d\n", GetLastError())

exit(0)

}

for(i=0i<Ni++)

{

if(fwrite(&pro[i],sizeof(struct program),1,fp3)!=1)

printf("File write error!\n")

}

fclose(fp3)

printf_back()

}

void savescore()//保存学院得分情况子函数

{

printf("N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数。\n")

printf("W.100-女子一百米比赛,M.100-男子一百米。\n")

printf("W.200-女子两百米比赛,M.200-男子两百米。\n")

printf("取前三名:第一名7分 第二名5分 第三名3分 第四名2分 第五名1分 \n")

printf("请输入各学院的得分情况:\n")

for(i=0i<Ni++)

{

printf("\n请输入第%d个学院的得分情况:\n",i+1)

printf("学院:")

scanf("%s",zf[i].univ)

printf("参赛项目1:")

scanf("%s",zf[i].prog1)

printf("得分:")

scanf("%d",&zf[i].score1)

printf("参赛项目2:")

scanf("%s",zf[i].prog2)

printf("得分:")

scanf("%d",&zf[i].score2)

printf("参赛项目3:")

scanf("%s",zf[i].prog3)

printf("得分:")

scanf("%d",&zf[i].score3)

zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3

}

fp4=fopen("zfen","w")

if(fp4 == NULL)

{

printf("[savescore]文件打开失败!\n")

exit(0)

}

for(i=0i<Ni++)

{

if(fwrite(&zf[i],sizeof(struct zongfen),1,fp4)!=1)

printf("File write error!\n")

}

fclose(fp4)

printf_back()

}

void Search()

{

int n,w2

do

{

puts("\t\t------------ 查看信息 ------------\n")

puts("\t\t*************************MENU*************************\n")

puts("\t\t------------ 1.团体总分 ------------\n")//查看团体总分

puts("\t\t------------ 2.参赛学院 ------------\n")//查看参赛学院信息!

puts("\t\t------------ 3.比赛项目 ------------\n")//查看比赛项目信息!

puts("\t\t------------ 4.退出 -------------n")//退出

puts("\t\t***************************************\n")

printf("请输入序号(1-4)进行操作:[ ]\b\b")

scanf("%d",&n)

if (n<1||n>4)

{

w2=1

getchar()

}

else w2=0

}while (w2==1)

switch(n)

{ case 1:ttzf()break

case 2: csxy()break

case 3:bsxm()break

case 4: exit(0)break

default: printf("未进行任何操作!")

}

}

void ttzf()//查看学院团体总分子函数

{

fp4=fopen("zfen","r")

if(fp4 == NULL)

{

printf("[ttzf]文件打开失败!\n")

exit(0)

}

printf("\n各学院的团体总分情况如下:\n\n")

printf("学院参赛项目 总分\n")

for(i=0i<Ni++)

{

fread(&zf[i],sizeof(struct zongfen),1,fp4)

printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score)

}

fclose(fp4)

printf_back()

}

void csxy()//查看参赛学院信息子函数

{

fp2=fopen("xyuan","r")

if(fp2 == NULL)

{

printf("[csxy]文件打开失败!错误码:%d\n", GetLastError())

exit(0)

}

printf("\n各参赛学院的情况如下:\n\n")

printf("学院参赛项目 参赛者数\n")

for(i=0i<Ni++)

{

fread(&xy[i],sizeof(struct xueyuan),1,fp2)

printf("%-8s%-20s%-12d\n",xy[i].univ,xy[i].prog,xy[i].num_athlete)

}

fclose(fp2)

printf_back()

}

void bsxm()//查看比赛项目子函数

{

fp3=fopen("pr","r")

if(fp3 == NULL)

{

printf("[bsxm]文件打开失败!失败错误码:%d\n", GetLastError())

exit(0)

}

printf("\n各比赛项目的信息如下:\n\n")

printf("项目取分情况参赛者1 所属学院 参赛者2 所属学院\n")

for(i=0i<Ni++)

{

fread(&pro[i],sizeof(struct program),1,fp3)

printf("%-12s%-10d%-10s%-12s%-10s%-12s\n",pro[i].prog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro[i].univ2)

}

fclose(fp3)

printf_back()

}

int main()

{

menu()

return 0

}

void menu()

{

int n,w1

do

{

puts("\t\t-------- 欢迎进入海经运动会管理系统 --------\n")

puts("\t\t*************************菜单*************************\n")

puts("\t\t----------1.信息录入 --------------\n")

puts("\t\t----------2.比赛结果录入 --------------\n")

puts("\t\t----------3.查询信息--------------\n")

puts("\t\t----------4.退出 --------------\n")

puts("\t\t******************************************************\n")

printf("请输入序号(1-4)进行操作:[ ]\b\b")

scanf("%d",&n)

if (n<1||n>4)

{

w1=1

getchar()

}

else w1=0

}

while (w1==1)

switch(n)

{

case 1:Information()break //输入信息

case 2:savescore()break //比赛结果录入

case 3:Search()break//查询模块

case 4:exit(0)

}

}

//公共函数

void printf_back()

{

int w

printf("\n\n\t操作成功!\n\n")

printf("接下来您需要做什么?\n\n\t1).结束[ ] \t2).菜单:[ ]\b\b")

scanf("%d",&w)

if(w==1)

exit(0)

else menu()

}