为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VC抽奖程序

2017-09-25 26页 doc 49KB 44阅读

用户头像

办公小小子

暂无简介

举报
VC抽奖程序VC抽奖程序 题目:教工趣味抽奖程序 1(设计目的 , 训练随机数的控制 , 训练结构体数据编程 , 训练文件编程 2(设计要求 , 事先把教工的编号、姓名、部门存入电脑 , 运行过程: , 选择抽奖的等级,并输入该等级的人数 , 人员滚动显示,按任意键抽取(一个或一组),本等级抽取完毕,集中显示 , 直到抽取所有等级的人员 , 一个人只能被抽中一次 3(设计内容 (1)程序流程 程序流程(主函数的流程和功能)如图所示: 开始 用户登陆 输入班级信息 主界面 输入基本信息 分组抽奖 显示抽...
VC抽奖程序
VC抽奖程序 题目:教工趣味抽奖程序 1(设计目的 , 训练随机数的控制 , 训练结构体数据编程 , 训练文件编程 2(设计要求 , 事先把教工的编号、姓名、部门存入电脑 , 运行过程: , 选择抽奖的等级,并输入该等级的人数 , 人员滚动显示,按任意键抽取(一个或一组),本等级抽取完毕,集中显示 , 直到抽取所有等级的人员 , 一个人只能被抽中一次 3(设计内容 (1)程序流程 程序流程(主函数的流程和功能)如图所示: 开始 用户登陆 输入班级信息 主界面 输入基本信息 分组抽奖 显示抽奖结果 密码维护 结束 主函数代码如下: #include #include #include #include #include #include using namespace std; struct user // 存放密码 { char username[11]; char password[11]; }up[10]={"",""}; char filename[20]={""}; // 存放文件名 struct stu { int bh; char xm[10]; int dj; }x[31]={0,"",0}; int num,i; void main() { char yn='n',choice; system("color 1f"); cout<<"\n\n\n\t\t\t欢 迎 登 陆 趣 味 抽 奖 系 统 "<>choice; switch(choice) { case '1': Inputryxx(); break; case '2': fzchoujiang(); break; case '3': Printxx(); break; case '4': ModifyUser(); break; case '0': cout<<"\n\n是否结束程序,y/n,? "; cin>>yn; } } while(yn=='n' || yn=='N'); } (2)数据设计 ? 学生信息:学号、姓名和成绩存放在一个结构体数组x[]中,数组x为全局变量, 可以供每个功能使用。 struct stu { int xh; char xm[10]; int dj; }x[61]={0,"",0}; ? 用户名和密码:存放在全局结构体数组up[]中,最后保存在user.dat文件里。 struct user // 存放密码 { char username[11]; char password[11]; }up[10]={"",""}; ? 文件名:存放在一个全局字符型数组filename[20]中。 (3)程序的功能 程序的功能:用户登陆、输入抽奖基本信息、输入参加抽奖人员信息、分组抽奖和显示 抽奖结果。 ? 用户登陆:是操作的安全,通过输入用户名和密码来实现的。 ? 输入抽奖基本信息:是为了产生存放抽奖人员信息的文件名。 ? 抽奖人员基本信息输入:输入参加抽奖人员的编号和姓名。 ? 分组抽奖:按组取每个人的奖项。 ? 显示抽奖结果:按要求输出抽奖结果。 ? 用户名和密码维护:可以增加、删除用户,可以修改密码。 (4)程序功能及代码 ? 用户登陆 用户登陆功能由用户名输入函数InputUserName()和密码输入函数InputPassWord()实 现。 用户名输入函数InputUserName()的流程如图所示: 打开用户名和密码文件 提示输入用户名 与设置的用户名比较 三次不对就结束程序 关闭文件 函数代码如下: void InputUserName() { string str; fstream userfile; userfile.open("user.dat",ios::in); if(!userfile) { cout<<"filename can't open.\n"; abort(); } userfile.read((char *)up,sizeof(up)); userfile.close(); int check=0; printf("\n\t\t\t\t 用户名: "); for(int n=3;n>0;n--) { cin>>str; i=0; while(str.compare(up[i].username) && i<11) i++; if(i<11) { check=1; break; } else { printf(" 用 户 名 不 正 确, 请 重 新 输 入 : "); } } if(!check) { cout<0); if(!check) { cout<>nf; strcat(filename,nf); cout<<"\n 月份(如12):"; cin>>yf; strcat(filename,yf); cout<<"\n 抽奖名称(如“团拜会”):"; cin>>mc; strcat(filename,mc); } ? 抽奖人员基本信息输入 输入抽奖人员基本信息由函数Inputryxx()实现,其流程如图所示: 打开抽奖人员文件 提示输入抽奖人数 循环输入人员姓名,编号可以自动产生?数组x 保存人员信息,关闭文件 函数代码如下: void Inputryxx() // 输入人员基本信息 { fstream outfile; int i,num; outfile.open(filename,ios::out); if(!outfile) { cout<<"filename can't open.\n"; abort(); } do { cout<<"\n 输入抽奖人数(1-60):"; cin>>num; if(num<1||num>60) cout<<" 人数越界~请重新输入!"<60); x[0].bh=1; cout<<"编号\t姓名\n"; for(i=0;i>x[i].xm; x[i].dj=0; x[i+1].bh=x[i].bh+1; } x[i].bh=0,x[i].dj=0; outfile.write((char *)x,sizeof(x)); outfile.close(); } ? 分组抽奖 分组抽奖功能由函数fzchoujiang()实现,其流程如图所示: 打开人员文件 子界面 所有奖项重抽 抽取一等奖 抽取二等奖 抽取三等奖 抽取四等奖 写文件 为了实现该函数的功能,又设计了几个子函数: , 抽奖子函数choujiang(int n):抽取n等奖 , 显示抽奖等级函数printdj(int n):显示n等奖 , 读文件函数readfile(int &ynopen):读取人员信息 , 写文件函数writefile():保存抽奖结果 , 清空n等奖cleardj(int n):清空n等奖的结果,可以重抽 , 统计参见抽奖人员countren():统计参加抽奖的人数,用于产生“1-人员数”的 随机数 函数代码如下: int countren() //统计参加抽奖人数 { int i=0; while(x[i].bh!=0) i++; return i; } void cleardj(int n) // 等级清空 { int i=0; while(x[i].bh!=0) { if(x[i].dj==n) x[i].dj=0; i++; } } void writefile() // 写文件 { fstream outfile; outfile.open(filename,ios::out); if(!outfile) { cout<<"filename can't open.\n"; abort(); } outfile.write((char *)x,sizeof(x)); // 读数据 outfile.close(); } void readfile(int &ynopen) // 读文件 { fstream infile; char anykey; infile.open(filename,ios::in); if(!infile) { infile.close(); cout<<"\n\n参加抽奖人员信息没有建立~请选取“1.输入人员基本信息”! \n"; cout<<"\n\t按任意键继续...... "<>rs; cout<<"\n\n\t "<>choice; switch(choice) { case '1': choujiang(1); writefile(); break; case '2': choujiang(2); writefile(); break; case '3': choujiang(3); writefile(); break; case '4': choujiang(4); writefile(); break; case '5': i=0; while(x[i].bh!=0) // 清除抽奖记录 { x[i].dj=0; i++; } break; case '0': writefile(); cout<<"\n\n\t是否返回主菜单,y/n,? "; cin>>ynn; break; } cout<<"\n\t按任意键继续...... "<>choice; switch(choice) { case '1': Printcj(1); break; case '2': Printcj(2); break; case '3': Printcj(3); break; case '4': Printcj(4); break; case '0': cout<<"\n\n\t是否返回主菜单,y/n,? "; cin>>ynn; } cout<<"\n\t按任意键继续...... "<>choice; switch(choice) { case '1': i=0; cout<<"\n\n 增加用户"<>up[i].username; j=0; while(strcmp(up[i].username,up[j].username)!=0) j++; if(j==i) { cout<<" 请输入用户密码(1-10个字符):"; cin>>up[i].password; } else cout<<" 该用户已经存在:"; break; case '2': cout<<" 请输入要删除的用户名:"; cin>>delname; cout<<" 是否确认(y/n),:"; cin>>yn; if(yn=='Y'||yn=='y') { i=0; while(strcmp(delname,up[i].username)!=0 && i<11) i++; if(i==11) cout<<" 用户名错误或没有该用户:"; else for(j=i+1;j<11;j++) { strcpy(up[j-1].username,up[j].username); strcpy(up[j-1].password,up[j].password); } } break; case '3': cout<<" 请输入用户名:"; cin>>delname; i=0; while(strcmp(delname,up[i].username)!=0 && i<11) i++; if(i==11) cout<<" 用户名错误或没有该用户:"; else { cout<<" 请输入用户旧密码:"; cin>>oldpassword; if(strcmp(oldpassword,up[i].password)!=0) { cout<<" 用户旧密码错误:"; break; } else { cout<<" 请输入用户新密码:"; cin>>up[i].password; } } break; case '4': i=0; cout<<"\n\n用户名\t密码\n"; while(strcmp(up[i].username,"")!=0) { cout<>ynn; }while(ynn=='n'||ynn=='N'); }
/
本文档为【VC抽奖程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索