第一篇:3.學生信息管理系統設計范文
學生信息管理系統設計(限最多2人完成)
學生信息包括:學號,姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設計學生信息管理系統,使之能提供以下功能:
系統以菜單方式工作
學生信息錄入功能(學生信息用文件保存)---輸入
學生信息瀏覽功能---輸出
查詢、排序功能---算法
按學號查詢
按姓名查詢
學生信息的刪除與修改(可選項
#include
#include
#include
#include
struct student{
int id;
char name[10];
float C;
float JAVA;
float SQL;
float pingjun;
}st[50];
int i=0;
void shuru()//輸入學員信息函數
{
char a;
do{
printf(“n請輸入學號:”);
scanf(“%d”,&st[i].id);
fflush(stdin);
printf(“n請輸入姓名:”);
gets(st[i].name);
printf(“請輸入C語言成績:”);
scanf(“%f”,&st[i].C);
printf(“n請輸入JAVA成績:”);
scanf(“%f”,&st[i].JAVA);
printf(“n請輸入SQL成績:”);
scanf(“%f”,&st[i].SQL);
st[i].pingjun=(st[i].C+st[i].JAVA+st[i].SQL)/3;//計算平均分
printf(“n是否繼續輸入另外一個學員信息?(y/n)”);
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);
}
void xianshi()//顯示輸入后的學員信息函數
{
int j;
printf(“t學號tt姓名ttC語言ttJAVAttSQLtt平均分n”);
for(j=0;j
printf(“ t%dtt%s tt%.2ftt%.2ftt%.2ftt%.2fn”,st[j].id,st[j].name,st[j].C,st[j].JAVA,st[j].SQL,st[j].pingjun);}
void paixu()//按平均分從大到小排序函數
{
int j,k;
float temp;
for(j=0;j
{
for(k=0;k { if(st[k].pingjun { temp=st[k].pingjun; st[k].pingjun=st[k+1].pingjun; st[k+1].pingjun=temp; } } } xianshi();//排序后輸出 } void chazhao()//查找某個學員的信息函數 { int m; char name[20],b; do { printf(“n請輸入想查找的學員姓名:”); fflush(stdin); gets(name); for(m=0;m { if(strcmp(name,st[m].name)==0) { printf(“ntt您查找的學員在第%d個位置找到了!!n”,m+1); break; } } if(m>=20) printf(“ntt沒有找到這個學員!!n”); else { printf(“t學號tt姓名ttC語言ttJAVAttSQLtt平均分n”); printf(“ t%dtt%s tt%.2ftt%.2ftt%.2ftt%.2fn”,st[m].id,st[m].name,st[m].C,st[m].JAVA,st[m].SQL,st[m].pingjun); } printf(“n是否查找另一個學員的信息?(y/n)”); fflush(stdin); b=getchar(); }while(b=='y'); } void shanchu()//刪除學員信息函數 { char name[20],c; int a,b; do { printf(“n請輸入要刪除的學員姓名:n”); fflush(stdin); gets(name); for(a=0;a { if(strcmp(name,st[a].name)==0) break; } for(b=a;b st[b]=st[b+1]; if(a>i) printf(“tt沒有找到這個學員!!n”); else { i--; xianshi(); } printf(“n是否繼續刪除另一個學員信息?(y/n)”);fflush(stdin); c=getchar(); }while(c=='y'); } void charu() { shuru(); paixu(); } void main()//主函數 { int change; do{ system(“cls”); printf(“============================學===================================n”);printf(“ttt一: 輸入學員信息n”); printf(“ttt二: 顯示學員信息n”); printf(“ttt三: 查找學員信息n”); printf(“ttt四: 刪除學員信息n”); printf(“ttt五: 插入學員信息n”); printf(“ttt六: 退出程序n”); fflush(stdin); printf(“ttt請輸入功能選項:”); scanf(“%d”,&change); switch(change) { case 1: shuru();break; case 2: xianshi();break; case 3: chazhao();break; case 4: 員信息管理系統 shanchu();break;case 5: charu();break;case 6: break;} getch(); }while(change!=6);} 學生信息管理系統設計報告 080370104 馬中源 一、設計目的 作為C#課程結課設計,驗證自身的學習效果,同時希望利用所學的基本知識和技能,進行簡單數據庫應用程序設計。希望通過項目實踐,熟悉鞏固所學知識,以使自身達到熟練掌握.NET基本結構以及C#語言的基本知識和技能,基本掌握面向對象程序開發的基本思路和方法,了解ADO.NET數據庫開發基本知識,為今后的進一步深入學習,奠定基礎。 二、需求分析 學生管理系統的開發目的是為了實現學生課程、學籍的信息化管理。本系統需要完成的功能有:班級管理、學生管理、科目管理、課程管理、成績管理以及系統管理員才具有的教師管理和用戶管理。 1.班級管理:可對班級進行添加、刪除、修改、查找和報表輸出等功能,班級屬性有:名稱、班主任(來自于系統中保存的教師)、當前學生人數、建班日期和備注等屬性。2.學生管理:可對學生進行添加、刪除、修改、查找和報表輸出等功能,學生屬性有:學號、姓名、性別、所屬班級(來自于系統中保存的班級)、相片、出生日期和備注等屬性。 3.科目管理:可對科目進行添加、刪除、修改、查找和報表輸出等功能,科目屬性有:科目名稱、學時數和備注等屬性。 4.課程管理:可對每一個班級的上課科目進行添加、刪除、修改、查找和報表輸出等功能,課程屬性有:所屬班級(來自于系統中保存的班級)、授課老師(來自于系統中保存的教師)、開課日期、結課日期和備注等屬性。 5.成績管理:可對每一個班級的上課科目的學生成績進行添加、刪除、修改、查找和報表輸出等功能,成績屬性有:學生姓名、所屬班級(來自于系統中保存的班級)、課程名、成績、備注等屬性。 6.系統管理:該模塊的主要任務是維護系統的正常運行和安全性設置,包括添加用戶、修改密碼、重新登錄等等。 三、系統模塊的實現 在系統中包括以下功能:系統管理、學生信息管理、課程信息管 理、成績信息管理、班級信息管理。系統各模塊關系如圖所示: 本系統共分為三大部分: 1、登錄模塊 為了系統的安全,在進入系統之前首先會出現一個登錄模塊,用戶只有在輸入正確的用戶名和正確的密碼之后,才能進入系統。 用戶登錄窗體中放置了兩個文本框(Textbox),用來輸入用戶名和密碼;兩個按鈕(Button)用來確定或者取消登錄。 設置一個SSTab控件,供不同用戶登錄時選擇用戶權限,超級用戶擁有一切權限(包括添加刪除和修改以及對用戶的管理),普通用戶擁有受限制的權限(查詢及修改密碼),提高了數據庫的安全性。 添加一個ToolTip組件,提示用戶輸入正確的用戶名和密碼形式,提示用戶密碼是佛正確。登陸條件判斷代碼: private void button1_Click(object sender, EventArgs e){ if(this.textBox1.Text == “" || this.textBox2.Text == ”“){ MessageBox.Show(”用戶名或密碼不能為空!“);} SqlConnection conn = new SqlConnection(connString);string str = ”select * from Users where UserName='“ + this.textBox1.Text.Trim()+ ”'“;try { conn.Open();SqlCommand cmd = new SqlCommand(str, conn);SqlDataReader read = cmd.ExecuteReader();if(read.Read()){ if(textBox2.Text.Trim()== read[”UserPassWord“].ToString().Trim()){ MessageBox.Show(”用戶正確,歡迎您使用本系統!“);this.Hide();主界面 fm = new 主界面();fm.Show();} else { MessageBox.Show(”密碼錯誤,請重新輸入!“);} } } catch(Exception ex){ MessageBox.Show(ex.Message);} conn.Close();} private void button2_Click(object sender, EventArgs e){ Application.Exit();} 2、系統主界面模塊 登陸成功后,即可進入,系統主界面模塊。窗體名稱為界面功能介紹。主界面為進入學生管理系統各模塊的入口,用戶可根據MenuStrip上面各個模塊名稱單擊進入各個管理模塊,從而進行對系統的管理操作。主界面入口代碼: private void 學生增刪ToolStripMenuItem_Click(object sender, EventArgs e){ 學生管理 fm4 = new 學生管理();fm4.Show();} private void 課程管理ToolStripMenuItem_Click(object sender, EventArgs e){ 課程管理 fm7 = new 課程管理();fm7.Show();} private void 科目管理ToolStripMenuItem_Click(object sender, EventArgs e){ 科目管理 fm8 = new 科目管理();fm8.Show();} private void 成績管理ToolStripMenuItem_Click(object sender, EventArgs e){ 成績管理 fm10 = new 成績管理();fm10.Show();} private void 用戶管理ToolStripMenuItem_Click(object sender, EventArgs e){ 用戶管理 fm12 = new 用戶管理();fm12.Show();} private void 修改密碼ToolStripMenuItem_Click(object sender, EventArgs e){ 更改密碼 fm14 = new 更改密碼();fm14.Show();} private void 班級管理ToolStripMenuItem_Click(object sender, EventArgs e){ 班級管理 fm2 = new 班級管理();fm2.Show();} 3、各功能模塊 1.用戶管理: 可對用戶進行添加、刪除、修改、查找等功能,用戶屬性有:用戶名、密碼、用戶類型、用戶權限、用戶注冊日期等信息。在用戶管理界面,用戶可根據自身權限查看用戶信息,系統超級管理員可根據需求進行添加、刪除用戶等相關操作。 進入用戶管理界面后,將會出現一個主窗體,選擇系統管理模塊下的添加用戶,就可以進入添加用戶窗體,可以通過該窗體增加新的用戶。 在這個窗體中放置了三個文本框,用來輸入用戶名和密碼;兩個按鈕用來確定是否添加用戶;三個標簽用來標示文本框的提示。用戶添加界面,超級管理員可通過本界面對用戶修改用戶類型,用戶權限設置。 1.4.2修改密碼窗體的創建 在系統管理模塊下,進入修改密碼窗體,用戶可根據需要修改自己的密碼。在這個窗體中放置了兩個文本框,用來輸入密碼和確認密碼;兩個按鈕用來確定是否修改密碼;兩個標簽用來標示文本框的內容。密碼修改界面主要包括用戶名、新設置密碼、以及確認等功能。主要供普通用戶進行密碼修改、以及密碼清除操作。2.班級管理: 班級信息管理界面 班級屬性有:名稱、班主任(來自于系統中保存的教師)、當前學生人數、建班日期和備注等屬性。班級管理模塊主要分為班級信息管理和班級查詢兩個界面,班級基本信息管理界面中的Groupbox班級檔案,顯示班級編號、班級名稱、學制、專業、班主任、開班日期、備注等基本信息情況。DataGridView顯示數據庫中班級詳細信息以及伴隨操作產生的數據變動情況。在本操作界面內,管理員可對班級信息進行添加、刪除、修改等各種操作。 班級查詢界面 班級查詢界面,主要實現班級基本信息的查詢,面向沒有管理權限的普通用戶訪問系統信息,根據班級編號對班級信息進行查詢操作,詳細信息會在窗體上面DataGridView中顯示,普通用戶只能瀏覽信息,不能進行刪除、修改等管理權限操作。3.課程管理: 課程管理模塊主要分為課程管理界面和教師管理界面兩部分實現。 課程管理界面中的DataGridView顯示課程基本信息,包括科目編號、班級編號、開課學期、教師編號、開課日期、捷克日期等基本信息。管理員可對每一個班級的上課科目進行添加、刪除、修改、查找等功能,也可對全部課程進行查看、修改、添加、刪除等基本操作。 sql = ”select * from ClassCourse“;da = new SqlDataAdapter(sql, connString);ds = new DataSet();da.Fill(ds, ”ClassCourse“);binds = new BindingSource(ds, ”ClassCourse“);dataGridView1.DataSource = binds; 教師管理模塊主要包括教師基本檔案,教師屬性為編號、姓名、聯系電話、教師姓名、任教年限、性別、專業、出生年月。在教師管理模塊可進行相應的查詢與信息修改。4.課程管理模塊 課程信息瀏覽功能:點擊主窗體中課程管理模塊下的科目信息瀏覽,可進入科目信息瀏覽窗體。為了用戶的使用方便,我使用了SSTab控件,故在該窗體中同時包含了科目信息的添加和修改的功能。并且我還在窗體上設置了myflexgrid控件。添加和修改記錄后,對于數據有何變化都可以在myflexgrid中顯示出來,使用戶對所做的操作一目了然。 課程設置功能:進入課程管理模塊下的年級課程設置窗體,可以對每一個年級的課程進行設置。 SqlConnection conn = new SqlConnection(connString);string sql = ”Insert into ClassCourse values(“ + ”'“ + textBox1.Text + ”','“ + textBox2.Text + ”',“ + textBox3.Text + ”,'“ + textBox4.Text + ”','“ + DateTime.Parse(dateTimePicker1.Text)+ ”','“ + DateTime.Parse(dateTimePicker2.Text)+ ”')“;try { conn.Open();MessageBox.Show(”打開數據庫連接成功“);SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();MessageBox.Show(”添加記錄成功!“); } catch(SqlException ex){ MessageBox.Show(”數據庫連接失敗!“ + ”添加記錄失敗!“ + ex.Message);} 可對科目進行添加、刪除、修改、查找等功能,修改 SqlConnection conn = new SqlConnection(connString);string sql = ”Update ClassCourse set CourseNo='“ + textBox1.Text + ”',“ + ”ClassNo='“ + textBox2.Text + ”',“ + ”StartTerm=“ + textBox3.Text + ”,“ + ”TeaNo='“ + textBox4.Text + ”',“ + ”StartData='“ + DateTime.Parse(dateTimePicker1.Text)+ ”',“ + ”FinishData='“ + DateTime.Parse(dateTimePicker2.Text)+ ”'“ + ”where CourseNo=“ + temp;try { conn.Open();MessageBox.Show(”打開數據庫連接成功“);SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();MessageBox.Show(”修改記錄成功!“); } catch(SqlException ex){ MessageBox.Show(”數據庫連接失敗!“ + ”修改記錄失敗!“ + ex.Message);} 科目管理模塊科目屬性主要包括科目名稱、學時數和備注等屬性。同時包括教師管理,教師管理包括教師姓名、電話、性別、科目、職稱等一系列基本信息;可對教師進行添加、刪除、查詢等基本操作。5.成績管理模塊 成績添加代碼實現 SqlConnection conn = new SqlConnection(connString);string sql = ”Insert into Scores values(“ + ”'“ + textBox1.Text + ”','“ + textBox2.Text + ”','“ + textBox3.Text + ”')“;try { conn.Open();MessageBox.Show(”打開數據庫連接成功“);SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();MessageBox.Show(”添加記錄成功!“);成績刪除代碼實現 SqlConnection conn = new SqlConnection(connString);DialogResult ret = MessageBox.Show(”確定要刪除嗎?“, ”刪除“, MessageBoxButtons.OKCancel);if(ret == DialogResult.Cancel)return;string sql = ”delete from Scores where StuNo=“ + textBox1.Text;SqlCommand cmd = new SqlCommand(sql, conn);try { conn.Open();int rows = cmd.ExecuteNonQuery();if(rows == 1)MessageBox.Show(”刪除成功!“, ”提示“, MessageBoxButtons.OK, MessageBoxIcon.Information);成績查詢代碼實現 sql = ”select * from Scores where StuNo='“+textBox1.Text+”'“;da = new SqlDataAdapter(sql, connString);ds = new DataSet();da.Fill(ds, ”Scores“);binds = new BindingSource(ds, ”Scores“);dataGridView1.DataSource = binds; 成績管理模塊主要包括成績信息管理功能點擊成績管理模塊下的成績信息瀏覽,進入成績信息瀏覽窗體,考慮到美觀和實用性,界面設置如下圖。用Frame控件在窗體中劃定一個可瀏覽成績信息地方,再在Frame中添加MSFlexGrid控件,運行時將在MSFlexGrid中顯示所有學生的成績信息。使用Toolbar來建立工具條。點擊工具條中的修改、添加和查詢按鈕就可分別進入修改成績信息窗體、添加成績信息窗體和查詢成績信息窗體。這三個窗體的界面設置分別類似于學籍管理下修改學籍信息窗體、添加學籍信息窗體和查詢學籍信息窗體。 成績管理模塊,管理員可對每一個班級的上課科目的學生成績進行添加、刪除、修改、查找和報表輸出等功能,成績屬性有:學生姓名、所屬班級(來自于系統中保存的班級)、課程名、成績、備注等屬性。6.學生管理模塊 添加學籍信息功能 SqlConnection conn = new SqlConnection(connString);//MemoryStream ms;//pictureBox1.Image.Save(ms);//byte[] img = ms.ToArray();string sql = ”Insert into Student(StuNo,StuName,StuSex,ClassNo,StuBday,StuAdress,StuPostNo,StuPhone,StuData,StuRemarks)values('“ + textBox1.Text + ”','“ + textBox2.Text + ”','“ + textBox3.Text + ”','“ + textBox4.Text + ”','“ + DateTime.Parse(dateTimePicker1.Text)+ ”','“ + textBox5.Text + ”','“ + textBox6.Text + ”','“ + textBox7.Text + ”','“ + DateTime.Parse(dateTimePicker2.Text)+ ”','“ + textBox8.Text + ”')“;SqlCommand cmd = new SqlCommand(sql,conn);try { conn.Open();MessageBox.Show(”數據庫連接成功!“);cmd.ExecuteNonQuery();MessageBox.Show(”添加記錄成功!“); } catch(SqlException ex){ MessageBox.Show(ex.Message);} 選擇主窗體中學生管理模塊下的添加學籍信息,就可進入添加學籍信息的窗體,在該窗體中我們可以對學生的學號、姓名、性別、出生日期、班號等學生的信息進行添加。設計時我盡可能設想各種邊界條件,如記錄為空,輸入為空,輸入出錯等,當輸入的信息滿足這些邊界條件時,將會彈出一個提示框提醒用戶,以便用戶能及時地做出修改。添加的信息將全部存儲到數據庫中。 在窗體上放置多個文本框和下拉式文本框,用來輸入學籍信息;兩個按鈕用來確定是否輸入學籍信息;一個按鈕用來退出窗體;多個標簽用來提示文本框中需要輸入的內容。在學生管理窗體下,可對學生進行添加、刪除、修改、查找和報表輸出等功能,學生屬性有:學號、姓名、性別、所屬班級(來自于系統中保存的班級)、相片、出生日期和備注等屬性。修改刪除學生信息 SqlConnection conn = new SqlConnection(connString);DialogResult ret = MessageBox.Show(”確定要刪除嗎?“, ”刪除“, MessageBoxButtons.OKCancel);if(ret == DialogResult.Cancel)return;string sql = ”delete from Student where StuNo=“ + temp;SqlCommand cmd = new SqlCommand(sql, conn);try { conn.Open();int rows = cmd.ExecuteNonQuery();if(rows == 1)MessageBox.Show(”刪除成功!“, ”提示“, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch(SqlException ex){ MessageBox.Show(”數據庫連接失敗!“ + ex.Message);} 點擊學籍管理模塊下的修改學籍信息,就進入修改學籍信息的窗體,在該窗體中我們可以對前面添加的學籍信息進行修改。由于用戶的需求不同,有的是要對學生的信息做個別的改動,有的是需要刪除該條記錄,所以該窗體同時包括了修改記錄的功能和刪除記錄的功能。又考慮到用戶的誤操作,為了方便,我在該窗體中增添了取消修改的功能,可一次性把輸入文本框的內容全部置空。查詢學籍信息功能 //string conn = ”Initial Catalog=Mazhongyuan;Data Source =localhost;Integrated Security=true“;SqlConnection connection = new SqlConnection(connString); SqlDataAdapter adapter = new SqlDataAdapter(”select * from Student ",connection);DataTable table = new DataTable();adapter.Fill(table);dataGridView1.DataSource = table;進入學籍管理模塊下的查詢學籍信息窗體,在該窗體中可以對學生的信息進行查詢,有三種查詢方式。我在設計時,一方面考慮到簡潔的因素,用戶可以只設置一種查詢方式進行查詢;另一方面又為了避免數據的重復,用戶可以輸入詳細的信息,也就是同時設置多種查詢方式進行查詢。進入查詢窗體時,myflexgrid中會顯示出所有學生的學籍信息,如果不設置查詢方式就進行查詢,是無效查詢,系統會給出提示。在設置好查詢方式后,便開始查詢,將在myflexgrid中顯示出用戶所需的學生的學籍信息。 四、系統測試 在開發這個軟件系統的過程中,面對著極其錯綜復雜的問題,人的主觀認識不可能完全符合客觀現實,在本次設計過程中,我采用循環測試法,力求在每個階段結束之前通過嚴格技術審查,即每完成一個功能,就進行測試,盡可能早的發現并糾正差錯,完成模塊測試之后再進行系統測試。在該設計中,我偏重考慮了當用戶輸入的信息出錯時,系統就會出現提示,以便讓用戶知道出錯的原因,并能及時做出修改,所以我站在用戶的角度考慮,盡可能設想各種邊界條件,如記錄為空,輸入為空,輸入出錯等,以此來發現錯誤,糾正錯誤,取得了一定的效果。 當然,該學生信息管理系統也存在一些不足之處。在成績管理界面,當3次改變成績為不同的內容時,程序會出錯。雖然嘗試了很多方法,仍不能解決。再一點就是關于打印和年級課程信息設置都未能實現,這有待于以后的進一步提高。 一個應用系統性能的優劣,效率的高低始終應當由用戶來做出判決,應用系統在運行過程中,用戶會提出一些新的需求和建議,我就會根據用戶需求的變化,對本系統做出一定的修改,使其進一步地得到完善和提高。 五、課程設計總結 通過本次課程設計,驗證了本學期對C#的學習效果,同時利用所學的基本知識和技能,嘗試進行簡單數據庫應用程序設計。通過本次項目實踐,熟悉鞏固了本學期所學軟件設計知識,達到熟練掌握.NET基本結構以及C#語言的基本知識和技能,基本掌握面向對象程序開發的基本思路和方法,了解ADO.NET數據庫開發基本知識,為今后的進一步深入學習,奠定了基礎。 參考資料 C#程序設計 C#實用軟件開發 數據庫設計 摘 要 隨著網絡通信技術的迅速發展和信息技術的廣泛應用,計算機的應用已普及到經濟和社會生活的各個領域。教育領域也不例外,現今已經出現了各種遠程網絡在線教育系統、圖書館管理系統、學生信息管理系統等。其中學生信息管理是任一院校都不可缺少的部分,它的內容對于學校的決策者和教學管理者來說都至關重要,而傳統的人工管理方式效率較低,為數據的查詢、更新和維護帶來了極大的不便。所以學生信息管理信息系統的開發和應用是必要的,它能夠為管理人員提供充足的信息和快捷的查詢手段,提高學校對學生信息的管理效率。 本文的學生信息管理系統是基于java語言的,它能夠提供學生信息管理功能,方便系統管理員對學生學號、班級等信息的添加、修改、刪除、查詢等操作,同時可以一樣方便的對學生的信息進行查詢。本系統也主要利用java語言和access實現,因此它具有很強的可移植性,很方便。 關鍵字: 學生信息 管理系統 添加 刪除 查詢 修改 Abstract With the rapid development of network communication technology and extensive application of information technology, computer applications have spread to the economic and social life in various fields.The field of education is no exception, now there have been a variety of remote network online education system, library management system, student information management system.Which is either a student information management schools are an indispensable part of its contents and teaching for school managers, policy-makers are essential, and the traditional manual management inefficient for data query, update and maintenance brought great inconvenience.So the student information management system development and application of information is necessary, it is able to provide managers with sufficient information and quick inquiry means to improve school student information management efficiency.This student information management system is based on the java language, it is able to provide students with information management function to facilitate system administrators to students student number, class and other information to add, modify, delete, query and other operations, but can be just as convenient for students information to search.This system is mainly achieved using java language and access, so it is very portable, very convenient.Keywords: Student Information Management System add delet revise 前言 隨著計算機技術的飛速發展,信息時代的到來,信息改變了我們這個社會。學校在管理、教學、辦公各個方面也在悄悄地變化。一個學校的信息化程度體現在將計算器與信息技術應用于教學與管理,以現代化工具代替傳統手工作業。無疑,使用信息化管理使教學更先進、辦公更高效、管理更科學,信息交流更迅速。 學生成績管理系統是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生成績信息管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。 作為計算機應用的一部分,使用計算機對學生成績信息進行管理,具有著手工管理所無法比擬的優點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高學生檔案管理的效率,也是企業的科學化、正規化管理,與世界接軌的重要條件。 因此,開發這樣一套管理軟件成為很有必要的事情,故決定選擇學生成績管理系統來作為本人的畢業設計,在很短的時間里開發出一套界面友好,功能強大,使用簡單的適用于各規模學院的學生成績管理系統。該學生成績管理系統能有效的處理在校學生的成績管理,具有成績輸入、成績查詢、成績統計及打印功能。 學生成績管理系統可以實施應用在各中、大、小院校中,適用范圍很廣,應用性強。隨著系統實施的日益成熟,最終會使單機作業為主的教學管理活動提高到這個平臺上來,從而實現學校學生成績信息管理的辦公自動化,籍以提高辦學效率和質量。使學校充分利用計算機所帶來的新技術,為培養人才打下堅實的基礎。 第一章 相關技術簡介 1.1 java語言簡介 Java語言是sun公司與1995年5月正式發布的程序設計語言,他的前身是sun公司為智能消費類家用電器研究而開發的項目的一部分。 Java程序設計語言是新一代語言的代表,他強調了面向對象的特性,可以用來開發范圍廣泛的軟件,它具有支持圖形化的用戶界面,網格以及數據庫連接等復雜功能。Java語言的主要特點: 1)易于學習 Java語言很簡單,對于熟悉C++的程序設計人員更不會對其感到陌生,因 為它的語法非常接近于C++,但他同時摒棄了C++許多的復雜易混淆的功能。利用java同樣可以變質出非常復雜的系統,且運行占用很少的內存資源。2)高效率的執行方式 Java語言的執行方式是采用先經過編譯器編譯,在通過解釋器解釋執行的 方式來運行的。他綜合了解釋性語言與編譯語言的眾多有點,使其執行效率較以往的程序設計語言有了大幅度的提高。3)與平臺的無關性 由于iava語言是解釋執行的,他會被轉換成一種字節碼的“目標程序”。因此它可以跨平臺運行 4)分布式安全性 Java從誕生之日起就與網絡聯系在了一起,他強調網絡特性,內置TCPIP,HTTP,FTP協議庫,便于開發網上應用系統。5)豐富的API文檔和類庫 Java為用戶提供了詳盡的API(Application Program Interface)文檔說明。 1.2 access數據庫簡介 Microsoft Office Access是微軟把數據庫引擎的圖形用戶界面和軟件開發工具結合在一起的一個數據庫管理。他擁有邏輯、流程處理,即VBA語言(VB也可以用來做邏輯處理);又可以存儲數據,即在“表”中存儲數據。 第二章 系統分析 2.1 系統分析 學生信息管理系統,可用于學校等機構的學生信息管理,查詢,更新與維護,使用方便,易用性強,圖形界面清晰明了。該軟件用java語言編寫,用access數據庫作為后臺的數據庫進行信息的存儲,用SQL語句完成學生學籍信息的添加,查詢,修改,刪除的操作以及成績的錄入,修改,刪除等。用ODBC驅動實現前臺Java與后臺SQL數據庫的連接。Java語言跨平臺性強,可以在windows,linux,ubuntu等系統下使用,方便簡單,安全性好。 本《學生管理系統》具有對學生進行學籍管理的功能。并于數據庫相連接,能夠對學生的學號、姓名、性別、班級、專業進行查詢、添加和刪除等,簡捷方便,容易使用。2.2 應解決的問題 2.2.1合理的設計數據庫 盡量合理地減少數據庫數據的冗余,使重復的數據保持在最小限度,這樣將不必要的多占用存儲空間,減少產生混亂影響的危險,還能提高計算機的運行速度。作為學生成績管理系統,必須能解決以下方面的問題:能錄入信息。 在開發學生信息管理系統時,最重要的就是學生的基本信息,其學生信息表E-R圖如圖2.1所示。 圖 2.1 學生信息E-R圖 2.2.2設計出友好的界面 界面的友好與否是用戶評價一個軟件優劣的重要方面。因為該系統涉及到 學生成績的真實性,所以該系統要具有一定的保密性和權限控制,首先應設計一個用戶的登陸窗口界面,要求只能由特定的人員對該系統進行操作。此外還應設計登陸后系統的主窗口,要求能夠顯示學生成績的基本信息,可以實現數據的錄入,更新,刪除、查詢、統計等功能。 另外窗口界面要多用按鈕,少用菜單,窗口的各個控鍵布局要合理,美觀。要充分的利用java.awt和java.swing提供的強大的功能,多用窗口和控件,充分體現窗口的多元化格局。 2.2.3實現的基本功能 該系統要求除了能實現信息的錄入,刪除,插入,更新,數據導出excel文件等基本功能之外,還要求能夠根據用戶的需要進行操作。例如要查詢學生成績,要求可以按照專業、班級等多種方式查詢。這些功能基本上能滿足用戶操作的需要,這樣用戶操作起來就更簡單方便。部分文本框使用了下拉式,使用戶可以不用花費大量的時間去輸入信息。 2.3 數據庫物理設計 1.1.1 3.3.1數據庫物理設計 本系統采用Access數據庫管理系統作為后臺數據庫的開發工具,設計的表結構如下: 第三章 程序代碼及運行效果 3.1主類代碼: /*主類代碼*/ package kcsj;import java.awt.*;import javax.swing.*;import java.awt.event.*; import javax.swing.border.*;import javax.swing.JOptionPane;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import java.sql.*;import java.awt.GridLayout;public class myStudent { public myStudent(){ } public static void main(String[] args){ // TODO code application logic here loginFrame lf=new loginFrame();Font ft=new Font(“Serif”,Font.BOLD,18);lf.setVisible(true);lf.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} } 3.2 登陸: public loginFrame(){ p=new JPanel(); user=new JTextField(10); pass=new JPasswordField(10); login=new JButton(“登錄”); cancel=new JButton(“退出”); p.setBackground(Color.lightGray); //user.setText(“王明玉”); //pass.setText(“123456”); login.addActionListener(this); cancel.addActionListener(this); p.add(new JLabel(“學生信息管理系統登錄”)); p.add(new JLabel(“賬號:”)); p.add(user); p.add(new JLabel(“密碼:”)); p.add(pass); p.add(login); p.add(cancel); this.add(p); this.setTitle(“學生管理系統登錄界面”); this.setSize(180,160);} public void actionPerformed(ActionEvent e){ //查找 if(e.getSource()==login){ if(user.getText().toString().equals(“")){ JOptionPane.showMessageDialog(null, ”請輸入用戶名“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(pass.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入密碼“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ myConnection conn=new myConnection(); ResultSet rs; String sql=”select * from admin where 用戶名 = '“+user.getText().toString()+”' and 密碼 = '“+pass.getText().toString()+”'“; try{ rs=conn.getResult(sql); if(rs.next()){ this.dispose(); //JOptionPane.showMessageDialog(null, ”此用戶已經存在“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); sql=”select * from student“; mainFrame mf=new mainFrame(); mf.setTitle(”西北師范大學學生信息管理系統“); mf.setSize(600,486); mf.freshTable(sql); mf.setVisible(true); mf.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); }else{ JOptionPane.showMessageDialog(null, ”用戶名或密碼錯誤“, ”登錄失敗“, JOptionPane.INFORMATION_MESSAGE); } }catch(Exception er){ System.out.println(er.toString()); } } //全部顯示 }if(e.getSource()==cancel){ System.exit(0); } } } 登陸界面: 3.3 修改數據: /*修改數據*/ class editFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400; JLabel 學號1,姓名1,性別1,民族1,年齡1,年級1,班級1,專業1;JTextField 學號,姓名,性別,民族,年齡,年級,班級,專業;JButton b;JPanel p; mainFrame mf; public editFrame(mainFrame mmf){ setTitle(”修改學生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180); Container contentPane = getContentPane();contentPane.setLayout(new FlowLayout()); 學號1=new JLabel(”學號“);姓名1=new JLabel(”姓名“);性別1=new JLabel(”性別“);民族1=new JLabel(”民族“);年齡1=new JLabel(”年齡“);年級1=new JLabel(”年級“);班級1=new JLabel(”班級“); 專業1=new JLabel(”專業“); 學號=new JTextField(5);姓名=new JTextField(5);性別=new JTextField(5);民族=new JTextField(5);年齡=new JTextField(5);年級=new JTextField(5);班級=new JTextField(10);專業=new JTextField(10);學號.setEnabled(false);b=new JButton(”確定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(學號1);p.add(學號);p.add(姓名1);p.add(姓名);p.add(性別1);p.add(性別);p.add(民族1);p.add(民族);p.add(年齡1);p.add(年齡);p.add(年級1);p.add(年級);p.add(班級1);p.add(班級);p.add(專業1);p.add(專業);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按鈕監聽器 b.addActionListener(this);mf=mmf;} public void actionPerformed(ActionEvent e){ if(學號.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null,”請輸入學號“,”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(姓名.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null,”請輸入姓名“,”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(年齡.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null,”請輸入年齡“,”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ String sql=”update student set 姓名='“+姓名.getText()+”',性別='“+性別.getText()+”',年齡=“+年齡.getText()+”,年級='“+年級.getText()+”',班級='“+班級.getText()+”',專業='“+專業.getText()+”',民族='“+民族.getText()+”' where 學號='“ + 學號.getText()+ ”'“; myConnection conn=new myConnection(); try{ //JOptionPane.showMessageDialog(null, sql, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); if(conn.executeSql(sql)){ JOptionPane.showMessageDialog(null, ”修改成功“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); mf.freshTable(”select * from student“); this.dispose(); }else{ JOptionPane.showMessageDialog(null, ”修改失敗“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); } }catch(Exception er){ System.out.println(er.toString()); } } } } 3.4 查找數據: class findFrame extends JDialog implements ActionListener{ mainFrame mf;JPanel p;JComboBox c;JTextField t;JButton b;JButton fAll;String sql=”select * from student“;String[] colStr={”學號“,”姓名“,”性別“,”民族“,”年齡“,”年級“,”班級“,”專業“}; public findFrame(mainFrame mmf){ mf=mmf; p=new JPanel(); c=new JComboBox(colStr); t=new JTextField(10); b=new JButton(”查找“); fAll=new JButton(”全部顯示“); b.addActionListener(this); fAll.addActionListener(this); p.add(new JLabel(”選擇“)); p.add(c); p.add(new JLabel(”查找內容“)); p.add(t); p.add(b); p.add(fAll); this.add(p); this.setTitle(”查找“); this.setSize(450,80);} public void actionPerformed(ActionEvent e){ //查找 if(e.getSource()==b){ String selectStr=c.getSelectedItem().toString(); if(selectStr==”年齡“){ sql=”select * from student where “+selectStr+” “+t.getText().toString(); } else { sql=”select * from student where “+selectStr+” '“+t.getText().toString()+”'“; = = 12 } mf.freshTable(sql); //全部顯示 }if(e.getSource()==fAll){ sql=”select * from student“; mf.freshTable(sql); } } } 3.5 添加數據: class addFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400; JLabel 學號1,姓名1,性別1,民族1,年齡1,年級1,班級1,專業1;JTextField 學號,姓名,性別,民族,年齡,年級,班級,專業;JButton b;JPanel p; mainFrame mf; public addFrame(mainFrame mmf){ setTitle(”修改學生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180); Container contentPane = getContentPane();//contentPane.setBackground(Color.BLACK);//設置窗口顏色 contentPane.setLayout(new FlowLayout()); 學號1=new JLabel(”學號“); 姓名1=new JLabel(”姓名“); 性別1=new JLabel(”性別“); 民族1=new JLabel(”民族“); 年齡1=new JLabel(”年齡“); 年級1=new JLabel(”年級“); 班級1=new JLabel(”班級“); 專業1=new JLabel(”專業“); 學號=new JTextField(”201071030240“,5); 姓名=new JTextField(5); 性別=new JTextField(”女“,5); 民族=new JTextField(5); 年齡=new JTextField(5); 年級=new JTextField(5); 班級=new JTextField(10); 專業=new JTextField(10); b=new JButton(”確定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(學號1);p.add(學號);p.add(姓名1);p.add(姓名);p.add(性別1);p.add(性別);p.add(民族1);p.add(民族);p.add(年齡1);p.add(年齡);p.add(年級1);p.add(年級);p.add(班級1);p.add(班級);p.add(專業1);p.add(專業);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按鈕監聽器 b.addActionListener(this);mf=mmf;} public void actionPerformed(ActionEvent e){ if(學號.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入學號“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(姓名.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入姓名“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(年齡.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入年齡“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ String sql=”select * from student where 學號='“ + 學號.getText()+ ”'“; myConnection conn=new myConnection(); ResultSet rs; rs=conn.getResult(sql); try{ //System.out.println(rs.getRow()); if(rs.next()){ JOptionPane.showMessageDialog(null, ”此學號已經存在“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ sql=”insert into student values('“ +學號.getText()+”','“+ 姓名.getText()+”','“+ 性別.getText()+”','“+ 民族.getText()+”',“+ 年齡.getText()+”,'“+ 年級.getText()+”','“+ 班級.getText()+”','“+ 專業.getText()+”')“; if(conn.executeSql(sql)){ JOptionPane.showMessageDialog(null, ”添加成功“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); mf.freshTable(”select * from student“); 學號.setText(”“); 姓名.setText(”“); 性別.setText(”“); 民族.setText(”“); 年齡.setText(”“); 年級.setText(”“); 班級.setText(”“); 專業.setText(”“); }else{ JOptionPane.showMessageDialog(null, ”添加失敗“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); } } }catch(Exception er){ System.out.println(er.toString()); } } } } 3.6 修改數據: class editFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400; JLabel 學號1,姓名1,性別1,民族1,年齡1,年級1,班級1,專業1;JTextField 學號,姓名,性別,民族,年齡,年級,班級,專業;JButton b;JPanel p; mainFrame mf; public editFrame(mainFrame mmf){ setTitle(”修改學生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180); Container contentPane = getContentPane();contentPane.setLayout(new FlowLayout()); 學號1=new JLabel(”學號“); 姓名1=new JLabel(”姓名“); 性別1=new JLabel(”性別“); 民族1=new JLabel(”民族“); 年齡1=new JLabel(”年齡“); 年級1=new JLabel(”年級“); 班級1=new JLabel(”班級“); 專業1=new JLabel(”專業“); 學號=new JTextField(5); 姓名=new JTextField(5); 性別=new JTextField(5); 民族=new JTextField(5); 年齡=new JTextField(5); 年級=new JTextField(5); 班級=new JTextField(10); 專業=new JTextField(10); 學號.setEnabled(false); b=new JButton(”確定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(學號1);p.add(學號); p.add(姓名1);p.add(姓名);p.add(性別1);p.add(性別);p.add(民族1);p.add(民族);p.add(年齡1);p.add(年齡);p.add(年級1);p.add(年級);p.add(班級1);p.add(班級);p.add(專業1);p.add(專業);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按鈕監聽器 b.addActionListener(this);mf=mmf;} public void actionPerformed(ActionEvent e){ if(學號.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入學號“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(姓名.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入姓名“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else if(年齡.getText().toString().equals(”“)){ JOptionPane.showMessageDialog(null, ”請輸入年齡“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); }else{ String sql=”update student set 姓名='“+姓名.getText()+”',性別='“+性別.getText()+”',年齡=“+年齡.getText()+”,年級='“+年級.getText()+”',班級='“+班級.getText()+”',專業='“+專業.getText()+”',民族='“+民族.getText()+”' where 學號='“ + 學號.getText()+ ”'“; myConnection conn=new myConnection(); try{ //JOptionPane.showMessageDialog(null, sql, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); if(conn.executeSql(sql)){ JOptionPane.showMessageDialog(null, ”修改成功“, ”溫馨提示“, JOptionPane.INFORMATION_MESSAGE); mf.freshTable(”select * from student“); this.dispose(); }else{ JOptionPane.showMessageDialog(null, ”修改失敗“, ”溫馨提示", JOptionPane.INFORMATION_MESSAGE); } }catch(Exception er){ System.out.println(er.toString()); } } } } 運行效果: 第四章 總結 通過本次課程設計,不僅讓我更深入的了解JAVA這門學科,更使自己有了繼續探索的興趣。 對我來說,在之前的學習過程中沒有能夠很好的掌握JAVA語言的學習,在很多地方還有生疏和遺漏,并且在此次課程設計過程中也遇到困難不能自己獨立解決。但是,通過這次程序設計,除了增加了自己的編程能力,提高了我對JAVA的應用能力,同時我也深感“認真嚴謹”這個詞的重要性,一點點小的馬虎,便會導致整個程序不能正常運行。在今后的學習中,我將繼續保持嚴謹的學習態度。與此同時,在同學的幫助下,讓我體會到了相互學習的重要性,而更讓人難以忘懷的是在熱烈討論問題時,那激情橫溢的場面。總之,此次課程設計讓我獲益匪淺。 第五章 總結 課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程.本次課程設計雖然很辛苦,實在是受益匪淺。本來這門課的知識學的就不夠扎實,本次課程設計,在設計過程中碰到了很多問題,剛開始要設計的時候,還真不知道從哪里下手但最終在圖書、同學和老師的幫助下都得到了解決,讓我學會了好多書本上沒有的東西,通過本次課程設計我也能將課本上的知識融會貫通,起到了很好的輔助學習的效果,但是我發現我學到的知識比整整一個學期學到的都多。理 論和實踐的相結合是學習最有效的方法。在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設計之后,一定把以前所學過的知識重新溫故。 通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。 第六章 參考文獻 –––––––––––––––––摘 要––––––––––––––––– 學生信息管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對于前者要求建立起數據一致性和完整性強、數據安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 經過分析,我們使用MICROSOFT公司的VISUAL BASIC開發工具,利用其提供的各種面向對象的開發工具,尤其是數據窗口這一能方便而簡潔操縱數據庫的智能化對象,首先在短時間內建立系統應用原型,然后,對初始原型系統進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統。 關鍵字:控件、窗體、域、數據庫。 –––––––––––––––––前言––––––––––––––––– 隨著學校的規模不斷擴大,學生數量急劇增加,有關學生的各種信息量也成倍增長。面對龐大的信息量需要有學生管理系統來提高學生管理工作的效率。通過這樣的系統可以做到信息的規范管理、科學統計和快速查詢、修改、增加、刪除等,從而減少管理方面的工作量。 本系統主要用于學校學生信息管理,總體任務是實現學生信息關系的系統化、規范化和自動化,其主要任務是用計算機對學生各種信息進行日常管理,如查詢、修改、增加、刪除,另外還考慮到學生選課,針對這些要求設計了學生信息管理系統本系統主要用于學校學生信息管理,總體任務是實現學生信息關系的系統化、規范化和自動化,其主要任務是用計算機對學生各種信息進行日常管理,如查詢、修改、增加、刪除,另外還考慮到學生選課,針對這些要求設計了學生信息管理系統。 本系統主要包括學生信息查詢、教務信息維護和學生選課三部分。其功能主要有: ⒈有關學籍等信息的輸入,包括輸入學生基本信息、所在班級、所學課程和成績等。⒉學生信息的查詢,包括查詢學生基本信息、所在班級、已學課程和成績等。⒊學生信息的修改。 ⒋班級管理信息的輸入,包括輸入班級設置、年級信息等。⒌班級管理信息的查詢。⒍班級管理信息的修改。⒎學生課程的設置和修改。 目 錄 前言 第一章 Visual Basic 概述 1.1 Visual Basic 語言的特點 1.2 Visual Basic 系統幾個程序應用中的常用名詞 第二章 Windows 下的Visual Basic 編程環境簡介 2.1 面對對象的編程 2.2 實現菜單選項 2.3 實現工具欄 第三章 怎樣開發一個學生信息管理系統的查詢模塊 3.1 學生信息系統的設計分析 3.2 編程環境的選擇 3.3 關系型數據庫的實現 3.4 二者的結合(DBA)第四章 使用Access2000 創建數據庫 4.1 數據庫的概念 4.2 新建一個數據庫 4.3 修改已建的數據庫 第五章 可行性分析 第六章 系統總體規劃 6.1 系統功能 6.2 系統流程圖 第七章 系統具體實現 7.1 各功能的實現 7.1.1 課程管理 7.1.2 打印統計 結束語 后記 主要參考文獻 第一章 Visual Basic 概述 1.1 Visual Basic 語言的特點 Visual Basic 語言用其設計應用程序時具有兩個基本特點:可視化設計和事件驅動編程。(1)可視化設計:表現在VB在設計應用于程序界面時有“所見即所得”的處理功能。(2)事件驅動編程:在設計應用程序時,把對象添加到窗體中,在用戶與程序進行交互時,用戶基本上是通過鼠標、鍵盤與應用程序進行交互的,那些對象就必須對鼠標和鍵盤操作所引發的事件做出響應,來執行一段應用程序。1.2 Visual Basic 系統幾個在程序應用中的常用名詞 Visual Basic 系統除了一般高級語言所具有的一些名詞術語外,還有幾個系統常用的名詞。其基本含義如下:(1)視窗(Form) 視窗是進行人機交互的界面或接口,也叫窗體。VB系統的人機交互界面或接口,無論是在設計時或是在運行時,都是Windows 系統的標準視窗。(2)對象(Object) 對象是VB系統內部提供給設計者可以直接使用的處理輸出的控制工具。本程序所應用到的對象類型有標簽框(Label Box),文本框(Text Box),命令按扭(Command Button),網格(Data Grid),ADO控件(Adodc1)等。當把這些工具放置到用戶界面對應的窗體上時,被稱為對象或控件。用戶可以通過設置對象的“屬性”和“方法”,便于對象適應自己所設計應用程序的輸入輸出內容,對象的生成過程及結構都被封裝起來。正確使用對象可以減少程序和開發時間,提高程序設計者的工作效率。(3)屬性(Properties) 屬性是VB系統提供的有關對象的參數或數據接口。用戶通過適當地設置或改變對象的屬性來確定對象的外觀及性能特征,從而有效地使用系統提供的對象。比如,對象的名稱、在屏幕上顯示的位置、大小、顏色、接收或容納的數據內容及數據的表現格式等。(4)事件(Events) 事件是指用戶或操作者對計算機進行的某一操作(如擊鍵、單擊或移動鼠標等)的行為或系統狀態發生的變化。VB系統常用事件來引導計算機執行一段程序。程序所用的鍵盤事件有KeyPress(按鍵)事件,KeyDown事件和KeyUp事件;鼠標事件有Click(單擊鼠標)事件,DbDlicd(雙擊鼠標)。(5)方法(Method)方法主要是指對一個對象使用某種作用的過程。它是在程序執行的過程中要計算機執行的某種操作。其程序的方法有Show(顯示)方法,Hide(隱藏)方法,Refresh(刷新)方法。 (6)過程(Procedure) 過程是指經過定義或說明的,或基于某一對象對應的事件所引發的程序段。(7)模塊(Module) 模塊是指一些運算量或過程進行聲明或定義的一個集合。系統程序大體可分成四個模塊:數據輸入、根據查詢、數據打印和通訊。 第二章 Windows下的Visual Basic 編程環境簡介 2.1 面對對象的編程 面向對象的設計方法(OOP, Objected Programming)從應用領域內的問題著手,以直觀自然的方式描述客觀世界的實體。Visual Basic 作為一種面向對象的編程方法,把程序和數據封裝起來作為一個對象,并為每個對象賦予相應的屬性。在設計對象時,不必編寫建立和描述每個對象的程序代碼,而是用工具畫在界面上,由 Visual Basic 自動生成對象的程序代碼并封裝起來。Visual Basic 應用程序基本的構建塊是用戶所創建的對象,每一個對象都具有一些特性和行為(屬性、事件和方法)。開發人員可以最有效利用所創建的每一個對象。使用應用程序具有可通用性可說擴展性和強有力的功能。 Visual Basic 應用由一系列對象組成,包括有函數、菜單、函數、結構和數據窗口、用戶對象、用戶事件等等,對象中又包含若干控件如命令按鈕、單行編輯器等這些對象和控件都可在許多應用中重復使用。2.2 實現菜單選項 菜單是程序最重要的特性之一,大多數程序都依賴一個定義良好的菜單使程序易于使用和維護,Visual Basic 也提供了強大的創建菜單功能是程序更加標準。 本系統使用 Visual Basic 的菜單編輯器建立菜單或者修改已經存在的菜單,您也可以使用Visual Basic 的Application Wizard 來操作。2.3 實現工具欄 CoolBar控件與Office2000 中看到的CoolBar是類似的。CoolBar就是一個可以在窗體上浮動的工具,同時也是其他ActiveX的容器。通過在CoolBar中遷入其他空間你也可以向用戶提供更好的靈活性和義用性。 選擇“工程”下拉菜單中的“部件”選項,顯示“部件”對話框。在“控件”選項卡列表中選擇“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。本系統就用了Cool工具中的Statubar控件,在系統這一界面中,添加了狀態欄,在第一個欄中,在樣式這一欄中選擇了文本,在第二個欄中,選擇了系統日期,第三個欄中選擇了系統時間,這樣,任何時候操作本系統,都可以看到當前的時間和日期。 第三章 怎樣開發一個學生信息管理系統的查詢模塊? 3.1查詢模塊的設計分析 根據實際情況,我們使用原型法(Rapid Prototyping)即以少量代價快速地構造一個可執行的軟件模型。使用戶可以較快地確定需求,然后采用循環進化的開發方式,對系統模型作連續的精化,將系統需具備的性質逐漸增加上去,直到所有的性質全部滿足。此時模塊也發展成為最終產品了。3.2編程環境的選擇 微軟公司的Visual Basic 6.0是Windows應用程序開發工具,使目前最為廣泛的、易學易用的面向對象的開發工具。Visual Basic提供了大量的控件,這些控件可用于設計界面和實現各種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應 用程序的運行效率和可靠性。故而,實現本系統VB是一個相對較好的選擇。3.3關系型數據庫的實現 Access2000就是關系數據庫開發工具,數據庫能匯集各種信息以供查詢、存儲和檢索。Access的優點在于它能使用數據表示圖或自定義窗體收集信息。數據表示圖提供了一種類似于Excel的電子表格,可以使數據庫一目了然。另外,Access允許創建自定義報表用于打印或輸出數據庫中的信息。Access也提供了數據存儲庫,可以使用桌面數據庫文件把數據庫文件置于網絡文件服務器,與其他用戶共享數據庫。Access 是一種關系數據庫工具,關系數據庫是已開發的最通用的數據庫之一。如上所述,Access作為關系數據庫開發具備了許多優點,可以在一個數據包同時擁有桌面數據庫的便利和關系數據庫的強大功能。3.4二者的結合(DBA)微軟的JET數據庫引擎提供了與數據庫打交道的途徑,我們是通過它以及Visual Basic來訪問數據庫并對其進行各種操作。Visual Basic、Access以及其他微軟的軟件產品都是通過共用JET數據庫引擎,從而給用戶提供了豐富的數據類型。ADODC控件在數據庫中的信息與將信息顯示給用戶看的Visual Basic 程序之間架起了一座橋梁。我們可以設置ADODC控件的各個屬性,告訴它要調用那個數據庫的哪個部分。缺省情況下,ADODC控件根據數據庫中的一個或多個數據庫表建立一個dynaset-type(動態集合)類型的記錄集合。一個記錄集合是動態的也就意味著,當原來的數據表中的容改變了以后,該記錄集合中的記錄也會隨之改變。將ADODC控件放置在窗體中之后,我們還必須在該控件與要處理的數據庫之間建立聯系。 第四章 使用Access2000創建數據庫 4.1數據庫的概念 數據庫是一種存儲數據并對數據進行操作的工具。數據庫的作用在于組織和表達信息,簡而言之,數據庫就是信息的集合。計算機的數據庫可以分為兩類:非關系數據庫(flat-file)和關系數據庫(relational)。關系數據庫中包含了多個數據表的信息,數據庫含有各個不同部分的術語,象記錄、域等。4.2新建一個數據庫 創建任何一個數據庫的第一步是仔細的規劃數據庫,設計必須是靈活的、有邏輯的。創建一個數據庫結構的過程被認為是數據模型設計。1. 標識需要的數據; 2. 收集被子標識的字段到表中; 3. 標識主關鍵字字段; 4. 規范數據; 5. 標識指定字段的信息; 4.3修改已建的數據庫 數據庫的修改分為;添加、編輯和刪除記錄。這三種操作均可由Visual Basic創建的程序來完成,下面的章節將詳細描述實現的具體方法。 第五章 可行性分析 學生信息,作為一個學校,就有一定的工作量存在,而學生信息,它的工作量可能是其它信息工作量的幾倍,班級的增加、班級的查找、班級的修改;學生檔案;課程管理;成績管理;繳費管理;統計等等,每個信息的數據都在不斷地變化著,如果采用人工的方式進行操作,那么,一天的工作量,足以讓人覺得比較繁瑣,吃不消。針對這樣的情況,采用讓數據的查詢變得簡單化,數據變的更讓每個人都在任何時刻都可以了解到。學生信息管理系統是為本校開發的,本系統所采用的語言是Visual Basic,用Microsoft Access 2000數據庫完成。該系統總體有四部分組成,包括學生信息查詢、教務信息維護、學生選課及用戶管理。通過本系統,把本校內部查詢學生信息、教務信息、學生選課各個環節進行有效地計劃、組織和控制。通過本校內部的信息,依據統一數據信息進行管理,把任何一塊信息所產生的數據變動及時地反映給其它相關信息,做到數據共享。本系統主要信息流程為:教務信息維護接受學生的信息,學生信息查詢根據教務信息維護的學生信息做出對所接收的信息合理性進行判斷,并交于信息維護進行相應的修改,再把信息存入數據庫中。學生選課是對學生進行相應選擇自己相關的課程。最后進行打印。采用本系統,能夠使整個系統內部所有信息的工作簡化,提高工作效益。由于采用統一的數據信息,使相關資料能夠快速地查詢所需的數據、資料及其它信息的,使信息快速高效運行。 本系統中使用到的數據表主要有班級表、成績表、繳費表、課程表、學生檔案、用戶資料,由這六個表,組成了名為信息的數據庫(如圖一)。其中學生檔案是本系統主要的(圖一) 一張表,所有信息都是根據這張學生檔案進行有關的操作,主要的字段有:學號、姓名、年級、專業、性別、出生年月、民族、籍貫、政治面貌、家庭地址、郵政編碼、聯系電話、入學時間、備注。其中日期的數據類型為日期/時間天型,其它的數據類型為文本型;成績表中字段為:學號、姓名、年級、專業、學期、考試時間、考試科目、考試地點、課程性質、科目分數、違紀類型、備注;課程表中字段為:專業、年級、學期、課程名稱、教材、任課老師、課時、上課地點、課程性質、考試性質;用戶資料中的字段包括:用戶名、密碼、身份。 數據庫與VB的連接:本系統的數據鏈接采用的是ADO方法,打開控制面板,打開ODBC數據源圖標,選擇“系統DSN”標簽,點擊“添加”按鈕,在彈出的“創建新數據源”對話框中選擇名稱為“Microsoft Access Drive(*.mdb)”,點擊“完成”按鈕,在ODBC Microsoft Access 安裝對話框中在數據源名中輸入信息,在數據庫這個框中,單擊“選擇”按鈕,在彈出的選擇數據庫這一對話框架中,在驅動器下拉列表框中選擇本系統數據庫所在驅動器,在目錄中選擇庫所在的文件夾,在文件類型中選擇選“Access數據庫(*.mdb)”,在數據庫名中選擇本系統的數據庫,點擊“確定”按鈕即完成數據鏈接。 在VB中,用ADODC鏈接數據庫,用DataGrid或DATA將庫中的數據在界面中顯示出來,本系統采用DataGrid。在界面上右擊Adodc控制,在彈出的快捷菜單中選擇屬性,在屬性對話框中,在“屬性”這一標簽中,選中單選框“Use ODBC Data Source Name”,并在下拉文本框中選擇已經配置好的數據源名信息,再在“RecordSoure”標簽中,在Commard Text(SQL)文本框中輸入查詢語句,如:select * from 學生檔案。同時,將桌面的DataGrid控件選中,在屬性框中,將它的Datasoure設為Adodc。我們可以設置DataGrid控件的外觀:選中該控件,右擊,在彈出的快捷菜單中選擇“檢索字段”,在彈出的對話框中單擊“確定”,這時,表格中出現了表的字段。然后再右擊,同樣,在彈出的快捷菜單中選擇“編輯”,我們就可以所在的表格的寬度進行調整。 第六章 系統(查詢模塊)總體規劃 6.1系統功能(查詢模塊)1. 查詢信息的情況; 2. 判斷信息是否符合要求; 3. 將符合條件的信息進行打印; 6.2流程圖 學生注冊 基本信息輸入 學籍信息管理 班級管理 班級課程設置 課程基本信息 班級課程管理 成績信息輸入 成績信息管理 班級設置 第七章 系統具體實現 7.1各功能的實現 7.1.1課程管理:課程設置(如:界面如圖二)(圖二) 運行程序后,進入課程管理模塊,課程管理模塊的第一塊是課程設置,在這模塊中可以把專業、年級、學期、課程名稱、教材、任課老師、課時、上課地點、課程性質和考試性質等信息輸入,以便使用。結束語 學生信息管理系統(課程設置和打印統計)的完成,它在審核這一功能中能夠對不同情況的資料進行設置和打印,針對需要的信息進行設置和打印。 后記 本系統能夠順利完成,非常感謝指導老師陳志衛老師,同時,也感謝和我一起合作完成本系統的另兩位同學。對于本人來說,通過這次畢業設計,也是對自己在這三年學習的一個檢驗和平時學習的一種結累,可以在學習中提高自己,也充分體現學有所用,學以致用的學習倡導。 在此,我對三年來輔導過我的各位任課老師深表感謝 主要參考文獻 本系統的過程中,主要的參考文獻有: 《Visual Basic6.0》 林陳雷 人民郵電出版社 《面向對象程序設計系列教材》 龔沛曾 高等教育出版社 《Visual Basic6.0編程實例精解》 何文俊 《學用Visual Basic 編程》 潭 浩 西安電子科技大學出版社 《Visual Basic6.0 數據庫開發與專業應用》 敬 錚 國防工業出版社 《Visual Basic6.0 數據庫程序設計高手》 溫賢發 科學出版社 目 錄 摘要 隨著電腦的普及與使用,現在的管理也提升了一個檔次,漸漸實現了無紙化辦公,即從原來的人工記錄管理模式轉變為電腦一體化管理。高校是科研的陣地,后勤的學生信息管理系統也應該一改傳統的人工管理,更加信息化,時代化,節省人力物力,提高效率。基于這一點,我設計了學生信息管理系統的方案。 學生信息管理系統,是以高校的管理方式為實例而設計的一種實用型管理系統。本系統最大的特點是通用性、簡單操作性,適用于同行業以及一些同類型的企業管理。隨著學校寄宿人員的增多,學生信息管理系統人員的負擔越來越重,為了讓所有學生信息管理系統人員能從繁重的工作中解脫出來,實現無紙化辦公;使工作更有條理,更方便,更有效率而開發出這套學生信息管理系統軟件。 關鍵詞:信息、管理、實用性、高校 前言 從2012年3月27日開始,我們進行了為期一周的軟件工程課程設計選題工作。在這一周我確定了我的課程設計題目:學生信息管理系統。 確定設計題目之后,我先做了一些準備工作,借閱必要的書籍與材料,通過互聯網以及其他媒介收索了關于學生信息管理系統的相關知識,然后進行針對性的學習。首先就是開發此類項目的背景。當前,學生信息管理體制相對比較落后。主要表現在以下幾個方面:1.高校現行的管理體制不能完全適應國有的管理發展的需要。2.信息管理人員超編現象普遍存在。 3、高校的信息管理大多數都還停留在初級的計算機管理上。對于大量的數據和龐大的數據結構,簡單的用EXCEL表格來記錄是遠遠無法滿足信息的規模的。必須實行現代化信息管理,定制專業的信息管理軟件來進行相關的管理。 4、學生信息公開化不夠。高校的精密儀器設備一般都比較貴重,學生的信息如不能得到有效的共享,將會嚴重制約設備的使用效率,甚至導致重復購買。一套完整的網絡系統將會讓這個問題迎刃而解。 在需求分析階段,我對學生信息管理系統進行了系統功能分析。系統功能包括登陸、學生查詢自己的信息、管理員的日常管理、教師的登陸、查詢等幾部分。 接著在系統設計和詳細設計階段期間,因為需要自學和探索的內容與軟件較多,所以我發揮積極主動精神投入課程設計和開發活動。除了老師正式安排的課程設計時間之外,還充分利用課余時間,向善長這方面的同學進行請教和互相探討,力爭獲得最大收益。在需求分析的基礎上,考慮經濟、技術和運行環境等各方面條件,確定系統的總體結構和系統各組成部分的技術方案,合理選擇計算機和通信的軟硬件設備,提出系統的實施計劃。內容主要包括學生學校管理系統總體結構設計、系統流程設計等等。根據系統的邏輯模型,完成數據流程圖等的設計。使我對這些開發設計的軟件應用工具運用和掌握的更加熟練。 員。每個人都有唯一的一個用戶名,每個用戶名都有與之對應的密碼,如果用戶名和密碼不一致,則無法登陸主界面。如果用戶輸入錯誤可以單擊“重臵”按鈕,重新輸入。輸入完整單擊“確定”按鈕進入主界面。 圖1:登陸界面 2.2.2 主界面用例描述 用戶通過下拉列表框選擇身份,可以是學生、教師或者管理員。用戶選擇身份以后,輸入自己的用戶名和密碼。系統通過認證后,出現學生信息管理系統主界面。通過系統驗證用戶進入學生信息管理主界面,在主界面中我們可以看到登陸學生的基本信息,學生所修課程的信息。用戶可以通過“查找”按鈕看到所查找學生的信息。如圖2: 圖2:主界面 2.2.3 修改密碼用例描述 登陸到主界面中,我們可以看到在主界面的右側 圖3:修改密碼界面 2.2.4 選修課信息用例描述 用戶單擊“選修課信息”按鈕,進入到選修課信息界面。在選修課信息界面中我們可以看到本學期所有可選的課程信息。學生選擇選修課程表的課程,在界面的左下角會出現對應的課程詳細信息。單擊“選修”,就可將所選課程添加到列表框里。單擊“退選”按鈕,那么已選課程將從所選課程列表里刪除,同時退選課程里將出現退選的課程,單擊退選就可以退選此課程了。單擊“確定”按鈕,保存選修課信息。用戶還可以通過“查看”按鈕查看歷年來的所選修的課程情況。如圖4所示: 圖4:選修課信息 2.2.5 個人信息用例描述 在主界面的學生基本信息框下面有兩個按鈕,一個是“查看更多信息”一個是“修改基本信息”。學生、教師、管理員都可以在主界面單擊“查看更多信息”按鈕,進入“個人信息”界面里查看個人基本的信息。管理員可以對這些進行修改,并且只限管理員修改。如圖5。 圖5:個人信息界面 2.2.6 修改學生信息用例描述 管理員可以單擊修改按鈕對學生信息進行修改,當用戶是學生或者老師時,修改按鈕對其不可用。 管理員進入個人信息界面時,單擊修改按鈕就可以進入到修改個人信息界面,對學生的信息進行修改。單擊“確定”按鈕保存。如圖6: 圖6:修改個人信息界面 2.2.7 查看、修改課程信息用例描述 在主界面中我們還可以看到學生所修課程信息情況。這里列出了本學期該學生所修的所有具體課程,每個具體課程占一行,單擊“具體課程信息”按鈕進入 “課程信息”界面,用戶可以看到完整的課程號、課程名、授課教師、學分信息。同時可以通過選擇不同學年的時間段來查看相應學年的課程信息。如圖7: 教師和管理員有權對課程信息進行修改,如果要修改學生課程信息可以單擊“修改”按鈕,進入到“修改課程信息”界面,這里列出可課程名、課程號、任課教師等一系列與課程有關的信息。單擊“確定”可以保存修改的信息并退出。如圖8: 圖7:查看課程信息界面 圖8:修改課程信息 2.2.8 考勤表用例描述 在主界面上單擊“考勤信息”進入到“考勤表”的界面。系統給出所查找學生的考勤情況。其中包括住宿考勤與課堂考勤兩部分。并且最上方有學生的住宿信息以及基本信息。如圖9所示: 圖九:考勤表信息界面 2.2.9 獎懲表用例描述 在主界面,單擊“獎懲信息”按鈕。進入獎懲表界面,這里給出了歷年的獎勵與懲罰信息以及學生的基本信息。如果單擊“修改”按鈕可以對學生獎懲項進行添加、刪除、修改等操作,此操作只能由管理員進行。學生信息管理系統給出相應的學生的獎懲情況。學生單擊個人信息界面上的“獎懲”按鈕,進入到獎懲表的界面。教師在查找到相應的學生信息后可以通過“獎懲”按鈕來查看該生所有的獎勵與懲罰項。如圖10: 圖10:獎懲表信息界面 2.2.10 修改獎懲信息用例描述 管理員可以通過“修改”按鈕進入到“修改獎懲信息”界面。可以對學生的獎懲信息直接進行修改。如圖11: 圖11:修改獎懲信息界面 3.2.2 修改密碼時序圖 用戶進入主界面,單擊“修改密碼”按鈕進入“修改密碼”界面。輸入相應的修改信息,系統檢測輸入是否完整、確認密碼是否與新密碼一致、舊密碼是否正確。檢測通過,顯示成功信息。如圖二所示: 圖2:修改密碼時序圖 3.2.3 選修課信息時序圖 學生在主界面單擊“選修課信息”進入選修課信息界面,此界面上顯示了所有可選的課程信息,這些信息來自選修課信息表。單擊某一課程,在詳細課程信息里顯示具體課程信息,課程的具體信息來自模板課程信息表。如圖三所示: 圖3:選修課信息時序圖 3.2.4 退選選修課時序圖 當學生選修了某一課程時,該課程也許與該生課時或其他原因有所沖突而不能選修,這時應有提示,并讓該生退選改課程。學生單擊“退選”按鈕,系統提示是否退選,單擊“是”則在學生的選修課信息表里移除這個選課項。如圖四所示: 圖4:退選選修課時序圖 3.2.5 查看基本信息時序圖 學生進入主界面后,主界面顯示了學生的個人信息,單擊“查看更多信息”按鈕,進入“個人信息界面”,此界面中顯示的信息來自學生的基本信息表。如圖五所示: 圖5:查看基本信息時序圖 3.2.6 修改個人信息時序圖 在個人信息界面中單擊“修改”按鈕,進入到修改學生信息界面,修改界面的學生信息也是來自學生的基本信息表,當用戶單擊修改時,系統提示是否修改,單擊“是”,系統修改基本信息項。并保存。如圖六所示: 圖6:修改個人信息時序圖 3.2.7 課程信息時序圖 用戶進入主界面,單擊“具體課程信息”按鈕,進入到課程信息界面。在這里顯示了具體的課程信息。此信息來自個人課程信息表。如圖七所示: 圖7:課程信息時序圖 3.2.8 修改課程信息時序圖 管理員或者教師在課程信息界面單擊“修改”按鈕或者從主界面單擊“修改課程信息”按鈕,進入到修改課程信息界面,當用戶單擊修改時,系統檢測信息是否完整,并提示是否修改,單擊“是”,系統這時修改個人課程信息表的信息項。如圖八所示: 圖8:修改課程信息時序圖 3.2.9 考勤表時序圖 用戶在主界面單擊“考勤信息”進入考勤表界面。在考勤表界面中顯示學生的出勤信息。此信息來自學生的住宿考勤表和課件考勤表。如圖九所示: 圖9:考勤表時序圖 3.2.10 獎懲表時序圖 用戶在主界面單擊“獎懲信息”進入獎懲表界面,此界面顯示該生所有的獎懲情況。這些信息來自于學生的獎懲表。如圖十所示: 圖10:獎懲表時序圖 3.2.11 修改獎懲表信息時序圖 當管理員單擊修改時,進入修改獎懲信息界面,這里顯示的信息同樣來自獎懲表。當單擊“修改”時,系統檢測信息是否完整,提示是否修改,單擊“是”,系統修改獎懲信息項,并提示修改成功。如圖十一: 圖11:修改獎懲信息時序圖 總結 從3月27日開始,我們進行了將近三個月的課程設計。通過這次課程設計,我拓寬了知識面,鍛煉了能力,綜合素質得到較大提高。安排課程設計的基本目的,在于通過理論與實際的結合、人與人的溝通,進一步提高思想覺悟。尤其是觀察、分析和解決問題的實際工作能力,以便培養成為能夠主動適應社會主義現代化建設需要的高素質的復合型人才。作為整個學習體系的有機組成部分,課程設計雖然安排在了三個月的時間進行,但并不具有絕對獨立的意義。它的一個重要功能,在于運用學習成果,檢驗學習成果。運用學習成果,把課堂上學到的系統化的理論知識,嘗試性地應用于實際設計工作,并從理論的高度對設計工作的現代化提出一些有針對性的建議和設想。檢驗學習成果,看一看課堂學習與實際工作到底有多大距離,并通過綜合分析,找出學習中存在的不足,以便為完善學習計劃,改變學習內容與方法提供實踐依據。在一個星期的課程設計之后,我們普遍感到不僅實際動手能力有所提高,更重要的是通過對軟件開發流程的了解,進一步激發了我們對專業知識的興趣,并能夠結合實際存在的問題在專業領域內進行更深入的學習。 在這次設計中遇到了很多實際性的問題,在實際設計中才發現,書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。一切問題必須要靠自己一點一滴的解決,而在解決的過程當中你會發現自己在飛速的提升。對于學生信息管理系統,主要是解決程序設計中的問題,而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創新能力,它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對系統的結構很熟悉。因此可以說系統的設計是軟件和硬件的結合,二者是密不可分的。通過這次課程設計我也發現了自身存在的不足之處,雖然感覺理論上已經掌握,但在運用到實踐的過程中仍有意想不到的困惑,經過一番努力才得以解決。 我覺得作為一名學習軟件工程的學生,這次課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對于這門課懂的并不 多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這三個月的“學習”,在老師、同學的幫助和講解下,漸漸對這門課逐漸產生了些許的興趣,自己開始主動學習并逐步從基礎慢慢開始弄懂它。同時,在這里感謝我們的指導老師彭博老師的悉心解惑和指導。第二篇:學生信息管理系統設計報告
第三篇:學生信息管理系統
第四篇:學生信息管理系統
第五篇:學生信息管理系統