班级档案管理系统(源代码)

合集下载

最详细的学生档案管理系统

最详细的学生档案管理系统

VB高级程序开发学生档案管理系统学生档案管理系统目录一、标准模块(公共部分) (1)1:PublicVar (1)2:OPeratDataBase (1)二、窗体 (3)1:A院设置 (3)2:A系设置 (8)3:A班级设置 (14)4:B基本信息 (21)5:B家庭基本成员信息 (27)6:B学籍报告 (33)7:B学籍异动 (37)8:B学期注册 (42)9:B学生查询 (45)10:C 课程查询 (48)11:C课程分配 (51)12:C 新增课程 (55)13:D成绩单生成 (62)14:D成绩录入 (66)15:D成绩评审 (70)16:E奖惩查询 (74)17:E奖惩单生成 (77)18:E奖惩录入 (79)19:F数据库连接 (84)20:G登录 (85)21:G密码维护 (87)22:G用户管理 (89)23:学生档案管理 (94)一、标准模块(公共部分)1:PublicVarPublic MenuIndex As Integer '保存用户选择的菜单Public LoginSucceeded As Boolean '用户登录标志Public UserID As String '用户IDPublic ConnectionString As String '数据库连接字符串2:OPeratDataBasePublic Function GetConnStr() As String'得到数据库连接字符串,用户可以在此处设置连接字符串'User ID 是数据库用户ID,Password是登陆密码'Initial Catalog是数据库名,Data Source是服务器名称GetConnStr = ConnectionStringEnd FunctionPublic Function OpenConn(ByRef Conn As ADODB.Connection) As Boolean '打开数据库连接,连接成功返回true,出错时返回falseSet Conn = New ADODB.Connection'出错处理On Error GoTo ErrorHandleConn.Open GetConnStrOpenConn = TrueExit FunctionErrorHandle:MsgBox "连接数据库失败!请重新连接!"OpenConn = FalseExit FunctionEnd FunctionPublic Sub ExecuteSQL(ByVal SQL As String, ByRef msg As String)'执行SQL语句Dim Conn As ADODB.ConnectionDim sTokens() As String'出错处理On Error GoTo ErrorHandle'判断SQL语句sTokens = Split(SQL)If InStr("INSERT,DELETE,UPDA TE", UCase((sTokens(0)))) Then '打开数据库连接If OpenConn(Conn) ThenConn.Execute SQLmsg = sTokens(0) & "操作执行成功!"End IfElsemsg = "SQL语句有误:" & SQLEnd IfFinally_Exit:Set rst = NothingSet Conn = NothingExit SubErrorHandle:msg = "执行错误: " & Err.DescriptionResume Finally_ExitEnd SubPublic Function SelectSQL(ByVal SQL _As String, ByRef msg As String) As ADODB.Recordset'执行SQL语句,返回ADODB.RecordsetDim Conn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As String'出错处理On Error GoTo ErrorHandle'判断SQL语句sTokens = Split(SQL)If InStr("SELECT", UCase((sTokens(0)))) Then'打开数据库连接If OpenConn(Conn) ThenSet rst = New ADODB.Recordsetrst.CursorLocation = adUseClientrst.Open Trim$(SQL), Conn, adOpenDynamic, adLockOptimisticSet SelectSQL = rstmsg = "查询到" & rst.RecordCount & " 条记录! "End IfElsemsg = "SQL语句有误:" & SQLEnd IfFinally_Exit:Set rst = NothingSet Conn = NothingExit FunctionErrorHandle:MsgString = "查询错误: " & _Err.DescriptionResume Finally_ExitEnd FunctionPublic Function BatchSelectSQL(ByVal SQL _As String, ByRef msg As String) As ADODB.Recordset'执行SQL语句,返回批处理的ADODB.RecordsetDim Conn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As String'出错处理On Error GoTo ErrorHandle'判断SQL语句sTokens = Split(SQL)If InStr("SELECT", UCase((sTokens(0)))) Then'打开数据库连接If OpenConn(Conn) ThenSet rst = New ADODB.Recordsetrst.CursorLocation = adUseClientrst.Open Trim$(SQL), Conn, adOpenDynamic, adLockBatchOptimisticSet BatchSelectSQL = rstmsg = "查询到" & rst.RecordCount & " 条记录! "End IfElsemsg = "SQL语句有误:" & SQLEnd IfFinally_Exit:Set rst = NothingSet Conn = NothingExit FunctionErrorHandle:MsgString = "批查询错误: " & _Err.DescriptionResume Finally_ExitEnd Function二、窗体1:A院设置(1)界面(2)代码Dim rs As ADODB.RecordsetDim SQL As StringDim msg As StringDim Index As IntegerDim flag As String '判断是新增记录还是修改记录Private Sub Form_Load()Call LoadData '装载数据If rs.RecordCount > 0 ThenCall ShowData '显示数据ElseFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'控件可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True CmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd SubPrivate Function CheckData() As Boolean'检查数据的合法性Dim rst As ADODB.RecordsetDim msgt As Stringmsgt = ""'检查数据非空If Trim(txtItem(0).Text) = "" Thenmsgt = "院代码为空;"ElseIf Not Len(Trim(txtItem(0).Text)) = 2 Thenmsgt = "院代码不是2位;"End IfIf Trim(txtItem(1).Text) = "" Thenmsgt = msgt & " 院名称为空;"End IfIf Not msgt = "" ThenMsgBox (msgt)CheckData = FalseExit FunctionEnd If'检查唯一性SQL = " select * from 院信息表where 院代码='" & Trim(txtItem(0).Text) & "'"Set rst = SelectSQL(SQL, msg)If flag = "Add" And rst.RecordCount > 0 ThenMsgBox ("该院的信息已经存在,重复添加!")rst.CloseCheckData = FalseExit FunctionEnd IfCheckData = True '合法End FunctionPrivate Sub ShowData()'在文本框中显示数据If rs.RecordCount <> 0 And rs.EOF = False ThenFor Index = 0 To 6If rs.Fields(Index) <> "" ThentxtItem(Index).Text = rs.Fields(Index)ElsetxtItem(Index).Text = ""End IftxtItem(Index).Enabled = FalseNext IndexIf IsDate(Trim(txtItem(4).Text)) ThenMe.DTPicker1.Value = Trim(txtItem(4).Text) '时间控件End IfEnd IfEnd SubPrivate Sub LoadData()'装载数据Set rs = NothingSQL = " select * from 院信息表order by 院代码"Set rs = SelectSQL(SQL, msg)Set Me.DataGrid1.DataSource = rsDataGrid1.RefreshEnd SubPrivate Sub CmdMove_Click(Index As Integer) '移动记录Select Case IndexCase Is = 0 '移到第一条记录If Not rs.BOF Then rs.MoveFirstCase Is = 1 '移到上一条记录If rs.RecordCount <> 0 ThenIf rs.BOF = False Then rs.MovePreviousIf rs.BOF = True Then rs.MoveFirstEnd IfCase Is = 2 '移到下一条记录If rs.RecordCount <> 0 ThenIf rs.EOF = False Then rs.MoveNextIf rs.EOF = True Then rs.MoveLastEnd IfCase Is = 3 '移到最后一条记录If rs.RecordCount <> 0 ThenIf Not rs.EOF = True Then rs.MoveLastEnd IfEnd SelectIf rs.RecordCount <> 0 ThenCall ShowData '在文本框中显示数据'按钮可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = TrueCmdCancel.Enabled = False: CmdSave.Enabled = FalseElse'按钮可用性CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = FalseCmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd IfEnd SubPrivate Sub CmdAdd_Click()'清空文本框,文本框可用For Index = 0 To 6txtItem(Index).Text = ""txtItem(Index).Enabled = TrueNext Index'设置标志flagflag = "Add"'设置时间控件txtItem(4).Text = Me.DTPicker1.Value'所有移动按钮不可用For Index = 0 To 3CmdMove(Index).Enabled = FalseNext Index'添加、修改、删除按钮不可用,取消、保存按钮可用CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = FalseCmdCancel.Enabled = True: CmdSave.Enabled = TrueEnd SubPrivate Sub CmdModify_Click()'修改操作If rs.RecordCount > 0 Then'文本框可用,院代码不可以修改For Index = 1 To 6txtItem(Index).Enabled = TrueNext IndextxtItem(0).Enabled = False'设置标志flagflag = "Modify"'移动控件不可用For Index = 0 To 3CmdMove(Index).Enabled = FalseNext Index'添加、修改、删除按钮不可用,取消、保存按钮可用CmdCancel.Enabled = True: CmdSave.Enabled = TrueCmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False ElseMsgBox ("没有可以修改的数据!")End IfEnd SubPrivate Sub CmdDelete_Click()'删除操作On Error GoTo ErrMsgIf rs.RecordCount > 0 Thenmsg = MsgBox("删除该条记录吗?", vbYesNo)If msg = vbYes Thenrs.DeleteCall LoadData '重新装载数据'清空文本框、并不可用For Index = 0 To 6txtItem(Index).Text = ""txtItem(Index).Enabled = FalseNext Index'所有移动控件不可用If rs.RecordCount = 0 ThenFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'按钮可用性处理CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = TrueCmdSave.Enabled = False: CmdCancel.Enabled = FalseMsgBox ("成功删除的数据!")End IfElseMsgBox ("没有可删除的数据!")End IfExit SubErrMsg:MsgBox Err.Description, vbExclamation, "出错"End SubPrivate Sub cmdCancel_Click()'取消操作Call ShowData'所有移动控件可用For Index = 0 To 3CmdMove(Index).Enabled = TrueNext Index'修改、删除、添加按钮可用,保存和取消按钮不可用CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = TrueCmdSave.Enabled = False: CmdCancel.Enabled = FalseEnd SubPrivate Sub CmdSave_Click()On Error GoTo ErrMsgIf Not CheckData Then Exit Sub '如果数据不合法就退出If flag = "Modify" Then '如果是修改数据msg = MsgBox("您确实要修改这条数据吗?", vbYesNo)If msg = vbYes ThenFor Index = 0 To 6If txtItem(Index).Text <> "" Then rs.Fields(Index) = txtItem(Index).TexttxtItem(Index).Enabled = FalseNext IndexElseExit SubEnd IfElseIf flag = "Add" Then '如果是添加新数据rs.AddNewFor Index = 0 To 6If txtItem(Index).Text <> "" Then rs.Fields(Index) = txtItem(Index).Text Next IndexEnd If'更新数据rs.Update'移动控件可用For Index = 0 To 3CmdMove(Index).Enabled = TrueNext IndexCmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True CmdSave.Enabled = False: CmdCancel.Enabled = FalseIf flag = "Add" ThenMsgBox ("成功添加数据!")ElseMsgBox ("成功更新数据!")End IfCall LoadData '重新装载数据'定位到添加或修改记录If rs.RecordCount <> 0 Thenrs.MoveFirstrs.Find ("院代码='" & Trim(txtItem(0).Text) & "'")If Not rs.EOF Then Call ShowData '重新装载数据End IfExit SubErrMsg:MsgBox Err.Description, vbExclamation, "出错"End SubPrivate Sub DTPicker1_CloseUp() '得到日期txtItem(4).Text = Me.DTPicker1.ValueEnd SubPrivate Sub CmdExit_Click()'退出操作学生档案管理.Enabled = Truers.CloseUnload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer)'退出操作学生档案管理.Enabled = TrueUnload MeEnd Sub2:A系设置(1)界面(2)代码Dim rs As ADODB.RecordsetDim SQL As StringDim msg As StringDim Index As IntegerDim flag As String '判断是新增加记录还是修改记录Private Function CheckData() As Boolean'检查数据的合法性Dim rst As ADODB.RecordsetDim msgt As Stringmsgt = ""'检查数据非空性If Trim(txtItem(0).Text) = "" Thenmsgt = "系代码为空;"ElseIf Not Len(Trim(txtItem(0).Text)) = 4 Thenmsgt = "系代码不是4位;"ElseIf Not Left(Trim(txtItem(0).Text), 2) = Left(Trim(CboQuery.Text), 2) Then msgt = "系代码错误;"End IfIf Trim(txtItem(1).Text) = "" Thenmsgt = msgt & " 系名称为空;"End IfIf Not msgt = "" ThenMsgBox (msgt)CheckData = FalseExit FunctionEnd If'检查唯一性SQL = " select * from 系信息表where 系代码='" & Trim(txtItem(0).Text) & "'"Set rst = SelectSQL(SQL, msg)If flag = "Add" And rst.RecordCount > 0 ThenMsgBox ("该系的信息已经存在,重复添加!")rst.CloseCheckData = FalseExit FunctionEnd IfCheckData = True '合法End FunctionPrivate Sub ShowData()'在文本框中显示数据If rs.RecordCount <> 0 ThenFor Index = 0 To 7If rs.Fields(Index) <> "" ThentxtItem(Index).Text = rs.Fields(Index)ElsetxtItem(Index).Text = ""End IftxtItem(Index).Enabled = FalseNext IndexIf IsDate(Trim(txtItem(5).Text)) ThenDTPicker1.Value = Trim(txtItem(5).Text) '时间控件End IfEnd IfEnd SubPrivate Sub LoadData()'装载数据Dim strWhere As StringIf CboQuery.ListCount > 0 ThenstrWhere = " where 院代码='" & Left(Trim(CboQuery.Text), 2) & "'"Set rs = NothingSQL = " select * from 系信息表" & strWhere & " order by 系代码"Set rs = SelectSQL(SQL, msg)Set Me.DataGrid1.DataSource = rsMe.DataGrid1.RefreshFrame1(1).Enabled = TrueElseMsgBox ("请先创建上级单位!")Frame1(1).Enabled = FalseEnd IfEnd SubPrivate Sub CboQuery_Click()txtItem(4).Text = Left(Trim(CboQuery.Text), 2)End SubPrivate Sub CmdQuery_Click()Call LoadData '重新装载数据If rs.RecordCount > 0 ThenCall ShowData '显示信息ElseFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'控件可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True CmdCancel.Enabled = False: CmdSave.Enabled = FalsePrivate Sub Form_Load()'初始化ComboBoxDim rst As ADODB.RecordsetDim strItem As StringSQL = " select 院代码,院名称from 院信息表order by 院代码"Set rst = SelectSQL(SQL, msg)If rst.RecordCount > 0 ThenDo While Not rst.EOFstrItem = rst.Fields(0) & " " & rst.Fields(1)CboQuery.AddItem (strItem)rst.MoveNextLooprst.CloseCboQuery.ListIndex = 0ElseMsgBox ("请先创建院信息!") '如果没有院信息不能使用Frame1(0).Enabled = FalseFrame1(1).Enabled = FalseExit SubEnd IfCall LoadData '重新装载数据If rs.RecordCount > 0 ThenCall ShowData '显示数据ElseFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'控件可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = TrueCmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd SubPrivate Sub CmdMove_Click(Index As Integer) '移动记录Select Case IndexCase Is = 0 '移到第一条记录If Not rs.BOF Then rs.MoveFirstCase Is = 1 '移到上一条记录If rs.RecordCount <> 0 ThenIf rs.BOF = False Then rs.MovePreviousIf rs.BOF = True Then rs.MoveFirstEnd IfCase Is = 2 '移到下一条记录If rs.RecordCount <> 0 ThenIf rs.EOF = False Then rs.MoveNextIf rs.EOF = True Then rs.MoveLastEnd IfCase Is = 3 '移到最后一条记录If rs.RecordCount <> 0 ThenIf Not rs.EOF = True Then rs.MoveLastEnd IfEnd SelectIf rs.RecordCount <> 0 ThenCall ShowData '在文本框中显示数据'按钮可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = TrueCmdCancel.Enabled = False: CmdSave.Enabled = False'按钮可用性CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = FalseCmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd IfEnd SubPrivate Sub CmdAdd_Click()'清空文本框,文本框可用For Index = 0 To 7txtItem(Index).Text = ""txtItem(Index).Enabled = TrueNext IndexCboQuery.Enabled = False 'ComboBox不可用'设置标志flagflag = "Add"txtItem(5).Text = Me.DTPicker1.Value '设置日期txtItem(0).Text = Left(Trim(CboQuery.Text), 2)txtItem(0).SetFocustxtItem(4).Text = Left(Trim(CboQuery.Text), 2)'所有移动按钮不可用For Index = 0 To 3CmdMove(Index).Enabled = FalseNext Index'添加、修改、删除按钮不可用,取消、保存按钮可用CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = FalseCmdCancel.Enabled = True: CmdSave.Enabled = TrueEnd SubPrivate Sub CmdModify_Click()'修改操作If rs.RecordCount > 0 Then'文本框可用,系代码不可以修改For Index = 1 To 7txtItem(Index).Enabled = TrueNext IndextxtItem(0).Enabled = FalseCboQuery.Enabled = False 'ComboBox 不可用'设置标志flagflag = "Modify"'移动控件不可用For Index = 0 To 3CmdMove(Index).Enabled = FalseNext Index'添加、修改、删除按钮不可用,取消、保存按钮可用CmdCancel.Enabled = True: CmdSave.Enabled = TrueCmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False ElseMsgBox ("没有可以修改的数据!")End IfEnd SubPrivate Sub CmdDelete_Click()'删除操作On Error GoTo ErrMsgIf rs.RecordCount > 0 Thenmsg = MsgBox("删除该条记录吗?", vbYesNo)If msg = vbYes Thenrs.DeleteCall LoadData '重新装载数据'清空文本框、并不可用For Index = 0 To 7txtItem(Index).Text = ""txtItem(Index).Enabled = FalseNext Index'所有移动控件不可用If rs.RecordCount = 0 ThenFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'按钮可用性处理CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = TrueCmdSave.Enabled = False: CmdCancel.Enabled = FalseMsgBox ("成功删除的数据!")End IfElseMsgBox ("没有可删除的数据!")End IfExit SubErrMsg:MsgBox 不能删除, vbExclamation, "出错"End SubPrivate Sub cmdCancel_Click()'取消操作Call ShowData'所有移动控件可用For Index = 0 To 3CmdMove(Index).Enabled = TrueNext IndexCboQuery.Enabled = True 'ComboBox可用'修改、删除、添加按钮可用,保存和取消按钮不可用CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = TrueCmdSave.Enabled = False: CmdCancel.Enabled = FalseEnd SubPrivate Sub CmdSave_Click()On Error GoTo ErrMsgIf Not CheckData Then Exit Sub '如果数据不合法退出If flag = "Modify" Then '如果是修改数据msg = MsgBox("您确实要修改这条数据吗?", vbYesNo)If msg = vbYes ThenFor Index = 0 To 7If txtItem(Index).Text <> "" Then rs.Fields(Index) = txtItem(Index).Text Next IndexElseExit SubEnd IfElseIf flag = "Add" Then '如果是添加新数据rs.AddNewFor Index = 0 To 7If txtItem(Index).Text <> "" Then rs.Fields(Index) = txtItem(Index).Text Next IndexEnd If'更新数据rs.Update'移动控件可用For Index = 0 To 3CmdMove(Index).Enabled = TrueNext IndexFor Index = 0 To 7txtItem(Index).Enabled = FalseNext IndexCboQuery.Enabled = True 'ComboBox可用CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True CmdSave.Enabled = False: CmdCancel.Enabled = FalseIf flag = "Add" ThenMsgBox ("成功添加数据!")ElseMsgBox ("成功更新数据!")End IfCall LoadData '重新装载数据'定位到添加或修改记录If rs.RecordCount <> 0 Thenrs.MoveFirstrs.Find ("系代码='" & Trim(txtItem(0).Text) & "'")If Not rs.EOF Then Call ShowData '重新显示数据End IfExit SubErrMsg:MsgBox Err.Description, vbExclamation, "出错"End SubPrivate Sub DTPicker1_CloseUp() '得到日期txtItem(5).Text = Me.DTPicker1.ValueEnd SubPrivate Sub CmdExit_Click()'退出操作学生档案管理.Enabled = Truers.CloseUnload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer)'退出操作学生档案管理.Enabled = TrueUnload MeEnd Sub3:A班级设置(1)界面(2)代码Dim rs As ADODB.RecordsetDim SQL As StringDim msg As StringDim Index As IntegerDim flag As String '判断是新增记录还是修改记录Private Sub SelectData()'初始化系ComboBoxDim rst As ADODB.RecordsetDim strItem As StringSQL = " select 系代码,系名称from 系信息表where 院代码='"SQL = SQL & Left(Trim(CboQuery(0).Text), 2) & "' order by 系代码"Set rst = SelectSQL(SQL, msg)CboQuery(1).ClearIf rst.RecordCount > 0 ThenDo While Not rst.EOFstrItem = rst.Fields(0) & " " & rst.Fields(1)CboQuery(1).AddItem (strItem)rst.MoveNextLooprst.CloseCboQuery(1).ListIndex = 0ElseFrame1(1).Enabled = FalseExit SubEnd IfEnd SubPrivate Function CheckData() As Boolean'检查数据的合法性Dim rst As ADODB.RecordsetDim msgt As Stringmsgt = ""'检查数据非空If Trim(txtItem(0).Text) = "" Thenmsgt = "班号为空;"ElseIf Not Len(Trim(txtItem(0).Text)) = 6 Thenmsgt = "班号不是6位;"ElseIf Not Left(Trim(txtItem(0).Text), 4) = Left(Trim(CboQuery(1).Text), 4) Then msgt = "班号错误;"End IfIf Trim(txtItem(1).Text) = "" Thenmsgt = msgt & " 班级名称为空;"End IfIf Not msgt = "" ThenMsgBox (msgt)CheckData = FalseExit FunctionEnd If'检查唯一性SQL = " select * from 班级信息表where 班号='" & Trim(txtItem(0).Text) & "'"Set rst = SelectSQL(SQL, msg)If flag = "Add" And rst.RecordCount > 0 ThenMsgBox ("该班级的信息已经存在,重复添加!")rst.CloseCheckData = FalseExit FunctionEnd IfCheckData = True '合法End FunctionPrivate Sub ShowData()'在文本框中显示数据If rs.RecordCount <> 0 ThenFor Index = 0 To 8If rs.Fields(Index) <> "" ThentxtItem(Index).Text = rs.Fields(Index)ElsetxtItem(Index).Text = ""End IftxtItem(Index).Enabled = FalseNext IndexIf IsDate(Trim(txtItem(3).Text)) ThenDTPicker1.Value = Trim(txtItem(3).Text) '时间控件End IfEnd IfEnd SubPrivate Sub LoadData()'装载数据Dim strWhere As StringIf CboQuery(0).ListCount > 0 And CboQuery(1).ListCount > 0 ThenstrWhere = " where 系代码='" & Left(Trim(CboQuery(1).Text), 4) & "'"Set rs = NothingSQL = " select * from 班级信息表" & strWhere & " order by 班号"Set rs = SelectSQL(SQL, msg)Set Me.DataGrid1.DataSource = rsMe.DataGrid1.RefreshFrame1(1).Enabled = TrueElseMsgBox ("请先创建上级单位!")Frame1(1).Enabled = FalseEnd IfEnd SubPrivate Sub CboQuery_Click(Index As Integer)If Index = 0 ThenCall SelectData '得到系列表ElseIf Index = 1 ThenIf CboQuery(1).ListCount > 0 ThentxtItem(2).Text = Left(Trim(CboQuery(1).Text), 4)Label4.Caption = "系代码:" & Left(Trim(CboQuery(1).Text), 4) End IfEnd IfEnd SubPrivate Sub CmdQuery_Click()Call LoadData '重新装载数据If rs.RecordCount > 0 ThenCall ShowData '显示数据ElseFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'控件可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True CmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd SubPrivate Sub Form_Load()'初始化ComboBoxDim rst As ADODB.RecordsetDim strItem As StringSQL = " select 院代码,院名称from 院信息表order by 院代码"Set rst = SelectSQL(SQL, msg)If rst.RecordCount > 0 ThenDo While Not rst.EOFstrItem = rst.Fields(0) & " " & rst.Fields(1)CboQuery(0).AddItem (strItem)rst.MoveNextLooprst.CloseCboQuery(0).ListIndex = 0ElseMsgBox ("请先创建院信息!") '如果没有院信息不能使用Frame1(0).Enabled = FalseFrame1(1).Enabled = FalseFrame2.Enabled = FalseExit SubEnd IfCall SelectData '得到系列表Call LoadData '重新装载数据If Not Frame1(1).Enabled Then Exit SubIf rs.RecordCount > 0 ThenCall ShowData '显示数据ElseFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'控件可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = TrueCmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd SubPrivate Sub CmdMove_Click(Index As Integer)'移动记录Select Case IndexCase Is = 0 '移到第一条记录If Not rs.BOF Then rs.MoveFirstCase Is = 1 '移到上一条记录If rs.RecordCount <> 0 ThenIf rs.BOF = False Then rs.MovePreviousIf rs.BOF = True Then rs.MoveFirstEnd IfCase Is = 2 '移到下一条记录If rs.RecordCount <> 0 ThenIf rs.EOF = False Then rs.MoveNextIf rs.EOF = True Then rs.MoveLastEnd IfCase Is = 3 '移到最后一条记录If rs.RecordCount <> 0 ThenIf Not rs.EOF = True Then rs.MoveLastEnd IfEnd SelectIf rs.RecordCount <> 0 ThenCall ShowData '在文本框中显示数据'按钮可用性CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = TrueCmdCancel.Enabled = False: CmdSave.Enabled = FalseElse'按钮可用性CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = FalseCmdCancel.Enabled = False: CmdSave.Enabled = FalseEnd IfEnd SubPrivate Sub CmdAdd_Click()'清空文本框,文本框可用For Index = 0 To 8txtItem(Index).Text = ""txtItem(Index).Enabled = TrueNext IndexCboQuery(0).Enabled = False 'ComboBox不可用CboQuery(1).Enabled = False 'ComboBox不可用'设置标志flagflag = "Add"txtItem(3).Text = Me.DTPicker1.Value '设置日期txtItem(0).Text = Left(Trim(CboQuery(1).Text), 4)txtItem(0).SetFocustxtItem(2).Text = Left(Trim(CboQuery(1).Text), 4)'所有移动按钮不可用For Index = 0 To 3CmdMove(Index).Enabled = FalseNext Index'添加、修改、删除按钮不可用,取消、保存按钮可用CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = FalseCmdCancel.Enabled = True: CmdSave.Enabled = TrueEnd SubPrivate Sub CmdModify_Click()'修改操作If rs.RecordCount > 0 Then'文本框可用,班号不可以修改For Index = 1 To 8txtItem(Index).Enabled = TrueNext IndextxtItem(0).Enabled = FalseCboQuery(0).Enabled = False 'ComboBox 不可用CboQuery(1).Enabled = False 'ComboBox 不可用'设置标志flagflag = "Modify"'移动控件不可用For Index = 0 To 3CmdMove(Index).Enabled = FalseNext Index'添加、修改、删除按钮不可用,取消、保存按钮可用CmdCancel.Enabled = True: CmdSave.Enabled = TrueCmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False ElseMsgBox ("没有可以修改的数据!")End IfEnd SubPrivate Sub CmdDelete_Click()'删除操作On Error GoTo ErrMsgIf rs.RecordCount > 0 Thenmsg = MsgBox("删除该条记录吗?", vbYesNo)If msg = vbYes Thenrs.DeleteCall LoadData '重新装载数据'清空文本框、并不可用For Index = 0 To 8txtItem(Index).Text = ""txtItem(Index).Enabled = FalseNext Index'所有移动控件不可用If rs.RecordCount = 0 ThenFor Index = 0 To 3CmdMove(Index).Enabled = FalseNext IndexEnd If'按钮可用性处理CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = TrueCmdSave.Enabled = False: CmdCancel.Enabled = FalseMsgBox ("成功删除的数据!")End IfElseMsgBox ("没有可删除的数据!")End IfExit SubErrMsg:MsgBox Err.Description, vbExclamation, "出错"End SubPrivate Sub cmdCancel_Click()'取消操作Call ShowData'所有移动控件可用For Index = 0 To 3CmdMove(Index).Enabled = TrueNext IndexCboQuery(0).Enabled = True 'ComboBox可用CboQuery(1).Enabled = True 'ComboBox可用'修改、删除、添加按钮可用,保存和取消按钮不可用CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True CmdSave.Enabled = False: CmdCancel.Enabled = FalseEnd SubPrivate Sub CmdSave_Click()On Error GoTo ErrMsg '出错处理If Not CheckData Then Exit Sub '如果数据不合法退出If flag = "Modify" Then '如果是修改数据msg = MsgBox("您确实要修改这条数据吗?", vbYesNo)If msg = vbYes ThenFor Index = 0 To 8If txtItem(Index).Text <> "" Then rs.Fields(Index) = txtItem(Index).TextNext IndexElseExit SubEnd IfElseIf flag = "Add" Then '如果是添加新数据rs.AddNewFor Index = 0 To 8If txtItem(Index).Text <> "" Then rs.Fields(Index) = txtItem(Index).Text Next IndexEnd If'更新数据rs.Update'移动控件可用For Index = 0 To 3CmdMove(Index).Enabled = TrueNext IndexFor Index = 0 To 8txtItem(Index).Enabled = FalseNext IndexCboQuery(0).Enabled = True 'ComboBox可用CboQuery(1).Enabled = True 'ComboBox可用CmdModify.Enabled = True: CmdDelete.Enabled = True: CmdAdd.Enabled = True CmdSave.Enabled = False: CmdCancel.Enabled = FalseIf flag = "Add" ThenMsgBox ("成功添加数据!")ElseMsgBox ("成功更新数据!")End IfCall LoadData '重新装载数据'定位到添加或修改记录If rs.RecordCount <> 0 Thenrs.MoveFirstrs.Find ("班号='" & Trim(txtItem(0).Text) & "'")If Not rs.EOF Then Call ShowData '重新显示数据End IfExit SubErrMsg:MsgBox Err.Description, vbExclamation, "出错"End Sub。

教学管理系统java源代码_教学管理系统java源代码.doc

教学管理系统java源代码_教学管理系统java源代码.doc

教学管理系统java源代码_教学管理系统java源代码.doc 教学管理系统java源代码教学管理系统java源代码篇⼀:java学⽣管理系统源代码import java.io.Serializable;public class Course implements Serializable{private String courseName;private int courseGrade;Course(){courseName=null;courseGrade=0;}public void setCourseNameValue(String ss){this.courseName=ss;}public void setCourseGradeValue(int dd){this.courseGrade=dd;}public String getCourseNameValue(){return this.courseName;}public int getCourseGradeValue(){return this.courseGrade;}public boolean equals(Object o) {if (o == null){ return false;}else {if (o instanceof Course) {Course rec = (Course) o;if (this.courseName.equals(rec.getCourseNameValue())) {return true;}}return false;}---------------------------------------------------------------------------------------------------------------import java.io.Serializable;import java.util.Arrays;import java.util.LinkedList;import java.util.List;public class Student implements Serializable, Comparable{private String studentName;private int studentId;//private int studentCourseAmount=4;private LinkedList courseList;Student(){studentName=null;studentId=0;courseList=new LinkedList();}public void setStudentNameValue(String name){//确定学⽣名称this.studentName=name;}public void setStudentIdValue(int id){//确定学⽣学号this.studentId=id;}public void setStudentCourseList(LinkedList list){//传⼊课程链listthis.courseList=list;// System.out.println(例:0916 张磊 语⽂98 数学67); }public void setCourseGrade(Object o){//将与学科o同名的学科的成绩改为o的成绩for(int i=0;ithis.courseList.size();i++){ Course obj=new Course();obj=(Course) this.courseList.get(i);if(obj.equals(o)){Course res=(Course) o;obj.setCourseGradeValue(res.getCourseGradeValue());}public String getStudentNameValue(){//取得学⽣姓名return this.studentName;}public int getStudentId(){//取得学⽣学号return this.studentId;}public LinkedList getstudentCourseList(){//得到成绩链的⾸地址return this.courseList;}public long。

学生信息管理系统完整源代码+mysql文件

学生信息管理系统完整源代码+mysql文件

数据库所用的数据自己导入MYSQL5.5,Navicat8就可以用了。

下面是具体的数据资料/*MySQL Data TransferSource Host: localhostSource Database: simsTarget Host: localhostTarget Database: simsDate: 2013-6-25 9:24:26*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for manager-- ----------------------------DROP TABLE IF EXISTS `manager`;CREATE TABLE `manager` (`id` varchar(10) NOT NULL,`name` varchar(30) NOT NULL,`Mima` varchar(20) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for studentinfo-- ----------------------------DROP TABLE IF EXISTS `studentinfo`;CREATE TABLE `studentinfo` (`Sname` varchar(30) NOT NULL,`Ssex` varchar(10) NOTNULL,`Snumber` varchar(10) NOT NULL,`Sprofession` varchar(30) NOT NULL,`Sclass`varchar(20) NOT NULL,`Sdate` varchar(30) character set utf8 collate utf8_unicode_ciNOT NULL,PRIMARY KEY (`Snumber`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='InnoDBfree: 4096 kB';-- ------------------------------ Table structure for userinfo-- ----------------------------DROP TABLE IF EXISTS `userinfo`;CREATE TABLE `userinfo` (`id` varchar(10) NOT NULL,`name` varchar(30) NOT NULL,`Mima` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL, PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records-- ----------------------------INSERT INTO `manager` VALUES ('1', '1', '2');INSERT INTO `manager` VALUES ('2', '恩恩', '123456');INSERT INTO `manager` VALUES ('3', '大大', '123456');INSERT INTO `manager` VALUES ('4', '啊啊', '123456');INSERT INTO `manager` VALUES ('5', '5', '5');INSERT INTO `manager` VALUES ('6', '孙霞', '123456');INSERT INTO `studentinfo` V ALUES ('张三', '男', '2010303755', '数学', '2', '2010-02- 12');INSERT INTO `studentinfo` V ALUES ('李四', '男', '2010303760', '物理', '1', '1995.9.6'); INSERT INTO `studentinfo` V ALUES ('王二', '女', '2010303761', '应数', '2','1990.9.11');INSERT INTO `studentinfo` V ALUES ('麻子', '女', '2010303762', '信计', '1','1999.9.10');INSERT INTO `userinfo` V ALUES ('1', '1', '1');INSERT INTO `userinfo` V ALUES ('13', '13', '1');INSERT INTO `userinfo` V ALUES ('2', '2', '2');INSERT INTO `userinfo` V ALUES ('3', '3', '3');INSERT INTO `userinfo` V ALUES ('6', '6', '6');INSERT INTO `userinfo` V ALUES ('7', '7', '6');下面是相应的程序:package MS;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Add implements ActionListener {JFrame f1;Container ct;JPanel jp,jp1,jp2,jp3;JButton btn1,btn2;JLabel label;JTextField tf1,tf2,tf3,tf4,tf5,tf6;Add(){f1=new JFrame();ct=f1.getContentPane();//初始化面板jp=new JPanel();jp1=new JPanel(new GridLayout(6,1));jp2=new JPanel(new GridLayout(6,1));jp3=new JPanel();btn1=new JButton("确定");btn2=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>添加学生信息</font>",SwingConstants.CENTER);label.setForeground(Color.gray);tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);tf6.setText("例:2000-02-02");//文本框加入提示语tf6.addFocusListener(new FocusListener(){public void focusGained(FocusEvent e) {tf6.setText("");}public void focusLost(FocusEvent e) {}});jp.add(label);ct.add(jp,"North");jp1.add(new JLabel("姓名",SwingConstants.CENTER));jp2.add(tf1);jp1.add(new JLabel("性别",SwingConstants.CENTER));jp2.add(tf2);jp1.add(new JLabel("学号",SwingConstants.CENTER));jp2.add(tf3);jp1.add(new JLabel("专业",SwingConstants.CENTER));jp2.add(tf4);jp1.add(new JLabel("班级",SwingConstants.CENTER));jp2.add(tf5);jp1.add(new JLabel("入学时间",SwingConstants.CENTER));jp2.add(tf6);jp3.add(btn1);jp3.add(btn2);ct.add(jp1,"West");ct.add(jp2,"East");ct.add(jp3,"South");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f1.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f1.setLocation(xcenter, ycenter);f1.setVisible(true);//f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);}public void insert(){if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")){JOptionPane.showMessageDialog(f1,"请填写完整信息");return;}try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connectioncon=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String s="insert into studentinfo values('"+tf1.getText()+"','"+tf2.getText()+"','"+tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";String query="select * from studentinfo where Snumber='"+tf3.getText().trim()+"'";ResultSet res=st.executeQuery(query);if(res.next()){JOptionPane.showMessageDialog(f1,"学号信息已经存在!");con.close();tf3.setText("");}else if(tf6.getText().length()!=10){JOptionPane.showMessageDialog(f1,"入学时间格式有误!");con.close();tf6.setText("");}int insert=st.executeUpdate(s);if(insert==1){JOptionPane.showMessageDialog(f1,"录入信息成功!");tf1.setText("");tf2.setText("");tf3.setText("");tf4.setText("");tf5.setText("");tf6.setText("");}}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){insert();}else if(cmd.equals("取消")){f1.hide();}}public Container getCt(){return ct;}public void setCt(Container ct){this.ct = ct;}}package MS;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Delete implements ActionListener {JFrame f2;Container ct;JPanel jp1,jp2,jp3,jp4;JLabel label;JTextField text;JTable table;//接收数据库中返回的信息JButton btn1,btn2,btn3;Object columnName[]={"姓名","性别","学号","专业","班级","入学时间"};Object ar[][]=new Object[80][6];Delete(){f2=new JFrame();ct=f2.getContentPane();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();label=new JLabel();text=new JTextField();btn1=new JButton("查询");btn2=new JButton("删除");btn3=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除的学生姓名:</font>",SwingConstants.CENTER);label.setBackground(Color.blue);table=new JTable(ar,columnName);JScrollPane scroll=new JScrollPane(table);text=new JTextField(20);jp2.add(btn1);jp2.add(btn2);jp2.add(btn3);jp1.add(label);jp1.add(text);ct.add(jp1,"North");jp3.setLayout(new BorderLayout());jp3.add(new JLabel("学生信息如下"));jp3.add(scroll);ct.add(jp2,"South");ct.add(jp3,"Center");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f2.setSize(450, 400);int xcenter=(x-450)/2;int ycenter=(y-400)/2;f2.setLocation(xcenter, ycenter);f2.setVisible(true);//f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);}int i=0;public void show(String s){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String sql="select * from studentinfo where Sname='"+s+"'";ResultSet res=st.executeQuery(sql);/*if(!(res.next())){JOptionPane.showMessageDialog(f,"所要查询的信息不存在");} */while(res.next()){String sName=res.getString(1);String sSex=res.getString(2);String sNumber=res.getString(3);String sProfession=res.getString(4);String sClass=res.getString(5);String sDate=res.getString(6);ar[i][0]=sName;ar[i][1]=sSex;ar[i][2]=sNumber;ar[i][3]=sProfession;ar[i][4]=sClass;ar[i][5]=sDate;i++;}f2.repaint();con.close();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}public void delete(int line){try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String name=(String)(ar[line][2]);String sql="delete from studentinfo where Snumber ='"+name+"'";int del=st.executeUpdate(sql);if(del==1){ar[line][0]="";ar[line][1]="";ar[line][2]="";ar[line][3]="";ar[line][4]="";ar[line][5]="";JOptionPane.showMessageDialog(null,"删除成功!","信息", JOptionPane.YES_NO_OPTION);}con.close();f2.repaint();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("查询")){String qu=text.getText().trim();show(qu);}if(cmd.equals("删除")){int de=table.getSelectedRow();if(de==-1){JOptionPane.showMessageDialog(null,"请选定要删除的行","错误信息", JOptionPane.YES_NO_OPTION);}else{delete(de);}}if(cmd.equals("取消")){f2.hide();}}}package MS;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.SwingConstants;public class Liulan implements ActionListener {JFrame f4;Container ct;JPanel jp1,jp2,jp3,jp4;JLabel label;JButton btn1,btn2;JTable table;Object[][] ar=new Object[80][6];Object[] columnName={"姓名","性别","学号","专业","班级","入学时间"};Liulan(){f4=new JFrame();ct=f4.getContentPane();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();btn1=new JButton("点击浏览");btn2=new JButton(" 取消");label=new JLabel("<html><font color=#00FF22 size='4'>学生信息浏览<font>",SwingConstants.CENTER);label.setBackground(Color.blue);table=new JTable(ar, columnName);JScrollPane scroll=new JScrollPane(table);jp1.add(label);jp2.add(btn1);jp2.add(btn2);jp3.add(scroll);ct.add(jp1,"North");ct.add(jp3,"Center");ct.add(jp2,"South");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f4.setSize(500,530);int xcen=(x-500)/2;int ycen=(y-530)/2;f4.setLocation(xcen,ycen);f4.setVisible(true);btn1.addActionListener(this);btn2.addActionListener(this);}int i=0;public void select(){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String s="select * from studentinfo";ResultSet res=st.executeQuery(s);while(res.next()){String sName=res.getString(1);String sSex=res.getString(2);String sNumber=res.getString(3);String sProfession=res.getString(4);String sClass=res.getString(5);String sDate=res.getString(6);ar[i][0]=sName;ar[i][1]=sSex;ar[i][2]=sNumber;ar[i][3]=sProfession;ar[i][4]=sClass;ar[i][5]=sDate;i++;}f4.repaint();con.close();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){// TODO Auto-generated method stubString cmd=e.getActionCommand();if(cmd.equals("点击浏览")){select();}else if(cmd.equals(" 取消")){f4.hide();}}}package MS;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import java.sql.DriverManager;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JRadioButton;import javax.swing.JTextField;import javax.swing.SwingConstants;@SuppressWarnings("serial")public class Login extends JFrame implements ActionListener {Container cp=null;JFrame f=null;JButton button1,button2,button3;JTextField t1;JPasswordField t2;JLabel jlable1,jlable2;JRadioButton rabtn1,rabtn2;Color c;JPanel jp1,jp2,jp3;String table=null;Login(){f=new JFrame("学生信息管理系统");button1=new JButton("确定");button2=new JButton("取消");button3=new JButton("注册");//button3.setOpaque(false);button3.setBorder(null);button3.setBackground(Color.getColor("#292421"));rabtn1=new JRadioButton("普通用户");rabtn1.setBackground(Color.getColor("#292421"));rabtn2=new JRadioButton("管理员");rabtn2.setBackground(Color.getColor("#292421"));ButtonGroup group=new ButtonGroup();group.add(rabtn1);group.add(rabtn2);cp=f.getContentPane();jlable1=new JLabel("输入用户号");jlable2=new JLabel("输入密码");jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();t1=new JTextField(20);t2=new JPasswordField(20);//jp3.add(group);jp1.add(jlable1);jp1.add(t1);jp1.add(jlable2);jp1.add(t2);jp1.add(rabtn1);jp1.add(rabtn2);jp1.add(button3);JLabel JL=new JLabel("<html><font color=#292421 size='7'><i>欢迎登陆" + "</i></font>",SwingConstants.CENTER);cp.add(JL,"North");jp2.add(button1);jp2.add(button2);cp.add(jp1,"Center");cp.add("South",jp2);cp.setBackground(new Color(127, 255, 212 ));jp2.setBackground(new Color(127, 255, 212 ));jp1.setBackground(new Color(127, 255, 212 ));Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f.setSize(250,300);int xcenter=(x-300)/2;int ycenter=(y-300)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//------------------------------------------------------------///*监听事件*/button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);rabtn1.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){JRadioButton jop=(JRadioButton) e.getSource();if (jop.isSelected())table="userinfo";}});rabtn2.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){JRadioButton jop=(JRadioButton) e.getSource();if (jop.isSelected())table="manager";}});f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}@SuppressWarnings("deprecation")public void confirm(String tableName){try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String id=t1.getText().trim();String Mima=t2.getText().trim();String queryMima="select * from "+tableName+" where id='"+id+"' and mima='"+Mima+"'";ResultSet res=st.executeQuery(queryMima);if(res.next()){if(tableName.equals("manager"))new Mstudent(id);else if(tableName.equals("userinfo"))new Ustudent(id);f.hide();con.close();}else{JOptionPane.showMessageDialog(null,"密码错误请重输!!!","提示!",JOptionPane.YES_NO_OPTION);}t1.setText("");t2.setText("");}catch(SQLException g){System.out.println("错误代码:"+g.getErrorCode());System.out.println("错误内容:"+g.getMessage());}}ItemListener listen=new ItemListener(){public void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stub}};public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){if(table==null){JOptionPane.showMessageDialog(f,"请选择用户类型");}confirm(table);}else if(cmd.equals("取消")){f.dispose();}else if(cmd.equals("注册")){new Regist();}}public static void main(String []arg){new Login();}}package MS;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenuBar;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.SwingConstants;import javax.swing.border.TitledBorder;@SuppressWarnings("serial")public class Mstudent extends JFrame implements ActionListener {JButton Query = new JButton("查询信息");JButton add = new JButton("添加信息");JButton delete = new JButton("删除信息");JButton xiugai = new JButton("浏览全部信息");JButton liulan = new JButton("修改密码");JMenuBar mb = new JMenuBar();// 菜单栏JPanel jp = new JPanel();Container cp = getContentPane();String userName;Mstudent(){}Mstudent(String userName){erName = userName;mb.add(Query);mb.add(add);mb.add(delete);mb.add(xiugai);mb.add(liulan);JPanel j=new JPanel();j.add(mb,"Center");cp.add(j, "North");// 设置边框jp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue, 2), null, TitledBorder.CENTER,TitledBorder.TOP));jp.setLayout(new BorderLayout());JLabel label1 = new JLabel("欢迎使用学生信息管理系统",SwingConstants.CENTER);jp.add(label1);JScrollPane scrollpane = new JScrollPane(jp);cp.add(scrollpane,"Center");setTitle("欢迎登陆" + "--" + "你好:" + userName);Toolkit kit = Toolkit.getDefaultToolkit();Dimension screen = kit.getScreenSize();int x = screen.width; /* 取得显示器窗口的宽度*/int y = screen.height; /* 取得显示器窗口的高度*/setSize(600, 600);int xcenter = (x - 600) / 2;int ycenter = (y - 600) / 2;setLocation(xcenter, ycenter);/* 显示在窗口中央*/setVisible(true);//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 注册临听器Query.addActionListener(this);add.addActionListener(this);delete.addActionListener(this);xiugai.addActionListener(this);liulan.addActionListener(this);}public void actionPerformed(ActionEvent e){String cmd = e.getActionCommand();if (cmd.equals("查询信息")){new QueryWays();}if (cmd.equals("添加信息")){new Add();}if (cmd.equals("删除信息")){new Delete();}if (cmd.equals("浏览全部信息")){new Liulan();}if (cmd.equals("修改密码")){new UpdateCode();}}public static void main(String[] args){new Mstudent("");}}package MS;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Query implements ActionListener {String sql =null;int a;String info;JFrame f3;// Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpwest;JButton btn1,btn2;//确定,取消JLabel label,label2;//标签,请输入姓名(label)JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6;//文本框Query(int a){this.a=a;f3=new JFrame();Container cp=f3.getContentPane();//初始化面板,按钮,标签,文本框jp=new JPanel();jp1=new JPanel();jp2=new JPanel(new GridLayout(6,1));jp3=new JPanel();jp4=new JPanel(new GridLayout(6,1));jpwest=new JPanel();btn1=new JButton("确定");btn2=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>请输入姓名:" + "</font>",SwingConstants.CENTER);label2=new JLabel("<html><font color=#CC00FF size='4'>请输入学号:" + "</font>",SwingConstants.CENTER);label.setForeground(Color.gray);tf=new JTextField(20);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//布局,添加控件if(a==0){jp.add(label);jp.add(tf);}else if(a==1){jp.add(label2);jp.add(tf);}cp.add(jp,"North");jp4.add(new JLabel("姓名",SwingConstants.CENTER));jp2.add(tf1);jp4.add(new JLabel("性别",SwingConstants.CENTER));jp2.add(tf2);jp4.add(new JLabel("学号",SwingConstants.CENTER));jp2.add(tf3);jp4.add(new JLabel("专业",SwingConstants.CENTER));jp2.add(tf4);jp4.add(new JLabel("班级",SwingConstants.CENTER));jp2.add(tf5);jp4.add(new JLabel("入学时间",SwingConstants.CENTER));jp2.add(tf6);jp3.add(btn1);jp3.add(btn2);cp.add(jp4,"West");cp.add(jp2,"East");cp.add(jp3,"South");cp.add(jp1);Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; //显示窗口宽度int y=screen.height;//窗口高度f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);f3.setVisible(true);//f3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/。

C语言学籍管理系统(内含源代码)

C语言学籍管理系统(内含源代码)

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。

2、能根据输入的学号查询学生,进行信息的修改。

3、能根据输入的学号从结构体数组中删除学生的记录。

4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。

5、能在屏幕上以列表的方式输出所有学生的信息。

三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。

系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。

程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。

以下是这些函数原型及功能设计。

(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。

php学生信息管理系统源代码

php学生信息管理系统源代码

php学生信息管理系统源代码PHP学生信息管理系统源代码是一种基于Web技术的信息管理系统,可以帮助学校或教育机构管理学生信息,包括个人基本信息、课程成绩、考勤记录等。

该系统使用PHP语言编写,采用MySQL 数据库作为数据存储,具有良好的可扩展性和易用性。

该系统的主要功能包括:学生信息管理、课程信息管理、成绩管理、考勤管理、教师管理、班级管理、权限管理等。

下面对这些功能进行详细介绍。

一、学生信息管理学生信息管理是该系统的核心功能之一,它包括对学生基本信息的添加、修改、删除、查询和导出等操作。

管理员可以通过该功能完成对学生信息的全面管理,包括学生的姓名、性别、出生日期、联系方式等基本信息,以及学生的班级、专业、入学时间等详细信息。

同时,管理员还可以为每个学生上传照片,方便识别和管理。

二、课程信息管理课程信息管理是该系统的另一个重要功能,它包括对课程的添加、修改、删除、查询和导出等操作。

管理员可以通过该功能完成对课程信息的管理,包括课程名称、课程编号、授课教师、学分、学时等详细信息。

同时,管理员还可以为每个课程设置课程目标、教学大纲、教学计划等内容,方便学生和教师了解课程的内容和要求。

三、成绩管理成绩管理是该系统的重要功能之一,它包括对学生成绩的录入、修改、查询和导出等操作。

管理员和教师可以通过该功能完成对学生成绩的管理,包括成绩的录入、审核、统计和分析等。

同时,系统还支持成绩的按课程、按学生、按班级等多种方式进行查询和分析,方便学校或教育机构对学生的学习情况进行全面监测和评估。

四、考勤管理考勤管理是该系统的另一个重要功能,它包括对学生考勤记录的添加、修改、查询和导出等操作。

管理员和教师可以通过该功能完成对学生考勤记录的管理,包括考勤的录入、审核、统计和分析等。

同时,系统还支持考勤的按日期、按课程、按学生、按班级等多种方式进行查询和分析,方便学校或教育机构对学生的出勤情况进行全面监测和评估。

五、教师管理教师管理是该系统的重要功能之一,它包括对教师信息的添加、修改、删除、查询和导出等操作。

学生信息管理系统源代码

学生信息管理系统源代码

#include<stdio.h>#include <stdlib.h>#include <string.h>typedef struct{long class_1; //班级long number; //学号char name[20]; //姓名float math; //数学float c_program; //C语言float physics; //大学物理float english; //大学英语float polity; //政治float sport; //体育float summary; //总分float average; //平均分}Student;Student stud[100]; //定义结构体数组变量的大小int i=0; //i用于记录输入的学生的个数int menu() //菜单函数{int a;printf("***********************学生信息管理系统*************************\n");//菜单选择printf("\t\t【1】输入学生信息\n");printf("\t\t【2】显示所有学生的信息\n");printf("\t\t【3】按平均分升降排序\n");printf("\t\t【4】根据学生的学号查找学生的信息\n");printf("\t\t【5】插入学生的信息\n");printf("\t\t【6】删除学生的信息\n");printf("\t\t【7】修改学生的信息\n");printf("\t\t【8】从文件中读入数据\n");printf("\t\t【9】将所有记录写入文件\n");printf("\t\t【0】退出本系统\n");printf("***********************学生信息管理系统*************************\n");printf("请选择你要的操作【0-9】:");scanf("%d",&a); //读入一个数while(a<0 || a>9){printf("输入错误!请重新输入。

教务管理系统源代码

教务管理系统源代码
printf("\n********************张伟出品****************\n\n");
printf("\n用户名:zhang\n密码:wei\n\n");
printf("\n******************************************************\n\n\n");
{
Login();
return 0;
}
/*---------------------------------------------------输入学生成绩并计算-----------------------------------------------------*/
{
printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");
scanf("%c",&choose);
if(choose=='y'||choose=='Y')
{
fp=fopen("E:\\student_score","wb");
printf("文件已创建,请按回车键关闭,然后重新打开软件\n");getchar();getchar();exit(0);
void Save(LinkList L)
{
FILE *fp;
LinkList p1;
char choose;
if(L ->next == NULL)
{printf("没有可以保存的信息!\n");

学生成绩管理系统源代码

学生成绩管理系统源代码

学生成绩管理系统源代码#include<stdio.h>#include<stdlib.h>int main(){typedef struct LNode{char name[6];int no;int yw;int sx;int yy;struct LNode *next;}LinkList;struct NameNo{int no;int yw;int sx;int total;char name[6];}st[10];FILE *fp,*fp1;char ch,sname[6];int x,i,j;NameNo tmp;LinkList *p,*s;printf("\n");printf("-------------------------------");printf("学生成绩管理系统");printf("--------------------------------");printf("\n\n");printf("在您的C盘根目录下是否有cj1.txt和cj2.txt文件?如果有请输入,1");printf("否则输入0;如果没有,那么程序将终止!1 or 0?");scanf("%d",&i);if(i==0) return 0;printf("\n\n");printf("对cj1.txt和cj2.txt进行合成请按‘1’");scanf("%d",&i);if(i!=1) return 0;printf("正在把cj1.txt和cj2.txt中的数据进行合并\n");printf("......\n.....\n....\n...\n..\n.\n");if((fp=fopen("c:\\cj1.txt","rt"))==NULL){printf("无cj1.txt文本文件,程序结束。

c++语言学生成绩管理系统源代码

c++语言学生成绩管理系统源代码

我是电大的学生,这是struct 类型的c 语言学生成绩管理系统代码,大家交流一下#include<stdio.h>#include<string.h> #include<stdlib.h>#define MAXN 100 //#define MAXN 100 //一个班最多的人数一个班最多的人数#define MAXM 2 //#define MAXM 2 //成绩的课程门数成绩的课程门数int R;void input(); //1.void input(); //1.学生成绩新建学生成绩新建void sort(); //2.void sort(); //2.学生成绩插入学生成绩插入void load(); //3.void load(); //3.学生成绩修改学生成绩修改void print(); //4.void print(); //4.学生成绩删除学生成绩删除void total(); //5.void total(); //5.学生成绩统计学生成绩统计void search(); //6.void search(); //6.学生成绩查询学生成绩查询void save(); //7.void save(); //7.学生成绩保存学生成绩保存void end(); //8.void end(); //8.结束结束struct student{char name[20]; //char name[20]; //保存全班姓名保存全班姓名保存全班姓名char num[12]; // char num[12]; //保存全班学号保存全班学号保存全班学号char man[20]; //char man[20]; //保存全班性别保存全班性别保存全班性别float score[MAXM]; //float score[MAXM]; //保存全班所有课程成绩保存全班所有课程成绩保存全班所有课程成绩 float sum; //float sum; //保存全班每个人的总成绩保存全班每个人的总成绩保存全班每个人的总成绩float avg; // float avg; //保存每个人的平均成绩保存每个人的平均成绩保存每个人的平均成绩};struct student s[MAXN];struct http{char subject[20]; //char subject[20]; //保存全班所有课程保存全班所有课程保存全班所有课程};struct http c[MAXM];void main() //void main() //欢迎首界面欢迎首界面欢迎首界面{ int select,l;system("color fC");printf("\n");printf("\n");printf("\n");printf("\n");printf(" printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n"); \n"); printf(" * *\n"); printf(" * *\n"); printf(" * printf(" * 欢迎进入终极一班学生管理系统欢迎进入终极一班学生管理系统欢迎进入终极一班学生管理系统 *\n"); *\n"); printf(" * *\n"); printf(" * ︻┳═一︻┳═一︻┳═一 cf ... *\n"); cf ... *\n"); printf(" * printf(" * ┈━═☆甘总管的多塔生活∝╬══→┈━═☆甘总管的多塔生活∝╬══→┈━═☆甘总管的多塔生活∝╬══→ *\n"); *\n"); printf(" * *\n"); printf(" * printf(" * 凸凸^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸 *\n"); printf(" printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n"); \n"); printf(" printf(" ╭ ╭ ╭ v v v╮╮ ╔══╗╔╗╔══╗╔╗ ╔╗╔╗╔╗╔╗╔╗╔╗ ╭╭''''''╮╮\n");printf(" (@ ^o^ @)╚╗╔╝║║╔═╦╦╦═╗║╚╝╠═╦╦╗(~ : : ~~)\n");printf(" (~) : (~)╔╝╚╗║╚╣║║║║╠╣╚╗╔╣║║║║(~) v (~)\n");printf(" ╚══╝╚═╩═╩═╩═╝ ╚╝╚═╩═╝ \n");printf("\n");printf("\n");printf(" printf(" 请按任意键进入下一界面请按任意键进入下一界面请按任意键进入下一界面\n"); \n");printf("------------------------------------------------------------------\n"); system("pause");system("color f2");system("color f1");system("color f3"); system("color fE");system("color fB");system("color f5");system("color f9");system("color f6");system("color f1");system("color f3");system("color fE");system("color fB");system("color f5");system("color f9"); system("color f6");system("color f1");system("color f3");system("color f5");system("color f9");system("color f6");system("color fD");system("pause");system("color fC");system("cls"); // system("cls"); //上面是第一个界面上面是第一个界面上面是第一个界面while(1){system("cls");printf(" ****************欢迎进入终极一班学生管理系统****************\n");printf(" ******************************************************\n");printf(" * ∝╬══→ 1.学生成绩新建 囧rz 欢 *\n");printf(" * ::======>> 2. 2.学生成绩插入学生成绩插入学生成绩插入 迎迎 *\n"); printf(" * printf(" * ┈━═☆┈━═☆┈━═☆ 3. 3.学生成绩修改学生成绩修改学生成绩修改 来来 *\n"); printf(" * printf(" * ∝╬══→∝╬══→∝╬══→ 4. 4.学生成绩删除学生成绩删除学生成绩删除 到到 *\n"); printf(" * ∝╬══→∝╬══→ 5. 5.学生成绩统计学生成绩统计学生成绩统计 英英 *\n"); printf(" * printf(" * ∝╬══→∝╬══→∝╬══→ 6. 6.学生成绩查询学生成绩查询学生成绩查询 雄雄 *\n"); printf(" * printf(" * ▄︻┻═┳▄︻┻═┳▄︻┻═┳ 7. 7.学生成绩保存学生成绩保存学生成绩保存 联联 *\n"); printf(" * printf(" * ∝╬══→∝╬══→∝╬══→ 8. 8.退出退出退出//撒拉嘿撒拉嘿 盟盟 *\n"); printf(" * ( printf(" * (⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙) *\n"); ) *\n");printf(" ******************************************************\n"); printf("\n"); printf("\n printf("\n"); printf("\n 请输入您的选择编号请输入您的选择编号请输入您的选择编号,,回车键继续:回车键继续:\n"); \n");printf("---------------------------------------------------------------------------\n"); scanf("%d",&select);do {if(select<1||select>8){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&select);}l=select;}while(l<1||l>8);switch(select) {case 1:input();break; //1. case 1:input();break; //1.学生成绩新建学生成绩新建学生成绩新建case 2:sort(); break; //2. case 2:sort(); break; //2.学生成绩插入学生成绩插入学生成绩插入case 3:load(); break; //3. case 3:load(); break; //3.学生成绩修改学生成绩修改学生成绩修改case 4:print(); break; //4. case 4:print(); break; //4.学生成绩删除学生成绩删除学生成绩删除case 5:total();break; //5. case 5:total();break; //5.学生成绩统计学生成绩统计学生成绩统计case 6:search();break; //6. case 6:search();break; //6.学生成绩查询学生成绩查询学生成绩查询case 7:save();break; //7. case 7:save();break; //7.学生成绩保存学生成绩保存学生成绩保存case 8: end();break; //8. case 8: end();break; //8.结束结束结束default:printf(" default:printf(" 请按相应数学选择系统功能:请按相应数学选择系统功能:请按相应数学选择系统功能:"); ");}}}void input() //1学生成绩输入成绩模块成绩输入成绩模块{int i,j,b;float a=0;printf(" printf(" 请输入该班同学的人数:请输入该班同学的人数:请输入该班同学的人数:\n"); \n");printf(" printf(" 班同学的人数在班同学的人数在1~%d 之间:之间:\n",MAXN); \n",MAXN);scanf("%d",&R);do{if(R<1||R>100){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&R);}b=R;} while(b<1||b>100);for(i=0;i<MAXM;i++){printf(" printf(" 请输入该班同学的第请输入该班同学的第请输入该班同学的第%d %d 门课程名称为:门课程名称为:\n",(i+1)); \n",(i+1));scanf("%s", &c[i].subject);}for(i=0;i<R;i++){printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的姓名:个同学的姓名:\n",(i+1)); \n",(i+1)); scanf("%s",&s[i].name);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的学号:个同学的学号:\n",(i+1)); \n",(i+1));scanf("%s",&s[i].num);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的性别(注:可以不详):\n",(i+1)); scanf("%s",&s[i].man);printf(" printf(" 请依次输入请依次输入请依次输入%d %d 门学科的成绩:门学科的成绩:\n",MAXM); \n",MAXM);for(j=0;j<MAXM;j++){printf(" printf(" 请输入课程请输入课程请输入课程%s %s 的成绩为:的成绩为:\n",c[j].subject); \n",c[j].subject);scanf("%f",&s[i].score[j]);a=a+s[i].score[j];}s[i].sum=a;s[i].avg=s[i].sum/MAXM;a=0;}}void sort() //2学生成绩插入成绩模块模块{int i,j,k,b;float a=0;printf(" printf(" 请输入要插入的学生的位置请输入要插入的学生的位置1~%d 号:号:\n",R); \n",R);printf(" printf(" 第几个学生的位置之后:第几个学生的位置之后:第几个学生的位置之后:\n"); \n");scanf("%d",&k);do{if(k<1||k>R){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&k);}b=k;}while(b<1||b>R);R=R+1;for(i=R;i>k;i--){strcpy(s[i].name,s[i-1].name);strcpy(s[i].num,s[i-1].num);strcpy(s[i].man,s[i-1].man);s[i].sum=s[i-1].sum;s[i].avg=s[i-1].avg;for(j=0;j<MAXM;j++) {s[i].score[j]=s[i-1].score[j];}}printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的姓名:个同学的姓名:\n",(k+1)); \n",(k+1));scanf("%s",&s[k].name);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的学号:个同学的学号:\n",(k+1)); \n",(k+1));scanf("%s",&s[k].num);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的性别(注:可以不详):\n",(k+1)); scanf("%s",&s[k].man);printf(" printf(" 请依次输入请依次输入请依次输入%d %d 门学科的成绩:门学科的成绩:\n",MAXM); \n",MAXM);for(j=0;j<MAXM;j++){printf(" printf(" 请输入课程请输入课程请输入课程%s %s 的成绩为:的成绩为:\n",&c[j].subject); \n",&c[j].subject);scanf("%f", &s[k].score[j]);a=a+s[k].score[j];}s[k].sum=a;s[k].avg=s[k].sum/MAXM;}void load() //3学生成绩修改学生成绩修改 {int load1(); int load2();int select,index,b;while(1){printf("*************************************************************\n");printf(" * 1.按学号修改按学号修改 * * \n");printf(" * 2.按姓名修改按姓名修改 * * \n"); printf(" * 0.返回返回 * * \n");printf(" * 请输入您的选择编号:请输入您的选择编号: * * \n");printf("*************************************************************\n");scanf("%d",&select);do{if(select<0||select>2){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&select);}b=select;}while(b<0||b>2);switch(select){case 1:index=load1(); break;case 2:index=load2();break;case 0:return;}if(index!=-1){int i,j;float a=0,h[MAXM];i=index;printf(" printf(" 请输入请输入请输入%d %d 号的新学号:号的新学号: \n",i+1); \n",i+1);scanf("%s",&s[i].name);printf(" printf(" 请输入请输入请输入%d %d 号的新姓名:号的新姓名: \n",i+1); \n",i+1); scanf("%s",&s[i].num);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的性别(注:可以不详):\n",(i+1)); scanf("%s",&s[i].man);for(j=0;j<MAXM;j++){printf(" printf(" 请输入课程请输入课程请输入课程%s %s 的成绩为:的成绩为:\n",&c[j].subject); \n",&c[j].subject);scanf("%f",&h[j]);s[i].score[j] =h[j];a=a+s[i].score[j];}s[i].sum=a;s[i].avg=s[i].sum/MAXM;printf(" printf(" 修改成功。

学生档案管理系统

学生档案管理系统

自考毕业论文题目:**中学学生档案管理系统设计与实现专业:计算机信息管理学生XX:**XX号:**************指导教师:**职称:**日期:20**年*月**日目录摘要1关键词1一、绪论21、引言22、背景简介23、开发目标24、开发意义3二、可行性研究与开发工具简介41、可行性分析4〔1〕经济可行性4〔2〕技术可行性4〔3〕操作可行性4〔4〕运行可行性52、开发工具简介5〔1〕C#技术简介5〔2〕SQL Server 2000数据库简介6〔3〕C/S模式简介7三、需求分析81、需求分析任务8〔1〕设计思想8〔2〕设计原那么82、系统功能模块概述9四、总体设计101、功能模块设计102、子系统模块设计11〔1〕用户管理功能模块11〔2〕信息管理功能模块11〔3〕查询管理功能模块11〔4〕系统维护模块123、系统流程图13五、数据库设计141、概念构造设计142、逻辑构造设计163、数据库的连接174、数据库的加密18六、系统详细设计191、用户登录模块设计192、主界面设计193、学生档案管理模块设计20〔1〕学生档案查询界面设计20〔2〕学生档案添加界面设计21〔3〕学生档案修改界面设计21 4、成绩管理模块设计22〔1〕成绩查询界面设计22〔2〕成绩显示界面设计22〔3〕成绩修改界面设计23〔4〕成绩统计界面设计245、课程管理模块设计246、班级管理模块设计257、用户管理模块设计25〔1〕增删用户界面设计25〔2〕修改密码界面设计26七、系统测试271、白盒测试272、黑盒测试283、本系统的测试28结论29致谢30参考文献31 附录32临江中学学生档案管理系统设计与实现**大学计算机信息管理**指导教师**摘要:随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。

管理信息系统是一个不断开展的新型学科,任何一个单位要生存要开展,要高效率地把部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

学生管理系统c语言源代码

学生管理系统c语言源代码

学生管理系统c语言源代码学生管理系统c语言源代码#include stdio.h#include dos.h#include string.h#include stdlib.h#include malloc.h#define SIZE 8struct student{char name;char num;int score;float ave;struct student *next;}stu[SIZE],temp,s;void shuru(){int i,j,sum,length,flag=1,a;FILE *fp;while(flag==1){printf(“Define a rangeclass number:");scanf("%d",printf("Input the total number of the class(a):"); scanf("%d",length);if(lengtha)flag=0;}for(i=0;ilength;i++){printf("\n请输入学生的信息:");printf("\n输入姓名:");scanf("%s",stu[i].name);printf("\n输入序号.:");scanf("%s",stu[i].num);printf("\n输入成绩:\n");sum=0;for(j=0;jj++){printf("score %d:",j+1);scanf("%d",stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}学生管理系统c语言源代码fp=fopen("stu1.txt","w");for(i=0;ilength;i++)if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stu1.txt","r");printf("\name\ NO. score1 score2 score3 sum ave\n");for(i=0;ilength;i++){fread(stu[i],sizeof(struct student),1,fp);printf("%3s%5s%7d%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i ].score,stu[i].score,stu[i].score,sum=stu[i].score+stu[i].score+stu[i].score,stu[i].ave);}}void chaxun(){ FILE *fp, *fp1;char n,name;int i,j,k,t,m,flag=1;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");k=i;printf("\nPlease select the menu(1.number ):"); scanf("%d",switch(m){case 1:printf("\nchaxun number:");scanf("%s",n);for(flag=1,i=0;ii++){if(strcmp(n,stu[i].num)==0){j=i;flag=0;break;}}break;case 2:printf("\nchaxun name:");scanf("%s",name);for(flag=1,i=0;ii++){if(strcmp(name,stu[i].name)==0){j=i;flag=0;break;学生管理系统c语言源代码}}}if(!flag){printf("\nYou can find:\n");fp1=fopen("stu2.txt","w");printf(" name NO. score1 score2 score3ave\n");fwrite(stu[j],sizeof(struct student),1,fp1);printf("%-15s%11s%7d%7d%7d%10.2f",stu[j].name,stu[j].num,stu[j].score,stu[j].score,stu[j].score,stu[j].ave);}else printf("\nNot found!");fclose(fp);fclose(fp1);}xiugai(){ int a;printf("\nplease select the menu(1.CHARU 2.__ ):");scanf("%d",switch(a){case 1:Insert(); break;case 2:Delete(); break;}}Insert(){ FILE *fp;int i,j,t,n;printf("\nNO.:");scanf("%s",s.num);printf("name:");scanf("%s",);printf("score1,score2,score3:");scanf("%d,%d,%d",s.score,s.score,s.score);s.ave=(s.score+s.score+s.score)/3.0;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)学生管理系统c语言源代码printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(t=0;stu[t].aves.avett++);printf("\nnow:\n");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fwrite(s,sizeof(struct student),1,fp);printf("\n%-15s%11s%7d%7d%7d%10.2f",,s.num,s.score,s.score, s.score,s.ave);for(i=t;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}Delete(){ FILE *fp;int i,j,t,n,flag;char number;if((fp=fopen("stu1.txt","rb"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;学生管理系统c语言源代码printf("\nInput number deleted:");scanf("%s",number);for(flag=1,i=0;flagii++){if(strcmp(number,stu[i].num)==0){for(t=i;tt++){strcpy(stu[t].num,stu[t+1].num);strcpy(stu[t].name,stu[t+1].name);for(j=0;jj++)stu[t].score[j]=stu[t+1].score[j];stu[t].ave=stu[t+1].ave;}n=n-1;elseprintf("\n Not found!");printf("\nNow,the content of file:\n");fp=fopen("stu1.txt","wb");for(i=0;ii++)fwrite(stu[i],sizeof(struct student),1,fp);fclose(fp);fp=fopen("stu1.txt","r");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++)printf("%-15s%11s%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score, stu[i].score,stu[i].score,stu[i].ave);fclose(fp);}paixu(){FILE *fp;int i,j,n;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(i=0;ii++)for(j=i+1;jj++)学生管理系统c语言源代码if(stu[i].avestu[j].ave){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("\nnow:");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);tongji(){ FILE *fp;int i,j,k,labe1,b;int a5=0;int a6=0;int a7=0;int a8=0;int a9=0; int a10=0; float t;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num); for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);k=i;for(i=0;ii++){labe1=0;if(stu[i].ave60){labe1++;t=labe1/(float)k*100;}}printf("\nbujigelv:");printf("%f%",t);printf("\n");for(j=0;jj++){a5=0;a6=0;a7=0;a8=0;a9=0;a10=0;k=i;printf("kemu is %d:\n",j);for(i=0;ii++)学生管理系统c语言源代码{b=stu[i].score[j]/10;if(b6)a5++;elseif(b=6b7)a6++;elseif(b=7b8)a7++;elseif(b=8b9)a8++;if(b=9b10)a9++;elseif(b==10)a10++;}printf(" 不及格is %d\n",a5);printf(" 60--69 is %d\n",a6);printf(" 70--79 is %d\n",a7);printf(" 80--89 is %d\n",a8);printf(" 90--99 is %d\n",a9);printf(" 100 is %d\n",a10);}}main(){int a;printf(" ____\n"); printf(" 欢迎进入学生成绩管理系统\n");printf(" ____\n"); while(1){printf("\n选择菜单:\n");printf("\n");printf(" 1.输入 2.查询 3.排序 4.修改 5.统计 6.退出\n"); scanf("%d",switch(a){case 1: shuru();break;case 2: chaxun(); break;case 3: paixu(); break;case 4: xiugai(); break;学生管理系统c语言源代码case 5: tongji();break; case 6: exit(0); }。

基于ASP+ACCESS的学生信息管理系统(源代码及全套资料)

基于ASP+ACCESS的学生信息管理系统(源代码及全套资料)

摘要随着科学技术的发展,计算机领域不断取得新的研究成果。

并不断地代替和延伸脑力劳动方面发挥越来越重要的作用,无论是工业还是日常生活都越来越离不开计算机,尤其是在学校里,随着不同高校的的不断扩大和招生人数的不断增加,要处理大量的学生数据信息显得尤为的重要。

学生的信息管理是学校工作中一项重要的内容。

本系统论文主要是管理学生的资料。

重点介绍其功能:信息添加、信息修改、信息的删除及信息查询。

使用进行静态页面设计 ,应用A S P 程序进行后台管理操作,并用A ccess 进行后台数据库的连接设计。

主要是以四大功能进行系统的设计和实现。

关键词: Dreamw eaver M X 2004 系统站点设计 A S P A ccess 数据库1 .1 开发工具的介绍1 . 1 . 1 AS PASP ( Ac t i ve Se ve r Pa g e s 动态网页)是微软公司推出的一种用以取代CGI ( Common Ga t e wa y I nt e r f a c e ) 技术。

目前, I nt e r ne t 上的许多基于W i ndows 平台的W e b 站点已开始应用 ASP 来替换 CGI 。

ASP 是在服务器端脚本编译环境,使用它可以创建和运行动态、交互的 W e b 服务器应用程序。

ASP 可以与 HT ML 页、脚本命令和 Ac t i ve X 组件组合创建交互的 W e b 页和基于 W e b 的功能强大的应用程序。

ASP 应用程序很容易开发和修改。

ASP 是一个位于服务器端的脚本运行环境。

通过这种环境,用户可以创建和运行动态的交互式W e b 服务器应用程序,如交互式动态网页,包括使用H T M L表单收集和处理信息、上传与下载等。

通常情况下,用户通过浏览器看到的网页大多是静态的,目前I nt e r ne t 上的许多站点,仍然提供“静态”( s t a t i c )的主页内容。

课程设计:学生学籍管理系统源代码

课程设计:学生学籍管理系统源代码

#include”stdio。

h”#include"conio。

h”#include"stdlib。

h”#include”string。

h"#define N 1000 //N为可输入的学生总人数,可根据需要更改#define M 2 //M为宏定义的(在创建密码函数中)可建立的登陆用户个数,可更改struct student //定义学生信息结构体数组{char num[9]; //学号char name[20]; //姓名char depar[15]; //院系char zhuanye[15];//专业char classes[5]; //班级char age[3];//年龄char sex[4]; //性别char nation[5]; //民族char birth[9]; //出生日期char add[10];//籍贯};struct code //定义密码结构体数组{char name[20];char code[7];}co[M],s0;//确认是否新创建密码文件模块int code(){FILE *fp;if((fp=fopen("学生学籍管理系统__code。

txt","rt"))==NULL){printf(”密码文件不存在,请输入新的用户名及密码:\n");//若不存在此密码文件,则提示用户创建密码printf("请输入任意键继续!”);getch();system("cls");return 1; //无密码文件返回1 }elsereturn 0; //已有密码文件返回0 }//新创建初始密码void code_input(){FILE *fp;int i;if((fp=fopen(”学生学籍管理系统__code。

txt”,"wt"))==NULL);//当建立密码文件成功时,进入for循环for(i=0;i〈M;i++) //M为宏定义的可建立的登陆用户个数,可更改{printf("请录入第%d个用户名:",i+1);//创建不同的用户名及密码scanf(”%s",co[i]。

学生信息管理系统(完整代码、数据库、图片)

学生信息管理系统(完整代码、数据库、图片)

《Java应用开发》课程设计报告题目:学生信息管理系统指导老师:***姓名:**专业:计算机科学与技术班级: 10级1班日期:2012年6月目录一、系统总体设计 (3)(一)设计目标及完成功能 (3)(二)系统流程图 (4)二、详细设计 (5)(二)系统设计 (9)(三)源代码及技术 (12)三、使用与测试 (42)四、数据库设计 (43)总结(体会) (44)参考文献 (45)一、系统总体设计(一)设计目标及完成功能1、设计目标学生信息管理系统是学校的一项重要数据资源,因而学生信息管理必然成为学校的一项常规性的重要工作.加强学生信息管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范,工作效率低,难以达到预期的目的。

为提高工作效率、保证学校能够及时准确了解各学生的各种信息及学生总体信息,开发学生信息管理系统。

2、完成功能完成学生信息的基本管理.本系统分为管理员和学生管理两部分。

管理员管理项目如下:添加学生信息、修改学生信息、查询学生信息、删除学生信息;学生管理项目如下:添加学生信息、查询学生信息.(二)系统流程图二、详细设计图2-1 登陆界面1图2—2 登陆界面2图2—3 系统主界面图2—4 添加学生信息界面图2—5 修改学生信息界面图2—6 查询学生信息界面图2—7 删除学生信息界面图2-8 系统信息界面图2—9 我的信息界面(二)系统设计1、系统结构图学生信息管理系统学生登陆管理员登陆添加学生信息查询学生信息添加学生信息修改学生信息查询学生信息删除学生信息2、类及功能列表(三) 源代码及技术1、所有代码student.mdf -数据库将以下图片以上图名称存入images文件夹目录下。

要自己将各代码新建为.java格式文件,放在与images文件夹同目录下.并将数据库附加到sqlserver2005,再不需要任何改动方可运行.①登陆界面1import java。

成绩查询源代码

成绩查询源代码
void fun3(struct student *s);
void fun4(struct student *s);
void fun5(struct student *s);
void fun6(struct student *s);
struct student
{
char no[20];
{"10003","lisi","chemsi",12,"male"},
{"10004","mazhi","english",13,"fale"},
{"10005","kuko","math",14,"male"}};
fun(s);
}
void fun(struct student *s)
{
printf("\n\n\t\t数据错误");
}
}
else if(n==5)
{
printf("\n\n\t\t欢迎进入输出学生系统");
fun4(s);
} else if(n==6)
{
printf("\n\n\t\t谢谢使用学生管理系统!\n");
printf("\n\n\t\t请双击Enter键退出系统:");
{
int n;
printf("\n\n\t\t学生档案管理系统");
printf("\n\n\t----------------------------------------");

学籍管理系统c语言源代码

学籍管理系统c语言源代码

学籍管理系统C语言源代码1. 引言学籍管理系统是一种用于管理学生学籍信息的软件系统,它可以方便地对学生的个人信息、课程成绩、考试排名等进行管理和查询。

C语言是一种广泛应用于软件开发领域的编程语言,其简洁高效的特点使其成为学籍管理系统开发的理想选择。

本文将从学籍管理系统的需求分析、设计思路、主要功能实现和源代码解释等方面进行详细讨论。

2. 需求分析学籍管理系统的主要需求包括学生信息管理、课程管理和成绩管理等功能。

具体要求如下: 1. 学生信息管理:包括学生基本信息(姓名、性别、年龄、籍贯等)和学籍信息(学号、入学年份、班级等)的录入和查询。

2. 课程管理:包括课程信息(课程名称、学分、教师等)的录入和查询。

3. 成绩管理:包括学生成绩的录入和查询,并能计算每个学生的GPA(平均绩点)和排名。

3. 设计思路学籍管理系统的设计思路可以分为三个模块:学生信息管理模块、课程管理模块和成绩管理模块。

每个模块都有自己的功能,通过相互调用实现系统的完整功能。

3.1. 学生信息管理模块学生信息管理模块主要实现学生信息的录入和查询功能。

录入学生信息时,系统会要求输入学生的姓名、性别、年龄、籍贯等信息,并为学生分配一个唯一的学号。

以下是学生信息管理模块的伪代码示例:struct Student {int id;char name[20];char gender[10];int age;char hometown[50];};void addStudent(struct Student* student) {// 输入学生信息并存储到学生结构体中}void queryStudent(int id) {// 根据学号查询学生信息并输出}3.2. 课程管理模块课程管理模块主要实现课程信息的录入和查询功能。

录入课程信息时,系统会要求输入课程的名称、学分、教师等信息。

以下是课程管理模块的伪代码示例:struct Course {char name[50];int credit;char teacher[20];};void addCourse(struct Course* course) {// 输入课程信息并存储到课程结构体中}void queryCourse(char* name) {// 根据课程名称查询课程信息并输出}3.3. 成绩管理模块成绩管理模块主要实现学生成绩的录入和查询功能,并能计算每个学生的GPA和排名。

学籍管理系统c语言源代码

学籍管理系统c语言源代码

学籍管理系统c语言源代码
学籍管理系统是一款基于c语言编写的学生信息管理软件,主要
用于学校或教育机构管理学生的个人信息、学籍信息以及学生其它学
习情况。

学籍管理系统提供完整的管理功能,支持新增、删除、修改、查询等多种操作方式,能够有效提升学校或教育机构的信息化管理水平。

该系统的主要功能包括如下几个方面:
1、学生个人信息管理:包括学生的姓名、年龄、性别、家庭住址、联系电话等基本信息的录入、查询、修改、删除等操作。

2、学籍信息管理:包括学生的学号、学习年级、所在班级、入学
日期、学籍状态等信息的录入、查询、修改、删除等操作。

3、课程成绩管理:包括学生的各门课程成绩录入、查询、修改、
删除等操作,同时还支持导出成绩表格和打印成绩单等功能。

4、教师管理功能:该系统还能够支持教师信息的录入、修改、删
除等操作,方便管理学生和教师的关系,为教师提供更好的教学资源。

整个学籍管理系统的编写非常复杂,主要包括了前端界面设计,
数据库设计和源代码编写等多个环节。

代码的编写过程中主要用到了c 语言的诸多特性,如变量、分支语句、循环语句、数组、结构体等等。

编写过程中还需要注意效率和可读性的均衡,尽可能让代码简化、清晰,方便维护和修改。

总之,学籍管理系统是一种非常实用和有效的工具,能够帮助学
校或教育机构更好的管理学生和教师的信息,提高管理效率,为教育
的发展提供坚实的基础。

学生管理系统程序源代码

学生管理系统程序源代码

#include <stdio.h>#include <string.h>struct student{long int num;char name[20];int age;char sex[4];int e;char m[20];char b[30];char p[15];};int n=0;struct student stu[100];struct student *p;void lr();void ll();void cx();void xg();void sc();void bc();void dq();void px();void main(){int z;printf("+---------------------------+\n");printf("| 欢送使用学生档案管理系统|\n");printf("+---------------------------+\n");printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");do{printf("\n\t\t\t--------------------------------\n");printf("\t\t\t+ 主菜单|\n");printf("\t\t\t--------------------------------\n");printf("\t\t\t+ [1]----录入学生信息|\n");printf("\t\t\t+ [2]----浏览学生信息|\n");printf("\t\t\t+ [3]----查询学生信息|\n");printf("\t\t\t+ [4]----删除学生信息|\n");printf("\t\t\t+ [5]----修改学生信息|\n");printf("\t\t\t+ [6]----保存学生信息|\n");printf("\t\t\t+ [7]----读取学生信息|\n");printf("\t\t\t+ [8]----按学号排序|\n");printf("\t\t\t+ [0]----退出系统|\n");printf("\t\t\t--------------------------------\n");printf("请输入您的选择:");scanf("%d", &z);switch(z){case 0 : break;case 1 :lr();break;case 2 :ll();break;case 3 :cx();break;case 4 :sc();break;case 5 :xg();break;case 6 :bc();break;case 7 :dq();break;case 8 :px();break;default:printf("\n无效选项!");}}while(z!= 0);}void lr()/*录入函数*/{int y;if(n==0){p=stu;}else{p=&stu[n];}do{printf("--------------------\n");printf("请输入学生的学号:");scanf("%ld",&p->num);printf("请输入学生的姓名:");scanf("%s",p->name);printf("请输入学生的年龄:");scanf("%d",&p->age);printf("请输入学生的性别:");scanf("%s",p->sex);printf("请输入学生的出生日期:");scanf("%d",&p->e);printf("请输入学生的E-mail:");scanf("%s",p->m);printf("请输入学生的籍贯:");scanf("%s",p->b);printf("请输入学生的:");scanf("%s",p->p);n++;p++;printf("\n1.继续输入.\n0.输入完毕.\n");printf("请选择:");scanf("%d",&y);}while(y==1);printf("提示:输入完毕!你一共输入%d个\n",n);}void ll()/*浏览函数*/{int i;if(n!=0){ printf("学生总数:%d\n", n);printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t \n");printf("-----------------------------------------------------\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,st u[i].m,stu[i].b,stu[i].p);}else printf("提示:无学生数据,请输入数据!");}void cx()/*查询函数*/{int c;int w,i,j=0;char name[20];if(n!=0){do{ printf("\n");printf("+--------------------+\n");printf("| 按学号查询请按1 |\n");printf("| 按姓名查询请按2 |\n");printf("| 取消请按0 |\n");printf("+--------------------+\n");printf("请输入您的选择:");scanf("%d", &c);switch(c){case 0:break;case 1:printf("请输入学生的学号;");scanf("%ld", &w);printf("\n");for(i=0;i<n;i++)if(stu[i].num==w){printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t \n");printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,st u[i].m,stu[i].b,stu[i].p);j=1;}if(j==0)printf("提示:没有该学生记录,请核对!");break;case 2:printf("请输入学生的姓名:");scanf("%s", name);printf("\n");for(i=0;i<n;i++)if(strcmp(name,stu[i].name)==0){printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t \n");j=1;printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,st u[i].m,stu[i].b,stu[i].p);}if(j==0)printf("提示:没有该学生记录,请核对!");break;default:printf("\n提示:无效选项!");break;}}while(c!= 0);}else printf("提示:无学生数据,请输入数据!"); return;}void xg()/*修改函数*/{long int num;int i,j,c;if(n!=0){printf("请输入您要修改的学生的学号:");scanf("%ld", &num);printf("\n");for(i=0;i<n;i++)if(stu[i].num==num)j=i;do{printf("请选择您要修改的学生的内容:\n");printf("+----------------------+\n");printf("| 姓名请按1 |\n");printf("| 年龄请按2 |\n");printf("| 性别请按3 |\n");printf("| 出生年月请按4 |\n");printf("| E-mail 请按5 |\n");printf("| 学号请按6 |\n");printf("| 籍贯请按7 |\n");printf("| 请按8 |\n");printf("| 取消请按0 |\n");printf("+----------------------+\n");printf("请输入您的选择:");scanf("%d", &c);printf("\n");switch(c){case 0:break;case 1:printf("请输入新姓名:");scanf("%s",stu[j].name);break;case 2:printf("请输入新年龄:");scanf("%d",&stu[j].age);break;case 3:printf("请输入新性别:");scanf("%s",stu[j].sex);break;case 4:printf("请输入新出生年月:");scanf("%d",&stu[j].e);break;case 5:printf("请输入新E-mail:");scanf("%s",stu[j].m);break;case 6:printf("请输入新学号:");scanf("%ld",&stu[j].num);break;case 7:printf("请输入新籍贯:");scanf("%s",stu[j].b);break;case 8:printf("请输入新:");scanf("%s",stu[j].p);break;default:printf("\n无效选项!");break;}}while(c!= 0);}else printf("提示:无学生数据,请输入数据!");}void sc()/*删除函数*/{long int num;int i,j,e;if(n!=0){printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t \n");printf("-----------------------------------------------------\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,st u[i].m,stu[i].b,stu[i].p);printf("请输入您要删除的学生的学号:");scanf("%ld", &num);printf("\n");for(i=0;i<n;i++)if(num==stu[i].num)j=i;if(j!=(n-1)){for(e=i-1;e<n;e++,j++){stu[j].num=stu[j+1].num;strcpy(stu[j].name,stu[j+1].name);strcpy(stu[j].sex,stu[j+1].sex);stu[j].e=stu[j+1].age;strcpy(stu[j].m,stu[j+1].m);stu[j].age=stu[j+1].age;strcpy(stu[j].b,stu[j+1].b);strcpy(stu[j].p,stu[j+1].p);n--;p--;}}else {n--;p--;}printf("提示:删除完毕!");}else printf("提示:无学生数据,请输入数据!");}void bc() /*保存学生信息到文件的函数*/{int i;char x='0';FILE *fp;if((fp=fopen("student.txt","wb"))==NULL) /*创立文件并判断是否能够翻开成功*/{printf("文件不能翻开!\n");return; /*如果不能翻开文件,那么关闭当前所有的文件*/}for(i=0;i<n;i++) /*将内存中的学生信息写入到磁盘文件中*/if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件输入错误!\n");fclose(fp); /*关闭文件*/x=(char)i;if((fp=fopen("math.txt","wb"))==NULL){printf("文件创立失败!");return;}fputc(x,fp);fclose(fp);}void dq(){int i;char x;FILE *fp;if((fp=fopen("math.txt","rb"))==NULL){printf("翻开错误!\n");return;}x=fgetc(fp);fclose(fp);n=(int)x;if((fp=fopen("student.txt","rb"))==NULL){printf("翻开文件时错误!请按任意键退出!");return;}printf(" 所有学生的信息为:\n \n");printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t \n");for(i=0;i<n;i++){fread(&stu[i],sizeof(struct student),1,fp);printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,st u[i].m,stu[i].b,stu[i].p);}fclose(fp);}void px(){int i,j;/*计数变量*/struct student temp;for(i=0;i<n-1;i++) /*运用冒泡排序对结构体数组进行排序*/for (j=i+1;j<n;j++){if(stu[i].num>stu[j].num){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}}printf("\n排序后的学生信息:\n\n");for (i=0;i<n;i++){printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,st u[i].m,stu[i].b,stu[i].p);}/*输出排序后的学生信息*/return;}。

学生管理系统源代码

学生管理系统源代码

#include<iostream>#include<stdlib.h>#include<string.h>#include<malloc.h>#define INIT_SIZE 10#define INCRE_SIZE 10#define SUBJECT_NUM 3#define LEN 3void show_Start();void show_Table();void addRecord();void Info_delete();void deleteRecord();void delete_Num(int);void delete_Name(char tarName[]);void Info_modify();void modifyRecord();void modify_Num(int);void modify_Name(char[]);void Info_query();void queryRecord();void query_Num(int);void query_Name(char[]);void display();void quit();void menu_CMD();char *subject[SUBJECT_NUM] = struct STUDENT{int num;char name[20];char sex;float score[SUBJECT_NUM]; };//struct STUDENT stu[LEN + 1];//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);int static stuNum = 0;//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);;int main(){//record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);/*record[1].num = 1001;strcpy(record[1].name,"Jason");record[1].sex = 'M';record[1].score[0] = 85.0;record[1].score[1] = 90.0;record[1].score[2] = 95.0;record[2].num = 1002;strcpy(record[2].name,"Jerry"); record[2].sex = 'M';record[2].score[0] = 85.0; record[2].score[1] = 90.0; record[2].score[2] = 95.0;record[3].num = 1003;strcpy(record[3].name,"J es sie"); record[3].sex = 'F';record[3].score[0] = 85.0; record[3].score[1] = 90.0; record[3].score[2] = 95.0;*//*Info_modify();int key;cout<cin>>key;if(key == 1){int targetNum;coutcin>>targetNum;modify_Num(targetNum); cout<<endl;display();}if(key == 2){char targetName[20];cout<cin>>targetName;modify_Name(targetName); cout<<endl;display();}if(key == 3){exit(0);}*/show_Start();menu_CMD();return 0;}void show_Start(){//cout<<endl;cout<<" **************************************** "<<endl; cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" Made by Jason "<<endl; cout<<" **************************************** "<<endl;}//.void show_Table(){cout<<" <<"\t"<<" "<<"\t"<<"cout<<"\t"<<subject[0]<<"\t"<<subject[1]<<"\t"<<subject[2];cout<<endl;}void menu_CMD(){int key;while(1){cout<<"1. <<endl;cout<<"2. <<endl;cout<<"3. <<endl; cout<<"4. <<endl; cout<<"5. <<endl; cout<<"6. <<endl; cout<<"cin>>key;while(1){if((key < 1)||(key > 6)){int key;cout<< "<<endl; cout<< (1 - 5) : "; cin>>key;}else{break;}}switch(key){case 1:addRecord();break;case 2:deleteRecord();break;case 3:modifyRecord();break;case 4:queryRecord();break;case 5:display();break;case 6:quit();break;}}}///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// ////////////void addRecord(){if(stuNum == 0){cout<< <<endl;stuNum++;}else{cout<<" <<endl;stuNum++;}//if(stuNum > INIT_SIZE){cout<< "<<endl; record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(STUDENT));cout<<" !"<<endl;}cout<<" <<endl;cout<<" (Y/N) : ";char choi;cin>>choi;if((choi == 'Y')||(choi == 'y')){cout<<" : ";cin>>record[stuNum].num;cout<<" : ";cin>>record[stuNum].name;cout<<"(M , F) : ";cin>>record[stuNum].sex;int i;for(i = 0;i < SUBJECT_NUM;i++){cout<<" "<<subject[i]<< : ";cin>>record[stuNum].score[i];}}if((choi == 'N')||(choi == 'n')){cout<<" <<endl;cout<<endl;}cout<< <<stuNum<<" !"<<endl;cout<<endl;}///////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// /////////// \//deleteRecordvoid Info_delete(){cout<<" : "<<endl; cout<<"1. "<<endl; cout<<"2. <<endl; cout<<"3. "<<endl; }//void deleteRecord(){int key;cout<<endl;Info_delete();cout<<" : "; cin>>key;if(key == 1){int targetNum;cout<<" : ";cin>>targetNum;//delete_Num(targetNum);cout<<endl;}if(key == 2){char targetName[20];cout<<" : "; cin>>targetName;delete_Name(targetName); cout<<endl;}if(key == 3){while(1){menu_CMD();}}}//void delete_Num(int tarNum){int i;for(i = 1;i <= stuNum;i++){if(record[i].num == tarNum){////1.//2.if(i = stuNum){cout<<" : "<<endl;show_Table();cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t" <<record[i].score[0]<<record[i].score[1]<<"\t"<<record[i].score[2];cout<<endl;cout<<endl<<" : "<<endl;show_Table();for(int i = 1;i <= stuNum - 1;i++){cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;for(int j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}/*stuNum--;cout<<" <<stuNum<<";cout<<endl;*/}//2.if(i != stuNum){cout<<" : "<<endl;show_Table();cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];for(int j = i+1;j <= stuNum;j++){record[j-1] = record[j];}//cout<<endl;cout<<" : "<<endl;show_Table();for(int i = 1;i <= stuNum-1;i++){cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;for(int j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}/*stuNum--;cout<<" "<<stuNum<<"cout<<endl;*/}stuNum--;cout<<" "<<stuNum<<cout<<endl;}}}/*//void delete_Name(char tarName[]){int i;for(i = 1;i <= stuNum;i++){if(strcmp(record[i].name,tarName) == 0){////1.//2.//if(i = stuNum){cout<<" : "<<endl;show_Table();cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"<<record[i].score[0]<<record[i].score[1]<<"\t"<<record[i].score[2];cout<<endl;cout<<endl<<" : "<<endl;show_Table();for(int i = 1;i <= stuNum - 1;i++){cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;for(int j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}}/if(i != stuNum){cout<<" : "<<endl;show_Table();cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];//for(int j = i+1;j <= stuNum;j++){record[j-1] = record[j];}cout<<endl;//cout<<" : "<<endl;show_Table();for(int i = 1;i <= stuNum-1;i++){cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex; for(int j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}cout<<endl;}void delete_Name(char tarName[]){int i;for(i = 1;i <= stuNum;i++){////1.//2.// if(strcmp(record[i].name,tarName) == 0){if(i == stuNum){cout<<" : "<<endl;show_Table();cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];cout<<endl;cout<<" : "<<endl;for(int i = 1;i <= stuNum-1;i++){cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;for(int j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}/*stuNum--;cout<<" "<<stuNum<<" ";cout<<endl;*/}/if(i != stuNum){cout<<" "<<endl;cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t";cout<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];cout<<endl;for(int j = i+1;j <= stuNum;j++){record[j-1] = record[j];}//. cout<<endl;cout<<" : "<<endl;show_Table();for(int i = 1;i <= stuNum-1;i++){cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;for(int j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}/*stuNum--;cout<<" "<<stuNum<<cout<<endl;*/}stuNum--;cout<<" <<stuNum<< ";cout<<endl;}}}/***************************************************************************** ******************************************************************************/void Info_modify(){cout<<"\ : "<<endl;cout<<"1. "<<endl; cout<<"2. "<<endl; cout<<"3. "<<endl; }void modifyRecord(){int key;cout<<endl;Info_modify();cout<<" : ";cin>>key;//if(key == 1){int targetNum;cout<< : ";cin>>targetNum;modify_Num(targetNum); cout<<endl;//display();}//if(key == 2){char targetName[20];cout<< : ";cin>>targetName;modify_Name(targetName); cout<<endl;//display();}if(key == 3){while(1){menu_CMD();}}}//void modify_Num(int tarNum){int i;for(i = 1;i <= stuNum;i++){if(record[i].num == tarNum){cout<<endl<<" "<<endl;cout<<" : ";cin>>record[i].num;cout<<" : ";cin>>record[i].name;cout<<";cin>>record[i].sex;cout<<" "<<subject[0]<<" ";cin>>record[i].score[0];cin>>record[i].score[1];cout<<" "<<subject[2]<< ";cin>>record[i].score[2];}}}void modify_Name(char tarName[]){int i;for(i = 1;i <= stuNum;i++){if(strcmp(record[i].name,tarName) == 0) {cout<<endl<<" : "<<endl;cout<<" : ";cin>>record[i].num;cout<<" : ";cin>>record[i].name;cout<<" : ";cin>>record[i].sex;cin>>record[i].score[0];cout<<" "<<subject[1]<<" : ";cin>>record[i].score[1];cout<<" "<<subject[2]<<" : ";cin>>record[i].score[2];}}}void Info_query(){cout<<" : "<<endl;cout<<"1. "<<endl;cout<<"2. "<<endl;cout<<"3. "<<endl;}//queryRecordvoid queryRecord(){int key;Info_query();cout<<" ";cin>>key;if(key == 1){int targetNum;cout<<" : ";cin>>targetNum;query_Num(targetNum); cout<<endl;}if(key == 2){char targetName[20]; cout<<" : ";cin>>targetName; query_Name(targetName);}// .if(key == 3){while(1){menu_CMD();}void query_Num(int tarNum) {int i;for(i = 1;i <= stuNum;i++) {if(record[i].num == tarNum) {// cout<<" : "<<endl;//show_Table();// cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];cout<<endl;}}}//void query_Name(char tarName[]){int i;for(i = 1;i <= stuNum;i++){if(strcmp(record[i].name,tarName) == 0){cout<<" : "<<endl;show_Table();cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];cout<<endl;}}}//void display(){show_Table();int i,j;for(i = 1;i <= stuNum;i++){//cout<<"学号"<<"\t"<<""<<"\t"<<"性别";cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;for(j = 0;j < SUBJECT_NUM;j++){cout<<"\t"<<record[i].score[j];}cout<<endl;}cout<<endl;}//void quit(){char choi;cout<<" "<<endl;cout<<" (Y/N) : ";cin>>choi;if((choi == 'Y')||(choi == 'y')) {cout<< "<<endl;exit(0);}/ else{cout<<endl;menu_CMD();。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//**************************************************************************** //**** 说明:密码所在的文件位于c盘,文件名为1.txt。

//**** 学生基本信息最好保存在C盘,文件名为student.txt。

//**************************************************************************** #include <stdio.h>#include <stdlib.h>#include <string.h>#define N 3struct student{char name[10];char no[10];char sex;int age;char bnote[100];};void print(bool menu)//打印基本信息{if (!menu){printf("学生基本信息录入,press 1\n");}else{printf("学生基本信息显示,press 2\n");printf("学生基本信息保存,press 3\n");printf("学生基本信息删除,press 4\n");printf("学生基本信息修改,press 5\n");printf("学生基本信息查询,press 6\n");}printf("退出学生信息系统,press 7\n");}bool Check(char pas[6])//密码验证{FILE *fp;char ch;char a[7]={" "};int i = 0;if ((fp=fopen("c:\\1.txt","r"))==NULL){printf("打开文件失败!\n");exit(0);ch=fgetc(fp);while (ch!=EOF&&i<6){a[i] = ch;ch=fgetc(fp);i++;}a[6] = '\0';if (!strcmp(pas,a)){return true;}else{printf("密码错误\n");return false;}fclose(fp);}void GetInfo(struct student *arr,int n)//学生基本信息录入{for (int i = 0;i<n;i++){printf("输入学生的基本信息:name no sex age bnote\n");scanf("%s %s %c %d %s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);}}void Display(struct student* arr,int n)//学生基本信息显示{printf("学生信息: Name NO Sex age Note\n");for (int i = 0;i<n;i++){printf("%15s%15s%15c%15d%15s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote); }}void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt{FILE * fp;fp= fopen("c:\\student.txt","w+");if (fp == NULL)printf("文件不存在!\n");exit(0);}fwrite(arr,sizeof(struct student)*n,n,fp);fclose(fp);}void Modfiy(struct student* arr,int n)//学生基本信息修改{char number[10];bool flag=false;char pass[6];printf("请输入密码:\n");scanf("%s",pass);if (Check(pass)){printf("修改学生信息:\n");printf("请输入学号:\n");scanf("%s",number);for (int i =0;i<n;i++){if (!strcmp(number,arr[i].no)){printf("infor: name no sex age note\n");printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);printf("please input information:\n");scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);Save(arr,n);flag = true;}}if (flag == false){printf("该学生不存在!:\n");}}}void Delete(struct student* arr,int n)//学生基本信息删除{char number[10];bool flag=false;printf("Delete information:\n");printf("please input the no:\n");scanf("%s",number);for (int i =0;i<n;i++){if (!strcmp(number,arr[i].no)){strcpy(arr[i].name," ");strcpy(arr[i].no," ");strcpy(arr[i].bnote," ");arr[i].sex = ' ';arr[i].age = 0;Save(arr,n);flag = true;}}if (flag == true){printf("该学生不存在!:\n");}}void Search(struct student* arr,int n)//学生基本信息查询{int temp,i;bool flag=false;printf("---------------通过学号查询,press 1-------------\n");printf("---------------通过姓名查询,press 2-----------\n");printf("---------------通过性别查询,press 3------------\n");printf("---------------通过年龄查询,press 4------------\n");printf("---------------退出,press 5 ------------\n");scanf("%d",&temp);switch (temp){case 1://按照学号查询{char num[10];printf("请输入学号:\n");scanf("%s",num);for ( i =0;i<n;i++){if (!strcmp(num,arr[i].no)){printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no, arr[i].sex,arr[i].age,arr[i].bnote);flag = true;}}if (!flag){printf("该学生不存在.\n");}}break;case 2://按照名字查询{char num[10];printf("please input name:\n");scanf("%s",num);for ( i =0;i<n;i++){if (!strcmp(num,arr[i].name)){printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag = true;}}if (!flag){printf("该学生不存在.\n");}}break;case 3://按照性别查询{char ch;printf("请输入性别:\n");//scanf("%c",&ch);ch = getchar();for ( i =0;i<n;i++){if (ch == arr[i].sex){printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag = true;}}if (!flag){printf("t该学生不存在.\n");}}break;case 4://按照年龄查询{char num_age;printf("请输入年龄:\n");scanf("%d",&num_age);for ( i =0;i<n;i++){if (num_age == arr[i].age){printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag = true;}}if (!flag){printf("该学生不存在.\n");}}break;default:break;}}void main(){struct student arr[N];char ps[6];bool flag =false;printf("请输入密码:\n");scanf("%s",ps);flag = Check(ps);if (flag){int select;print(false);scanf("%d",&select);while (0<select && select <7 ) {switch (select){case 1:GetInfo(arr,N);print(true);break;case 2:Display(arr,N);print(true);break;case 3:Save(arr,N);print(true);break;case 4:Delete(arr,N);print(true);break;case 5:Modfiy(arr,N);print(true);break;case 6:Search(arr,N);print(true);break;default:break;}printf("请选择:\n");scanf("%d",&select);}}}。

相关文档
最新文档