




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于C#NET和SQLServer的數據庫應用系統開發實訓報告實訓題目:學生信息管理系統一、課程設計目的課程設計是主要實踐性教學環境之一,是圍繞所學一門課程,綜合運用所學知識進行實際應用設計的綜合分析和設計的訓練。通過C#.NET程序設計課程實習,以進一步鞏固所學C#.NET程序設計和SQLServer2005數據庫知識,初步掌握應用C#和數據庫開發應用系統程序必備的技能,為今后進一步學習和從事軟件方面的職業打下一定的基礎。二、課程設計的任務、內容和要求1、任務學生根據老師指定的或自己擬訂的經老師認可的運用C#和SQLServer2005知識進行中小型信息管理系統開發的項目,最終提交的解決方案
2、、課程設計報告和完整項目軟件。三、實驗步驟1、需求分析需求分析的重點在于調查、收集與分析用戶在數據管理中的信息要求、處理要求、安全性、與完整性的要求。然后在進行概念結構設計階段。第一步:初始化工程,這一階段的任務是從目的的描述和范圍描述開始,確定建模目標;第二步:定義實體:實體集成員都有一個共同的特征和屬性集,可以從收集的源材料基本的數據表中間接或直接的標識出大部分的實體;第三步:定義聯系,根據實際的業務需求和規劃,使實體聯系矩陣來標識實體間的二元關系;第四步:定義碼,唯一標識每一個實體的實例,從候選碼中確定主碼;第五步:定義屬性,確定屬性的所有者,定義非主碼屬性:第六步:定義其他對象和規則,
3、定義數據類型、長度、精度、是否非空、默認值、約束規則等。1.1功能需求分析根據數據庫中存儲的數據對登錄的用戶賬號進行驗證,再進行判斷是否授予訪問權限。管理員可以根據需要,對學生的基本信息進行查看、添加、修改以及刪除,詳細操作如下:(1)添加學生信息的功能主要包括對學生信息的輸入,包括待輸入學生的學號、姓名、年齡、性別、專業名。(2)查詢學生信息的功能就是對已經添加的學生信息按學號進行查看,有利于管理者對學校學生信息的了解。(4)刪除學生信息的功能是將整個系統的學生信息進行按學號進行刪除。(5)修改學生信息的功能是輸入要修改學生的學號分別修改學號、姓名、年齡、性別、所在學院和專業名。管理員可以根
4、據需要,對課程的基本信息進行查看、添加、修改以及刪除,詳細操作如下:(1)課程信息的全部查詢和按條件查詢;(2)課程信息的添加和刪除.在數據庫中要進行學生信息的編寫包括學生的基本信息:學號、姓名、性別、出生日期和所在系;(3)課程基本信息:課程名、課程號、先行課和學分;(4)用戶信息:用戶名、用戶密碼和權限。學生根據自己的需要,對學生基本信息進行查看具體功能有(1)對課程表的查看、打印。(2)對自己信息的修改。為了編程的方便關系名和屬性名通常用英文命名,下面是用英文命名的關系模式:Course(courseid,coursename,ecourse,coursepno);SC(stuid,co
5、urseid,grade);Student(sno,sName,sex,Birthday,sDept,remark)User(uname,upass,qx)1.2性能需求分析a)穩定性:軟件應具備長期持續工作的能力。b)安全性:有良好的用戶身份認證體制和靈活的密碼更改模塊。c)實用性:用戶界面做到直觀、友好,業務人員只需經過簡單培訓即可操作。d)可靠性:采用良好的操作軟件和數據庫,確保數據的一致性和完整性,并使軟件免受病毒感染。1.3業務流程的分析通過業務流程的分析將業務流程邏輯與實現各業務的應用分離、協調流程參與者的相互關系、集成內部和外部資源以及監控和分析流程性能,實現對業務流程整個生存周
6、期的控制。它負責解釋流程建模工具定義的業務流程邏輯,把任務分派給執行者,并根據任務執行的返回結果決定下一步的任務,控制并協調各種復雜工作流程的執行并且同步各個客戶端的反應,根據組織機構模型中所定義的崗位分派策略獲取實際的執行者,并同時獲得所需的組織信息。本軟件的業務流程是:用戶登錄軟件前首先判斷用戶名和密碼是否正確,如果不正確就停留在登錄界面重新輸入;如果輸入的信息正確就可以順利的進入服務器端進行軟件管理。1.3.1軟件數據流圖數據流圖(DFD)是一種描述數據流和加工的圖形表示。當數據輸入到軟件后,經過一系列變換(加工),最后輸出新的數據。所以它服務于兩個目的:(1)指明數據在軟件中移動時如何
7、被變換;(2)描述對數據流進行變換的功能(和子功能)。用戶權限信息用戶基本用戶管理學生信息系統圖1.1軟件數據流圖1.3.2軟件數據字典數據字典最重要的用途是作為分析階段的工具。在數據字典中建立的一組嚴密一致的定義很有助于改進分析員和用戶之間的通信,因此將消除許多可能的誤解。數據字典是關于數據的信息集合,也就是對數據流圖中包含的所有元素定義的集合。經過上述軟件功能分析和需求總結,考慮到將來功能上的擴展,設計如下面所示的數據項和數據結構。(1)學生信息包括的數據項有:學生姓名、學生學號、學生性別、學生生日、專業名稱(2)管理員信息包括的數據項有:賬號名、登錄密碼、權限1.4數據需求分析得到上面的
8、數據項和數據結構以后,就可以設計出能夠滿足用戶需求的各種實體,以及它們之間的關系。根據上面的設計規劃出的實體有:學生實體、管理員實體、課程實體2軟件的設計軟件的數據庫設計從軟件的穩定性方面考慮,本軟件使用SQLServer2005數據庫軟件。結合需求分析中的E-R圖,設計了各數據表。學生表結構列名數據類型長度是否允許為空值默認值說明snochar10否無主鍵snamechar8否無sexchar2是無無birthdaysmalldatetime4是無sdeptvarchar26是無課程表結構列名數據類型長度是否允許為空值默認值說明enochar8否無主鍵cnamevarchar30是無prec
9、rochar10是無credittinyint1是無用戶表結構列名數據類型長度是否允許為空值默認值說明unamechar10否無主鍵upasschar10是無3軟件的實現在數據庫中的配置創建表:進入SQLServerStudio中,在“對象資源管理器”窗口中展開“數據庫”結點,再在展開所選擇的具體數據庫結點OnlineCS,右擊“表”結點,在彈出的快捷菜單中選擇“新建表”命令,此時將進入表設計器,即可進行表的定義;建完表之后,還要創建列名,設置數據類型,設置列是否允許為空。在表設計器的“列名”列中輸入學生表的所有列名;在”數據類型”列中選擇相應的數據類型;在“允許空”列中設置個列是否可以為空,
10、允許就打勾,不允許就不打;并且還要設置主鍵,主鍵的確定是唯一可以確定一個元組和其他元組不同的屬性組。學生表、課程表、用戶表和學生課程表都是由以上方法創建的。考慮到不同用戶的登錄界面不同因此要進行權限的設置如:學生登錄時出現的是學生的登錄界面,老師登錄時出現的是老師的登錄界面這樣就防止了學生會篡改自己的信息,造成了信息的不安全性。在創建完表以后要對表中的列進行數據類型、數據長度、是否允許空值等方面的設置。要注意的是在學生表中對Brithday的設置事日期時間型在User表中對權限的設置是tinyint,在SC表中grade的數據類型的設置要設為smallint其他的根據實際情況來選擇數據的類型和
11、長度。注意在是否允許空值這一方面,主鍵是不允許有空值出現的不然會報錯。由于用戶需要登錄到數據庫中因此要在服務器的安全性里添加用戶,在數據庫中的安全性中添加用戶最后在每個表中右鍵單擊屬性設置每個登錄的權限,綜合考慮各方面的需求jwgl的用戶允許所有的權限,dl的權限為Update和select,student的權限為Update設置好權限后數據庫的任務就完成了,接下來的任務就是運用C#.net來進行編程,用來連接數據庫。在Onlinecs中添加應用在登錄窗體的后臺程序上加上publicstaticstringsqlconn=System.Configuration.ConfigurationMa
12、nager.ConnectionStringsdl.ConnectionString;和usingSystem.Data.SqlClient;以調用數據庫。3.1管理員登陸界面和設計對登錄窗體的設置首先右擊Onlinecs單擊添加Windows窗體命名為loginfrm.cs在其中增加用戶名框,密碼框和兩個按鈕,在后臺的程序中要注意由于是不同的權限登錄因此要通過一個if語句來進行跳轉:privatevoid按條件查詢ToolStripMenuItem_Click(objectsender,EventArgse)antiaojianchaxunkechengtjcxkc=newantiaojia
13、nchaxunkecheng();tjcxkc.Show();this.Hide();privatevoid添加課程ToolStripMenuItem_Click(objectsender,EventArgse)tianjiakechengtjkc=newtianjiakecheng();tjkc.Show();this.Hide();privatevoid刪除課程ToolStripMenuItem_Click(objectsender,EventArgse)shanchukechengsckc=newshanchukecheng();sckc.Show();this.Hide();priva
14、tevoid按條件查詢ToolStripMenuIteml_Click(objectsender,EventArgse)antiaojianchaxunxueshengxinxintjcxxs=newantiaojianchaxunxueshengxinxin();tjcxxs.Show();this.Hide();privatevoid查詢所有ToolStripMenuIteml_Click(objectsender,EventArgse)chaxunsuoyouxueshengxinxicxsyxsxx=newchaxunsuoyouxueshengxinxi();cxsyxsxx.Sho
15、w();this.Hide();privatevoid查詢所有ToolStripMenuItem_Click(objectsender,EventArgse)chaxunsuoyoukechengcxsykc=newchaxunsuoyoukecheng();cxsykc.Show();this.Hide();privatevoid刪除學生信息ToolStripMenuItem_Click(objectsender,EventArgse)shanchuxueshengxinxiscxsxx=newshanchuxueshengxinxi();scxsxx.Show();this.Hide();
16、privatevoid添加學生信息ToolStripMenuItem_Click(objectsender,EventArgse)tianjiaxueshengxinxitjxsxx=newtianjiaxueshengxinxi();tjxsxx.Show();this.Hide();privatevoid課程信息查詢ToolStripMenuItem_Click(objectsender,EventArgse)privatevoid打印課程表ToolStripMenuItem_Click(objectsender,EventArgse)kechengbaobiaobaobiao=newke
17、chengbaobiao();baobiao.Show();this.Hide();privatevoid打印學生表ToolStripMenuItem_Click(objectsender,EventArgse)xueshengbaobiaostudent=newxueshengbaobiao();student.Show();EventArgse)EventArgse)EventArgse)this.Hide();privatevoid查詢登錄信息ToolStripMenuItem_Click(objectsender,gengxinstudentstudent1=newgengxinstu
18、dent();student1.Show();this.Hide();privatevoid更新課程信息ToolStripMenuItem_Click(objectsender,gengxincoursecourse=newgengxincourse();course.Show();this.Hide();privatevoid輸入學生成績ToolStripMenuItem_Click(objectsender,shuruxueshengchengjisr=newshuruxueshengchengji();sr.Show();this.Hide();3.2信息查詢模塊privatevoidb
19、utton1_Click(objectsender,EventArgse)kch=textBox1.Text;kechenghaochaxunkccx=newkechenghaochaxun();kccx.Show();this.Hide();privatevoidbutton2_Click(objectsender,EventArgse)kcm=textBox2.Text;kechengmingchaxunkcmcx=newkechengmingchaxun();kcmcx.Show();this.Hide();publicstaticinti=0;publicstaticintLastNu
20、m=0;publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;publicDataSetdsResult(intcurrentIndex)SqlConnectionconn=newSqlConnection(sqlconn);intpagesize=1;stringstrcmd=select*fromcoursewherecoursenamelike%+antiaojianchaxunkecheng.kcm+%;SqlDataAdapt
21、erda=newSqlDataAdapter(strcmd,conn);DataSetds=newDataSet(course);da.Fill(ds,currentIndex,pagesize,course);returnds;publicintMax()SqlConnectionconn=newSqlConnection(sqlconn);conn.Open();stringstrcmd=selectcount(*)fromcoursewherecoursenamelike%+antiaojianchaxunkecheng.kcm+%;SqlCommandcmd=newSqlCommand
22、(strcmd,conn);returnint.Parse(cmd.ExecuteScalar().ToString();privatevoidkechengmingchaxun_Load(objectsender,EventArgse)LastNum=Max();textBox1.Text=LastNum.ToString();if(LastNum0)DataSetdsNew=dsResult(0);this.textBox2.Text=dsNew.Tables0.Rows00.ToString();this.textBox3.Text=dsNew.Tables0.Rows01.ToStri
23、ng();this.textBox4.Text=dsNew.Tables0.Rows02.ToString();this.textBox5.Text=dsNew.Tables0.Rows03.ToString();antiaojianchaxunkecheng.kcm=dsNew.Tables0.Rows00.ToString();privatevoidbutton1_Click(objectsender,EventArgse)i=0;DataSetdsnew=dsResult(i);this.textBox2.Text=dsnew.Tables0.Rows00.ToString();this
24、.textBox3.Text=dsnew.Tables0.Rows01.ToString();this.textBox4.Text=dsnew.Tables0.Rows02.ToString();this.textBox5.Text=dsnew.Tables0.Rows03.ToString();antiaojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();privatevoidbutton2_Click(objectsender,EventArgse)i-=1;if(i=0)DataSetdsnew=dsResult(i);this.
25、textBox2.Text=dsnew.Tables0.Rows01.ToString();this.textBox3.Text=dsnew.Tables0.Rows02.ToString();this.textBox4.Text=dsnew.Tables0.Rows03.ToString();this.textBox5.Text=dsnew.Tables0.Rows04.ToString();antiaojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();elsei+=1;MessageBox.Show(這已經是第一條記錄了!);pri
26、vatevoidbutton3_Click(objectsender,EventArgse)i+=1;if(i=(LastNum-1)DataSetdsnew=dsResult(i);this.textBox2.Text=dsnew.Tables0.Rows01.ToString();this.textBox3.Text=dsnew.Tables0.Rows02.ToString();this.textBox4.Text=dsnew.Tables0.Rows03.ToString();this.textBox5.Text=dsnew.Tables0.Rows04.ToString();anti
27、aojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();elsei-=1;MessageBox.Show(這已經是最后一條記錄了!);privatevoidbutton4_Click(objectsender,EventArgse)DataSetdsnew=dsResult(LastNum-1);this.textBox2.Text=dsnew.Tables0.Rows01.ToString();this.textBox3.Text=dsnew.Tables0.Rows02.ToString();this.textBox4.Text=ds
28、new.Tables0.Rows03.ToString();this.textBox5.Text=dsnew.Tables0.Rows04.ToString();antiaojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();3.3信息添加模塊publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;privatevoidbutton1_Click(objectsender,Event
29、Argse)privatevoidtianjiaxueshengxinxi_Load(objectsender,EventArgse)privatevoidbutton3_Click(objectsender,EventArgse)trySqlConnectionconn=newSqlConnection(sqlconn);conn.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText=insertintostudent(sno,sname)values(+textBox6.Text+,+textBox7.Text+);cmd.Connect
30、ion=conn;cmd.ExecuteNonQuery();MessageBoxShow(添加成功!);catch(Exception)MessageBox.Show(添加失敗!”);privatevoidtianjiaxueshengxinxi_Load_1(objectsender,EventArgse)SqlConnectionconn=newSqlConnection(sqlconn);stringstrcmd=select*fromstudent;SqlDataAdapterda=newSqlDataAdapter(strcmd,conn);DataTabledt=newDataT
31、able();da.Fill(dt);dataGridView2.DataSource=dt.DefaultView;3.4信息刪除模塊publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;DataSetds=newDataSet();privatevoidbutton1_Click(objectsender,EventArgse)trySqlConnectionconn=newSqlConnection(sqlconn);conn.O
32、pen();SqlCommandcmd=newSqlCommand();cmd.CommandText=deletefromcoursewherecourseid=+textBox1.Text+cmd.Connection=conn;cmd.ExecuteNonQuery();MessageBoxShow(刪除成功!);catch(Exceptionee)MessageBox.Show(ee.Message.ToString();privatevoidshanchukecheng_Load(objectsender,EventArgse)SqlConnectionconn=newSqlConn
33、ection(sqlconn);stringstrcmd=select*fromcourse;SqlDataAdapterda=newSqlDataAdapter(strcmd,conn);DataTabledt=newDataTable();da.Fill(dt);dataGridView1.DataSource=dt.DefaultView;3.5信息修改模塊DataSetds=newDataSet();publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.Conn
34、ectionString;privatevoidgengxincourse_Load(objectsender,EventArgse)SqlConnectionconn=newSqlConnection(sqlconn);stringstrcmd=select*fromcourse;SqlCommandcmd=newSqlCommand(strcmd,conn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=cmd;da.Fill(ds,course);dataGridView1.DataSource=ds.Tables0;priv
35、atevoidbutton1_Click(objectsender,EventArgse)SqlConnectionconn=newSqlConnection(sqlconn);stringstrcmd=select*fromcourse;SqlCommandcmd=newSqlCommand(strcmd,conn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=cmd;da.Fill(ds,course);dataGridView1.DataSource=ds.Tables0;SqlCommandBuilderbuilder=newSqlCommandBuilder(da);da.Update(ds,course);3.5打印報表模塊publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;privatevoi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金華祠堂古建施工方案
- 2024年項目管理績效考核系統試題及答案
- 會計實務運用試題及答案
- 項目管理師考試內容復習試題及答案
- 銀行外部審計及其對內部控制的影響試題及答案
- 證券市場Auditor角色的試題及答案
- 深入了解注冊會計師考試與國際標準的適應性研究試題及答案
- 2024年項目管理專業人士資格認證考試的探索試題及答案
- 2024年檢測微生物變化的重要性試題及答案
- 空氣凈化器產品差異化競爭考核試卷
- 2025年高考作文備考之十大熱點主題及寫作導引
- 《管理學原理》(課件)
- 2025年重慶中考押題道德與法治試卷(一)(含答案)
- 長城汽車2025人才測評答案
- 2025屆上海市浦東新區高三二模英語試卷(含答案)
- 【MOOC】航空燃氣渦輪發動機結構設計-北京航空航天大學 中國大學慕課MOOC答案
- 職業衛生評價考試計算題匯總
- JJF 1318-2011 影像測量儀校準規范-(高清現行)
- 酸洗磷化線材項目建議書范文
- 住院病歷交接登記本
- 沉井工程施工綜合方案
評論
0/150
提交評論