#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>struct data{char id[20];char name[20];
};struct data information[110];//普通人员信息
struct data information0[110];//滚动人员信息
struct data prize[110];//总获奖人员信息
int count=0;//滚动人员总数
int people=0;//普通人员总数
int people1=0,people2=0,people3=0;//普通一等奖、二等奖、三等奖的人数
char strid[20];
void Print_menu();//打印菜单
void Set_award();//设置奖项
void Read_information();//从文件中读取信息,放到普通人员信息中
void Read_information0();//从文件中读取信息,放到滚动人员信息中
void Roll_information0();//滚动信息,该信息是滚动人员的信息
void Set_winner1();//设置一等奖信息
void Set_winner2();//设置二等奖信息
void Set_winner3();//设置三等奖信息
void Set_awards();//设置奖项人数void Delet_function();//删除功能
void Delet_number();//按学号删除
void Delet_name();//按姓名删除
void Delet_information();//删除普通人员的信
void Add_function();//添加功能
void Begin_luck();//开始抽奖int main()
{Read_information();Read_information0();Print_menu();return 0;
}void Function_introduction()//功能介绍
{system("cls");printf("\n\t\t\t抽奖小程序功能介绍\n");printf("\t\t\t1、设置中奖人员\n");printf("\t\t\t2、设置内幕人员\n");printf("\t\t\t3、添加功能\n");printf("\t\t\t4、删除功能\n");printf("\t\t\t5、颜色设置\n");printf("\t\t\t6、开发人员介绍\n");printf("\t\t\t按任意键返回");getch();}void Print_menu()//打印菜单
{int choose;while(1){system("cls");printf("\n\n");printf("\t*********************************************************\n");printf("\t*\t\t<-欢迎来到抽奖小程序->\t\t\t*\n");printf("\t*\t\t\t\t\t\t\t*\n");printf("\t*\t\t开始抽奖请按1\t\t\t\t*\n");printf("\t*\t\t设置奖项请按2\t\t\t\t*\n");printf("\t*\t\t添加功能请按3\t\t\t\t*\n");printf("\t*\t\t删除功能请按4\t\t\t\t*\n");printf("\t*\t\t结束程序请按0\t\t\t\t*\n");printf("\t*\t\t\t\t\t\t\t*\n");printf("\t*********************************************************\n");printf("\n\n\t\t\t请输入选项:");scanf("%d",&choose);switch(choose){case 0:return;case 1:Begin_luck();//开始抽奖break;case 2:Set_award();//设置奖项break;case 3:Add_function();//添加功能break;case 4:Delet_function();//删除功能break;}}
}void Set_award()//设置奖项
{int choose;while(1){system("cls");printf("\n\n");printf("\t*********************************************************\n");printf("\t*\t\t\t\t\t\t\t*\n");printf("\t*\t\t设置奖项人数请按1\t\t\t*\n");printf("退出到主菜单按2");printf("\t*\t\t\t\t\t\t\t*\n");printf("\t*********************************************************\n");printf("\n\n\t\t\t请输入选项:");scanf("%d",&choose);switch(choose){case 1:Set_awards();//设置奖项人数break;case 2:break;}break;}
}void Delet_function()//删除功能
{int choose;while(1){system("cls");printf("\n\n");printf("\t*********************************************************\n");printf("\t*\t\t\t\t\t\t\t*\n");printf("\t*\t\t按姓名删除请按1\t\t\t\t*\n");printf("\t*\t\t按学号删除请按2\t\t\t\t*\n");printf("\t*\t\t\t\t\t\t\t*\n");printf("\t*********************************************************\n");printf("\n\n\t\t\t请输入选项:");scanf("%d",&choose);switch(choose){case 1:Delet_name();//按姓名删除break;case 2:Delet_number();//按学号删除break;}}
}void Read_information()//从文件中读取信息
{FILE *fp=fopen("a.txt","r");if (fp == NULL) {printf("DDD");}while(!feof(fp)){fscanf(fp,"%s%s",information[people].id,information[people].name);people++;}fclose(fp);
}void Read_information0()//读取滚动人员的信息
{FILE *fp=fopen("a.txt","r");while(feof(fp)==0){//存储信息到滚动人员信息中,用于滚动时打印在显示屏幕中fscanf(fp,"%s%s",information0[count].id,information0[count].name);count++;}fclose(fp);
}void Roll_information0()//滚动信息,该信息是滚动人员的信息
{int i=0;system("cls");printf("按任意键开始抽奖,按任意键停止抽奖\n");getch();while(1){system("cls");if(kbhit()!=0)break;i=rand()%count;printf("%s",information0[i].name);//显示滚动信息}}void Begin_luck()//开始抽奖
{int i,j,choose,t;system("cls");if(people1==0&&people2==0&&people3==0){printf("请先设置奖项人数按任意键返回\n");getch();return;}printf("下面开始抽取三等奖人员,按任意键继续\n");getch();j=0;//代表各奖项人员的总数包括内幕人员while(people3--)//普通三等奖人员{if(people3<0)break;Roll_information0();srand((unsigned)time(0));t=rand()%people;printf("%s",information[t].name);prize[j++]=information[t];strcpy(strid,information[t].id);Delet_information();//删除该成员在普通信息中的信息getch();}system("cls");printf("以下是三等奖名单,按任意键继续\n");for(i=0;i<j;i++)printf("%s\n",prize[i].name);system("pause");getch();system("cls");printf("下面开始抽取二等奖人员,按任意键继续\n");getch();getch();j=0;while(people2--){if(people2<0)break;Roll_information0();printf("%s",information[t].name);prize[j++]=information[t];strcpy(strid,information[t].id);Delet_information();//删除该成员在普通信息中的信息getch();getch();}system("cls");printf("以下是二等奖名单,按任意键继续\n");for(i=0;i<j;i++)printf("%s\n",prize[i].name);system("pause");getch();system("cls");printf("下面开始抽取一等奖人员,按任意键继续\n");getch();j=0;while(people1--){if(people1<0)break;Roll_information0();printf("%s",information[t].name);prize[j++]=information[t];strcpy(strid,information[t].id);Delet_information();//删除该成员在普通信息中的信息getch();}system("cls");printf("以下是一等奖名单,按任意键继续\n");for(i=0;i<j;i++)printf("%s\n",prize[i].name);system("pause");printf("抽奖完毕按任意键返回\n");getch();
}void Set_awards()//设置奖项人数
{int choose,t;while(1){system("cls");printf("请输入三等奖人数(正整数):\n");scanf("%d",&t);people3+=t;break;}while(1){system("cls");printf("请输入二等奖人数:\n");scanf("%d",&t);people2+=t;break;}while(1){system("cls");printf("请输入一等奖人数:\n");scanf("%d",&t);people1+=t;break;}printf("设置完毕按任意键返回\n");getch();return ;
}void Delet_number()//按学号删除
{int i;system("cls");while(1){printf("请输入要删除人的学号\n");scanf("%s",strid);for(i=0;i<count;i++)if(strcmp(strid,information[i].id)==0)break;if(i==count){printf("未找到该学号,请重新输入\n");getch();return;}elsebreak;}Delet_information();Delet_information0();printf("删除成功按任意键返回上一层\n");getch();
}void Delet_name()//按姓名删除
{int i;while(1){system("cls");printf("请输入要删除人的姓名\n");scanf("%s",&strid);for(i=0;i<count;i++)if(strcmp(strid,information0[i].name)==0){strcpy(strid,information0[i].id);break;}if(i==count){printf("未找到该人员按任意键返回上一层\n");getch();return;}elsebreak;}Delet_information();Delet_information0();printf("删除成功按任意键返回上一层\n");getch();
}void Delet_information()//删除该学号人员在普通人员中的信息
{int i,j;for(i=0;i<people;i++)if(strcmp(information[i].id,strid)==0){people--;for(j=i;j<people;j++)information[j]=information[j+1];return;}
}void Delet_information0()//删除该成员在滚动信息中的信息
{int i,j;for(i=0;i<count;i++)if(strcmp(information0[i].id,strid)==0){count--;for(j=i;j<count;j++)information0[j]=information0[j+1];return;}
}
void Add_function()//添加功能
{int i;system("cls");char id[20],name[20];printf("请输入添加人员的学号和姓名\n");scanf("%s%s",&id,&name);for(i=0;i<count;i++)if(strcmp(information0[i].id,id)==0){printf("该学号已存在按任意键返回");getch();return;}for(i=0;i<count;i++)if(strcmp(information0[i].name,name)==0){printf("该姓名已存在按任意键返回");getch();return;}strcpy(information0[count].id,id);strcpy(information0[count].name,name);information[people]=information0[count];count++;people++;printf("添加成功,按任意键返回");getch();
}

c语言课设抽奖系统(需在目录里创建一个文本文档a.txt)相关推荐

  1. linux打开windows系统文本文档乱码解决方法

    标题linux打开windows系统文本文档乱码解决方法 vim新建一个文本文档,CTRL+C复制原文档所有字符,vim里插入模式CTRL+V解决.

  2. 电影院选票系统(C语言课设)

    这里给到大家介绍一个自己写的C语言课设的代码,代码功能不是很完善,只有很基础的增删改查 题目 :电影院选票系统 功能 :放映厅 ,电影信息的 增删改查,以及排序 系统要求实现以下功能: 1.输入功能: ...

  3. 东北大学20级计算机C语言课设-航空订票系统

    航空订票系统 开发人员:东北大学20级计算机系学生 开发团队:三人小组 开发语言:C语言 开发工具:vs2015 有疑问欢迎进行讨论 总代码数量大概在三千五百行左右 耗时近一个月的时间完成了该次课设, ...

  4. 0英文基础 学c语言 词典,C语言课设之英文词典排标准系统

    <C语言课设之英文词典排标准系统>由会员分享,可在线阅读,更多相关<C语言课设之英文词典排标准系统(21页珍藏版)>请在人人文库网上搜索. 1.1 / 19一种简单的英文词典排 ...

  5. c语言售票系统主要函数,c语言课设电影院售票系统.docx

    struct inf { char rate[20]; char name[20]; int time_hour; int time_min; int seat; int sell; }inf[10] ...

  6. c语言课设报告仓库管理系统,c语言课设仓库管理系统.doc

    c语言课设仓库管理系统.doc 高级语言程序设计课程设计小型仓库管理系统题 目班 级学生学号学生姓名 同组成员 指导老师 提交时间 成 绩华南农业大学 信息学院一. 需求分析1 系统概述本系统用于小型 ...

  7. 网吧管理系统------C语言课设

    网吧管理系统------C语言课设 1.课程设计报告的要求 2.实现管理员注册和登录模块的代码 3.实现管理员对用户的管理功能及简介如下,包括上下机,余额积分加减等功能. 4.主函数 5.存在的不足 ...

  8. c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...

    C语言课设报告(学生考试成绩查询程序)[荐].doc 学生考试成绩查询程序 学号:******** 姓名:***** 完成日期:****年月 通过键盘输入学生的考试信息,包括:学号.姓名.课程名称.学 ...

  9. 学生信息管理系统c语言课设,学生信息管理系统C语言课设.doc

    学生信息管理系统C语言课设 目录 一.需求分析2 二.概要设计2 三.详细设计4 四.调试分析9 五.用户手册9 六.测试数据9 七.附录10 一.需求分析学生学籍管理系统用数据文件存放学生的学籍,可 ...

最新文章

  1. 两轴机械臂+机械爪整体控制板设计与机械爪控制调试
  2. Scrapy研究和探索(七)——如何防止被ban大集合策略
  3. 站点分析基础概念之目标转化率
  4. 上海职称英语计算机取消,小编简析2017年职称英语考试是否取消
  5. 爬空气质量MySQL,mysql
  6. debian查询端口进程_centos linux系统配置查询
  7. php中%3c w() %3e,DedeCMS V5.7 SP2后台存在代码执行漏洞
  8. Python全栈之路系列----之-----守护进程\进程锁\队列\生产者消费者模式\数据共享\进程池(同步,异步)\回调函数\concurrent.futures模块...
  9. 短视频秒播优化实践(二)
  10. PHP踩坑:对象的引用
  11. PHPExcel基本使用(2) 导入图片
  12. 计算机考研408高分复习规划-如何复习408才能得高分
  13. IT计算机实习:JAVA实习报告范文(一)
  14. 信息检索1.3.学术搜索引擎--谷歌学术搜索引擎
  15. DAS NAS SAM FC
  16. 解决冲突后,git merge --continue 时 lint不通过
  17. 14款S400升级20款S450外观套件
  18. OllyDbg逆向破解入门攻略?拿来吧你!
  19. 020.验证二叉搜索树
  20. Mendix基于腾讯云部署最佳实践

热门文章

  1. 国产化实时操作系统研究之旅4-SylixOS集成开发环境RealEvo初识
  2. 中国企业服务市场的四股力量
  3. 【转】计算机类学术论文 28个常见出版社一般写法(参考文献用)
  4. 前端几种禁用情况(鼠标事件)
  5. ASP.NET WEB网站简单入门(简单Demo -发布)
  6. 大气耐用的炫彩机箱,预装180mm大风扇,安钛克NX700雷电上手
  7. react-native打包发布发行(Realease)版apk,出现unable to process incoming event 'ProcessComplete'
  8. 【实战】使用Docker快速搭建Graylog单节点详细流程
  9. Java权威编码规范
  10. 提权(概述、水平/垂直越权、windows/linux提权、反弹shell、Linux_Exploit_Suggester、searchsploit)