📄 login.pc
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <conio.h>
#include <process.h>
void connMenu();
void connect(char* user,char* pw,char* dblink);
int error();
void cus_login();
int query_cus_exist();
void cus_Menu();
void login_menu();
int query_cusID_unique(char* tID);
void cus_register();
int insert_into_cusPower();
extern void cus_meg_modify_menu();
extern void release_after();
extern void part_add_after();
extern void sign_bussiness();
char Cus_ID[10];
char Cus_Password[10];
main()
{
connMenu();
login_menu();
cus_Menu();
}/*main()*/
void connMenu()
{
char temp;
char username[20];
char password[20];
char dblinkname[20];
printf("正在启动顾客客户端......\n\n\n");
printf("\t\t---请选择连接方式---\n\n");
printf("\t\t 1. 默认方式\n");
printf("\t\t 2. 手动连接\n");
printf("\t\t ...任意键退出\n\n");
printf("请选择连接方式(1 or 2 ,quit with any other key):");
temp=getchar();
fflush(stdin);
switch(temp) {
case '1':
connect("system","manager","willim");
break;
/*默认*/
case '2':
printf("输入连接用户名:");
gets(username);
printf("输入连接口令:");
gets(password);
printf("输入连接字符串:");
gets(dblinkname);
connect(username,password,dblinkname);
break;
/*手动*/
case '0': exit(1); /*退出*/
default : printf("Exit the system!\n");exit(1);/*退出系统*/
}/*switch*/
}/*connectMenu()*/
void connect(char* user,char* pw,char* dblink)
{
EXEC SQL BEGIN DECLARE SECTION;
char username[20];
char password[20];
char dblinkname[20];
EXEC SQL END DECLARE SECTION;
strcpy(username,user);
strcpy(password,pw);
strcpy(dblinkname,dblink);
EXEC SQL WHENEVER SQLERROR DO error(); /*错误处理*/
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dblinkname;
printf("\nConnected to ORACLE as user:%s\n",username);
printf("你已成功链接顾客客户端\n");
}/*Conn()*/
int error()
{
printf("发生了一些错误,sorry,还没完成错误处理功能!");
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\nORACLE error detected:\n");
printf("\n%.70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK RELEASE;
return 1;
connMenu();
return 0;
}/*error()*/
void cus_Menu()
{
char temp;
fflush(stdin);
/*clrscr(void); */
system("cls");
puts("\n\n顾客客户端\n\n");
puts("\n\n\t\t\t主功能菜单\n\n");
printf("\t1.个人信息维护\n");
printf("\t2.发布需求信息\n");
printf("\t3.申请添加零件\n");
printf("\t4.签订交易\n");
printf("\t....任意键退出\n\n");
do {
printf("请选择(1 - 4 ,quit with any other key):");
temp=getchar();
fflush(stdin);
}while(temp==1||temp==2||temp==3||temp==4);
switch(temp) {
case '1':
cus_meg_modify_menu();break;
case '2':
release_after();break;
case '3':
part_add_after();break;
case '4':
sign_bussiness();break;
}
}/*cus_Menu()*/
void cus_login()
{
int more = 0;
printf("\n登陆顾客客户端提示:\n");
while(1){
++more;
printf("\n请输入用户名:");
scanf("%s",Cus_ID);
printf("\n请输入密码:");
scanf("%s",Cus_Password);
if( !query_cus_exist() ){
/*printf("(pro_login)%s,%s\n",Pro_ID,Pro_Password); */
printf("成功登陆.\n"); break;
}else{
if( more >= 3 ){
printf("您输入的用户名或密码不正确,不能使用本系统!再见!\n");
exit( -1 );
}else{
printf("您输入的用户名或密码有误,请重新输入!\n");
}/*else*/
}/*else*/
}/*while*/
}/*cus_login()*/
int query_cus_exist()
{
EXEC SQL BEGIN DECLARE SECTION;
char CusID[10];
char CusPW[10];
/* EXEC SQL VAR ProID IS STRING(9);
EXEC SQL VAR ProPW IS STRING(9);*/
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(CusID,Cus_ID);
strcpy(CusPW,Cus_Password);
EXEC SQL DECLARE query_cus_exist_cursor CURSOR FOR SELECT * FROM Cus_Power;
EXEC SQL OPEN query_cus_exist_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH query_cus_exist_cursor INTO :CusID,:CusPW;
/*printf("%s%s\n",CusID,CusPW);*/
if( strstr(CusID,Cus_ID) && strstr(CusPW,Cus_Password)) /*存在着巨大的风险*/
++total_number;
}
printf("%d",total_number);
if( total_number )
return 0;
else return -1;
}/*query_cus_exist()*/
void login_menu()
{
char temp;
system("cls");
fflush(stdin);
puts("\n\n顾客客户端\n\n");
printf("\n\n\n\t\t---请选择---\n\n");
printf("\t\t 1. 登陆\n");
printf("\t\t 2. 新用户注册\n");
printf("\t\t ...任意键退出\n\n");
printf("请选择(1 or 2 ,quit with any other key):");
temp=getchar();
fflush(stdin);
switch(temp) {
case '1':
cus_login();
break;
case '2':
cus_register();
break;
case '0': exit(1); /*退出*/
default : printf("Exit the system!\n");exit(1);/*退出系统*/
}/*switch*/
}/*connectMenu()*/
void cus_register()
{
printf("\n\n新用户注册提示:\n");
while(1){
printf("\n请输入用户名:");
scanf("%s",Cus_ID);
if( !query_cusID_unique(Cus_ID) ){
printf("\n请输入密码:");
scanf("%s",Cus_Password);
/*printf("(cus_register)%s,%s\n",Cus_ID,Cus_Password);*/
if( !insert_into_cusPower() ){
printf("注册成功\n");
break;
}else{
printf("ERROR:(cus_register())");
}/*else*/
}else{
printf("%s此用户名已存在,请选择另外的用户名!\n",Cus_ID);
}/*else*/
}/*while*/
login_menu();
}/*cus_register()*/
int insert_into_cusPower()
{
EXEC SQL BEGIN DECLARE SECTION;
char CusID[10];
char CusPW[10];
EXEC SQL END DECLARE SECTION;
strcpy(CusID,Cus_ID);
strcpy(CusPW,Cus_Password);
EXEC SQL WHENEVER SQLERROR GOTO error;
EXEC SQL INSERT INTO Cus_Power
VALUES(:CusID,:CusPW);
EXEC SQL COMMIT;
return 0;
error:
printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK;
return -1;
}/*insert_into_cusPower()*/
int query_cusID_unique(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char seekID[10];
char temp[10];
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(seekID,tID);
/* EXEC SQL WHENEVER NOT FOUND GOTO notfound;*/
EXEC SQL DECLARE pro_cusID_cursor CURSOR FOR SELECT ID FROM Customer WHERE ID=:seekID ;
EXEC SQL OPEN pro_cusID_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH pro_cusID_cursor INTO :temp;
++total_number;
}
if( total_number )
return 1;
else return 0;
/* notfound:
printf("WARING(query_cusID_unique)%s does not exist!",seekID);
return 0;*/
}/*query_cusID_unique(...)*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -