学生管理系统设计源代码
vc学生管理系统完整代码

用穷举法找出1~100间的质数,显示出来。
分别使用while,do-while,for循环语句实现。
解:源程序:使用while循环语句:#include <iostream.h>#include <math.h>void main(){int i,j,k,flag;i = 2;while(i <= 100){flag = 1;k = sqrt(i);j = 2;while (j <= k){if(i%j == 0){flag = 0;break;}j++;}if (flag)cout << i << "是质数." << endl;i++;}}使用do…while循环语句:#include <iostream.h>#include <math.h>void main(){int i,j,k,flag;i = 2;do{flag = 1;k = sqrt(i);j = 2;do{if(i%j == 0){flag = 0;}j++;}while (j <= k);if (flag)cout << i << "是质数." << endl;i++;}while(i <= 100);}使用for循环语句:#include <iostream.h>#include <math.h>void main(){int i,j,k,flag;for(i = 2; i <= 100; i++){flag = 1;k = sqrt(i);for (j = 2; j <= k; j++){if(i%j == 0){flag = 0;break;}}if (flag)cout << i << "是质数." << endl;}}2-35 定义枚举类型weekday,包括Sunday到Saturday七个元素在程序中定义weekday类型的变量,对其赋值,定义整型变量,看看能否对其赋weekday类型的值。
学生信息管理系统C++代码

1.程序执行后的部分效果1.1项目主菜单效果图1.2初始化信息,第一次对信息的录入1.3添加学生信息1。
4删除某学生信息1.5修改某学生信息1。
6查询某学生信息1.7显示全部学生信息源代码:/*把StudentData。
cpp(源代码) 和 student。
txt(数据存放处)放在同一个文件夹下*/#include 〈iostream〉#include 〈string〉#include <fstream>#include 〈string>#include <iomanip〉using namespace std;//最多提供50个学生的数据,可根据需要进行更改const int MAX = 50;int count = 0;//用来统计学生人数class Student{public:void Set();//初始化信息,第一次对信息的录入void Add();//添加学生信息//从磁盘读取数据以便进行数据的操作,方便再重写进磁盘friend void Read(string no[],string name[],string sex[],string special[],string clas[]);int Judge(string num);//判断 num 是否在学生信息数据库中(注意它有一个参数,并且有一个int型的返回值)void Delete(); //删除某学生信息void Change(); //修改某学生信息void Search();//查询某学生信息void Display();//显示全部学生信息private:string m_no;string m_name;string m_sex; //m_ 指的是成员变量(member)string m_special;string m_clas;};void Student::Set(){string no, name, sex, special, clas;ofstream outfile(”student。
C语言课程设计---学生选课系统加源代码

C程序设计课程设计题目:学生选课系统专业班级:通信工程1班姓名:学号:指导教师:成绩:摘要学生选课系统是一个教育单位不可缺少的重要系统组成部分,它对于学校的决策者、管理者管理、查看课程来说都有至关重要,所以学生选课管理系统应该能够为广大学、师生提供充足的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统系统选课方便、快捷,用简单的界面来展示学生的选课信息,应用简单明了、存储量大、可靠性高、保密性好、寿命长、成本低等优点,可以极大的提高对学生信息管理的效率。
利用C语言开发,实现了简单的学生课程信息的录入、修改、查询、删除等操作,并且能够利用文件系统长久的保留原始数据。
目录一、需求分析 (1)二、总体设计 (1)三、详细设计 (2)1、数据定义......................................................... 错误!未定义书签。
2、算法流程图 (2)四、编码 (6)五、调试 (7)六、设计总结 (10)致谢 (11)参考文献 (12)附录 (13)一、需求分析语言文字描述系统要做什么数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。
选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。
二、总体设计系统由哪几个功能模块构成,给出功能模块图。
C中模块化的工具是函数根据上面的需求分析,可以将这个系统的设计分为如下七大模块:选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。
三、详细设计1.数据定义2,算法流程图(1)录入课程信息表(2)课程管理(3)录入课程信息(4)学生信息管理(5)学生选课(6)系统信息及查看系统(7)退出系统四、编码1.struct couse * head1;结构2.void keyboardc()//录入课程子函数(从键盘录入)3.void filec()//录入键盘子函数(从文件录入)4.void inputc()//录入课程主函数5.void insertc(struct couse *incouse)//课程管理子函数(增加课程)6.void delc(int num1)//课程管理子函数(删除课程)7.void elect(struct student * s)//选课8.void cheak()//学生选课子函数(查询可选课程)9.void back(struct student * p)//退课10.void hcheak()//学生选课子函数(查询已选课程)11.void elective()//学生选课主函数12.void listc()//输出课程信息13.void lists()//输出学生信息14.void intoc()//存储课程信息15.void intos()//存储学生信息16.void into()//存储信息17.void store()//信息主函数18.int main()//主函数五、测试1.主菜单2.录入课程信息3,从文件输入4,学生选课菜单5,学生信息管理6,管理员输入课程信息界面:六、设计总结问题一:无法读取文txt文件。
学生学籍成绩管理系统源程序

模块1:Option ExplicitPublic con As ADODB.ConnectionPublic rs As ADODB.RecordsetPublic username As StringPublic usergrade As StringPublic userpwd As StringPublic cmd As mand模块2Option ExplicitSub hidewindow()With ActiveWindow.DisplayGridlines = False.DisplayHeadings = False.DisplayOutline = False.DisplayZeros = False.DisplayHorizontalScrollBar = False.DisplayVerticalScrollBar = False.DisplayWorkbookTabs = FalseEnd WithEnd SubSub showwindow()With ActiveWindow.DisplayGridlines = True.DisplayHeadings = True.DisplayOutline = True.DisplayZeros = True.DisplayHorizontalScrollBar = True.DisplayVerticalScrollBar = TrueEnd WithEnd Sub模块3:Sub Macro1()Range("D2:D60000").SelectWith Selection.Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _xlBetween, Formula1:="团员,党员,预备党员,群众".IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithEnd SubSub Macro2()Range("J2:J60000").SelectWith Selection.Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _xlBetween, Formula1:="本科,专科".IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithEnd SubSub Macro3()Range("K2:K60000").SelectWith Selection.Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _xlBetween, Formula1:="在校,休学,毕业".IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithEnd SubUserForm1代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error GoTo doerrorDim sql As StringSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"sql = "select * from 用户数据表where 用户名= '" & boBox1.Text & "'"rs.Open sql, con, adOpenKeyset, adLockOptimisticIf boBox1.Text = "" ThenMsgBox "用户名不能为空!"boBox1.SetFocusExit SubEnd IfIf UserForm1.TextBox2.Text = "" ThenMsgBox "密码不能为空!"UserForm1.TextBox2.SetFocusExit SubEnd IfIf Trim(rs.Fields("密码")) = Trim(UserForm1.TextBox2.Text) Thenusername = Trim(rs.Fields("用户名"))usergrade = Trim(rs.Fields("权限"))userpwd = Trim(rs.Fields("密码"))Workbooks.Application.Visible = TrueSheets("目录").ActivateMe.HideUnload MeElseMsgBox "密码错误"TextBox2.Text = ""TextBox2.SetFocusExit SubEnd Ifrs.Closecon.CloseSet rs = NothingSet con = NothingExit Subdoerror:MsgBox "系统出现错误"End SubPrivate Sub CommandButton2_Click()ActiveWorkbook.SaveApplication.QuitEnd SubPrivate Sub UserForm_Initialize()Dim i As IntegerSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"rs.Open "select * from 用户数据表", con, adOpenKeyset, adLockOptimisticFor i = 1 To rs.RecordCountboBox1.AddItem rs.Fields("用户名")rs.MoveNextNext irs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubUserForm2代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextApplication.ScreenUpdating = FalseDim sql As StringSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"Set cmd.ActiveConnection = conIf UserForm2.TextBox1.Text = "" Or UserForm2.TextBox2.Text = "" Or UserForm2.TextBox3.Text = "" ThenMsgBox "更改信息不齐全!", 48Exit SubEnd IfIf userpwd = Trim(UserForm2.TextBox1.Text) ThenIf Trim(UserForm2.TextBox2) = Trim(UserForm2.TextBox3) ThenmandText = "update 用户数据表set 密码='" & UserForm2.TextBox2.Text & "'where 用户名= '" & username & "'"cmd.ExecuteMsgBox "密码更换成功!请牢记密码!"Unload MeElseMsgBox "确认密码输入有误,请重新输入!"UserForm2.TextBox3.SetFocusEnd IfElseMsgBox "原密码输入错误,请重新输入!"UserForm2.TextBox1.SetFocusEnd IfApplication.ScreenUpdating = Truers.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton2_Click()Unload MeEnd SubUserForm3代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextDim y As IntegerSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"rs.Open "select * from 用户数据表where 用户名='" & UserForm3.TextBox1.Text & "'", con, adOpenKeyset, adLockOptimisticIf UserForm3.TextBox1.Text = "" Or UserForm3.TextBox2.Text = "" Or UserForm3.TextBox1.Text = "" ThenMsgBox "信息不全,请完整填写信息"Exit SubEnd IfIf Not rs.EOF ThenMsgBox "用户名已存在,请重新输入"Exit SubElseSet cmd.ActiveConnection = conmandText = "INSERT INTO 用户数据表(用户名,密码,权限) V ALUES ('" & Trim(UserForm3.TextBox1.Text) & "','" & Trim(UserForm3.TextBox2.Text) & "','" & Trim(boBox1.Text) & "')"cmd.Executey = MsgBox("数据保存成功,是否继续增加", vbYesNo, "提示信息!")If y = vbYes ThenWith UserForm3.TextBox1.Text = "".TextBox2.Text = "".ComboBox1.Text = "".TextBox1.SetFocusExit SubEnd WithElseIf y = vbNo ThenUnload MeExit SubEnd IfEnd Ifrs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubUserForm4代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextDim y As StringDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"Set cmd.ActiveConnection = conIf Trim(username) = Trim(boBox1.Text) ThenMsgBox "当前用户不能删除"Exit SubEnd Ify = MsgBox("您是否真的删除该用户?", vbYesNo + 64, "提示")If y = vbYes ThenmandText = "delete * from 用户数据表where 用户名= '" & boBox1.Text & "'"cmd.ExecuteMsgBox "删除成功"Me.HideUnload MeElseboBox1.Text = ""Exit SubEnd Ifrs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton2_Click()Unload MeEnd SubPrivate Sub UserForm_Initialize()On Error Resume NextDim i As IntegerSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"rs.Open "select * from 用户数据表", con, adOpenKeyset, adLockOptimisticFor i = 1 To rs.RecordCountComboBox1.AddItem rs.Fields("用户名")rs.MoveNextNext irs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton2_Click()Unload MeEnd SubPrivate Sub UserForm_Initialize()On Error Resume NextComboBox1.AddItem ("一般用户")ComboBox1.AddItem ("高级用户")ComboBox1.AddItem ("管理员")End SubUserForm5代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextDim sql As StringDim con As ADODB.ConnectionDim rs As ADODB.RecordsetSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetIf UserForm5.TextBox1.Text = "" ThenMsgBox "查询条件不能为空!"UserForm5.TextBox1.SetFocusExit SubEnd Ifcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"sql = "select * from 学生数据表where 学号= '" & UserForm5.TextBox1.Text & "'" rs.Open sql, con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenWith UserForm5.Label24.Caption = rs.Fields("学号").Label19.Caption = rs.Fields("姓名").Label17.Caption = rs.Fields("性别").Label16.Caption = rs.Fields("政治面貌").Label20.Caption = rs.Fields("入学时间").Label21.Caption = rs.Fields("出生年月").Label27.Caption = rs.Fields("班级代码").Label18.Caption = rs.Fields("专业代码").Label26.Caption = rs.Fields("民族").Label25.Caption = rs.Fields("层次").Label23.Caption = rs.Fields("在校状态")End WithElseMsgBox "没有找到查询结果"Exit SubEnd IfmandButton7.Enabled = TruemandButton8.Enabled = TruemandButton9.Enabled = TrueEnd SubPrivate Sub CommandButton6_Click()Unload MeEnd SubPrivate Sub CommandButton7_Click()On Error Resume NextDim y As IntegerDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"Set cmd = New mandSet cmd.ActiveConnection = conIf Trim(bel23.Caption) = Trim("在校") Theny = MsgBox("您是否要进行休学处理", vbYesNo, "提示信息!")If y = vbYes Thenbel23.Caption = "休学"mandText = "update 学生数据表set 在校状态='" & bel23.Caption & "'where 学号='" & bel24.Caption & "'"cmd.ExecuteMsgBox "更新成功"ElseExit SubEnd IfElseMsgBox "不能进行休学处理"Exit SubEnd IfmandButton8.Enabled = FalsemandButton9.Enabled = FalseEnd SubPrivate Sub CommandButton8_Click()On Error Resume NextDim y As IntegerDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"Set cmd = New mandSet cmd.ActiveConnection = conIf Trim(bel23.Caption) = Trim("休学") Theny = MsgBox("您是否要进行复学处理", vbYesNo, "提示信息!")If y = vbYes Thenbel23.Caption = "在校"mandText = "update 学生数据表set 在校状态='" & bel23.Caption & "'where 学号='" & bel24.Caption & "'" cmd.ExecuteMsgBox "更新成功"ElseExit SubEnd IfElseMsgBox "不能进行复学处理"Exit SubEnd IfmandButton7.Enabled = FalsemandButton9.Enabled = FalseEnd SubPrivate Sub CommandButton9_Click()On Error Resume NextDim y As IntegerDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"Set cmd = New mandSet cmd.ActiveConnection = conIf bel24.Caption = "" Or Trim(bel23.Caption) = Trim("毕业") ThenMsgBox "不能进行退学处理"Exit SubEnd Ify = MsgBox("您是否要进行退学处理", vbYesNo, "提示信息!")If y = vbYes ThenmandText = "delete from 学生数据表where 学号='" & bel24.Caption & "'"cmd.ExecuteWith UserForm5.TextBox1.Text = "".Label24.Caption = "".Label19.Caption = "".Label17.Caption = "".Label16.Caption = "".Label20.Caption = "".Label21.Caption = "".Label27.Caption = "".Label18.Caption = "".Label26.Caption = "".Label25.Caption = "".Label23.Caption = ""End WithElseExit SubEnd IfmandButton8.Enabled = Falsers.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub UserForm_Initialize()mandButton7.Enabled = FalsemandButton8.Enabled = FalsemandButton9.Enabled = FalseEnd SubUserForm6代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextDim sql As StringDim cmd As mandSet cmd = New mandSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm6.TextBox4.Text = "" Or UserForm6.TextBox1.Text = "" Or UserForm6.TextBox5.Text = "" ThenMsgBox "信息不全"Exit SubEnd Ifsql = "select * from 成绩数据表where 学号='" & UserForm6.TextBox4.Text & "'and 课程名='" & UserForm6.TextBox1.Text & "' and 开设学期='" & UserForm6.TextBox5.Text & "'"rs.Open sql, con, 1, 3If Not rs.EOF ThenUserForm6.TextBox2.Text = rs.Fields("分数")UserForm6.TextBox3.Text = rs.Fields("补考分数")ElseMsgBox "没有搜索到信息"Exit SubEnd IfmandButton6.Enabled = Truers.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton2_Click()On Error Resume NextDim sql As StringDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"Set cmd.ActiveConnection = conIf UserForm6.TextBox4.Text = "" Or UserForm6.TextBox1.Text = "" Or UserForm6.TextBox5.Text = "" ThenMsgBox "信息不全"Exit SubEnd IfmandText = "delete from 成绩数据表where 学号='" & UserForm6.TextBox4.Text & "'and 课程名='" & UserForm6.TextBox1.Text & "' and 开设学期='" & UserForm6.TextBox5.Text & "'"cmd.ExecuteIf UserForm6.TextBox2.Text > 60 ThenUserForm6.TextBox3.Text = 0End IfmandText = "insert into 成绩数据表(课程名,学号,开设学期,分数,补考分数) values ('" & UserForm6.TextBox1.Text & "','" & UserForm6.TextBox4.Text & "','" & UserForm6.TextBox5.Text & "', '" & UserForm6.TextBox2.Text & "','" & UserForm6.TextBox3.Text & "')"cmd.ExecuteMsgBox "提交成功"rs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton4_Click()Unload MeEnd SubPrivate Sub CommandButton6_Click()On Error Resume NextDim y As IntegerDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm6.TextBox4.Text = "" Or UserForm6.TextBox1.Text = "" Or UserForm6.TextBox5.Text = "" ThenMsgBox "信息不全,不能删除"Exit SubEnd IfSet cmd = New mandy = MsgBox("您是否要进行删除处理", vbYesNo, "提示信息!")If y = vbYes ThenSet cmd.ActiveConnection = conmandText = "delete from 成绩数据表where 学号='" & UserForm6.TextBox4.Text & "'and 课程名='" & UserForm6.TextBox1.Text & "' and 开设学期='" & UserForm6.TextBox5.Text & "'"cmd.ExecuteMsgBox "删除成功"ElseExit SubEnd Ifrs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub UserForm_Initialize()mandButton2.Enabled = FalsemandButton6.Enabled = FalseEnd SubUserForm7代码:Option ExplicitPrivate Sub CommandButton1_Click()Dim sql As StringDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandIf UserForm7.TextBox1.Text = "" Or UserForm7.TextBox2.Text = "" Or boBox2.Text = "" Or UserForm7.TextBox4.Text = "" Or boBox1.Text = "" ThenMsgBox "信息不全"Exit SubEnd Ifcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"sql = "select * from 课程数据表where 课程号= '" & UserForm7.TextBox1.Text & "'"rs.Open sql, con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenMsgBox "课程号存在"Exit SubElseSet cmd.ActiveConnection = conmandText = "insert into 课程数据表(课程号,课程名,课程性质,学分,开设学期) values ('" & UserForm7.TextBox1.Text & "','" & UserForm7.TextBox2.Text & "','" & boBox2.Text & "', '" & UserForm7.TextBox4.Text & "','" & boBox1.Text & "')"cmd.ExecuteMsgBox "数据提交成功"End IfEnd SubPrivate Sub CommandButton2_Click()Dim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path& "\xjcj.mdb"If UserForm7.TextBox1.Text = "" Or UserForm7.TextBox2.Text = "" Or boBox2.Text = "" Or UserForm7.TextBox4.Text = "" Or boBox1.Text = "" ThenMsgBox "信息不全"Exit SubEnd IfSet cmd.ActiveConnection = conmandText = "delete from 课程数据表where 课程号='" & UserForm7.TextBox1.Text & "'"cmd.ExecutemandText = "insert into 课程数据表(课程号,课程名,课程性质,学分,开设学期) values ('" & UserForm7.TextBox1.Text & "','" & UserForm7.TextBox2.Text & "','" & boBox2.Text & "', '" & UserForm7.TextBox4.Text & "','" & boBox1.Text & "')"cmd.ExecuteMsgBox "提交成功"mandButton1.Enabled = TruemandButton2.Enabled = FalseEnd SubPrivate Sub CommandButton4_Click()Unload MeEnd SubPrivate Sub CommandButton5_Click()On Error Resume NextDim sql As StringSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm7.TextBox5.Text = "" ThenMsgBox "请输入查询信息"Exit SubEnd Ifsql = "select * from 课程数据表where 课程号= '" & UserForm7.TextBox5.Text & "'"rs.Open sql, con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenWith UserForm7.TextBox1.Text = rs.Fields("课程号").Value.TextBox2.Text = rs.Fields("课程名").Value.ComboBox2.Text = rs.Fields("课程性质").Value .TextBox4.Text = rs.Fields("学分").Value.ComboBox1.Text = rs.Fields("开设学期").Value End WithElseMsgBox "输入的课程名不存在,请重新输入" Exit SubEnd Ifbel7.Visible = TruemandButton2.Enabled = True mandButton1.Enabled = False rs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub UserForm_Initialize()On Error Resume NextDim i As IntegerboBox1.ClearFor i = 1 To 8boBox1.AddItem iNext iWith UserForm7.ComboBox2.Clear.ComboBox2.AddItem "选修".ComboBox2.AddItem "主修"End Withbel7.Visible = FalsemandButton2.Enabled = False End SubUserForm8代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextDim cmd As mandSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"rs.Open "select * from 专业数据表where 专业代码='" & UserForm8.TextBox1.Text & "'", con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenMsgBox "专业代码存在,请重新输入"Exit SubEnd IfIf UserForm8.TextBox1.Text = "" Or UserForm8.TextBox2.Text = "" Or UserForm8.TextBox3.Text = "" Or UserForm8.TextBox4.Text = "" ThenMsgBox "信息不全"Exit SubEnd IfSet cmd.ActiveConnection = conmandText = "insert into 专业数据表(专业代码,专业名,系部,学制) values ('" & UserForm8.TextBox1.Text & "','" & UserForm8.TextBox2.Text & "','" & UserForm8.TextBox3.Text & "', '" & UserForm8.TextBox4.Text & "')"cmd.ExecuteMsgBox "数据提交成功"rs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton3_Click()On Error Resume NextSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetDim cmd As mandSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm8.TextBox1.Text = "" Or UserForm8.TextBox2.Text = "" Or UserForm8.TextBox3.Text = "" Or UserForm8.TextBox4.Text = "" ThenMsgBox "信息不全"Exit SubEnd IfSet cmd.ActiveConnection = conmandText = "delete from 专业数据表where 专业代码='" & UserForm8.TextBox1.Text & "'"cmd.ExecutemandText = "insert into 专业数据表(专业代码,专业名,系部,学制) values ('" & UserForm8.TextBox1.Text & "','" & UserForm8.TextBox2.Text & "','" & UserForm8.TextBox3.Text & "', '" & UserForm8.TextBox4.Text & "')"cmd.ExecuteMsgBox "提交成功"mandButton1.Enabled = TruemandButton3.Enabled = Falsers.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton4_Click()Unload MeEnd SubPrivate Sub CommandButton5_Click()On Error Resume NextSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm8.TextBox5.Text = "" ThenMsgBox "请输入查询信息"Exit SubEnd Ifrs.Open "select * from 专业数据表where 专业代码='" & UserForm8.TextBox5.Text & "'", con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenWith UserForm8.TextBox1.Text = rs.Fields("专业代码").TextBox2.Text = rs.Fields("专业名").TextBox3.Text = rs.Fields("系部").TextBox4.Text = rs.Fields("学制")End WithElseMsgBox "输入的专业名不存在,请重新输入"Exit Subrs.Closecon.CloseSet rs = NothingSet con = NothingEnd IfmandButton3.Enabled = TruemandButton1.Enabled = Falsebel6.Visible = Truers.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub UserForm_Initialize()mandButton3.Enabled = Falsebel6.Visible = FalseEnd SubUserForm9代码:Option ExplicitPrivate Sub CommandButton1_Click()On Error Resume NextSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm9.TextBox1.Text = "" Or UserForm9.TextBox2.Text = "" Or UserForm9.TextBox3.Text = "" ThenMsgBox "信息不全"Exit SubEnd Ifrs.Open "select * from 班级数据表where 班级代码='" & UserForm9.TextBox3.Text & "'", con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenMsgBox "班级代码存在,请重新输入"Exit SubElseWith UserForm9rs.AddNewrs.Fields("专业名") = .TextBox1.Textrs.Fields("班名") = .TextBox2.Textrs.Fields("班级代码") = .TextBox3.Textrs.UpdateEnd WithMsgBox "数据提交成功"End Ifrs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton2_Click()On Error Resume NextSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetSet cmd = New mandcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm9.TextBox1.Text = "" Or UserForm9.TextBox2.Text = "" Or UserForm9.TextBox3.Text = "" ThenMsgBox "信息不全"Exit SubEnd IfSet cmd.ActiveConnection = conmandText = "delete from 班级数据表where 班级代码='" & UserForm9.TextBox3.Text & "'"cmd.ExecutemandText = "insert into 班级数据表(班级代码,班名,专业名) values ('" & UserForm9.TextBox3.Text & "','" & UserForm9.TextBox2.Text & "','" & UserForm9.TextBox1.Text & "')"cmd.ExecuteMsgBox "提交成功"mandButton1.Enabled = TruemandButton2.Enabled = FalseEnd SubPrivate Sub CommandButton3_Click()Unload MeEnd SubPrivate Sub CommandButton4_Click()On Error Resume NextSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"If UserForm9.TextBox4.Text = "" ThenMsgBox "请输入查询信息"Exit SubEnd Ifrs.Open "select * from 班级数据表where 班级代码='" & UserForm9.TextBox4.Text & "'", con, adOpenKeyset, adLockOptimisticIf Not rs.EOF ThenWith UserForm9.TextBox1.Text = rs.Fields("专业名").TextBox2.Text = rs.Fields("班名").TextBox3.Text = rs.Fields("班级代码")End WithElseMsgBox "输入的班级代码不存在,请重新输入"Exit SubEnd Ifbel5.Visible = TruemandButton2.Enabled = TruemandButton1.Enabled = Falsers.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub UserForm_Initialize()mandButton2.Enabled = Falsebel5.Visible = FalseEnd SubUserForm10代码:Private Sub CommandButton1_Click()On Error Resume NextUserForm10.ListBox2.AddItem UserForm10.ListBox1.TextUserForm10.ListBox1.RemoveItem UserForm10.ListBox1.ListIndexEnd SubPrivate Sub CommandButton2_Click()On Error Resume NextUserForm10.ListBox1.AddItem UserForm10.ListBox2.TextUserForm10.ListBox2.RemoveItem UserForm10.ListBox2.ListIndexEnd SubPrivate Sub CommandButton3_Click()On Error Resume NextDim i As IntegerDim y As IntegerDim j As IntegerSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path & "\xjcj.mdb"rs.Open "select * from 学生数据表", con, 1, 3Set cmd = New mandSet cmd.ActiveConnection = cony = MsgBox("您是否要进行毕业处理", vbYesNo, "提示信息!")If y = vbYes ThenFor i = 1 To UserForm10.ListBox2.ListCountmandText = "update 学生数据表set 在校状态='毕业'where 班级代码='" & UserForm10.ListBox2.List(i - 1) & "'and 在校状态<> '休学'"cmd.ExecuteNext iMsgBox "毕业处理成功"ElseExit SubEnd Ifrs.Closecon.CloseSet rs = NothingSet con = NothingEnd SubPrivate Sub CommandButton4_Click()Unload MeEnd SubPrivate Sub UserForm_Initialize()On Error Resume NextDim i As IntegerSet con = New ADODB.ConnectionSet rs = New ADODB.Recordsetcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ThisWorkbook.Path。
学生成绩管理系统登录界面设计

实训报告实训地点:实训楼四楼班级:网络0912姓名:孙德灵学号:0900002236指导教师:李伟老师一、实训题目学生成绩管理系统登录界面设计。
二、学习任务与目的1、了解相关控件的创建与设置。
2、了解的相关知识,逐步掌握中数据库开发的基本步骤。
3、学习使用Connection对象用于连接SQL Server或Access数据库的连接,了解其相关的属性和方法。
对比连接两种数据库的异同。
4、学习使用Command对象访问数据进行对数据的访问、修改、运行存储过程以及发送或检索参数值的命令、5、以及用于Datasset和数据源之间进行桥接、进行保存数据和检索数据的DataAdapter和Dataset对像的使用。
6、了解DataReader对象:可从数据源提供高性能的数据流,其从数据源中获得只读和只进数据,在任何时候只在内存中保存一行数据,减少了内存开销,提高了性能。
三、任务实施1、对于要设计的界面进行分析:设计界面首先要对用户输入的数据进行初步验证,判断输入数据是否有效,如果无效返回从新输入,跳出“输入数据有误”的提示。
如果有效则进行下步验证,调用数据库,看输入的数据是否与数据库中某个相符,否则返回从新输入,有则跳出“登录成功”的提示。
2、具体是实施步骤(1)、新建解决方案,启动visual studio2005,在【文件】菜单下,选择[新建][项目]命令,在弹出的【新建项目】对话框中选择【windows应用程序】选项。
并在对话框中输入名称及保存路径,具体见图1-新建解决方案。
图1-1新建解决方案(2)、创建等录界面的设计,其相关的控键属性如表1-1控键属性,界面如图1-2登录界面所示。
控件name textLabel1 Label1 用户名:Label2 Label2 密码:Textbox1 tbnameTextbox2 tbpwdBotton1 button1 登录Botton2 Botton2 退出Form1 Form1 学生成绩管理登录界面表1-1控键属性图1-2登录界面(3)、利用Access创建一个数据库(前个实训已做),各个数据如图1-3并保存为“xscjglxt1.mdb”。
基于C语言的学生成绩管理系统源码

学生成绩管理系统本系统是在C语言下实现的学生成绩管理,是一个简单的课程设计,但是功能齐全,增减删除,指针排序等等,是基础学习的一个好实践材料.全部代码2000多行.共26页.主要实现功能如下:一、学生菜单1、查看个人成绩2、按学号排序查看班级成绩3、按学生总成绩排序查看成绩4、查看不及格学生的成绩5、给管理员留言6、更改登录密码二、管理员菜单1、按班级查询学生信息2、按姓名查询学生信息3、按学号查询学生信息4、插入学生信息删除学生信息5、更改学生信息6、添加班级信息7、查看学生留言8、更改登录密码#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <conio.h>#include <string.h>static int newcount=0;char obj[4][10]={"英语","数理","语言","微分"};struct student{long num;char classes[20];char name[20];char sex[2];long birthday;float score[4];float total;struct student *next;};struct student *create(int n) /*手动插入班级文件*/{struct student *head=NULL,*p1,*p2;int i,j;for(i=1;i<=n;i++){float total=0;p1=(struct student *)malloc(sizeof(struct student));printf("请输入第%d个学生的:\n",i);printf("学号:");scanf("%ld",&p1->num);printf("班级:");scanf("%s",p1->classes);printf("姓名:");scanf("%s",p1->name);printf("性别:");scanf("%s",p1->sex);printf("生日:");scanf("%ld",&p1->birthday);for(j=0;j<4;j++){printf("%s分数:",obj[j]);scanf("%f",&p1->score[j]);total=total+(p1->score[j]);}p1->total=total;p1->next=NULL;if(i==1)head=p1;elsep2->next=p1;p2=p1;}return(head);}void clrscr() //空行{int t;for(t=0;t<=40;t++)printf("\n");}void print(struct student *head) //显示文件{struct student *p=head;printf("学号\t 班级\t姓名\t性别\t生日\t英语语言数理微分总分\n\n");while(p!=NULL&&p->total!=0){printf("%-10ld%5s\t%-7s\t%s %-8ld %.1f %.1f %.1f %.1f %.1f\n\n",p->num,p-> classes,p->name,p->sex,p->birthday,p->score[0],p->score[1],p->score[2],p->score[3],p->total);p=p->next;}}struct student *save(struct student *head,char *inputclasses) //存入班级文件{FILE *fp;struct student *p;p=head;fp=fopen(inputclasses,"ab");while(p!=NULL){fwrite(p,sizeof(struct student),1,fp);p=p->next;}fclose(fp);}struct student *load(char *inputclasses) //读取班级文件{FILE *fp;int j=1;struct student *head,*p1,*p2;fp=fopen(inputclasses,"rb");p1=(struct student *)malloc(sizeof(struct student));while(!feof(fp)){fread(p1,sizeof(struct student),1,fp);p1->next=(struct student *)malloc(sizeof(struct student));if(j==1)head=p1;p2=p1;p1=p1->next;j++;}return(head);fclose(fp);}int mainmenu() //主目录{int m;printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t\t 主菜单\n");printf("\n");printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t\t(1)、管理员模式!\n");printf("\n");printf("\t\t\t\t(2)、学生模式!\n");printf("\n");printf("\t\t\t\t(3)、退出!\n");printf("\n");printf("\t\t*********************************************\n");printf("\t\t\t请选择1、2、3,您的选择是:");scanf("%d",&m);printf("\n");return m;}int studentmenu() //学生菜单{int k;printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t\t 学生菜单\n");printf("\n");printf("\t\t\t\t(1)、查看个人成绩\n");printf("\n");printf("\t\t\t\t(2)、按学号排序查看班级成绩\n");printf("\n");printf("\t\t\t\t(3)、按学生总成绩排序查看成绩\n");printf("\n");printf("\t\t\t\t(4)、查看不及格学生的成绩\n");printf("\n");printf("\t\t\t\t(5)、给管理员留言\n");printf("\n");printf("\t\t\t\t(6)、更改登录密码\n");printf("\n");printf("\t\t\t\t(7)、退回到主菜单\n");printf("\n");printf("\t\t\t\t(8)、退出\n");printf("\n");printf("\t\t*********************************************\n");printf("\t\t你的选择是:");scanf("%d",&k);return k;}int adminmenu() //管理员菜单{int k;printf("\t*****************************************************************\n");printf("\n\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t\t 管理员菜单\n");printf("\n\n");printf("\t(1)、按班级查询学生信息\t\t(2)、按姓名查询学生信息");printf("\n\n");printf("\t(3)、按学号查询学生信息\t\t(4)、插入学生信息");printf("\n\n");printf("\t(5)、删除学生信息\t\t(6)、更改学生信息");printf("\n\n");printf("\t(7)、添加班级信息\t\t(8)、查看学生留言");printf("\n\n");printf("\t(9)、更改登录密码\t\t(10)、退回到主菜单");printf("\n\n");printf("\t(11)、退出");printf("\n\n");printf("\t******************************************************************\n");printf("\t\t\t\t你的选择是:");scanf("%d",&k);return k;}int checkcode(int n,char *inputname,char *inputcode) //密码验证{FILE *fp;int i;char code[20],code2[20],name[20];if(n==1){fp=fopen("admincode.txt","r");if(fp==NULL){printf("\n\t\t*********************************************");printf("\n");printf("\t\t\t密码还没有设置,请设置密码!\n\n");codesign: printf("\n请设置登录名:");scanf("%s",name);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",code);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",code2);fp=fopen("admincode.txt","w");if(strcmp(code,code2)==0){fprintf(fp,"%s\n",name);fprintf(fp,"%s",code);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign;}fclose(fp);return 1;}else{fscanf(fp,"%s\n",name);fscanf(fp,"%s",code);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)return 1;else return 0;fclose(fp);}}if(n==2){fp=fopen("stucode.txt","rw");if(fp==NULL){printf("\n\t\t*********************************************");printf("\n");printf("\t\t\t密码还没有设置,请设置密码!\n\n");codesign2: printf("\n请设置登录名:");scanf("%s",name);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",code);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",code2);fp=fopen("stucode.txt","w");if(strcmp(code,code2)==0){fprintf(fp,"%s\n",name);fprintf(fp,"%s",code);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign2;}fclose(fp);return 1;}else{fscanf(fp,"%s",name);fscanf(fp,"%s",code);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)return 1;else return 0;fclose(fp);}}}void classescheck() //查看班级情况{struct student *head;char inclasses[20],*inputclasses;printf("\t*****************************************************************\n");printf("\n\t\t\t请输入你要查询的班级:");scanf("%s",inclasses);printf("\t*****************************************************************\n");if(checkclasses(inclasses)){inputclasses=strcat(inclasses,".txt");head=load(inputclasses);print(head);}else printf("\n\t\t\t你输入的班级不存在,任意键继续!");}void printp(struct student *p) //显示符合条件的个人信息{printf("\t\t**************************************************************\n");printf("学号\t 班级\t姓名\t性别\t生日\t英语语言数理微分总分\n\n");printf("%-12ld%5s\t%-7s\t%s %-8ld %.1f %.1f %.1f %.1f %.1f\n",p->num,p->classes, p->name,p->sex,p->birthday,p->score[0],p->score[1],p->score[2],p->score[3],p->total);}int checkclasses(char *inputclasses) //检查班级的存在{FILE *fp;int i=0,j;int sign=0;char classes[100][20];fp=fopen("classes.txt","r");while(!feof(fp)){fscanf(fp,"%s",classes[i]);i++;}for(j=0;j<i;j++)if(strcmp(classes[j],inputclasses)==0)sign=1;return sign;}void namecheck() //按姓名查看{char inputname[20],*name,inputclasses[20];struct student *head,*p1,*p2;printf("\t\t*********************************************\n");printf("\t\t\t 请输入该同学的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){name=strcat(inputclasses,".txt");head=load(name);printf("\n\t\t\t 请输入学生姓名:");scanf("%s",inputname);p1=head;while(strcmp(p1->name,inputname)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(strcmp(p1->name,inputname)==0)printp(p1);else{printf("\t\t**************************************************\n");printf("\t\t\t不存在这个同学!");}}else{printf("\t\t*********************************************\n");printf("\t\t\t请确认所在班级!\n");}}void numcheck() //按学号查看{char *name,inputclasses[20];long inputnum;struct student *head,*p1,*p2;printf("\t\t*********************************************\n");printf("\t\t\t 请输入该同学的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){name=strcat(inputclasses,".txt");head=load(name);printf("\n\t\t\t 请输入学生姓名:");scanf("%ld",&inputnum);p1=head;while(p1->num!=inputnum&&p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->num==inputnum){printp(p1);}else{printf("\t\t**************************************************\n");printf("\t\t\t不存在这个学号!");}}else{printf("\t\t*********************************************\n");printf("\t\t\t请确认所在班级!\n");}}void addclasses() //添加班级{struct student *head;FILE *fp1,*fp2;int n;char addclasses[20],*addclasses2;printf("\n************************************************************\n");printf("\t\t\t请输入你要加入的班级:");scanf("%s",addclasses);if(checkclasses(addclasses)){printf("\n************************************************************\n");printf("你输入的班级已经存在!");printf("\n************************************************************\n");}else{printf("\n\t\t************************************************************\n");printf("请输入班级人数:");scanf("%d",&n);fp1=fopen("classes.txt","a");fprintf(fp1,"%s\n",addclasses);fclose(fp1);head=create(n);addclasses2=strcat(addclasses,".txt");save(head,addclasses);printf("\n\t\t************************************************************\n");printf("以下是你加入的信息:\n");head=load(addclasses);print(head);printf("\n\t\t************************************************************\n"); }}int classesnum(struct student *head,long n) //检查学号是否存在{struct student *p1,*p2;int sign=0;p1=head;while(p1->next!=NULL&&p1->num!=n){p2=p1;p1=p1->next;}if(p1->num==n)sign=1;return sign;}void modifynews() //更改学生信息{struct student *head,*p1,*p2,*p;char inputclasses[20];char modifyclasses[20],modifyname[20];char *classes;long inputnum;int j;float total=0;p=(struct student *)malloc(sizeof(struct student));clrscr();printf("\t*****************************************************************\n");printf("\t\t\t请输入你要修改的学生的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){classes=strcat(inputclasses,".txt");head=load(classes);printf("\n\n\t\t\t请输入要修改学生的学号:");scanf("%ld",&inputnum);if(classesnum(head,inputnum)==0){printf("\t\t\t该学生并不存在不能修改!");}else{clrscr();printf("\t************************************************************");p1=head;while(p1->num!=inputnum){p2=p1;p1=p1->next;}printp(p1);printf("\n\n\n\t\t\t请修改学号为%ld的学生的信息:\n",inputnum);p->num=inputnum;printf("\n\t\t\t班级:");scanf("%s",p->classes);printf("\n\t\t\t姓名:");scanf("%s",p->name);printf("\n\t\t\t性别:");scanf("%s",p->sex);printf("\n\t\t\t生日:");scanf("%ld",&p->birthday);for(j=0;j<4;j++){printf("\n\t\t\t%s分数:",obj[j]);scanf("%f",&p->score[j]);total=total+(p->score[j]);}p->total=total;if(p1==head){p->next=head->next;head=p;}else if(p1->next==NULL){p2->next=p;p->next=NULL;}else{p2->next=p;p->next=p1->next;}save(head,classes);print(head);}}}void insert() //插入学生信息{struct student *head,*p1,*p2,*p;char inputclasses[20];char insertclasses[20],insertname[20];char *classes;long inputnum;int j;float total=0;p=(struct student *)malloc(sizeof(struct student));clrscr();printf("\t*****************************************************************\n");printf("\t\t\t请输入你要插入的学生的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){classes=strcat(inputclasses,".txt");head=load(classes);printf("\n\n\t\t\t请输入要插入学生的学号:");scanf("%ld",&inputnum);if(classesnum(head,inputnum)==1){printf("\t\t\t该学生已经存在!");}else{printf("\t********************************************************\n\n");p1=head;while(p1->num<inputnum&&p1->next!=NULL&&p1->total!=0){p2=p1;p1=p1->next;}printp(p1);printf("\n\n\n\t\t\t请插入学号为%ld的学生的信息:\n",inputnum);p->num=inputnum;printf("\n\t\t\t班级:");scanf("%s",p->classes);printf("\n\t\t\t姓名:");scanf("%s",p->name);printf("\n\t\t\t性别:");scanf("%s",p->sex);printf("\n\t\t\t生日:");scanf("%ld",&p->birthday);for(j=0;j<4;j++){printf("\n\t\t\t%s分数:",obj[j]);scanf("%f",&p->score[j]);total=total+(p->score[j]);}p->total=total;if(inputnum<head->num){p->next=head->next;head=p;}else if(p1->next==NULL){p1->next=p;p->next=NULL;}else{p2->next=p;p->next=p1;}save(head,classes);print(head);}}}int classesname(struct student *head,char *inputname) //检查学生姓名是否存在{struct student *p1,*p2;int sign=0;p1=head;while(p1->next!=NULL&&strcmp(p1->name,inputname)!=0){p2=p1;p1=p1->next;}if(strcmp(p1->name,inputname)==0)sign=1;return sign;}void delet() //删除信息{struct student *head,*p1,*p2;char inputclasses[20],*classes;long inputnum;char inputname[20];printf("\n\t\t*********************************************************\n");printf("\t\t\t请输入要删除的学生的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){printf("\n\n\t\t\t请输入要删除学生的学号:");scanf("%ld",&inputnum);printf("\n\n\t\t\t请输入要删除学生的姓名:");scanf("%s",inputname);classes=strcat(inputclasses,".txt");head=load(classes);if(classesnum(head,inputnum)&&classesname(head,inputname)){p1=head;while(p1->num!=inputnum&&strcmp(p1->name,inputname)!=0){p2=p1;p1=p1->next;}if(p1->num==inputnum&&strcmp(p1->name,inputname)==0){p2->next=p1->next;save(head,classes);print(head);}}else{printf("\n\n\t\t****************************************************");printf("\n\n\t\t\t你输入的学生不存在");}}else{printf("\n\n\t\t****************************************************");printf("你输入的班级不存在");}}void newsckeck() //查看留言{FILE *fp1,*fp2;int i=1,j=0,t=1;char news[10][200],name[50][20],num1[2],*num2;fp1=fopen("留言.txt","rw");while(!feof(fp1)){fscanf(fp1,"%s",name[t]);t++;}for(i=1;i<t-1;i++){fscanf(fp1,"%s",name[i]);printf("\n\n\t\t\t第%d为学生:",i);puts(name[i]);}fclose(fp1);i--;while(i>0){printf("\n\n\t\t\t请输入编号查看留言:");scanf("%s",num1);printf("\n\n\t\t\t编号为%s的留言内容是:\n");num2=strcat(num1,".txt");fp2=fopen(num2,"r");while(fgets(news[j],200,fp2)!=NULL){puts(news[j]);}i--;}printf("\n\n\t\t************************************");printf("\n\n\t\t\t你暂时没有留言!!!!!\n\n");fp1=fopen("留言.txt","w");fclose(fp1);}void sentnews() //给管理员留言{FILE *fp1,*fp2;static int j=0;char inputnews[200],inputname[20];char name[3],*name2;printf("\n\n\t\t***********************************************");printf("\n\n\t\t\t输入你的姓名:");scanf("%s",inputname);fp1=fopen("留言.txt","a");fprintf(fp1,"%s\n",inputname);newcount=newcount+1;j++;fclose(fp1);itoa(j,name,10);name2=strcat(name,".txt");printf("\n\n\t\t\t请输入你的留言:\n\n\n");scanf("%s",inputnews);fp2=fopen(name2,"w");fputs(inputnews,fp2);fclose(fp2);printf("\n\n\n\t\t************************************************");printf("\n\n\t\t\t\t留言成功!!!!!!!!");}void admodifycode() //管理员修改密码{char inputname[20],code[20],mdname[20],mdcode[20],mdcode2[20];FILE *fp;printf("\n\n\t\t\t请输入你用户名:");scanf("%s",inputname);printf("\n\n\t\t\t请输入你的密码:");scanf("%s",code);if(checkcode(1,inputname,code)){fp=fopen("admincode.txt","w");printf("\n\t\t*********************************************");codesign3: printf("\n\t\t\t请设置登录名:");scanf("%s",mdname);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",mdcode);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",mdcode2);fp=fopen("admincode.txt","w");if(strcmp(mdcode,mdcode2)==0){fprintf(fp,"%s\n",mdname);fprintf(fp,"%s",mdcode);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign3;}fclose(fp);}else{printf("\n\t\t*****************************************************");printf("\n\n\t\t\t密码错误!!!!!!!!!!!");}}void stumodifycode(){char inputname[20],code[20],mdname[20],mdcode[20],mdcode2[20];FILE *fp;printf("\n\n\t\t\t请输入你用户名:");scanf("%s",inputname);printf("\n\n\t\t\t请输入你的密码:");scanf("%s",code);if(checkcode(2,inputname,code)){fp=fopen("stucode.txt","w");printf("\n\t\t*********************************************");codesign4: printf("\n\t\t\t请设置登录名:");scanf("%s",mdname);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",mdcode);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",mdcode2);fp=fopen("stucode.txt","w");if(strcmp(mdcode,mdcode2)==0){fprintf(fp,"%s\n",mdname);fprintf(fp,"%s",mdcode);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign4;}fclose(fp);}else{printf("\n\t\t*****************************************************");printf("\n\n\t\t\t密码错误!!!!!!!!!!!");}}void sstudent(){struct student *head,*p1,*p2;char inputclasses[20],*inputclasses2,inputname[20];long inputnum;printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t请输入你的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){inputclasses2=strcat(inputclasses,".txt");head=load(inputclasses2);p1=head;printf("\n\n\t\t\t请输入你的学号:");scanf("%ld",&inputnum);printf("\n\n\t\t\t请输入你的姓名:");scanf("%s",inputname);if(classesnum(head,inputnum)&&classesname(head,inputname)){while(p1->num!=inputnum&&strcmp(p1->name,inputname)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->num==inputnum&&strcmp(p1->name,inputname)==0)printp(p1);}else{printf("\n\n\t\t**************************************************");printf("\n\n\t\t你输入学生不存在!!!!!!!!!!!!");}}else{printf("\n\n\t\t**************************************************");printf("\n\n\t\t你输入的班级不存在!!!!!!!!!!!!");}}void badstudent(){struct student *head,*p1,*p2,*p3,*p4,*p5;char inputclasses[20],*inputclasses2;printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t请输入你的班级:");scanf("%s",inputclasses);printf("\n\n\t\t***************************************************\n");if(checkclasses(inputclasses)){inputclasses2=strcat(inputclasses,".txt");head=load(inputclasses2);p1=head;p3=head;p4=head;p5=head;print(head);printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t英语不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p1->next!=NULL&&p1->total!=0){p2=p1;p1=p1->next;if(p1->score[0]<60)printf("\n\n\t\t\t%s\t%.1f",p1->name,p1->score[0]);}printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t数理不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p3->next!=NULL&&p3->total!=0){p2=p3;p3=p3->next;if(p3->score[1]<60)printf("\n\n\t\t\t%s\t%.1f",p3->name,p3->score[1]);}printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t语言不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p4->next!=NULL&&p4->total!=0){p2=p4;p4=p4->next;if(p4->score[2]<60)printf("\n\n\t\t\t%s\t%.1f",p4->name,p4->score[2]);}printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t微分不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p5->next!=NULL&&p5->total!=0){p2=p5;p5=p5->next;if(p5->score[3]<60)printf("\n\n\t\t\t%s\t%.1f",p5->name,p5->score[3]);}}}void sortstudent(){FILE *fp;struct student *head,*p1,*p2,*p3,stu[100];int i=0,j,k,t;char inputclasses[20],*inputclasses2;printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t请输入你的班级:");scanf("%s",inputclasses);printf("\n\n\t\t***************************************************\n");if(checkclasses(inputclasses)){inputclasses2=strcat(inputclasses,".txt");head=load(inputclasses2);p1=head;print(head);while(p1->next!=NULL&&p1->total!=0){p2=p1;p1=p1->next;i++;}p1=head;p2=head;for(j=0;j<i;j++){for(k=0;k<i-1;k++){t=k;while(t>0){p3=p2;p2=p2->next;t--;}t=k+1;while(t>0){p1=p2->next;t--;}if(p2->total<p1->total){if(p1==head){head=p1;p2->next=head->next;head->next=p2;}else{p3->next=p1;p2->next=p1->next;p1->next=p2;}}p2=head;p1=head;}p2=head;p1=head;}}print(head);int admcode(){FILE *fp;char inputname[20], inputcode[20],c;int flag=0,j;char code[20],code2[20],name[20];printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t 请输入你的用户名:");scanf("%s",inputname);printf("\n\t\t*********************************************\n");printf("\n\n");printf("\t\t\t 请输入密码:");c=getch();if(c!='\r')printf("*");while(c!='\r'){ inputcode[j++]=c;c=getch();if(c!='\r')printf("*");else inputcode[j]='\0';}printf("\n");fp=fopen("admincode.txt","r");fscanf(fp,"%s\n",name);fscanf(fp,"%s",code);fclose(fp);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)flag=1;return flag;}int stucode(){FILE *fp;char inputname[20], inputcode[20],c;int flag=0,j;char code[20],code2[20],name[20];printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t 请输入你的用户名:");scanf("%s",inputname);printf("\n\t\t*********************************************\n");printf("\n\n");printf("\t\t\t 请输入密码:");c=getch();if(c!='\r')printf("*");while(c!='\r'){ inputcode[j++]=c;c=getch();if(c!='\r')printf("*");else inputcode[j]='\0';}printf("\n");fp=fopen("stucode.txt","r");fscanf(fp,"%s\n",name);fscanf(fp,"%s",code);fclose(fp);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)flag=1;return flag;}int main(){struct student *head;int maininput,sign,j=0;mainlabe:while(1){maininput=mainmenu();switch(maininput){case 1:{sign=admcode();if(sign==1){while(1)。
宿舍管理系统源代码
include<stdio.h>include<stdlib.h>include<string.h>typedef struct Student{char name20;char sex5;int age;char institute20;char specialty30;}Student;typedef struct Room{int roomnum;int roomarea;int totalnum;int stunum;Student stu10;Room next;}Room;typedef struct Story{char storynum;Room room;}Story;/-------------------------------------------------------------------------------------------------/ Student StudentCreat int age,char name,char institute,char specialty,char sex {Student Stu;Stu=Student malloc sizeof Student;Stu->age=age;strcpyStu->institute,institute;strcpyStu->name,name;strcpyStu->specialty,specialty;strcpyStu->sex,sex;return Stu;}Room RoomCreat int room_num,int room_area,int total_num,int stu_num{Room R;int i;R=Room malloc sizeof Room;if R return NULL;R->roomnum=room_num;R->roomarea=room_area;R->totalnum=total_num;R->stunum=stu_num;R->next=NULL;return R;}Story StoryCreat{Story S;S=Story malloc sizeof Story;S->room=RoomCreat0,0,0,0;return S;}Story DormCreat{Story S,control;char i;control=Story malloc26sizeof Story;if control return NULL;for i='A';i<='Z';i++{S=StoryCreat;S->storynum=i;controli-'A'=S;}return control;}/-------------------------------------------------------------------------------------------------/ Story StorySearchStory control,char storynum{return control+storynum-'A';}Room RoomSearchRoom R,int room_num{while R->next=NULL{if R->next->roomnum==room_num break;else R=R->next;}return R;Student StudentSearchRoom R,char name{Student p;int i;R=R->next;p=R->stu;for i=0;i<R->stunum;i++{if strcmpp->name,name==0return p;else p++;}return NULL;}/-------------------------------------------------------------------------------------------------/ void RoomInsertStory S,Room R{R->next=S->room->next;S->room->next=R;}void StudentInsertRoom R,Student Stu{R=R->next;R->stuR->stunum=Stu;R->stunum++;}void RoomDeleteRoom R{Room p;R=R->next;p=R;R=R->next;freep;}void StudentDeleteRoom R,Student Stu{R=R->next;Student p;for p=R->stu;Stu<p+R->stunum-1;Stu++Stu=Stu+1;R->stunum--;void RoomRevampRoom R{int i,k;R=R->next;printf"1、房号2、面积3、可容纳人数:\n";printf"要修改那一项:\n";scanf"%d",&i;switch i{case 1:{printf"房号:";scanf"%d",&k;R->roomnum=k;break;}case 2:{printf"面积:";scanf"%d",&k;R->roomarea=k;break;}case 3:{printf"可容纳人数:";scanf"%d",&k;R->totalnum =k;break;}}}void StudentRevampStudent Stu{int i,k;char str30;printf"1、姓名2、性别3、学院4、专业5、年龄:\n";printf"要修改那一项:\n";scanf"%d",&i;switch i{case 1:{printf"姓名:";scanf"%s",str;strcpyStu->name,str;break;}case 2:{printf"性别:";scanf"%s",str;strcpyStu->sex,str;break;}case 3:{printf"学院:";scanf"%s",str;strcpyStu->institute,str;break;}case 4:{printf"专业:";scanf"%s",str;strcpyStu->specialty,str;break;}case 5:{printf"年龄:";scanf"%d",&k;Stu->age =k;break;}}}/-------------------------------------------------------------------------------------------------/ void RoomScanRoom R{int i;Student p;R=R->next;printf"房号:%d\n",R->roomnum;printf"面积:%d\n",R->roomarea;printf"可容纳人数:%d\n",R->totalnum;printf"已住入人数:%d\n",R->stunum;printf"成员:";for i=0;i<R->stunum;i++{p=&R->stui;printf"%s ",p->name;}putchar'\n';}void StudentScanStudent Stu{printf"姓名:%s\n",Stu->name;printf"年龄:%d\n",Stu->age;printf"性别:%s\n",Stu->sex;printf"学院:%s\n",Stu->institute;printf"专业:%s\n",Stu->specialty;}int main{int roomnum,roomarea,totalnum,stunum,age;int event;char name20,institute20,specialty30,sex5;char storynum,judge;Story control;Story S;Room R;Student Stu;control=DormCreat;do{printf"注意\n";printf" 先录入宿舍信息才能录入学生信息\n";printf" 先录入信息才能删除浏览或修改信息\n";printf"\n";printf"\n\n\n 宿舍管理系统\n\n\n";printf"功能选择菜单:\n";printf"1、宿舍信息录入2、学生信息录入3、删除某个宿舍4、删除某个学生\n";printf"5、宿舍信息浏览6、学生信息浏览7、宿舍信息修改8、学生信息修改\n";scanf"%d",&event;switch event{case 1:{{printf"请输入宿舍房间号,房间面积,可容纳人数,已住入人数:以空格隔开\n";fflushstdin;scanf"%c%d %d %d %d",&storynum,&roomnum,&roomarea,&totalnum,&stunum;S=StorySearchcontrol,storynum;R=RoomCreatroomnum,roomarea,totalnum,stunum;RoomInsertS,R;printf"宿舍信息录入成功\n";fflushstdin;printf"是否继续录入宿舍信息Y/N\n";scanf"%c",&judge;}while judge=='Y';break;}case 2:{do{printf"请输入该生要入住的宿舍:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;printf"请输入该生姓名,性别,学院,专业,年龄:以空格隔开\n";scanf"%s%s%s%s",name,sex,institute,specialty;scanf"%d",&age;Stu=StudentCreatage,name,institute,specialty,sex;StudentInsertR,Stu;printf"学生信息录入成功\n";fflushstdin;printf"是否继续录入学生信息Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;case 3:{do{printf"请输入要删除的宿舍号码:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;RoomDeleteR;printf"宿舍信息删除成功\n";fflushstdin;printf"是否继续删除宿舍信息Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;}case 4:{do{printf"请输入要删除学生现住宿舍:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;printf"请输入要删除学生的姓名:\n";scanf"%s",name;Stu=StudentSearchR,name;StudentDeleteR,Stu;printf"学生信息删除成功\n";fflushstdin;printf"是否继续删除学生信息Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;}case 5:{do{printf"请输入要浏览的宿舍号码:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;RoomScanR;fflushstdin;printf"是否继续浏览宿舍Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;}case 6:{do{printf"请输入要浏览学生的宿舍号码:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;printf"请输入要浏览学生的姓名:\n";scanf"%s",name;Stu=StudentSearchR,name;StudentScanStu;fflushstdin;printf"是否继续浏览学生Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;}case 7:{do{printf"请输入要修改的宿舍号码:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;RoomRevampR;printf"宿舍信息修改成功\n";fflushstdin;printf"是否继续修改Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;}case 8:{do{printf"请输入要修改学生的宿舍号码:\n";fflushstdin;scanf"%c%d",&storynum,&roomnum;fflushstdin;S=StorySearchcontrol,storynum;R=S->room;R=RoomSearchR,roomnum;printf"请输入要修改学生的姓名:\n";scanf"%s",name;Stu=StudentSearchR,name;StudentRevampStu;printf"学生信息修改成功\n";fflushstdin;printf"是否继续修改Y/N\n";scanf"%c",&judge;}while judge=='Y';break;break;}}fflushstdin;printf"是否继续其他操作Y/N\n";scanf"%c",&judge;}while judge=='Y';system"pause";}。
C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
课程信息维护,如录入、修改、删除等,课程信息用文件保存。
课程信息浏览?输出。
学生选课功能。
查询功能包括:按学分、课程性质、学生等查询。
统计功能。
统计各门课程的选修人数。
本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。
管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。
输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。
学生考勤系统源代码
学生考勤系统源代码void lace(int n) /*花边函数*/{int i;for(i=0;i<n;++i){putchar('*'); /*输出n个**/}}void fun_intro(void) /*功能介绍函数*/{lace(80); /*执行lace(n)函数*/printf("欢迎使用学生考勤管理系统\n");printf("本系统主要功能有\n");printf("1、学生签到服务\n");printf("2、学生考勤信息查询及修改\n");printf("3、学生考勤评价\n");printf("本系统以菜单命令方式实现各个功能,通过选择菜单所对应的序号来选择执行功能\n");printf("本系统所有信息文件均默认保存在C盘根目录\n"); /*输出括号中的内容*/ lace(80); /*执行lace(n)函数*/}void sys_menu(void) /*主功能菜单函数*/{lace(80); /*执行lace(n)函数*/lace(80); /*同上*/lace(2);printf(" 1、签到\n"); /*执行lace(n)函数,输出……*/lace(2);printf(" 2、查询\n"); /*同上*/lace(2);printf(" 3、修改\n"); /*同上*/lace(2);printf(" 4、退出\n"); /*同上*/lace(80); /*同上*/lace(80); /*同上*/}int se_cod(void) /*密码函数*/{char in_sec[10],secret[7]="123456"; /*in_sec用于输入密码,secret存放内置密码*/printf("请输入密码(6位阿拉伯数字):"); /*限制密码为6位阿拉伯数字*/scanf("%s",in_sec);if(!strcmp(in_sec,secret)){return(1); /*如果密码正确,函数返回1*/}else{return(0); /*如果密码错误,函数返回0*/}}void stu_system(void) /*系统主函数*/{int opt;sys_menu(); /*执行 sys_menu( )函数*/printf("执行:"); /*输出“执行:”*/scanf("%i",&opt); /*输入opt 的值*/switch(opt) /*多分支执行*/{case 1 : sign_in();break; /*当opt 的值为1 时,进入签到界面*/case 2 : stu_find();break; /*当opt 的值为2时,进入查询界面*/case 3 : stu_rev();break; /*当opt 的值为3时,进入修改界面*/case 4 : quit_sys();break; /*当opt 的值为4时,退出系统*/default : printf("出错\n请重新选择\n");stu_system(); /*当opt的值不满足以上时,输出“出错”换行,输出“请重新选择”,换行,回到首页*/}}void istu_infor(void) /*输入学生基本信息函数*/{int i;printf("%-8s%-8s%-8s\n","姓名","学号","性别");for(i=0;i<NUM;++i){scanf("%s%s%s",st_infor[i].nam,st_infor[i].num,st_infor[i].sex); /*输入姓名,学号,性别*/strcpy(st_infor[i].che_now,"未签到"); /*签到状态初始化为“未签到”*/st_infor[i].che_add=0.0; /*出勤次数初始化为0*/st_infor[i].stand=1.0; /*出勤标准次数初始化为1*/st_infor[i].che_sult=0.0; /*出勤成绩初始化为0*/}}void stu_open(char way[3]) /*打开学生基本信息文件函数*/{if((file=fopen("C:\\Student attendance information.f",way))==NULL) /*打开在C盘存储的名为Student attendance information.的文件,“way”代表打开方式,如果文件打开失败,则执行下面语句*/{printf("出错\n");printf("返回到首页\n");stu_system(); //返回到首页}}void keepf(void) /*保存文件函数*/{int i;fclose(file);stu_open("w"); /*以“写“的方式打开file文件*/for(i=0;i<NUM;++i){fwrite(&st_infor[i],sizeof(struct stu_check),1,file); /*将st_infor[i]中的信息写入file文件*/}fclose(file);}void nstu_infor(void) /*新建学生基本信息文件函数*/{printf("输入学生信息\n");stu_open("w"); /*新建一个空文件*/istu_infor(); /*输入学生信息*/keepf(); /*保存文件*/printf("新建成功\n");jump_sys(stu_rev); /*跳转到修改信息界面*/}void sign_in(void) /*学生签到服务函数*/{int i;char number[10];stu_open("r"); /*以“读”的方式打开文件*/printf("(请输入您的学号:");scanf("%s",number); /*输入“number”的值*/for(i=0;i<NUM;++i) /*当i小于NUM时,执行下面语句*/{fread(&st_infor[i],sizeof(struct stu_check),1,file); /*打开file文件,将文件内容传递给结构体变量*/}for(i=0;i<NUM;++i){if(!strcmp(st_infor[i].num,number)){if(!strcmp(st_infor[i].che_now,"未签到")){strcpy(st_infor[i].che_now,"签到"); /*将"签到"赋给“check_now”*/st_infor[i].che_add++; /*“check_add加1*/printf("签到成功\n");}else{printf("您已签到\n");}}}keepf(); /*保存“file”文件*/jump_sys(sign_in); /*向其他功能跳转*/}void stu_list(void) /*学生信息列表函数*/{int i;stu_open("r");lace(80);printf("%-8s%-8s%-8s%-10s%-8s\n\n","学号","姓名","性别","签到状态","评分");for(i=0;i<NUM;++i){fread(&st_infor[i],sizeof(struct stu_check),1,file);printf("%-8s%-8s%-8s%-10s%-8.1f\n",st_infor[i].num,st_infor[i].nam,st_infor [i].sex,st_infor[i].che_now,st_infor[i].che_sult);}lace(80);keepf();jump_sys(stu_find);}void stu_find(void) /*学生考勤信息查询函数*/{int opt;lace(80);printf("请选择\n");printf(" 1、打开学生信息列表\n");printf(" 2、按姓名查找\n");printf(" 3、按学号查找\n");lace(80);printf("执行:");scanf("%i",&opt);switch(opt){case 1 : stu_list();break; /*执行stu_list( )函数*/case 2 : find_nam();break;case 3 : find_num();break;default :printf("出错\n");stu_find(); /*输出“出错”,执行stu_find( )函数*/ }}void jump_sys(void (*p)(void)) /*跳转函数*/{int opt;system(“PAUSE”);printf("请选择\n");lace(80);printf(" 1、返回到首页\n");printf(" 2、返回到上一级\n");printf(" 3、退出系统\n");lace(80);printf(“执行:”);scanf("%i",&opt);switch(opt){case 1 : stu_system();break;case 2 : (*p)();break; /*跳转到p所指代的函数*/case 3 : quit_sys(); /*退出系统*/default : printf("出错\n");jump_sys(p);}}void stu_rev(void) /*学生信息修改函数*/{int opt;if(se_cod()) /*如果密码正确,执行修改操作*/{printf("密码正确\n");}else /*如果密码错误,返回到首页*/printf("密码错误\n");printf("返回到首页\n");stu_system();}printf("请选择\n");lace(80);printf(" 1、修改学号\n");printf(" 2、修改性别\n");printf(" 3、修改签到记录\n");printf(" 4、新建学生出勤信息\n");lace(80);printf("执行:");scanf("%i",&opt);switch(opt){case 1 : rev_num();break;case 2 : rev_sex();break;case 3 : rev_sig();break;case 4 : nstu_infor();break;default : printf("出错\n");printf("返回上一页\n");stu_rev();}}void find_nam(void) /*以姓名方式查找函数*/{int i;char name[10];stu_open("r"); /*打开文件*/for(i=0;i<NUM;++i) /*将文件中的学生信息存放到stu_infor[i]结构体数组中*/ {fread(&st_infor[i],sizeof(struct stu_check),1,file);}printf("请输入姓名:");scanf("%s",name); /*输入要查找的姓名*/for(i=0;i<NUM;++i){if(!strcmp(st_infor[i].nam,name)) /*如果找到,输出个人信息*/{printf("%-8s%-8s%-8s%-10s%-8s\n","学号","姓名","性别","签到状态","评分");printf("%-8s%-8s%-8s%-10s%-8.1f\n",st_infor[i].num,st_infor[i].nam,st_infor [i].sex,st_infor[i].che_now,st_infor[i].che_sult);}printf("查询结束\n");keepf(); /*关闭文件*/jump_sys(stu_find); /*跳转到查询界面*/}void find_num(void) /*以学号方式查找函数*/{int i;char number[10];stu_open("r"); /*打开文件*/for(i=0;i<NUM;++i) /*将文件中的学生信息存放到stu_infor[i]结构体数组中*/ {fread(&st_infor[i],sizeof(struct stu_check),1,file);}printf("请输入学号:");scanf("%s",number); /*输入要查找的学号*/for(i=0;i<NUM;++i){if(!strcmp(st_infor[i].num,number)) /*如果找到,输出个人信息*/{printf("%-8s%-8s%-8s%-10s%-8s\n","学号","姓名","性别","签到状态","评分");printf("%-8s%-8s%-8s%-10s%-8.1f\n",st_infor[i].num,st_infor[i].nam,st_infor [i].sex,st_infor[i].che_now,st_infor[i].che_sult);}}printf("查询结束\n ");keepf(); /*关闭文件*/jump_sys(stu_find); /*跳转到查询界面*/}void rev_num(void) /*修改学号函数*/{int i;char name[10];stu_open("r"); /*打开文件*/for(i=0;i<NUM;++i) /*将文件中的学生信息存放到stu_infor[i]结构体数组中*/ {fread(&st_infor[i],sizeof(struct stu_check),1,file);}printf("请输入要修改的学生的姓名:");scanf("%s",name);for(i=0;i<NUM;++i){if(!strcmp(st_infor[i].nam,name)) /*找到学生信息后,修改学号*/{printf("将%s修改为:",st_infor[i].num);scanf("%s",st_infor[i].num);printf("修改成功\n");}}keepf(); /*保存文件*/jump_sys(stu_rev); /*跳转到修改界面*/}void rev_sex(void) /*修改性别函数*/{int i;char name[10];stu_open("r"); /*打开文件*/for(i=0;i<NUM;++i) /*将文件中的学生信息存放到stu_infor[i]结构体数组中*/ {fread(&st_infor[i],sizeof(struct stu_check),1,file);}printf("请输入要修改的学生的姓名:");scanf("%s",name);for(i=0;i<NUM;++i){if(!strcmp(st_infor[i].nam,name)) /*找到学生信息后,修改性别*/{printf("将%s修改为:",st_infor[i].sex);scanf("%s",st_infor[i].sex);printf("修改成功\n");}}keepf(); /*保存文件*/jump_sys(stu_rev); /*跳转到修改界面*/}void rev_sig(void) /*修改签到记录函数*/{int i;char name[10];stu_open("r"); /*打开文件*/for(i=0;i<NUM;++i) /*将文件中的学生信息存放到stu_infor[i]结构体数组中*/ {fread(&st_infor[i],sizeof(struct stu_check),1,file);}printf("请输入要修改的学生的姓名:");scanf("%s",name);for(i=0;i<NUM;++i){if(!strcmp(st_infor[i].nam,name)) /*找到学生信息后,修改考勤记录*/{printf("将%-3.1f修改为:",st_infor[i].che_add);scanf("%-3.1f",&st_infor[i].che_add);printf("修改成功\n");}}keepf(); /*保存文件*/jump_sys(stu_rev); /*跳转到修改界面*/}int main(void) /*工程主函数*/{fun_intro(); /*执行fun_into( )函数*/system("PAUSE"); /*暂停*/ensure();system("PAUSE");stu_system(); /*执行 stu_system( )函数*/system("PAUSE"); /*暂停*/return(0); /*工程主函数执行完后返回 0值*/}void quit_sys(void) /*退出考勤系统函数*/{int i;if(se_cod()){printf("密码正确,允许退出系统\n"); /*只能以管理员的身份执行退出操作*/system("PAUSE");}else{printf("密码错误,禁止退出\n");printf("请返回到首页\n");system("PAUSE");stu_system();}stu_open("r");for(i=0;i<NUM;++i){fread(&st_infor[i],sizeof(struct stu_check),1,file);}for(i=0;i<NUM;++i){strcpy(st_infor[i].che_now,"未签到"); /*把”未签到”赋给”che_now”*///st_infor[i].che_add=8;st_infor[i].che_sult=(float)((st_infor[i].che_add/st_infor[i].stand)*100.0); /*用签到次数与标准次数的比值的100倍来表示总分数*/st_infor[i].stand++; /*stand加1*/}keepf(); /*保存file文件*/exit(0); /*退出系统*/}void ensure(void) /*确定班级函数*/{int opt;printf("请选择班级\n"); /*根据不同的班级确定不同的学生总数*/printf("1、计算机科学与技术1班\n");printf("2、计算机科学与技术2班\n");printf("3、自定义\n"); /*根据自己需要确定学生总数*/printf("选择: ");scanf("%i",&opt);switch(opt){case 1 : NUM=56;strcpy(cla,"C:\\ Student attendance information class 1.f");break; /*一班的人数确定为56人,学生信息保存在C盘根目录下的Student attendance information class 1.f文件中*/case 2 : NUM=55;strcpy(cla,"C:\\ Student attendance information class 2.f");break; /*同上*/case 3 : printf("请自定义学生人数: ");scanf("%i",&NUM);strcpy(cla,"C:\\ Student attendance information class f.f");break; /*根据自己的需要确定人数*/ default :printf("出错,退出系统\n");system("PAUSE");exit(0); /*选项不在以上的系统自动退出*/}}。
[工学]学生信息管理系统完整源码
学生信息管理系统完整源代码注:本系统采用C/S结构,运用Java GUI知识编写,数据库为SQL SERVER 2005,没有采用典型的三级框架结构,所以代码有冗余,仅供参考。
一、数据表及数据源首先创建数据库,包含数据表如下:数据库创建完成后,新建一个名为SIMS的数据源,不会建数据源的同学可以在去搜索创建数据源的详细步骤,这里的数据名称一定要为SIMS,否则在以后程序连接数据库的语句中会出现错误。
二、操作演示三、代码部分创建Java工程,创建名称为SIMS的包,一下Java类均包含在一个包内。
1.登录界面package SIMS;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.text.SimpleDateFormat;import java.util.*;import java.util.Date;public class login extends JFrame implements ActionListener{String userID; //保留用户输入IDString password; //保留用户输入passwordJLabel jlID=new JLabel("用户ID:"); //使用文本创建标签对象 JLabel jlPwd=new JLabel("密码:");JTextField jtID=new JTextField(); //创建ID输入框JPasswordField jpPwd=new JPasswordField(); //创建密码输入框ButtonGroup bg=new ButtonGroup(); //创建ButtonGroup组件对象JPanel jp=new JPanel(); //创建Panel容器JLabel jl=new JLabel();JRadioButton jrb1=new JRadioButton("管理员");JRadioButton jrb2=new JRadioButton("教师");JRadioButton jrb3=new JRadioButton("学生",true);JButton jb1=new JButton("登录");JButton jb2=new JButton("重置");public login(){this.setLayout(null); //设置窗口布局管理器this.setTitle("学生信息管理系统"); //设置窗口标题this.setBounds(200,150,500,300); //设置主窗体位置大小和可见性this.setVisible(true); //设置窗口的可见性this.setResizable(false);jlID.setBounds(150,60,100,20); //设置ID框属性jtID.setBounds(220,60,100,20); //设置ID输入框属性jlPwd.setBounds(150,90,100,20); //设置密码框属性jpPwd.setBounds(220,90,100,20); //设置密码输入框属性jp.setBounds(35,120,400,250); //设置JPanel容器属性jb1.setBounds(160,170,60,20); //设置登录按钮属性jb2.setBounds(250,170,60,20); //设置取消按钮属性jb1.addActionListener(this); //设置登录按钮监听器jb2.addActionListener(this); //设置取消按钮监听器jl.setBounds(340,75,130,20); //设置提示框属性bg.add(jrb1); //将所有空间加入窗体bg.add(jrb2);bg.add(jrb3);this.add(jlID);this.add(jlPwd);this.add(jtID);this.add(jpPwd);this.add(jb1);this.add(jb2);this.add(jl);jp.add(jrb1);jp.add(jrb2);jp.add(jrb3);this.add(jp);centerShell(this);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(( (screenWidth - shellWidth) / 2),((screenHeight - shellHeight) / 2) );}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(userID);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入IDpassword=jpPwd.getText(); //获取用户输入密码if(e.getSource()==jb1){ //处理登录事件if(userID.equals("") || password.equals("")){jl.setFont(new Font("red",Font.BOLD,12)); //设置提示字体jl.setForeground(Color.red);jl.setText("请输入用户ID和密码");}else{Connection con=null;try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"","");//获取连接字符串Statement stat=con.createStatement();if(jrb1.isSelected())//如果登录选中的管理员{ResultSet rs=stat.executeQuery("select * from Admin"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rss=stat.executeQuery("selectAdmin_Pwd,Admin_Name from Admin where Admin_ID='"+userID+"'");//从表Admin获取信息while(rss.next()){String str=rss.getString(1);if(str.equals(password)){new admin(rss.getString(2));//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12)); //设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}else if(jrb2.isSelected()){ResultSet rs=stat.executeQuery("select * from Teacher_Info"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rss=stat.executeQuery("selectTea_Pwd,Tea_Names from Teacher_Info where Tea_ID='"+userID+"'");//从表Teacher_Info获取信息while(rss.next()){String str=rss.getString(1);if(str.equals(password)){new teacher(rss.getString(2),userID);//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}else if(jrb3.isSelected()){ResultSet rs=stat.executeQuery("select * from Student_Info"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rsss=stat.executeQuery("selectStu_Pwd,Stu_Name from Student_Info where Stu_ID='"+userID+"'");//从表Student_Info获取信息while(rsss.next()){String str=rsss.getString(1);if(str.equals(password)){new student(rsss.getString(2),userID);//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}}catch(Exception ex){ex.getStackTrace();}finally{try{con.close();}catch(Exception exc){exc.printStackTrace();}}}}else if(e.getSource()==jb2){ //处理登录事件jtID.setText("");jpPwd.setText("");jrb3.setSelected(true);jl.setText("");}}public static void main(String[] args){new login();}}2.添加课程package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_course extends JFrame implements ActionListener{ static add_course ss;String courseID=""; //课程名String coursename=""; //课程名String count=""; //课时JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel jlcourseID=new JLabel("课程号:"); //使用文本框创建标签对象JLabel jlcoursename=new JLabel("课程名:");JLabel jlcount=new JLabel("课时:");JTextField jtcourseID=new JTextField(); //创建文本框对象JTextField jtcoursename=new JTextField();JTextField jtcount=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_course(){ //添加教师账号信息this.setTitle("添加课程信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlcourseID); //将控件添加到窗体this.add(title);this.add(jlcoursename);this.add(jlcount);this.add(jtcourseID);this.add(jtcoursename);this.add(jtcount);this.add(note1);this.add(note2);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加课程信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlcourseID.setBounds(180,80,100,20);jlcoursename.setBounds(180,140,100,20);jlcount.setBounds(180,200,100,20);jtcourseID.setBounds(250,80,140,20);jtcoursename.setBounds(250,140,140,20);jtcount.setBounds(250,200,140,20);note1.setBounds(400,80,140,20);note2.setBounds(400,140,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,140,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(courseID);}return false;}public void actionPerformed(ActionEvent e){courseID=jtcourseID.getText(); //获取用户输入内容coursename=jtcoursename.getText();count=jtcount.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(courseID.equals("") || coursename.equals("")){warning.setText("请输入必填信息");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Course_ID from Course");while(rs.next()){if(rs.getString(1).equals(courseID)){warning.setText("课程ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!count.equals("")){temp=stat.executeUpdate("insert intoCourse(Course_ID,Course_Name,Course_Count)values('"+courseID+"','"+coursename+"','"+count+"')");}else{temp=stat.executeUpdate("insert intoCourse(Course_ID,Course_Name) values('"+courseID+"','"+coursename+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");warning.setText("");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){warning.setText("");jtcourseID.setT ext("");jtcoursename.setText("");jtcount.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}}3.添加学生package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_student extends JFrame implements ActionListener{static add_teacher ss;String userID=""; //用户名String pwd1=""; //密码String pwd2=""; //确认密码String getsdept=""; //院系String name=""; //姓名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel note3=new JLabel("*");JLabel jlID=new JLabel("学号:"); //创建文本框对象 JLabel jlName=new JLabel("姓名:");JLabel jlPwd=new JLabel("密码:");JLabel jlPwd2=new JLabel("确认密码:");JLabel sdept=new JLabel("学院:");JTextField jtID=new JTextField();JTextField jtName=new JTextField();JPasswordField jtPwd=new JPasswordField ();JPasswordField jtPwd2=new JPasswordField ();JTextField jtsdept=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_student(){this.setTitle("添加学生账号信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlID); //将控件添加到窗体this.add(title);this.add(jlName);this.add(jlPwd);this.add(jlPwd2);this.add(sdept);this.add(jtID);this.add(jtName);this.add(jtPwd);this.add(jtPwd2);this.add(jtsdept);this.add(note1);this.add(note2);this.add(note3);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);note3.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note3.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加学生账号信息");title.setBounds(222,20,150,20);jlID.setBounds(180,60,100,20);jlName.setBounds(180,100,100,20);jlPwd.setBounds(180,140,100,20);jlPwd2.setBounds(180,180,100,20);sdept.setBounds(180,220,100,20);jtID.setBounds(250,60,140,20);jtName.setBounds(250,100,140,20);jtPwd.setBounds(250,140,140,20);jtPwd2.setBounds(250,180,140,20);jtsdept.setBounds(250,220,140,20);note1.setBounds(400,60,140,20);note2.setBounds(400,140,140,20);note3.setBounds(400,180,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,100,150,20);submit.addActionListener(this);reset.addActionListener(this);this.setSize(600,400);centerShell(this);this.setVisible(true);this.setResizable(false); //设置窗体不可变大小this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(pwd1);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入内容pwd1=jtPwd.getText();pwd2=jtPwd2.getText();getsdept=jtsdept.getText();name=jtName.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){if(userID.equals("") || pwd1.equals("") || pwd2.equals("")){ //判断是否已输入必填信息warning.setText("请输入必填信息");}else if(!pwd1.equals(pwd2)){ //判断两次输入密码是否相同warning.setText("两次输入密码不相同");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Stu_ID from Student_Info");while(rs.next()){if(rs.getString(1).equals(userID)){warning.setText("用户ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Name,Stu_Pwd,Depart)values('"+userID+"','"+name+"','"+pwd1+"','"+getsdept+"')");}else if(!name.equals("") && getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Name,Stu_Pwd) values('"+userID+"','"+name+"','"+pwd1+"')");}else if(name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Pwd,Depart) values('"+userID+"','"+pwd1+"','"+getsdept+"')");}else{temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Pwd) values('"+userID+"','"+pwd1+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){ //重置所有控件warning.setText("");jtID.setText("");jtName.setText("");jtPwd.setText("");jtPwd2.setText("");jtsdept.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}//public static void main(String args[]){// new add_student();//}}4.添加教师package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_teacher extends JFrame implements ActionListener{static add_teacher ss;String userID=""; //用户名String pwd1=""; //密码String pwd2=""; //确认密码String getsdept=""; //院系String name=""; //姓名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel note3=new JLabel("*");JLabel jlID=new JLabel("教工号:"); //使用文本框创建标签对象 JLabel jlName=new JLabel("姓名:");JLabel jlPwd=new JLabel("密码:");JLabel jlPwd2=new JLabel("确认密码:");JLabel sdept=new JLabel("学院:");JTextField jtID=new JTextField(); //创建文本框对象JTextField jtName=new JTextField();JPasswordField jtPwd=new JPasswordField ();JPasswordField jtPwd2=new JPasswordField ();JTextField jtsdept=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_teacher(){ //添加教师账号信息this.setTitle("添加教师账号信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlID); //将控件添加到窗体this.add(title);this.add(jlName);this.add(jlPwd);this.add(jlPwd2);this.add(sdept);this.add(jtID);this.add(jtName);this.add(jtPwd);this.add(jtPwd2);this.add(jtsdept);this.add(note1);this.add(note2);this.add(note3);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);note3.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note3.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加教师账号信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlID.setBounds(180,60,100,20);jlName.setBounds(180,100,100,20);jlPwd.setBounds(180,140,100,20);jlPwd2.setBounds(180,180,100,20);sdept.setBounds(180,220,100,20);jtID.setBounds(250,60,140,20);jtName.setBounds(250,100,140,20);jtPwd.setBounds(250,140,140,20);jtPwd2.setBounds(250,180,140,20);jtsdept.setBounds(250,220,140,20);note1.setBounds(400,60,140,20);note2.setBounds(400,140,140,20);note3.setBounds(400,180,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,100,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(pwd1);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入内容pwd1=jtPwd.getText();pwd2=jtPwd2.getText();getsdept=jtsdept.getText();name=jtName.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(userID.equals("") || pwd1.equals("") || pwd2.equals("")){warning.setText("请输入必填信息");}else if(!pwd1.equals(pwd2)){ //判断两次输入密码是否一致warning.setText("两次输入密码不相同");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Tea_ID from Teacher_Info");while(rs.next()){if(rs.getString(1).equals(userID)){warning.setText("用户ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Names,T ea_Pwd,Depart)values('"+userID+"','"+name+"','"+pwd1+"','"+getsdept+"')");}else if(!name.equals("") && getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Names,T ea_Pwd)values('"+userID+"','"+name+"','"+pwd1+"')");}else if(name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Pwd,Depart) values('"+userID+"','"+pwd1+"','"+getsdept+"')");}else{temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Pwd) values('"+userID+"','"+pwd1+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){warning.setText("");jtID.setText("");jtName.setText("");jtPwd.setText("");jtPwd2.setText("");jtsdept.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}// public static void main(String[] args){// new add_teacher();// }}5.添加授课信息package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_tc extends JFrame implements ActionListener{static add_tc ss;String courseID=""; //课程名String teachername=""; //课程名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel jlcourseID=new JLabel("课程号:"); //使用文本框创建标签对象JLabel jlteachername=new JLabel("教师号:");JTextField jtcourseID=new JTextField(); //创建文本框对象JTextField jtteachername=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_tc(){ //添加授课信息this.setTitle("添加授课信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlcourseID); //将控件添加到窗体this.add(jlteachername);this.add(title);this.add(jtcourseID);this.add(jtteachername);this.add(note1);this.add(note2);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加授课信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlcourseID.setBounds(180,80,100,20);jlteachername.setBounds(180,140,100,20);jtcourseID.setBounds(250,80,140,20);jtteachername.setBounds(250,140,140,20);note1.setBounds(400,80,140,20);note2.setBounds(400,140,140,20);submit.setBounds(200,250,60,20);reset.setBounds(300,250,60,20);warning.setBounds(420,140,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(courseID);}return false;}public void actionPerformed(ActionEvent e){courseID=jtcourseID.getText(); //获取用户输入内容teachername=jtteachername.getText();int temp=0,flag1=0,flag2=0,flag3=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(courseID.equals("") || teachername.equals("")){warning.setText("请输入必填信息");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Course_ID from Course");while(rs.next()){if(rs.getString(1).equals(courseID)){flag1=1; //判断课程ID存在break;}}ResultSet rss=stat.executeQuery("select Tea_ID fromTeacher_Info");while(rss.next()){if(rss.getString(1).equals(teachername)){flag2=1; //判断教师ID存在break;}}if(flag1!=1){warning.setText("课程ID不存在");}else if(flag2!=1){warning.setText("教师ID不存在");}ResultSet rsss=stat.executeQuery("select Course_ID,T ea_ID from tc");while(rsss.next()){if(rsss.getString(1).equals(courseID) &&rsss.getString(2).equals(teachername)){flag3=1;warning.setText("授课信息重复");。