作業要求
學生成績管理
(1)class student
(2)用鍊錶或系統list類實現。用陣列實現也可(上限100條記錄)?
(3)增:檢查學號無重複
(4)刪:若輸入整數則按學號定位要刪除的記錄;
若輸入字串則按姓名(可縮寫)定位要刪除的記錄
技巧:先按字串讀入到臨時變數,檢查其是否含有數字,便知是學號還是姓名。
(5)改:若輸入整數則按學號定位要修改的記錄;
若輸入字串則按姓名(可縮寫)定位要修改的記錄
(4)、(5)若因為姓名縮寫導致多於一條記錄,拒執行並報錯。
修改時,逐一字段進行下列操作:
(a) 顯示欄位名和當前值
(b) 輸入該字段的新值。如果只敲回車不輸入新值,則該字段不修改,保持當前值不變。
技巧:先按字串讀入到臨時變數,檢查其長度是否為0,便知需不需要覆蓋原值。
(6)查:輸入格式為:欄位名 關係運算子 查詢值
例如,score > 80,查詢成績大於80分者。相當於一條sql查詢操作:
select * from student where score > 80
如果按字串型別字段(name)查詢,查詢值可以縮寫。
(7)存:存檔
(8)取:還原
主類program
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace classmanager
switch (int.parse(i))}}
protected static bool isnumber(string message)
catch}}
}
學生類
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace classmanager
public student(int i,string n,int s)
public int id
set
}public string name
set
}public int score
set
}//internal student next
//// set
//}public override string tostring()
}}
鍊錶操作
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.text.regularexpressions;
using system.io;
namespace classmanager
public void add()
console.writeline("請輸入姓名:");
n = console.readline();
while (n == "")
console.writeline("請輸入成績:");
c = console.readline();
while (!isnumberic(c))
while (true)
else if (tooid(int.parse(i)) == -1) //檢查id有沒有重複和是不是最後乙個學生資訊
else}}
public void delete()
else
}else
else if(index == -2)
else }}
public void edit()
else
else}}
}else
else if (index == -2)
else
else}}
}}
public void find()
string where = getwheresql(sql);
string ro = getrosql(sql);
string value = getvaluesql(sql);
switch (ro)
}public void print()
public void print(int i)
public string getwheresql(string sql)
public string getrosql(string sql)
public string getvaluesql(string sql)
/**
* 查詢方法
* */
public void sqla(string in,string value)
break;
default:
console.writeline("查詢語句不正確!例如,score > 80,查詢成績大於80分者");
break;}}
public void sqlb(string in, string value)
break;
default:
console.writeline("查詢語句不正確!例如,score > 80,查詢成績大於80分者");
break;}}
public void sqlc(string in, string value)
break;
case "name":
console.writeline("查詢結果-->");
for (int i = 0; i < count; i++)
break;
case "score":
console.writeline("查詢結果-->");
for (int i = 0; i < count; i++)
break;
default:
console.writeline("查詢語句不正確!例如,score > 80,查詢成績大於80分者");
break;}}
public void sqld(string in, string value)
break;
default:
console.writeline("查詢語句不正確!例如,score > 80,查詢成績大於80分者");
break;}}
public void sqle(string in, string value)
break;
default:
console.writeline("查詢語句不正確!例如,score > 80,查詢成績大於80分者");
break;}}
/**
* 查詢方法
* */
public void write()
file = new filestream(fpath, filemode.create);
sw = new streamwriter(file);
for (int i = 0; i < count; i++)
console.writeline("儲存完成! 共" + s.count + "條資訊");
sw.close();
file.close();
}public void read()
sr = new streamreader(fpath, encoding.utf8);
while ((input = sr.readline()) != null)
console.writeline("讀取完成! 共" + s.count + "條資訊");
sr.close();}}
}
學生成績管理系統
include include include define n 50 定義符號常量,代表學生人數最大值 int count 0 全域性變數,用於記錄陣列的當前位置 struct student 定義結構體型別,代表學生資訊 void input struct student arr 函式宣告,輸入...
學生成績管理系統
include include include include include include include include define null 0 define esc 0x001b 退出 define f1 0x3b00 檢視幫助資訊,呼叫helpmassage 函式 define f2 ...
學生成績管理系統
這是進入大學以來,第一次做的c語言課程設計,覺得挺有意義,把 貼上來,曬一下!學生成績管理系統 教師,管理員密碼 輸入學生的基本資訊 輸出學生的基本資訊 查詢學生的基本資訊 學生成績分析 排序 統計 退出 include include include include include include...