程式設計能力強化(4) 模擬SQL語句解析

2021-05-24 14:52:52 字數 767 閱讀 4976

這是2023年軟體大賽的樣題,用到的知識點比較多,也比較實用。

題目:資料庫中有「表」的概念。「表」由若干「行」組成,每「行」由許多「列」組成。一般的資料庫都提供了對

sql的支援。

我們可以模擬乙個最簡單版的

sql,只能實現簡單的排序,簡單的選擇條件,列的顯示順序等功能。

具體如下:

(1)輸入help,會輸出幫助資訊

(2)輸入load data.txt,會輸出檔案中的內容

(3)輸入sort weight,會根據重量排序,然後輸出,也可以根據其他幾個屬性排序,每次指定乙個

(4)輸入select *,顯示所有的資料

(5)輸入select name,顯示某一列,如果要顯示多列,多列之間使用空格隔開

(6)輸入select * where price>50,條件只能使用大於或者小於,單個條件不用空格,多個條件之間使用空格隔開

(7)輸入exit,程式退出

自己看看能不能做出來,如果做不出來,看看後面的參***。

資料檔案(data.txt)內容如下:

名稱 長度 重量 威力 **

a 25.1 12.3 24.6 105.3

b 180.5 11.6 41.2 36.5

c 103.6 33.1 28.4 78

d 21.5 18.6 17.6 38.5

e 33.6 28.5 11.9 27.0

f 31.6 19.8 23.5 36.3

g 88.3 17.9 16.4 22.9

能力強化!!! NOI爆零賽

資料範圍 n,m,k 100 首先我們得知道有乙個東西叫min max容斥 然後我們可以知道只有乙個能力時 f i 表示對於乙個能力強化i次後,不強化到滿級的方案數 那麼dp i j 表示對於i個能力,總共強化j次,沒有任何乙個能力強化到滿級的方案數 那麼dp i j 每次用f來轉移一下,相當於做個...

第4條 通過私有方法強化不可例項化的能力

有時候,會需要編寫一些只含有靜態域和靜態方法的類。例如工具類 utility class 這些類不需要被例項化,也不需要被繼承。因為例項化對他們並沒有什麼卵用。然而,在缺少顯式構造器的時候,編譯器會自動提供以個公有的無參的預設構造器。這樣,這個工具類和別的類就沒有區別了 可以例項化,可以被類繼承 為...

第4條 通過私有構造器強化不可例項化的能力

有時候可能只需要編寫包含靜態方法和靜態域的類。這些類的名聲很不好,因為有些人再物件導向的語言中濫用這些類來編寫過程化的程式。儘管如此,他們也確實有他們特有的用處。我們可以利用這種類,把基本型別的值或者陣列型別上的相關方法組織起來,也可以把實現特定介面上的靜態方法組織起來,還可以利用這種類把final...