C语言彩票管理系统代码可运行.docx
《C语言彩票管理系统代码可运行.docx》由会员分享,可在线阅读,更多相关《C语言彩票管理系统代码可运行.docx(95页珍藏版)》请在冰豆网上搜索。
C语言彩票管理系统代码可运行
纯手工打造,答辩90分。
里边还有很多改进的地方,每个数字都是一个文件。
拆分后可以直接编译运行
1、buy_ticket.h
/*****************************************************************
>FileName:
include/buy_lottery.h
>Author:
>Mail:
>CreatedTime:
************************************************************************/
#ifndefFUN_B_
#defineFUN_B_
#defineSCOPE5//产生随机数的范围
#defineBONUS1000//奖金
typedefstructbuy_lty
{
inttkt_code;//发行期号
chartkt_ID[10];//彩票唯一ID
intown_ticket[5][20];//所选号码
charuser_name[20];//购买者帐号
intbuy_num;//购买某一彩票期号注数
intmultiple;//购买倍数
intis_win;//中奖状态
intwin_amount;//中奖金额
charbuy_time[30];//购买时间
}buy_lty;
typedefstructbuy_lottery_link//购买彩票链表
{
buy_ltyblty_data;
structbuy_lottery_link*blty_next;
}blty_lk;
/****************************************************************/
voidnow_time(char*);
/***********************购买彩票链表底层操作**********************/
blty_lk*select_blty(blty_lk*blty_head,char*name);
voidinsert_after_blty(blty_lk*,buy_lty);
blty_lk*create_blty(buy_lty);
voidfree_blty(blty_lk*);
voidprint_blty(blty_lk*);
//voidsort_buy(blty_lk*);
/***********************购买彩票链表文件操作**********************/
voidblty_load(blty_lk*);
voidblty_save(blty_lk*);
#endif
1、issue_lottery.h
#ifndefFUN_M_
#defineFUN_M_
/******************************发行彩票链表****************************/
typedefstructlottery
{
intcode;//期号
intunit_price;//单价
intis_run;//是否已经开奖
intlucky_num[20];//中奖号码
intnum_of_lty;//本期售出总数
intsum_lty;//本期奖池总额
}lty;
typedefstructltylink
{
ltylty_data;
structltylink*lty_next;
}lty_lk;
/********************管理员操作************************/
voidissue_menu();//发行彩票
voidqry_tck_inf();//查询彩票信息
voidqry_user_inf();//查询用户信息
/***********************发行彩票链表底层操作***************/
//lty_lk*select_lty(lty_lk*,char*);//选择
voidinsert_after_lty(lty_lk*,lty);//后向插入彩票信息,接入链表末端
lty_lk*create_lty(lty);//申请新的彩票节点
voidfree_lty(lty_lk*);//释放空间
//voiddel_lty(lty_lk*);
//voiddelete_lty(lty_lk*,char*);
voidprint_lty(lty_lk*);
/***********************彩票文件操作******************/
voidlty_load(lty_lk*);//加载文件中存放的用户信息
voidlty_save(lty_lk*);//保存用户信息到文件中
#endif
2、user.h
/********************************用户链表************************/
#ifndefFUN_L_
#defineFUN_L_
typedefstructuser
{
charname[20];
charpswd[20];
charregist_time[20];
floatmoney;
}user;
typedefstructuserlink
{
userdata;
structuserlink*next;
}ulink;
/**************用户链表底层操作********************/
ulink*create_user(userdata);//为新的数据申请新的空间
voidinsert_after_user(ulink*,user);//后向插入用户信息,放入链表末端
ulink*select_user(ulink*,char*name);//在链表中查找到所需要的用户所在位置
voidfree_user(ulink*);//释放空间
voiddelete_user(ulink*head,char*name);//删除用户+
voidprint_user(ulink*head);//打印
/*************注册登录文件操作*****************/
voiduser_load(ulink*);//加载文件中存放的用户信息
voiduser_save(ulink*);//保存用户信息到文件中
/**************辅助函数***********************************/
voidmenu_print();//注册登录菜单显示
intshadow_pswd(char*);//隐藏密码与限制输入字符长度
intgetch();//不回显的获取输入的字符,
intname_input(char*);//用户名输入(限制长度)
intver_code();//验证码
voidnow_time(char*);
#endif
3、main.c
#include
#include
#include"issue_lottery.h"
#include"user.h"
#include"buy_ticket.h"
voidmenu(ulink*,lty_lk*,blty_lk*);//登录注册菜单
intmain(void)
{
ulink*user_head=calloc(1,sizeof(ulink));//用户链表头节点
user_head->next=NULL;
lty_lk*lty_head=calloc(1,sizeof(lty_lk));//发行彩票链表头节点
lty_head->lty_next=NULL;
blty_lk*blty_head=calloc(1,sizeof(blty_lk));//购买彩票链表头节点
blty_head->blty_next=NULL;
user_load(user_head);//用户链表加载
lty_load(lty_head);//发行链表加载
blty_load(blty_head);//购买链表加载
menu(user_head,lty_head,blty_head);
user_save(user_head);//用户信息保存
lty_save(lty_head);//发行彩票信息保存
blty_save(blty_head);//购买彩票信息保存
free_user(user_head);//空间释放
free_lty(lty_head);
free_blty(blty_head);
return0;
}
4、all_menu.c
/*************************************************************************
>FileName:
src/all_menu.c
>Author:
陆从杭
>Mail:
*******************
>CreatedTime:
Mon08Aug201601:
17:
11PMCST
************************************************************************/
#include
#include
#include
#include
#include
#include"buy_ticket.h"
#include"issue_lottery.h"
#include"user.h"
intflag;//标记位打印红色背景
intinput();
#defineREDprintf("\033[41m")
#defineENDprintf("\033[0m")
#defineUP0
#defineDOWN1
voiduser_regist(ulink*);//注册
/*********************用户的操作********************/
voiduser_login(ulink*,lty_lk*,blty_lk*);//用户登录
voidbuy_ticket(ulink*,lty_lk*,blty_lk*);//购买彩票
intchange_pswd(ulink*);//修改密码
voidhist_recored(ulink*,blty_lk*);//购买历史记录
intcancell_user(ulink*);//注销
voidnum_statistic(lty_lk*);//统计
/********************管理员********************/
voidadmin_login(ulink*,lty_lk*);//管理员登录
voidadmin_menu_print();//管理员登