原創 取學生姓名和成績

2021-04-12 14:30:11 字數 2694 閱讀 2734

'這裡是設定的資料(略有改動)

xuesheng = "林川瑜 04財(2)班 川俊青74-63 全年.川倩倩 91,89" & vbcrlf & _

"川文歡   86,81,69 川復興68 78 盧川燕 90,92, 王川倩" & vbcrlf & _

"72,85" & vbcrlf & _

"英(1)班 川煜炯 88,96川凱捷 男" & vbcrlf & _

"朱川鈞 86 川憲珍   84,80, 李川翔 85 川清 82 李川友 79 川" & vbcrlf & _

"昌 82 韓芝川雲 84" & vbcrlf & _

"王川 86 劉川玫  82 川萍 81 付川 78 川永新 85,90 戚川慶" & vbcrlf & _

"70,80 蔣川 89" & vbcrlf & _

"川紅川 85 期中 川錚 85 張川元 84 姚川 87 王川 86,78" & vbcrlf & _

"川力 83 王立建 79 川宇 85 龔川娟 86 王川立 78 川巖 72 牛" & vbcrlf & _

"川慧 89 82"

text1.text = xuesheng

採用了以下方法:

1、替換其中的換行符和英文逗號

cj = text1.text

cj = replace(cj, vbcrlf, " ")

cj = replace(cj, ",", " ")

2、部分關鍵字過濾

text2.text =  "04財(2)班,全年,英(1)班,期中,,,-,., 男 "

if trim(text2.text) <> "" then

dim tihuan_array() as string

tihuan_array = split(text2.text, ",")

for i = 0 to ubound(tihuan_array)

cj = replace(cj, tihuan_array(i), " ")

next

end if

3、'替換2個空格為1個

cj = replace(cj, ",", "")

do while instr(cj, "  ")

cj = replace(cj, "  ", " ")

loop

4、開始轉換

dim xmcj_array() as string

xmcj_array = split(cj, " ")

dim xmcj_sub as string

xmcj_sub = ""

for i = 0 to ubound(xmcj_array)

if isnumeric(xmcj_array(i)) then        '如果是數字

xmcj_sub = xmcj_sub & " " & xmcj_array(i)

if i = ubound(xmcj_array) then

list1.additem xiuzheng(xmcj_sub)    '修正並顯示資料

end if

else

if len(xmcj_sub) > 1 then

list1.additem xiuzheng(xmcj_sub)    '修正並顯示資料

xmcj_sub = xmcj_array(i)

else

xmcj_sub = xmcj_sub & xmcj_array(i)

end if

end if

next

end sub

5、修正姓名長度,使分數對齊

private function xiuzheng(xmcj1 as string) as string

dim k as integer

dim tmpa() as string

tmpa = split(xmcj1, " ")

xiuzheng = ""

for k = 0 to ubound(tmpa)

if k = 0 then

xiuzheng = xiuzheng2(tmpa(0))

if len(xiuzheng) = 2 then xiuzheng = xiuzheng & "  "        '不需要修正就刪除

else

xiuzheng = xiuzheng & " " & tmpa(k)

end if

next

end function

6、修正姓名連線分數的情況

private function xiuzheng2(byval xmcj2 as string) as string

dim l as integer

dim xm as string, cj as string

xm = "": cj = ""

for l = 1 to len(xmcj2)

if asc(mid(xmcj2, l, 1)) < 0 then

xm = xm & mid(xmcj2, l, 1)

else

cj = cj & mid(xmcj2, l, 1)

end if

next

if len(cj) > 0 then xiuzheng2 = xm & " " & cj else xiuzheng2 = xm

end function

完工,也許還有更好的方法!

php判斷學生姓名,php 按學生姓名獲取列名

你可以這樣做 select group concat coalesce case when maths then maths end,coalesce case when science then science end,coalesce case when art then art end,coa...

根據姓名查詢學生的學號

完成日期 2013年12月10 版本號 v1.0 問題描述 根據姓名查詢學生的學號 樣例輸入 無 樣例輸出 無 問題分析 用簡單的方法,學會活學活用 include includeusing namespace std void jiaohuan int p1,int p2 string name ...

輸出最高分數的學生姓名

描述 輸入學生的人數,然後再輸入每位學生的分數和姓名,求獲得最高分數的學生的姓名。輸入第一行輸入一個正整數n n 100 表示學生人數。接著輸入n行,每行格式如下 分數 姓名 分數是一個非負整數,且小於等於100 姓名為一個連續的字串,中間沒有空格,長度不超過20。資料保證最高分只有一位同學。輸出 ...

1147 最高分數的學生姓名

輸入學生的人數,然後再輸入每位學生的分數和姓名,求獲得最高分數的學生的姓名。第一行輸入一個正整數n n 100 表示學生人數。接著輸入n行,每行格式如下 分數 姓名 分數是一個非負整數,且小於等於100 姓名為一個連續的字串,中間沒有空格,長度不超過20。資料保證最高分只有一位同學。獲得最高分數同學...

求出選修了所有課程的學生姓名

求出選修了所有課程的學生姓名 學生表 s sno int pk,sn varchar 8 sno為學號 sn為學生姓名。課程表 c cno int pk,cn varchar 50 cno為課程號,cn為課程名 選修表 sc sno int pk,cno int pk,score number 7,...