?? 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 + -