【精品】Delphi教学排课及学生学籍管理设计与实现(源代码+论文+说明)
收藏
资源目录
压缩包内文档预览:(预览前20页/共95页)
编号:1638140
类型:共享资源
大小:1.44MB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
12
积分
- 关 键 词:
-
精品
delphi
教学
学生
学籍
管理
设计
实现
源代码
论文
说明
- 资源描述:
-
【精品】Delphi教学排课及学生学籍管理设计与实现(源代码+论文+说明),精品,delphi,教学,学生,学籍,管理,设计,实现,源代码,论文,说明
- 内容简介:
-
安装步骤: 1、 在机上安装 服务器端(客户),确保系统完全运行 2、 配置服务器端 ; 设计步骤: 1、 构思; 2、 画出数据流程图,构思出数据表,再得出后台数据库中的数据表之间的关联。 3、 用 计前台界面,在界面上放置与后台数据库的数据表相连的控件。 4、 设计代码实现管理功能。 数据库配置: 1、 打开 2、 3、 必须用 议; 4、 别名就用 户名为 一个缺省密码为 5、刚才的协议改为 P,用户名为 6、做为以上后就可以创建数据库了,点右键可以 名为 放为 d:毕业设计:高校学生管理子系统及教务管理子系统基于C/S模式的高校学生管理子系统及教务管理子系统(学校管理系统中的两个子系统) 题 目:基于C/S模式的高校学生管理子系统及教务管理子系统设计者:曹力平 台:Delphi 6.0 数据库:Delphi自身带的interbase 6.0、SQL Explorer学 号:班 级:02级春班学 校:益阳广播电视大学专 业:计算机科学与技术(开放本科)日 期:2004年3月目 录:第一章 引言 (页码3)本课题的研究意义;本论文的目的、内容及作者的主要贡献;第二章 研究现状及设计目标:(页码3页码4)相近研究课题的特点及优缺点分析;现行研究存在的问题及解决方法;本课题要达到的设计目标;第三章 实际中要解决的几个问题:(页码4页码11)研究设计中要解决的问题;具体实现中采用的关键技术及复杂性分析;第四章 系统结构与模型:(页码11-页码12)设计实现的策略和算法描述;编程模型及数据结构;第五章 系统实现技术:(页码12)分模块地描述系统各部分的实现方法;程序流程;第六章 性能测试与分析:(页码13)测试实例(测试集)的研究与选择;测试环境与测试条件;实例测试(表格与曲线);性能分析;第七章 结束语及参考文献:(页码13)摘要(Abstract):随着信息技术的发展,高校学生管理工作以及教务管理工作正在以校园网为平台、采用计算机和数据库等现代化技术不断提高管理水平。研究基于/的高校学生管理子系统的学籍管理、学生相关管理、学生信息查询和统计等功能以及基于C/S的高校教务科管理子系统的教师申请课程、登记成绩;教务科通过申请新课;学生查询成绩等功能。关 键 词(keywords):/;interbase;delphi 6.0;学生管理;教务管理;数据库;第一章 引 言:本课题研究的意义:/(客户机/服务器),简称/。/模式是20世纪80年代出现并至今作为主流应用的一种开发模式,所谓的 模式实际上是一种“逻辑”概念,即将整个系统在逻辑上划分成前端客户进程和后台服务器进程,两者通过网络连接。前端的客户应用程序主要是显示界面、与用户进行交互,而后台的服务器进程主要是负责进行数据处理,将处理后的结果返回给用户,而且服务器所进行的工作对客户应用程序来说是完全透明的,在局域网络上传输的是语句和处理后的结果。这种模式的优点主要体现在以下几点:(1)交互性好,速度快,适合于系统中大量数据的输入输出操作;(2)能够提供数据和服务的无缝集成。通过 结构的(数据库管理系统),易于实现一个系统中原有数据与应用程序的集成;(3)良好的开放性和易扩充性,客户端及其功能的添加、删除和更新都不会对整个系统产生影响。本论文研究的目的:在毕业设计中,已经实现了一个基于C/S模式的高校学生信息管理子系统及教务管理子系统,所以在本论文中详细阐明了两个子系统各自所实现的各项功能,意在说明在当今信息社会中,高校的管理工作应向计算机系统化转变,才能省去大量的手工劳动,提高工作效率。第二章 研究现状及设计目标:相近研究课题的特点及优缺点分析:据我在实际生活及internet网络上观察,如今大部分学校的学生信息管理以及教务管理都是由教务科的干事手工操作,不仅费时费力,还不利于资料的处理增删,查询等也很麻烦。此种作法工作效率低,易出错,又浪费了人力资源。就拿我来说,在益阳教育学院就是在教务科工作,绝大多数的学生的资料管理以及教务成绩管理查询都是由我手工完成,不是由计算机来处理操作。很久以来我就想开发一套教学管理自动化软件,这样才能做到事半功倍,利于学校的工作流程。这次毕业设计的研究课题的特点是我在教务科的日常工作中积累不少经验而做成的,并不是闭门造车,能够解决实际工作中产生的各类问题。这两个子系统就是按照我平时在工作中的流程设计而成的。就拿学生信息管理子系统来说,从一个学生的基本资料输入进数据库-他(她)的奖励经历-他(她)的处罚经历-他(她)的转学或复学、休学等情况-学生的个人信息查询修改等,整个过程可以说是一气呵成,联系紧密,如果一个没有从事过此类工作的同学是不可能把工作经验融入到系统设计中并做出整个系统来的。当然做为一个开放教育本科的学生,接受教育培训的机会不是很多,大部分靠自我摸索,所以我认为这个系统肯定存在着不足之处,比如说在教务管理子系统中有些功能就只能等到期末时才能看到最终效果,这肯定是不对的,有待于以后改进。本课题要达到的设计目标:能够实现学生信息管理子系统的大部分管理功能(增加新生;学生的转学、复学、休学;奖励情况;处罚情况;学生个人信息查询修改);能够实现教务管理子系统的大部分管理功能(本子系统通过密码确认后,可进入不同管理页面,分为教务科,教师,学生三个不同管理页面,其中教务科管理页面可以通过教师提交的申请新课、申请删除旧课、申请修改旧课资料的要求,并分配教室和上课时间等课程资源,能够实现选课结果查询管理,以及期末成绩单的管理;教师管理页面可以申请增开新的课程、删除旧的课程、修改已有的课程信息等;同时在界面初始化时,可列出可选的课程列表,单击课程列表时,显示相应课程的学生名单和成绩单输入表来;学生管理页面可以进行选课操作、查询自己所选课程的成绩及这门课程的最高分、平均分、最低分等成绩相关信息。)第三章 实际中要解决的几个问题:教学管理子系统要解决的是1、是数据库设计问题,因后台数据库是Delphi 6.0自身所携带的interbase 6.0,前台的软件设计平台与后台数据库的联结相对而言比较紧密,在设计中我先构思出两个子系统的数据流程图,再根据图构思出大概的实体-关系模型。成 绩学生选课教务科批准每学期时间和教室安排课程基本信息修改申 请各课期末成绩课程清单选课结果课程设置信 息课程基本信 息成绩单课程学生名单学生课表课程删除申请课程增加申请第一步:先构思它的数据流程图:第二步:根据上列的数据流程图列出数据库概念结构设计,这是数据库逻辑结构设计的基础。学 生教 师M:nNnNMMNNNNNnn 选 课N:1N:1 讲 课 学生成绩1:N成绩单课 程 课程成绩 第三步:便可以构造后台数据库的数据表了:根据上面所设计出来的E-R图,可以知道要有3个基本信息表:教师信息、学生信息、课程信息。其中,教师信息和学生信息在实际系统中是从其它信息管理系统的数据表中直接读取。学生的选课信息需要用1个表来单独保存。由于每学期期末前都要进行选课。因此选课结束后要将这个表的内容及时保存到成绩单数据表中。同时如上所述,使用本子系统的不仅是教务科的管理干事和教师,还要每个学生都能登录到选课系统进行课程的选择及成绩的查询。因此,需要对不同的登录人员进行密码的认证。所以需要八个数据表:用户密码表、成绩信息表、教师个人信息表、学生个人信息表、课程信息表、课程状态代码表、选课结果信息表、计数信息表等八个数据表。在计数信息表中,F代表成绩记录编号;K代表课程编号;X代表选课编号;在课程状态代码表中,0代表增加新课;1代表申请删除旧课;2代表申请修改课程信息;3代表可选(激活);4代表等待课程安排;5代表课程已被删除;6代表教务科拒绝老师的申请;2、是前台设计平台,它是对后台数据库的数据表进行操作(下为教师管理界面)(图1)学生管理界面:分为选课操作子界面及查询成绩子界面。(图2)教务管理界面:分成审批设置、分配课程资源、查询管理选课结果、期末成绩表四个子界面。(图3)上面三个管理界面右边的是后台数据库,通过Delphi 6.0的控件Database、Table、Query、DataSource实现与后台数据库的数据表的连接,通过界面控制实现对数据库中的数据表的增、删、修改等操作来达到管理的目的。学生信息管理子系统要解决的也是1、后台数据库:先要构思出整个的数据流程图,再根据数据流程图来进行E-R图的设计,在此基础上最后进行实质性的工作:数据库中数据表的字段的设计,才能在前台软件设计中依照Delphi 6.0中的数据表控件Database、Table、Query、DataSource对后台数据库中的数据表进行操作,最终实现功能。数据流程图如下:转系、休学、复学、退学、毕业学生统计记 录处分记录奖励记录学籍变更记录奖学金评定解除处分处 罚教务处学生个人信息入取名单 个人信息根据数据流程图,可以知道学生信息管理子系统所需的数据项和数据结构:学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效奖励记录:记录号、级别,处罚对象、记录时间、详细描述学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述而外部数据支持:班级:班级编号、班级名称、所属院系院系:代码、名称E-R(实体-关系模型):是数据库结构设计常用的方法。班级1:N院系1:N1:N处分记录学籍变更记录1:N1:N1:N1:N奖励记录学生根据上列的E-R图,可以基本设计出数据库中的十个数据表:学生个人信息表、学籍变更信息表、奖励信息表、处罚记录信息表、院系信息表、班级信息表、学籍变动代码表、奖励等级代码表、处罚等级代码表、计数保存表。在这十个数据表中学籍变更代码表中:0代表转系、1代表休学、2代表复学、3代表退学、4代表毕业。奖励级别代码表中:0代表校特等奖学金、1代表校一等奖奖学金、2代表校二等奖奖学金、3代表校三等奖奖学金、4代表系一等奖奖学金、5代表系二等奖奖学金、6代表系三等奖奖学金。处罚级别代码中:0代表警告、1代表严重警告、2代表记过、3代表记大过、4代表开除。2、前台管理界面:新生入数据库的子界面,可以增加新生、删除学生记录、修改学生记录。教师信息数据分配教师号招聘新教师岗位调整人事变动记录人事科个人信息查询教师辞职根据数据流程图,列出数据项和数据结构:员工信息:人事变动:部门设置:N:1E-R(实体图):是数据逻辑结构设计的基础。N:1系 别教 师人事变动记录 变动时间1:1再根据实体图,设计出数据库的逻辑结构设计:员工个人信息表、人事变动记录表、受教育程序表、职务代码表、人事变动代码表、计数器表、部门信息表等七个表。考勤管理子系统:月度员工考勤统计表教师出勤记录记录出勤时 间数据流图:教师得出各种统计数据表来请假、值班、出差记录 请假、值班、出差 请假、 值班、出差考勤科管理人员上下班时间安排考勤员人事科审批根据数据流图:知道子系统需要以下数据项和数据结构:出勤记录:请假记录:加班记录:出差记录:月度考勤统计:人员信息:部门设置:得出E-R图来:教 师N:1N:1N:1N:1N:1加班记录请假记录月度考勤统 计出勤记录出差记录根据E-R图:知道系统需要以下五个数据表:出勤记录表;出差记录表;加班记录表;请假记录表;月度考勤统计表;其中计数器表中的N为班次安排编号,A为出勤记录编号,O为加班记录编号,L为请假记录编号,E为出差记录编号,S为考勤统计编号;第五章 系统实现技术:分模块地描述系统各部分的实现方法:主界面:unit student;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, DB, DBTables, StdCtrls, Menus;type TForm2 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N7: TMenuItem; N5: TMenuItem; N8: TMenuItem; N6: TMenuItem; N9: TMenuItem; GroupBox1: TGroupBox; Label2: TLabel; Edit1: TEdit; StatusBar1: TStatusBar; Label1: TLabel; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N13: TMenuItem; Label3: TLabel; Label4: TLabel; procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure FormCreate(Sender: TObject); private Private declarations public Public declarations end;var Form2: TForm2; info:string;implementationuses teach, stinfo, teacher, use, copyrights, teacherlogin, studentlogin, jiaowuke, jiaowu, studentsys, studentsystem, jiaohelp, renhelp, kaoqi, kaohelp;$R *.dfmprocedure TForm2.N2Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else begin form2.Hide ; form7.show; end;end;procedure TForm2.N3Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else begin form2.Hide ; form3.show; end;end;procedure TForm2.N4Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else begin form2.hide; form4.show; end; end;procedure TForm2.N8Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else form5.show;end;procedure TForm2.N9Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else form6.show;end;procedure TForm2.Edit1Change(Sender: TObject);begin info:=form2.Edit1.Text ; form2.Caption :=info+ 学校管理系统; form7.Caption :=info+学校学生个人情况管理系统; form3.caption :=info+学校教学管理系统进入页面; form4.Caption :=info+学校教师人事管理系统; form6.Caption:=此管理应用系统版权说明; form5.Caption:=info+学校学生个人情况系统使用帮助; form8.caption:=info+教师课程管理应用系统登录 ; form9.caption:=info+学生选课管理应用系统登录; form10.caption:=info+教务科课程调度应用系统登录; form11.caption:=info+教务科课程调度应用系统; form12.caption:=info+教师课程管理应用系统; form13.caption:=info+学生选课管理应用系统; form15.caption:=info+学校教务科管理系统使用帮助; form16.caption:=info+学校人事管理系统使用帮助; form22.caption:=info+学校教师考勤管理系统; form23.caption:=info+学校教师考勤管理系统使用帮助;end;procedure TForm2.N10Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else form15.show;end;procedure TForm2.N11Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else form16.show;end;procedure TForm2.N7Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else form22.show;end;procedure TForm2.N13Click(Sender: TObject);begin if form2.Edit1.Text = then showmessage(请先输入学校名称) else form23.show; end;procedure TForm2.N12Click(Sender: TObject);begin close;end;procedure TForm2.FormCreate(Sender: TObject);beginend;end.1. 学生学籍管理子系统:进入学生学籍信管理系统之后,就可以出现一个界面:学生情况变动表中提交模块:if T_stud_info_1.RecordCount 0 then /判断输入的学号是否存在begin T_counter_c.Open;/如果存在,开始追加记录counter:=T_counter)cCOUNTER_VALUE; /获取记录值Inc(counter); /增加记录值T_counter_c.Edit; /编缉记录值T_counter_cCOUNTER_VALUE:=counter;/写入增加记录值到学籍变动表T_counter_c.Post;/提交T_counter_c.Open; /打开学籍变动表学籍管理子系统的源代码如下:unit stinfo;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Mask, Buttons;type TForm7 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; TabSheet5: TTabSheet; Database1: TDatabase; T_student: TTable; DS_student: TDataSource; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; Label1: TLabel; T_stud_info_1: TTable; DS_stud_info_1: TDataSource; DS_class_info_1: TDataSource; DS_depart_info_1: TDataSource; T_class_info_1: TTable; T_depart_info_1: TTable; T_counter_c: TTable; T_change: TTable; i_stud_id_1: TMaskEdit; GroupBox1: TGroupBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; DBText1: TDBText; DBText2: TDBText; DBText3: TDBText; i_change: TRadioGroup; i_descrip_1: TMemo; Label5: TLabel; Button1: TButton; Button2: TButton; SpeedButton2: TSpeedButton; Label6: TLabel; i_stud_id_4: TMaskEdit; Label7: TLabel; i_stud_id_2: TMaskEdit; GroupBox2: TGroupBox; Label8: TLabel; Label9: TLabel; Label10: TLabel; DBText4: TDBText; DBText5: TDBText; DBText6: TDBText; i_reward_level: TRadioGroup; Label11: TLabel; i_descrip_2: TMemo; Button3: TButton; Button4: TButton; Label12: TLabel; i_stud_id_3: TMaskEdit; GroupBox3: TGroupBox; Label13: TLabel; Label14: TLabel; Label15: TLabel; DBText7: TDBText; DBText8: TDBText; DBText9: TDBText; i_punish_level: TRadioGroup; Label16: TLabel; i_descrip_3: TMemo; Button5: TButton; Button6: TButton; T_counter_r: TTable; T_counter_p: TTable; T_punish: TTable; T_reward: TTable; T_stud_info_2: TTable; DS_stud_info_2: TDataSource; T_class_info_2: TTable; DS_class_info_2: TDataSource; T_depart_info_2: TTable; DS_depart_info_2: TDataSource; T_stud_info_3: TTable; DS_stud_info_3: TDataSource; DS_class_info_3: TDataSource; DS_depart_info_3: TDataSource; T_class_info_3: TTable; T_depart_info_3: TTable; GroupBox4: TGroupBox; Label17: TLabel; Label18: TLabel; DBRadioGroup1: TDBRadioGroup; DBEdit1: TDBEdit; Label19: TLabel; Label20: TLabel; DBEdit2: TDBEdit; DBEdit3: TDBEdit; Label21: TLabel; Label22: TLabel; DBLookupComboBox1: TDBLookupComboBox; DBLookupComboBox2: TDBLookupComboBox; Button7: TButton; Button8: TButton; Label23: TLabel; DBGrid2: TDBGrid; Label24: TLabel; DBGrid3: TDBGrid; Label25: TLabel; DBGrid4: TDBGrid; GroupBox5: TGroupBox; GroupBox6: TGroupBox; GroupBox7: TGroupBox; Label26: TLabel; DBLookupComboBox3: TDBLookupComboBox; Label27: TLabel; DBMemo1: TDBMemo; Button9: TButton; Button10: TButton; Label28: TLabel; DBLookupComboBox4: TDBLookupComboBox; Label29: TLabel; DBMemo2: TDBMemo; Button11: TButton; Button12: TButton; Label30: TLabel; DBLookupComboBox5: TDBLookupComboBox; Label31: TLabel; DBRadioGroup2: TDBRadioGroup; DBMemo3: TDBMemo; Button13: TButton; Button14: TButton; T_stud_info_4: TTable; DS_stud_info_4: TDataSource; T_class_info_4: TTable; DS_class_info_4: TDataSource; T_depart_info_4: TTable; DS_depart_info_4: TDataSource; T_change_4: TTable; DS_change_4: TDataSource; T_change_code_4: TTable; DS_change_code_4: TDataSource; T_reward_4: TTable; DS_reward_4: TDataSource; T_reward_level_4: TTable; DS_reward_level_4: TDataSource; T_punish_4: TTable; DS_punish_4: TDataSource; T_punish_level_4: TTable; DS_punish_level_4: TDataSource; SpeedButton3: TSpeedButton; StatusBar1: TStatusBar; procedure FormCreate(Sender: TObject); procedure i_stud_id_1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure i_stud_id_2Change(Sender: TObject); procedure i_stud_id_3Change(Sender: TObject); procedure i_stud_id_4Change(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button14Click(Sender: TObject); private Private declarations public Public declarations end;var Form7: TForm7;implementationuses student, ipthelp;$R *.dfmprocedure TForm7.FormCreate(Sender: TObject);begin T_student.Open ; DBGrid1.Columns 0.Width :=64; DBGrid1.Columns 1.Width :=64; DBGrid1.Columns 2.Width :=64; DBGrid1.Columns 3.Width :=64; DBGrid1.Columns 4.Width :=64; DBGrid1.Columns 5.Width :=64; DBGrid1.Columns 6.Width :=100;end;procedure TForm7.i_stud_id_1Change(Sender: TObject);begin T_stud_info_1.Filter :=ID=+i_stud_id_1.Text+; T_stud_info_1.Filtered :=true; T_stud_info_1.Open ; T_class_info_1.Open; T_depart_info_1.Open;end;procedure TForm7.Button1Click(Sender: TObject);begin i_stud_id_1.Text:=; /学号输入框清空 i_change.ItemIndex :=0; /学籍变更复位到”转系“ i_descrip_1.Clear ; /描述框清空end;procedure TForm7.Button2Click(Sender: TObject);var counter:smallint;begin T_stud_info_1.Open; if T_stud_info_1.RecordCount 0 then /判断输入的学号是否存在 begin T_counter_c.Open; /如果存在,开始追加记录 counter:=T_counter_cCOUNTER_VALUE; Inc(counter); T_counter_c.Edit ; T_counter_cCOUNTER_VALUE:=counter; T_counter_c.Post; T_change.Open; T_change.appendrecord(counter,i_stud_id_1.Text,i_change.itemindex,now,i_descrip_1.Text); button1click(nil); end else Application.messagebox(请确认输入的学号是否正确,错误,MB_OK);end;procedure TForm7.SpeedButton2Click(Sender: TObject);begin form7.Hide; form2.show;end;procedure TForm7.SpeedButton1Click(Sender: TObject);begin form1.show;end;procedure TForm7.Button5Click(Sender: TObject);var counter:smallint;begin T_stud_info_3.Open; if T_stud_info_3.RecordCount0 then /确认学号是否存在 begin T_counter_p.Open; counter:=T_counter_pCOUNTER_VALUE; Inc(counter); /累加处罚记录计数器 T_counter_p.Edit; T_counter_pCOUNTER_VALUE:=counter; T_counter_p.Post; /修改计数器值 T_punish.Open; /打开处罚数据表 T_punish.AppendRecord(counter, i_stud_id_3.text, i_punish_level.ItemIndex, Now, True, i_descrip_3.text);/添加数据到处罚数据表 Button6Click(nil); end else Application.MessageBox(请确认输入的学号是否正确!, 错误, MB_OK);end;procedure TForm7.Button6Click(Sender: TObject);begin i_stud_id_3.Text:=; i_punish_level.ItemIndex:=0; i_descrip_3.Clear; end;procedure TForm7.Button3Click(Sender: TObject);varcounter:smallint;begin T_stud_info_2.Open; if T_stud_info_2.RecordCount0 then /确认学号是否存在 begin T_counter_r.Open; counter:=T_counter_rCOUNTER_VALUE; Inc(counter); /累加奖励记录计数器 T_counter_r.Edit; T_counter_rCOUNTER_VALUE:=counter; T_counter_r.Post; T_reward.Open; T_reward.AppendRecord(counter, i_stud_id_2.text, i_reward_level.ItemIndex, Now, i_descrip_2.text); Button4Click(nil); end else Application.MessageBox(请确认输入的学号是否正确!, 错误, MB_OK);end;procedure TForm7.Button4Click(Sender: TObject);begin i_stud_id_2.Text:=; i_reward_level.ItemIndex:=0; i_descrip_2.Clear;end;procedure TForm7.i_stud_id_2Change(Sender: TObject);begin T_stud_info_2.Filter :=ID=+i_stud_id_2.Text+; T_stud_info_2.Filtered :=true; T_stud_info_2.Open ; T_class_info_2.Open; T_depart_info_2.Open;end;procedure TForm7.i_stud_id_3Change(Sender: TObject);begin T_stud_info_3.Filter :=ID=+i_stud_id_3.Text+; T_stud_info_3.Filtered :=true; T_stud_info_3.Open ; T_class_info_3.Open; T_depart_info_3.Open;end;procedure TForm7.i_stud_id_4Change(Sender: TObject);begin T_stud_info_4.Filter:=ID=+i_stud_id_4.Text+; T_stud_info_4.Filtered:=True; T_stud_info_4.Open; T_class_info_4.Open; T_depart_info_4.Open; T_change_4.Open; T_change_code_4.Open; T_reward_4.Open; T_reward_level_4.Open; T_punish_4.Open; T_punish_level_4.Open;end;procedure TForm7.Button7Click(Sender: TObject);begin T_stud_info_4.Post; /在学生信息查询修改确认对学生信息的修改end;procedure TForm7.Button8Click(Sender: TObject);begin T_stud_info_4.Cancel;end;procedure TForm7.Button9Click(Sender: TObject);begin T_change_4.Post; /在学生信息查询修改子界面中确认对学生变更情况的修改end;procedure TForm7.Button10Click(Sender: TObject);begin T_change_4.Cancel;end;procedure TForm7.Button11Click(Sender: TObject);begin T_reward_4.Post; /在学生信息查询修改子界面中确认对学生奖励情况的修改end;procedure TForm7.Button12Click(Sender: TObject);begin T_reward_4.Cancel;end;procedure TForm7.Button13Click(Sender: TObject);begin T_punish_4.Post; /在学生信息查询修改子界面中确认对学生惩罚情况的修改end;procedure TForm7.Button14Click(Sender: TObject);begin T_punish.Cancel;end;end.2教务排课管理子系统:教师管理子界面:根据提交申请的不同,分成三种情况区别对待:源代码如下:unit studentsys;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ComCtrls, DB, DBTables, StdCtrls, Grids, DBGrids, Spin, ExtCtrls, DBCtrls, Mask;type TForm12 = class(TForm) SpeedButton1: TSpeedButton; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; T_course_1: TTable; DS_course_1: TDataSource; T_counter_K: TTable; Label1: TLabel; Label2: TLabel; Label3: TLabel; i_name_1: TEdit; i_credit_hour_1: TSpinEdit; i_period_1: TSpinEdit; Label4: TLabel; i_intro_1: TMemo; Label5: TLabel; o_course_1: TDBGrid; B_submit: TButton; B_reset: TButton; T_teacher_info: TTable; Q_students: TQuery; DS_student_info: TDataSource; T_students: TTable; B_print_list: TButton; Label6: TLabel; Label7: TLabel; Label8: TLabel; o_course_2: TDBGrid; o_student_list: TDBGrid; i_score: TDBGrid; DS_students: TDataSource; T_course_2: TTable; i_state_1: TDBRadioGroup; Label9: TLabel; i_teacher: TDBEdit; Label10: TLabel; procedure SpeedButton1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure B_resetClick(Sender: TObject); procedure i_state_1Click(Sender: TObject); procedure o_course_1CellClick(Column: TColumn); procedure B_submitClick(Sender: TObject); procedure B_print_listClick(Sender: TObject); procedure o_course_2CellClick(Column: TColumn); procedure TabSheet2Show(Sender: TObject); procedure Button1Click(Sender: TObject); private Private declarations public Public declarations end;var Form12: TForm12;implementationuses student, teach, teacherlogin;$R *.dfmprocedure TForm12.SpeedButton1Click(Sender: TObject);begin form12.Hide; form3.show;end;procedure TForm12.FormShow(Sender: TObject);begin T_teacher_info.Filter:=ID=+Form8.i_user.Text+; T_teacher_info.Filtered:=True; T_teacher_info.Open; Form12.Caption:=课程管理系统用户:+T_teacher_infoNAME;end;procedure TForm12.FormClose(Sender: TObject; var Action: TCloseAction);begin Application.Terminate;end;procedure TForm12.B_resetClick(Sender: TObject);begin i_state_1.ItemIndex:=0; /申请初始化到增开新课 i_state_1Click(nil); /调用申请修改程序 i_name_1.Text:=; /清除课程名 i_credit_hour_1.Text:=0; /初始化学分 i_period_1.Text:=0; /初始化学时 i_intro_1.Lines.Clear; /清除课程简介end;procedure TForm12.i_state_1Click(Sender: TObject);beginif i_state_1.ItemIndex0 then /如果不是新开课程,则显示列表 begin T_course_1.Filter:=TEACHER=+Form8.i_user.Text+ AND STATE5 AND STATE1; T_course_1.Filtered:=True; /获取当前教师所开的课程 T_course_1.Open; /不包括已删除和申请删除的课程 o_course_1.Enabled:=True; /激活已开课程列表 o_course_1CellClick(nil); /显示当前课程信息 end else begin T_course_1.Close; /如果是新开课程 ,关闭已开课程数据表 o_course_1.Enabled:=False; /取消课程列表显示 end;end;procedure TForm12.o_course_1CellClick(Column: TColumn); /如果是删除或修改旧的课程,在单击课程列表时,将在输入框中显示课程的详细信息。begin if T_course_1.Active then /判断课程信息表是否激活 begin i_name_1.Text:=T_course_1NAME; /提取课程名称 i_credit_hour_1.value:=T_course_1CREDIT_HOUR; /提取课程学分 i_period_1.Value :=T_course_1PERIOD; /提取课程学分 i_intro_1.Lines.Clear; /清除课程简介 i_intro_1.Lines.Add(T_course_1INTRO); /提取课程简介 end;end;procedure TForm12.B_submitClick(Sender: TObject); /表单的提交var counter:integer; course_id:string;begin case i_state_1.ItemIndex of /根据不同申请,分别处理 0: /如果增加新课 begin /获取课程计数 T_counter_K.Open; /打开计数器表 counter:=T_counter_KCOUNTER_VALUE; inc(counter); T_counter_K.Edit; T_counter_KCOUNTER_VALUE:=counter; T_counter_K.Post; T_counter_K.Close; /合成课程编号 course_id:=0000+IntToStr(counter); /将计数值转换为字符串 / course_id:=copy(course_id,length(course_id)-6,6); /将截取固定长度字符串 label10.caption:=course_id; course_id:=FormatDateTime(yyyy,now)+course_id; /添加年份信息 /添加课程信息 T_course_1.Filtered:=False; T_course_1.Open; T_course_1.AppendRecord(course_id,i_name_1.Text,i_teacher.text,i_credit_hour_1.value,i_period_1.value, , , i_intro_1.Lines,0); end; 1: /申请删除 begin T_course_1.Filtered:=False; /取消过滤 T_course_1.Edit; /进行修改 T_course_1STATE:=1; /改变课程状态 T_course_1.Post; /提交修改 end; 2: /申请修改 begin T_course_1.Filtered:=False; /取消过滤 T_course_1.Edit; T_course_1NAME:=i_name_1.Text; T_course_1CREDIT_HOUR:=i_credit_hour_1.Value; T_course_1PERIOD:=i_period_1.Value; T_course_1INTRO:=i_intro_1.Lines.Text; T_course_1STATE:=2; /改变课程状态 T_course_1.Post; end; end; B_resetClick(nil); /恢复表单end;procedure TForm12.B_print_listClick(Sender: TObject);begin showmessage(此系统暂没有配置打印机,此功能目前无效!);end;procedure TForm12.o_course_2CellClick(Column: TColumn);begin Q_students.close; Q_students.Params.ParamValues COURSE:=T_course_1ID; Q_students.Open ;end;procedure TForm12.TabSheet2Show(Sender: TObject);begin T_course_1.Filter :=TEACHER=+form8.i_user.Text +AND state=3; T_course_1.Filtered :=true; T_course_1.Open ; o_course_2CellClick(nil); T_students.Open;end;procedure TForm12.Button1Click(Sender: TObject);begin/ showmessage(不是期初不能提交表单!); end;end.教务管理子界面:转移记录、通过申请、分配课程资源、管理期末成绩单等四个子界面:转移记录模块:inc(counter);T_score.AppendRecord(counter.T_course_selectSTUDENT,T_course_selectCOURSE,0);T_course_select.Delete;/删除旧记录通过申请模块:Q_update.Close; /通过申请 Q_update.SQL.Clear; Q_update.SQL.Add(UPDATE COURSE); Q_update.SQL.Add(SET STATE=4); Q_update.SQL.Add(WHERE ID=+T_course_applyID+); Q_update.ExecSQL; /执行修改课程状态的SQL语句 T_course_apply.Refresh;登记模块:Form9: TForm9;implementationuses studentsystem, teacherlogin, studentsys, teach;$R *.dfmprocedure TForm9.B_login1Click(Sender: TObject);begin try T_user1.Filter :=ID=+i_user1.text+; T_user1.Filtered :=true; T_user1.Open ; except Application.MessageBox (请与系统管理员联系,数据库连接错误,MB_OK); Application.Terminate ; end; if T_user1.RecordCount =1 then begin if T_user1PASSWD=i_passwd1.Text then begin if T_user1AUTHORITY=1 then begin form9.Hide; form13.show; i_user1.Text := ; i_passwd1.Text := ; end else Application.MessageBox(请选择合适的登录软件,用户权限错误,MB_OK); end else Application.MessageBox(请确认密码,注意大小写,密码不正确,MB_OK); end else Application.MessageBox(请确认用户名是否正确!,无此用户,MB_OK);end;procedure TForm9.B_cancel1Click(Sender: TObject);begin form9.Hide ; form3.show;end;procedure TForm9.FormCreate(Sender: TObject);begin i_user1.Text := ; i_passwd1.Text := ;end;cedure TForm11.SpeedButton1Click(Sender: TObject);begin form11.Hide; form3.show;end;procedure TForm11.TabSheet1Show(Sender: TObject);begin T_course_apply.Open ; /激活申请课程表 T_teacher.open; /激活教师表end;procedure TForm11.B_passClick(Sender: TObject);begin Q_update.Close; /通过申请 Q_update.SQL.Clear; Q_update.SQL.Add(UPDATE COURSE); Q_update.SQL.Add(SET STATE=4); Q_update.SQL.Add(WHERE ID=+T_course_applyID+); Q_update.ExecSQL; /执行修改课程状态的SQL语句 T_course_apply.Refresh;end;procedure TForm11.B_rejectClick(Sender: TObject);begin Q_update.Close; /拒绝申请 Q_update.SQL.Clear; Q_update.SQL.Add(UPDATE COURSE); /修改sql语句 Q_update.SQL.Add(SET STATE=6); Q_update.SQL.Add(WHERE ID=+T_course_applyID+); Q_update.ExecSQL; T_course_apply.Refresh; /刷新课表end;procedure TForm11.TabSheet2Show(Sender: TObject); /初始化表单begin Q_course_not_actived.Close; /关闭未分配课程查询 Q_course_actived.Close ; /关闭已分配课程查询 Q_course_not_actived.Open ; /打开未分配课程查询列表 Q_course_actived.Open ; /打开已分配课程查询列表end;procedure TForm11.B_submitClick(Sender: TObject); /提交分配的处理程序begin With Q_submit do begin Close; SQL.Clear; SQL.Add(UPDATE COURSE); SQL.Add(SET CLASSROOM=+i_classroom.Text+ , CLASSTIME=+i_time.Text+ , STATE=3); SQL.Add(WHERE ID=+Q_course_not_activedID+); ExecSQL; end; TabSheet2Show(nil); /执行sql i_classroom.Text:=; i_time.Text:=;end;procedure TForm11.B_disableClick(Sender: TObject); /取消当前分配begin With Q_submit do begin Close; SQL.Clear; SQL.Add(UPDATE COURSE); /更新course数据表 SQL.Add(SET STATE=4); SQL.Add(WHERE ID=+Q_course_activedID+); ExecSQL; end; TabSheet2Show(nil); /刷新表单end;procedure TForm11.B_print_courseClick(Sender: TObject);begin showmessage(本系统暂时没有和打印机连接起来!);end;procedure TForm11.B_clear_allClick(Sender: TObject);beginif Application.MessageBox(确认要清除所有已分配资源?,操作确认, MB_OKCANCEL)=IDOK then begin With Q_submit do begin Close; SQL.Clear; SQL.Add(UPDATE COURSE); /把所有course的状态为3的改为4 SQL.Add(SET STATE=4); SQL.Add(WHERE STATE=3); ExecSQL; end; TabSheet2Show(nil); end;end;procedure TForm11.TabSheet3Show(Sender: TObject); /主要功能是将选课的结果转移/到成绩单中,同时兼有修改功能。begin T_course_select.Open ; /打开已选课程数据表 T_score.Open ; /打开成绩数据表end;procedure TForm11.Button1Click(Sender: TObject); /转移记录按钮var counter:integer;begin T_counter_F.Open ; /打开计数表 COUNTER:=T_counter_Fcounter_value; T_course_select.First ; /跳转至一选课程列表的第一行 while not T_course_select.Eof do /依次对所有记录进行操作 begin inc(counter); T_score.AppendRecord(counter,T_course_selectSTUDENT,T_course_selectCOURSE,0); /转移记录 T_course_select.Delete ; /删除旧记录 end; T_counter_F.Edit ; T_counter_FCOUNTER_VALUE:=counter; /设置计数值 T_counter_F.Post ; /提交修改end;procedure TForm11.B_queryClick(Sender: TObject); /输入课程编号后,单击查询“按钮进行课程成绩单查询过程begin T_course_info.Filter:=ID=+i_course_id.Text+; T_course_info.Filtered:=True; T_course_info.Open; /提取课程信息 if T_course_info.RecordCount=1 then /判断记录是否存在 begin /显示成绩列表 Q_score_list.Close; Q_score_list.Params0.AsString:=i_course_id.Text; Q_score_list.Open; /查询课程统计信息 Q_info.Close; /关闭统计信息查询 Q_info.SQL.Clear; /清除sql Q_info.SQL.Add(SELECT COUNT(STUDENT), AVG(SCORE), MAX(SCORE), MIN(SCORE)+ FROM SCORE WHERE COURSE=+ i_course_id.Text+); /添加统计用sql语句 Q_info.Open; /打开查询 o_num_total.Text:=Q_infoCOUNT; /显示学生总人数 o_score_max.Text:=Q_infoMAX; /显示最高成绩 o_score_avg.Text:=Q_infoAVG; /显示平均成绩 o_score_min.Text:=Q_infoMIN; /显示最低成绩 Q_info.Close; /关闭统计查询 Q_info.SQL.Clear; /清除sql Q_info.SQL.Add(SELECT COUNT(STUDENT) FROM SCORE+ WHERE COURSE=+i_course_id.Text+ AND SCORE60); /添加统计不及格人数的sql Q_info.Open; o_num_failed.Text:=Q_infoCOUNT; /显示不及格人数 end else Application.MessageBox(请确认课程编号,错误的编号,MB_OK);end;procedure TForm11.B_print_scoreClick(Sender: TObject);begin showmessage(这只是个毕业设计,所以打印机功能未能配置!);end;procedure TForm11.Button2Click(Sender: TObject);begin/ showmessage(没有教师提交申请,待审批课程列表中无内容!); end;procedure TForm11.SpeedButton2Click(Sender: TObject);begin showmessage(在输入课程编号时,请先查看选课结果查询管理界面);end;end.学生选课子界面:增加选课记录模块:with Q_select dobegin close; SQL.Clear;SQL.Clear;SQL.Add(INSERT INTO COURSE_SELECT);/增加选课记录SQL.Add(ID,COURSE,STUDENT);SQL.Add(VALUES(+IntTostr(counter)+,+ i_course_id.Text +,+studentname.text +););ExecSQL;End;查询成绩模块:Q_score_list.Close; Q_score_list.Params0.AsString:=i_course_id.Text; Q_score_list.Open; /查询课程统计信息 Q_info.Close; /关闭统计信息查询 Q_info.SQL.Clear; /清除sql Q_info.SQL.Add(SELECT COUNT(STUDENT), AVG(SCORE), MAX(SCORE), MIN(SCORE)+ FROM SCORE WHERE COURSE=+ i_course_id.Text+); /添加统计用sql语句 Q_info.Open; /打开查询 o_num_total.Text:=Q_infoCOUNT; /显示学生总人数 o_score_max.Text:=Q_infoMAX; /显示最高成绩 o_score_avg.Text:=Q_infoAVG; /显示平均成绩o_score_min.Text:=Q_infoMIN; /显示最低成绩procedure TForm11.SpeedButton1Click(Sender: TObject);begin form11.Hide; form3.show;end;procedure TForm11.TabSheet1Show(Sender: TObject);begin T_course_apply.Open ; /激活申请课程表 T_teacher.open; /激活教师表end;procedure TForm11.B_passClick(Sender: TObject);begin Q_update.Close; /通过申请 Q_update.SQL.Clear; Q_update.SQL.Add(UPDATE COURSE); Q_update.SQL.Add(SET STATE=4); Q_update.SQL.Add(WHERE ID=+T_course_applyID+); Q_update.ExecSQL; /执行修改课程状态的SQL语句 T_course_apply.Refresh;end;procedure TForm11.B_rejectClick(Sender: TObject);begin Q_update.Close; /拒绝申请 Q_update.SQL.Clear; Q_update.SQL.Add(UPDATE COURSE); /修改sql语句 Q_update.SQL.Add(SET STATE=6); Q_update.SQL.Add(WHERE ID=+T_course_applyID+); Q_update.ExecSQL; T_course_apply.Refresh; /刷新课表end;procedure TForm11.TabSheet2Show(Sender: TObject); /初始化表单begin Q_course_not_actived.Close; /关闭未分配课程查询 Q_course_actived.Close ; /关闭已分配课程查询 Q_course_not_actived.Open ; /打开未分配课程查询列表 Q_course_actived.Open ; /打开已分配课程查询列表end;procedure TForm11.B_submitClick(Sender: TObject); /提交分配的处理程序begin With Q_submit do begin Close; SQL.Clear; SQL.Add(UPDATE COURSE); SQL.Add(SET CLASSROOM=+i_classroom.Text+ , CLASSTIME=+i_time.Text+ , STATE=3); SQL.Add(WHERE ID=+Q_course_not_activedID+); ExecSQL; end; TabSheet2Show(nil); /执行sql i_classroom.Text:=; i_time.Text:=;end;procedure TForm11.B_disableClick(Sender: TObject); /取消当前分配begin With Q_submit do begin Close; SQL.Clear; SQL.Add(UPDATE COURSE); /更新course数据表 SQL.Add(SET STATE=4); SQL.Add(WHERE ID=+Q_course_activedID+); ExecSQL; end; TabSheet2Show(nil); /刷新表单end;procedure TForm11.B_print_courseClick(Sender: TObject);begin showmessage(本系统暂时没有和打印机连接起来!);end;procedure TForm11.B_clear_allClick(Sender: TObject);beginif Application.MessageBox(确认要清除所有已分配资源?,操作确认, MB_OKCANCEL)=IDOK then begin With Q_submit do begin Close; SQL.Clear; SQL.Add(UPDATE COURSE); /把所有course的状态为3的改为4 SQL.Add(SET STATE=4); SQL.Add(WHERE STATE=3); ExecSQL; end; TabSheet2Show(nil); end;end;procedure TForm11.TabSheet3Show(Sender: TObject); /主要功能是将选课的结果转移到成绩单中,同时兼有修改功能。begin T_course_select.Open ; /打开已选课程数据表 T_score.Open ; /打开成绩数据表end;procedure TForm11.Button1Click(Sender: TObject); /转移记录按钮var counter:integer;begin T_counter_F.Open ; /打开计数表 COUNTER:=T_counter_Fcounter_value; T_course_select.First ; /跳转至一选课程列表的第一行 while not T_course_select.Eof do /依次对所有记录进行操作 begin inc(counter); T_score.AppendRecord(counter,T_course_selectSTUDENT,T_course_selectCOURSE,0); /转移记录 T_course_select.Delete ; /删除旧记录 end; T_counter_F.Edit ; T_counter_FCOUNTER_VALUE:=counter; /设置计数值 T_counter_F.Post ; /提交修改end;procedure TForm11.B_queryClick(Sender: TObject); /输入课程编号后,单击/查询“按钮进行课程成绩单查询过程begin T_course_info.Filter:=ID=+i_course_id.Text+; T_course_info.Filtered:=True; T_course_info.Open; /提取课程信息 if T_course_info.RecordCount=1 then /判断记录是否存在 begin /显示成绩列表 Q_score_list.Close; Q_score_list.Params0.AsString:=i_course_id.Text; Q_score_list.Open; /查询课程统计信息 Q_info.Close; /关闭统计信息查询 Q_info.SQL.Clear; /清除sql Q_info.SQL.Add(SELECT COUNT(STUDENT), AVG(SCORE), MAX(SCORE), MIN(SCORE)+ FROM SCORE WHERE COURSE=+ i_course_id.Text+); /添加统计用sql语句 Q_info.Open; /打开查询 o_num_total.Text:=Q_infoCOUNT; /显示学生总人数 o_score_max.Text:=Q_infoMAX; /显示最高成绩 o_score_avg.Text:=Q_infoAVG; /显示平均成绩 o_score_min.Text:=Q_infoMIN; /显示最低成绩 Q_info.Close; /关闭统计查询 Q_info.SQL.Clear; /清除sql Q_info.SQL.Add(SELECT COUNT(STUDENT) FROM SCORE+ WHERE COURSE=+i_course_id.Text+ AND SCORE0 then /确保姓名项有输入值 begin passwd:=i_passwd.Text; /取得密码字符串 passwd:=Copy(passwd+passwd,1,10); /同密码长度 /passwd:=Encrypt(passwd,123); /累加教师编号计数器 T_counter.Filter:=ID=A; /设置过滤器,提取教师编号计数 T_counter.Filtered:=True; /激活过滤器 T_counter.Open; /打开计数器表 T_counter.Edit; /编辑计数值 T_counterCOUNTER_VALUE:=T_counterCOUNTER_VALUE+1; /计数值加1 T_counter.Post; /提交修改 T_counter.Close; /关闭计数表 /增加教师个人信息记录 T_add_user.Edit; /编辑“添加教师”数据表 T_add_userPASSWD:=passwd; /保存加密后的密码 T_add_user.Post; /提交修改 /获取人事变动记录号 T_counter.Filter:=ID=C; /设置过滤器,提取记录编号 T_counter.Filtered:=True; /激活过滤器 T_counter.Open; /打开计数表 counter:=T_counterCOUNTER_VALUE; / 获取计数值 Inc(counter); /增加值1 T_counter.Edit; /编辑计数值 T_counterCOUNTER_VALUE:=counter; /保存当前计数值 T_counter.Post; /提交修改 T_counter.Close; /关闭计数表 /追加人事变动记录 T_change.Open; /打开人事变动数据表 T_change.Append; /追加记录 T_changeID:=counter; /给人事变动数据表中的字段id赋值 T_changePERSON:=i_user.Text; /给人事变动数据表中的字段PERSON赋值 T_changeCHANGE1:=2; /设置变动操作 T_changeRECORD_TIME:=Now; /设置变动时间 T_changeDESCRIPTION:=加入学校; /保存说明 T_change.Post; /提交修改 T_change.Close; /关闭人事变动数据表 AddInit; /调用初始化表单 end;end;procedure TForm20.FormClose(Sender: TObject; var Action: TCloseAction);begin T_add_user.Cancel; /在表单关闭时取消添加教师数据表的修改 T_add_user.Close; /在表单关闭时关闭添加教师数据表的修改end;end.人事变动:unit change;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, ExtCtrls, DB, DBTables, DBCtrls;type TForm18 = class(TForm) Label1: TLabel; i_id: TEdit; i_change: TRadioGroup; Label2: TLabel; i_time: TMaskEdit; GroupBox1: TGroupBox; Label3: TLabel; Label5: TLabel; i_name: TDBEdit; i_job: TDBLookupComboBox; T_department: TTable; DS_department: TDataSource; T_job: TTable; DS_job: TDataSource; Label6: TLabel; i_description: TMemo; Button1: TButton; T_counter: TTable; T_change: TTable; DS_change_list: TDataSource; T_change_list: TTable; T_user: TTable; DS_user: TDataSource; procedure i_idChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private Private declarations procedure ChangeInit; public Public declarations end;var Form18: TForm18;implementation$R *.dfmprocedure TForm18.ChangeInit; /输入表单初始子程序begin i_id.Text:=; /清空教师号输入框 i_change.ItemIndex:=0; /默认变动情况为职务变更 i_time.Text:=DateToStr(Now); / 加入当前时间 i_description.Clear; /描述框清空end;procedure TForm18.i_idChange(Sender: TObject); /当在i_id输入时,下列程序检索教师信息begin T_user.Filter:=ID=+i_id.Text+; /设置过滤器,提取教师信息 T_user.Filtered:=True; /激活过滤器 T_user.Open; /打开教师信息表end;procedure TForm18.FormCreate(Sender: TObject);begin if not T_department.Active then T_department.Open; /如果系别表没有激活则打开系别表 if not T_job.Active then T_job.Open; /如果工作表没有激活则打开工作表 ChangeInit; /调用输入表单初始子程序end;procedure TForm18.Button1Click(Sender: TObject);var counter:integer;begin if T_user.RecordCount=1 then /判断是否存在该教师 begin /获取人事变动记录号 T_counter.Filter:=ID=B; /设置过滤器,获取计数器值 T_counter.Filtered:=True; /激活过滤器 T_counter.Open; /打开计数表 counter:=T_counterCOUNTER_VALUE; /获取计数值 Inc(counter); /增加1 T_counter.Edit; /修改计数器 T_counterCOUNTER_VALUE:=counter; /记录新的计数值 T_counter.Post; /提交修改 T_counter.Close; /关闭计数表 /追加人事变动记录 T_user.Edit; if i_change.ItemIndex=1 then /如果教师辞职退休 T_userSTATE:=F; /取消教师帐号 T_user.Post; /提交修改 T_change.Open; /打开人事变更数据表 T_change.Append; /追加记录 T_changeID:=counter; /保存记录编号 T_changePERSON:=i_id.Text; /保存教师号 T_changeCHANGE1:=IntToStr(i_change.ItemIndex); /保存变更代码 T_changeRECORD_TIME:=StrToDate(i_time.Text); /保存变更时间 T_changeDESCRIPTION:=i_description.Text; /保存描述 T_change.Post; /提交描述 T_change.Close; /关闭人事变更数据表 ChangeInit; /调用初始化表单 end else Application.MessageBox(请确认教师号!,输入错误,MB_OK); /若/不存在该教师号码则出现出错信息框end;end.查询修改:unit search1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, dbcgrids, StdCtrls, DBCtrls, ExtCtrls, Mask;type TForm21 = class(TForm) Label1: TLabel; i_id: TEdit; Label3: TLabel; i_job: TDBLookupComboBox; Label4: TLabel; i_edu_level: TDBLookupComboBox; Label2: TLabel; i_specialty: TDBEdit; Label7: TLabel; i_address: TDBEdit; i_sex: TDBRadioGroup; i_name: TDBEdit; i_birthday: TDBEdit; Label5: TLabel; Label6: TLabel; Label8: TLabel; i_tel: TDBEdit; Label10: TLabel; i_email: TDBEdit; Label9: TLabel; i_remark: TDBMemo; Button1: TButton; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; DBCtrlGrid1: TDBCtrlGrid; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBMemo1: TDBMemo; T_user2: TTable; DS_user2: TDataSource; T_department: TTable; DS_department: TDataSource; T_job: TTable; DS_job: TDataSource; T_edu_level: TTable; DS_edu_level: TDataSource; T_change: TTable; T_change_list: TTable; DS_change_list: TDataSource; T_counter: TTable; procedure FormCreate(Sender: TObject); procedure i_idChange(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private Private declarations public Public declarations end;var Form21: TForm21;implementation$R *.dfmprocedure TForm21.FormCreate(Sender: TObject);begin if not T_department.Active then T_department.Open ; /如果系别表没有激活则打开系别表 if not T_job.Active then T_job.Open ; /如果工作表没有激活则打开工作表 if not T_edu_level.Active then T_edu_level.Open; /如果教育程度表没有激活则打开教育程度表 T_user2.Close; /关闭用户信息表end;procedure TForm21.i_idChange(Sender: TObject);begin T_user2.Filter :
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。