#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include "general.h"
#include "user_enum_control.h"
#include "admin_enum_control.h"
int draw = 0;//统计平局数
int lose = 0;//统计失败数
int win = 0;//统计获胜数
int human = 0;//玩家手势
int comp = 0;//计算机手势
int is_winer = 0;//判断胜负
static char *mygets(char *str, int capacity); // 自定义字符串输入
void user_enum_control(char *user,stu *head,eai *lhead,lot *nlhead)
{
if (NULL == head){
perror("head is null\n");
return;
}
stu *p = head;
while (p->next != NULL){ // 找到对应的节点
if (strcmp(user, p->next->user) == 0){
break;
}
p =p->next;
}
int num = 0;
int flag = 1;
int Number_notes = 0;
while(flag){
user_interface();
printf("\033[30;30m\n系统提示,请选择:");
if (scanf("%d", &num) != 1){
while(getchar() != '\n');
num = 4;
}
switch(num){
case 1:
View_personal_information(p->next->idnumber,head); // 查看个人信息
break;;
case 2:
Change_password(p->next->idnumber, head); // 修改信息
break;
case 3:
Log_off_information(p->next->idnumber, head, lhead,nlhead, user); // 注销信息
break;
case 4:
recharge(p->next->idnumber, head, Number_notes); // 充值
break;
case 5:
Query_winning_records(nlhead, user); // 查询中奖状态
break;
case 6:
Buy_ticket(head,p->next->user,p->next->idnumber,lhead,nlhead); // 买票
break;
case 7:
Query_ticket_purchase_history(nlhead, p->next->user); // 查看历史购买记录
break;
case 8:
Guessing_game(); // 猜拳小游戏
break;
case 0:
flag = 0;
break;
default:
printf("\033[30;30m\n输入错误正在为你重新加载菜单\n");
sleep(3);
break;
}
}
Save_file_all(head);// 加载链表所有信息到文件里
return;
}
// 根据身份证查询信息
char *View_personal_information(char *idnumber,stu *head)
{
if (NULL == head){
perror("head is null\n");
return (char*)NULL;
}
while (head->next != NULL){
if (strcmp(idnumber, head->next->idnumber) == 0){
break;
}
head =head->next;
}
stu *p = head->next;
printf("******************************************************************************\n");
printf("您的信息为:\n");
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n金额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
sleep(2);
return (char*)NULL;
}
// 修改个人信息
char *Change_password(char *idnumber,stu *head)
{
if (NULL == head){
perror("head is null\n");
return (char*)NULL;
}
stu *p = head->next, *judg = NULL;
while (p != NULL){
if (strcmp(idnumber,p->idnumber) == 0){
break;
}
p = p->next;
}
int num = 0, flag = 1;
revise_enum();
printf("\033[30;30m\n系统提示,请选择:");
scanf("%d", &num);
if (num == 1){
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
printf("请输入修改后的昵称:\n");
char nicknam[100] = {'\0'};
while (getchar() != '\n');
mygets(nicknam, 100);
judg = head->next;
while (judg->next != NULL){
if (strcmp(judg->nicknam, nicknam) == 0){
printf("输入的昵称已被使用,请重新输入!!!\n");
while (getchar() != '\n');
mygets(nicknam, 100);
flag = 0;
}
if(flag == 0){
judg = head->next; // 被使用重新节点赋值继续判断
}else if(flag == 1){
judg = judg->next; // 无人使用前两次判断不过直到循环结束
}
}
strcpy(p->nicknam, nicknam);
printf("修改后的信息为:");
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
}else if (num == 2){
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
printf("请输入修改后的用户名:\n");
char user[100] = {'\0'};
while (getchar() != '\n');
mygets(user, 100);
judg = head->next;
while (judg->next != NULL){
if (strcmp(judg->user, user) == 0){
printf("输入的用户名已被使用,请重新输入!!!\n");
while (getchar() != '\n');
mygets(user, 100);
flag = 0;
}
if(flag == 0){
judg = head->next; // 被使用重新节点赋值继续判断
}else if(flag == 1){
judg = judg->next; // 无人使用前两次判断不过直到循环结束
}
}
strcpy(p->user, user);
printf("修改后的信息为:\n");
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
}else if (num == 3){
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
printf("请输入修改后的密码:\n");
char password[100] = {'\0'};
while (getchar() != '\n');
mygets(password, 100);
strcpy(p->password, password);
printf("修改后的信息为:\n");
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
}else if (num == 4){
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
printf("请输入修改后的年龄:\n");
int age = 0;
scanf("%d", &age);
p->age = age;
printf("修改后的信息为:\n");
printf("昵称:%s\n用户名:%s\n密码:%s\n身份证号码:%s\n年龄:%d\n性别:%s\n余额:%Lf\n",
p->nicknam, p->user, p->password, p->idnumber, p->age, p->gender, p->money);
}else {
printf("输入错误!正在为你返回上一级!!!\n");
sleep(3);
return (char*)NULL;
}
return (char*)NULL;
}
// 注销个人信息节点
stu *Log_off_information(char *idnumber,stu *head, eai *lhead,lot *nlhead, char *user)
{
if (NULL == head ){
perror("head is null or nlhead is null\n");
return NULL;
}
int judg = 0;
printf("请确认是否注销(1.yes|2.no)");
scanf("%d", &judg);
while (getchar() != '\n');
if (judg == 2){
printf("正在为你返回中,请等待!!!\n");
sleep(1);
return NULL;
}
stu *p = NULL;
p = findnode(idnumber, head);
stu *del = NULL;
if (p != NULL){
del = p->next;
p->next = del->next;
free(del);
del = NULL;
}
Save_file_all(head); // 文件个人信息同步删除
Log_off_nlinformation(nlhead, user); // 注销个人彩票信息节点
logout_Save_file_nlall(nlhead); // 文件个人彩票信息同步删除
logout_freelink(head, lhead, nlhead); // 循环释放链表申请的动态空间
printf("所有信息注销成功!!!\n");
printf("程序退出中...\n");
sleep(1);
exit(1);
return p;
}
// 查找返回上一个节点
stu *findnode(char *idnumber, stu *head)
{
stu *p = NULL;
if (NULL == head){
perror("head is null\n");
return NULL;
}
p = head;
while (p->next != NULL){
if (strcmp(p->next->idnumber, idnumber) == 0 ){
return p;
}
p = p->next;
}
return NULL;
}
// 注销个人彩票信息节点
lot *Log_off_nlinformation(lot *nlhead, char *user)
{
if (NULL == nlhead){
perror("nlhead is null\n");
return NULL;
}
lot *nlp = NULL;
nlp = findnlnode(user, nlhead);
lot *nldel = NULL;
if (nlp != NULL){
nldel = nlp->next;
nlp->next = nldel->next;
free(nldel);
nldel = NULL;
}
return nlp;
}
// 查找用户个人彩票信息链表
lot *findnlnode(char *user, lot *nlhead)
{
没有合适的资源?快使用搜索试试~ 我知道了~
c+彩票管理系统+c大学入门项目
共42个文件
c~:9个
o:8个
c:8个
需积分: 0 1 下载量 63 浏览量
2023-03-08
13:31:24
上传
评论 2
收藏 135KB ZIP 举报
温馨提示
这个项目的所有数据,都是通过链表来存储在内存上,然后再是通过链表的操作,文件IO的操作,来达到保存在本地硬盘上。 项目基本功能都已完善,还新添加身份证号码核验,地区检查(地区在注册里显示,还可以根据前四位新添其他地区!).验证码登陆,密码隐藏功能,其他一些基本功能可以具体下载观看。本项目为linux下ubuntu1604编写,注意版本不兼容问题 缺陷: 项目开奖暂时只设置了一个奖,彩民获得金额是奖池+原彩票账户金额*注数. 如果想设计的更好可以根据本项目多设置几个奖项,每个奖项的号码规则和获得的金额可以根据算法设计,奖池也可以不用每期清空, 设置的各种情况尽量避免奖池金额为负, 本项目还有种设计,多个彩民买同一组号码,奖池所对应的奖项如何两个都给上,且不会使奖池变成负值,改动前备份好即可! /* 社区管理员看到请麻烦把那个.txt文件删掉,里面有真实的身份证号码 */
资源推荐
资源详情
资源评论
收起资源包目录
彩票管理系统.zip (42个子文件)
彩票管理系统
makefile 2KB
include
user_enum_control.h 2KB
general.h~ 362B
general.h 362B
admin_enum_control.h~ 2KB
User_registration.h~ 2KB
user_enum_control.h~ 2KB
control_enum.h~ 418B
Notary_enum_control.h 591B
main_enum.h~ 645B
Notary_enum_control.h~ 591B
control_enum.h 412B
admin_enum_control.h 2KB
User_registration.h 2KB
main_enum.h 642B
obj
Login_verification.o 17KB
User_registration.o 31KB
user_enum_control.o 42KB
main.o 3KB
main_enum.o 19KB
Notary_enum_control.o 19KB
control_enum.o 5KB
admin_enum_control.o 17KB
src
main_enum.c 8KB
admin_enum_control.c 7KB
admin_enum_control.c~ 7KB
user_enum_control.c 24KB
main.c~ 109B
User_registration.c~ 18KB
User_registration.c 18KB
Notary_enum_control.c~ 10KB
control_enum.c 668B
user_enum_control.c~ 24KB
Login_verification.c 8KB
Notary_enum_control.c 10KB
main_enum.c~ 8KB
Guessing_game.c~ 5KB
Login_verification.c~ 8KB
main.c 109B
control_enum.c~ 665B
bin
lotter 87KB
User_linked_list.txt~ 626B
共 42 条
- 1
资源评论
Fuxi-
- 粉丝: 726
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab开发的根据rvm回归模型自己编的matlab程序.rar
- 高效C++学生成绩管理系统:教育技术+C++17编程+数据管理+教务自动化
- 基于matlab开发的Tipping的相关向量机RVM的回归MATLAB程序,有英文注释,可以运行.rar
- 一个点击正反转程序实例,可实现案件电机正反转
- 搜索链接淘特搜索引擎共享版-tot-search-engine.rar
- 第十八届全国大学生智能汽车竞赛 摄像头组/镜头组
- 基于matlab开发的AUV惯性导航系统matlab仿真程序,包括轨迹生成、gps和sins组合、gps和dvl组合.rar
- 基于SSM的“个性化电子相册”的设计与实现.zip
- 如何在撰写科研文献时,使用ai工具辅助去完成科研工作
- 吉林大学计组笔记 自用 基于b站翼云图灵的课.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功