C 期末作業 學生成績管理

2021-09-16 20:16:41 字數 4196 閱讀 3058

作業要求

學生成績管理

(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...