Java POI 生成“暑假幼小銜接測(cè)試卷” word文檔

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");
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容