#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include"Account.h"
#include"../Common/List.h"
#include"../Persistence/EntityKey_Persist.h"
#include"../Persistence/Account_Persist.h"
#include"../Common/passwd.h"
static const char*accountfile="Account.dat";
static const char *keyname="Account";
void Account_Srv_FirstLogIn(){//第一次登陆,要求用户申请管理员帐号
if(access(accountfile,0)){
printf("\n\t\t======================================================================================");
printf("\n\t\t*****************************Welcome to use the system********************************");
printf("\n\n\n\t\tYou are the first time to come in this system!Please apply a account number!\n");
account_node_t*p,*h;
List_Init(h,account_node_t);
p=NULL;
p=(account_node_t*)malloc(sizeof(account_node_t));
p->data.type=9;
p->data.id=EntKey_Perst_GetNewKeys(keyname);
while(1){
printf("\n\n\t\tPlease input you phone number:");
scanf("%[^\n]",p->data.phoneNum);
while('\n'!=getchar());
if(strlen(p->data.phoneNum)==11){
break;
}
printf("\n\t\tPlease input correct phone number!\n");
}
printf("\n\t\tPlease input user name:");
scanf("%[^\n]",p->data.username);
while('\n'!=getchar());
while(strlen(p->data.username)<2){
printf("\n\t\tPlease Input again!\n\n");
scanf("%[^\n]",p->data.username);
while('\n'!=getchar());
}
char* ps;
set_disp_mode(STDIN_FILENO,0);
getpasswd(p->data.password, sizeof(p->data.password));
ps=p->data.password;
while(*ps!='\n')
ps++;
*ps='\0';
set_disp_mode(STDIN_FILENO,1);
List_AddTail(h,p);
if(Account_Perst_Insert(h)==0){
printf("\n\t\tAdd administritor failed!\n");
remove("account.dat");
return;
}
printf("\n\t\tCongratulation!You are the first [adminastrater] in this system!\n");
printf("\n\t\tPress [Enter] to return ......");
while('\n'!=getchar());
return ;
}else{
return;
}
}
int Account_Srv_SearchPass(account_node_t*p){//验证用户信息
if(Account_Perst_SearchInfo(p)==0){
return 0;
}
printf("\n\t\tVirified succeed!\n");
printf("\n\t\tPress [Enter] to return.....");
while('\n'!=getchar());
char* ps;
set_disp_mode(STDIN_FILENO,0);
getpasswd(p->data.password, sizeof(p->data.password));
ps=p->data.password;
while(*ps!='\n')
ps++;
*ps='\0';
set_disp_mode(STDIN_FILENO,1);
if(Account_Perst_Modify(p)==0){
return 0;
}
return 1;
}
int Account_Srv_LogIn(){//用户登录
account_node_t *p=NULL;
p=(account_node_t*)malloc(sizeof(account_node_t));
printf("\n\t\t=====================================================================================");
printf("\n\n\t\tInput user number:");
scanf("%[^\n]",p->data.username);
while('\n'!=getchar());
while(1){
char* ps;
set_disp_mode(STDIN_FILENO,0);
getpasswd(p->data.password, sizeof(p->data.password));
ps=p->data.password;
while(*ps!='\n')
ps++;
*ps='\0';
set_disp_mode(STDIN_FILENO,1);
if(strlen(p->data.password)<6){
printf("\n\t\tThe password is too short!\n");
}
else{
break;
}
}
if(Account_Perst_JudgeInfo(p)==0){
printf("\n\t\tLog Fail!\n");
return 0;
}
return 1;
}
int Account_Srv_Add(){//添加用户信息
account_node_t *h,*p,*testHead,*temp;
char choice;
List_Init(testHead,account_node_t);
List_Init(h,account_node_t);
while(1){
p=(account_node_t*)malloc(sizeof(account_node_t));
printf("\n\t\tInput user username:");
scanf("%[^\n]",p->data.username);
while('\n'!=getchar());
while(strlen(p->data.username)<2){
printf("\n\t\tUser name is too short,try again!");
printf("\n");
printf("\n\t\tInput user name:");
scanf("%[^\n]",p->data.username);
while('\n'!=getchar());
}
if(Account_Perst_FetchAll(testHead)){
temp=testHead->next;
while(temp!=testHead){
if(strcmp(temp->data.username,p->data.username)==0){
printf("\n\n\t\tThis user has exist!");
printf("\n\n\t\tPress [Enter] to return.....");
while('\n'!=getchar());
return 0;
}
temp=temp->next;
}
}
printf("\n\n\t\t User_Type:[M]Manager [A]Administrater [S]Salesman [O]Other user\n");
printf("\n\n\t\tInput user type:");
choice=getchar();
while('\n'!=getchar());
if(choice=='o'||choice=='O')p->data.type=USR_ANOMY;
else if(choice=='M'||choice=='m')p->data.type=USR_MANG;
else if(choice=='s'||choice=='S')p->data.type=USR_CLERK;
else if(choice=='A'||choice=='a')p->data.type=USR_ADMIN;
else {
printf("\n\t\tChoice is not exsist!");
return 0;
}
p->data.id=EntKey_Perst_GetNewKeys(keyname);
while(1){
printf("\n\t\tPlease input user phone number:");
scanf("%[^\n]",p->data.phoneNum);
while('\n'!=getchar());
if(strlen(p->data.phoneNum)==11){
break;
}
printf("\n\t\tPlease input correct number!\n");
}
while(1){
char* ps;
set_disp_mode(STDIN_FILENO,0);
getpasswd(p->data.password, sizeof(p->data.password));
ps=p->data.password;
while(*ps!='\n')
ps++;
*ps='\0';
set_disp_mode(STDIN_FILENO,1);
if(strlen(p->data.password)<6){
printf("\n\t\tThe password is too short!\n");
}
else{
break;
}
}
List_AddTail(h,p);
printf("\n\t\t[E]Exit [C]Continue\n");
printf("\n\n\t\tInput you choice:");
choice=getchar();
while('\n'!=getchar());
if(choice=='e'||choice=='E')break;
}
if(Account_Perst_Insert(h)==0){
return 0;
}
printf("\n\t\tAdd user successfully!Press [Enter] to return......");
while('\n'!=getchar());
return 1;
}
int Account_Srv_Delete(){//删除用户信息
if(Account_Perst_Delete()==0){
return 0;
}
return 1;
}
int Account_Srv_UserLogIn1(account_node_t* temp){//分类,用户登陆
printf("\n\t\t============================================================================================");
printf("\n\t\t**************************************User log in*******************************************");
printf("\n\t\t============================================================================================");
account_node_t* h;
List_Init(h,account_node_t);
if(Account_Perst_FetchAll(h)==0){
printf("\n\t\tNo user,press [Enter] to return.....");
while('\n'!=getchar());
return 0;
}
int ch;
printf("\n\t\t============================================================================================");
printf("\n\t\t\t0.Others 1.Salesman 2.Manager 9.Administrater");
printf("\n\t\t============================================================================================");
printf("\n\n\t\tChoose user type:");
scanf("%d",&ch);
while('\n'!=getchar());
temp->data.type=ch;
printf("\n\t\tInput user number:");
scanf("%[^\n]",temp->data.username);
while('\n'!=getchar());
while(1){
char* ps;
set_disp_mode(STDIN_FILENO,0);
getpasswd(temp->data.password, sizeof(temp->data.password));
ps=temp->data.password;
while(*ps!='\n')
ps++;
*ps='\0';
set_disp_mode(STDIN_FILENO,1);
if(strlen(temp->data.password)<6){
printf("\n\t\tThe password is too short!\n");
}
else{
break;
}
}
account_node_t* p;
p=h->next;
while(p!=h){
if(strcmp(p->data.username,temp->data.username)==0&&strcmp(p->data.password,temp->data.password)==0&&(temp->data.type==p->data.type)){
temp->data.id=p->data.id;
strcpy(temp->data.phoneNum,p->data.phoneNum);
return 1;
}
p=p->next;
}
free(temp);
printf("\n\t\tLog fail!");
while('\n'!=getchar());
system("clear");
return 0;
}
int Account_Srv_UserLogIn(account_node_t* temp){//用户登录
printf("\n\t\t=====================================
没有合适的资源?快使用搜索试试~ 我知道了~
西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip
共61个文件
c:30个
h:29个
makefile:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 147 浏览量
2024-03-08
18:23:53
上传
评论
收藏 61KB ZIP 举报
温馨提示
西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip 西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip西安邮电
资源推荐
资源详情
资源评论
收起资源包目录
西安邮电大学大一第一学期软件工程专业课程设计(剧院票务管理系统)C语言实现.zip (61个子文件)
MovieManagementSystem主-master
TTMS.c 308B
Persistence
Account_Persist.c 7KB
Salesanalysis_Persist.c 626B
Sale_Perst.h 396B
Ticket_Perst.h 486B
Schedule_Persist.c 5KB
Sale_Perst.c 3KB
Account_Persist.h 781B
EntityKey_Persist.h 420B
Schedule_Perst.c 0B
Play_Persist.h 400B
Seat_Persist.h 574B
Studio_Persist.c 3KB
Seat_Persist.c 6KB
EntityKey_Persist.c 2KB
Studio_Persist.h 691B
Play_Persist.c 8KB
Ticket_Perst.c 4KB
Schedule_Persist.h 496B
Salesanalysis_Persist.h 198B
Makefile 332B
View
Main_Menu.c 6KB
Studio_UI.c 6KB
Play_UI.c 3KB
Ticket_UI.h 166B
Sale_UI.c 5KB
Salesanalysis_UI.h 142B
Schedule_UI.h 261B
Studio_UI.h 251B
Schedule_UI.c 4KB
Salesanalysis_UI.c 5KB
Seat_UI.c 8KB
Main_Menu.h 125B
Ticket_UI.c 3KB
Seat_UI.h 295B
Sale_UI.h 311B
Play_UI.h 455B
Account_UI.h 238B
Account_UI.c 6KB
Service
Account.c 11KB
Seat.h 729B
Account.h 722B
Studio.c 833B
Salesanalysis.h 626B
Play.c 3KB
Seat.c 4KB
Schedule.c 5KB
Schedule.h 712B
Ticket.h 477B
Ticket.c 2KB
Play.h 940B
Studio.h 602B
Salesanalysis.c 1KB
Sale.h 654B
Sale.c 4KB
.project 223B
Common
passwd.c 1KB
common.c 1KB
common.h 395B
List.h 7KB
passwd.h 123B
共 61 条
- 1
资源评论
猰貐的新时代
- 粉丝: 1w+
- 资源: 2559
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- LLVM MachineScheduler UML 图
- 《算法设计与分析报告》
- Discuz插件 微信购买会员用户组V2.180418商业版
- CSP-JS2024第二轮官方测试数据
- 适用于typora编辑器的主题.zip
- chromedriver-win64-132.0.6824.0.zip
- chromedriver-win64-132.0.6823.0.zip
- chromedriver-win64-132.0.6821.2.zip
- petr按照j6中对transformer的处理进行优化,代码及结果
- PandaX是Go语言开源的企业级物联网平台低代码开发基座,支持设备管控,规则链,云组态,可视化大屏,报表设计器,表单设计器等功
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功