请假管理系统源代码

合集下载

智慧河小科请销假源码

智慧河小科请销假源码

智慧河小科请销假源码一、背景介绍智慧河小科是一款用于学校管理的智能系统,它可以方便学生和教师进行信息管理和交流。

其中一个重要功能是请销假系统,它使得学生和教师可以更加便捷地处理请假和销假事务。

二、请销假的流程与问题请销假是学生和教师经常遇到的事务之一,传统的请销假方式往往需要填写请假单、递交给班主任或教务处,等待审批,最后才能得到答复。

这一过程可能存在以下问题: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源码是一个用于管理员工请假的简单应用程序。

它通过记录和跟踪员工请假的信息,帮助企业更好地管理和安排员工的假期。

下面是一个简单的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

学生请假管理系统需求分析设计文档(附待部分核心代码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请假代码在日常工作中,我们有时会遇到需要请假的情况。

为了方便管理和记录,请假信息,我们可以使用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页 精品

考勤管理-课程设计考勤管理系统源代码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框架实现)精编版

学生请假管理系统需求分析设计文档(附待部分核心代码-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框架实现)

学生请假管理系统需求分析设计文档(附待部分核心代码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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;}。

相关文档
最新文档