day11_分类和static(信息管理系统)

1、案例驱动模式

1.1、案例驱动模式概述

通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,再通过新知识点解决问题

1.2、案例驱动模式的好处

  • 解决重复代码过多的冗余,提高代码的复用性
  • 解决业务逻辑聚集紧密导致的可读性差,提高代码的可读性
  • 解决代码可维护性差,提高代码的维护性

2、分类思想

2.1、分类思想概述

  • 分工协作,专人干专事

2.2、黑马信息管理系统

  • Student类 标准学生类,封装键盘录入的学生信息(id、name、age、birthday)
  • StudentDao类 Dao:(Data Access Object)用于访问存储数据的数组或集合
  • StudentService类:用来进行业务逻辑的处理(例如:判断录入的id是否存在)
  • StudentController类:和用户打交道(接收用户需求,采集用户信息,打印数据到控制台)
    在这里插入图片描述

3、分包思想

3.1、分包思想概述

  • 如果将所有的类文件都放在同一个包下,不利于管理和后期维护,所以,对于不同功能的类文件,可以放在不同的包下进行管理

3.2、包的概述

    • 本质上就是文件夹
  • 创建包
    • 多级包之间用"."进行分割,多级包的定义规范:公司的网站地址翻转(去掉www)比如:黑马程序员的网站是www.itheima.com后期我们所定义的包的结构为:com.itheima.其他的包名
  • 包的命名规则
    • 字母都是小写

3.3、包的注意事项

  • package语句必须是程序的第一条可执行的代码
  • package语句在一个java文件中只能有一个
  • 如果没有package,默认表示无包名

3.4、类与类之间的访问

  • 同一个包下的访问:不需要导包,直接使用即可
  • 不同包下的访问:
    1. import导包后访问
    2. 通过全类名(包名+类名)访问
  • 注意:import、package、class三个关键字的摆放位置存在顺序关系
    • package必须是程序的第一条可执行的代码
    • import需要写在package的下面
    • class需要在import下面

4、黑马信息管理系统

4.1、系统介绍

在这里插入图片描述

4.2、学生管理系统

4.2.1、需求说明

  • 添加学生:键盘录入学生信息(id、name、age、birthday)
    使用数组存储学生信息,要求学生的id不能重复
  • 删除学生:键盘录入要删除的学生的id值,将该学生从数组中移除,如果录入的id在数组中不存在,需要重新录入
  • 修改学生:键盘录入要修改的学生的id值和修改后的学生信息
    将数组中该学生的信息修改,如果录入的id在数组中不存在,需要重新录入
  • 查询学生:将数组中存储的所有学生的信息输出到控制台

4.2.2、实现步骤

  • 环境搭建实现步骤
存储的类作用
com.itheima.edu.info.manager.domainStudent.java封装学生信息
com.itheima.edu.info.manager.daoStudentDao.java访问存储数据的数组,进行增删改查(库管)
com.itheima.edu.info.manager.serviceStudentService.java业务逻辑处理(业务员)
com.itheima.edu.info.manager.controllerStudentController.java和用户打交道(客服接待)
com.itheima.edu.info.manager.entryInfoManagerEntry.java程序的入口类,提供一个main方法
  • 菜单搭建实现步骤
    • 需求
      • 黑马管理系统菜单搭建
      • 学生管理系统菜单搭建
    • 实现步骤
      1. 展示欢迎界面,用输出语句完成主界面的编写
      2. 获取用户的选择,用Scanner实现键盘录入数据
      3. 根据用户的选择执行对应的操作,用switch语句完成操作的选择
  • 添加功能实现步骤
    在这里插入图片描述
  • 添加功能优化:判断id是否存在
    在这里插入图片描述
  • 查询功能实现步骤
    在这里插入图片描述
  • 删除功能实现步骤
    在这里插入图片描述
  • 修改功能实现步骤
    在这里插入图片描述
  • 系统优化
    • 把updateStudent和deleteStudentById中录入学生id代码抽取一到一个方法(inputStudentId)中,该方法的主要作用奇数录入学生的id,方法的返回值为String类型
  • 把addStudent和updateStudent中录入学生信息的代码抽取一个方法(inputStudentInfo)中,该方法的主要作用是录入学生的信息,并封装为学生对象,方法的返回值是Student类型

4.2.3、代码实现

  • 学生类
public class Student {
    private String id;
    private String name;
    private String age;
    private String birthday;
    String address;

    public Student(){}

    public Student(String id, String name, String age, String birthday, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
        this.address = address;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
  • 程序的入口InfoManagerEntry类
package com.itheima.edu.info.manager.entry;

import com.itheima.edu.info.manager.controller.StudentController;

import java.util.Scanner;

/**
 * @Description:
 * @ClassName: InfoManagerEntry
 * @Author: 罗义龙
 * @Date: 2022/12/7 21:42
 * @Version: 1.0
 */
public class InfoManagerEntry {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(true){
            //主菜单搭建
            System.out.println("----欢迎来到黑马信息管理系统----");
            System.out.println("请输入您的选择:1.学生管理  2.老师管理  3.退出");
            String choice = sc.next();
            switch (choice){
                case "1":
                    System.out.println("学生管理");
                    //开启学生管理系统
                    StudentController studentController = new StudentController();
                    studentController.start();
                    break;
                case "2":
                    System.out.println("老师管理");
                    break;
                case "3":
                    System.out.println("感谢您的使用");
                    //退出当前正在运行的JVM虚拟机
                    System.exit(0);
                    break;
                default:
                    System.out.println("您的输入有误,请重新输入");
                    break;
            }
        }
    }
}
  • StudentController类
package com.itheima.edu.info.manager.controller;

import com.itheima.edu.info.manager.domain.Student;
import com.itheima.edu.info.manager.service.StudentService;

import java.util.Scanner;

/**
 * @Description:
 * @ClassName: StudentController
 * @Author: 罗义龙
 * @Date: 2022/12/7 21:48
 * @Version: 1.0
 */
public class StudentController {
    //业务员对象
    private StudentService studentService = new StudentService();
    private Scanner sc = new Scanner(System.in);

    //开启学生管理系统,并展示学生管理系统
    public void start() {
        studentLoop:
        while (true) {
            System.out.println("----欢迎来到<学生>管理系统----");
            System.out.println("请输入您的选择:1.添加学生  2.删除学生  3.修改学生  4.查看学生  5.退出");
            String choice = sc.next();
            switch (choice) {
                case "1":
                    System.out.println("添加");
                    addStudent();
                    break;
                case "2":
                    System.out.println("删除");
                    deleteStudentById();
                    break;
                case "3":
                    System.out.println("修改");
                    updateStudent();
                    break;
                case "4":
                    System.out.println("查询");
                    findAllStudent();
                    break;
                case "5":
                    System.out.println("感谢您使用学生管理系统,再见!");
                    break studentLoop;
                default:
                    System.out.println("您的输入有误,请重新输入");
                    break;
            }
        }
    }
    //查看学生的方法
    public void findAllStudent() {
        //调用业务员中的获取方法,得到学生的对象数组
        Student[] stus = studentService.findAllStudent();
        //判断数组的内存地址,是否为null
        if(stus == null){
            System.out.println("查无信息,请添加后重试");
            return;
        }
        //遍历数组,获取学生信息并打印在控制台
        System.out.println("学号\t\t姓名\t年龄\t生日");
        for (int i = 0; i < stus.length; i++) {
            Student stu = stus[i];
            if(stu!=null){
                System.out.println(stu.getId()+"\t" +stu.getName()+"\t"+stu.getAge()+
                        "\t\t" + stu.getBirthday());
            }
        }
    }

    //修改学生方法
    public void updateStudent() {
        String updateId = inputStudentId();
        Student newStu = inputStudentInfo(updateId);
        studentService.updateStudent(updateId,newStu);
        System.out.println("修改成功");
    }

    //删除学生方法
    public void deleteStudentById() {
        String delId = inputStudentId();
        studentService.deleteStudentById(delId);
        //提示删除成功
        System.out.println("删除成功!");
    }

    public String inputStudentId() {
        String id;
        while(true){
            System.out.println("请输入学生id:");
            id = sc.next();
            boolean exists = studentService.isExists(id);
            if(!exists){
                System.out.println("您输入的id不存在,请重新输入:");
            }else{
                break;
            }
        }
        return id;
    }

    //添加学生方法
    public void addStudent() {
        //为啥这里要注释掉:因为这里好几个地方都会用到,我们可以把这个类对象放在类的成员变量里面
        //StudentService studentService = new StudentService();
        //键盘接收学生信息
        String id;
        while(true){
            System.out.println("请输入学生id:");
            id = sc.next();
            boolean flag = studentService.isExists(id);
            if(flag){
                System.out.println("学号已被占用,请重新输入");
            }else{
                break;
            }
        }
        Student stu = inputStudentInfo(id);
        //将学生对象,传递给StudentService(业务员)中的addStudent方法
        boolean result = studentService.addStudent(stu);
        //根据返回的boolean类型结果,在控制台打印成功/失败
        if(result){
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }
    }

    public Student inputStudentInfo(String id) {
        System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        String age = sc.next();
        System.out.println("请输入学生生日:");
        String birthday = sc.next();
        Student stu = new Student();
        stu.setId(id);
        stu.setName(name);
        stu.setAge(age);
        stu.setBirthday(birthday);
        return stu;
    }

}

  • StudentService类
package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;

/**
 * @Description:
 * @ClassName: StudentService
 * @Author: 罗义龙
 * @Date: 2022/12/7 21:51
 * @Version: 1.0
 */
public class StudentService {
    //创建StudentDao(库管)
    private StudentDao studentDao = new StudentDao();
    //添加学生方法
    public boolean addStudent(Student stu) {
        //将学生对象,传递给StudentDao,库管中的addStudent方法
        //将返回的boolean类型结果,返还给Studentcontroller
        return studentDao.addStudent(stu);
    }

    //判断学号是否存在的方法
    public boolean isExists(String id) {
        Student[] stus = studentDao.findAllStudent();
        //假设id在数组中不存在
        boolean exists = false;
        //遍历数组,获取每一个学生对象,准备进行判断
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];
            if(student != null && student.getId().equals(id)){
                exists = true;
                break;
            }
        }
        return exists;
    }

    public void deleteStudentById(String delId) {
        studentDao.deleteStudentById(delId);
    }

    public void updateStudent(String updateId, Student newStu) {
        studentDao.updateStudent(updateId,newStu);
    }

    //查看学生方法
    public Student[] findAllStudent() {
        //调用库管对象的findAllStudent获取学生对象数组
        Student[] allStudent = studentDao.findAllStudent();
        //判断数组是否有学生信息,(有:返回地址,没有:返回null)
        //思路:数组中只要存在一个不是null的元素,那就代表有学生信息
        boolean flag = false;
        for (int i = 0; i < allStudent.length; i++) {
            Student stu = allStudent[i];
            if(stu!=null){
                flag = true;
                break;
            }
        }
        if(flag){
            //有信息
            return allStudent;
        }else{
            //没有信息
            return null;
        }
    }
}

  • StudentDao类
package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

/**
 * @Description:
 * @ClassName: StudentDao
 * @Author: 罗义龙
 * @Date: 2022/12/7 22:13
 * @Version: 1.0
 */
public class StudentDao {
    //创建学生对象数组
    private static  Student[] stus = new Student[5];
    //查看学生方法
    public Student[] findAllStudent() {
        return stus;
    }
    //添加学生方法
    public boolean addStudent(Student stu) {
        //添加学生到数组
        //定义变量index为-1,假设数组已经全部存满,没有null的元素
        int index = -1;
        //遍历数组取出每一个元素,判读是否为null
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];
            if(student == null){
                index = i;
                //如果为null,让index变量记录当前索引位置,并使用break结束循环遍历
                break;
            }
        }
        //返回是否添加成功的boolean状态
        if(index ==-1){
            //装满了
            return false;
        }else{
            //没有装满,正常添加,返回true
            stus[index] = stu;
            return true;
        }
    }

    public void deleteStudentById(String delId) {
        //查找id在容器中的所在的索引位置
        int index = getIndex(delId);
        stus[index] = null;
    }

    public int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            Student stu = stus[i];
            if(stu!=null && stu.getId().equals(id)){
                index = i;
                break;
            }
        }
        return index;
    }

    public void updateStudent(String updateId, Student newStu) {
        //查找updateId,在容器中的索引位置
        int index = getIndex(updateId);
        //将该索引位置,使用新的学生对象替换
        stus[index] = newStu;
    }
}

4.3、老师管理系统(与学生管理系统类似)

4.3.1、需求说明

  • 添加老师: 通过键盘录入老师信息(id,name,age,birthday)
    • 使用数组存储老师信息,要求老师的id不能重复
  • 删除老师: 通过键盘录入要删除老师的id值,将该老师从数组中移除,如果录入的id在数组中不存在,需要重新录入
  • 修改老师: 通过键盘录入要修改老师的id值和修改后的老师信息
    • 将数组中该老师的信息修改,如果录入的id在数组中不存在,需要重新录入
  • 查询老师: 将数组中存储的所有老师的信息输出到控制台

4.3.2、实现步骤

  • 环境搭建实现步骤
存储的类作用
com.itheima.edu.info.manager.domainStudent.java Teacher.java封装学生信息 封装老师信息
com.itheima.edu.info.manager.daoStudentDao.java TeacherDao.java访问存储数据的数组,进行增删改查(库管)
com.itheima.edu.info.manager.serviceStudentService.java TeacherService.java业务逻辑处理(业务员)
com.itheima.edu.info.manager.controllerStudentController.java TeacherController.java和用户打交道(客服接待)
com.itheima.edu.info.manager.entryInfoManagerEntry.java程序的入口类,提供一个main方法
  • 菜单搭建实现步骤
  1. 展示欢迎页面,用输出语句完成主界面的编写
  2. 获取用户的选择,用Scanner实现键盘录入数据
  3. 根据用户的选择执行对应的操作,用switch语句完成操作的选择
  • 添加功能实现步骤
    在这里插入图片描述
  • 查询功能实现步骤
    在这里插入图片描述
  • 删除功能实现步骤
    在这里插入图片描述
  • 修改功能实现步骤
    在这里插入图片描述
  • 系统优化
    • 把updateTeacher和deleteTeacherById中录入老师id代码抽取到一个方法(inputTeacherId)中
      该方法的主要作用就是录入老师的id,方法的返回值为String类型
    • 把addTeacher和updateTeacher中录入老师信息的代码抽取到一个方法(inputTeacherInfo)中
      该方法的主要作用就是录入老师的信息,并封装为老师对象,方法的返回值为Teacher类型

4.3.3、代码实现

  • 人类
package com.itheima.edu.info.manager.domain;

public class Person {
    private String id;
    private String name;
    private String age;
    private String birthday;
    String address;

    public Person() {
    }

    public Person(String id, String name, String age, String birthday) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

}
  • 老师类
public class Teacher extends Person{

}

  • TeacherController类
package com.itheima.edu.info.manager.controller;

import com.itheima.edu.info.manager.domain.Teacher;
import com.itheima.edu.info.manager.service.TeacherService;

import java.util.Scanner;

public class TeacherController {

    private Scanner sc = new Scanner(System.in);
    private TeacherService teacherService = new TeacherService();

    public void start() {

        teacherLoop:
        while (true) {
            System.out.println("--------欢迎来到 <老师> 管理系统--------");
            System.out.println("请输入您的选择: 1.添加老师  2.删除老师  3.修改老师  4.查看老师  5.退出");
            String choice = sc.next();
            switch (choice) {
                case "1":
                    // System.out.println("添加老师");
                    addTeacher();
                    break;
                case "2":
                    // System.out.println("删除老师");
                    deleteTeacherById();
                    break;
                case "3":
                    // System.out.println("修改老师");
                    updateTeacher();
                    break;
                case "4":
                    // System.out.println("查看老师");
                    findAllTeacher();
                    break;
                case "5":
                    System.out.println("感谢您使用老师管理系统, 再见!");
                    break teacherLoop;
                default:
                    System.out.println("您的输入有误, 请重新输入");
                    break;
            }
        }

    }

    public void updateTeacher() {
        String id = inputTeacherId();

        Teacher newTeacher = inputTeacherInfo(id);

        // 调用业务员的修改方法
        teacherService.updateTeacher(id,newTeacher);
        System.out.println("修改成功");
    }

    public void deleteTeacherById() {

        String id = inputTeacherId();

        // 2. 调用业务员中的删除方法, 根据id, 删除老师
        teacherService.deleteTeacherById(id);

        // 3. 提示删除成功
        System.out.println("删除成功");


    }

    public void findAllTeacher() {
        // 1. 从业务员中, 获取老师对象数组
        Teacher[] teachers = teacherService.findAllTeacher();

        // 2. 判断数组中是否有元素
        if (teachers == null) {
            System.out.println("查无信息, 请添加后重试");
            return;
        }

        // 3. 遍历数组, 取出元素, 并打印在控制台
        System.out.println("学号\t\t姓名\t年龄\t生日");
        for (int i = 0; i < teachers.length; i++) {
            Teacher t = teachers[i];
            if (t != null) {
                System.out.println(t.getId() + "\t" + t.getName() + "\t" + t.getAge() + "\t\t" + t.getBirthday());
            }
        }
    }

    public void addTeacher() {
        String id;
        while (true) {
            // 1. 接收不存在的老师id
            System.out.println("请输入老师id:");
            id = sc.next();
            // 2. 判断id是否存在
            boolean exists = teacherService.isExists(id);

            if (exists) {
                System.out.println("id已被占用, 请重新输入:");
            } else {
                break;
            }
        }

        Teacher t = inputTeacherInfo(id);

        // 5. 将封装好的老师对象, 传递给TeacherService继续完成添加操作
        boolean result = teacherService.addTeacher(t);

        if (result) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败");
        }
    }

    // 录入老师id
    public String inputTeacherId(){
        String id;
        while(true){
            System.out.println("请输入id");
            id = sc.next();
            boolean exists = teacherService.isExists(id);
            if(!exists){
                System.out.println("您输入的id不存在, 请重新输入:");
            }else{
                break;
            }
        }
        return id;
    }

    // 录入老师信息, 封装为老师对象
    public Teacher inputTeacherInfo(String id){
        System.out.println("请输入老师姓名:");
        String name = sc.next();
        System.out.println("请输入老师年龄:");
        String age = sc.next();
        System.out.println("请输入老师生日:");
        String birthday = sc.next();

        Teacher t = new Teacher();
        t.setId(id);
        t.setName(name);
        t.setAge(age);
        t.setBirthday(birthday);

        return t;
    }
}

  • TeacherService类
package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.TeacherDao;
import com.itheima.edu.info.manager.domain.Teacher;

public class TeacherService {

    private TeacherDao teacherDao = new TeacherDao();

    public boolean addTeacher(Teacher t) {
        return teacherDao.addTeacher(t);
    }

    public boolean isExists(String id) {
        // 1. 获取库管对象中的数组
        Teacher[] teachers = teacherDao.findAllTeacher();

        boolean exists = false;

        // 2. 遍历数组, 取出每一个元素, 进行判断
        for (int i = 0; i < teachers.length; i++) {
            Teacher teacher = teachers[i];
            if(teacher != null && teacher.getId().equals(id)){
                exists = true;
                break;
            }
        }

        return exists;
    }

    public Teacher[] findAllTeacher() {
        Teacher[] allTeacher = teacherDao.findAllTeacher();

        boolean flag = false;

        for (int i = 0; i < allTeacher.length; i++) {
            Teacher t = allTeacher[i];
            if(t != null){
                flag = true;
                break;
            }
        }

        if(flag){
            return allTeacher;
        }else{
            return null;
        }

    }

    public void deleteTeacherById(String id) {
        teacherDao.deleteTeacherById(id);
    }

    public void updateTeacher(String id, Teacher newTeacher) {
        teacherDao.updateTeacher(id,newTeacher);
    }
}

  • TeacherDao类
package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Teacher;

public class TeacherDao {

    private static Teacher[] teachers = new Teacher[5];

    public boolean addTeacher(Teacher t) {
        int index = -1;
        for (int i = 0; i < teachers.length; i++) {
            Teacher teacher = teachers[i];
            if(teacher == null){
                index = i;
                break;
            }
        }

        if(index == -1){
            return false;
        }else{
            teachers[index] = t;
            return true;
        }

    }

    public Teacher[] findAllTeacher() {
        return teachers;
    }

    public void deleteTeacherById(String id) {
        // 1. 查询id在数组中的索引位置
        int index = getIndex(id);
        // 2. 将该索引位置的元素, 使用null进行替换
        teachers[index] = null;
    }

    public int getIndex(String id){
        int index = -1;
        for (int i = 0; i < teachers.length; i++) {
            Teacher t = teachers[i];
            if(t != null && t.getId().equals(id)){
                index = i;
                break;
            }
        }

        return index;
    }

    public void updateTeacher(String id, Teacher newTeacher) {
        int index = getIndex(id);
        teachers[index] = newTeacher;
    }
}

5、static关键字

5.1、static关键字概述

  • static关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量

5.2、static修饰的特点

  • 被类的所有对象共享
    • 是我们判断是否使用静态关键字的条件
  • 随着类的加载而加载,优先于对象存在
    • 对象需要类被加载后,才能创建
  • 可以通过类名调用
    • 也可以通过对象名调用

5.3、static关键字注意事项

  • 静态方法只能访问静态的成员
  • 非静态方法可以访问静态的成员,也可以访问非静态的成员
  • 静态方法中是没有this关键字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台管理: http://你的网址/admin 进入,帐户/密码:admin/admin 网软志成分类信息管理系统介绍   网软志成分类信息网系统是定位于中高端市场的分类信息网管理系统,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大的分类信息网站平台。   网软志成是基于微软 .Net 平台开发的分类信息管理系统,它集成了自定义信息发布表单、整站伪静态HTML、分站顶级或二级域名绑定、分类/分站模板管理、IP自动跳转、搜索引擎优化、网银支付、道具、短信/邮箱验证、论坛整合、网址导航、分站独立管理等多项强大功能,通过Dreamweaver 可视化插件能够任意编辑分站、栏目模板页面显示样式。 强大的技术保障 系统由网软志成设计倾力打造,进一步拓展分类信息网价值。 网软志成平台为用户提供可持续性技术保障,完美无忧。多样化的风格改造,为用户提供非凡体验。 非凡的访问速度 秉承网软志成分类网独创的模板和数据库体系以及专业的代码设计保证了网软志成分类信息网系统的持续高效和稳定。 卓越的负载能力 网软志成分类信息系统核心参数的合理配置,专业的web 、数据库、附件和图片链的负载均衡处理,保证了站点在繁忙的服务器环境下快速而稳定的运行。 严密的安全体系独创的防攻击技术保障 专业的过滤注入式入侵、严密高效的防护算法和监控程序构成站点严密的安全体系。 强大而完善的功能 完善的多重无限分类,分站、分类栏目均可生成html页面、可选用的所见即所得编辑器、自定义信息发布字段、分站完全独立、后台管理权限控制。操作系统 Windows Server 2003(推荐)、Windows 2000、Windows XP 数据库 以下数据库任选一种: Sql Server 2000(推荐)、Sql Server 2005或更高 Web服务器 IIS 5.0 及以上版本(推荐 IIS6.0) 网软志成分类信息网.NET综合风格正式版下载,能帮助用户建立一个像赶集网的专业分类信息网站门户欢迎大家下载使用。是一套网软志成免费提供的分类供求信息发布网站商业建站程序。自带四套分类网站模板,强大的生活分类信息网站后台管理系统。本分类信息网站建站系统正式版是本公司专业网站软工程师团队花费二年时间精心开发制作的分类信息发布网程序,现免费提供强大的分类信息网后台管理系统,应用本信息网站建站软件,可建立有全国各地分站功能的地方生活分类信息发布网站的优秀网站管理系统正式版,全国城市分站都有独立管理功能,可招商发展加盟代理城市分站,轻松赚钱。分类信息网站系统正式版提供有桔红色.net综合风格分类网站模板,同时还提供有.net同城风格分类信息网页模板,asp.net分类信息网站系统地方门户版风格网站模板免费大餐来了,完全免费的asp.net+mssql简易风格分类信息网站系统源代码免费版,前台模块有,首页,商铺排行, 都市114,新闻,同城网购,电子优惠券,信息论坛,发布信息,登记商铺,网址导航,帮助中心,可以发布房屋信息,车辆信息,教育培训信息,交友征婚信息,宠物信息,票务/优惠券,跳蚤市场,求职兼职简历,招聘,办公商务,生活服务信息发布栏目,更多... 分类信息系统源码,分类信息网源码下载,分类信息网站全站源码,分类信息网站模板,网页模板,分类信息发布网站系统采用asp.net编程并采用mssql大型数据库,并可后台控制生成静态html文件,或者不生成html,开发的生活分类信息网站智能建站系统,分类信息智能建站系统,中国分类信息网后台管理系统,供求信息网站模板下载,asp.net分类信息,供求信息发布网站管理系统正式版源码,HTML城市分类信息网站系统是适合多个城市使用的分类信息发布平台。网软分类信息网站系统.net正式版下载分类信息网站模板系统预设了几十种信息类别,针对不同信息具有不同的发布表单和查询界面。具有会员注册、分类信息发布、会员积分、实名验证,信息管理等功能。采用灵活的可视化模版引擎,支持HTML静态页面生成和UTF-8多语言开发。仿赶集网asp.net+MSSQL大型数据库编程的分类信息网站管理系统源程序下载,分类信息网页模板,信息发布网站系统商业版。一个建立分类信息网站的智能建站系统,也是一个自助建站的分类信息网站程序商业版。分类网站管理系统商业版,建立行业级分类信息网站的史上最强大分类信息建站系统,应用本网站系统注册商家可开店铺,可发布分类信息,供求信息,建立企业网站,黄页功能,可展示产品,并可对商品下订单,并直接在线支付,帐户功能可帐户资料修改,会员密码修改,管理我的收藏,管理我的订单 ,信息可管理全部信息,修改管理竟价信息,查看管理未审信息,查看管理过期信息,发布新的分类信息,金币模板有,奖励金币,
源码名称:网软分类信息系统asp.net正式版下载分类信息网站网页模板 源码版本:V2020 建议分类:源码下载/asp.net源码/分类信息 联系EMAIL:38306293@qq.com 软件网站:http://www.wrzc.net 演示网站:http://flnet02.wygk.cn http://flnet01.wygk.cn http://flnet03.wygk.cn http://flnet04.wygk.cn http://www.wrzc.net/fl8 下载地址:http://download.wrzc.net/flnet02wygkcn.rar 软件容量:19MB 软件类型:简体中文/免费版 源码应用平台:asp.net+mssql 界面预览:http://download.wrzc.net/flnet02wygkcn.jpg 软件介绍:后台管理: http://你的网址/admin 进入,帐户/密码:admin/admin 网软志成分类信息管理系统介绍   网软志成分类信息网系统是定位于中高端市场的分类信息网管理系统,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大的分类信息网站平台。   网软志成是基于微软 .Net 平台开发的分类信息管理系统,它集成了自定义信息发布表单、整站伪静态HTML、分站顶级或二级域名绑定、分类/分站模板管理、IP自动跳转、搜索引擎优化、网银支付、道具、短信/邮箱验证、论坛整合、网址导航、分站独立管理等多项强大功能,通过Dreamweaver 可视化插件能够任意编辑分站、栏目模板页面显示样式。 强大的技术保障 系统由网软志成设计倾力打造,进一步拓展分类信息网价值。 网软志成平台为用户提供可持续性技术保障,完美无忧。多样化的风格改造,为用户提供非凡体验。 非凡的访问速度 秉承网软志成分类网独创的模板和数据库体系以及专业的代码设计保证了网软志成分类信息网系统的持续高效和稳定。 卓越的负载能力 网软志成分类信息系统核心参数的合理配置,专业的web 、数据库、附件和图片链的负载均衡处理,保证了站点在繁忙的服务器环境下快速而稳定的运行。 严密的安全体系独创的防攻击技术保障 专业的过滤注入式入侵、严密高效的防护算法和监控程序构成站点严密的安全体系。 强大而完善的功能 完善的多重无限分类,分站、分类栏目均可生成html页面、可选用的所见即所得编辑器、自定义信息发布字段、分站完全独立、后台管理权限控制。操作系统 Windows Server 2003(推荐)、Windows 2000、Windows XP 数据库 以下数据库任选一种: Sql Server 2000(推荐)、Sql Server 2005或更高 Web服务器 IIS 5.0 及以上版本(推荐 IIS6.0) 分类信息发布系统是一个完善的分类信息发布网站系统,供求信息网站发布系统子模块,充分考虑了分类信息网站,供求信息网站管理系统的通用需求。全后台管理方式,后台功能齐全,使用维护方便。无论是大中小型公司,企业的网站管理人员只要会打字,就会建起一个专业的类似58同城分类信息网站,供求信息网站系统,随时管理网站内容。 一个功能强大的分类信息(广告)系统,网软志成分类信息网正式版下载,地方门户系统,分类信息网模板,分类信息网淡红色风格版下载,仿快点8分类信息网门户网站系统源码,供求信息发布网站系统和信息发布网站程序,漂亮的分类信息网站网页模板。支持自定义分类信息类别和企业黄页分类功能。分类信息网源码,带商家黄页的分类信息网系统,会员可自助建站的分类信息网站程序,可根据浏览IP自动跳转分站的分类网站后台管理系统,供求信息网站源码,asp.net分类信息源码,生成html的分类信息站源码,此系统是基于asp.net+mssql技术开发的运行安全,稳定,快速,全自动化、全智能的在线方式管理、维护、更新的分类信息网站。分类信息网站功能将更加完全,真正的能为大家在建设分类信息网站,带来安全,稳定,高效。本系统分供求信息网站系统mssql版,生活分类信息网站系统中文sql版。同时提供有PHP+MYSQL开发的同城分类信息发布网站系统等十多套分类信息网商业版。 分类信息网站自助建站系统源码正式版由分类信息建站专家,分类信息网站系统开发商广州网软志成www.wrzc.net荣誉出品,采用asp.net 2.0+mssql 2000开发, 运行稳定,快速,安全性能优良,功能更强大,是一套通用的,分类信息自助网站管理系统,信息网站源码,同时提供有asp版的分类信息网站后台管理系统源码,分类信息网站程序,北京分类信息网站。带分站功能的分类信息网源码,分类信息系统源码,asp带全分站自动跳转的分类信息源码,分类信息站源码,分类信息网站代码,整个网站风格简单明了,界面美观大方,提高网络推广效果,是国内互联网上不可多得的优秀程序。管理信息系统网站,信息网站系统,分类信息系统源码,北京分类信息网站,分类信息网站程序后台批量管理分类和企业信息。分类信息网站管理系统信息模块化处理,网站速度超快。我们的分类信息网站建站系统前台内容栏目结构清晰,易于访问者查看想要的内容,也是搜索引擎最喜欢的网页结构,相信很乐意光顾你用本系统搭建的站点,分类信息网站源代码下载,中国分类信息网源码,房屋转让分类信息网源码下载,asp.net信息网源码,信息发布系统源码,物流信息源码,房产信息网源码.net源码,公安信息网源码,家教信息平台源码,农业信息网源码,浦东信息网源码,北京信息超市源码,本分类信网程序基于asp.net+mssql技术开发的分类信息程序,是经过多年的经验积累,完善设计、精心打造的适用于各种服务器环境的安全、稳定、快速、强大、高效、易用、优秀的网站建设解决方案。采用人性化的Windows操作方式开发,运行速度快,服务器资源占用更少;无论在稳定性、负载能力、安全等方面都有可靠的保证并赢得了广大用户的良好称赞。 备注:本程序是MSSQL的分类信息网站合适建立大中小型分类信息门户网站使用 分类信息系统同城风格网站模板,此版功能更强大,后台系统更管理方便,类别模块清晰,界面新颖,拿去就可以用,不需要太多的网络知识就可以轻松建立企业门户级分类信息网站,仿赶集网信息网站。仿58同城分类信息系统有美观的分类信息前台模板,强大的网站后台管理功能,自助管理前台相关栏目。网软志成分类信息网站系统淡红色分类信息网站模板,人机交互数据输入界面十分干净清爽,我们坚信这是一流的设计思想。所有信息内容在线完成编辑,就象WORD一样简单、可视而又功能完善,几乎能完成你想要的所有效果。简体,繁体使你建设的分类信息网站,最大范围被人了解,占得网络市场。本分类信息网站系统正式版搜索引擎SEO优化非常好,相关关键字排在百度,google的第一页,本套分类信息发布系统自带有韩国风格特色网站模板,并可在后台自助管理编辑前台模板,调用数据使用强大的函数标签调用,利用分站功能可对全国进行招商加盟,通过分站发展壮大分类信息平台,我们公司凭着雄厚的技术力量,周到的售后服务,国外公司也很多选择使用我们公司开发的分类信息网站系统正式版,以最少的投资建立了分类信息网站,收到良好的经济效益,赚到很多的钱,地方门户系统风格的分类信息网站管理系统正式版源码有宣传,介绍,展示,推广,销售各分类信息的产品与服务,开展网上电子商务业务,实现分类信息发布,赢利,是整站系统设计功能的最终目标。 网软志成分类信息网.NET综合风格正式版下载,能帮助用户建立一个像赶集网的专业分类信息网站门户欢迎大家下载使用。是一套网软志成免费提供的分类供求信息发布网站商业建站程序。自带四套分类网站模板,强大的生活分类信息网站后台管理系统。本分类信息网站建站系统正式版是本公司专业网站软工程师团队花费二年时间精心开发制作的分类信息发布网程序,现免费提供强大的分类信息网后台管理系统,应用本信息网站建站软件,可建立有全国各地分站功能的地方生活分类信息发布网站的优秀网站管理系统正式版,全国城市分站都有独立管理功能,可招商发展加盟代理城市分站,轻松赚钱。分类信息网站系统正式版提供有桔红色.net综合风格分类网站模板,同时还提供有.net同城风格分类信息网页模板,asp.net分类信息网站系统地方门户版风格网站模板免费大餐来了,完全免费的asp.net+mssql简易风格分类信息网站系统源代码免费版,前台模块有,首页,商铺排行, 都市114,新闻,同城网购,电子优惠券,信息论坛,发布信息,登记商铺,网址导航,帮助中心,可以发布房屋信息,车辆信息,教育培训信息,交友征婚信息,宠物信息,票务/优惠券,跳蚤市场,求职兼职简历,招聘,办公商务,生活服务信息发布栏目,更多... 分类信息系统源码,分类信息网源码下载,分类信息网站全站源码,分类信息网站模板,网页模板,分类信息发布网站系统采用asp.net编程并采用mssql大型数据库,并可后台控制生成静态html文件,或者不生成html,开发的生活分类信息网站智能建站系统,分类信息智能建站系统,中国分类信息网后台管理系统,供求信息网站模板下载,asp.net分类信息,供求信息发布网站管理系统正式版源码,HTML城市分类信息网站系统是适合多个城市使用的分类信息发布平台。网软分类信息系统asp.net正式版下载分类信息网站网页模板系统预设了几十种信息类别,针对不同信息具有不同的发布表单和查询界面。具有会员注册、分类信息发布、会员积分、实名验证,信息管理等功能。采用灵活的可视化模版引擎,支持HTML静态页面生成和UTF-8多语言开发。仿赶集网asp.net+MSSQL大型数据库编程的分类信息网站管理系统源程序下载,分类信息网页模板,信息发布网站系统商业版。一个建立分类信息网站的智能建站系统,也是一个自助建站的分类信息网站程序商业版。分类网站管理系统商业版,建立行业级分类信息网站的史上最强大分类信息建站系统,应用本网站系统注册商家可开店铺,可发布分类信息,供求信息,建立企业网站,黄页功能,可展示产品,并可对商品下订单,并直接在线支付,帐户功能可帐户资料修改,会员密码修改,管理我的收藏,管理我的订单 ,信息可管理全部信息,修改管理竟价信息,查看管理未审信息,查看管理过期信息,发布新的分类信息,金币模板有,奖励金币,扣除金币,在线充值,充值记录,短信模块,有收件箱,发信箱,写短信,评论模块有我的信息评论,我的新闻评论,认证模块,有实名认证。后台功能强大,可实现网站的智能化管理,傻瓜化操作。便可建立全国性的专业门户级的分类信息网站。分类广告,分类信息网站管理系统后台管理同样结构清晰,便于管理,提高效率。分类信息网站自助建站管理系统源码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值