分享一個利用數(shù)組的方法來做的練習(xí)題
例:學(xué)生管理系統(tǒng):定義四個數(shù)組樊拓,分別存儲學(xué)生的學(xué)號框舔,姓名实束,年齡卵惦,性別
首先我們要先定義四個數(shù)組(我就隨便定義了)
let nums = ['1001','1002'] ; let names = ['張三'记靡,'李四'] 谈竿;let ages = [16,15] ; let sexs = ['男','女']
這里我們需要用到do{}while()結(jié)構(gòu)摸吠,所以要實現(xiàn)let一個變量比如:let meau = 0 (用于實現(xiàn)1:查詢學(xué)生序號空凸;2:添加學(xué)生;3:修改學(xué)生寸痢;4:刪除學(xué)生呀洲;0:退出系統(tǒng))
do{??
meau=prompt('---------學(xué)生管理系統(tǒng)--------------\n (// \n的意思表示顯示的時候換行)? ?1:查詢學(xué)生;2:添加學(xué)生啼止;3:修改學(xué)生道逗;4:刪除學(xué)生;0:退出系統(tǒng)')
//然后do循環(huán)里面在套一層switch循環(huán)
switch(meau){
case ‘1’ :
//查詢學(xué)生
console.log('學(xué)號 姓名 年齡 姓名')? //用于實現(xiàn)查詢的每個學(xué)生按照這個順序展示學(xué)生的資料
for(let i =0;i<nums.length;i++){? ?//設(shè)置循環(huán)變量輪流展示每個學(xué)生的資料献烦,設(shè)置i代表學(xué)生滓窍,因為不知道有多少個學(xué)生,所以用數(shù)組的長度表示
console.log(`${nums[i]}? ${names[i]} ${ages[i]} ${sexs[i]}`) //用于實現(xiàn)展示第幾個學(xué)生的資料
}
break;? ?//查詢學(xué)生結(jié)束? ? ?case'1'結(jié)束
case '2' :
//添加學(xué)生
let num = prompt('請輸入需要添加的學(xué)生學(xué)號')巩那;let name = prompt('請輸入需要添加的學(xué)生姓名')吏夯;let age = prompt('請輸入需要添加的學(xué)生年齡')此蜈;let sex = prompt('請輸入需要添加的學(xué)生性別')
//這一步是為了把我們想要添加的學(xué)生信息輸入進來,然后再用原有設(shè)定的數(shù)組的原始變量+上我們輸入的就可以了
nums.push(num); names.push(name); ages.push(age);sexs.push(sex)
//這個就是把我們輸入的值利用數(shù)組的push()方法加上去就可以了
// 注意添加學(xué)生這邊也可以if判定一下學(xué)號是否有重復(fù)锦亦,和case‘3’里面的if用法一樣(這邊就不寫出來啦)其次學(xué)號num可以通過isNaN(num)來判斷是否為數(shù)字通過if形式來實現(xiàn)舶替。
break;? ? ?//第二部結(jié)束
case '3' :
//修改學(xué)生 , 利用 學(xué)號去檢索學(xué)生
let num1= prompt('請輸入需要修改學(xué)生的學(xué)號')
let index = nums.indexOf(num1)? ?// 表示我輸入的這個num1在nums里的位置,這里一定要考慮到我的nums里面是否包含這么學(xué)生杠园,需要用到if判斷
if(index===-1){
alert('對不起沒有該學(xué)生')? //如果indexOf===-1 說明沒有該學(xué)生
continue顾瞪;
}
nums[index]=prompt('請輸入新的學(xué)號';names[index]=prompt('請輸入新的姓名')ages[index]=prompt('請輸入新的年齡')sexs[index]=prompt('請輸入新的性別')
break;
case '4' :
?// 刪除學(xué)生
? ? ? ? ? ? ? ? let num2 = prompt('請輸入刪除學(xué)生的學(xué)號')
? ? ? ? ? ? ? ? let index2=nom.indexOf(num2)
? ? ? ? ? ? ? ? if(index2===-1){
? ? ? ? ? ? ? ? ? ? ? ?alert('沒有該學(xué)生')
? ? ? ? ? ? ? ? ? ? ? ?continue
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? nom.splice(index2,1) ? //刪除原來的預(yù)存的學(xué)號中的所存學(xué)號抛蚁,splice()方法
? ? ? ? ? ? ? ? names.splice(index2,1)
? ? ? ? ? ? ? ? ages.splice(index2,1)
? ? ? ? ? ? ? ? sexs.splice(index2,1)
? ? ? ? ? ? ? ? alert('刪除成功')
break;? // 方法和case '3'? 是一樣的我這邊就直接復(fù)制粘貼了
case '0' :
alert('成功退出系統(tǒng)')
break陈醒;
default:
alert('輸入失敗請重新輸入')
continue;? //注意這邊你也可以1234寫完后瞧甩,直接default? 退出系統(tǒng)钉跷,但是有一個bug就是除了1234,你輸入其他的所有數(shù)都可以退出系統(tǒng)肚逸,所以就有的時候需要這一步爷辙,也可以不需要。}while(meau朦促!==0)//表示只要不輸入0膝晾,就一直返回循環(huán),如果meau===0 了就退出整個大循環(huán)