學(xué)生成績管理系統(tǒng) 課程設(shè)計(jì)
課程設(shè)計(jì)報(bào)告課程名稱 Visual C#.Net 程序設(shè)計(jì)教程 項(xiàng)目名稱 學(xué)生成績管理系統(tǒng) 班級與班級代碼 09信管一班 實(shí)驗(yàn)室名稱(或課室) S-403 專 業(yè) 信息管理與信息系統(tǒng) 任課教師 朱若磊 學(xué) 號: 09251101121 姓 名: 李建波 提交日期: 2012 年 6 月 28 日 廣東商學(xué)院教務(wù)處 制姓名 李建波 報(bào)告成績 評語: 指導(dǎo)教師(簽名) 年 月 日說明:指導(dǎo)教師評分后,實(shí)驗(yàn)報(bào)告交院(系)辦公室保存。.NET程序設(shè)計(jì)開發(fā)課程設(shè)計(jì)項(xiàng)目任務(wù):(本人)一、項(xiàng)目名稱學(xué)生成績管理系統(tǒng)二、項(xiàng)目背景 在21世紀(jì)的科技時(shí)代,科學(xué)技術(shù)突飛猛進(jìn),計(jì)算機(jī)已經(jīng)不僅是在科技上應(yīng)用,而且在生活中也是同樣得到了廣泛在應(yīng)用。如今,不管是小學(xué),初中,高中,甚至是很多大學(xué)生的學(xué)生成績管理基本上是靠人工進(jìn)行管理,但隨著時(shí)間的變化,學(xué)校規(guī)模的擴(kuò)大,有關(guān)學(xué)生成績管理工作和所涉及到的數(shù)據(jù)量越來越大越來越多,大多數(shù)學(xué)校不得不靠增加人力,物力,財(cái)力來進(jìn)行學(xué)生成績管理。但是人工管理成績檔案具有效率低,查找麻煩,可靠性不高,保密性低等因素。因此開發(fā)出一個(gè)不僅僅是適用于大中專院校以及其它高校通用的學(xué)生成績管理系統(tǒng)是必要的。 本團(tuán)隊(duì)就此開發(fā)一個(gè)學(xué)生成績管理系統(tǒng),采用計(jì)算機(jī)對學(xué)生成績進(jìn)行管理,以進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水平,為廣大教師和學(xué)生提高工作效率,實(shí)現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化,規(guī)范化和自動化。 三、開發(fā)環(huán)境分析使用Microsoft Visual Studio 2005開發(fā)、使用C#.NET語言編程,后臺數(shù)據(jù)庫選擇SQL Server 2005。四、項(xiàng)目要求設(shè)計(jì)一個(gè)比較完善的學(xué)生選課管理系統(tǒng),其中要求后臺的數(shù)據(jù)庫利用SQL Server來完成(可以使用.NET自帶的SQL Express),功能具體要求如下:(1)登錄功能;(2)學(xué)生信息管理功能;(3)課程信息管理功能;(4)學(xué)生成績管理功能;(5)實(shí)現(xiàn)將查詢結(jié)果保存到硬盤的功能;(6)修改相關(guān)數(shù)據(jù)庫結(jié)構(gòu)并據(jù)此實(shí)現(xiàn)基本選課功能(7)任選(1)(4)項(xiàng)中的一項(xiàng),將其利用ASP.NET來實(shí)現(xiàn);設(shè)計(jì)項(xiàng)目成立與項(xiàng)目實(shí)施一、 項(xiàng)目組長組長:李建波二、 設(shè)計(jì)項(xiàng)目分工小組成員:彭健鋒,陳志明,張?zhí)?,周敏?qiáng),成思謀,李建波。小組分工情況如下:一、項(xiàng)目組長:組長:李建波二、設(shè)計(jì)項(xiàng)目分工:小組成員:彭健鋒,陳志明,張?zhí)?,周敏?qiáng),成思謀,李建波。小組分工情況如下:1、張?zhí)帲贺?fù)責(zé)登錄功能:Login.cs;并將其利用ASP.NET來實(shí)現(xiàn);2、彭健鋒:負(fù)責(zé)學(xué)生信息添加(StudentMsgFrm.cs)、管理功能(StudentFrm.cs);3、陳志明:負(fù)責(zé)課程信息添加(CourseMsgFrm.cs)和管理功能(CourseFrm.cs);4、成思謀:負(fù)責(zé)學(xué)生成績管理功能(ScoreMsgFrm.cs);5、周敏強(qiáng):實(shí)現(xiàn)將查詢結(jié)果保存到硬盤的功能(select)(統(tǒng)一數(shù)據(jù)庫);6、李建波:實(shí)現(xiàn)學(xué)生基本選課功能(整合全部功能)(selectcourse)。三、 項(xiàng)目實(shí)施過程:1、數(shù)據(jù)庫設(shè)計(jì)和連接是使用SQL Server 2005設(shè)計(jì)的,在.Net用connectionString連接數(shù)據(jù)庫。關(guān)鍵代碼如下: InitializeComponent(); connString = "Data Source=local;Initial Catalog=MySchool;Integrated Security=True" connection = new SqlConnection(connString); catch (Exception ex) MessageBox.Show(ex.Message,"數(shù)據(jù)庫操作出錯(cuò)了!", MessageBoxButtons.OK,MessageBoxIcon.Exclamation); 2、實(shí)現(xiàn)學(xué)生基本選課功能(整合全部功能),新建一個(gè)selectcourse.cs窗體,在窗體添加3個(gè)label控件,1個(gè)listbox控件,1個(gè)Richtxtbox和2個(gè)Button,設(shè)置兩個(gè)數(shù)據(jù)源MySchoolDataSet1,MySchoolDataSet22.1按下列要求修改屬性項(xiàng):控件屬性屬性設(shè)置控件屬性屬性設(shè)置Label1NameLabelListboxNameCdoclassText名字Label2NameLabel2RichtxtboxNameRichtxtboxText信息如下:Label3NameLabel3Button1NameButton1TextText選他了MySchoolDataSetButton2NameButton2Text退出如下圖:2.1圖:2.1界面設(shè)計(jì)2.4設(shè)計(jì)的關(guān)鍵代碼:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using MySchool;using System.Data.SqlClient;namespace MySchool public partial class selectcourse : Form public selectcourse() InitializeComponent(); private void selectcourse_Load(object sender, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“mySchoolDataSet2.CourseMsg”中。您可以根據(jù)需要移動或移除它。 this.courseMsgTableAdapter1.Fill(this.mySchoolDataSet2.CourseMsg); / TODO: 這行代碼將數(shù)據(jù)加載到表“mySchoolDataSet.CourseMsg”中。您可以根據(jù)需要移動或移除它。 this.courseMsgTableAdapter.Fill(this.mySchoolDataSet.CourseMsg); string connString = "Data Source=(local);Initial Catalog=MySchool;Integrated Security=True" SqlConnection connection = new SqlConnection(connString); string sql = String.Format("select cc from tablea where enroll=1"); connection.Open(); SqlCommand command = new SqlCommand(sql, connection); string num =(string )command.ExecuteScalar(); string message = String.Format("你好! 0先生", num); label3.Text = num; label1.Text = message; connection.Close(); private void aa_Click(object sender, EventArgs e) string connString = "Data Source=(local);Initial Catalog=MySchool;Integrated Security=True" SqlConnection connection = new SqlConnection(connString); string sql = String.Format("update tablea set enroll=0 where enroll=1"); connection.Open(); SqlCommand command = new SqlCommand(sql, connection); command.ExecuteNonQuery(); this.Close(); private void cboClass_SelectedIndexChanged(object sender, EventArgs e) string kk = cboClass.Text; string connString = "Data Source=(local);Initial Catalog=MySchool;Integrated Security=True" SqlConnection connection = new SqlConnection(connString); string sql = String.Format("select CourseClass from CourseMsg where CourseName=0",kk); string sql2 = String.Format("select Credit from CourseMsg where CourseName=0", kk); string sql3 = String.Format("select PrelectionCredit from CourseMsg where CourseName=0", kk); string sql4 = String.Format("select ExperimentCredit CourseMsg where CourseName=0", kk); connection.Open(); SqlCommand command = new SqlCommand(sql, connection); SqlCommand command2 = new SqlCommand(sql2, connection); SqlCommand command3= new SqlCommand(sql3, connection); SqlCommand command4 = new SqlCommand(sql3, connection); string num = (string)command.ExecuteScalar(); int num2 = (int)command2.ExecuteScalar(); int num3 = (int)command3.ExecuteScalar(); int num4 = (int)command4.ExecuteScalar(); string message = String.Format("0", num); richTextBox1.Text = message; label2.Text = "學(xué)分"+num2+"理論課時(shí):"+num3+"實(shí)驗(yàn)課時(shí)"+num4; connection.Close(); private void button1_Click(object sender, EventArgs e) string connString = "Data Source=(local);Initial Catalog=MySchool;Integrated Security=True" SqlConnection connection = new SqlConnection(connString); string sql = String.Format("INSERT INTO ScoreMsgMe(StudentName,CourseName,Score) VALUES(0,1,2)", label3.Text, cboClass.Text, 0); connection.Open(); SqlCommand command = new SqlCommand(sql, connection); command.ExecuteNonQuery(); 四、 結(jié)果演示: 數(shù)據(jù)庫設(shè)計(jì)1 ER圖E-r圖,如上圖2 數(shù)據(jù)庫表學(xué)生課程關(guān)系圖User表結(jié)構(gòu)列名數(shù)據(jù)類型說明UserNamenvarchar(50)管理員用戶名,不允許為空,主鍵passwordnvarchar(50)管理員密碼,不允許為空StudentMsg表結(jié)構(gòu)列名數(shù)據(jù)類型說明StudentNoint(4)學(xué)號,主鍵,標(biāo)識列StudentNamenvarchar(50)學(xué)生姓名,不允許為空sexnchar(10)性別departmentnvarchar(50)院系specialitynvarchar(50)專業(yè)Hobbynvarchar(200)興趣愛好passwordnvarchar(8)學(xué)生登錄密碼,默認(rèn)值1111enrollbit(1)學(xué)生登錄狀態(tài),默認(rèn)值為0CourserMsg表結(jié)構(gòu)列名數(shù)據(jù)類型說明CouresIdint(4)課程編號,主鍵,標(biāo)識列CourseNamenvarchar(50)課程名稱,不允許為空CourseClassnvarchar(50)課程類別Requiredbit(1)是否必修Creditint(4)學(xué)分PrelectionCreditint(4)理論學(xué)時(shí)ExperimentCreditint(4)實(shí)驗(yàn)學(xué)時(shí)ScoreMsg表結(jié)構(gòu)列名數(shù)據(jù)類型說明StudentNoint(4)學(xué)號,主鍵,外鍵CourseIdint(4)課程編號,主鍵Scoreint(4)成績User表數(shù)據(jù)StudentMsg表數(shù)據(jù)CourseMsg表數(shù)據(jù)ScoreMsg表數(shù)據(jù)2、結(jié)果演示:學(xué)生登錄圖4.2.1學(xué)生應(yīng)用界面 圖4.2.2學(xué)生選課信息:圖4.2.3選好課程后,點(diǎn)擊“選它了”按鈕,選課成功。信息記錄到表上。選課五、課程設(shè)計(jì)總結(jié): 本次實(shí)驗(yàn)是要團(tuán)隊(duì)建立一個(gè)學(xué)生成績管理系統(tǒng),以實(shí)現(xiàn)快捷,高效,準(zhǔn)確保存學(xué)生的基本信息,課程信息,成績信息,還有實(shí)現(xiàn)選課功能。