⑴ 簡述一個資料庫應用系統的建立過程
資料庫建立過程包括六個主要步驟:
1.需求分析:了解用戶的數據需求、處理需求、安全和完整性需求。
2.概念設計:通過數據抽象,設計系統的概念模型,一般為e-r模型。
3.邏輯結構設計:設計系統的模式和外部模式,特別是關系模型的基本表和視圖。
4.物理結構設計:設計數據的存儲結構和訪問方法,如索引的設計。
5.系統實現:組織數據存儲,編寫應用程序,試運行。
6.運維:系統投入運行,進行長期維護。
(1)編譯條件篩選擴展閱讀:
資料庫設計技巧:
1.原始文檔與實體之間的關系
它可以是一對一、一對多、多對多。一般來說,它們是一對一的關系:也就是說,原始文檔只對應於一個實體,而且只對應於一個實體。在特殊情況下,它們可能是一對多或多對一的,其中一個原始文檔對應多個實體,或者多個原始文檔對應一個實體。
這里的實體可以理解為基本表。在明確了這些對應關系之後,這對於輸入介面的設計是非常有益的。
2.主鍵和外鍵
通常,實體不能同時沒有主鍵和外鍵。在e-r關系圖中,葉中的實體可以定義主鍵,也可以不定義主鍵(因為它沒有後代),但是它必須有外鍵(因為它有父鍵)。
主鍵和外鍵的設計在全局資料庫的設計中起著重要的作用。當全球資料庫的設計完成後,一位美國的資料庫設計專家說:「鑰匙,鑰匙無處不在,只有鑰匙」,這是他的資料庫設計經驗,也是他高度抽象的信息系統核心思想(數據模型)的體現。
因為:主鍵是實體的高度抽象,主鍵和外鍵對,表示實體之間的連接。
3.基本表的屬性
基表不同於中間表和臨時表,因為它有以下四個特點:
原子性。基表中的欄位沒有分解。
原始性。基表中的記錄是原始數據(底層數據)的記錄。
先驗性。所有輸出數據都可以從基表和代碼表中的數據派生出來。
穩定。表的基本結構比較穩定,表中的記錄保存時間較長。
一旦理解了基本表的性質,就可以在設計資料庫時將它們與中間表和臨時表區分開。
⑵ vb中,差、交、並、自然連接、選擇、投影、笛卡爾積分別都是什麼運算
交(Intersection)
關系R與關系S的交由既屬於R又屬於S的元組組成,即R與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作:R∩S={t|t∈R ∧ t∈S}。
並(Union)
關系R和關系S的並由屬於R或屬於S的元組組成,即R和S的所有元組合並,刪去重復元組,組成一個新關系,其結果仍為n目關系(「n目」指關系模式中屬性的數目為n) 。記作:R∪S={t|t∈R∨t∈S}。
差(Difference)
關系R與關系S的差由屬於R而不屬於S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作:R-S={t|t∈R∧┐t∈S}。
廣義笛卡爾積(Extended Cartesian Proct)
兩個分別為n目和m目關系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合,元組的前n列是關系R的一個元組,後m列是關系S的一個元組。
若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡爾積有k1*k2個元組,記作:R×S={tr⌒ts| tr∈R∧ts∈S}或記做R×S={(r1,…,rn ,s1,…,sm)∣((r1,…,rn)∈R∧(s1,…,sm)∈S)。
選取(Selection)
選取運算是單目運算,是根據一定的條件在給定的關系R中選取若干個元組,組成一個新關系,記作:σF(R)={t|t∈R∧F(t)為真}。
投影(Projection)
關系R上的投影是從R中選擇出若干屬性列,組成新的關系,即對關系在垂直方向進行的運算,從左到右按照指定的若干屬性及順序取出相應列,刪去重復元組。記作:ΠA(R)={t[A]|t∈R}。
連接(Join)
當連接屬性X與Y具有相同屬性組時,把在連接結果中重復的屬性列去掉。即如果R與S具有相同的屬性組Y,則自然連接可記作:R*S={t r⌒ts |tr∈R∧ts∈S∧tr[Y]=ts[Y]}。
(2)編譯條件篩選擴展閱讀
語言編程,VB是世界上使用人數最多的語言——不僅是盛贊VB的開發者還是抱怨VB開發者的數量。它源自於BASIC編程語言。
VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易使用DAO、RDO、ADO連接資料庫,或者輕松的創建ActiveX控制項。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。
優點:
1、Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
2、眾多的控制項讓編程變得象壘積木一樣簡單。
3、Visual Basic 全部漢化,對於不會英語的人也能輕松使用。
缺點:
1、Visual Basic 不是真正的面向對象的開發工具。
2、Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
3、Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
(Visual Basic 5以及以前的版本產生的代碼是偽代碼,Visual Basic 6 編譯出來的代碼是真正的可執行代碼。)
⑶ C語言 完全平方數
之前的是不對,對題理解錯誤,謝謝一樓的指正哈
修改後如下:
#include<stdio.h>
intfun(intarray[])
{
inti=0;
intk=0;
intm=0,n=0,l=0;
for(i=10;;i++)
{
if(100<i*i&&i*i<=999)
{
m=(i*i)/100;
n=((i*i)%100)/10;
l=(i*i)%10;
if(m==n||m==l||n==l)
array[k++]=i*i;
}
if(i*i>999)break;
}
returnk;
}
voidmain()
{
intarray[30]={0};
intcount=0;
inti=0;
count=fun(array);
printf("符合條件的數如下:");
for(i=0;i<count;i++)
{
printf("%d",array[i]);
}
printf(" ");
printf("符合條件的數的個數=%d ",count);
}
⑷ 如何理解C語言任何文件的動作都要檢查兩次
實際並不是檢查兩次,是分編譯和鏈接兩個步驟。
以VS工程為例介紹如下:
主要工程文件作用如下:
.vcxproj:工程配置文件
.props:使用項目屬性表可以為生成工具(如編譯器或鏈接器)指定開關並創建用戶定義的宏。
.vcxproj.user:用戶文件,存儲特定於用戶的屬性,例如調試和部署設置。vcxproj.user 文件應用於特定用戶的所有項目。
.vcxproj.filters:當使用解決方案資源管理器向項目中添加文件時,篩選器文件 (.vcxproj.filters) 會基於該文件的文件擴展名定義在解決方案資源管理器樹視圖的哪個位置添加該文件。
整個生成過程可分為如下幾步:
1、獲取配置
當編譯程序時,會把上面幾個文件中所有信息輸入到編譯器中,結合目前編譯器的全局參數include files lib files source files等等,從配置文件中確定標准庫和頭文件的位置,使所有參與編譯的依賴關系都找清楚。
2、編譯預處理階段
讀取源程序,對其中的偽指令(以#開頭的指令)和特殊符號進行處理;
將所有的「#define」指令刪除,並且將宏定義展開;
處理所有的條件編譯指令;
處理#include預編譯指令,將被包含的頭文件插入到預編譯指令的位置。這可能是一個遞歸操作,如果被包含的頭文件中又包含其他頭文件;
刪除所有的注釋;
添加行號和文件標識;
保留所有的#program編譯器指令,後續的編譯步驟中要用到該指令。
經過預編譯的處理以後,頭文件被合並到源文件中,並且所有的宏定義都被展開。
3、編譯階段
依賴於編譯器,英文是compile,編譯階段將源程序(*.c 或者*.cpp)轉換成為目標代碼*.obj;
以預編譯的輸出為輸入,將C++源代碼翻譯成計算機系統應將能夠識別的二進制機器指令,並將編譯的輸出結果存儲在COFF格式的目標文件中。在編譯的中間過程中,還可以通過cl命令選擇性地輸出匯編語言格式的中間文件。
在執行編譯的時候,編譯器以「.cpp」文件為單位,對於每一個「.cpp」文件,編譯器都會輸出一個目標文件。
4、鏈接階段
連接階段是把源程序轉換成的目標代碼(obj文件)與你程序裡面調用的庫函數對應的代碼連接起來形成對應的可執行文件(exe文件)就可以了;
5、生成
指的是鏈接的過程,英文是build.依賴於鏈接器. vc中在這一階段將所有的目標文件和所有需要用到的組件組合成一個整體,例如需要生成的是windows系統下的PE可執行文件,鏈接器會依照特定格式將目標文件組合,最後生成PE格式的.exe或.dll文件。
C語言工程的生成過程與C++相同。
⑸ 這是C語言編譯的一個成績篩選程序,為什麼最後輸出是0怎麼改呢
你的Input函數有問題啊
你只判斷了max<score的情況,當你的score小於0的時候,沒有處理,而且也沒有返回
上面估計默認就當你返回0了,因此你最後的時候y=0,而且max是個局部變數,你每次比較x都是與0比較,並沒有起到每次獲取大值的目的。
main函數中,你應該先判斷x是否小於0,然後調用Input
Input可以這樣用:
y=y>Input(x)?y:Input(x);
其實不都不用使用Input函數,直接在main中就能實現
intmain()
{
intx,y;
printf("pleaseinputscores(-1tobreak):");
y=0;
for(;;)
{
scanf("%d",&x);
if(x<0)
break;
y=y>x?y:x;
printf("%d已鍵入",x);
}
printf("最高成績為%d",y);
}
⑹ 請教一個excel篩選方法
如果可以用輔助的話完全可以做到(第一行從A2開始的話)
第一步
B2:F2={=VALUE(TRIM(MID(SUBSTITUTE($A4,",",REPT(" ",100)),((COLUMN()-2)*100)+1,100)))} 向後拉(注{}是由SHIFT+CTRL+回車產生非直接輸入)
第二步
用VB或直接復制以上分解出來的數據到另一個表格(設從A1開始)
用VB寫以上的條件:如if
Sheetworkfunction.countif(range("A" & i & "E" & i),>=11) <1 then
.rows(i).delete
⑺ 用「篩選法」找出100以內的所有素數(C語言怎麼編譯)
#include "stdio.h"
#include"math.h"
main()
{
int i,j,flag;
for(i=1;i<=100;i++){
flag=0;
for (j=2;j<=sqr(i);j++){
if (i%j==0) {flag++;break;}
}
if(flag==0)printf ("%d\t",i);
flag=0;
}
⑻ .Single()方法是什麼
single表示返回唯一的一個對象,後面跟的是能夠篩選出唯一對象的條件,要注意的是如果篩選條件檢索出的必須為單個對象。如果 為空對象或者多個對象集合 的話會編譯錯誤。
你可以看看這個:
http://..com/link?url=SzxillDZvbltbJflzs32YmzXFDm_xVNuhH97dWLrNxibUgu6AqzTmLLi3-M-oTkgP4vGy0IIEmHhyaP3Ce_Zwa
⑼ 我的電子表格突然出現編譯錯誤,有沒有高手幫幫我!!!
使用高級條件篩選
在可用作條件 (條件:所指定的限制查詢或篩選的結果集中包含哪些記錄的條件。)區域的區域上方插入至少三個空白行。條件區域必須具有列標簽。請確保在條件值與區域之間至少留了一個空白行。
外觀示例
類型 銷售人員 銷售
類型 銷售人員 銷售
飲料 Suyama 5122
肉類 Davolio 450
農產品 Buchanan 6328
農產品 Davolio 6544
在列標志下面的一行中,鍵入所要匹配的條件。
條件示例
單列上具有多個條件
如果對於某一列具有兩個或多個篩選條件,那麼可直接在各行中從上到下依次鍵入各個條件。例如,下面的條件區域顯示「銷售人員」列中包含「Davolio」、「Buchanan」或「Suyama」的行。
銷售人員
Davolio
Buchanan
Suyama
多列上具有單個條件
若要在兩列或多列中查找滿足單個條件的數據,請在條件區域的同一行中輸入所有條件。例如,下面的條件區域將顯示所有在「類型」列中包含「農產品」、在「銷售人員」列中包含「Davolio」且「銷售額」大於 $1,000 的數據行。
類型 銷售人員 銷售
農產品 Davolio >1000
某一列或另一列上具有單個條件
若要找到滿足一列條件或另一列條件的數據,請在條件區域的不同行中輸入條件。例如,下面的條件區域將顯示所有在「類型」列中包含「農產品」、在「銷售人員」列中包含「Davolio」或銷售額大於 $1,000 的行。
類型 銷售人員 銷售
農產品
Davolio
>1000
兩列上具有兩組條件之一
若要找到滿足兩組條件(每一組條件都包含針對多列的條件)之一的數據行,請在各行中鍵入條件。例如,下面的條件區域將顯示所有在「銷售人員」列中包含「Davolio」且銷售額大於 $3,000 的行,同時也顯示「Buchanan」銷售商的銷售額大於 $1,500 的行。
銷售人員 銷售
Davolio >3000
Buchanan >1500
一列有兩組以上條件
若要找到滿足兩組以上條件的行,請用相同的列標包括多列。例如,下面條件區域顯示介於 5,000 和 8,000 之間以及少於 500 的銷售額。
銷售 銷售
>5000 <8000
<500
將公式結果用作條件
可以將公式 (公式:單元格中的一系列值、單元格引用、名稱或運算符的組合,可生成新的值。公式總是以等號 (=) 開始。)的計算結果作為條件使用。用公式創建條件時,不要將列標簽作為條件標簽使用;應該將條件標簽置空,或者使用區域中的非列標簽。例如,下面的條件區域顯示在列 C 中,其值大於單元格區域 C7:C10 平均值的行。
=C7>AVERAGE($C$7:$C$10)
注釋
用作條件的公式必須使用相對引用 (相對單元格引用:在公式中,基於包含公式的單元格與被引用的單元格之間的相對位置的單元格地址。如果復制公式,相對引用將自動調整。相對引用採用 A1 樣式。)來引用列標簽(例如,「銷售」),或者引用第一個記錄的對應欄位。公式中的其他所有引用都必須為絕對引用 (絕對單元格引用:公式中單元格的精確地址,與包含公式的單元格的位置無關。絕對引用採用的形式為 $A$1。),並且公式的計算結果必須為 TRUE 或 FALSE。在本公式示例中,「C7」引用區域中第一個記錄(行 7)的欄位(列 C)。
可在公式中使用列標簽來代替相對單元格引用或區域名稱。當 Microsoft Excel 在包含條件的單元格中顯示錯誤值 #NAME? 或 #VALUE! 時,可忽略這些錯誤,因為它們不影響區域的篩選。
Microsoft Excel 在計算數據時不區分大小寫。
所有以該文本開始的項都將被篩選。例如,如果您鍵入文本「Dav」作為條件,Microsoft Excel 將查找「Davolio」、「David」和「Davis」。如果只匹配指定的文本,可鍵入下面的公式,其中「text」是需要查找的文本。 =''=text''
如果要查找某些字元相同但其他字元不一定相同的文本值,則可使用通配符。
通配符
以下通配符可作為篩選以及查找和替換內容時的比較條件 (條件:所指定的限制查詢或篩選的結果集中包含哪些記錄的條件。)。
請使用 若要查找
?(問號) 任何單個字元
例如,sm?th 查找「smith」和「smyth」
*(星號) 任何字元數
例如,*east 查找「Northeast」和「Southeast」
~(波形符)後跟 ?、* 或 ~ 問號、星號或波形符
例如,「fy91~?」將會查找「fy91?」
單擊區域中的單元格。
在「數據」菜單上,指向「篩選」,再單擊「高級篩選」。
若要通過隱藏不符合條件的數據行來篩選區域,請單擊「在原有區域顯示篩選結果」。
若要通過將符合條件的數據行復制到工作表的其他位置來篩選區域,請單擊「將篩選結果復制到其他位置」,然後在「復制到」編輯框中單擊滑鼠左鍵,再單擊要在該處粘貼行的區域的左上角。
在「條件區域」編輯框中,輸入條件區域的引用,並包括條件標志。
如果要在選擇條件區域時暫時將「高級篩選」對話框移走,請單擊「壓縮對話框」 。
若要更改篩選數據的方式,可更改條件區域中的值,並再次篩選數據。
提示
您可以將某個區域命名為「Criteria」,此時「條件區域」框中就會自動出現對該區域的引用。您也可以將要篩選的數據區域命名為「Database」,並將要粘貼行的區域命名為「Extract」,這樣,這些區域就會相應地自動出現在「數據區域」和「復制到」框中。
將篩選所得的行復制到其他位置時,可以指定要復制的列。在篩選前,請將所需列的列標復制到粘貼區域的首行。而當篩選時,請在「復制到」框中輸入對被復制列標的引用。這樣,復制的行中將只包含已復制過列標的列。
⑽ VBS 中的函數常見的有多少個 分別有啥 還有那些已經賦值了的函數,例如time
Abs 函數:返回數的絕對值。
Array 函數:返回含有數組的變體。
Asc 函數:返回字元串首字母的 ANSI 字元碼。
Atn 函數:返回數值的反正切。
CBool 函數:返回已被轉換為 Boolean 子類型的變體的表達式。
CByte 函數:返回已被轉換為位元組子類型的變體的表達式。
CCur 函數:返回已被轉換為貨幣子類型的變體的表達式。
CDate 函數:返回已被轉換為日期子類型的變體的表達式。
CDbl 函數:返回已被轉換為雙精度子類型的變體的表達式。
Chr 函數:返回與指定的 ANSI 字元碼相關的字元。
CInt 函數:返回已被轉換為整形子類型的變體的表達式。
CLng 函數;返回已被轉換為Long子類型的變體的表達式。
Cos 函數:返回角度的餘弦。
CreateObject 函數:創建並返回對「自動」對象的引用。
CSng 函數:返回已被轉換為單精度子類型的變體的表達式。
CStr 函數:返回已被轉換為字元串子類型的變體的表達式。
Date 函數:返回當前系統日期。
DateAdd 函數:返回的日期已經加上了指定的時間間隔。
DateDiff 函數:返回兩個日期之間的間隔。
DatePart 函數:返回給定日期的指定部分。
DateSerial 函數:返回指定年月日的日期子類型的變體。
Datevalue 函數:返回日期子類型的變體。
Day 函數:返回日期,取值范圍為 1 至 31。
Eval 函數:計算表達式並返回結果。
Exp 函數:返回 e (自然對數的底) 的多少次方。
Filter 函數:根據指定的篩選條件,返回含有字元串數組子集的、下限為 0 的數組。
Fix 函數:返回數的整數部分。
FormatCurrency 函數:返回的表達式為貨幣值格式,其貨幣符號採用系統控制面板中定義的。
FormatDateTime 函數:返回的表達式為日期和時間格式。
FormatNumber 函數:返回的表達式為數字格式。
FormatPercent 函數:返回的表達式為百分數(乘以 100)格式,後面有 % 符號。
GetObject 函數:返回從文件對「自動」對象的引用。
GetRef 函數:返回對能夠綁定到一事件的過程的引用。
Hex 函數:返回一字元串,代表一個數的十六進制值。
Hour 函數:返回表示鍾點的數字,取值范圍為 0 至 23。
InputBox 函數:在對話框中顯式一提示,等待用戶輸入文本或單擊按鈕,並返迴文本框的內容。
InStr 函數:返回一個字元串在另一個字元串中首次出現的位置。
InStrRev 函數;返回一個字元串在另一個字元串中出現的位置,但是從字元串的尾部算起。
Int 函數:返回數的整數部分。
IsArray 函數:返回 Boolean 值,反映變數是否為數組。
IsDate 函數:返回 Boolean 值,反映表達式能否轉換為日期。
IsEmpty 函數:返回 Boolean 值,反映變數是否已被初始化。
IsNull 函數:返回 Boolean 值,反映表達式是否含有無效數據(Null)。
IsNumeric 函數:返回 Boolean 值,反映表達式能否轉換為數字。
IsObject 函數:返回 Boolean 值,反映表達式是否引用了有效的「自動」對象。
Join 函數:返回通過連接許多含有數組的子串而創建的字元串。
LBound 函數;返回指定維數數組的最小有效下標。
LCase 函數:返回的字元串已被轉換為小寫字母。
Left 函數:返回字元串最左邊的指定數量的字元。
Len 函數:返回字元串中的字元數或存儲變數所需的位元組數。
LoadPicture 函數:返回圖片對象。只用於 32 位平台。
Log 函數:返回數的自然對數。
LTrim 函數;返回去掉前導空格的字元串。
Mid 函數:從字元串中返回指定數量的字元。
Minute 函數:返回分鍾數,取值范圍為 0 至 59。
Month 函數:返回表示月份的數,取值范圍為 1 至 12。
MonthName 函數:返回表示月份的字元串。
MsgBox 函數:在對話框中顯示消息,等待用戶單擊按鈕,並返回表示用戶所擊按鈕的數值。
Now 函數:返回計算機的當前系統日期和時間。
Oct 函數:返回表示該數八進制數值的字元串。
Replace 函數:返回一字元串,其中指定的子串已被另一個子串替換了規定的次數。
RGB 函數:返回代表 RGB 顏色值的數字。
Right 函數:返回字元串最右邊的指定數量的字元。
Rnd 函數:返回隨機數。
Round 函數:返回指定位數、四捨五入的數。
RTrim 函數:返回去掉尾部空格的字元串副本。
ScriptEngine 函數:返回反映使用中的腳本語言的字元串。
ScriptEngineBuildVersion 函數:返回使用中的腳本引擎的編譯版本號。
ScriptEngineMajorVersion 函數:返回使用中的腳本引擎的主版本號。
ScriptEngineMinorVersion 函數:返回使用中的腳本引擎的次版本號。
Second 函數:返回秒數,取值范圍為 0 至 59。
Sgn 函數:返回反映數的符號的整數。
Sin 函數:返回角度的正弦值。
Space 函數:返回由指定數量的空格組成的字元串。
Split 函數:返回下限為 0 的、由指定數量的子串組成的一維數組。
Sqr 函數:返回數的平方根。
StrComp 函數:返回反映字元串比較結果的數值。
String 函數:返回指定長度的重復字元串。
StrReverse 函數:返回一字元串,其中字元的順序與指定的字元串中的順序相反。
Tan 函數:返回角度的正切值。
Time 函數:返回表示當前系統時間的「日期」子類型的「變體」。
Timer 函數:返回時經子夜 12:00 AM 後的秒數。
TimeSerial 函數:返回含有指定時分秒時間的日期子類型的變體。
Timevalue 函數:返回含有時間的日期子類型的變體。
Trim 函數:返回去掉前導空格或尾部空格的字元串副本。
TypeName 函數:返回一字元串,它提供了關於變數的變體子類型信息。
UBound 函數:返回指定維數數組的最大有效下標。
UCase 函數:返回的字元串已經被轉換為大寫字母。
VarType 函數:返回標識變體子類型的數值。
Weekday 函數:返回表示星期幾的數值。
WeekdayName 函數:返回表示星期幾的字元串。
Year 函數:返回表示年份的數值。