1.題型參考
2.應(yīng)用題題庫(kù)參考
3.代碼
計(jì)算方式枚舉
public enum NormalSumType {
//加法
Addition,
//減法
Subtraction
}
工具類(lèi)
import cn.hutool.core.util.RandomUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TopicUtil {
public static final List<String> Photos = Arrays.asList("?", "?", "?", "?", "?", "?", "?", "★", "?", "?", "?", "?", "?", "?");
public static final List<String> ApplicationTopicList = Arrays.asList(
"同學(xué)們要做28個(gè)燈籠,已做好18個(gè),還要做多少個(gè)?",
"從花上飛走了36只蝴蝶,又飛走了25只,兩次飛走了多少只?",
"飛機(jī)場(chǎng)上有75架飛機(jī),飛走了63架,現(xiàn)在機(jī)場(chǎng)上有飛機(jī)多少架?",
"小蘋(píng)種7盆紅花,又種了同樣多的黃花,兩種花共多少盆?",
"學(xué)校原有25瓶膠水,又買(mǎi)回19瓶,現(xiàn)在有多少瓶?",
"小強(qiáng)家有36個(gè)蘋(píng)果,吃了7個(gè),還有多少個(gè)?",
"汽車(chē)總站有33輛汽車(chē),開(kāi)走了13輛,還有幾輛?",
"小朋友做剪紙 ,用了8張紅紙,又用了同樣多的黃紙,他們用了多少?gòu)埣垼?,
"馬場(chǎng)上有39匹馬,又來(lái)了52匹,現(xiàn)在馬場(chǎng)上有多少匹?",
"商店有25把扇,賣(mài)去16把,現(xiàn)在有多少把?",
"學(xué)校有蘭花和菊花共65盆,蘭花有26盆,菊花有幾盆?",
"小青兩次畫(huà)了17個(gè) ,第一次畫(huà)了9個(gè),第二次畫(huà)了多少個(gè)?",
"小紅家有蘋(píng)果和梨子共33個(gè),蘋(píng)果有14個(gè),梨子有多少個(gè)?",
"學(xué)校要把42箱文具送給山區(qū)小學(xué),已送去27箱,還要送幾箱?",
"家有11棵白菜,吃了5棵,還有幾棵?",
"一條馬路兩旁各種上48棵樹(shù),一共種樹(shù)多少棵?",
"從車(chē)場(chǎng)開(kāi)走8輛汽車(chē),還剩24輛,車(chē)場(chǎng)原來(lái)有多少汽車(chē)?",
"從車(chē)場(chǎng)開(kāi)走8輛大汽車(chē),又開(kāi)走同樣多的小汽車(chē),兩次開(kāi)走多少輛汽車(chē)?",
"學(xué)校體育室有6個(gè)足球 ,又買(mǎi)來(lái)26個(gè),現(xiàn)在有多少個(gè)?",
"學(xué)雷鋒小組上午修了8張椅,下午修了9張,一天修了多少?gòu)堃危?,
"原來(lái)有22人看戲,來(lái)了13人,又走了6人,現(xiàn)在看戲的有多少人?",
"面包房做了54個(gè)面包,第一組買(mǎi)了22個(gè),第二組買(mǎi)了8個(gè),還剩多少個(gè)?",
"男生有22人,女生有21人,其中有16人參加比賽,還有多少人沒(méi)參加?",
"三個(gè)小組一共收集了94個(gè)礦泉水瓶,第一組收集了34個(gè),第二組收集了29個(gè),第三組收集了多少個(gè)?",
"汽車(chē)?yán)镉?1人,中途有13人上車(chē),9人下車(chē),車(chē)上現(xiàn)在還有多少人?",
"小紅有28個(gè)氣球,送給幼兒園小朋友15個(gè),還剩多少個(gè)?",
"小軍和小麗做燈籠,小軍做了21個(gè),小麗做了18個(gè),送給老師50個(gè),他們還要做多少個(gè)?",
"故事書(shū)有74頁(yè),小麗第一天看了20頁(yè),第二天看了23頁(yè),還剩多少頁(yè)沒(méi)有看?",
"羊圈里原來(lái)有58只羊,先走了6只,又走了7只,現(xiàn)在還有多少只?",
"小東上午做了10道數(shù)學(xué)題,下午做的比上午多3道,小東下午做了多少道?",
"小紅看故事書(shū),第一天看了15頁(yè),第二天看的比第一天少6頁(yè),第二天看了多少頁(yè)?",
"爸爸、媽媽和哥哥都掰了9個(gè)玉米,我掰了6個(gè),我們家一共掰了多少個(gè)玉米?",
"小明種了5行蘿卜,每行9個(gè),共種了多少個(gè)?",
"食堂運(yùn)來(lái)3車(chē)大米,每車(chē)8袋,3車(chē)共多少袋?",
"我有50元,要買(mǎi)一件20元的衣服和一副10元的眼鏡,還剩多少元?",
"學(xué)校有50個(gè)面包,每個(gè)學(xué)生分9個(gè),可以分給多少個(gè)學(xué)生?",
"爸爸買(mǎi)了4捆木頭,每捆12根,全部共多少根?",
"媽媽給了小明50元錢(qián),小明要買(mǎi)一本數(shù)學(xué)書(shū)20元,還要買(mǎi)一個(gè)文具盒21元,媽媽給的錢(qián)夠嗎?",
"一艘船可以載60人,一年級(jí)有21人,二年級(jí)有22人,三年級(jí)有15人,三個(gè)班的人夠坐嗎?",
"小明家有5張桌子,每張桌子夠坐8人,他們家可以請(qǐng)多少人來(lái)做客?",
"小紅家有4塊地,每塊地里可以種20課菜,小紅家共種了多少棵白菜?",
"學(xué)校共有38個(gè)籃球,每班分7個(gè),可以分給多少個(gè)班?",
"我家買(mǎi)了38個(gè)蘋(píng)果,我吃了8個(gè),哥哥吃了10個(gè),還剩多少個(gè)?",
"商店共有西瓜56個(gè),上午買(mǎi)了15個(gè),下午買(mǎi)了21個(gè),還有多少個(gè)沒(méi)買(mǎi)?",
"媽媽給小麗48元錢(qián),買(mǎi)了一個(gè)書(shū)包還剩15元,這個(gè)書(shū)包多少錢(qián)?",
"小軍拿了50元買(mǎi)了一個(gè)9元錢(qián)的文具盒,小軍應(yīng)找回多少元錢(qián)?",
"媽媽給我買(mǎi)了一件48元的衣服,售貨員找了媽媽10元錢(qián),媽媽給了售貨員多少元錢(qián)?",
"我家養(yǎng)了38只雞,過(guò)年吃了5只,過(guò)元宵節(jié)吃了3只,還剩多少只?",
"公共汽車(chē)上有35個(gè)人,到站時(shí)下了20個(gè),又上來(lái)了9個(gè),現(xiàn)在車(chē)上有多少個(gè)人?",
"田里種著56棵白菜,種的蓮花白比白菜多13棵,蓮花白種了多少棵?",
"水果店上午賣(mài)出桔子36箱,下午賣(mài)出27,一天共賣(mài)出多少箱?",
"藍(lán)藍(lán)、玲玲、小胖每人做了15朵紅花,他們一共做了幾朵紅花?",
" 小亞帶30去玩,大風(fēng)車(chē)10元,小火車(chē)8元,他還剩多少錢(qián)?",
"學(xué)校送給一(1)班48只氣球,還剩52只,原來(lái)學(xué)校有幾只氣球?",
" 蘋(píng)果26個(gè),梨18個(gè),桔子50個(gè),蘋(píng)果、梨和桔子一共有幾個(gè)?",
"小亞要做60道口算題,還剩18題沒(méi)有完成,小亞已經(jīng)做完幾題?",
"爸爸買(mǎi)了2根和路雪8元,買(mǎi)了3根伊利雪糕6元,他付給營(yíng)業(yè)員20元,找回多少元?",
"圖書(shū)室有漫畫(huà)60本,借出25本,還剩多少本?",
" 小巧做了27道口算,還剩18道沒(méi)有做。小巧一共要做多少道口算?",
" 停車(chē)場(chǎng)上有35輛車(chē),開(kāi)走8輛,又開(kāi)走7輛,一共開(kāi)走幾輛?",
"小丁丁有100元,他買(mǎi)了一個(gè)32元的籃球和一雙40元的溜冰鞋,他還剩多少錢(qián)?",
" 書(shū)店有100本書(shū),上午賣(mài)出45本書(shū),下午賣(mài)出27本,一天共賣(mài)出多少本?",
" 車(chē)上有乘客56人,到站后有18人上車(chē)?,F(xiàn)在有乘客多少人?",
"車(chē)上原有64人,有25人下車(chē)。 車(chē)上還有乘客多少人?",
"紅鉛筆有50支,藍(lán)鉛筆比紅鉛筆少8支,藍(lán)鉛筆有多少支?",
"轎車(chē)有23輛,卡車(chē)有37輛,大客車(chē)有18輛,一共有多少輛車(chē)?",
"水果店上午賣(mài)出75箱蘋(píng)果,下午賣(mài)出57箱,一天一共賣(mài)出多少箱蘋(píng)果?",
" 樹(shù)上原來(lái)有39只鳥(niǎo),又飛來(lái)8只,現(xiàn)在有幾只?",
"停車(chē)場(chǎng)開(kāi)走58輛汽車(chē),還剩16輛,原來(lái)有多少輛?",
" 一共有100只氣球,其中紅氣球有15只,藍(lán)氣球有51只,黃氣球有多少只?",
"停車(chē)場(chǎng)上有35輛車(chē),開(kāi)走8輛,又開(kāi)走7輛,一共開(kāi)走幾輛?",
"紅黃白100只氣球,其中紅氣球20只,黃氣球50只,白氣球有幾只?",
"小朋友做紙花,小亞和小巧各做了20朵,小丁丁做了15朵,他們一共做了幾朵紙花?",
"河里有8只鴨子,游來(lái)了14只,河里現(xiàn)在有多少只鴨子?",
" 商店里有65臺(tái)電視機(jī),賣(mài)掉一些后,還剩35臺(tái)電視機(jī)。賣(mài)掉多少臺(tái)?",
"小朋友跳繩,小亞與小巧各跳了20個(gè),小丁丁跳了25個(gè),他們?nèi)斯蔡嗌賯€(gè)?",
"一本書(shū) 18元,一支筆3元,一個(gè)書(shū)包68元,小胖買(mǎi)一本書(shū)和兩支筆用去多少元?",
"星期天小胖和媽媽去超市買(mǎi)了一個(gè)30元的小足球和一副28元的羽毛球拍,媽媽帶了3張20元,夠不夠?",
"小巧想把草莓分給三個(gè)好朋友,小丁丁和小胖各分到6個(gè),小亞得到4個(gè),正好分完。小巧原來(lái)有幾個(gè)草莓?",
"小丁丁有42本課外書(shū),先借給小亞6本,又向小胖借了9本,小丁丁現(xiàn)在有幾本書(shū)?",
" 汽車(chē)上原有35人,到站后先下車(chē)12人,又上車(chē)8人,現(xiàn)在車(chē)上有幾人?",
"學(xué)校交書(shū)報(bào)費(fèi),《少年時(shí)報(bào)》22元,《卡通王》38元,小丁丁帶50元夠嗎?",
"小丁丁幫媽媽做家務(wù),洗碗5分鐘,燒水10分鐘,擦桌椅5分鐘,小丁丁做這些事最少用幾分鐘?",
"語(yǔ)文書(shū)12本,借走3本就與數(shù)學(xué)書(shū)一樣多,數(shù)學(xué)書(shū)幾本?",
"停車(chē)場(chǎng)有汽車(chē)60輛,第一次開(kāi)走15輛,第二次開(kāi)來(lái)14輛,停車(chē)場(chǎng)現(xiàn)在有幾輛車(chē)?",
"小明有45本故事書(shū),借給小丁丁17本.借給小亞14本,還剩幾本?",
"小明付了50元買(mǎi)了一本書(shū),營(yíng)業(yè)員阿姨找回他35元,這本書(shū)要幾元?",
"苗苗第一個(gè)月的零花錢(qián)是35元,第2個(gè)月是20元,第3個(gè)月是43元,苗苗三個(gè)月的零花錢(qián)一共是多少元?",
"原有29個(gè)球,借出8個(gè),還剩多少個(gè)?",
"借出8個(gè)球,還剩21個(gè),原有多少個(gè)?",
"買(mǎi)來(lái)12個(gè)蘋(píng)果,吃了4個(gè),還剩多少個(gè)?",
"吃了4個(gè)蘋(píng)果,還剩8個(gè),原來(lái)有多少個(gè)?",
"車(chē)場(chǎng)里開(kāi)走了4輛車(chē),還剩15輛。車(chē)場(chǎng)里原有多少輛車(chē)?",
"草地上的兔子跑了8只后,還剩下40只,原來(lái)有兔子多少只?",
"商店賣(mài)出汽水32箱,還剩20箱,原有汽水多少箱?",
"水果店賣(mài)出蘋(píng)果76筐,還剩3筐,原有蘋(píng)果多少筐?",
"小山剪了一些★,貼了31個(gè),還剩下7個(gè)。小山剪了幾個(gè)★?",
"小華看書(shū)看了92頁(yè),還剩下4頁(yè)沒(méi)有看。這本書(shū)有多少頁(yè)?",
"英語(yǔ)小組原來(lái)有12個(gè)人,今天上課缺席的有2個(gè)人,今天上課的有多少人?",
"學(xué)校里有8個(gè)足球,49個(gè)小皮球,小皮球比足球多多少個(gè)?",
"商店里有26個(gè)小汽球,5個(gè)大汽球,大汽球比小汽球少多少個(gè)?",
"合唱隊(duì)有38個(gè)女同學(xué),6個(gè)男同學(xué),男同學(xué)比女同學(xué)少多少個(gè)?",
"小明養(yǎng)了36只兔,小紅養(yǎng)了24只兔,小明比小紅多養(yǎng)了多少只?",
"商店里有35盒紅汽球,20盒黃汽球,黃汽球比紅汽球少多少盒?",
"梨子有5個(gè),蘋(píng)果有7個(gè),蘋(píng)果比梨子多多少個(gè)?",
"草地上有白兔7只,黑兔4只,白兔比黑兔多多少只?",
"小花8歲,爸爸38歲,爸爸比小花大幾歲?",
"美術(shù)組有13人,數(shù)學(xué)組有9人,美術(shù)組比數(shù)學(xué)組多多少人?",
"草地有公雞7只,母雞39只,母雞比公雞多多少只?公雞比母雞少多少只?",
"食堂運(yùn)回大米28袋,面粉7袋,面粉比大米少多少袋?",
"體操隊(duì)有18人,游泳隊(duì)比體操隊(duì)多11人,游泳隊(duì)有多少人?",
"水果店賣(mài)出26筐蘋(píng)果后,剩下的比賣(mài)出的多9筐。剩下多少筐蘋(píng)果?",
"小華有25本故事書(shū),小方比他多11本。小方有多少本?",
"六月賣(mài)出冰箱58臺(tái),七月比六月多賣(mài)出22臺(tái)。七月賣(mài)出多少臺(tái)?",
"小花今年8歲,爸爸比她大29歲。爸爸今年多少歲?",
"有5個(gè)草莓,櫻桃比草莓多3個(gè),櫻桃有幾個(gè)?",
"小花撿了25個(gè)貝殼,小明比小花多撿了4個(gè),小明撿了多少個(gè)貝殼?",
"數(shù)學(xué)組有9人,美術(shù)組比數(shù)學(xué)組多8人,美術(shù)組有多少人?",
"食堂運(yùn)回大米28袋,面粉比大米多7袋,面粉有多少袋?",
"小明養(yǎng)了36只兔,小紅比小明多養(yǎng)了3只,小紅養(yǎng)了多少只兔?",
"商店里有35盒紅汽球,黃汽球比紅汽球多10盒,黃汽球有多少盒?",
"25比12多多少?",
"比32多20的數(shù)是多少?",
"一個(gè)加數(shù)是28,另一個(gè)加數(shù)比它大10,另一個(gè)加數(shù)是多少?",
"一個(gè)數(shù)比60多30,這個(gè)數(shù)是多少?",
"38比8多多少?",
"一個(gè)數(shù)是26,另一個(gè)數(shù)是58,和是多少?",
"29比7多多少?",
"比49多20的數(shù)是多少?",
"一個(gè)數(shù)比26多8,這個(gè)數(shù)是多少?",
"第一個(gè)加數(shù)是58,第二個(gè)加數(shù)是89,第一個(gè)加數(shù)比第二個(gè)加數(shù)少多少?",
"被減數(shù)是69,減數(shù)是39,被減數(shù)比減數(shù)多多少?",
"比29多29的數(shù)是多少?",
"54與67的差是多少?",
"5與38的和是多少?",
"比最大的兩位數(shù)多1的數(shù)是多少?",
"一個(gè)加數(shù)是35,另一個(gè)加數(shù)比它多7,另一個(gè)加數(shù)是多少?",
"明明寫(xiě)毛筆字,寫(xiě)了13個(gè)以后,還有9個(gè)要寫(xiě),明明一共要寫(xiě)多少個(gè)毛筆字?",
"從花上飛走了26只蝴蝶,又飛走了5只,兩次飛走了多少只?",
"飛機(jī)場(chǎng)上有16架飛機(jī),飛走了8架,現(xiàn)在飛機(jī)場(chǎng)上還有多少架飛機(jī)?",
"小平種7盆紅花,又種了同樣多的黃花,兩種花共多少盆?",
"學(xué)校原有15瓶膠水,又買(mǎi)回9瓶,現(xiàn)在有多少瓶?",
"小強(qiáng)吃了7個(gè)蘋(píng)果,剩下15個(gè)蘋(píng)果,原來(lái)有多少個(gè)蘋(píng)果?",
"學(xué)校有蘭花和菊花共15盆,蘭花有6盆,菊花幾盆?",
"小麗買(mǎi)衣服用了30元,售貨員找給她21元,小麗原來(lái)有多少錢(qián)?",
"媽媽上衣和褲子共用去79元,買(mǎi)上衣用去50元,買(mǎi)褲子用去多少元?",
"商店兩次賣(mài)出洋娃娃50個(gè),第一次賣(mài)出30個(gè),第二次賣(mài)出幾個(gè)?",
"商店兩次賣(mài)出洋娃娃50個(gè),第一次賣(mài)出30個(gè),兩次賣(mài)出多少個(gè)?",
"有60只小雞,28只母雞。還剩多少只?",
"有60只小雞,28只母雞。母雞比小雞少多少只?",
"有60只小雞,28只母雞。一共有多少只?",
"學(xué)校有蘭花和菊花共16盆,蘭花有6盆,菊花有幾盆?",
"小青兩次畫(huà)了9個(gè) ,第一次畫(huà)了5個(gè),第二次畫(huà)了多少個(gè)?",
"小紅家有蘋(píng)果和梨子共18個(gè),蘋(píng)果有9個(gè),梨子有多少個(gè)?",
"學(xué)校要把20箱文具送給山區(qū)小學(xué),已送去10箱,還要送幾箱?",
"家有15棵白菜,吃了5棵,還有幾棵?",
"一條馬路兩旁各種上9棵樹(shù),一共種樹(shù)多少棵?",
"從車(chē)場(chǎng)開(kāi)走9輛汽車(chē),還剩5輛,車(chē)場(chǎng)原來(lái)有多少汽車(chē)?",
"從車(chē)場(chǎng)開(kāi)走8輛大汽車(chē),又開(kāi)走同樣多的小汽車(chē),兩次開(kāi)走多少輛汽車(chē)?",
"學(xué)校體育室有8個(gè)足球 ,又買(mǎi)來(lái)7個(gè),現(xiàn)在有多少個(gè)?",
"學(xué)雷鋒小組上午修了8張椅,下午修了12張,一天修了多少?gòu)堃危?,
"小明和小麗一共拍了35下,小麗拍了20下,小明拍了多少下?",
"樹(shù)上有20只小鳥(niǎo),先飛走了7只,又飛走了6只,一共飛走了多少只?",
"校園里有18盆菊花,運(yùn)走了16盆;蘭花比菊花少多少盆?",
"校園里有18盆菊花,還剩下5盆,蘭花比菊花少多少盆?",
"校園里有18盆菊花,蘭花16盆,蘭花比菊花少多少盆?",
"幼兒園買(mǎi)蘋(píng)果50個(gè),分給小朋友12個(gè),還剩多少個(gè)?",
"幼兒園買(mǎi)蘋(píng)果50個(gè),梨比蘋(píng)果少12個(gè),還剩多少個(gè)?",
"幼兒園買(mǎi)蘋(píng)果50個(gè),梨比蘋(píng)果多12個(gè),還剩多少個(gè)?",
"有白兔和灰兔共30只,有白兔24只。原來(lái)有多少只?",
"有白兔和灰兔共30只,有白兔25只。有灰兔多少只?",
"有一些兔,跑了4只,還有18只。原來(lái)有多少只?",
"小猴拿了21個(gè)紅果,小狗拿了18個(gè)紅果,小猴和小狗誰(shuí)拿得多?",
"三種郵票一共有92張,熊貓郵票23張,龍郵票38張。熊貓郵票和龍郵票共有多少?gòu)垼?,
"一共有96個(gè)蘋(píng)果,上午賣(mài)了26個(gè),下午賣(mài)了39個(gè),還剩幾個(gè)?",
"從前面數(shù),小明排18,從后面他排15,這一排共有幾人?",
"一個(gè)貝殼25元,一個(gè)海螺13元,用50元去買(mǎi)還剩 多少元?",
"小紅跳了25個(gè)繩,小剛跳了36個(gè),一共跳了幾個(gè)?",
"兩只青蛙一共吃了40只害蟲(chóng),一只吃了15只,另一只吃了多少只?",
"男生有32瓶果汁,女生有19瓶果汁,男生比女生多幾瓶?",
"小明拔蘿卜,已經(jīng)拔了16個(gè),地里還剩48個(gè),地里原有幾個(gè)?",
"米奇摘了48個(gè)桃,小猴比米奇多12個(gè),小猴摘了幾個(gè)?",
"小明有37個(gè)糖果,小紅比小明少19個(gè),小紅有幾個(gè)?",
"一共要折43只紙鶴,已經(jīng)好了19只,還要折幾只?",
"小明跳了25下繩,小剛跳了17下,小剛再跳幾下就和小明同樣多?",
"小明跳了47個(gè)繩,小紅再跳18個(gè)就和小明一樣多,小紅跳了幾個(gè)?",
"車(chē)上原有45人,下來(lái)19人,又上來(lái)23人,現(xiàn)在有多少人?",
"一共有96筐蘋(píng)果,上午賣(mài)了26筐,下午賣(mài)了39筐,還剩幾筐?",
"一班有38人,二班有36 人,現(xiàn)有60頂帽子每人分一個(gè)夠嗎?",
"打排球的有48人,比劃船的少19人,劃船的有幾人?",
"小兔拔了26個(gè)蘿卜,比小豬多7個(gè),小豬拔了幾個(gè)?",
"從前面數(shù),小明排18,從后面他排15,這一排共有幾人?",
"一個(gè)貝殼25元,一個(gè)海螺13元,用50元去買(mǎi)還剩 多少元?",
"參加演出的合唱隊(duì)有28人,舞蹈隊(duì)的有24人,參加演出的一共有多少人?",
"爸爸今年36歲,我比爸爸小28歲,今年我?guī)讱q?",
"同學(xué)們?nèi)ヅ恼?,已?jīng)照了17張,還有19張沒(méi)照,膠卷一共有多少?gòu)垼?,
"汽車(chē)從起始站出發(fā),到第一站有16人下車(chē),24人上車(chē),現(xiàn)在車(chē)上有44人,有多少人在起始站上車(chē)?",
"有一些小松鼠在樹(shù)上,后來(lái)跑了6只,還剩下5只,原來(lái)有幾只小松鼠?",
"黃花比紅花少5朵,紅花有12朵,黃花有幾朵?",
"兩個(gè)班共種樹(shù)20棵,其中一班種1棵,那么二班種了幾棵樹(shù)?",
"小張書(shū)包有18本書(shū),我有3本,我比小張少幾本?",
"今天,小張書(shū)包有10本書(shū),我有11本,我比小張多幾本?",
"公共汽車(chē)上下來(lái)4人,車(chē)上還坐著7人,原來(lái)車(chē)上有多少人?",
"今天,小張書(shū)包有1本書(shū),我有19本,我比小張多幾本?",
"停車(chē)場(chǎng)上原來(lái)有19輛汽車(chē),第一次開(kāi)走3輛,第二次開(kāi)走7輛。還剩多少輛?",
"飛機(jī)場(chǎng)原有18架飛機(jī),飛走13架,還剩幾架?",
"公共汽車(chē)上下來(lái)1人,車(chē)上還坐著17人,原來(lái)車(chē)上有多少人?",
"魚(yú)缸里有11條紅金魚(yú)和花金魚(yú),其中紅金魚(yú)有5條,花金魚(yú)有多少條?",
"公共汽車(chē)上下來(lái)8人,車(chē)上還坐著7人,原來(lái)車(chē)上有多少人?",
"停車(chē)場(chǎng)上第一次開(kāi)走7輛,第二次開(kāi)走8輛。一共開(kāi)走多少輛?",
"學(xué)校舞蹈小組有女生9人,男生10人,舞蹈小組一共有學(xué)生多少人?",
"籃里有蘋(píng)果和梨一共15只,其中蘋(píng)果有13只,梨有幾只?",
"白兔和黑兔一共有9只,其中白兔有3只,黑兔有幾只?",
"8個(gè)同學(xué)回家了,班里還剩12個(gè)同學(xué),請(qǐng)問(wèn)原來(lái)有幾個(gè)同學(xué)?",
"媽媽買(mǎi)了一籃梨,小明吃了10個(gè),還剩余3個(gè),媽媽買(mǎi)了多少個(gè)梨?",
"小張書(shū)包有5本書(shū),我有12本,小張比我少幾本?",
"魚(yú)缸里有19條紅金魚(yú)和花金魚(yú),其中紅金魚(yú)有9條,花金魚(yú)有多少條?",
"借了4本書(shū),今天還了2本,還剩幾本書(shū)?",
"小飛有12張畫(huà)片,送給小明一些,還剩下9張。送給小明多少?gòu)垼?,
"兩個(gè)班共種樹(shù)13棵,其中一班種12棵,那么二班種了幾棵樹(shù)?",
"生產(chǎn)隊(duì)有小牛7頭,大牛比小牛多8頭,大牛有多少頭?",
"黃花比紅花多7朵,紅花有11朵,黃花有幾朵?",
"學(xué)校舞蹈小組有女生9人,男生2人,女生比男生多幾人?",
"魚(yú)缸里有17條紅金魚(yú)和花金魚(yú),其中紅金魚(yú)有15條,花金魚(yú)有多少條?",
"籃里有蘋(píng)果和梨一共18只,其中蘋(píng)果有5只,梨有幾只?",
"6個(gè)同學(xué)回家了,班里還剩11個(gè)同學(xué),請(qǐng)問(wèn)原來(lái)有幾個(gè)同學(xué)?",
"黃花比紅花少5朵,紅花有12朵,黃花有幾朵?");
/**
* 隨機(jī)生成10以?xún)?nèi)的加減法
*
* @param normalSumType 算術(shù)題類(lèi)型
* @return
*/
public static String randomNormalSumTopic(NormalSumType normalSumType) {
if (normalSumType == NormalSumType.Addition) {
//加法
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, 11 - firstNum);
return firstNum + "+" + secondNum + "=";
} else {
//減法
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, firstNum + 1);
return firstNum + "-" + secondNum + "=";
}
}
/**
* 隨機(jī)20條10以?xún)?nèi)的加減算術(shù)題
*
* @return
*/
public static List<String> randomNormalSumTopicList() {
List<String> result = new ArrayList<>();
//隨機(jī)10條加法
while (result.size() < 10) {
String item = randomNormalSumTopic(NormalSumType.Addition);
if (!result.contains(item)) {
result.add(item);
}
}
//隨機(jī)10條減法
while (result.size() < 20) {
String item = randomNormalSumTopic(NormalSumType.Subtraction);
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成100以?xún)?nèi)的相鄰數(shù)
*
* @return
*/
public static String randomNearNumTopic() {
int num = RandomUtil.randomInt(2, 100);
return "( )" + num + "( )";
}
/**
* 隨機(jī)6條100以?xún)?nèi)的相鄰數(shù)題
*
* @return
*/
public static List<String> randomNearNumTopicList() {
List<String> result = new ArrayList<>();
//隨機(jī)6條相鄰數(shù)
while (result.size() < 6) {
String item = randomNearNumTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成100以?xún)?nèi)的比較
*
* @return
*/
public static String randomCompareTopic() {
int firstNum = RandomUtil.randomInt(1, 100);
int secondNum = RandomUtil.randomInt(1, 100);
return firstNum + " ? " + secondNum;
}
/**
* 隨機(jī)8條100以?xún)?nèi)的比大小題
*
* @return
*/
public static List<String> randomCompareTopicList() {
List<String> result = new ArrayList<>();
//隨機(jī)8條比較大小題
while (result.size() < 8) {
String item = randomCompareTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成10以?xún)?nèi)的分解題
*
* @return
*/
public static String randomDivideTopic() {
int sum = RandomUtil.randomInt(2, 11);
int firstNum = RandomUtil.randomInt(1, sum);
if (RandomUtil.randomBoolean()) {
return sum + "_" + firstNum + " ( )";
} else {
return sum + "_" + "( ) " + firstNum;
}
}
/**
* 隨機(jī)生成10以?xún)?nèi)的組合題
*
* @return
*/
public static String randomCombinationTopic() {
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, 11 - firstNum);
return firstNum + " " + secondNum + "_" + "( )";
}
/**
* 隨機(jī)8條100以?xún)?nèi)的分解組合題
*
* @return
*/
public static List<String> randomDivideCombinationTopicList() {
List<String> result = new ArrayList<>();
//隨機(jī)4條分解題
while (result.size() < 4) {
String item = randomDivideTopic();
if (!result.contains(item)) {
result.add(item);
}
}
//隨機(jī)4條組合題
while (result.size() < 8) {
String item = randomCombinationTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成10以?xún)?nèi)的看圖計(jì)算題
*
* @return
*/
public static String randomPhotoComputeTopic(NormalSumType normalSumType) {
String photo = Photos.get(RandomUtil.randomInt(0, Photos.size()));
if (normalSumType == NormalSumType.Addition) {
//加法
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, 11 - firstNum);
return getPhotoStr(photo, firstNum) + " + " + getPhotoStr(photo, secondNum);
} else {
//減法
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, firstNum + 1);
return getPhotoStr(photo, firstNum) + " - " + getPhotoStr(photo, secondNum);
}
}
/**
* 隨機(jī)4條100以?xún)?nèi)的看圖計(jì)算題
*
* @return
*/
public static List<String> randomPhotoComputeTopicList() {
List<String> result = new ArrayList<>();
//隨機(jī)2條加法題
while (result.size() < 2) {
String item = randomPhotoComputeTopic(NormalSumType.Addition);
if (!result.contains(item)) {
result.add(item);
}
}
//隨機(jī)2條減法題
while (result.size() < 4) {
String item = randomPhotoComputeTopic(NormalSumType.Subtraction);
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成10以?xún)?nèi)數(shù)相加(湊10法)
*
* @return
*/
public static String randomSecondSumTopic() {
int firstNum = RandomUtil.randomInt(2, 10);
int secondNum = RandomUtil.randomInt(11 - firstNum, 10);
return firstNum + "+" + secondNum + "=";
}
/**
* 隨機(jī)3條10以?xún)?nèi)數(shù)相加
*
* @return
*/
public static List<String> randomSecondSumTopicList() {
List<String> result = new ArrayList<>();
while (result.size() < 3) {
String item = randomSecondSumTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成10以?xún)?nèi)的加減法連線
*
* @param normalSumType 算術(shù)題類(lèi)型
* @return
*/
public static String randomLinkTopic(NormalSumType normalSumType) {
if (normalSumType == NormalSumType.Addition) {
//加法
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, 11 - firstNum);
return firstNum + "+" + secondNum + "=" + (firstNum + secondNum);
} else {
//減法
int firstNum = RandomUtil.randomInt(1, 10);
int secondNum = RandomUtil.randomInt(1, firstNum + 1);
return firstNum + "-" + secondNum + "=" + (firstNum - secondNum);
}
}
/**
* 隨機(jī)5條10以?xún)?nèi)的加減算術(shù)題
*
* @return
*/
public static List<String> randomLinkTopicList() {
List<String> result = new ArrayList<>();
while (result.size() < 5) {
String item;
if (RandomUtil.randomBoolean()) {
item = randomLinkTopic(NormalSumType.Addition);
} else {
item = randomLinkTopic(NormalSumType.Subtraction);
}
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成1x以?xún)?nèi)數(shù)相減(借十法)
*
* @return
*/
public static String randomThirdSubTopic() {
int firstNum = RandomUtil.randomInt(11, 20);
int secondNum = RandomUtil.randomInt(firstNum - 10, 10);
return firstNum + "-" + secondNum + "=";
}
/**
* 隨機(jī)3條1x以?xún)?nèi)數(shù)相減(借十法)
*
* @return
*/
public static List<String> randomThirdSubTopicList() {
List<String> result = new ArrayList<>();
while (result.size() < 3) {
String item = randomThirdSubTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成數(shù)一數(shù)題
*
* @return
*/
public static String randomComputeCountTopic() {
//四種圖片
List<String> photoList = new ArrayList<>();
while (photoList.size() < 4) {
String photo = Photos.get(RandomUtil.randomInt(0, Photos.size()));
if (!photoList.contains(photo)) {
photoList.add(photo);
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < photoList.size(); i++) {
String photo = photoList.get(i);
int count = RandomUtil.randomInt(0, 7);
for (int j = 0; j < count; j++) {
sb.append(photo);
}
}
return sb + "_" + photoList.get(RandomUtil.randomInt(0, 4));
}
/**
* 隨機(jī)4條隨機(jī)生成數(shù)一數(shù)題
*
* @return
*/
public static List<String> randomComputeCountTopicList() {
List<String> result = new ArrayList<>();
while (result.size() < 4) {
String item = randomComputeCountTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 隨機(jī)生成應(yīng)用題
*
* @return
*/
public static String randomApplicationTopic() {
return ApplicationTopicList.get(RandomUtil.randomInt(0, ApplicationTopicList.size()));
}
/**
* 隨機(jī)3條隨機(jī)生成應(yīng)用題題
*
* @return
*/
public static List<String> randomApplicationTopicList() {
List<String> result = new ArrayList<>();
while (result.size() < 3) {
String item = randomApplicationTopic();
if (!result.contains(item)) {
result.add(item);
}
}
return result;
}
/**
* 根據(jù)數(shù)量獲取圖片字符串
*
* @param photo
* @param count
* @return
*/
private static String getPhotoStr(String photo, int count) {
List<String> list = new ArrayList<>();
for (int i = 0; i < count; i++) {
list.add(photo);
}
return String.join("", list);
}
}
生成方法
/**
* 根據(jù)一段時(shí)間獲取該段時(shí)間的所有月份
*
* @param minDate yyyy_MM_dd
* @param maxDate yyyy_MM_dd
* @return
*/
public static List<String> getDayBetween(String minDate, String maxDate) {
ArrayList<String> result = new ArrayList<String>();
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
Calendar min = Calendar.getInstance();
Calendar max = Calendar.getInstance();
min.setTime(sdf.parse(minDate));
min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), min.get(Calendar.DAY_OF_MONTH));
max.setTime(sdf.parse(maxDate));
max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), max.get(Calendar.DAY_OF_MONTH));
Calendar curr = min;
while (curr.before(max)) {
result.add(sdf.format(curr.getTime()));
curr.add(Calendar.DAY_OF_MONTH, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
private static void generate(String path) throws Exception {
FileOutputStream out = new FileOutputStream(new File(path));
XWPFDocument document = new XWPFDocument();
//頭部信息
createHeader(document);
createEmptyParagraph(document);
//第一大題 - 10以?xún)?nèi)的算術(shù)題
createNormalSumTopic(document);
createEmptyParagraph(document);
//第二大題 - 100以?xún)?nèi)的相鄰數(shù)題
createNearNumTopic(document);
createEmptyParagraph(document);
//第三大題 - 100以?xún)?nèi)的比較大小題
createCompareTopic(document);
createEmptyParagraph(document);
//第四大題 - 10以?xún)?nèi)的分解組合題
createDivideCombinationTopic(document);
createEmptyParagraph(document);
//第五大題 - 10以?xún)?nèi)的圖片計(jì)算題
createPhotoComputeTopic(document);
createEmptyParagraph(document);
createEmptyParagraph(document);
//第六大題 - 10以?xún)?nèi)的加法題(湊十法)
createSecondSumTopic(document);
createEmptyParagraph(document);
//第七大題 - 1x以?xún)?nèi)的減法題(借十法)
createThirdSubTopic(document);
createEmptyParagraph(document);
//第八大題 - 10以?xún)?nèi)的加減法連線題
createLinkTopic(document);
createEmptyParagraph(document);
//第九大題 - 數(shù)一數(shù)題
createComputeCountTopic(document);
createEmptyParagraph(document);
//第十大題 - 應(yīng)用題
createApplicationTopic(document);
createEmptyParagraph(document);
document.write(out);
out.close();
}
/**
* 換行
*
* @param document
*/
private static void createEmptyParagraph(XWPFDocument document) {
//換行
XWPFParagraph spaceParagraph = document.createParagraph();
XWPFRun spaceParagraphRun = spaceParagraph.createRun();
spaceParagraphRun.setText("\r");
}
/**
* 創(chuàng)建頭部信息
*
* @param document
*/
private static void createHeader(XWPFDocument document) {
//標(biāo)題
XWPFParagraph titleParagraph = document.createParagraph();
titleParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun titleParagraphRun = titleParagraph.createRun();
titleParagraphRun.setText("暑假幼小銜接數(shù)學(xué)測(cè)試卷");
titleParagraphRun.setColor("000000");
titleParagraphRun.setFontSize(23);
titleParagraphRun.setFontFamily("宋體");
//分?jǐn)?shù)
XWPFParagraph scoreParagraph = document.createParagraph();
scoreParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun scoreParagraphRun = scoreParagraph.createRun();
scoreParagraphRun.setText("(100分)");
scoreParagraphRun.setColor("000000");
scoreParagraphRun.setFontSize(17);
scoreParagraphRun.setFontFamily("楷體");
}
/**
* 創(chuàng)建第一大題 - 10以?xún)?nèi)的算術(shù)題
*
* @param document
*/
private static void createNormalSumTopic(XWPFDocument document) {
//20條10以?xún)?nèi)的算術(shù)題
List<String> topicList = randomNormalSumTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("一、看誰(shuí)算得又對(duì)又快(10分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(4, 5);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 4;
int totalCol = 5;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum * totalCol + colNum;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
paragraphRun.setText(item);
paragraphRun.setColor("000000");
paragraphRun.setFontSize(17);
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第二大題 - 100以?xún)?nèi)的相鄰數(shù)題
*
* @param document
*/
private static void createNearNumTopic(XWPFDocument document) {
//6條100以?xún)?nèi)的相鄰數(shù)題
List<String> topicList = randomNearNumTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("二、填相鄰數(shù)(6分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(2, 3);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 2;
int totalCol = 3;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum * totalCol + colNum;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
paragraphRun.setText(item);
paragraphRun.setColor("000000");
paragraphRun.setFontSize(17);
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第三大題 - 100以?xún)?nèi)的比較大小題
*
* @param document
*/
private static void createCompareTopic(XWPFDocument document) {
//6條100以?xún)?nèi)的相鄰數(shù)題
List<String> topicList = randomCompareTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("三、在?里填上“<”“>”或“=(8分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(2, 4);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 2;
int totalCol = 4;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum * totalCol + colNum;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
paragraphRun.setText(item);
paragraphRun.setColor("000000");
paragraphRun.setFontSize(17);
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第四大題 - 10以?xún)?nèi)的分解組合題
*
* @param document
*/
private static void createDivideCombinationTopic(XWPFDocument document) {
//8條10以?xún)?nèi)的分解組合題
List<String> topicList = TopicUtil.randomDivideCombinationTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("四、分解與組合(8分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable divideTable = document.createTable(3, 4);
divideTable.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
divideTable.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth divideTableWidth = divideTable.getCTTbl().addNewTblPr().addNewTblW();
divideTableWidth.setType(STTblWidth.DXA);
divideTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 3;
int totalCol = 4;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = colNum;
String item = topicList.get(index);
String[] itemArr = item.split("_");
XWPFTableRow row = divideTable.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (rowNum % 3 == 0) {
paragraphRun.setText(itemArr[0]);
paragraphRun.setFontSize(17);
} else if (rowNum % 3 == 1) {
paragraphRun.setText("∧");
paragraphRun.setFontSize(43);
} else {
paragraphRun.setText(itemArr[1]);
paragraphRun.setFontSize(17);
}
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
createEmptyParagraph(document);
XWPFTable combinationTable = document.createTable(3, 4);
combinationTable.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
combinationTable.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth combinationTableWidth = combinationTable.getCTTbl().addNewTblPr().addNewTblW();
combinationTableWidth.setType(STTblWidth.DXA);
combinationTableWidth.setW(BigInteger.valueOf(9072));
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = 4 + colNum;
String item = topicList.get(index);
String[] itemArr = item.split("_");
XWPFTableRow row = combinationTable.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (rowNum % 3 == 0) {
paragraphRun.setText(itemArr[0]);
paragraphRun.setFontSize(17);
} else if (rowNum % 3 == 1) {
paragraphRun.setText("∨");
paragraphRun.setFontSize(43);
} else {
paragraphRun.setText(itemArr[1]);
paragraphRun.setFontSize(17);
}
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第五大題 - 10以?xún)?nèi)的圖片計(jì)算題
*
* @param document
*/
private static void createPhotoComputeTopic(XWPFDocument document) {
//4條10以?xún)?nèi)的圖片計(jì)算題
List<String> topicList = randomPhotoComputeTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("五、看圖列算式并計(jì)算(8分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(4, 2);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 4;
int totalCol = 2;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (colNum % 2 == 1) {
paragraphRun.setText("□ ? □ = □");
} else {
paragraphRun.setText(item);
}
paragraphRun.setFontSize(17);
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第六大題 - 10以?xún)?nèi)的加法題(湊十法)
*
* @param document
*/
private static void createSecondSumTopic(XWPFDocument document) {
//3條10以?xún)?nèi)的加法題(湊十法)
List<String> topicList = randomSecondSumTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("六、算一算,湊十法(9分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(3, 3);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 3;
int totalCol = 3;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
String item = topicList.get(colNum);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (rowNum == 0) {
paragraphRun.setText(item);
} else {
paragraphRun.setText("");
}
paragraphRun.setFontSize(17);
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第七大題 - 1x以?xún)?nèi)的減法題(借十法)
*
* @param document
*/
private static void createThirdSubTopic(XWPFDocument document) {
//3條10以?xún)?nèi)的加法題(湊十法)
List<String> topicList = randomThirdSubTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("七、算一算,借十法(9分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(3, 3);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 3;
int totalCol = 3;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum;
String item = topicList.get(colNum);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (rowNum == 0) {
paragraphRun.setText(item);
} else {
paragraphRun.setText("");
}
paragraphRun.setFontSize(17);
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第八大題 - 10以?xún)?nèi)的加減法連線題
*
* @param document
*/
private static void createLinkTopic(XWPFDocument document) {
//5條10以?xún)?nèi)的加減法連線題
List<String> topicList = randomLinkTopicList();
List<String> answerList = new ArrayList<>();
for (int i = 0; i < topicList.size(); i++) {
answerList.add(topicList.get(i).split("=")[1]);
}
Collections.shuffle(answerList);
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("八、算一算,連一連(5分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(5, 2);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 5;
int totalCol = 2;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (colNum % 2 == 0) {
paragraphRun.setText(item.split("=")[0]);
} else {
paragraphRun.setText(answerList.get(rowNum));
}
paragraphRun.setFontSize(17);
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第九大題 - 數(shù)一數(shù)題
*
* @param document
*/
private static void createComputeCountTopic(XWPFDocument document) {
//4條數(shù)一數(shù)題
List<String> topicList = randomComputeCountTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("九、數(shù)一數(shù),填一填(4分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(4, 2);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 4;
int totalCol = 2;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (colNum % 2 == 0) {
paragraphRun.setText(item.split("_")[0]);
} else {
paragraphRun.setText(item.split("_")[1] + "□個(gè)");
}
paragraphRun.setFontSize(17);
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
/**
* 創(chuàng)建第十大題 - 應(yīng)用題
*
* @param document
*/
private static void createApplicationTopic(XWPFDocument document) {
//3條應(yīng)用題
List<String> topicList = randomApplicationTopicList();
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun firstParagraphRun = firstParagraph.createRun();
firstParagraphRun.setText("十、解決問(wèn)題(15分)");
firstParagraphRun.setColor("000000");
firstParagraphRun.setFontSize(17);
firstParagraphRun.setFontFamily("楷體");
createEmptyParagraph(document);
//基本信息表格
XWPFTable table = document.createTable(6, 1);
table.setTableAlignment(TableRowAlign.CENTER);
//去表格邊框
table.getCTTbl().getTblPr().unsetTblBorders();
//列寬自動(dòng)分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
int totalRow = 6;
int totalCol = 1;
for (int rowNum = 0; rowNum < totalRow; rowNum++) {
for (int colNum = 0; colNum < totalCol; colNum++) {
int index = rowNum / 2;
String item = topicList.get(index);
XWPFTableRow row = table.getRow(rowNum);
row.setHeight(800);
XWPFTableCell cell = row.getCell(colNum);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun paragraphRun = paragraph.createRun();
if (rowNum % 2 == 0) {
paragraphRun.setText(rowNum / 2 + 1 + "." + item);
} else {
paragraphRun.setText("");
}
paragraphRun.setFontSize(17);
paragraphRun.setColor("000000");
paragraphRun.setFontFamily("楷體");
}
}
}
4.使用
// List<String> dayList = getDayBetween("2023_07_01", "2023_09_01");
//
// for (int i = 0; i < dayList.size(); i++) {
// generate("/Users/geenju/Desktop/papers/" + dayList.get(i) + ".docx");
// }
for (int i = 1; i < 1000; i++) {
generate("/Users/geenju/Desktop/papers/幼小銜接測(cè)試題_" + i + ".docx");
}