请假管理系统源代码
智慧河小科请销假源码
智慧河小科请销假源码一、背景介绍智慧河小科是一款用于学校管理的智能系统,它可以方便学生和教师进行信息管理和交流。
其中一个重要功能是请销假系统,它使得学生和教师可以更加便捷地处理请假和销假事务。
二、请销假的流程与问题请销假是学生和教师经常遇到的事务之一,传统的请销假方式往往需要填写请假单、递交给班主任或教务处,等待审批,最后才能得到答复。
这一过程可能存在以下问题:2.1 手写请假单传统方式需要学生手写请假单,可能存在填写不规范、易于造假等问题,导致信息不准确。
2.2 信息传递不及时由于请假单需递交给班主任或教务处,再由审批人员审批,整个过程时间较长,信息传递不够及时,影响学生和教师的沟通。
2.3 审批流程繁琐传统请销假方式中,审批流程通常需要多人参与,如班主任、教务处等,造成流程冗长和审批效率低下。
三、智慧河小科请销假功能设计为了解决传统请销假方式中存在的问题,智慧河小科请销假功能进行了以下设计:3.1 电子请假单智慧河小科提供电子请假单,学生可以在线填写请假信息,避免手写造成的不准确及易于造假的问题。
电子请假单的格式规范,学生只需按照系统要求填写相关信息即可。
3.2 即时信息传递学生提交请假申请后,系统将自动通知班主任和相关审批人员,实现请假信息的即时传递。
班主任和审批人员也可以通过系统查看学生的请假申请,以便更好地了解学生请假的情况。
3.3 简化审批流程智慧河小科请销假系统通过工作流技术,实现审批流程的自动化。
系统根据学校的规定,自动进行审批流程的分配和流转,减少了多人参与的情况,提高了审批效率。
只有特殊情况时,审批流程才会由人工介入。
四、智慧河小科请销假源码实现4.1 学生请假界面代码示例// 请假表单页面<form action="/leave" method="POST"><label for="student_name">学生姓名</label><input type="text" id="student_name" name="student_name" required><br><label for="reason">请假原因</label><textarea id="reason" name="reason" required></textarea><br><label for="start_date">开始日期</label><input type="date" id="start_date" name="start_date" required><br><label for="end_date">结束日期</label><input type="date" id="end_date" name="end_date" required><br><input type="submit" value="提交请假申请"></form>4.2 教师审批界面代码示例// 审批页面<table><thead><tr><th>请假学生</th><th>请假原因</th><th>开始日期</th><th>结束日期</th><th>操作</th></tr></thead><tbody><tr><td>张三</td><td>因病请假</td><td>2022-01-01</td><td>2022-01-05</td><td><form action="/approve" method="POST"><input type="hidden" name="leave_id" value="1"><button type="submit">通过</button></form><form action="/reject" method="POST"><input type="hidden" name="leave_id" value="1"><button type="submit">驳回</button></form></td></tr><!-- 其他请假记录 --></tbody></table>五、智慧河小科请销假系统带来的好处5.1 提高请销假效率通过电子请假单和即时信息传递功能,学生请假和教师审批的效率得到了显著提高。
leavepay源码
leavepay源码leavepay源码是一个用于管理员工请假的简单应用程序。
它通过记录和跟踪员工请假的信息,帮助企业更好地管理和安排员工的假期。
下面是一个简单的leavepay源码示例,它展示了如何创建一个基本的请假管理系统:```javaimport java.util.ArrayList;import java.util.List;import java.util.Scanner;class LeaveRequest {private final String name;private final String startDate;private final String endDate;private final String reason;public LeaveRequest(String name, String startDate, String endDate, String reason) { = name;this.startDate = startDate;this.endDate = endDate;this.reason = reason;}public String getName() {return name;}public String getStartDate() {return startDate;}public String getEndDate() {return endDate;}public String getReason() {return reason;}}class LeaveManager {private final List<LeaveRequest> leaveRequests;public LeaveManager() {this.leaveRequests = new ArrayList<>();}public void addLeaveRequest(LeaveRequest leaveRequest) { leaveRequests.add(leaveRequest);}public void removeLeaveRequest(LeaveRequest leaveRequest) {leaveRequests.remove(leaveRequest);}public void displayLeaveRequests() {for (LeaveRequest leaveRequest : leaveRequests) {System.out.println("Employee: " +leaveRequest.getName());System.out.println("Start Date: " +leaveRequest.getStartDate());System.out.println("End Date: " +leaveRequest.getEndDate());System.out.println("Reason: " + leaveRequest.getReason()); System.out.println("-------------------------");}}}public class Main {public static void main(String[] args) {LeaveManager leaveManager = new LeaveManager();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("1. Add Leave Request");System.out.println("2. Remove Leave Request");System.out.println("3. Display Leave Requests");System.out.println("4. Exit");System.out.print("Enter your choice: ");int choice = scanner.nextInt();scanner.nextLine();switch (choice) {System.out.print("Employee Name: ");String name = scanner.nextLine();System.out.print("Start Date: ");String startDate = scanner.nextLine();System.out.print("End Date: ");String endDate = scanner.nextLine();System.out.print("Reason: ");String reason = scanner.nextLine();LeaveRequest leaveRequest = new LeaveRequest(name, startDate, endDate, reason);leaveManager.addLeaveRequest(leaveRequest);System.out.println("Leave Request added successfully!");break;case 2:System.out.print("Employee Name: ");String employeeName = scanner.nextLine();System.out.print("Start Date: ");String start = scanner.nextLine();System.out.print("End Date: ");String end = scanner.nextLine();LeaveRequest reqToRemove = null;for (LeaveRequest req : leaveManager.leaveRequests) {if (req.getName().equals(employeeName) &&req.getStartDate().equals(start) &&req.getEndDate().equals(end)) {reqToRemove = req;break;}if (reqToRemove != null) {leaveManager.removeLeaveRequest(reqToRemove); System.out.println("Leave Request removed successfully!");} else {System.out.println("Leave Request not found!");}break;case 3:leaveManager.displayLeaveRequests();break;case 4:System.exit(0);default:System.out.println("Invalid choice! Please try again."); }}}}```该源码分为三个类:LeaveRequest,LeaveManager和Main(包含主函数)。
课程设计考勤管理系统源代码
04
考勤管理界面
展示学生的考勤记录,包括迟到、早 退、旷课等情况,并提供添加、修改 、删除考勤记录的功能。
06
报表统计界面
提供多种报表统计功能,如学生出勤率统计、 成绩分布统计等,方便教师和管理员进行数据 分析和决策。
04
系统实现
开发环境搭建
01
安装Java开发环境 (JDK)
确保计算机上已安装适当版本的 Java开发工具包(JDK),并配 置好环境变量。
。
操作便捷性
系统应尽量减少用户的操作步 骤和复杂度,提高用户的使用 体验。
数据准确性
系统应确保数据的准确性和一 致性,避免因数据错误导致的 各种问题。
故障处理
系统应提供故障处理和恢复机 制,确保在出现问题时能及时
解决并恢复正常运行。
03
系统设计
总体设计
系统架构
采用B/S架构,前端使用 HTML、CSS、JavaScript等
促进信息化建设
推动学校信息化建设进程 ,提高学校管理水平和效 率。
系统概述
系统功能
实现学生考勤信息的录入、 查询、统计和分析等功能, 支持多种考勤方式和异常情 况处理。
系统架构
采用B/S架构,前端使用 Web技术实现用户界面,后 端使用数据库管理系统存储 和处理数据。
技术选型
前端采用HTML5、CSS3、 JavaScript等技术,后端采 用Java、Spring Boot、 MyBatis等技术,数据库使 用MySQL或Oracle等关系型 数据库。
系统特点
界面友好、操作简便、功能 强大、性能稳定、安全可靠 。
02
需求分析
功能需求
学生信息管理
系统需要提供对学生基本信息的增删 改查功能,包括姓名、学号、班级等 。
课程设计考勤管理系统源代码
package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class AttendFrame extends JFrame//工作制类型{public AttendFrame(){this.setTitle("工作制类型");this.setVisible(true);this.setContentPane(new JPanel());this.setSize(300,200);create();}private void create(){JButton b1,b2,b3;Box box1,box2,box;b1=new JButton("非弹性工作制");b2=new JButton("弹性工作制");b3=new JButton("返回");box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(b1);box1.add(Box.createHorizontalStrut(20));box1.add(b2);box2.add(b3);box.add(box1);box.add(Box.createVerticalStrut(30));box.add(box2);this.add(box);b1.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根UBoundFrame frame=new UBoundFrame();dispose();}});b2.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根BoundFrame frame=new BoundFrame();dispose();}});b3.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根MFrame frame=new MFrame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class BoundFrame extends JFrame{public BoundFrame(){this.setTitle("弹性工作制");this.setVisible(true);this.setContentPane(new JPanel());this.setSize(400,400);create();}JLabel k1,k2,k3,k4,k5,k6;JTextField f1,f2,f3,f4,f5,f6;Box box1,box2,box3,box4,box5,box;JButton b1;private void create(){k1=new JLabel("工号:");k2=new JLabel("姓名:");k3=new JLabel("当月工时:");k4=new JLabel(":");k5=new JLabel("当月工作天数");k6=new JLabel("当月富余:");b1=new JButton("返回");f1=new JTextField(5);f2=new JTextField(5);f3=new JTextField(5);f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(Box.createHorizontalStrut(20));box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box4.add(k6);box4.add(f6);box5.add(b1);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);this.add(box);b1.addActionListener(new ActionListener() //确定 {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根AttendFrame frame=new AttendFrame();dispose();}});}}package kaoqin;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class ConnectionDB {private String JDriver="sun.jdbc.odbc.JdbcOdbcDriver";private String sqlURL="jdbc:odbc:bobo";//private String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//private String sqlURL="jdbc:sqlserver://localhost:1433;DatabaseName=MyTest;integratedSecurity= TRUE;";private Connection connection;private Statement statement;private static Connection conn = null;private String[] tableSQL=new String[4];public ConnectionDB(){try {Class.forName(JDriver);connection=DriverManager.getConnection(sqlURL);statement=connection.createStatement();} catch (ClassNotFoundException e) {e.printStackTrace();}catch (SQLException e) {e.printStackTrace();}}public Connection getConnection(){return connection;}public Statement getStatement(){return statement;}public void breakDB(){try {statement.close();connection.close();} catch (SQLException e) {e.printStackTrace();}}public void createTable(){tableSQL[0]="create table staff_info("+"Sno char(9) primary key,"+"Sname char(10) not null,"+"Sage smallint,"+"enter_time char(10) not null,"+"position char(10) not null,"+"sex char(1),"+"password char(6));";tableSQL[1]="create table pz_info("+"arrive_hour char(2),"+"arrive_minute char(2),"+"leave_hour char(2),"+"leave_minute char(2),"+"everyday_time char(2));";tableSQL[2]="create table everymonth_statistics("+"Sno char(9) not null,"+"Sname char(10) not null,"+"remain_time char(4),"+"late_times smallint,"+"early_leave smallint,"+"work_day smallint,"+"primary key(Sno),"+"foreign key(Sno)"+"references staff_info(Sno) on delete cascade);";tableSQL[3]="create table everyday_statistics("+"Sno char(9) not null,"+"Sname char(10) not null,"+"hour char(2),"+"minute char(2),"+"action char(6),"+"time char(4),"+"primary key(Sno),"+"foreign key(Sno)"+"references staff_info(Sno) on delete cascade);";try {for(int i=0;i<4;i++)statement.executeUpdate(tableSQL[i]);} catch (SQLException e) {e.printStackTrace();}}private static ResultSet executeQuery(String sql) {try {if(conn==null)new ConnectionDB();returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE ).executeQuery(sql);} catch (SQLException e) {e.printStackTrace();return null;} finally {}}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class Equ_Frame extends JFrame //配置信息{public Equ_Frame(){this.setTitle("配置信息");this.setSize(400,400);this.setContentPane(new JPanel());this.setVisible(true);this.create();}JLabel k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;JLabel f1,f2,f3,f4,f5,f6,f7,f8,f9,f10;Box box1,box2,box3,box4,box5,box6,box7,box;JButton b1,b2;private void create(){k1=new JLabel("上班时间:");k2=new JLabel(":");k3=new JLabel("下班时间:");k4=new JLabel(":");k5=new JLabel("每月工作总时间:");k6=new JLabel("每月工作天数:");k7=new JLabel("每月工作日期:");k8=new JLabel("~");k9=new JLabel("每月放假日期:");k10=new JLabel("~");b1=new JButton("修改");b2=new JButton("返回");f1=new JLabel("08");f2=new JLabel("30");f3=new JLabel("17");f4=new JLabel("30");f5=new JLabel("200");f6=new JLabel("22");f7=new JLabel("星期一");f8=new JLabel("星期五");f9=new JLabel("星期六");f10=new JLabel("星期日");box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box6=Box.createHorizontalBox();box7=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box4.add(k6);box4.add(f6);box5.add(k7);box5.add(f7);box5.add(k8);box5.add(f8);box6.add(k9);box6.add(f9);box6.add(k10);box6.add(f10);box7.add(b1);box7.add(Box.createHorizontalStrut(20));box7.add(b2);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);box.add(Box.createVerticalStrut(20));box.add(box6);box.add(Box.createVerticalStrut(20));box.add(box7);this.add(box);b1.addActionListener(new ActionListener() //确定 {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根EquAltFrame frame=new EquAltFrame();dispose();}});b2.addActionListener(new ActionListener() //确定 {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根MFrame frame=new MFrame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class EquAltFrame extends JFrame //修改配置信息{public EquAltFrame(){this.setTitle("修改配置信息");this.setSize(400,400);this.setContentPane(new JPanel());this.setVisible(true);this.create();}JLabel k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;JTextField f1,f2,f3,f4,f5,f6,f7,f8,f9,f10;Box box1,box2,box3,box4,box5,box6,box7,box;JButton b1,b2;private void create(){k1=new JLabel("上班时间:");k2=new JLabel(":");k3=new JLabel("下班时间:");k4=new JLabel(":");k5=new JLabel("每月工作总时间:");k6=new JLabel("每月工作天数:");k7=new JLabel("每月工作日期:");k8=new JLabel("~");k9=new JLabel("每月放假日期:");k10=new JLabel("~");b1=new JButton("保存");b2=new JButton("取消");f1=new JTextField(5);f2=new JTextField(5);f3=new JTextField(5);f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);f7=new JTextField(5);f8=new JTextField(5);f9=new JTextField(5);f10=new JTextField(5);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box6=Box.createHorizontalBox();box7=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box4.add(k6);box4.add(f6);box5.add(k7);box5.add(f7);box5.add(k8);box5.add(f8);box6.add(k9);box6.add(f9);box6.add(k10);box6.add(f10);box7.add(b1);box7.add(Box.createHorizontalStrut(20));box7.add(b2);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);box.add(Box.createVerticalStrut(20));box.add(box6);box.add(Box.createVerticalStrut(20));box.add(box7);this.add(box);b1.addActionListener(new ActionListener() //确定 {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Equ_Frame in=new Equ_Frame();EquAltFrame on=new EquAltFrame();in.f1.setText(on.f1.getText());in.f2.setText(on.f2.getText());in.f3.setText(on.f3.getText());in.f4.setText(on.f4.getText());in.f5.setText(on.f5.getText());in.f6.setText(on.f6.getText());in.f7.setText(on.f7.getText());in.f8.setText(on.f8.getText());in.f9.setText(on.f9.getText());in.f10.setText(on.f10.getText());}});b2.addActionListener(new ActionListener() //确定 {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Equ_Frame frame=new Equ_Frame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class login extends JFrame //管理员登陆界面{public login(){this.setTitle("管理员登陆界面");this.setSize(300,300);this.setContentPane(new JPanel());this.setVisible(true);init();}JTextField jTextField1;JPasswordField jPasswordField1;private void init(){JLabel jLabel1=new JLabel("管理员登陆");JLabel jLabel2=new JLabel("用户名");JLabel jLabel3=new JLabel("密码");jTextField1=new JTextField(10);jPasswordField1=new JPasswordField(10);JButton button1=new JButton("确定");JButton button2=new JButton("取消");JButton button3=new JButton("修改密码");Box box,box1,box2,box3,box4,box5;box1=Box.createHorizontalBox();box1.add(jLabel1);box1.add(Box.createHorizontalStrut(10));box2=Box.createHorizontalBox();box2.add(jLabel2);box2.add(Box.createHorizontalStrut(20));box2.add(jTextField1);box3=Box.createHorizontalBox();box3.add(jLabel3);box3.add(Box.createHorizontalStrut(20));box3.add(jPasswordField1);box4=Box.createHorizontalBox();box4.add(button1);box4.add(Box.createHorizontalStrut(20));box4.add(button2);box5=Box.createHorizontalBox();box5.add(button3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);this.add(box);button1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根// login im=new login();Stringname=jTextField1.getText(),password=jPasswordField1.getText();if(name.equals("admin")&&password.equals("123456")){MFrame mi=new MFrame();dispose();}else{JOptionPane.showMessageDialog(new JFrame("WARNING"), "用户名或密码错误");}}});button2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});button3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根MPwd f1=new MPwd();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class login1 extends JFrame //普通用户登陆界面{public login1(){this.setTitle("普通用户登陆界面");this.setSize(300,300);this.setContentPane(new JPanel());this.setVisible(true);init();}JTextField jTextField1;JPasswordField jPasswordField1;private void init(){JLabel jLabel1=new JLabel("员工登陆");JLabel jLabel2=new JLabel("用户名");JLabel jLabel3=new JLabel("密码");jTextField1=new JTextField(10);jPasswordField1=new JPasswordField(10);JButton button1=new JButton("确定");JButton button2=new JButton("取消");JButton button3=new JButton("修改密码");Box box,box1,box2,box3,box4,box5;box1=Box.createHorizontalBox();box1.add(jLabel1);box1.add(Box.createHorizontalStrut(10));box2=Box.createHorizontalBox();box2.add(jLabel2);box2.add(Box.createHorizontalStrut(20));box2.add(jTextField1);box3=Box.createHorizontalBox();box3.add(jLabel3);box3.add(Box.createHorizontalStrut(20));box3.add(jPasswordField1);box4=Box.createHorizontalBox();box4.add(button1);box4.add(Box.createHorizontalStrut(20));box4.add(button2);box5=Box.createHorizontalBox();box5.add(button3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);this.add(box);button1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Stringname=jTextField1.getText(),password=jPasswordField1.getText();if(name.equals("user")&&password.equals("123456")){WoSerFrame2 mi=new WoSerFrame2();dispose();}else{JOptionPane.showMessageDialog(new JFrame("WARNING"), "用户名或密码错误");}}});button2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});button3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根MPwd f1=new MPwd();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.sql.*;public class Main_login extends JFrame implements ActionListener {public Main_login(){super("选择用户类型");this.setSize(300,300);this.setContentPane(new JPanel());create();}private void create(){JButton b1,b2,b3;Box box1,box2,box3,box;b1=new JButton("系统管理员");b2=new JButton("普通用户");b3=new JButton("退出登陆");b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box1.add(b1);box2.add(b2);box3.add(b3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(40));box.add(box3);this.add(box);}public void actionPerformed(ActionEvent e){if(e.getActionCommand()=="系统管理员"){login frame=new login();dispose();}else if(e.getActionCommand()=="普通用户") {login1 frame=new login1();dispose();}else if(e.getActionCommand()=="退出登陆") {System.exit(0);}}public static void main(String args[]){//ConnectionDB myDB=new ConnectionDB();int flag=0; //判断是否创建过数据库的标志File file=new File("SQL.txt");try {//读入标志FileReader in=new FileReader(file);int len;if((len=in.read())!=-1)flag=1; //已创建了数据库,置1in.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//没有创建过数据库if(flag==0){ConnectionDB myDB=new ConnectionDB();myDB.createTable();myDB.breakDB();try {//写入标志FileWriter out=new FileWriter(file);out.write("1");out.close();} catch (IOException e) {e.printStackTrace();}}Main_login frame1=new Main_login();frame1.setVisible(true);}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class MFrame extends JFrame //主功能界面{public MFrame(){this.setTitle("主要功能");this.setContentPane(new JPanel());this.setSize(350,200);this.setVisible(true);init();}private void init(){JButton button1=new JButton("员工信息管理");JButton button2=new JButton("员工出勤信息");JButton button3=new JButton("配置信息");JButton button4=new JButton("退出登陆");Box box1=Box.createHorizontalBox();Box box2=Box.createHorizontalBox();Box box3=Box.createVerticalBox();box1.add(button1);box1.add(Box.createHorizontalStrut(10));box1.add(button2);box1.add(Box.createHorizontalStrut(10));box1.add(button3);box2.add(button4);box3.add(box1);box3.add(Box.createVerticalStrut(30));box3.add(box2);this.add(box3);button1.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Worker_Frame frame=new Worker_Frame();dispose();}});button2.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根AttendFrame frame=new AttendFrame();dispose();}});button3.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Equ_Frame frame=new Equ_Frame();dispose();}});button4.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class MPwd extends JFrame //管理员密码修改{public MPwd(){this.setTitle("修改密码");this.setVisible(true);this.setSize(300,200);this.setContentPane(new JPanel());init();}JLabel L1,L2,L3;JPasswordField p1,p2,p3;JButton b1,b2;Box box1,box2,box3,box4,box;private void init(){L1=new JLabel("请输入原密码:");L2=new JLabel("请输入新密码:");L3=new JLabel("请再次输入密码:");p1=new JPasswordField(10);p2=new JPasswordField(10);p3=new JPasswordField(10);b1=new JButton("确定");b2=new JButton("取消");box1=Box.createHorizontalBox();box1.add(L1);box1.add(Box.createHorizontalStrut(20));box1.add(p1);box2=Box.createHorizontalBox();box2.add(L2);box2.add(Box.createHorizontalStrut(20));box2.add(p2);box3=Box.createHorizontalBox();box3.add(L3);box3.add(Box.createHorizontalStrut(20));box3.add(p3);box4=Box.createHorizontalBox();box4.add(b1);box4.add(Box.createHorizontalStrut(20));box4.add(b2);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(10));box.add(box2);box.add(Box.createVerticalStrut(10));box.add(box3);box.add(Box.createVerticalStrut(10));box.add(box4);this.add(box1);this.add(box2);this.add(box3);this.add(box4);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法if(p1.getText().equals("123456")){if(p2.getText().equals(p3.getText())){JOptionPane.showMessageDialog(new JFrame("WARNING"), "密码修改成功");login frame=new login();dispose();}else{JOptionPane.showMessageDialog(newJFrame("WARNING"), "两次密码输入不一致,请重新输入");}}else{JOptionPane.showMessageDialog(new JFrame("WARNING"), "原密码输入不正确,请重新输入");}}});b2.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class OperatSFrame extends JFrame //提示类{private JLabel displayLabel;private static Font font=new Font("楷体",Font.BOLD,14); public OperatSFrame(){this.setSize(300,100);this.setLayout(null);this.setResizable(false);this.setVisible(true);this.addCompnents();}private void addCompnents(){displayLabel=new JLabel("操作成功!");displayLabel.setFont(font);displayLabel.setBounds(80,30,100,30);this.add(displayLabel);}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class UBoundFrame extends JFrame//非弹性工作制{public UBoundFrame(){this.setTitle("非弹性工作制");this.setVisible(true);this.setContentPane(new JPanel());this.setSize(400,400);create();}JLabel k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;JTextField f1,f2,f3,f4,f5,f6,f7,f8,f9,f10;Box box1,box2,box3,box4,box5,box6,box7,box;JButton b1;private void create(){k1=new JLabel("工号:");k2=new JLabel("姓名:");k3=new JLabel("进入时间:");k4=new JLabel(":");k5=new JLabel("离开时间:");k6=new JLabel(":");k7=new JLabel("工作时间:");k8=new JLabel(":");k9=new JLabel("早退次数:");k10=new JLabel("迟到次数:");b1=new JButton("返回");f1=new JTextField(5);f2=new JTextField(5);f3=new JTextField(5);f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);f7=new JTextField(5);f8=new JTextField(5);f9=new JTextField(5);f10=new JTextField(5);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box6=Box.createHorizontalBox();box7=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(Box.createHorizontalStrut(20)); box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box3.add(k6);box3.add(f6);box4.add(k7);box4.add(f7);box4.add(k8);box4.add(f8);box5.add(k9);box5.add(f9);box6.add(k10);box6.add(f10);box7.add(b1);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);box.add(Box.createVerticalStrut(20));box.add(box6);box.add(Box.createVerticalStrut(20));box.add(box7);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根AttendFrame frame=new AttendFrame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class WoAddFrame extends JFrame//添加员工{private ConnectionDB myCon=new ConnectionDB();private JButton YesBtn,NoBtn;private static JTextField woName,woNo,woAge,woYear,woPosition,woSex,woPassword;。
课程设计考勤管理系统源代码
package kaoqin;import javax。
swing。
*;import java.awt.*;import java。
awt.event.*;import java.sql。
Connection;import java.sql。
DriverManager;import java。
sql。
ResultSet;import java。
sql。
SQLException;import java.sql。
Statement;import java.sql。
*;class AttendFrame extends JFrame//工作制类型{public AttendFrame(){this。
setTitle("工作制类型");this。
setVisible(true);this。
setContentPane(new JPanel());this。
setSize(300,200);create();}private void create(){JButton b1,b2,b3;Box box1,box2,box;b1=new JButton("非弹性工作制");b2=new JButton(”弹性工作制”);b3=new JButton(”返回”);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box=Box。
createVerticalBox();box1.add(b1);box1.add(Box。
createHorizontalStrut(20));box1.add(b2);box2.add(b3);box.add(box1);box.add(Box。
createVerticalStrut(30));box。
add(box2);this。
add(box);b1.addActionListener(new ActionListener()// {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根UBoundFrame frame=new UBoundFrame();dispose();}});b2。
考勤管理系统源代码
{#include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #include<malloc.h> #include<time.h> /* 所使用的头文件 */ typedef struct/* 时间结构体定义 */{int hour; int minute; }TIME;typedef struct worker /* 职工结构体定义 */ {char id[10]; char name[10];TIME time[20]; struct worker *next; }worker;int menu_select(); void welcome(); void createInfo(); void createRec(); void listRec(); void searchRec(); void saveRec(); void deleteRec(); void modifyRec(); void loadRec(); void resetPassword(); int fun();worker *head=NULL; writeinfo_flag=0;char password[16]="888888"; struct tm *timeinfo; int main()/* 主菜单 *//* 欢迎界面 */ /* 新建职工信息 */ /* 录入考勤信息 *//* 浏览当天考勤信息 */ /*/ 查询考勤信息 *//* 保存所有信息 *//* 删除考勤信息 */ /* 修改考勤信息 *//* 加载文件信息 *//* 重设密码 *//* 判断输入选择是否正确 *//* 链表头指针 head*//* 信息保存标记 *//* 初始密码 *//* 主函数 */char s[16]; welcome();loadRec();/* 欢迎界面 */ /* 加载文件信息 */printf("\n 提示:\n\n 初始密码为:888888\n"); /* 进入系统密码管理*/ printf("\t\t\t\n\n\n\n\n 请输入密码,进去系统( 密码不超过15 个字符):"); scanf("%s",s);while(strcmp(password,s)!=0){printf("\n 密码错误,请重新输入:"); scanf("%s",s);} system("cls");for(;;) /* 菜单循环*/{ switch(menu_select()) {case 0:system("cls");createInfo();break;case 1:system("cls");createRec();break;case 2:system("cls");listRec();break;case 3:system("cls");searchRec();break;case 4:system("cls");deleteRec();break;case 5:system("cls");modifyRec();break;case 6:system("cls");saveRec();break;case 7:system("cls");resetPassword();break;case 8:system("cls");if(writeinfo_flag==1)saveRec();return 0; default:{printf("\n 选择错误,请按回车键返回后,重新输入(0~8)!"); getchar();getchar();system("cls"); break;}}}return 0;}/* 选择菜单*/ int menu_select(){worker *p=head;int c,k;time_t nowtime; time( &nowtime );timeinfo = localtime( &nowtime );printf("\t\t** ************ 选择菜单************* *\t");/* 在菜单中显示当前时间*/if(timeinfo->tm_wday==0){printf(" 时间:星期天");printf(" %d:%d",timeinfo->tm_hour,timeinfo->tm_min);}elseprintf(" 时间: 星期%d %d:%d",timeinfo->tm_wday,timeinfo->tm_hour,timeinfo->tm_min);printf("\n ------------------------------------------------------------------ ");printf("\t\t\t0. 新建职工信息\n");printf("\t\t1. 录入考勤信息\n");printf("\t\t2. 浏览考勤信息\n");printf("\t\t3. 查询考勤信息\n");printf("\t\t4. 删除考勤信息\n");printf("\t\t5. 修改考勤信息\n");printf("\t\t6. 保存所有信息\n");printf("\t\t7. 重设密码\n");printf("\t\t8. 退出(退出后信息会自动保存在磁盘中)\n\t\t( 任何情况下按Ctrl+C 退出程序)\n ”);printf("\n ------------------------------------------------------------------ ");printf("\n\n 请输入您的选择(0~8):");scanf("%d",&c); if(timeinfo->tm_wday==0&&p!=NULL) /* 每周周日所有考勤信息初始化*/{for(k=0;k<20;k++){p->time[k].hour=88; p->time[k].minute=88;}}return c;}void loadRec() /* 从磁盘导入信息*/{worker *rear,*p,*pre; FILE *fp,*key; int i,pos=0; key=fopen("key.txt","r"); if(key!=NULL){}fscanf(key,"%s",password); fclose(key);p=(worker*)malloc(sizeof(worker)); /* 开辟一个新单元 */ fscanf(fp,"%s%s",p->id,p->name); for(i=0;i<20;i++)fscanf(fp,"%d%d",&p->time[i].hour,&p->time[i].minute); if(head==NULL){head=p; pre=p; rear=p;}else{rear->next=p; pre=rear; rear=p;}}pre->next=NULL; fclose(fp); return;}fp=fopen("workerRec.txt","r"); if(fp!=NULL){fseek(fp, 0, SEEK_END); pos= ftell(fp);}if(fp==NULL||0 == pos)件*/{printf("\n\n\n\n\n\n\t\t 提示:在!\n");printf("\n\t\t getchar();\n\n\t\t 数据库中没有职工信息请按回车键进入主菜单新建职工信息/* 指针移到文件末尾 *//* 打开职工信息文件和密码文,文本为空或文件不存system("cls"); return;}fseek(fp, 0, SEEK_SET); while(!feof(fp)){Un");/*清屏 *//* 指针移到文件开头 */ /*fp 不指向文件末尾 *//* 关闭文件 */void createInfo() /* 新建职工信息*/{worker *p,*rear;int i,k,n;char s[10];if(head!=NULL){printf("\n\n\n\n\n\n\n\t\t\t 职工信息数据库已存在\n\n\t\t\t 新建职工信息将续接在信息库的后面\n\n\n\t\t\t 按回车键继续");getchar();getchar();rear=head; while(rear->next!=NULL) rear=rear->next;system("cls");}printf("\n\n 请输入希望建立职工信息条数:");scanf("%s",s);if(fun(s)==0)return;elsen=atoi(s);printf("\n 请输入职工的工号(至多6 个字符)和姓名( 至多5 个字符):\n"); for(i=0;i<n;i++){p=(worker*)malloc(sizeof(worker));scanf("%s%s",p->id,p->name); if(strlen(p->id)>6||strlen(p->name)>5){printf("\n 职工工号或姓名输入长度不合法!\n\n 请按回车键返回主菜单\n",n);rear->next=NULL;free(p);getchar();getchar();system("cls");return;}for(k=0;k<20;k++) /* 时间初始化为88:88*/{p->time[k].hour=88;p->time[k].minute=88;}if(head==NULL){head=p;rear=p;}else{ rear->next=p; rear=p;}} p->next=NULL;printf("\n%d 条信息建立完毕!\n\n 请按回车键返回主菜单\n",n); getchar();getchar();system("cls");writeinfo_flag=1;return;}void createRec() /* 录入考勤信息*/{time_t nowtime;worker *p;char s[10],k[10],*g=k,ss[10];int c,m,week;time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday; if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;} if(timeinfo->tm_wday==6||timeinfo->tm_wday==0){printf("\n\n\n\n\t\t\t 今天不是工作日\n\n\t\t\t 无法录入考勤信息\n\n\t\t\t 请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 请选择录入考勤种类:\n\n\t\t\t1. 上午上班(8:00)\n\n\t\t\t2. 上午下班(11:30)\n\n\t\t\t3. 下午上班(14:00)\n\n\t\t\t4. 下午下班(17:30)\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",k); if(fun(k)==0)return;elsem=atoi(k);if(m<1||m>4){printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");if(m==1&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timeinfo->tm_min>30))) {printf("\n\n\n\t\t\t 现在已经过了上午下班的时间(11:30)\n\n\t\t\t 无法录入上班的时间(8:00)信息\n\n\t\t\t 请按回车键返回主菜单");getchar();getchar();system("cls");return;}if(m==3&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))){printf("\n\n\n\t\t\t 现在已经过了下午下班的时间(17:30)\n\n\t\t\t 无法录入上班的时间(14:00)信息\n\n\t\t\t 请按回车键返回主菜单");getchar();getchar();system("cls");return;}/* 可通过工号或姓名;录入*/printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",ss); if(fun(ss)==0)return;elsec=atoi(ss);if(c<1||c>2){printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls"); return ;} system("cls"); switch(c) { case 1:{ printf("\n\n\n\n\n\n\t\t\t 请输入工号(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;} if((m==2||m==4)&&p->time[4*week+m-6].hour==88){printf("\n\n\n\n\t\t\t 该职工无上班记录,无法记录下班信息, 请先录入上班信息\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}p->time[4*week+m-5].hour=(timeinfo->tm_hour); /* 存储时间*/p->time[4*week+m-5].minute=(timeinfo->tm_min);break;}case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;} if((m==2||m==4)&&p->time[4*week+m-6].hour==88) {printf("\n\n\n\n\t\t\t 该职工无上班记录,无法记录下班信息, 请先录入上班信息\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;}time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday;p->time[4*week+m-5].hour=(timeinfo->tm_hour); p->time[4*week+m-5].minute=(timeinfo->tm_min); break;}}system("cls");printf("\n\n\n\n\n\n\t\t\t 考勤成功! 请按回车键返回主菜单\n");getchar();getchar();writeinfo_flag=1;system("cls");return;}void listRec() /* 浏览当天的考勤信息*/{worker *p=head;int m,week;week=timeinfo->tm_wday;if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}if(timeinfo->tm_wday==6||timeinfo->tm_wday==0) {printf("\n\n\n\n\t\t\t 今天不是工作日,无考勤记录\n\n\t\t\t 无法浏览当天的考勤信息\n\n\t\t\t 请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n 职工今天整体出勤情况如下:\n\n");printf(" 职工号姓名上午上班上午下班下午上班下午下班\n"); while(p!=NULL){m=0;printf("\n%s %s",p->id,p->name);if((p->time[(week-1)*4].hour>8&&p->time[(week-1)*4].hour<25)||(p->time[(week-1)*4].hour==8&&p->time[(week-1)*4].minute>0))printf(" 迟到"); /* 上班时间之后来的都算迟到*/else if(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timein fo->tm_min>30)))printf(" 旷工"); /* 过了下班时间就是旷工*/else if(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour<11||(timeinfo->tm_hour==8&&timeinf o->tm_min==30)))printf(" 无记录"); /* 下班之前还没有来显示无记录*/else if(p->time[(week-1)*4].hour!=88){printf(" ");m++;}if((p->time[(week-1)*4+1].hour<11&&p->time[(week-1)*4].hour!=0)||(p->time[(week-1)*4+1].hour==11&&p->time[(week-1)*4+1].minute<30))printf(" 早退");else {printf(" ");m++;}if((p->time[(week-1)*4+2].hour>14&&p->time[(week-1)*4+2].hour<25)||(p->time[(week-1)*4+2].hour==14&&p->time[(week-1)*4+2].minute>0))printf(" 迟到");else if(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30)))printf(" 旷工");else if(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour<17||(timeinfo->tm_hour==17&&tim einfo->tm_min==30)))printf(" 无记录");else if(p->time[(week-1)*4+2].hour!=88){printf(" ");m++;}if((p->time[(week-1)*4+3].hour<17&&p->time[(week-1)*4+2].hour!=0)||(p->time[(week-1)*4+3].hour==17&&p->time[(week-1)*4+3].minute<30))printf(" 早退");else {printf(" ");m++;}if(m==4&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))) printf(" 全勤!");p=p->next;}printf("\n\n 显示完毕,按回车键返回主菜单!");getchar();getchar();system("cls");return;}void searchRec() /* 根据工号或姓名查找考勤信息*/{worker *p=head;int c,i;char s[10],k[10];if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",k); if(fun(k)==0)return;elsec=atoi(k); if(c<1||c>2){ printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始getchar();getchar();system("cls"); return ;!\n");} system("cls"); switch(c) { case 1:{ printf("\n\n\n\n\n\n\t\t\t 请输入工号(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}break;}case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}break;}system("cls");printf(" 职工号姓名\n\n");printf(" %s %s",p->id,p->name);printf(" 周一");for(i=0;i<4;i++) {上午上班上午下班下午上班下午下班if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d if(i==4) printf("\n\n"); ");",p->time[i].hour,p->time[i].minute);printf("\n 周二"); for(i=4;i<8;i++){if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d if(i==8) printf("\n\n"); ");",p->time[i].hour,p->time[i].minute);}printf("\n 周三"); for(i=8;i<12;i++){if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d if(i==12) printf("\n\n"); ");",p->time[i].hour,p->time[i].minute);}printf("\n 周四"); for(i=12;i<16;i++){if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d ");",p->time[i].hour,p->time[i].minute);if(i==16)printf("\n\n");}printf("\n 周五");for(i=16;i<20;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute); if(i==20)printf("\n\n");}printf("\n\n\n\n\n\n\t\t\t 显示完毕,按回车键返回主菜单!"); getchar();getchar();system("cls");return;}void saveRec() /* 储存所有信息*/{worker *p=head;FILE *fp,*key;int i;if(writeinfo_flag==0){printf("\n\n\n\n\t\t\t 信息无改动,无需保存!\n\n\t\t\t 请按回车键返回主菜单\n");getchar();getchar();system("cls");return;}if(writeinfo_flag==1){ if((fp=fopen("workerRec.txt","w"))==NULL||(key=fopen("key.txt","w"))==NULL) {printf("\n\t\t\t 提示:\n\n\t\t\t 存储信息失败!\n"); printf("\n\t\t\t 请按回车键进入主菜单重新开始\n"); getchar();getchar();system("cls");return;} while(p!=NULL){fprintf(fp,"%s\n%s\n",p->id,p->name); for(i=0;i<20;i++)fprintf(fp,"%d\n%d\n",p->time[i].hour,p->time[i].minute); p=p->next;} fprintf(key,"%s",password);fclose(fp),fclose(key);writeinfo_flag=0; /* 消除改动标志*/ printf("\n\n\n\n\n\t\t\t 保存完毕,按回车键继续!");getchar();getchar();system("cls");return;}}void deleteRec() //删除考勤信息*/{worker *p,*pre=head;char s[16],k[10];int c; if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar(); system("cls"); return;}printf("\n\n\n\t\t\t 提示:\n\n\t\t\t 初始密码为:888888\n"); printf("\n\n\n\t\t\t 请输入密码(密码不超过15 个字符):"); scanf("%s",s);while(strcmp(password,s)!=0){printf("\n\n\t\t\t 密码错误!\n\n"); printf("\t\t\t 按回车键返回主菜单!"); getchar();getchar();system("cls");return;} printf("\n\n\n\t\t\t 密码输入成功!\n\n\t\t\t 请按回车键继续"); getchar();getchar();system("cls");printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",k); if(fun(k)==0)return;elsec=atoi(k); if(c<1||c>2){ printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始getchar();getchar();system("cls"); return ;!\n");} system("cls"); switch(c) { case 1:{ printf("\n\n\n\n\n\n\t\t\t 请输入工号:"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}break;}case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名:"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;} break;}} system("cls"); if(p==head) head=p->next;else{ for(;pre->next!=p;pre=pre->next); pre->next=p->next;}free(p);printf("\n\n\n\n\n\n\t\t\t 删除成功,请按回车键返回主菜单!"); getchar();getchar();system("cls"); writeinfo_flag=1; return;}void modifyRec() /* 修改考勤信息*/{worker *p,*pre=head; char s[16],k[10];int c; if(head==NULL){ printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar(); system("cls"); return;}printf("\n\n\n\t\t\t 提示:\n\n\t\t\t 初始密码为:888888\n"); printf("\n\n\n\t\t\t 请输入密码(密码不超过15 个字符):"); scanf("%s",s);if(strcmp(password,s)!=0){printf("n\n\n\t\t\t 密码错误!\n\n"); printf("\t\t\t 按回车键返回主菜单!"); getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 密码输入成功!\n\n\t\t\t 请按回车键继续"); getchar();getchar();system("cls");printf("\n\n\n\t\t\t 请选择通过工号修改还是姓名修改:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\n\n\t\t 您的选择(以回车键结束):"); scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k); if(c<1||c>2){printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;} system("cls"); switch(c) { case 1:{printf("\n\n\n\n\n\n\t\t\t 请输入工号:"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;}break;} case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名:"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;}break;}} system("cls");printf("\n\n\n\t\t\t 请选择要修改的内容:\n\n\t\t\t1. 工号\n\n\t\t\t2. 姓名\n\n\t\t\t3. 上午上班时间\n\n\t\t\t4. 上午下班时间\n\n\t\t\t5. 下午上班时间\n\n\t\t\t6. 下午下班时间");printf("\n\n\n\t\t 您的选择(以回车键结束):");scanf("%s",&k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>6) {printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls"); return ;}system("cls");switch(c){case 1: printf("\n\n\n\t\t 请输入要修改的工号(至多10 个字符):"); scanf("%s",p->id);break; case 2: printf("\n\n\n\t\t 请输入要修改的姓名(至多10 个字符):"); scanf("%s",p->name);break; case 3: printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4].hour,&p->time[(c-1)*4].minute);break;case 4: printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+1].hour,&p->time[(c-1)*4+1].minute);break;case 5:printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+2].hour,&p->time[(c-1)*4+2].minute);break; case 6: printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+3].hour,&p->time[(c-1)*4+3].minute);break;} printf("\n\n\n\t\t\t 修改成功,请按回车键返回主菜单!"); getchar();getchar();system("cls"); writeinfo_flag=1;return;}void resetPassword() /* 重设密码*/{char s[16];printf("\n\n\n\t\t 提示:\n\n\t\t 初始密码为:888888\n"); printf("\n\t\t 请输入密码(密码不超过15个字符):"); scanf("%s",s);if(strcmp(password,s)!=0){printf("\n\n\n\t\t 密码错误!\n\n"); printf("\n\n\n\t\t 按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\t\t 密码输入成功!\n\n\t\t 请按回车键继续"); getchar();getchar();system("cls");printf("\n\n\n\t 请输入要修改的密码(密码不超过15 个字符):"); scanf("%s",s);strcpy(password,s);printf("\n\n\t 修改成功,请按回车键返回主菜单!"); getchar();getchar();system("cls"); writeinfo_flag=1;return;}void welcome() //欢迎界面{ printf("\n\n\n\n\n\n\n\t\t\t 欢迎使用职工考勤管理系统"); printf("\n\n\n\t\t\t 请按任意键进入系统,开始您的操作"); printf("\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t 作者:XXX");getch(); system("cls");return;}int fun(char *g){do{ if(*g<'0'||*g>'9') {printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls"); return 0 ;}g++; }while(*g!=0); return 1;}。
学生请假管理系统需求分析设计文档(附待部分核心代码s
2014 - 2015学年第 2 学期1.总体目标 (1)1.1背景 (1)1.1.1引言 (1)1.2要求 (1)1.3目标 (1)2.需求分析 (2)2.1功能需求描述 (2)2.1.1基本功能: (2)2.1.2业务功能: (2)2.2用户需求描述 (2)2.2.1学生用户需求描述 (2)2.2.2任课教师用户需求描述 (2)3.数据库设计 (2)4. 功能模块设计 (4)4.1系统流程 (5)5. 主要功能的具体实现 (8)5.1请假功能的实现 (8)5.2审核功能的实现 (11)5.3权限修改功能 (15)5.4导入功能 (17)6.系统的运行环境需求 (18)6.1硬件环境: (18)6.2.软件环境: (18)7.测试结果与分析 (18)7.1主要测试内容 (18)7.2软件测试的目的 (19)7.3软件测试的任务 (19)7.4.1功能测试 (19)7.4.2负载测试 (19)7.4.3文档测试 (19)7.5 测试环境 (20)7.6 系统具体测试 (20)8.课程设计总结 (21)1.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求请假管理系统要达到以下功能:增删查改:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:方便学生:学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
python请假代码
Python请假代码在日常工作中,我们有时会遇到需要请假的情况。
为了方便管理和记录,请假信息,我们可以使用Python来编写一个请假代码。
这个代码将帮助我们实现请假信息的录入、查询和审批功能,提高请假流程的效率和可追溯性。
1. 请假信息的录入我们需要设计一个数据结构来存储请假信息。
在这个例子中,我们选择使用字典来表示每一条请假记录。
字典中包含以下字段:•姓名:请假人员的姓名•开始日期:请假开始日期•结束日期:请假结束日期•请假事由:请假原因•审批状态:请假审批状态,初始状态为待审批leaves = []这里我们定义了一个空列表leaves来存储所有的请假记录。
接下来,我们可以编写一个函数来录入新的请假信息。
def add_leave():name = input("请输入您的姓名:")start_date = input("请输入开始日期(格式:YYYY-MM-DD):")end_date = input("请输入结束日期(格式:YYYY-MM-DD):")reason = input("请输入请假事由:")leave = {"姓名": name,"开始日期": start_date,"结束日期": end_date,"请假事由": reason,"审批状态": "待审批"}leaves.append(leave)print("请假信息录入成功!")在这个函数中,我们通过input函数获取用户输入的请假信息,并将其存储在一个字典中。
然后将该字典添加到leaves列表中,完成请假信息的录入。
2. 请假信息的查询为了方便查询已经录入的请假信息,我们可以编写一个函数来实现查询功能。
def query_leave():name = input("请输入您的姓名:")for leave in leaves:if leave["姓名"] == name:print(f"开始日期:{leave['开始日期']}")print(f"结束日期:{leave['结束日期']}")print(f"请假事由:{leave['请假事由']}")print(f"审批状态:{leave['审批状态']}")print("---------------------")print("查询完成!")这个函数会根据用户输入的姓名,在leaves列表中查找匹配的请假记录,并打印出相关信息。
课程设计考勤管理系统源代码
package kaoqin;import javax。
swing。
*;import java.awt。
*;import java.awt.event。
*;import java。
sql.Connection;import java。
sql.DriverManager;import java。
sql。
ResultSet;import java.sql。
SQLException;import java。
sql。
Statement;import java.sql.*;class AttendFrame extends JFrame//工作制类型{public AttendFrame(){this。
setTitle("工作制类型”);this.setVisible(true);this.setContentPane(new JPanel());this.setSize(300,200);create();}private void create(){JButton b1,b2,b3;Box box1,box2,box;b1=new JButton(”非弹性工作制");b2=new JButton(”弹性工作制”);b3=new JButton("返回”);box1=Box.createHorizontalBox();box2=Box。
createHorizontalBox();box=Box.createVerticalBox();box1。
add(b1);box1。
add(Box.createHorizontalStrut(20));box1.add(b2);box2.add(b3);box.add(box1);box。
add(Box。
createVerticalStrut(30));box。
add(box2);this.add(box);b1。
addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根UBoundFrame frame=new UBoundFrame();dispose();}});b2.addActionListener(new ActionListener()//{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根BoundFrame frame=new BoundFrame();dispose();}});b3.addActionListener(new ActionListener() //{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根MFrame frame=new MFrame();dispose();}});}}package kaoqin;import javax。
请假管理系统源代码
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define select inttypedef struct //账户信息{char name[20]; //char pw[20]; //User.pw} User;typedef struct{char Num[20];char n1[20];char Class[20];char time[100];char reason[100];char instructor[100];} Leave;typedef struct{char n1[20];char Num[20];// char name[20];char Class[20];char time[100];char reason[100];char instructor[100];char suggest[100];} TEACHER;int check (char name[20]){int i=0;User ru;FILE *f =fopen("data.dat","rb");rewind(f);for(i=0; !feof(f); i++){int d=i*sizeof(User);fseek(f,d,SEEK_SET);fread(&ru,sizeof(User),1,f);if(strcmp(name,)==0)return 1;}return -1;}int login(char name[20],char pw[20]){User us;FILE *f =fopen("data.dat","rb");while(!feof(f)){fread(&us,sizeof(User),1,f);if(strcmp(name,)==0){if(strcmp(pw,us.pw)==0)return 1;}}return -1;}int main(){char n[20];char plog[20];char nlog[20];int c;User u;FILE *f =fopen("data.dat","ab");if(f!=NULL){fwrite(&u,sizeof(User),1,f);}fclose(f);Login:system("color F0");system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|-----------------------------学生请假系统-----------------------------|\n");printf("||\n");printf("========================================================================\ n");printf("\n");Sleep(1000);printf("\n");printf("请输入帐号:");scanf("%s",nlog);c=check(nlog);if(c==1)//如果账户存在{strcpy(n,nlog);//复制登录帐号if(strlen(n)==9)//如果是学生{int a,i;select s=0;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color F0");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("************************************************************************\ n");printf("* 密码错误! *\n");printf("************************************************************************\ n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success2;}elsereturn 0;}}if(login(nlog,plog)==1){success2: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}LEAVESYSTEM:printf("\n\n");printf("========================================================================\ n");printf("|1.提交请假申请|\n");printf("|2.查询请假批准状态|\n");printf("| 如无需操作,可直接关闭程序|\n");printf("========================================================================\ n");printf("\n\n");Sleep(1000);printf("请输入您要执行的选项:");scanf("%d",&s);Sleep(1000);while(s!=1&&s!=2){if(s!=1&&s!=2){ system("color 0c");printf("选项不存在,请重新输入(1/2):");s=0;scanf("%d",&s);}}if(s==1)//写入请假{system("color F0");system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|------------------------------提交请假申请----------------------------|\n");printf("||\n");printf("========================================================================\ n");printf("\n\n");Leave a;Sleep(1000);printf("请输入班级:\n");scanf("%s",a.Class);printf("请输入姓名:\n");scanf("%s",a.n1);printf("请详细输入请假时间:\n");scanf("%s",a.time);printf("请详细输入请假原因:\n");scanf("%s",a.reason);strcpy(nlog,a.Num);strcpy(a.instructor,"0");FILE *t=fopen("leave.dat","ab");fwrite(&a,sizeof(Leave),1,t);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(t);fflush(t);// Sleep(1000);printf("\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\保存成功///////////////////////\n");printf(" 请不定时来查询你的假条申请状态!\n\n\n");system("pause");system("cls");goto LEAVESYSTEM;}if(s==2)//学生查询状态代码{system("color F0");system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|----------------------------查询请假批准状态--------------------------|\n");printf("||\n");printf("========================================================================\ n");Sleep(1000);TEACHER b;FILE *t=fopen("read.dat","rb");while(1){if(!(fread(&b,sizeof(TEACHER),1,t)))break;if((strcmp(nlog,b.Num))==0){printf("---------------------------------------------------------------\n");printf("|学生%s请假申请反馈信息:\n",b.n1);printf("|班级:%s\n \n",b.Class);printf("|姓名:%s\n \n",b.n1);printf("|请假时间:%s\n \n",b.time);printf("|请假原因:%s\n \n",b.reason);printf("---------------------------------------------------------------\n");Sleep(1000);printf("\n");printf(" -------------------------------------------------------------\n");printf(" 申请状态:%s\n",b.instructor);printf(" 辅导员意见:%s\n",b.suggest);printf(" -------------------------------------------------------------\n");system("pause");Sleep(1000);system("cls");goto LEAVESYSTEM;}}}if(s==3){goto Login;}}//身份学生if(strlen(n)==4)//如果是辅导员{int a,i;select s;printf("\n");printf("请输入密码:");//直接输入密码for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color 0c");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("************************************************************************\ n");printf("* 密码错误! *\n");printf("************************************************************************\ n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success3;}elsereturn 0;}}if(login(nlog,plog)==1){success3: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);}//Approvalsystem:printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|-------------------------学生请假系统(辅导员端)-----------------------|\n");printf("||\n");printf("========================================================================\ n");printf("\n");Sleep(1000);printf("========================================================================\ n");printf("|1.查看学生请假申请|\n");printf("|2.返回登陆界面|\n");printf("| 如无需操作,可直接关闭程序|\n");printf("========================================================================\ n");printf("\n\n");Sleep(1000);printf("请输入您要执行的选项:");scanf("%d",&s);while(s!=1&&s!=2){if(s!=1&&s!=2){printf("选项不存在,请重新输入(1/2):");scanf("%d",&s);}}if(s==1)//辅导员读{system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|----------------------------查看学生请假申请--------------------------|\n");printf("||\n");printf("========================================================================\ n");printf("\n\n");Sleep(1000);Leave a;FILE *t=fopen("leave.dat","rb");while(1){int ch;if(!(fread(&a,sizeof(Leave),1,t)))break;{printf("-------------------------------------------------------------\n");printf("|学生信息如下:\n");printf("|班级:%s\n",a.Class);printf("|姓名:%s\n",a.n1);printf("|学号:%s\n",a.Num);printf("|请假时间:%s\n",a.time);printf("|请假原因:%s\n",a.reason);printf("-------------------------------------------------------------\n");Sleep(1000);printf("\n\n\n");printf("\n");printf(" 是否批准学生请假申请\n");printf(" ----------------------------------------------------------- \n");printf(" ----------------------------------------------------------- \n");printf(" 1.批准学生请假申请\n");printf(" 2.不批准学生请假申请\n");printf("\n\n\n");printf("请输入您要执行的选项:");scanf("%d",&ch);while(ch!=1&&ch!=2){if(ch!=1&&ch!=2){printf("选项不存在,请重新输入(1/2):");scanf("%d",&ch);}}if(ch==1){printf("\n\n");printf("-------------------------------------------------------------\n");printf("执行中....\n");printf("-------------------------------------------------------------\n");Sleep(1000);TEACHER b;FILE *F=fopen("read.dat","ab");strcpy(b.instructor,"您的请假申请已被批准!");printf("\n");printf("辅导员意见:");scanf("%s",b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);// FILE *f3=fopen("leave.dat","ab");fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");continue;}if(ch==2){printf("-------------------------------------------------------------\n");printf("执行中....\n");printf("-------------------------------------------------------------\n");Sleep(1000);TEACHER b;FILE *F=fopen("read.dat","ab");strcpy(b.instructor,"您的请假申请没有被批准,请按时上课!");printf("\n");printf("辅导员意见:");scanf("%s",b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");continue;}}}}if(s==2){system("cls");goto Login; //修改学生请假申请状态反回}}//如果是辅导员if(strlen(n)==5)//如果是老师{int a,i;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color 0c");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("************************************************************************\ n");printf("* 密码错误! *\n");printf("************************************************************************\ n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success1;}elsereturn 0;}}if(login(nlog,plog)==1){success1: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|---------------------------学生请假系统(老师端)-----------------------|\n");printf("||\n");printf("========================================================================\ n");Sleep(1000);printf("\n\n");printf(" -------------------------------------------------------------\n");printf(" 学生请假加载中...\n");printf(" -------------------------------------------------------------\n");Sleep(1000);// int i=0;TEACHER b;FILE *t=fopen("read.dat","rb");// rewind(t);while(1){if(!(fread(&b,sizeof(TEACHER),1,t)))break;// long d=i*sizeof(TEACHER);// fseek(t,d,SEEK_SET);// fread(&b,sizeof(TEACHER),1,t);printf("---------------------------------------------------------------\n");printf("|学生学号%s请假申请反馈信息:\n",b.Num);printf("|班级:%s\n",b.Class);printf("|姓名:%s\n",b.n1);printf("|请假时间:%s\n",b.time);printf("|请假原因:%s\n",b.reason);printf("|申请状态:%s\n",b.instructor);printf("---------------------------------------------------------------\n");printf("\n\n");}system("pause");}}if(c==-1)//账户不存在{system("color F0");system("cls");char n[20];char p[20];strcpy(n,nlog);//复制帐号if(strlen(n)==9)//完成注册,存入data.dat文档{User u;printf("************************************************************************\ n");printf("* 同学!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==5){User u;printf("************************************************************************\ n");printf("* 老师!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==4){User u;printf("************************************************************************\ n");printf("* 辅导员!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}goto Login;}return 0;}。
考勤管理-课程设计考勤管理系统源代码51页 精品
package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class AttendFrame extends JFrame//工作制类型{public AttendFrame(){this.setTitle("工作制类型");this.setVisible(true);this.setContentPane(new JPanel());this.setSize(300,200);create();}private void create(){JButton b1,b2,b3;Box box1,box2,box;b1=new JButton("非弹性工作制");b2=new JButton("弹性工作制");b3=new JButton("返回");box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(b1);box1.add(Box.createHorizontalStrut(20));box1.add(b2);box2.add(b3);box.add(box1);box.add(Box.createVerticalStrut(30));box.add(box2);this.add(box);b1.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根UBoundFrame frame=new UBoundFrame();dispose();}});b2.addActionListener(new ActionListener() //{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根BoundFrame frame=new BoundFrame();dispose();}});b3.addActionListener(new ActionListener() //{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根MFrame frame=new MFrame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class BoundFrame extends JFrame{public BoundFrame(){this.setTitle("弹性工作制");this.setVisible(true);this.setContentPane(new JPanel());this.setSize(400,400);create();}JLabel k1,k2,k3,k4,k5,k6;JTextField f1,f2,f3,f4,f5,f6;Box box1,box2,box3,box4,box5,box;JButton b1;private void create(){k1=new JLabel("工号:");k2=new JLabel("姓名:");k3=new JLabel("当月工时:");k4=new JLabel(":");k5=new JLabel("当月工作天数");k6=new JLabel("当月富余:");b1=new JButton("返回");f1=new JTextField(5);f2=new JTextField(5);f3=new JTextField(5);f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(Box.createHorizontalStrut(20));box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box4.add(k6);box4.add(f6);box5.add(b1);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根AttendFrame frame=new AttendFrame();dispose();}});}}package kaoqin;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class ConnectionDB {private String JDriver="sun.jdbc.odbc.JdbcOdbcDriver";private String sqlURL="jdbc:odbc:bobo";//private String JDriver=".microsoft.sqlserver.jdbc.SQLServerDriver";//private String sqlURL="jdbc:sqlserver://localhost:1433;DatabaseName=MyTest;integratedSecurity=TRUE;";private Connection connection;private Statement statement;private static Connection conn = null;private String[] tableSQL=new String[4];public ConnectionDB(){try {Class.forName(JDriver);connection=DriverManager.getConnection(sqlURL);statement=connection.createStatement();} catch (ClassNotFoundException e) {e.printStackTrace();}catch (SQLException e) {e.printStackTrace();}}public Connection getConnection(){return connection;}public Statement getStatement(){return statement;}public void breakDB(){try {statement.close();connection.close();} catch (SQLException e) {e.printStackTrace();}}public void createTable(){tableSQL[0]="create table staff_info("+"Sno char(9) primary key,"+"Sname char(10) not null,"+"Sage smallint,"+"enter_time char(10) not null,"+"position char(10) not null,"+"sex char(1),"+"password char(6));";tableSQL[1]="create table pz_info("+"arrive_hour char(2),"+"arrive_minute char(2),"+"leave_hour char(2),"+"leave_minute char(2),"+"everyday_time char(2));";tableSQL[2]="create table everymonth_statistics("+"Sno char(9) not null,"+"Sname char(10) not null,"+"remain_time char(4),"+"late_times smallint,"+"early_leave smallint,"+"work_day smallint,"+"primary key(Sno),"+"foreign key(Sno)"+"references staff_info(Sno) on delete cascade);";tableSQL[3]="create table everyday_statistics("+"Sno char(9) not null,"+"Sname char(10) not null,"+"hour char(2),"+"minute char(2),"+"action char(6),"+"time char(4),"+"primary key(Sno),"+"foreign key(Sno)"+"references staff_info(Sno) on delete cascade);";try {for(int i=0;i<4;i++)statement.executeUpdate(tableSQL[i]);} catch (SQLException e) {e.printStackTrace();}private static ResultSet executeQuery(String sql) {try {if(conn==null)new ConnectionDB();returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABL E).executeQuery(sql);} catch (SQLException e) {e.printStackTrace();return null;} finally {}}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class Equ_Frame extends JFrame //配置信息{public Equ_Frame(){this.setTitle("配置信息");this.setSize(400,400);this.setContentPane(new JPanel());this.setVisible(true);this.create();}JLabel k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;JLabel f1,f2,f3,f4,f5,f6,f7,f8,f9,f10;Box box1,box2,box3,box4,box5,box6,box7,box;JButton b1,b2;private void create()k1=new JLabel("上班时间:");k2=new JLabel(":");k3=new JLabel("下班时间:");k4=new JLabel(":");k5=new JLabel("每月工作总时间:"); k6=new JLabel("每月工作天数:"); k7=new JLabel("每月工作日期:"); k8=new JLabel("~");k9=new JLabel("每月放假日期:"); k10=new JLabel("~");b1=new JButton("修改");b2=new JButton("返回");f1=new JLabel("08");f2=new JLabel("30");f3=new JLabel("17");f4=new JLabel("30");f5=new JLabel("200");f6=new JLabel("22");f7=new JLabel("星期一");f8=new JLabel("星期五");f9=new JLabel("星期六");f10=new JLabel("星期日");box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box6=Box.createHorizontalBox();box7=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box4.add(k6);box4.add(f6);box5.add(k7);box5.add(f7);box5.add(k8);box5.add(f8);box6.add(k9);box6.add(f9);box6.add(k10);box6.add(f10);box7.add(b1);box7.add(Box.createHorizontalStrut(20));box7.add(b2);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);box.add(Box.createVerticalStrut(20));box.add(box6);box.add(Box.createVerticalStrut(20));box.add(box7);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根EquAltFrame frame=new EquAltFrame();dispose();}});b2.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根MFrame frame=new MFrame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class EquAltFrame extends JFrame //修改配置信息{public EquAltFrame(){this.setTitle("修改配置信息");this.setSize(400,400);this.setContentPane(new JPanel());this.setVisible(true);this.create();}JLabel k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;JTextField f1,f2,f3,f4,f5,f6,f7,f8,f9,f10;Box box1,box2,box3,box4,box5,box6,box7,box;JButton b1,b2;private void create(){k1=new JLabel("上班时间:");k2=new JLabel(":");k3=new JLabel("下班时间:");k4=new JLabel(":");k5=new JLabel("每月工作总时间:"); k6=new JLabel("每月工作天数:"); k7=new JLabel("每月工作日期:"); k8=new JLabel("~");k9=new JLabel("每月放假日期:"); k10=new JLabel("~");b1=new JButton("保存");b2=new JButton("取消");f1=new JTextField(5);f2=new JTextField(5);f3=new JTextField(5);f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);f7=new JTextField(5);f8=new JTextField(5);f9=new JTextField(5);f10=new JTextField(5);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box6=Box.createHorizontalBox();box7=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box4.add(k6);box4.add(f6);box5.add(k7);box5.add(f7);box5.add(k8);box5.add(f8);box6.add(k9);box6.add(f9);box6.add(k10);box6.add(f10);box7.add(b1);box7.add(Box.createHorizontalStrut(20));box7.add(b2);box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);box.add(Box.createVerticalStrut(20));box.add(box6);box.add(Box.createVerticalStrut(20));box.add(box7);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Equ_Frame in=new Equ_Frame();EquAltFrame on=new EquAltFrame();in.f1.setText(on.f1.getText());in.f2.setText(on.f2.getText());in.f3.setText(on.f3.getText());in.f4.setText(on.f4.getText());in.f5.setText(on.f5.getText());in.f6.setText(on.f6.getText());in.f7.setText(on.f7.getText());in.f8.setText(on.f8.getText());in.f9.setText(on.f9.getText());in.f10.setText(on.f10.getText());}});b2.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Equ_Frame frame=new Equ_Frame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class login extends JFrame //管理员登陆界面{public login(){this.setTitle("管理员登陆界面");this.setSize(300,300);this.setContentPane(new JPanel());this.setVisible(true);init();}JTextField jTextField1;JPasswordField jPasswordField1;private void init(){JLabel jLabel1=new JLabel("管理员登陆");JLabel jLabel2=new JLabel("用户名");JLabel jLabel3=new JLabel("密码");jTextField1=new JTextField(10);jPasswordField1=new JPasswordField(10);JButton button1=new JButton("确定");JButton button2=new JButton("取消");JButton button3=new JButton("修改密码");Box box,box1,box2,box3,box4,box5;box1=Box.createHorizontalBox();box1.add(jLabel1);box1.add(Box.createHorizontalStrut(10));box2=Box.createHorizontalBox();box2.add(jLabel2);box2.add(Box.createHorizontalStrut(20));box2.add(jTextField1);box3=Box.createHorizontalBox();box3.add(jLabel3);box3.add(Box.createHorizontalStrut(20));box3.add(jPasswordField1);box4=Box.createHorizontalBox();box4.add(button1);box4.add(Box.createHorizontalStrut(20));box4.add(button2);box5=Box.createHorizontalBox();box5.add(button3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);this.add(box);button1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根// login im=new login();String name=jTextField1.getText(),password=jPasswordField1.getText();if(name.equals("admin")&&password.equals("123456")){MFrame mi=new MFrame();dispose();}else{JOptionPane.showMessageDialog(new JFrame("WARNING"), "用户名或密码错误");}}});button2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});button3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根MPwd f1=new MPwd();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class login1 extends JFrame //普通用户登陆界面{public login1(){this.setTitle("普通用户登陆界面");this.setSize(300,300);this.setContentPane(new JPanel());this.setVisible(true);init();}JTextField jTextField1;JPasswordField jPasswordField1;private void init(){JLabel jLabel1=new JLabel("员工登陆");JLabel jLabel2=new JLabel("用户名");JLabel jLabel3=new JLabel("密码");jTextField1=new JTextField(10);jPasswordField1=new JPasswordField(10);JButton button1=new JButton("确定");JButton button2=new JButton("取消");JButton button3=new JButton("修改密码");Box box,box1,box2,box3,box4,box5;box1=Box.createHorizontalBox();box1.add(jLabel1);box1.add(Box.createHorizontalStrut(10));box2=Box.createHorizontalBox();box2.add(jLabel2);box2.add(Box.createHorizontalStrut(20));box2.add(jTextField1);box3=Box.createHorizontalBox();box3.add(jLabel3);box3.add(Box.createHorizontalStrut(20));box3.add(jPasswordField1);box4=Box.createHorizontalBox();box4.add(button1);box4.add(Box.createHorizontalStrut(20));box4.add(button2);box5=Box.createHorizontalBox();box5.add(button3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);this.add(box);button1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根String name=jTextField1.getText(),password=jPasswordField1.getText();if(name.equals("user")&&password.equals("123456")){WoSerFrame2 mi=new WoSerFrame2();dispose();}else{JOptionPane.showMessageDialog(new JFrame("WARNING"), "用户名或密码错误");}}});button2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});button3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根MPwd f1=new MPwd();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.sql.*;public class Main_login extends JFrame implements ActionListener {public Main_login(){super("选择用户类型");this.setSize(300,300);this.setContentPane(new JPanel());create();}private void create(){JButton b1,b2,b3;Box box1,box2,box3,box;b1=new JButton("系统管理员");b2=new JButton("普通用户");b3=new JButton("退出登陆");b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box1.add(b1);box2.add(b2);box3.add(b3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20));box.add(box2);box.add(Box.createVerticalStrut(40));box.add(box3);this.add(box);}public void actionPerformed(ActionEvent e){if(e.getActionmand()=="系统管理员"){login frame=new login();dispose();}else if(e.getActionmand()=="普通用户"){login1 frame=new login1();dispose();}else if(e.getActionmand()=="退出登陆"){System.exit(0);}}public static void main(String args[]){//ConnectionDB myDB=new ConnectionDB();int flag=0; //判断是否创建过数据库的标志File file=new File("SQL.txt");try {//读入标志FileReader in=new FileReader(file);int len;if((len=in.read())!=-1)flag=1; //已创建了数据库,置1in.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//没有创建过数据库if(flag==0){ConnectionDB myDB=new ConnectionDB();myDB.createTable();myDB.breakDB();try {//写入标志FileWriter out=new FileWriter(file);out.write("1");out.close();} catch (IOException e) {e.printStackTrace();}}Main_login frame1=new Main_login();frame1.setVisible(true);}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class MFrame extends JFrame //主功能界面{public MFrame(){this.setTitle("主要功能");this.setContentPane(new JPanel());this.setSize(350,200);this.setVisible(true);init();}private void init(){JButton button1=new JButton("员工信息管理");JButton button2=new JButton("员工出勤信息");JButton button3=new JButton("配置信息");JButton button4=new JButton("退出登陆");Box box1=Box.createHorizontalBox();Box box2=Box.createHorizontalBox();Box box3=Box.createVerticalBox();box1.add(button1);box1.add(Box.createHorizontalStrut(10));box1.add(button2);box1.add(Box.createHorizontalStrut(10));box1.add(button3);box2.add(button4);box3.add(box1);box3.add(Box.createVerticalStrut(30));box3.add(box2);this.add(box3);button1.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Worker_Frame frame=new Worker_Frame();dispose();}});button2.addActionListener(new ActionListener() // {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根AttendFrame frame=new AttendFrame();dispose();}});button3.addActionListener(new ActionListener() //{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Equ_Frame frame=new Equ_Frame();dispose();}});button4.addActionListener(new ActionListener() //{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class MPwd extends JFrame //管理员密码修改{public MPwd(){this.setTitle("修改密码");this.setVisible(true);this.setSize(300,200);this.setContentPane(new JPanel());init();}JLabel L1,L2,L3;JPasswordField p1,p2,p3;JButton b1,b2;Box box1,box2,box3,box4,box;private void init(){L1=new JLabel("请输入原密码:");L2=new JLabel("请输入新密码:");L3=new JLabel("请再次输入密码:");p1=new JPasswordField(10);p2=new JPasswordField(10);p3=new JPasswordField(10);b1=new JButton("确定");b2=new JButton("取消");box1=Box.createHorizontalBox();box1.add(L1);box1.add(Box.createHorizontalStrut(20));box1.add(p1);box2=Box.createHorizontalBox();box2.add(L2);box2.add(Box.createHorizontalStrut(20));box2.add(p2);box3=Box.createHorizontalBox();box3.add(L3);box3.add(Box.createHorizontalStrut(20));box3.add(p3);box4=Box.createHorizontalBox();box4.add(b1);box4.add(Box.createHorizontalStrut(20));box4.add(b2);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(10));box.add(box2);box.add(Box.createVerticalStrut(10));box.add(box3);box.add(Box.createVerticalStrut(10));box.add(box4);this.add(box1);this.add(box2);this.add(box3);this.add(box4);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法if(p1.getText().equals("123456")){if(p2.getText().equals(p3.getText())){JOptionPane.showMessageDialog(new JFrame("WARNING"), "密码修改成功");login frame=new login();dispose();}else{JOptionPane.showMessageDialog(newJFrame("WARNING"), "两次密码输入不一致,请重新输入");}}else{JOptionPane.showMessageDialog(new JFrame("WARNING"), "原密码输入不正确,请重新输入");}}});b2.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根Main_login frame=new Main_login();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class OperatSFrame extends JFrame //提示类{private JLabel displayLabel;private static Font font=new Font("楷体",Font.BOLD,14);public OperatSFrame(){this.setSize(300,100);this.setLayout(null);this.setResizable(false);this.setVisible(true);this.addpnents();}private void addpnents(){displayLabel=new JLabel("操作成功!");displayLabel.setFont(font);displayLabel.setBounds(80,30,100,30);this.add(displayLabel);}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class UBoundFrame extends JFrame//非弹性工作制{public UBoundFrame(){this.setTitle("非弹性工作制");this.setVisible(true);this.setContentPane(new JPanel());this.setSize(400,400);create();}JLabel k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;JTextField f1,f2,f3,f4,f5,f6,f7,f8,f9,f10;Box box1,box2,box3,box4,box5,box6,box7,box;JButton b1;private void create(){k1=new JLabel("工号:");k2=new JLabel("姓名:");k3=new JLabel("进入时间:");k4=new JLabel(":");k5=new JLabel("离开时间:");k6=new JLabel(":");k7=new JLabel("工作时间:");k8=new JLabel(":");k9=new JLabel("早退次数:");k10=new JLabel("迟到次数:");b1=new JButton("返回");f1=new JTextField(5);f2=new JTextField(5);f3=new JTextField(5);f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);f7=new JTextField(5);f8=new JTextField(5);f9=new JTextField(5);f10=new JTextField(5);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box4=Box.createHorizontalBox();box5=Box.createHorizontalBox();box6=Box.createHorizontalBox();box7=Box.createHorizontalBox();box=Box.createVerticalBox();box1.add(k1);box1.add(f1);box1.add(Box.createHorizontalStrut(20)); box1.add(k2);box1.add(f2);box2.add(k3);box2.add(f3);box2.add(k4);box2.add(f4);box3.add(k5);box3.add(f5);box3.add(k6);box3.add(f6);box4.add(k7);box4.add(f7);box4.add(k8);box4.add(f8);box5.add(k9);box5.add(f9);box6.add(k10);box6.add(f10);box7.add(b1);box.add(box1);box.add(Box.createVerticalStrut(20)); box.add(box2);box.add(Box.createVerticalStrut(20));box.add(box3);box.add(Box.createVerticalStrut(20));box.add(box4);box.add(Box.createVerticalStrut(20));box.add(box5);box.add(Box.createVerticalStrut(20));box.add(box6);box.add(Box.createVerticalStrut(20));box.add(box7);this.add(box);b1.addActionListener(new ActionListener() //确定{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根AttendFrame frame=new AttendFrame();dispose();}});}}package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.*;class WoAddFrame extends JFrame//添加员工{private ConnectionDB myCon=new ConnectionDB();private JButton YesBtn,NoBtn;private static JTextField woName,woNo,woAge,woYear,woPosition,woSex,woPassword;private JLabel woNameLabel,woNoLabel,woAgeLabel,woYearLabel,woPositionLabel,woSexLabel,woPassword Label;//提示区private static Font font=new Font("楷体",Font.BOLD,14);。
学生请假管理系统需求分析设计文档(附待部分核心代码-ssh框架实现)精编版
2014 - 2015学年第 2 学期1.总体目标 (1)1.1背景 (1)1.1.1引言 (1)1.2要求 (1)1.3目标 (1)2.需求分析 (2)2.1功能需求描述 (2)2.1.1基本功能: (2)2.1.2业务功能: (2)2.2用户需求描述 (2)2.2.1学生用户需求描述 (2)2.2.2任课教师用户需求描述 (2)3.数据库设计 (2)4. 功能模块设计 (4)4.1系统流程 (5)5. 主要功能的具体实现 (8)5.1请假功能的实现 (8)5.2审核功能的实现 (11)5.3权限修改功能 (15)5.4导入功能 (17)6.系统的运行环境需求 (18)6.1硬件环境: (18)6.2.软件环境: (18)7.测试结果与分析 (18)7.1主要测试内容 (18)7.2软件测试的目的 (19)7.3软件测试的任务 (19)7.4.1功能测试 (19)7.4.2负载测试 (19)7.4.3文档测试 (19)7.5 测试环境 (20)7.6 系统具体测试 (20)8.课程设计总结 (21)1.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求请假管理系统要达到以下功能:增删查改:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:方便学生:学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
请假管理系统源代码
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define select inttypedef struct //账户信息{char name[20]; //char pw[20]; //User.pw} User;typedef struct{char Num[20];char n1[20];char Class[20];char time[100];char reason[100];char instructor[100]; } Leave;typedef struct{char n1[20];char Num[20];// char name[20];char Class[20];char time[100];char reason[100];char instructor[100]; char suggest[100];} TEACHER;int check (char name[20]) {int i=0;FILE *f =fopen("data.dat","rb");rewind(f);for(i=0; !feof(f); i++){int d=i*sizeof(User);fseek(f,d,SEEK_SET);fread(&ru,sizeof(User),1,f);if(strcmp(name,)==0)return 1;}return -1;}int login(char name[20],char pw[20]){FILE *f =fopen("data.dat","rb");while(!feof(f)){fread(&us,sizeof(User),1,f);if(strcmp(name,)==0){if(strcmp(pw,us.pw)==0)return 1;}}return -1;}int main(){char n[20];char plog[20];char nlog[20];int c;User u;FILE *f =fopen("data.dat","ab");if(f!=NULL){fwrite(&u,sizeof(User),1,f);}fclose(f);Login:system("color F0");system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|-----------------------------学生请假系统-----------------------------|\n");printf("||\n");printf("========================================================================\n");printf("\n");Sleep(1000);printf("\n");printf("请输入帐号:");scanf("%s",nlog);c=check(nlog);if(c==1)//如果账户存在{strcpy(n,nlog);//复制登录帐号if(strlen(n)==9)//如果是学生{int a,i;select s=0;printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color F0");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("************************************************************************\n");printf("* 密码错误! *\n");printf("************************************************************************\n");printf("\n\n");if(a>0)printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success2;}elsereturn 0;}}if(login(nlog,plog)==1){success2: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}LEAVESYSTEM:printf("\n\n");printf("========================================================================\n");printf("|1.提交请假申请|\n");printf("|2.查询请假批准状态|\n");printf("|如无需操作,可直接关闭程序|\n");printf("========================================================================\n");printf("\n\n");Sleep(1000);printf("请输入您要执行的选项:");scanf("%d",&s);Sleep(1000);while(s!=1&&s!=2){if(s!=1&&s!=2){ system("color 0c");printf("选项不存在,请重新输入(1/2):");s=0;scanf("%d",&s);}}if(s==1)//写入请假{system("color F0");system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|------------------------------提交请假申请----------------------------|\n");printf("||\n");printf("========================================================================\n");printf("\n\n");Leave a;Sleep(1000);printf("请输入班级:\n");scanf("%s",a.Class);printf("请输入姓名:\n");scanf("%s",a.n1);printf("请详细输入请假时间:\n");scanf("%s",a.time);printf("请详细输入请假原因:\n");scanf("%s",a.reason);strcpy(nlog,a.Num);strcpy(a.instructor,"0");FILE *t=fopen("leave.dat","ab");fwrite(&a,sizeof(Leave),1,t);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(t);fflush(t);// Sleep(1000);printf("\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\保存成功///////////////////////\n");printf(" 请不定时来查询你的假条申请状态!\n\n\n");system("pause");system("cls");goto LEAVESYSTEM;}if(s==2)//学生查询状态代码{system("color F0");system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|----------------------------查询请假批准状态--------------------------|\n");printf("||\n");printf("========================================================================\n");Sleep(1000);TEACHER b;FILE *t=fopen("read.dat","rb");while(1){if(!(fread(&b,sizeof(TEACHER),1,t)))break;if((strcmp(nlog,b.Num))==0){printf("---------------------------------------------------------------\n");printf("|学生%s请假申请反馈信息:\n",b.n1);printf("|班级:%s\n \n",b.Class);printf("|姓名:%s\n\n",b.n1);printf("|请假时间:%s\n \n",b.time);printf("|请假原因:%s\n \n",b.reason);printf("---------------------------------------------------------------\n");Sleep(1000);printf("\n");printf(" -------------------------------------------------------------\n");printf(" 申请状态:%s\n",b.instructor);printf(" 辅导员意见:%s\n",b.suggest);printf(" -------------------------------------------------------------\n");system("pause");Sleep(1000);system("cls");goto LEAVESYSTEM;}}}if(s==3){goto Login;}}//身份学生if(strlen(n)==4)//如果是辅导员{int a,i;select s;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color 0c");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("************************************************************************\n");printf("* 密码错误! *\n");printf("************************************************************************\n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success3;}elsereturn 0;}}if(login(nlog,plog)==1){success3: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);}//Approvalsystem:system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|-------------------------学生请假系统(辅导员端)-----------------------|\n");printf("||\n");printf("========================================================================\n");printf("\n");Sleep(1000);printf("========================================================================\n");printf("|1.查看学生请假申请|\n");printf("|2.返回登陆界面|\n");printf("|如无需操作,可直接关闭程序|\n");printf("========================================================================\n");printf("\n\n");Sleep(1000);printf("请输入您要执行的选项:");scanf("%d",&s);while(s!=1&&s!=2){if(s!=1&&s!=2){printf("选项不存在,请重新输入(1/2):");scanf("%d",&s);}}if(s==1)//辅导员读{system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|----------------------------查看学生请假申请--------------------------|\n");printf("||\n");printf("========================================================================\n");printf("\n\n");Sleep(1000);Leave a;FILE *t=fopen("leave.dat","rb");while(1){int ch;if(!(fread(&a,sizeof(Leave),1,t)))break;{printf("-------------------------------------------------------------\n");printf("|学生信息如下:\n");printf("|班级:%s\n",a.Class);printf("|姓名:%s\n",a.n1);printf("|学号:%s\n",a.Num);printf("|请假时间:%s\n",a.time);printf("|请假原因:%s\n",a.reason);printf("-------------------------------------------------------------\n");Sleep(1000);printf("\n\n\n");printf("\n");printf(" 是否批准学生请假申请\n");printf(" ----------------------------------------------------------- \n");printf(" ----------------------------------------------------------- \n");printf(" 1.批准学生请假申请\n");printf(" 2.不批准学生请假申请\n");printf("\n\n\n");printf("请输入您要执行的选项:");scanf("%d",&ch);while(ch!=1&&ch!=2){if(ch!=1&&ch!=2){printf("选项不存在,请重新输入(1/2):");scanf("%d",&ch);}}if(ch==1){printf("\n\n");printf("-------------------------------------------------------------\n");printf("执行中....\n");printf("-------------------------------------------------------------\n");Sleep(1000);TEACHER b;FILE *F=fopen("read.dat","ab");strcpy(b.instructor,"您的请假申请已被批准!");printf("\n");printf("辅导员意见:");scanf("%s",b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);// FILE *f3=fopen("leave.dat","ab");fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");continue;}if(ch==2){printf("-------------------------------------------------------------\n");printf("执行中....\n");printf("-------------------------------------------------------------\n");Sleep(1000);TEACHER b;FILE *F=fopen("read.dat","ab");strcpy(b.instructor,"您的请假申请没有被批准,请按时上课!");printf("\n");printf("辅导员意见:");scanf("%s",b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");continue;}}}}if(s==2){system("cls");goto Login; //修改学生请假申请状态反回}}//如果是辅导员if(strlen(n)==5)//如果是老师{int a,i;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color 0c");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("************************************************************************\n");printf("* 密码错误! *\n");printf("************************************************************************\n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success1;}elsereturn 0;}}if(login(nlog,plog)==1){success1: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|---------------------------学生请假系统(老师端)-----------------------|\n");printf("||\n");printf("========================================================================\n");Sleep(1000);printf("\n\n");printf(" -------------------------------------------------------------\n");printf(" 学生请假加载中...\n");printf(" -------------------------------------------------------------\n");Sleep(1000);// int i=0;TEACHER b;FILE *t=fopen("read.dat","rb");// rewind(t);while(1){if(!(fread(&b,sizeof(TEACHER),1,t)))break;// long d=i*sizeof(TEACHER);// fseek(t,d,SEEK_SET);// fread(&b,sizeof(TEACHER),1,t);printf("---------------------------------------------------------------\n");printf("|学生学号%s请假申请反馈信息:\n",b.Num);printf("|班级:%s\n",b.Class);printf("|姓名:%s\n",b.n1);printf("|请假时间:%s\n",b.time);printf("|请假原因:%s\n",b.reason);printf("|申请状态:%s\n",b.instructor);printf("---------------------------------------------------------------\n");printf("\n\n");}system("pause");}}if(c==-1)//账户不存在{system("color F0");system("cls");char n[20];char p[20];strcpy(n,nlog);//复制帐号if(strlen(n)==9)//完成注册,存入data.dat文档{User u;printf("************************************************************************\n");printf("* 同学!第一次登录请完成注册*\n");printf("************************************************************************\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f 指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==5){User u;printf("************************************************************************\n");printf("* 老师!第一次登录请完成注册*\n");printf("************************************************************************\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f 指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==4){User u;printf("************************************************************************\n");printf("* 辅导员!第一次登录请完成注册*\n");printf("************************************************************************\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f 指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}goto Login;}return 0;}。
学生考勤管理系统源代码
#i n c l u d e<i o s t r e a m> #include<cstring>#include<windows.h>usingnamespacestd;classtime{public:time(inty=0,intm=0,intd=0){year=y;month=m;day=d;}intxinxi::tiaoshu=0;int*xinxi::gettime(){int*t;t=tm;tm[0]=year;tm[1]=month;tm[2]=day;returnt;}classqkechen:publicxinxi{public:qkechen(){kcshu++;}~qkechen(){kcshu--;}intgetrc(xinxist1[],intn,intj);charqkn[20];//公有数据成员private:intrenci;staticintkcshu;//静态数据成员};intqstu::qst=0;voidqstu::print(xinxi&st1){cout<<"|缺课日期|"<<"第几节课|"<<"课程名称|"<<"缺课类型|"<<endl;cout<<"|"<<*st1.gettime()<<"|"<<*(st1.gettime()+1)<<*(st1.gettime()+2)<<"|"<<st1. getjieci()<<"|"<<st1.getkechen()<<"|"<<st1.getqklx()<<"|"<<endl;}intqstu::getjs(xinxist1[],intn,intj){inti=0,js=0;xinximin;if(*(st1[j].getjieci()+2)!='\0')js=+2;elsejs++;for(i=0;i<n;i++)if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==*(st1[j].ginty,m,d;//主函数intmain(){xinxitl[15];//定义15条信息类对象qstuqt[10];qkechenqk[6];intch;while(1){cout<<"********欢迎进入学生考勤管理系统!*********"<<endl; caidan();cout<<"--------请选择菜单项:"<<endl;cin>>ch;switch(ch){case1:g=shuru(tl);break;case2:xiugai(tl,g);break;case3:chaxun(tl,qt);break;case4:tongji1(tl,qt);break;case5:tongji2(tl,qk);break;cout<<"请输入学生姓名"<<endl;cin>>name;st1[q].setname(name);cout<<"请输入课程名称"<<endl;cin>>kechen;st1[q].setkechen(kechen);cout<<"请输入缺课日期"<<endl;cin>>y>>m>>d;st1[q].settime(y,m,d);cout<<"请输入缺课类型"<<endl; cin>>queke;st1[q].setqklx(queke);cout<<"请输入缺课节次"<<endl; cin>>jieci;st1[q].setjieci(jieci);cout<<"是否还要继续输入:(y/n)"<<endl; cin>>a;}while(a=='y');returnq+1;st1[i].setjieci(jieci);}elseif(b==3){cout<<"请输入新课程名称"<<endl; cin>>kechen;st1[i].setkechen(kechen);}elseif(b==4){cout<<"请输入新缺课类型"<<endl;cin>>queke;st1[i].setqklx(queke);}flgh=1;j++;}while(b<1||b>4);if(flgh==0){cout<<"没有你要找的学生姓名,请重试要退出请按0"<<endl; cin>>k;}else}if(j==0){cout<<"没有你所要的学生名字!";//没有找到cout<<"是否退出退出请按n\n";cin>>n;}for(inta=0;a<j;a++){//只有一条信息if(j<2){i=u[a];cout<<"|缺课日期|"<<"第几节课|"<<"课程名称|"<<"缺课类型|"<<endl;cout<<"|"<<*st1[i].gettime()<<"|"<<*(st1[i].gettime()+1)<<"|"<<*(st1[i].gettime()+2) <<"|"<<st1[i].getjieci()<<"|"<<st1[i].getkechen()<<"|"<<st1[i].getqklx()<<"|"<<endl; }//两条信息以上排序else{elseif(g==1){cout<<"姓名:"<<st1[0].getname()<<endl;if(*(st1[0].getjieci()+2)!='\0')js=+2;elsejs++;cout<<"节数:"<<js<<endl;}else//信息按时间排序{inti=0;for(;i<(g-1);i++){if(*(st1[i].gettime()+1)<*(st1[i+1].gettime()+1)){min=st1[i];st1[i]=st1[i+1];st1[i+1]=st1[i];}elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)<*(st1[i+1].ge ttime()+2))cout<<"课程名:"<<st1[0].getkechen()<<endl;rc++;cout<<"人数:"<<rc<<endl;}else{inti=0;for(;i<g;i++){if(*(st1[i].gettime()+1)<*(st1[i+1].gettime()+1)){min=st1[i];st1[i]=st1[i+1];st1[i+1]=st1[i];}elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)<*(st1[i+1].ge ttime()+2)){min=st1[i];st1[i]=st1[i+1];st1[i+1]=st1[i];}elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)==*(st1[i+1].g ettime()+2))d1++;{if(i==0)strcpy(qt1[0].qstn,st1[i].getname());elseif(strcmp(st1[i].getname(),st1[i+1].getname())!=0){strcpy(qt1[i].qstn,st1[i].getname());k++;}}}//设置有缺课学生的课程名voidsetqkn(xinxist1[],qkechenqk[],intn){inti=0;for(;i<n;i++){if(i==0)strcpy(qk[0].qkn,st1[i].getkechen());elseif(strcmp(st1[i].getkechen(),st1[i+1].getkechen())!=0) {strcpy(qk[i].qkn,st1[i+1].getkechen());b++;。
学生请假管理系统需求分析设计文档(附待部分核心代码ssh框架实现)
2014 - 2015学年第 2 学期1.总体目标41.1背景41.1.1引言41.2要求41.3目标42.需求分析52.1功能需求描述52.1.1基本功能:52.1.2业务功能:52.2用户需求描述52.2.1学生用户需求描述52.2.2任课教师用户需求描述53.数据库设计54. 功能模块设计74.1系统流程85. 主要功能的具体实现115.1请假功能的实现115.2审核功能的实现145.3权限修改功能185.4导入功能206.系统的运行环境需求216.1硬件环境:216.2.软件环境:217.测试结果与分析217.1主要测试内容217.2软件测试的目的227.3软件测试的任务227.4.1功能测试227.4.2负载测试227.4.3文档测试227.5 测试环境237.6 系统具体测试238.课程设计总结241.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求请假管理系统要达到以下功能:增删查改:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:方便学生:学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
2.需求分析2.1功能需求描述2.1.1基本功能:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理2.1.2业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请假管理系统源代码-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define select inttypedef struct //账户信息{char name[20]; // char pw[20]; //User.pw} User;typedef struct{char Num[20];char n1[20];char Class[20];char time[100];char reason[100];char instructor[100];} Leave;typedef struct{char n1[20];char Num[20];// char name[20];char Class[20];char time[100];char reason[100];char instructor[100];char suggest[100];} TEACHER;int check (char name[20]){int i=0;User ru;FILE *f =fopen("data.dat","rb"); rewind(f);for(i=0; !feof(f); i++){int d=i*sizeof(User);fseek(f,d,SEEK_SET);fread(&ru,sizeof(User),1,f);if(strcmp(name,)==0)return 1;}return -1;}int login(char name[20],char pw[20]){User us;FILE *f =fopen("data.dat","rb");while(!feof(f)){fread(&us,sizeof(User),1,f);if(strcmp(name,)==0){if(strcmp(pw,us.pw)==0)return 1; }}return -1;}int main(){char n[20];char plog[20];char nlog[20];int c;User u;FILE *f =fopen("data.dat","ab");if(f!=NULL){fwrite(&u,sizeof(User),1,f);}fclose(f);Login:system("color F0");system("cls");printf("\n\n");printf("=============================================================== =========\n");printf("| |\n");printf("|-----------------------------学生请假系统-----------------------------|\n");printf("| |\n");printf("=============================================================== =========\n");printf("\n");Sleep(1000);printf("\n");printf("请输入帐号:");scanf("%s",nlog);c=check(nlog);if(c==1)//如果账户存在{strcpy(n,nlog);//复制登录帐号if(strlen(n)==9)//如果是学生{int a,i;select s=0;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color F0");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("*************************************************************** *********\n");printf("* 密码错误! *\n");printf("*************************************************************** *********\n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success2;}elsereturn 0;}}if(login(nlog,plog)==1){success2: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}LEAVESYSTEM:printf("\n\n");printf("=============================================================== =========\n");printf("|1.提交请假申请 |\n");printf("|2.查询请假批准状态 |\n");printf("| 如无需操作,可直接关闭程序 |\n");printf("=============================================================== =========\n");printf("\n\n");Sleep(1000);printf("请输入您要执行的选项:");scanf("%d",&s);Sleep(1000);while(s!=1&&s!=2){if(s!=1&&s!=2){ system("color 0c");printf("选项不存在,请重新输入(1/2):");s=0;scanf("%d",&s);}}if(s==1)//写入请假{system("color F0");system("cls");printf("\n\n");printf("=============================================================== =========\n");printf("| |\n");printf("|------------------------------提交请假申请----------------------------|\n"); printf("| |\n");printf("=============================================================== =========\n");printf("\n\n");Leave a;Sleep(1000);printf("请输入班级:\n");scanf("%s",a.Class);printf("请输入姓名:\n");scanf("%s",a.n1);printf("请详细输入请假时间:\n");scanf("%s",a.time);printf("请详细输入请假原因:\n");scanf("%s",a.reason);strcpy(nlog,a.Num);strcpy(a.instructor,"0");FILE *t=fopen("leave.dat","ab");fwrite(&a,sizeof(Leave),1,t);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(t);fflush(t);// Sleep(1000);printf("\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\保存成功///////////////////////\n");printf(" 请不定时来查询你的假条申请状态!\n\n\n");system("pause");system("cls");goto LEAVESYSTEM;}if(s==2)//学生查询状态代码{system("color F0");system("cls");printf("\n\n");printf("=============================================================== =========\n");printf("| |\n");printf("|----------------------------查询请假批准状态--------------------------|\n"); printf("| |\n");printf("=============================================================== =========\n");Sleep(1000);TEACHER b;FILE *t=fopen("read.dat","rb");while(1){if(!(fread(&b,sizeof(TEACHER),1,t)))break;if((strcmp(nlog,b.Num))==0){printf("---------------------------------------------------------------\n");printf("|学生%s请假申请反馈信息: \n",b.n1); printf("|班级:%s\n \n",b.Class);printf("|姓名:%s\n \n",b.n1);printf("|请假时间:%s\n \n",b.time);printf("|请假原因:%s\n \n",b.reason);printf("---------------------------------------------------------------\n");Sleep(1000);printf("\n");printf(" -------------------------------------------------------------\n");printf(" 申请状态:%s\n",b.instructor);printf(" 辅导员意见:%s\n",b.suggest);printf(" -------------------------------------------------------------\n");system("pause");Sleep(1000);system("cls");goto LEAVESYSTEM;}}}if(s==3){goto Login;}}//身份学生if(strlen(n)==4)//如果是辅导员{int a,i;select s;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color 0c");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("*************************************************************** *********\n");printf("* 密码错误! *\n");printf("*************************************************************** *********\n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success3;}elsereturn 0;}}if(login(nlog,plog)==1){success3: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);}//Approvalsystem:system("cls");printf("\n\n");printf("=============================================================== =========\n");printf("| |\n");printf("|-------------------------学生请假系统(辅导员端)-----------------------|\n"); printf("| |\n");printf("=============================================================== =========\n");printf("\n");Sleep(1000);printf("=============================================================== =========\n");printf("|1.查看学生请假申请 |\n");printf("|2.返回登陆界面 |\n");printf("| 如无需操作,可直接关闭程序 |\n");printf("=============================================================== =========\n");printf("\n\n");Sleep(1000);printf("请输入您要执行的选项:");scanf("%d",&s);while(s!=1&&s!=2){if(s!=1&&s!=2){printf("选项不存在,请重新输入(1/2):");scanf("%d",&s);}}if(s==1)//辅导员读{system("cls");printf("\n\n");printf("=============================================================== =========\n");printf("| |\n");printf("|----------------------------查看学生请假申请--------------------------|\n"); printf("| |\n");printf("=============================================================== =========\n");printf("\n\n");Sleep(1000);Leave a;FILE *t=fopen("leave.dat","rb");while(1){int ch;if(!(fread(&a,sizeof(Leave),1,t)))break;{printf("-------------------------------------------------------------\n"); printf("|学生信息如下:\n");printf("|班级:%s\n",a.Class);printf("|姓名:%s\n",a.n1);printf("|学号:%s\n",a.Num);printf("|请假时间:%s\n",a.time);printf("|请假原因:%s\n",a.reason);printf("-------------------------------------------------------------\n"); Sleep(1000);printf("\n\n\n");printf(" \n");printf(" 是否批准学生请假申请 \n"); printf(" ----------------------------------------------------------- \n"); printf(" ----------------------------------------------------------- \n"); printf(" 1.批准学生请假申请 \n"); printf(" 2.不批准学生请假申请 \n"); printf("\n\n\n");printf("请输入您要执行的选项:");scanf("%d",&ch);while(ch!=1&&ch!=2){if(ch!=1&&ch!=2){printf("选项不存在,请重新输入(1/2):");scanf("%d",&ch);}}if(ch==1){printf("\n\n");printf("-------------------------------------------------------------\n"); printf("执行中....\n");printf("-------------------------------------------------------------\n"); Sleep(1000);TEACHER b;FILE *F=fopen("read.dat","ab");strcpy(b.instructor,"您的请假申请已被批准!");printf("\n");printf("辅导员意见:");scanf("%s",b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);// FILE *f3=fopen("leave.dat","ab");fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");continue;}if(ch==2){printf("-------------------------------------------------------------\n");printf("执行中....\n");printf("-------------------------------------------------------------\n");Sleep(1000);TEACHER b;FILE *F=fopen("read.dat","ab");strcpy(b.instructor,"您的请假申请没有被批准,请按时上课!"); printf("\n");printf("辅导员意见:");scanf("%s",b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");continue;}}}}if(s==2){system("cls");goto Login; //修改学生请假申请状态反回}}//如果是辅导员if(strlen(n)==5)//如果是老师{int a,i;printf("\n");printf("请输入密码:");//直接输入密码scanf("%s",plog);for(a=2,i=0; i<4; i++,a--){if(login(nlog,plog)==-1)//密码错误{system("color 0c");char plog[20]= {}; //登录数组初始化system("cls");printf("\n");printf("*************************************************************** *********\n");printf("* 密码错误! *\n");printf("*************************************************************** *********\n");printf("\n\n");if(a>0){printf("请重新输入密码(你还有%d次机会):",a);printf("\n\n");scanf("%s",plog);if(login(nlog,plog)==1)goto success1;}elsereturn 0;}}if(login(nlog,plog)==1){success1: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}system("cls");printf("\n\n");printf("=============================================================== =========\n");printf("| |\n");printf("|---------------------------学生请假系统(老师端)-----------------------|\n"); printf("| |\n");printf("=============================================================== =========\n");Sleep(1000);printf("\n\n");printf(" -------------------------------------------------------------\n");printf(" 学生请假加载中...\n");printf(" -------------------------------------------------------------\n");Sleep(1000);// int i=0;TEACHER b;FILE *t=fopen("read.dat","rb");// rewind(t);while(1){if(!(fread(&b,sizeof(TEACHER),1,t)))break;// long d=i*sizeof(TEACHER);// fseek(t,d,SEEK_SET);// fread(&b,sizeof(TEACHER),1,t);printf("---------------------------------------------------------------\n");printf("|学生学号%s请假申请反馈信息:\n",b.Num);printf("|班级:%s\n",b.Class);printf("|姓名:%s\n",b.n1);printf("|请假时间:%s\n",b.time);printf("|请假原因:%s\n",b.reason);printf("|申请状态:%s\n",b.instructor);printf("---------------------------------------------------------------\n");printf("\n\n");}system("pause");}}if(c==-1)//账户不存在{system("color F0");system("cls");char n[20];char p[20];strcpy(n,nlog);//复制帐号if(strlen(n)==9)//完成注册,存入data.dat文档{User u;printf("*************************************************************** *********\n");printf("* 同学!第一次登录请完成注册 *\n"); printf("*************************************************************** *********\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码 \n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==5){User u;printf("*************************************************************** *********\n");printf("* 老师!第一次登录请完成注册 *\n");printf("*************************************************************** *********\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码 \n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==4){User u;printf("*************************************************************** *********\n");printf("* 辅导员!第一次登录请完成注册 *\n"); printf("*************************************************************** *********\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码 \n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,n);strcpy(u.pw,p);FILE *f =fopen("data.dat","ab");//打开文件让指针f指向打开的文件fwrite(&u,sizeof(User),1,f);//讲以变量u的地址开始的内存区域的一个数据写到f指向的文件中,每个数据占sizeof(User)fclose(f);fflush(f);printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}goto Login;}return 0;}。