
- 针 对
- 学校学生处的大量工作处理
- 安全管理
- 支持精准定位
- 开 发
- 管理软件
- 奖学金管理
- :支持学生成绩绩点、任职分值
- 中文名
- 学生管理系统
- 外文名
- Student management system
-
2021-11-28 15:02:41
学生管理系统
正文
运行系统:
提示:欢迎来到学生管理系统
系统列表展示
(1)查看所有学生 封装方法
(2)添加学生 封装方法
(3)删除学生 封装方法
(4)修改学生 封装方法
(5)退出系统 封装方法import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.ArrayList; import java.util.Scanner; class Student { private String sno; private String name; private int age; private String home; public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getHome() { return home; } public void setHome(String home) { this.home = home; } //重写了hashCode() @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((home == null) ? 0 : home.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((sno == null) ? 0 : sno.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (age != other.age) return false; if (home == null) { if (other.home != null) return false; } else if (!home.equals(other.home)) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (sno == null) { if (other.sno != null) return false; } else if (!sno.equals(other.sno)) return false; return true; } @Override public String toString() { return "Student [sno=" + sno + ", name=" + name + ", age=" + age + ", home=" + home + "]"; } } public class StudentManageMent { // 定义学生数组长度,初始长度=0; public static int length=0; // 展示学生 public static void showStudents(ArrayList<Student> student,int length){ Student s=new Student(); if(student.isEmpty()){ System.out.println("没有学生"); theShow(student,length); System.out.println("请选择其他功能"); }else{ for(int j=0;j<length;j++){ // System.out.println(student.get(j).toString()); System.out.println("学生"+(j+1)+"的年龄是: "+student.get(j).getAge()+" 名字是: "+student.get(j).getName()+ " 学号是: "+student.get(j).getSno()+" 家庭住址是: "+student.get(j).getHome()); } theShow(student,length); } } // 添加学生 public static void addStudents(ArrayList<Student> student,int length){ System.out.println("请输入学号"); Scanner inSno =new Scanner(System.in); String sno =inSno.next(); for(int b=0;b<length;b++){ if(sno.equals(student.get(b).getSno())){ System.out.println("你输入的学号已经被占用,请重新输入"); addStudents(student,length); } } Student stu=new Student(); stu.setSno(sno); System.out.println("请输入姓名"); Scanner inName =new Scanner(System.in); String name =inSno.next(); stu.setName(name); System.out.println("请输入年龄"); Scanner Inage =new Scanner(System.in); int age =inSno.nextInt(); stu.setAge(age); System.out.println("请输入居住地"); Scanner inHome =new Scanner(System.in); String home =inSno.next(); stu.setHome(home); student.add(stu); length++; theShow(student,length); } // 删除学生 public static void delStudents(ArrayList<Student> a,int length){ System.out.println("选择要删除学生的学号"); Scanner inSno =new Scanner(System.in); String sno =inSno.next(); int time =0;//锁 for(int b=0;b<length;b++){ if(sno.equals(a.get(b).getSno())){ System.out.println("你输入的学号存在"); a.remove(b); length--; time =1; } } if(time ==1){ System.out.println(",已经删除"); } theShow(a,length); System.out.println("请选择其他功能"); } // 修改学生 public static void setStudents(ArrayList<Student> student,int length){ System.out.println("选择要修改学生的学号"); Student stu =new Student(); Scanner inSno =new Scanner(System.in); String sno =inSno.next(); int time =0;//锁 for(int b=0;b<length;b++){ if(sno.equals(student.get(b).getSno())){ System.out.println("你输入的学号存在"); student.remove(b); time =1; stu.setSno(sno); System.out.println("请输入姓名"); Scanner inName =new Scanner(System.in); String name =inSno.next(); stu.setName(name); System.out.println("请输入年龄"); Scanner Inage =new Scanner(System.in); int age =inSno.nextInt(); stu.setAge(age); System.out.println("请输入居住地"); Scanner inHome =new Scanner(System.in); String home =inSno.next(); stu.setHome(home); student.add(stu); } if(time ==1){ System.out.println("修改成功"); } } theShow(student,length); System.out.println("请选择其他功能"); } // 退出系统 public static void outOfTheSystem(ArrayList<Student> a){ } // theShow()操作系统的小入口,会被多次调用 public static void theShow(ArrayList<Student> student,int length){ while(true){ Scanner sc=new Scanner(System.in); int in=sc.nextInt(); switch(in){ case 1: showStudents(student,length); break; case 2: addStudents(student,length++); break; case 3: delStudents(student,length); break; case 4: setStudents(student,length); break; case 5: return ; } return ; } } // 主界面 public static void managementView(){ System.out.println("=====欢迎来到学生管理系统====="); System.out.println("|(1)查看所有学生 |"); System.out.println("|(2)添加学生 |"); System.out.println("|(3)删除学生 |"); System.out.println("|(4)修改学生 |"); System.out.println("|(5)退出系统 |"); System.out.println("==========================="); } // 主函数 public static void main(String[] args) { ArrayList<Student> student=new ArrayList<>(); managementView(); theShow(student,length); } }
更多相关内容 -
Python界面版学生管理系统
2018-10-27 15:45:18前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下载 -
Python学生管理系统(web网页版)
2018-11-02 11:28:27Python学生管理系统(web网页版),前面发布了python的控制台版本的学生管理系统和使用tkinter界面版的学生管理系统,这次是使用Django开发基于学生的实体类的增删改查,里面包含项目演示录屏和完整的项目源码与... -
用Java实现学生管理系统【简化版】基础
2022-06-04 20:54:41* 标准的IO版学生管理系统 * * * 分析: * 1.定义学生类 * 2.学生管理系统主界面的代码编写 * 3.学生管理系统的查看所有学生的代码编写 * 4.学生管理系统的添加学生的代码编写 * 5.学生管理系统的...🎉博客首页:痛而不言笑而不语的浅伤
📢欢迎关注🥳点赞 👍 收藏 ⭐留言 📝 欢迎讨论!
🔮本文由痛而不言笑而不语的浅伤原创,CSDN首发!
🌋系列专栏:《Java每日一练》
🧿首发时间:2022年6月4日
❤:热爱Java学习,期待一起交流!
🙏🏻作者水平有限,如果发现错误,求告知,多谢!
🥰有问题可以私信交流!!!
目录
* 标准的IO版学生管理系统
*
* * 分析:
* 1.定义学生类
* 2.学生管理系统主界面的代码编写
* 3.学生管理系统的查看所有学生的代码编写
* 4.学生管理系统的添加学生的代码编写
* 5.学生管理系统的删除学生的代码编写
* 6.学生管理系统的修改学生的代码编写其实挺简单的,就最基本的Java基础语法部分。很适合初学者练习。其实主要从Java面向对象和IO流的一个熟练掌握。最后是转换成jar文件,通过软件弄成了.exe的文件。执行exe文件就是如下运行结果。数据的保存是在同目录下的TXT文件,需要注意的是TXT文件和可执行的exe文件一定要放在同一文件夹内,不然会报错。
运行展示
界面初始化
public class StudentManagerTest_IO { public static void main(String[] args) throws Exception { File f1 = new File("G:\\学生管理系统\\Student1.txt"); // 创建持久相对路劲 String findName = f1.getName(); // 学生管理系统主界面的代码编写 // 死循环执行程序 while (true) { System.out.println("----------欢迎使用老马教育学生管理系统----------"); System.out.println("请输入你要执行的操作:"); System.out.println("1 查看所有学生"); System.out.println("2 添加学生"); System.out.println("3 删除学生"); System.out.println("4 修改学生"); System.out.println("5 退出系统");
查看所有学生
// 学生管理系统的查看所有学生的代码编写 public static void findAllStudent(String findName) throws Exception { // 创建集合对象存储学生数据 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 遍历集合到输出控制台 // 首先判断集合中是否有数据 if (array.size() == 0) { System.out.println("不好意思,目前没有学生信息可供查询,请重新你的选择!"); } else { System.out.println("所有学生信息如下:"); System.out.println("|-------|-------|-------|-------|"); System.out.println("|" + "学号" + "\t" + "|" + "姓名" + "\t" + "|" + "年龄" + "\t" + "|" + "地址" + "\t" + "|"); System.out.println("|-------|-------|-------|-------|"); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println("|" + s.getId() + "\t" + "|" + s.getName() + "\t" + "|" + s.getAges() + "\t" + "|" + s.getAddress() + "\t" + "|"); System.out.println("|-------|-------|-------|-------|"); } System.out.println(); System.out.println(); } }
添加学生
// 学生管理系统的添加学生的代码编写 public static void addStudent(String findName) throws Exception { // 创建存储数据的集合对象 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); String id; // 判断该学号是否已被占用 while (true) { // 定义标记 boolean flag = false; // 添加学号 System.out.println("请您输入要添加的学生学号:"); id = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if (s.getId().equals(id)) { flag = true; break; } } if (flag) { System.out.println("不好意思,你输入的学号已被占用,请你重新你的选择:"); break; } else { // 添加姓名 System.out.println("请您输入学生姓名:"); String name = sc.nextLine(); System.out.println("请您输入学生年龄:"); String ages = sc.nextLine(); System.out.println("请您输入学生居住地址:"); String address = sc.nextLine(); // 创建学生对象 Student s = new Student(); s.setId(id); s.setName(name); s.setAges(ages); s.setAddress(address); // 把学生对象作为元素添加到集合中 array.add(s); // 调用写数据方法 writerData(findName, array); // 添加成功的提示语 System.out.println("添加学生信息成功!"); break; } } }
删除学生
// 学生管理系统的删除学生的代码编写 public static void deleteStudent(String findName) throws Exception { // 创建学生数据存储的空集合 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 定义标记 int index = -1; // 定义学号变量 String id; // 删除学生信息 // 数据要删除学生信息的学生学号 System.out.println("请您输入要删除学生信息的学生学号:"); id = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); // 判断是否有要删除的这个学号 if (s.getId().equalsIgnoreCase(id)) { index = i; break; } } if (index == -1) { System.out.println("您想要删除的学生信息不存在,请重新您的选择!"); } else { array.remove(index); // 调用写文件方法 writerData(findName, array); // 提示语 System.out.println("删除学生信息成功!"); } }
修改学生
// 学生管理系统的修改学生的代码编写 public static void alterStudent(String findName) throws Exception { // 创建存储学生数据的空集合 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 定义标记 int index = -1; // 定义学生学号变量 String id; // 输入学号判断 while (true) { // 输入学号 System.out.println("请您输入想要修改学生信息的学号:"); id = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if (s.getId().equals(id)) { index = i; } } if (index == -1) { System.out.println("您想要修改的学生信息不存在,请您重新输入学号:"); } else { // 修改姓名 System.out.println("请您输入学生姓名:"); String name = sc.nextLine(); // 修改年龄 System.out.println("请您输入学生年龄:"); String ages = sc.nextLine(); // 修改居住地址 System.out.println("请您输入居住地址:"); String address = sc.nextLine(); // 创建学生对象 Student s = new Student(); s.setId(id); s.setName(name); s.setAges(ages); s.setAddress(address); // 添加到集合 array.set(index, s); // 调用写文件方法 writerData(findName, array); // 提示语 System.out.println("修改学生信息成功!"); break; } } } }
退出系统
// 退出系统 System.out.println("感谢您的使用,辛苦了!"); System.exit(0); break;
完整源代码
package com.laoma_02; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; /* * 标准的IO版学生管理系统 * * * 分析: * 1.定义学生类 * 2.学生管理系统主界面的代码编写 * 3.学生管理系统的查看所有学生的代码编写 * 4.学生管理系统的添加学生的代码编写 * 5.学生管理系统的删除学生的代码编写 * 6.学生管理系统的修改学生的代码编写 * * */ public class StudentManagerTest_IO { public static void main(String[] args) throws Exception { File f1 = new File("G:\\学生管理系统\\Student1.txt"); // 创建持久相对路劲 String findName = f1.getName(); // 学生管理系统主界面的代码编写 // 死循环执行程序 while (true) { System.out.println("----------欢迎使用老马教育学生管理系统----------"); System.out.println("请输入你要执行的操作:"); System.out.println("1 查看所有学生"); System.out.println("2 添加学生"); System.out.println("3 删除学生"); System.out.println("4 修改学生"); System.out.println("5 退出系统"); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 输入所匹配的序号并执行操作 String option = sc.nextLine(); switch (option) { case "1": // 查看所有学生信息 findAllStudent(findName); break; case "2": // 添加学生信息 addStudent(findName); break; case "3": // 删除学生信息 deleteStudent(findName); break; case "4": // 修改学生信息 alterStudent(findName); break; case "5": // 退出系统 System.out.println("感谢您的使用,辛苦了!"); System.exit(0); break; default: System.out.println("您输入的选择不存在,请您重新输入!"); break; } } } // 把文件中的数据读到集合中 public static void readData(String findName, ArrayList<Student> array) throws Exception { // 创建输入缓冲流对象 BufferedReader br = new BufferedReader(new FileReader(findName)); // 创建数组读取文本文件数据并按照执行格式分割,然后把读取的数据作为元素存储到集合,最后遍历集合到输出控制台 // 定义索引 String line; while ((line = br.readLine()) != null) { // 读取文本文件数据并按照执行格式分割 String[] strArray = line.split(","); // 创建学生对象 Student s = new Student(); s.setId(strArray[0]); s.setName(strArray[1]); s.setAges(strArray[2]); s.setAddress(strArray[3]); // 把读取的数据作为元素存储到集合 array.add(s); } // 释放资源你 br.close(); } // 把集合中的数据写入文件中 public static void writerData(String findName, ArrayList<Student> array) throws Exception { // 创建输出缓冲流对象 BufferedWriter bw = new BufferedWriter(new FileWriter(findName)); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); StringBuilder sb = new StringBuilder(); sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAges()).append(",") .append(s.getAddress()); bw.write(sb.toString()); bw.newLine(); bw.flush(); } // 释放资源 bw.close(); } // 学生管理系统的查看所有学生的代码编写 public static void findAllStudent(String findName) throws Exception { // 创建集合对象存储学生数据 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 遍历集合到输出控制台 // 首先判断集合中是否有数据 if (array.size() == 0) { System.out.println("不好意思,目前没有学生信息可供查询,请重新你的选择!"); } else { System.out.println("所有学生信息如下:"); System.out.println("|-------|-------|-------|-------|"); System.out.println("|" + "学号" + "\t" + "|" + "姓名" + "\t" + "|" + "年龄" + "\t" + "|" + "地址" + "\t" + "|"); System.out.println("|-------|-------|-------|-------|"); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println("|" + s.getId() + "\t" + "|" + s.getName() + "\t" + "|" + s.getAges() + "\t" + "|" + s.getAddress() + "\t" + "|"); System.out.println("|-------|-------|-------|-------|"); } System.out.println(); System.out.println(); } } // 学生管理系统的添加学生的代码编写 public static void addStudent(String findName) throws Exception { // 创建存储数据的集合对象 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); String id; // 判断该学号是否已被占用 while (true) { // 定义标记 boolean flag = false; // 添加学号 System.out.println("请您输入要添加的学生学号:"); id = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if (s.getId().equals(id)) { flag = true; break; } } if (flag) { System.out.println("不好意思,你输入的学号已被占用,请你重新你的选择:"); break; } else { // 添加姓名 System.out.println("请您输入学生姓名:"); String name = sc.nextLine(); System.out.println("请您输入学生年龄:"); String ages = sc.nextLine(); System.out.println("请您输入学生居住地址:"); String address = sc.nextLine(); // 创建学生对象 Student s = new Student(); s.setId(id); s.setName(name); s.setAges(ages); s.setAddress(address); // 把学生对象作为元素添加到集合中 array.add(s); // 调用写数据方法 writerData(findName, array); // 添加成功的提示语 System.out.println("添加学生信息成功!"); break; } } } // 学生管理系统的删除学生的代码编写 public static void deleteStudent(String findName) throws Exception { // 创建学生数据存储的空集合 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 定义标记 int index = -1; // 定义学号变量 String id; // 删除学生信息 // 数据要删除学生信息的学生学号 System.out.println("请您输入要删除学生信息的学生学号:"); id = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); // 判断是否有要删除的这个学号 if (s.getId().equalsIgnoreCase(id)) { index = i; break; } } if (index == -1) { System.out.println("您想要删除的学生信息不存在,请重新您的选择!"); } else { array.remove(index); // 调用写文件方法 writerData(findName, array); // 提示语 System.out.println("删除学生信息成功!"); } } // 学生管理系统的修改学生的代码编写 public static void alterStudent(String findName) throws Exception { // 创建存储学生数据的空集合 ArrayList<Student> array = new ArrayList<Student>(); // 调用读数据方法 readData(findName, array); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 定义标记 int index = -1; // 定义学生学号变量 String id; // 输入学号判断 while (true) { // 输入学号 System.out.println("请您输入想要修改学生信息的学号:"); id = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if (s.getId().equals(id)) { index = i; } } if (index == -1) { System.out.println("您想要修改的学生信息不存在,请您重新输入学号:"); } else { // 修改姓名 System.out.println("请您输入学生姓名:"); String name = sc.nextLine(); // 修改年龄 System.out.println("请您输入学生年龄:"); String ages = sc.nextLine(); // 修改居住地址 System.out.println("请您输入居住地址:"); String address = sc.nextLine(); // 创建学生对象 Student s = new Student(); s.setId(id); s.setName(name); s.setAges(ages); s.setAddress(address); // 添加到集合 array.set(index, s); // 调用写文件方法 writerData(findName, array); // 提示语 System.out.println("修改学生信息成功!"); break; } } } }
最后呢?文章到这里就结束啦,你们学废了吗?
好啦!今天的练习就到这里。看吧这么努力的你又学到了很多,新的一天加油鸭!!!
你的点赞是对我最大的鼓励。
你的收藏是对我文章的认可。
你的关注是对我创作的动力。
-
学生管理系统
2021-02-21 10:12:24学生管理系统 功能:增加、删除、保存、刷新、查询、修改、显示学生信息 模块思想,将每一个功能写成一个函数 将每个学生基本信息定义一个结构体 N为宏定义,最大学生数 struct STU { char num[100]; //学号 ...学生管理系统
- 功能:增加、删除、保存、刷新、查询、修改、显示学生信息
- 模块思想,将每一个功能写成一个函数
- 将每个学生基本信息定义一个结构体
N为宏定义,最大学生数
struct STU { char num[100]; //学号 char name[100]; //姓名 char sex[10]; //性别 int age; //年龄 float score[3]; //成绩*3[C语言,高数,英语] }stu[N];
- 函数声明
void menu(); //打印菜单 void help(); //打印使用帮助 void increase(); //增加学生信息 void search(); //搜索学生信息 void dlt(); //删除学生信息 void save(); //保存学生信息 void display(); //显示学生信息 void modify(); //修改学生信息 void flush(); //刷新学生信息 void exit(); //退出
- main函数
在对每一个函数命名时尽量做到见名知意
当t为真时,循环运行,t为假时,循环结束
int main() { int number; while (t) { menu(); printf("请输入菜单编号:"); scanf("%d", &number); switch (number) { case 1:help(); break; //使用帮助 case 2:increase(); break; //增加学生信息 case 3:search(); break; //查询学生信息 case 4:dlt(); break; //删除学生信息 case 5:save(); break; //保存当前信息 case 6:display(); break; //显示当前信息 case 7:modify(); break; //修改学生信息 case 8:flush(); break; //刷新学生信息 case 9:exit(0); break; //退出 default:printf("输入有误!"); } } }
- menu函数
void menu() //显示菜单 { printf("\n"); printf("*****************************************************\n"); printf("* 学生信息管理系统 *\n"); printf("*****************************************************\n"); printf("********************系统功能菜单*********************\n"); printf("----------------------- -------------------------\n"); printf("*****************************************************\n"); printf("** 1、使用帮助 * 2、增加学生信息 **\n"); printf("*****************************************************\n"); printf("** 3、查询学生信息 * 4、删除学生信息 **\n"); printf("*****************************************************\n"); printf("** 5、保存当前信息 * 6、显示当前信息 **\n"); printf("*****************************************************\n"); printf("** 7、修改学生信息 * 8、刷新学生信息 **\n"); printf("*****************************************************\n"); printf("** 9、退出系统 * **\n"); printf("************************* \n"); printf("----------------------- -------------------------\n"); }
- help函数
- system(“pause”); 让系统暂停
void help() //使用帮助 { printf("\n这是一个学生管理系统,为方便您更快了解它,请先阅读以下注意事项:\n"); printf("\n 注意事项: \n "); printf("\n 1、请根据提示进行操作!\n"); printf("\n 2、初次使用请先选择增加学生信息!\n"); printf("\n 3、修改或者增加学生信息后切记保存!\n"); printf("\n 4、如果数据有错误,请先修改再保存!\n"); printf("\n 5、若您之前使用过,下次进入系统请先刷新学生信息!\n"); printf("\n 6、在添加学生时,用两个字符代表不同的性别,比如男用‘M’代替,女用‘W’代替!\n"); printf("\n 7、保存或者刷新时,输入的文件名后缀请使用.txt,比如: stu.txt,系统会在源程序\n"); printf("\n “学生管理系统.exe”的相同目录建立一个.txt文件来保存学生信息,您可以查看\n"); printf("\n 该文件,但非专业人员不要轻易改动,否则会造成刷新数据异常或刷新失败!\n"); printf("\n 8、学生信息包括:姓名、学号、性别、年龄、C语言成绩、高数成绩、英语成绩等!\n"); printf("\n 9、使用遇到任何问题请与我们联系,电话:12345678\n"); printf("\n 10、最后感谢您的使用!\n"); system("pause"); //让系统暂停 }
- increase函数(增加学生信息)
- 定义flag,判断学生信息是否存在
- n为已存在的学生信息数量
void increase() //增加学生信息 { int m, flag, i = n, j; printf("请输入待添加的学生人数:\n"); scanf("%d", &m); if (m > 0) { do { flag = 1; while (flag != 0) { flag = 0; printf("请输入第%d位学生的学号:\n", i + 1); getchar(); gets(stu[i].num); for (j = 0; j < i; j++) { if (strcmp(stu[i].num, stu[j].num) == 0) { printf("该学号已存在,请重新输入!\n"); flag = 1; break; } } } printf("请输入第%d位学生姓名:\n", i + 1); gets(stu[i].name); printf("请输入第%d位学生性别:\n", i + 1); gets(stu[i].sex); printf("请输入第%d位学生年龄:\n", i + 1); scanf("%d", &stu[i].age); printf("请输入第%d位学生C语言成绩:\n", i + 1); scanf("%f", &stu[i].score[0]); printf("请输入第%d位学生高等数学成绩:\n", i + 1); scanf("%f", &stu[i].score[1]); printf("请输入第%d位学生大学英语成绩:\n", i + 1); scanf("%f", &stu[i].score[2]); i++; } while (i < m + n); n += m; printf("添加完成!"); system("pause"); } }
- search函数
- 打印时使用\t,让打印出来的格式整齐
- 定义flag,判断学生信息是否存在
- 由于用户操作次数不同,所以在外层套一个循环
case 3:return;
表示在用户输入3时,退出该循环,返回主函数
void search() //查询学生信息 { int number, flag, i; char s1[100]; printf("*****************************\n"); printf("**-------1.按学号查询------**\n"); printf("**-------2.按姓名查询------**\n"); printf("**-------3.退出本菜单------**\n"); printf("*****************************\n"); while (1) { flag = 0; printf("请输入要执行的操作序号:\n"); scanf("%d", &number); switch (number) { case 1: printf("请输入需要查找学生的学号:\n"); scanf("%s",s1); for (i = 0; i < n; i++) { if (strcmp(stu[i].num, s1) == 0) { flag = 1; printf("学号\t\t姓名\t\t性别\t\t年龄\t\tC语言\t\t高数\t\t英语\n"); printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]); } }break; case 2: printf("请输入需要查找学生的姓名:\n"); scanf("%s",s1); for (i = 0; i < n; i++) { if (strcmp(stu[i].name, s1) == 0) { flag = 1; printf("学号\t\t姓名\t\t性别\t\t年龄\t\tC语言\t\t高数\t\t英语\n"); printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]); } }break; case 3:return; default:printf("请在1--3之间输入!\n"); } if (flag == 0) printf("找不到该学生,请重新输入!\n"); } }
- dlt函数(删除学生信息)
- 删除后,将n–,表示,学生总数减一
- 定义flag,判断是否找到对应的学生信息
void dlt() //删除信息 { int flag, i, j; char s1[100]; printf("请输入要删除学生的学号:\n"); getchar(); gets(s1); flag = 0; for (i = 0; i < n; i++) { if (strcmp(stu[i].num, s1) == 0) { flag = 1; for (j = i; j < n - 1; j++) { stu[j] = stu[j + 1]; } } if (flag == 1) break; } if (flag == 0) printf("未找到该学生!\n"); if (flag == 1) { printf("删除成功!\n"); n--; } system("pause"); }
- save函数(保存学生信息)
void save() //保存学生信息 { FILE* fp; char filename[100]; int i; printf("请输入要保存的文件名:\n"); scanf("%s", filename); if ((fp = fopen(filename, "w")) == NULL) { printf("打开文件失败!\n"); exit(0); } for (i = 0; i < n; i++) { if (fwrite(&stu[i], sizeof(struct STU), 1, fp) != 1) printf("保存失败!\n"); } printf("保存成功!\n"); fclose(fp); system("pause"); }
- display函数(显示当前信息)
- n为目前学生总数
void display() //显示当前信息 { int i; if (n == 0) printf("您好,现在暂无学生信息,请先添加学生信息!\n"); else { printf("现在共有%d名学生\n", n); printf("学号\t\t姓名\t\t性别\t\t年龄\t\tC语言\t\t高数\t\t英语\n"); for (i = 0; i < n; i++) { printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]); } } system("pause"); }
- modify函数(修改学生信息)
- 定义flag,判断需要修改的学生信息是否存在
void modify() //修改学生信息 { int flag, age, num, i; char number[100], sex[10]; float score1, score2, score3; char s1[100]; printf("请输入需要修改的学生姓名:\n"); getchar(); gets(s1); while (1) { flag = 0; for (i = 0; i < n; i++) { if (strcmp(s1, stu[i].name) == 0) { flag = 1; printf("***************************************************\n"); printf("*----1.修改学号-------- - -----2.修改性别-------*\n"); printf("*----3.修改年龄-------- - -----4.修改C语言成绩--*\n"); printf("*----5.修改高数成绩---- - -----6.修改英语成绩---*\n"); printf("*-------------------7.退出本菜单------------------*\n"); printf("***************************************************\n\n"); printf("请输入菜单编号:\n"); scanf("%d", &num); switch (num) { case 1: printf("请输入新学号:\n"); getchar(); gets(number); strcpy(stu[i].num, number); break; case 2: printf("请输入性别:\n"); getchar(); gets(sex); strcpy(stu[i].sex, sex); break; case 3: printf("请输入年龄:\n"); scanf("%d", &age); stu[i].age = age; break; case 4: printf("请输入C语言成绩:\n"); scanf("%f", &score1); stu[i].score[0] = score1; break; case 5: printf("请输入高数成绩:\n"); scanf("%f", &score2); stu[i].score[1] = score2; break; case 6: printf("请输入英语成绩:\n"); scanf("%f", &score3); stu[i].score[2] = score3; break; case 7:return; default:printf("请输入1--7之间的数字!\n"); } if (num > 0 && num < 8) printf("修改成功!\n"); break; } } if (flag == 0) { printf("未找到该学生,请重新输入学生姓名:\n"); gets(s1); } } system("pause"); }
- flush函数(刷新学生信息)
fread(&stu[i], sizeof(struct STU), 1, fp) == 1
表示函数成功执行,刷新成功
void flush() //刷新学生信息 { FILE* fp; char filename[100]; int i, k = 0; printf("请输入需要刷新的文件名:\n"); getchar(); gets(filename); if ((fp = fopen(filename, "r")) == NULL) { printf("打开文件失败!\n"); exit(0); } for (i = 0; i < N; i++) { if (fread(&stu[i], sizeof(struct STU), 1, fp) == 1) { k++; } } n = k; if (k == 0) printf("刷新失败!\n"); else printf("刷新成功!\n"); fclose(fp); system("pause"); }
完整代码如下
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 50 void menu(); void help(); void increase(); void search(); void dlt(); void save(); void display(); void modify(); void flush(); void exit(); int n = 0, t = 1; //n为总人数,t控制循环 struct STU { char num[100]; //学号 char name[100]; //姓名 char sex[10]; //性别 int age; //年龄 float score[3]; //成绩*3 }stu[N]; int main() { int number; while (t) { menu(); printf("请输入菜单编号:"); scanf("%d", &number); switch (number) { case 1:help(); break; //使用帮助 case 2:increase(); break; //增加学生信息 case 3:search(); break; //查询学生信息 case 4:dlt(); break; //删除学生信息 case 5:save(); break; //保存当前信息 case 6:display(); break; //显示当前信息 case 7:modify(); break; //修改学生信息 case 8:flush(); break; //刷新学生信息 case 9:exit(0); break; //退出 default:printf("输入有误!"); } } } void menu() //显示菜单 { printf("\n"); printf("*****************************************************\n"); printf("* 学生信息管理系统 *\n"); printf("*****************************************************\n"); printf("********************系统功能菜单*********************\n"); printf("----------------------- -------------------------\n"); printf("*****************************************************\n"); printf("** 1、使用帮助 * 2、增加学生信息 **\n"); printf("*****************************************************\n"); printf("** 3、查询学生信息 * 4、删除学生信息 **\n"); printf("*****************************************************\n"); printf("** 5、保存当前信息 * 6、显示当前信息 **\n"); printf("*****************************************************\n"); printf("** 7、修改学生信息 * 8、刷新学生信息 **\n"); printf("*****************************************************\n"); printf("** 9、退出系统 * **\n"); printf("************************* \n"); printf("----------------------- -------------------------\n"); } void help() //使用帮助 { printf("\n这是一个学生管理系统,为方便您更快了解它,请先阅读以下注意事项:\n"); printf("\n 注意事项: \n "); printf("\n 1、请根据提示进行操作!\n"); printf("\n 2、初次使用请先选择增加学生信息!\n"); printf("\n 3、修改或者增加学生信息后切记保存!\n"); printf("\n 4、如果数据有错误,请先修改再保存!\n"); printf("\n 5、若您之前使用过,下次进入系统请先刷新学生信息!\n"); printf("\n 6、在添加学生时,用两个字符代表不同的性别,比如男用‘M’代替,女用‘W’代替!\n"); printf("\n 7、保存或者刷新时,输入的文件名后缀请使用.txt,比如: stu.txt,系统会在源程序\n"); printf("\n “学生管理系统.exe”的相同目录建立一个.txt文件来保存学生信息,您可以查看\n"); printf("\n 该文件,但非专业人员不要轻易改动,否则会造成刷新数据异常或刷新失败!\n"); printf("\n 8、学生信息包括:姓名、学号、性别、年龄、C语言成绩、高数成绩、英语成绩等!\n"); printf("\n 9、使用遇到任何问题请与我们联系,电话:12345678\n"); printf("\n 10、最后感谢您的使用!\n"); system("pause"); //让系统暂停 } void increase() //增加学生信息 { int m, flag, i = n, j; printf("请输入待添加的学生人数:\n"); scanf("%d", &m); if (m > 0) { do { flag = 1; while (flag != 0) { flag = 0; printf("请输入第%d位学生的学号:\n", i + 1); getchar(); gets(stu[i].num); for (j = 0; j < i; j++) { if (strcmp(stu[i].num, stu[j].num) == 0) { printf("该学号已存在,请重新输入!\n"); flag = 1; break; } } } printf("请输入第%d位学生姓名:\n", i + 1); gets(stu[i].name); printf("请输入第%d位学生性别:\n", i + 1); gets(stu[i].sex); printf("请输入第%d位学生年龄:\n", i + 1); scanf("%d", &stu[i].age); printf("请输入第%d位学生C语言成绩:\n", i + 1); scanf("%f", &stu[i].score[0]); printf("请输入第%d位学生高等数学成绩:\n", i + 1); scanf("%f", &stu[i].score[1]); printf("请输入第%d位学生大学英语成绩:\n", i + 1); scanf("%f", &stu[i].score[2]); i++; } while (i < m + n); n += m; printf("添加完成!"); system("pause"); } } void search() //查询学生信息 { int number, flag, i; char s1[100]; printf("*****************************\n"); printf("**-------1.按学号查询------**\n"); printf("**-------2.按姓名查询------**\n"); printf("**-------3.退出本菜单------**\n"); printf("*****************************\n"); while (1) { flag = 0; printf("请输入要执行的操作序号:\n"); scanf("%d", &number); switch (number) { case 1: printf("请输入需要查找学生的学号:\n"); scanf("%s",s1); for (i = 0; i < n; i++) { if (strcmp(stu[i].num, s1) == 0) { flag = 1; printf("学号\t\t姓名\t\t性别\t\t年龄\t\tC语言\t\t高数\t\t英语\n"); printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]); } }break; case 2: printf("请输入需要查找学生的姓名:\n"); scanf("%s", s1); for (i = 0; i < n; i++) { if (strcmp(stu[i].name, s1) == 0) { flag = 1; printf("学号\t\t姓名\t\t性别\t\t年龄\t\tC语言\t\t高数\t\t英语\n"); printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]); } }break; case 3:return; default:printf("请在1--3之间输入!\n"); } if (flag == 0) printf("找不到该学生,请重新输入!\n"); } } void dlt() //删除信息 { int flag, i, j; char s1[100]; printf("请输入要删除学生的学号:\n"); getchar(); gets(s1); flag = 0; for (i = 0; i < n; i++) { if (strcmp(stu[i].num, s1) == 0) { flag = 1; for (j = i; j < n - 1; j++) { stu[j] = stu[j + 1]; } } if (flag == 1) break; } if (flag == 0) printf("未找到该学生!\n"); if (flag == 1) { printf("删除成功!\n"); n--; } system("pause"); } void save() //保存学生信息 { FILE* fp; char filename[100]; int i; printf("请输入要保存的文件名:\n"); scanf("%s", filename); if ((fp = fopen(filename, "w")) == NULL) { printf("打开文件失败!\n"); exit(0); } for (i = 0; i < n; i++) { if (fwrite(&stu[i], sizeof(struct STU), 1, fp) != 1) printf("保存失败!\n"); } printf("保存成功!\n"); fclose(fp); system("pause"); } void display() //显示当前信息 { int i; if (n == 0) printf("您好,现在暂无学生信息,请先添加学生信息!\n"); else { printf("现在共有%d名学生\n", n); printf("学号\t\t姓名\t\t性别\t\t年龄\t\tC语言\t\t高数\t\t英语\n"); for (i = 0; i < n; i++) { printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]); } } system("pause"); } void modify() //修改学生信息 { int flag, age, num, i; char number[100], sex[10]; float score1, score2, score3; char s1[100]; printf("请输入需要修改的学生姓名:\n"); getchar(); gets(s1); while (1) { flag = 0; for (i = 0; i < n; i++) { if (strcmp(s1, stu[i].name) == 0) { flag = 1; printf("***************************************************\n"); printf("*----1.修改学号-------- - -----2.修改性别-------*\n"); printf("*----3.修改年龄-------- - -----4.修改C语言成绩--*\n"); printf("*----5.修改高数成绩---- - -----6.修改英语成绩---*\n"); printf("*-------------------7.退出本菜单------------------*\n"); printf("***************************************************\n\n"); printf("请输入菜单编号:\n"); scanf("%d", &num); switch (num) { case 1: printf("请输入新学号:\n"); getchar(); gets(number); strcpy(stu[i].num, number); break; case 2: printf("请输入性别:\n"); getchar(); gets(sex); strcpy(stu[i].sex, sex); break; case 3: printf("请输入年龄:\n"); scanf("%d", &age); stu[i].age = age; break; case 4: printf("请输入C语言成绩:\n"); scanf("%f", &score1); stu[i].score[0] = score1; break; case 5: printf("请输入高数成绩:\n"); scanf("%f", &score2); stu[i].score[1] = score2; break; case 6: printf("请输入英语成绩:\n"); scanf("%f", &score3); stu[i].score[2] = score3; break; case 7:return; default:printf("请输入1--7之间的数字!\n"); } if (num > 0 && num < 8) printf("修改成功!\n"); break; } } if (flag == 0) { printf("未找到该学生,请重新输入学生姓名:\n"); gets(s1); } } system("pause"); } void flush() //刷新学生信息 { FILE* fp; char filename[100]; int i, k = 0; printf("请输入需要刷新的文件名:\n"); getchar(); gets(filename); if ((fp = fopen(filename, "r")) == NULL) { printf("打开文件失败!\n"); exit(0); } for (i = 0; i < N; i++) { if (fread(&stu[i], sizeof(struct STU), 1, fp) == 1) { k++; } } n = k; if (k == 0) printf("刷新失败!\n"); else printf("刷新成功!\n"); fclose(fp); system("pause"); }
-
Python_django_web学生管理系统(使用mysql数据库)
2018-03-23 14:22:21使用Python编程语言 Django MySQL数据库开发的web版学生管理系统,里面附带环境搭建的详细过程和开发过程中遇到的一些bug的讲解 -
学生管理系统Element UI版
2022-03-16 10:05:37学生管理系统Element UI版 前后端分离 增删改查一套 免费获取
- 💂 个人主页: 陶然同学
- 🤟 版权: 本文由【陶然同学】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
- 💅 想寻找共同成长的小伙伴,请点击【Java全栈开发社区】
搭建环境
-
创建vue项目:vue create day16_element_student
-
安装第三方组件:axios、element
npm install axios
vue add elment
SQL
tb_class:
CREATE TABLE `tb_class` ( `c_id` varchar(32) NOT NULL COMMENT '班级ID', `c_name` varchar(50) DEFAULT NULL COMMENT '班级名称', `desc` varchar(200) DEFAULT NULL COMMENT '班级描述', PRIMARY KEY (`c_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `tb_class`(`c_id`,`c_name`,`desc`) values ('c001','Java12班','花儿222'),('c002','Java34班','艺术223'),('c003','虚拟的班级','111'),('c004','222','22');
tb_student:
CREATE TABLE `tb_student` ( `s_id` varchar(32) NOT NULL COMMENT '学生ID', `sname` varchar(50) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年龄', `birthday` datetime DEFAULT NULL COMMENT '生日', `gender` char(1) DEFAULT NULL COMMENT '性别', `c_id` varchar(32) DEFAULT NULL, PRIMARY KEY (`s_id`), KEY `c_id` (`c_id`), CONSTRAINT `tb_student_ibfk_1` FOREIGN KEY (`c_id`) REFERENCES `tb_class` (`c_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `tb_student`(`s_id`,`sname`,`age`,`birthday`,`gender`,`c_id`) values ('s001','赵三',19,'2001-01-17 00:00:00','1','c001'),('s002','刘悦11',60,'1998-10-08 00:00:00','0','c002'),('s003','孙五',18,'2002-03-15 00:00:00','1','c001'),('s004','李三',19,'2001-04-14 00:00:00','0','c002'),('s005','梁桐',35,'2001-02-02 00:00:00','1','c002'),('s006','刘悦22',60,'2022-02-07 00:00:00','0','c002'),('s21','小红',20,'2022-03-20 00:00:00','0','c002');
tb_user:
DROP TABLE IF EXISTS `tb_user`; CREATE TABLE `tb_user` ( `u_id` varchar(32) NOT NULL COMMENT '用户编号', `user_name` varchar(50) DEFAULT NULL COMMENT '用户名', `password` varchar(32) DEFAULT NULL COMMENT '密码', `gender` bit(1) DEFAULT NULL COMMENT '性别,1表示男,0表示女', PRIMARY KEY (`u_id`), UNIQUE KEY `user_name` (`user_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `tb_user`(`u_id`,`user_name`,`password`,`gender`) values ('1','jack','1234',''),('10','jack5','1234',''),('2','rose','1234','\0'),('3','张三','1234',''),('4','tom','1234',''),('5','jack2','1234',''),('6','jack1','1234',''),('7','jack3','1234',''),('8','jack4','1234',''),('cd0d2523b5024589af142787de8a7b2a','jack6','1234','');
后端
链接:https://pan.baidu.com/s/1FAb2WUSUwpRuwIB9Spy3oQ
提取码:1234关键代码
ClassesController:
package com.czxy.controller; import com.czxy.domain.Classes; import com.czxy.service.ClassesService; import com.czxy.vo.BaseResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * @Author 刘嘉俊 * @Date 2022/2/21 */ @RestController @RequestMapping("/classes") @CrossOrigin public class ClassesController { @Resource private ClassesService classesService; @GetMapping public BaseResult<List<Classes>> list(){ List<Classes> list = classesService.selectAll(); return BaseResult.ok("查询成功",list); } @PostMapping public BaseResult add(@RequestBody Classes classes){ boolean result = classesService.add(classes); if(result){ return BaseResult.ok("添加成功"); } return BaseResult.error("添加失败"); } @GetMapping("/{cid}") public BaseResult<Classes> selectById(@PathVariable("cid") String cid){ Classes classes = classesService.selectById(cid); return BaseResult.ok("查询详情成功",classes); } @PutMapping public BaseResult update(@RequestBody Classes classes){ try { boolean result = classesService.update(classes); if(result){ return BaseResult.ok("查询成功"); } return BaseResult.error("更新失败"); } catch (Exception e) { e.printStackTrace(); return BaseResult.error(e.getMessage()); } } @DeleteMapping("/{classesId}") public BaseResult delete(@PathVariable("classesId") String classesId){ boolean result = classesService.deleteById(classesId); if(result){ return BaseResult.ok("删除成功"); } return BaseResult.error("删除失败"); } }
StudentController:
package com.czxy.controller; import com.czxy.domain.Student; import com.czxy.service.StudentService; import com.czxy.vo.BaseResult; import com.czxy.vo.StudentVo; import com.github.pagehelper.PageInfo; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * @Author 刘嘉俊 * @Date 2022/2/21 */ @RestController @RequestMapping("/student") @CrossOrigin public class StudentController { @Resource private StudentService studentService; @PostMapping("/condition/{pageSize}/{pageNum}") public BaseResult condition( @PathVariable("pageSize") Integer pageSize, @PathVariable("pageNum") Integer pageNum, @RequestBody StudentVo studentVo) { // 查询 PageInfo<Student> pageInfo = studentService.condition(pageSize,pageNum,studentVo); // 返回结果 return BaseResult.ok("查询成功", pageInfo); } @GetMapping("/{sid}") public BaseResult selectById(@PathVariable("sid") String sid){ Student student = studentService.selectById(sid); return BaseResult.ok("查询成功",student); } @PutMapping public BaseResult update(@RequestBody Student student){ System.out.println(student); try { boolean result = studentService.update(student); if(result){ return BaseResult.ok("更新成功"); }else{ return BaseResult.error("更新失败"); } } catch (Exception e) { e.printStackTrace(); return BaseResult.error(e.getMessage()); } } @DeleteMapping("/{sid}") public BaseResult delete(@PathVariable("sid")String sid){ System.out.println("sid" + sid); try { boolean result = studentService.delete(sid); if(result){ return BaseResult.ok("删除成功"); } return BaseResult.error("删除失败"); } catch (Exception e) { e.printStackTrace(); return BaseResult.error(e.getMessage()); } } @PostMapping public BaseResult addStudent(@RequestBody Student student){ try { boolean result = studentService.addStudent(student); if(result){ return BaseResult.ok("添加成功"); } return BaseResult.error("添加失败"); } catch (Exception e) { e.printStackTrace(); return BaseResult.error(e.getMessage()); } } @PostMapping("/save") public BaseResult save(@RequestBody Student student){ try { boolean result = studentService.saveOrUpdate(student); if(result){ return BaseResult.ok("编辑 | 添加 成功"); }else{ return BaseResult.error("编辑 | 添加 失败"); } } catch (Exception e) { e.printStackTrace(); return BaseResult.error(e.getMessage()); } } @PostMapping("/batchDelete") public BaseResult deleteIds(@RequestBody List<String> ids){ try { studentService.deleteIds(ids); return BaseResult.ok("删除成功"); } catch (Exception e) { e.printStackTrace(); return BaseResult.error(e.getMessage()); } } }
UserController:
package com.czxy.controller; import com.czxy.domain.User; import com.czxy.service.UserService; import com.czxy.vo.BaseResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * @Author 刘嘉俊 * @Date 2022/3/16 */ @RestController @RequestMapping("/user") @CrossOrigin public class UserController { @Resource private UserService userService; @PostMapping("/login") public BaseResult login(@RequestBody User user){ User loginUser = userService.login(user); if(loginUser != null){ return BaseResult.ok("登录成功",loginUser); }else{ return BaseResult.error("用户名或密码不匹配"); } } @PostMapping("/check") public BaseResult check(@RequestBody User user){ User findUser = userService.findByUsername(user.getUsername()); if(findUser == null){ return BaseResult.ok("用户名可用"); }else{ return BaseResult.error("用户名已存在"); } } }
查询所有前端
显示页面
创建页面
配置路由
const routes = [ { path: '/studentList', name: '学生列表', component: () => import('../views/StudentList.vue') } ]
访问路径
ajax操作
<template> <div> {{studentPage}} </div> </template> <script> // 导入axios import axios from 'axios' export default { data() { return { studentVo: { //条件查询 }, studentPage: { //分页数据 pageNum: 1, pageSize: 3 } } }, methods: { async condition() { // ajax查询 var url = `http://localhost:8888/student/condition/${this.studentPage.pageSize}/${this.studentPage.pageNum}` let {data:baseResult} = await axios.post(url, this.studentVo) // 保存结果 this.studentPage = baseResult.data } }, mounted() { // 查询 this.condition() }, } </script> <style> </style>
整合element ui
<template> <div> <!-- 表单start --> <el-form :inline="true" :model="studentVo" size="mini" > <el-form-item label="班级"> <el-select v-model="studentVo.cid" placeholder="请选择班级" clearable> <el-option label="Java12班" value="c001"></el-option> <el-option label="Java56班" value="c003"></el-option> </el-select> </el-form-item> <el-form-item label="姓名"> <el-input v-model="studentVo.sname" placeholder="请输入姓名" clearable></el-input> </el-form-item> <el-form-item label="年龄"> <el-col :span="11"> <el-input v-model="studentVo.startAge" placeholder="请输入开始年龄" clearable></el-input> </el-col> <el-col class="line" :span="2">-</el-col> <el-col :span="11"> <el-input v-model="studentVo.endAge" placeholder="请输入结束年龄" clearable></el-input> </el-col> </el-form-item> <el-form-item> <el-button type="primary" @click="condition(1)">查询</el-button> </el-form-item> </el-form> <!-- 表单end --> <!-- 表格start --> <el-table :data="studentPage.list" @selection-change="handleSelectionChange" style="width: 100%"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="sid" label="编号" width="180"> </el-table-column> <el-table-column prop="sname" label="姓名" width="180"> </el-table-column> <el-table-column prop="cid" label="班级" width="180"> </el-table-column> <el-table-column prop="age" label="年龄" width="180"> </el-table-column> <el-table-column prop="birthday" label="生日" width="180"> </el-table-column> <el-table-column prop="gender" label="性别" width="180"> <template slot-scope="scope"> {{scope.row.gender == 1 ? "男" : "女"}} </template> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button size="mini">编辑</el-button> <el-button size="mini" type="danger">删除</el-button> </template> </el-table-column> </el-table> <!-- 表格end --> <!-- 分页条start --> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="studentPage.pageNum" :page-sizes="[1, 2, 3, 5, 10]" :page-size="studentPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="studentPage.total"> </el-pagination> <!-- 分页条end --> </div> </template> <script> // 导入axios import axios from 'axios' export default { data() { return { studentVo: { //条件查询 }, studentPage: { //分页数据 pageNum: 1, pageSize: 3 } } }, methods: { async condition(num) { if(num) { this.studentPage.pageNum = num } // ajax查询 var url = `http://localhost:8888/student/condition/${this.studentPage.pageSize}/${this.studentPage.pageNum}` let {data:baseResult} = await axios.post(url, this.studentVo) // 保存结果 this.studentPage = baseResult.data }, handleSelectionChange(val) { console.info('批量删除') }, handleSizeChange(val) { console.log(`每页 ${val} 条`); this.studentPage.pageSize = val this.studentPage.pageNum = 1 // 重新开始 this.condition() }, handleCurrentChange(val) { console.log(`当前页: ${val}`); this.studentPage.pageNum = val // 重新开始 this.condition() } }, mounted() { // 查询 this.condition() }, } </script> <style> </style>
导航(嵌套路由)
-
步骤1:创建页面
-
创建登录页面(模板页面)
-
编写首页Home(上中下布局),编写导航(首页、班级管理/班级列表、学生管理/学生列表)
-
创建页面:ClassesList.vue
-
-
步骤2:配置路由
-
步骤3:编写布局容器和导航
步骤1:创建页面
-
创建登录页面(模板页面)
-
编写首页Home(上中下布局),编写导航(首页、班级管理/班级列表、学生管理/学生列表)
-
创建页面:ClassesList.vue
步骤2:配置路由
const routes = [ { path: '/', redirect: '/home' //重定向 }, { path: '/login', name: '登录', component: () => import('../views/Login.vue') }, { path: '/home', name: '首页', component: () => import('../views/Home.vue'), children: [ { path: '/studentList', name: '学生列表', component: () => import('../views/StudentList.vue') }, { path: '/classesList', name: '班级列表', component: () => import('../views/ClassesList.vue') } ] }, ]
步骤3:编写布局容器和导航
-
修改main.js,配置css加载顺序(配置重置样式)
- 修改App.vue,配置样式,上下自动填充
编写Home页面,完成导航和二级路由显示
<template> <el-container> <el-header class="home-header"> <!-- 导航start --> <el-menu :default-active="$route.path" router class="el-menu-demo" mode="horizontal" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b"> <el-menu-item index="/home">首页</el-menu-item> <el-submenu index="/classes"> <template slot="title">班级管理</template> <el-menu-item index="/classesList">班级列表</el-menu-item> </el-submenu> <el-submenu index="/student"> <template slot="title">学生管理</template> <el-menu-item index="/studentList">学生列表</el-menu-item> </el-submenu> </el-menu> <!-- 导航end --> </el-header> <el-main> <!-- 二级路由 --> <router-view></router-view> </el-main> <el-footer>学生管理系统Element UI 版</el-footer> </el-container> </template> <script> export default { } </script> <style> .el-container { height: 100%; } .home-header { padding: 0; } .el-header, .el-footer { background-color: #B3C0D1; color: #333; text-align: center; line-height: 60px; } </style>
编辑学生(弹出框)
分析
-
页面布局:
-
添加一个“添加”按钮,点击可以显示弹出层
-
拷贝添加的弹出框Dialog,且要求表单(班级列表、id、名称、年龄、生日、性别)
-
-
提供student变量,用于表单数据的绑定
-
ajax操作
-
查询班级列表
-
添加按钮绑定事件,进行ajax提交(成功:刷新列表关闭弹出框,失败:错误提示,但不关闭弹出框)
-
页面布局
页面布局:
添加一个“添加”按钮,点击可以显示弹出层
拷贝添加的弹出框Dialog,且要求表单(班级列表、id、名称、年龄、生日、性别)
<!-- 添加的弹出框start --> <el-dialog title="添加学生" :visible.sync="addStudentDialogVisible"> <el-form :model="student" label-width="80px"> <el-form-item label="班级列表" > <el-select v-model="student.cid" placeholder="请选择班级"> <el-option label="区域一" value="shanghai"></el-option> </el-select> </el-form-item> <el-form-item label="id" > <el-input v-model="student.sid"></el-input> </el-form-item> <el-form-item label="名称" > <el-input v-model="student.sname"></el-input> </el-form-item> <el-form-item label="生日" > <el-date-picker type="date" placeholder="选择生日" v-model="student.birthday" style="width: 100%;"></el-date-picker> </el-form-item> <el-form-item label="年龄" > <el-input v-model="student.age"></el-input> </el-form-item> <el-form-item label="性别" > <el-radio-group v-model="student.gender"> <el-radio label="1">男</el-radio> <el-radio label="0">女</el-radio> </el-radio-group> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="addStudentDialogVisible = false">取 消</el-button> <el-button type="primary" @click="addStudentDialogVisible = false">确 定</el-button> </div> </el-dialog> <!-- 添加的弹出框end -->
提供student变量,用于表单数据的绑定
添加:ajax操作
查询班级列表
添加按钮绑定事件,进行ajax提交(成功:刷新列表关闭弹出框,失败:错误提示,但不关闭弹出框)
<template> <div> <!-- 表单start --> <el-form :inline="true" :model="studentVo" size="mini" > <el-form-item label="班级"> <el-select v-model="studentVo.cid" placeholder="请选择班级" clearable> <el-option v-for="(classes,index) in classesList" :key="index" :label="classes.cname" :value="classes.cid"></el-option> </el-select> </el-form-item> <el-form-item label="姓名"> <el-input v-model="studentVo.sname" placeholder="请输入姓名" clearable></el-input> </el-form-item> <el-form-item label="年龄"> <el-col :span="11"> <el-input v-model="studentVo.startAge" placeholder="请输入开始年龄" clearable></el-input> </el-col> <el-col class="line" :span="2">-</el-col> <el-col :span="11"> <el-input v-model="studentVo.endAge" placeholder="请输入结束年龄" clearable></el-input> </el-col> </el-form-item> <el-form-item> <el-button type="primary" @click="condition(1)">查询</el-button> </el-form-item> </el-form> <!-- 表单end --> <el-button type="primary" @click="openAddDialog" >添加</el-button> <!-- 添加的弹出框start --> <el-dialog title="添加学生" :visible.sync="addStudentDialogVisible"> <el-form :model="student" label-width="80px"> <el-form-item label="班级列表" > <el-select v-model="student.cid" placeholder="请选择班级"> <el-option v-for="(classes,index) in classesList" :key="index" :label="classes.cname" :value="classes.cid"></el-option> </el-select> </el-form-item> <el-form-item label="id" > <el-input v-model="student.sid"></el-input> </el-form-item> <el-form-item label="名称" > <el-input v-model="student.sname"></el-input> </el-form-item> <el-form-item label="生日" > <el-date-picker type="date" placeholder="选择生日" v-model="student.birthday" style="width: 100%;"></el-date-picker> </el-form-item> <el-form-item label="年龄" > <el-input v-model="student.age"></el-input> </el-form-item> <el-form-item label="性别" > <el-radio-group v-model="student.gender"> <el-radio label="1">男</el-radio> <el-radio label="0">女</el-radio> </el-radio-group> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="addStudentDialogVisible = false">取 消</el-button> <el-button type="primary" @click="addStudent">确 定</el-button> </div> </el-dialog> <!-- 添加的弹出框end --> <!-- 表格start --> <el-table :data="studentPage.list" @selection-change="handleSelectionChange" style="width: 100%"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="sid" label="编号" width="180"> </el-table-column> <el-table-column prop="sname" label="姓名" width="180"> </el-table-column> <el-table-column prop="cid" label="班级" width="180"> </el-table-column> <el-table-column prop="age" label="年龄" width="180"> </el-table-column> <el-table-column prop="birthday" label="生日" width="180"> </el-table-column> <el-table-column prop="gender" label="性别" width="180"> <template slot-scope="scope"> {{scope.row.gender == 1 ? "男" : "女"}} </template> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button size="mini">编辑</el-button> <el-button size="mini" type="danger">删除</el-button> </template> </el-table-column> </el-table> <!-- 表格end --> <!-- 分页条start --> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="studentPage.pageNum" :page-sizes="[1, 2, 3, 5, 10]" :page-size="studentPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="studentPage.total"> </el-pagination> <!-- 分页条end --> </div> </template> <script> // 导入axios import axios from 'axios' export default { data() { return { studentVo: { //条件查询 }, studentPage: { //分页数据 pageNum: 1, pageSize: 3 }, addStudentDialogVisible: false, //添加弹出框的控制变量 student: { //添加表单对象 }, classesList: [], // 所有班级 } }, methods: { async condition(num) { if(num) { this.studentPage.pageNum = num } // ajax查询 var url = `http://localhost:8888/student/condition/${this.studentPage.pageSize}/${this.studentPage.pageNum}` let {data:baseResult} = await axios.post(url, this.studentVo) // 保存结果 this.studentPage = baseResult.data }, handleSelectionChange(val) { console.info('批量删除') }, handleSizeChange(val) { console.log(`每页 ${val} 条`); this.studentPage.pageSize = val this.studentPage.pageNum = 1 // 重新开始 this.condition() }, handleCurrentChange(val) { console.log(`当前页: ${val}`); this.studentPage.pageNum = val // 重新开始 this.condition() }, async selectAllClasses() { // ajax 查询所有的班级 var url = `http://localhost:8888/classes` let { data: baseResult } = await axios.get(url) // 保存结果 this.classesList = baseResult.data }, openAddDialog() { // 打开弹出框 this.addStudentDialogVisible = true // 清空表单数据 this.student = {} // 查询班级列表 this.selectAllClasses() }, async addStudent() { // 添加学生ajax var url = `http://localhost:8888/student/saveOrUpdate` let { data: baseResult } = await axios.post(url, this.student) // 处理结果 if(baseResult.code == 20000) { // 成功:刷新页面,成功提示,关闭弹出框 this.condition() this.$message.success(baseResult.message) this.addStudentDialogVisible = false } else { // 失败:失败提示 this.$message.error(baseResult.message) } } }, mounted() { // 查询班级 this.selectAllClasses() // 查询学生 this.condition() }, } </script> <style> </style>
修改:ajax操作
点击修改按钮,通过id查询详情,显示弹出框,并自动填充表单。
<template> <div> <!-- 表单start --> <el-form :inline="true" :model="studentVo" size="mini" > <el-form-item label="班级"> <el-select v-model="studentVo.cid" placeholder="请选择班级" clearable> <el-option v-for="(classes,index) in classesList" :key="index" :label="classes.cname" :value="classes.cid"></el-option> </el-select> </el-form-item> <el-form-item label="姓名"> <el-input v-model="studentVo.sname" placeholder="请输入姓名" clearable></el-input> </el-form-item> <el-form-item label="年龄"> <el-col :span="11"> <el-input v-model="studentVo.startAge" placeholder="请输入开始年龄" clearable></el-input> </el-col> <el-col class="line" :span="2">-</el-col> <el-col :span="11"> <el-input v-model="studentVo.endAge" placeholder="请输入结束年龄" clearable></el-input> </el-col> </el-form-item> <el-form-item> <el-button type="primary" @click="condition(1)">查询</el-button> </el-form-item> </el-form> <!-- 表单end --> <el-button type="primary" @click="openAddDialog" >添加</el-button> <!-- 添加的弹出框start --> <el-dialog :title="dialogTitle" :visible.sync="addStudentDialogVisible"> <el-form :model="student" label-width="80px"> <el-form-item label="班级列表" > <el-select v-model="student.cid" placeholder="请选择班级"> <el-option v-for="(classes,index) in classesList" :key="index" :label="classes.cname" :value="classes.cid"></el-option> </el-select> </el-form-item> <el-form-item label="id" > <el-input v-model="student.sid"></el-input> </el-form-item> <el-form-item label="名称" > <el-input v-model="student.sname"></el-input> </el-form-item> <el-form-item label="生日" > <el-date-picker type="date" placeholder="选择生日" v-model="student.birthday" style="width: 100%;"></el-date-picker> </el-form-item> <el-form-item label="年龄" > <el-input v-model="student.age"></el-input> </el-form-item> <el-form-item label="性别" > <el-radio-group v-model="student.gender"> <el-radio label="1">男</el-radio> <el-radio label="0">女</el-radio> </el-radio-group> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="addStudentDialogVisible = false">取 消</el-button> <el-button type="primary" @click="addStudent">确 定</el-button> </div> </el-dialog> <!-- 添加的弹出框end --> <!-- 表格start --> <el-table :data="studentPage.list" @selection-change="handleSelectionChange" style="width: 100%"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="sid" label="编号" width="180"> </el-table-column> <el-table-column prop="sname" label="姓名" width="180"> </el-table-column> <el-table-column prop="cid" label="班级" width="180"> </el-table-column> <el-table-column prop="age" label="年龄" width="180"> </el-table-column> <el-table-column prop="birthday" label="生日" width="180"> </el-table-column> <el-table-column prop="gender" label="性别" width="180"> <template slot-scope="scope"> {{scope.row.gender == 1 ? "男" : "女"}} </template> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button size="mini" @click="openUpdateDialog(scope.row.sid)">编辑</el-button> <el-button size="mini" type="danger">删除</el-button> </template> </el-table-column> </el-table> <!-- 表格end --> <!-- 分页条start --> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="studentPage.pageNum" :page-sizes="[1, 2, 3, 5, 10]" :page-size="studentPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="studentPage.total"> </el-pagination> <!-- 分页条end --> </div> </template> <script> // 导入axios import axios from 'axios' export default { data() { return { studentVo: { //条件查询 }, studentPage: { //分页数据 pageNum: 1, pageSize: 3 }, addStudentDialogVisible: false, //添加弹出框的控制变量 student: { //添加表单对象 }, classesList: [], // 所有班级 dialogTitle: '', // 弹出框的标题 } }, methods: { async condition(num) { if(num) { this.studentPage.pageNum = num } // ajax查询 var url = `http://localhost:8888/student/condition/${this.studentPage.pageSize}/${this.studentPage.pageNum}` let {data:baseResult} = await axios.post(url, this.studentVo) // 保存结果 this.studentPage = baseResult.data }, handleSelectionChange(val) { console.info('批量删除') }, handleSizeChange(val) { console.log(`每页 ${val} 条`); this.studentPage.pageSize = val this.studentPage.pageNum = 1 // 重新开始 this.condition() }, handleCurrentChange(val) { console.log(`当前页: ${val}`); this.studentPage.pageNum = val // 重新开始 this.condition() }, async selectAllClasses() { // ajax 查询所有的班级 var url = `http://localhost:8888/classes` let { data: baseResult } = await axios.get(url) // 保存结果 this.classesList = baseResult.data }, openAddDialog() { // 设置标题 this.dialogTitle = '添加学生' // 打开弹出框 this.addStudentDialogVisible = true // 清空表单数据 this.student = {} // 查询班级列表 this.selectAllClasses() }, async openUpdateDialog(sid) { // 设置标题 this.dialogTitle = '修改学生' // 通过id查询详情 var url = `http://localhost:8888/student/${sid}` let { data: baseResult } = await axios.get(url) this.student = baseResult.data // 查询班级列表 this.selectAllClasses() // 打开弹出框 this.addStudentDialogVisible = true }, async addStudent() { // 添加学生ajax var url = `http://localhost:8888/student/saveOrUpdate` let { data: baseResult } = await axios.post(url, this.student) // 处理结果 if(baseResult.code == 20000) { // 成功:刷新页面,成功提示,关闭弹出框 this.condition() this.$message.success(baseResult.message) this.addStudentDialogVisible = false } else { // 失败:失败提示 this.$message.error(baseResult.message) } } }, mounted() { // 查询班级 this.selectAllClasses() // 查询学生 this.condition() }, } </script> <style> </style>
源码获取
-
学生管理系统(软件工程)
2022-01-19 13:51:41学生管理系统(软件工程) -
c#学生管理系统
2012-10-24 23:09:28c#学生管理系统,和毕业设计差不多了,大一时做的,里面有详细的文档说明,如果觉得可以,请评分 学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。 本文介绍了学生... -
学生管理系统UML图合集
2011-11-27 15:49:15分管理员,老师,学生三个角色。 老师可以录入成绩,查看课程,查看评教结果。 学生可以选课,评教,查看课表。 管理员拥有老师和学生的功能,另外还可以注册学生,对老师和学生的个人信息进行修改。 -
学生成绩管理系统+javaweb毕业设计
2018-11-17 17:45:14该学生成绩管理系统(SSMS),涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。该系统分为三大类:管理员、学生、教师。该项目是基于javaweb进行开发,很适合刚学完javaweb的... -
Java实现学生管理系统
2021-01-21 17:04:32针对目前所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘... -
javaweb实现学生管理系统
2021-08-04 21:51:201.所用技术: jsp+servlet+jdbc+mysql+jquery+bootstrap+ajax 2.功能实现 ...用户输入网址,过滤器进行判断是否登录,没有登录则跳转到登录页面 ... ...首页进行分页显示所有学生信息: 4.条件查询 例如 -
手把手教你用Python制作学生管理系统,附源码+详细讲解
2021-12-16 21:05:21很多同学大概不知道可以用Python制作学校的管理系统,Python的应用范围真的很广呢,所以大家加油学起来吧,每天一个小知识,迟早变成Python大神! 喜欢记得点赞、评论、收藏哦~ -
java 学生管理系统源码
2015-07-23 15:33:54很多Java初学者都梦寐自己做个学生管理系统,但不知道去哪儿找源码参考,上面给大家提供了Java学生管理系统源码! -
用Java代码实现学生管理系统
2020-12-03 19:18:45学生管理系统 1.1 项目演示 1.2 学生管理系统实现思路 定义学生类 主界面的代码编写 添加学生的代码编写 查看学生的代码编写 删除学生的的代码编写 修改学生的代码编写 1.3 定义学生类 学生类: Student 成员... -
Java基础——学生管理系统
2019-05-13 17:28:14学生管理系统的主界面的代码编写 C. 学生管理系统的查看所有学生的代码编写 D. 学生管理系统的添加学生的代码编写 E. 学生管理系统的删除学生的代码编写 F. 学生管理系统的修改学生的代码编写 代码: 学生类:... -
用Java实现简单的学生管理系统
2021-08-12 20:29:15大家好,今天我和大家分享一下用Java中的数组和ArrayList集合分别来实现简单的学生管理系统。过几期,我和大家分享一下用Java和数据库来实现学生管理系统。 一个简单的学生管理系统应该包括:学生对象,对学生对象... -
Java实现学生管理系统(完整代码)
2021-11-26 15:55:28完成一个综合案例:学生管理系统!该系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要修改学生... -
Python实现学生管理系统(功能全面)
2019-07-08 13:20:47标题Python实现学生管理系统 功能描述 1.分为两个界面:(1)登录和注册界面 (2)学生管理系统界面 2.登录功能和之前发布的图书管理系统相同,登录成功后可进入学生管理系统界面,这里不再叙述 3.系统功能(1)... -
基于python+django学生信息管理系统设计与实现(含程序源码和毕业设计)
2021-02-22 10:22:02系统初始界面;登陆界面设计 ;学生信息录入;学生信息修改;学生信息查询;学生成绩录入;修改学生成绩;学生成绩查询 ;用户管理 该项目用PyCharm 可直接打开,数据库内嵌,可直接用 -
学生管理系统(Java版)
2021-10-05 10:37:42学生管理系统(Java版) 前言:这个是大二做的课设(还是学生管理系统…),理论上虽然是4个人一组一起做的,但是,注意这个“但是”,还是我一个人承担了所有…代码和文档基本都是我一个人写的,当初直接肝得吐血,... -
Vue项目:学生管理系统
2022-02-28 21:54:54Vue项目:学生管理系统 增删改查一套 免费获取 -
java学生管理系统界面设计
2019-07-05 13:16:30关于学生管理系统的界面设计:代码如下: 数据库设计 DROP TABLE IF EXISTS `stu`; CREATE TABLE `stu` ( `stuId` int(11) NOT NULL AUTO_INCREMENT, `stuName` varchar(30) DEFAULT NULL, `stuSex` varchar(30) ... -
学生管理系统 增删改查
2019-02-07 15:49:22学生管理系统 步骤如下: A:定义学生类 B:学生管理系统的主界面的代码编写 C:学生管理系统的查看所有学生的代码编写 D:学生管理系统的添加学生的代码编写 E:学生管理系统的删除学生的代码编写 F:学生管理系统的修改... -
Android 学生管理系统
2021-06-29 10:21:50Android学生管理系统 由android + mysql实现 1.需求分析 功能需求和页面需求两天没有细想,想到啥功能写啥功能想到啥界面写啥界面 2.系统设计 总体界面结构参照了微信的设计结构,主要功能包括管理员的注册和登录,... -
C++课程设计:学生管理系统设计
2021-09-06 12:19:16遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,了解当前常用的软件开发工具(Visual 2017),培养学生解决实际问题的能力。 二、考核方式及办法: 完成包括从概要设计、详细设计、代码编写、程序... -
mfc简易的学生管理系统
2020-07-02 00:33:52最近选修了mfc课程,因为疫情原因就写个小管理系统提交即可,忙了几天用vs2013和access写了简易的学生管理系统,第一次写个小系统并且临近期末作业较多这个难免会有些bug,仅供参考,没有安装Vs2013和access数据库的... -
用eclipse写的学生管理系统
2020-12-04 10:33:15##写一个学生管理系统 定义一个学生类 Student package e; /* 这是我的学生类 */ public class Student { //学号 private String id; //姓名 private String name; //年龄 private String age; //居住地 private ...