編程中aid
① 資料庫表中的主鍵和外鍵
主外鍵的存在是依託兩個實體之間的關系而存在的;
比如班級與學生的關系:
一個班級可以有多個學生,並且一個學生只能屬於一個班級,這就是一對多的關系;
那麼設計資料庫的時候就應該在學生表內存放班級的ID作為外鍵,為什麼不在班級表內放學生呢?
因為,你想一想班級表內如果放學生那麼記錄可能就是這樣:
1班ID
1班
xx同學id
1班ID
1班
xx同學id
..
這是不允許的,班級表內班級為主鍵,是唯一的不允許相同記錄的;
下面簡單給你講下大概建成的表結構
--建班級表
create
table
class(
classid
int
primary
key,--定義班級ID為主鍵
classname
varchar(15)
)
--建學生表
create
table
students(
studentid
int
primary
key,--定義學生ID為主鍵
classid
int
,--外鍵值,跟班級表classid
屬性類型相同
stuname
varchar(20),--學生姓名
---定義外鍵
foreign
key(classid)
references
class(classid)
--本表classid是基於class表classid的外鍵
)
---------
如上定義了主外鍵後,兩個表間的關系就是一對多的關系了,並且學生表內的classid必須依託班級表的classid存在,也就是說外鍵必須要主鍵存在的時候才能創建,例如:
--在班級表為空的情況往學生表插入一條記錄是不允許的:
insert
into
students(studentid,classid,stuname)values(1,1,'小明')
系統會拋出異常提示主鍵表班級表內班級ID不存在這樣是不允許插入的;
必須要先往班級表內插入一條記錄:
insert
into
class(classid,classname)values(1,'一班')
後才能執行插入前面一條往學生表插入信息的語句..
--------------可了解一些了?真累啊.
② 織夢sql中怎麼取得aid,
織夢取得文章的aid是: [field:id/]
tag標簽調用代碼
{dede:tag row='10'}
<a href='[field:link/]'>[field:tag /]</a>
{/dede:tag}
希望可以幫助到你
程序設計思路:
一、小朋友和蘋果都具有多樣屬性(比如高度、編號、狀態等,還可以擴展出姓名,重量等)。所以小朋友和蘋果要定義成結構體。
二、人和蘋果數量都是手動輸入,因此數組大小不確定,要使用動態數組(不使用動態,就得得限制用戶輸入的大小)。
三、題目要求確保摘到的總數最多,從最矮的小朋友開始摘,因此小朋友的數組要進行排序。
四、遞歸函數實現摘蘋果邏輯,每人在自己夠到的范圍中隨機摘兩個(不夠就拿1個)。(遞歸函數每次發現一個可摘取的蘋果,有50%概率看中,都沒看中,默認摘取最後一個看中的蘋果)。
下面是代碼(控制台刷新函數中cls僅限window系統運行,其它操作系統,刪除或修改):

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<malloc.h>
#define AFR 7//蘋果圖像的行數
#define AFC 6//蘋果圖像的行數
#define CFR 5//小朋友圖像的行數
#define CFC 6//小朋友圖像的行數
typedef struct apple//表示蘋果數據的結構體
{
int aid;//蘋果編號
int height;//蘋果的高度
int status;//0:表示未被摘取。1:表示已被摘取
char aframe[AFR][AFC];//表示蘋果的圖像
}APPE;
typedef struct childern//表示小孩子的編號
{
int cid;//小孩子的編號
int height;//小孩子的身高
int n;//小孩摘取的蘋果數量
char cframe[CFR][CFC];//表示小朋友的圖像
APPE **appes;//小孩摘取的蘋果結構指針數組
}CHN;
int n,m;//蘋果和小朋友的個數,設為全局變數
APPE *setApps();//設置蘋果。成功返回結構數組,失敗返回NULL
CHN *setChns();//設置小盆友。同上。
int orderChnByHeight(CHN *chns);//對小朋友數組按照身高升序排列
int getApple(APPE *appes,CHN *chns,char (*strInfo)[100]);//遞歸,模擬小朋友依次選蘋果。異常返回-1
int showFrame(APPE *appes,CHN *chns,char (*strInfo)[100]);
int main()
{
int i;
char (*strInfo)[100]=NULL;//用於顯示操作流水
APPE *appes=NULL;
CHN *chns=NULL;
appes=setApps();
chns=setChns();
if(orderChnByHeight(chns)==-1)return 1;
srand(time(NULL));
strInfo=(char (*)[100])malloc(sizeof(char *)*m*100);
for(i=0;i<m;i++)strInfo[i][0]=0;
if(!strInfo) return 1;
showFrame(appes,chns,strInfo);
return 0;
}
int showFrame(APPE *appes,CHN *chns,char (*strInfo)[100])
{
static int k=1;
int i,j;
system("cls");
printf(" =============每組圖像靠上的數值為高度,靠下的數值為編號============ ");
printf(" =============為確保能拿到最多的蘋果,小朋友們按升序排列============ ");
for(i=0;i<AFR;printf(" "),i++)
for(j=0;j<n;j++)
printf("%s ",appes[j].aframe[i]);
printf(" ");
for(i=0;i<CFR;printf(" "),i++)
for(j=0;j<m;j++)
printf("%s ",chns[j].cframe[i]);
printf(" ==================================================================== ");
printf("操作流水: ");
for(i=0;i<m;i++)
printf("%s ",strInfo[i]);
fflush(stdin);
printf("按下任意鍵進行下一步。。。。。。 ");
getchar();
if(getApple(appes,chns,strInfo)==-1)return -1;
if(k)showFrame(appes,chns,strInfo),k--;
return 1;
}
int getApple(APPE *appes,CHN *chns,char (*strInfo)[100])
{
static int i=0,aflag,cflag;
int j,indexSave;
if(appes==NULL||chns==NULL) return -1;
if(chns[i].n==2)i++;//當前小朋友拿夠2個,換下一個小朋友
if(i==m)return 1;//所有人均拿過,結束遞歸
aflag=0;
for(j=0;j<n;j++)
if(appes[j].status==0) {aflag=1;break;}
if(aflag==0) return 1;//所有蘋果均拿完,結束遞歸
indexSave=-1;
cflag=0;
for(j=0;j<n;j++)
{
if(appes[j].status==0 && appes[j].height<=chns[i].height)
{
cflag=1;
indexSave=j;
if(rand()%2)//每次發現,有50%概率拿取,如所有可拿蘋果都沒選中,選最後發現的目標
break;
}
}
if(cflag)//小朋友拿起一個蘋果的過程
{
appes[indexSave].status=1;
//改變蘋果初始圖像
sprintf(appes[indexSave].aframe[6]," ");
chns[i].appes[chns[i].n]=&appes[indexSave];
chns[i].n++;
if(chns[i].n==1)
{
//改變小朋友初始圖像
sprintf(chns[i].cframe[0]," %c%c/ ",3,1);
sprintf(strInfo[i],"編號%d的小朋友拿取了1個蘋果(編號%d) ",chns[i].cid,chns[i].appes[0]->aid);
}
if(chns[i].n==2)
{
//改變小朋友初始圖像
sprintf(chns[i].cframe[0]," %c%c%c ",3,1,3);
sprintf(strInfo[i],"編號%d的小朋友拿取了2個蘋果(編號%d和編號%d) ",chns[i].cid,chns[i].appes[0]->aid,chns[i].appes[1]->aid);
}
}
if(cflag==0 && chns[i].n==0) sprintf(strInfo[i],"編號%d的小朋友沒有能拿到的蘋果,非常沮喪! ",chns[i].cid),i++;
if(cflag==0 && chns[i].n==1) i++;
return getApple(appes,chns,strInfo);
}
int orderChnByHeight(CHN *chns)
{
CHN chnTemp;
int i,j;
chnTemp.appes=(APPE **)malloc(sizeof(APPE*)*2);
if(!chnTemp.appes) return -1;
else
{
chnTemp.appes[0]=chnTemp.appes[1]=NULL;
if(chns)
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)
if(chns[i].height>chns[j].height)
chnTemp=chns[i],chns[i]=chns[j],chns[j]=chnTemp;
}
free(chnTemp.appes);
return 1;
}
CHN *setChns()
{
int i;
CHN *chns=NULL;
printf("請輸入小朋友的個數:");
scanf("%d",&m);
chns=(CHN *)malloc(sizeof(CHN)*m);
if(!chns) return NULL;
printf("請輸入%d個小朋友身高(不超過3位整數): ",m);
for(i=0;i<m;i++)
{
chns[i].cid=i+1;
scanf("%d",&chns[i].height);
chns[i].height=chns[i].height%1000;//超出3位截取
chns[i].n=0;
chns[i].appes=(APPE **)malloc(sizeof(APPE*)*2);
if(!chns[i].appes) return NULL;
chns[i].appes[0]=chns[i].appes[1]=NULL;
//設置小朋友初始圖像
sprintf(chns[i].cframe[0]," \%c/ ",1);
sprintf(chns[i].cframe[1]," / \ ");
sprintf(chns[i].cframe[2],"-----");
sprintf(chns[i].cframe[3],"高%3d",chns[i].height);
sprintf(chns[i].cframe[4],"ID%3d",chns[i].cid);
}
return chns;
}
APPE *setApps()
{
int i;
APPE *appes=NULL;
printf("請輸入蘋果的個數:");
scanf("%d",&n);
appes=(APPE *)malloc(sizeof(APPE)*n);
if(!appes) return NULL;
printf("請輸入%d個蘋果的高度(不超過3位整數): ",n);
for(i=0;i<n;i++)
{
appes[i].aid=i+1;
scanf("%d",&appes[i].height);
appes[i].height=appes[i].height%1000;//超出3位截取
appes[i].status=0;
//設置蘋果初始圖像
sprintf(appes[i].aframe[0],"高%3d",appes[i].height);
sprintf(appes[i].aframe[1],"ID%3d",appes[i].aid);
sprintf(appes[i].aframe[2],"-----");
sprintf(appes[i].aframe[3]," %c ",'|');
sprintf(appes[i].aframe[4]," %c ",'|');
sprintf(appes[i].aframe[5]," %c ",'|');
sprintf(appes[i].aframe[6]," %c ",3);
}
return appes;
}
④ java+my sql問題:以下是資料庫中的兩個表的屬性行,分別是AID BID 和C
好吧,我幫你寫下。代碼如下:
SELECT a.AID,b.C FROM A a,B b WHERE a.BID=b.BID
你自己參考的寫下
⑤ 想學習編程~~~~~~~~~!!~~~\####
學習編程,從何入手?
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
方案一 Basic語言 & Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。
方案二 Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
方案三 C語言 & Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
方案四 C++語言 & C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。
方案五 SQL語言 & Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
【匯編語言編程工具】
QUOTE:
Visual ASM 1.0
http://hnpy.onlinedown.net/down/VisulASMSetup.zip
51匯編集成開發環境 V2.5.0
http://www.bjdown.com/down.asp?id=35407&no=1
MASM
http://bbs.cpcw.com/attachment.php?aid=128300
Emu8086 v3.07 [2.43M]
http://cnc.winzheng.com/softview/SoftView_23319.htm
KeyGen:
http://bbs.cpcw.com/attachment.php?aid=140072
參考資料:http://biancheng.cc.topzj.com/viewthread.php?tid=83587&fpage=1
⑥ C語言編程——發牌洗牌模擬,求幫助
實現了2副牌的發牌,和每個人的牌和底牌
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
struct CARD //牌
{
char suit[10]; /*花色*/
char face[10]; /*牌面*/
};
enum { posA, posB, posC, posD};//定義好每個人的位置
struct Postion
{
struct CARD getcard[25];//每人獲得的牌
};
struct Postion postion[4];//分配四個位置
struct CARD leftCard[8]; //底牌
struct CARD card[54]; //54張牌
char *suit[]={"Spades","Hearts","Clubs","Diamonds"};
char *face[] = {"A","2","3","4","5","6","7","8","9",
"10","jack","Queen","King"};
/* 函數功能:將52張牌的順序打亂,
函數參數:結構體數組wCard,表示52張牌
函數返回值:無
*/
void Shuffle(struct CARD *wCard)
{
int i,j;
struct CARD temp;
for (i=0; i<54; i++)
{
j=rand()%54;
temp=wCard[i];
wCard[i]=wCard[j];
wCard[j]=temp;
}
}
/*函數功能:發牌結果
函數參數:結構體數組wCard,表示有54張牌
函數返回值:無
*/
void Deal(struct CARD *wCard)
{
int i,aidx=0,bidx=0,cidx=0,didx=0;
Shuffle(card);//將牌打亂
/*************發第一副牌,只發50張,分別分給A,B,C,D四個位置 4張留底**************/
// 第一次發完50張後,A,B多一張,所以下面第二次讓C,D排在前面,兩次發完剛好各40張 */
for (i=0; i<50; i++)//發牌數
{
// printf("%10s %5s\n", wCard[i].suit, wCard[i].face);
if(i%4==0)
postion[posA].getcard[aidx++]=wCard[i];
else if(i%4==1)
postion[posB].getcard[bidx++]=wCard[i];
else if(i%4==2)
postion[posC].getcard[cidx++]=wCard[i];
else if(i%4==3)
postion[posD].getcard[didx++]=wCard[i];
}
/**********剩下的四張作為底牌*********/
leftCard[0]=wCard[i++];
leftCard[1]=wCard[i++];
leftCard[2]=wCard[i++];
leftCard[3]=wCard[i++];
Shuffle(card);//再次將牌打亂
/*************發第二副牌,也只發50張,分別分給A,B,C,D四個位置,4張留底,一共8張底**************/
for (i=0; i<50; i++)//發牌數
{
// printf("%10s %5s\n", wCard[i].suit, wCard[i].face);
if(i%4==0)
postion[posC].getcard[cidx++]=wCard[i];
else if(i%4==1)
postion[posD].getcard[didx++]=wCard[i];
else if(i%4==2)
postion[posA].getcard[aidx++]=wCard[i];
else if(i%4==3)
postion[posB].getcard[bidx++]=wCard[i];
}
/**********剩下的四張作為底牌,這樣就一共為8張底牌*********/
leftCard[4]=wCard[i++];
leftCard[5]=wCard[i++];
leftCard[6]=wCard[i++];
leftCard[7]=wCard[i++];
}
/* 函數功能:將52張牌按黑桃、紅桃、草花、方塊花色順序,面值按A~K順序排列
函數參數:結構體數組wCard,表示不同花色和面值的52張牌
指針數組wFace,指向面值字元串
指針數組wSuit,指向花色字元串
函數返回值:無
*/
void FillCard(struct CARD wCard[],char *wSuit[], char *wFace[])
{
int i;
for (i=0; i<52; i++)
{
strcpy(wCard[i].suit, wSuit[i/13]);
strcpy(wCard[i].face, wFace[i%13]);
}
// wCard[53].face="Big"; //大小王
strcpy(wCard[52].suit, "Small");
strcpy(wCard[52].face, "ghost");
strcpy(wCard[53].suit, "Big");
strcpy(wCard[53].face, "ghost");
}
void print(char ch)//輸出牌
{
int i;
switch(ch)
{
case 'A': for(i=0; i<25; i++)
{
printf("%10s %5s\n", postion[posA].getcard[i].suit, postion[posA].getcard[i].face);
}
break;
case 'B': for(i=0; i<25; i++)
{
printf("%10s %5s\n", postion[posB].getcard[i].suit, postion[posB].getcard[i].face);
}
break;
case 'C': for(i=0; i<25; i++)
{
printf("%10s %5s\n", postion[posC].getcard[i].suit, postion[posC].getcard[i].face);
}
break;
case 'D': for(i=0; i<25; i++)
{
printf("%10s %5s\n", postion[posD].getcard[i].suit, postion[posD].getcard[i].face);
}
break;
}
}
void outputLeftCard()//輸出底牌
{
int i;
for(i=0; i<8; i++)
printf("%10s %5s\n", leftCard[i].suit, leftCard[i].face);
}
int main()
{
char pos;
srand(time(NULL));
FillCard(card,suit,face);
//Shuffle(card);
Deal(card);
printf("Please choose your position(A、B、C、D):");
scanf("%c", &pos);
print(pos);//輸出你所在位置的牌
/**********下面輸出的是,除了你之外其他人的牌**********/
if(pos !='A')
{
printf("A:\n");
print('A');
}
if(pos !='B')
{
printf("B:\n");
print('B');
}
if(pos !='C')
{
printf("C:\n");
print('C');
}
if(pos !='D')
{
printf("D:\n");
print('D');
}
printf("底牌為:\n");
outputLeftCard();//輸出底牌
return 0;
}
⑦ 網址中的sid和aid以及兩者之後的東西都是什麼意思
sid就是你的密碼所編譯成的md5,sid碼就如同你的密碼。而aid好像就是論壇欄目的代碼。如灌水專區的aid=1553,就說明灌水專區的欄目id是1553.
滿意請採納
⑧ 誰能講解一下這句PHP語言是什麼意思
/plus/ad_js.php?aid=2
是一個地址
就這個<script></script>而言
/plus/ad_js.php?aid=2 是這個腳本的地址
其中 aid 是參數的名稱,2是這個參數的值。
在網站根目錄下的 plus 子目錄中,文件名為 ad_js.php。
通常腳本的地址是 *.js,但是在有些情況下也可以是一個動態的網址,只要該網址向瀏覽器輸出的是合法的 js 代碼就行了。
比方以上的這個地址的代碼是
<?php
echo('alert("hello world!")');
?>
就是一個合法的js代碼
類似的ASP/JSP都可以作為script的地址
⑨ 編程猜數字游戲
#include<stdio.h>
#include<time.h>
#include<math.h>
#define MAXTIMES 8
#define winer 1
#define loser 0
int main()
{
int aid[4],num[4],i,j,times,key,key2,A,B;
char ch;
time_t now;
Initialize:now=time(0);
srand(now);
aid[0]=(rand()+90)%10;/*生成目標數組*/
delay(20);
aid[1]=(rand()+90)%10;
delay(20);
aid[2]=(rand()+90)%10;
delay(20);
aid[3]=(rand()+90)%10;
for(i=0;i<4;i++) /*判斷是否產生相同的數字*/
{for(j=0;j<4;j++)<br/> {if((i!=j)&&(aid==aid[j]))<br/> goto Initialize;<br/> }
}
printf(" ");
times=1;
while(times<=MAXTIMES) /*程序主體部分*/
{
key=0;
key2=0;
printf("NO.%d: Please input 4 different int numbers to play! ",times);
scanf("%d,%d,%d,%d",&num[0],&num[1],&num[2],&num[3]);
for(i=0;i<4;i++) /*判斷所輸數字是否合法則*/
{
if(!((num<=9)&&(num>=0)))
{
printf(" Error!The numbers you input must be int numbers which from 0 to 9 ");
key=1;
break;
}
}
if(key==1)
continue;
for(i=0;i<4;i++) /*判斷是否輸入了相同的數字*/
{
for(j=i+1;j<4;j++)
{
if(num==num[j])
{printf(" Error!The numbers you input must be different! ");<br/>key2=1;<br/>}
break;
}
}
if(key2==1)
continue;
A=0;
B=0;
for(i=0;i<4;i++) /*比較兩組數字*/
{
if(num==aid)
A++;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(num==aid[j])
B++;
}
}
B=B-A;
printf(" A%dB%d ",A,B);
if(A==4) /*游戲成功,提示並返回*/
{
printf("Congratulations! ");
printf("Press any key to exit.! a");
getch();
return(winer);
}
⑩ assistance、aid、help的區別
help通常表示"幫助"的意思,意義非常廣泛,但是大部分可以用help的地方不可以用aid,
我們通常說I can help you ,但決不能說I can aid you ,
別人尋求你的幫助是說can you help me,而決不說 can you aid me
從英文習慣來講,aid這個詞真正的含義是"援助,支援"的意思,從字面上就可以看出,aid比較正式,當別人需要你help的時候,也許只是舉手之勞,而當別人要求aid的時候,那情況通常要重要的多,形勢也重要和嚴峻的多,通常要伴隨著比help大的多的體力,經濟等等方面的付出,所以,當我們說international aid時,就一定會伴隨著大量的人力,物力和財力的消耗...
assist要比help正式的多, 我們通常用help來表示" 通過某人的幫助,讓某事變得更容易,更簡單", 而assist通常更強調"協助"的內涵,表示提供這種"協助" 的人通常要在某一領域有某種過人的技能,所以,名詞的assistance多表示"助手"的意思希望幫到你 滿意的話 望採納
