一个较为完整的学生信息管理系统

大致要求如下:

1、实现登录注册功能,程序一进来如果没有账号就选择注册,如果有账号就直接登录。

2、账号就是你的电话号码,不能小于11位 只能是13 、15、18开头的。

3、密码不能小于6位 不能大于10位, 首字母必须是大写字母开头,密码不能是纯数字,必须有大写字母和小写字母和数字组成。

4、确认密码必须与设置的密码一致。

5、邮箱号码 必须进行验证 只能是 QQ 和163 邮箱

6、个人简介必须使用可变字符串进行保存设置(StringBuilder)

7、年龄、性别、成绩家庭地址、出生年月日,这些属性都是根据你输入的身份证号码自行进行生成赋值。

来看代码吧

创建一个接口类,声明一些必要方法

package com.xingyun.studentdao;import com.xingyun.bean.StudentBean;
import com.xingyun.bean.UserBean;public interface StudentDao {void Menu();      //菜单void registered();      //注册void login();       //登录void add();         //新增信息void getAll();        //查询(根据ID、姓名查询、也可以查询全部)void UpDate();     //修改(根据ID、姓名修改)void delete();     //删除(根据ID、姓名删除)}

创建一个账号密码的封装类,用来实现对象的创建

package com.xingyun.bean;public class UserBean {private String user_name;        //账号private String password;        //密码private int grade;              //等级        1、老师   2、学生public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public UserBean(String user_name, String password, int grade) {this.user_name = user_name;this.password = password;this.grade = grade;}public int getGrade() {return grade;}public void setGrade(int grade) {this.grade = grade;}public UserBean() {}@Overridepublic String toString() {return "UserBean [user_name=" + user_name + ", password=" + password + ", grade=" + grade + "]";}}

创建一个学生的封装类,用来创建学生对象

package com.xingyun.bean;import java.util.Arrays;public class StudentBean {private int s_id;     //学号private String name;        //姓名private int age;            //年龄private String sex;         //性别private String id_card;     //身份证号private String addres;        //地址private String Date;        //出生日期private String mailbox;           //邮箱(qq邮箱和163邮箱)private StringBuilder Personal_profile;    //个人简介//私有属性的封装public String getMailbox() {return mailbox;}public void setMailbox(String mailbox) {this.mailbox = mailbox;}public int getS_id() {return s_id;}public void setS_id(int s_id) {this.s_id = s_id;}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 getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getId_card() {return id_card;}public void setId_card(String id_card) {this.id_card = id_card;}public String getAddres() {return addres;}public void setAddres(String addres) {this.addres = addres;}public String getDate() {return Date;}public void setDate(String date) {Date = date;}public StringBuilder getPersonal_profile() {return Personal_profile;}public void setPersonal_profile(StringBuilder personal_profile) {Personal_profile = personal_profile;}//有参构造方法//无参构造方法public StudentBean() {}public StudentBean(int s_id, String name, int age, String sex, String id_card, String addres, String date,String mailbox, StringBuilder personal_profile) {super();this.s_id = s_id;this.name = name;this.age = age;this.sex = sex;this.id_card = id_card;this.addres = addres;this.Date = date;this.mailbox = mailbox;this.Personal_profile = personal_profile;}@Overridepublic String toString() {return " 学号:" + s_id + "\t姓名:" + name + "\t   年龄:" + age + "\t性别:" + sex + "\n身份证:"+ id_card + "\t地址:" + addres + "\n出生日期:" + Date + "\t邮箱:" + mailbox + "\n个人简介:"+ Personal_profile ;}}

来一个专门调用的测试类,代码较少,放在前面这里

package com.xingyun.test;import com.xingyun.bean.StudentBean;
import com.xingyun.bean.UserBean;
import com.xingyun.studentdaoimp.StudentDaoImp;public class StudentTest {public static void main(String[] args) {StudentDaoImp sti=new StudentDaoImp();sti.Menu();}}

主要方法

第一层菜单

public void Menu() { //向上转型,来调用自身重写父类的方法StudentDao stu = new StudentDaoImp();boolean bool = true;while (bool) {System.out.println("1、注册账号");System.out.println("2、直接登录");System.out.println("3、退出");System.out.println("*******************");int exchange = input.nextInt();switch (exchange) {case 1://使用对象调用注册方法stu.registered();       break;case 2://使用对象调用登录方法stu.login();break;default://输入其他就会结束程序运行bool = false;break;}} // 最外层while循环的}

注册的实现

@Overridepublic void registered() {//在方法内创建账号密码的对象,方便每一次调用此方法的时候都是新数据存在us里面,然后方便存入集合中,以达到数据不冲突UserBean us = new UserBean();boolean bool4 = true;tiaozhuan: while (bool4) {//账号有学生和老师两种不同权限System.out.println("请选择你的身份\t1、老师\t 2、学生");int exchange = input.nextInt();switch (exchange) {case 1:System.out.println("请输入教职工验证码:");//要想注册教职工账号,需要完成验证码验证String api = input.next();if (api.equals(API)) {//验证成功会给账号对象的等级属性赋值为1,1代表教职工权限,2代表学生权限us.setGrade(1);System.out.println("验证成功:");break tiaozhuan;} else {//验证失败就会返回主界面System.out.println("验证失败!请重新选择:");//跳出本次输出,进入下一次输入continue tiaozhuan;}default://输入其他的就默认为学生身份注册,会给等级属性赋值为2us.setGrade(2);//结束注册界面的 操作,进入注册界面break tiaozhuan;}}System.out.println("\t\t\t\t !注意,账号需要是你的手机号");jieshu1: while (true) {//存储键盘输入的账号String user_name;boolean bool = true;jieshu: while (bool) {System.out.print("注册账号:");user_name = input.next();//将字符串转为字符数组,方便判断是否为纯数字char[] charArray2 = user_name.toCharArray();//进行手机号验证------要求:11位纯数字数字,并且开头前两位为13、15、18方可满足标准if (user_name.length() == 11 && (user_name.substring(0, 2).equals("13")|| user_name.substring(0, 2).equals("15") || user_name.substring(0, 2).equals("18"))) {//判断是否为纯数字for(int e=0;e<charArray2.length;e++) {if(charArray2[e]>='0'&&charArray2[e]<='9') {}else {System.out.println("含有非法字符!请重新输入:");continue jieshu;}}//判断该账号是否已经存在Iterator<UserBean> iterator = list_us.iterator();while (iterator.hasNext()) {if (user_name.equals(iterator.next().getUser_name())) {System.out.println("该账号已经存在!请重新输入:");break jieshu;}}System.out.println("账号格式正确!");} else {System.out.println("账号格式不标准!请重新输入:");break jieshu;}//密码要求:6-10位之间,首字母大写,含数字、小写字母、System.out.print("注册密码:");System.out.println("\t\t\t\t !注意,密码首字母大写,还需要包含小写字母和数字,位数在6-10之间");String password = null;//用来计数相当于int j = 0, k = 0;loop: while (true) {password = input.next();//判断密码位数是否为6-10位if (password.length() >= 6 && password.length() <= 10) {j = k = 0;//是否首字母大写if (password.charAt(0) >= 'A' && password.charAt(0) <= 'Z') {char[] charArray = password.toCharArray();boolean bol = true, bol1 = true;j = k = 0;//是否含有数字for (int i = 0; i < charArray.length; i++) {if (charArray[i] >= '0' && charArray[i] <= '9') {bol = false;} else {       //不满足条件就重新输入j++;if (j == charArray.length) {System.out.println("密码缺少数字,请重新输入:");continue loop;}}if (charArray[i] >= 'a' && charArray[i] <= 'z') {bol1 = false;} else {k++;if (k == charArray.length) {System.out.println("密码缺少小写字母,请重新输入:");continue loop;}}if (!bol && !bol1) {System.out.println("密码格式正确!");break loop;}}} else {System.out.println("密码首字母非大写:请重新输入");continue loop;}} else {System.out.println("密码位数不对!请重新输入:");continue loop;}}//确认密码和前面注册的一样,只是为了加强用户的记忆System.out.println("确认密码:");boolean bol = true;int i = 1;while (i < 4) {//验证成功就返回主界面String pwd = input.next();if (password.equals(pwd)) {System.out.println("验证成功!");bol = false;break;} else {//如果输入确认密码超过三次,就会返回主界面,重新注册if (3 - i != 0) {System.out.println("你还有" + (3 - i) + "次机会!");} else {System.out.println("你没有机会了!");}//计数器i++;}}if (bol) {System.out.println("验证错误!请重新注册");break jieshu;}//能走到这一步说明满足前面所有条件,就可以通过对象的形式存入到集合中了us.setUser_name(user_name);us.setPassword(password);list_us.add(us);System.out.println("注册成功!");break jieshu1;}}}

登录操作

 @Overridepublic void login() {boolean boo = true;loop: while (boo) {boolean bol = true;System.out.print("账号:");String user_name = input.next();System.out.print("密码:");String password = input.next();//验证码--随机函数实现//random类的随机数   boolean lop=true;while(lop) {Random rd=new Random();//产生一个指定范围内的随机数,类型可以根据自己需求改变int nextint=rd.nextInt(9);int nextint1=rd.nextInt(9);int nextint2=rd.nextInt(9);int nextint3=rd.nextInt(9);//拼接为字符串型String num=""+nextint+""+nextint1+""+nextint2+""+nextint3;System.out.println(num);System.out.print("请输入验证码:");String Code=input.next();if(num.equals(Code)) {System.out.println("验证成功");break;}else {System.out.println("验证失败!");continue;}}//遍历集合Iterator<UserBean> iterator = list_us.iterator();while (iterator.hasNext()) {//接受集合返回的对象UserBean next = iterator.next();boolean bool = true;loop0: while (bool) {//比较账号密码是否正确if (user_name.equals(next.getUser_name()) && password.equals(next.getPassword())) {bol = false;//确定出此账号的权限if (next.getGrade() == 1) {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、退出");System.out.println("-------------");int exchange1 = input.nextInt();switch (exchange1) {case 1://添加学生信息add();continue loop0;case 2://删除学生信息delete();continue loop0;case 3://修改学生信息UpDate();continue loop0;case 4://查找学生信息getAll();continue loop0;default://输入其他的返回主界面boo = false;break loop;}}//学生权限 if (next.getGrade() == 2) {System.out.println("同学你好!");//只能进行查询操作getAll();boo = false;break loop;}}break;}}if (boo) {System.out.println("账号密码错误:1、继续输入 \t 2、离开去注册");int exchange = input.nextInt();switch (exchange) {case 1://重新登录continue loop;default://返回主界面去注册账号break loop;}}// 登录成功的功能:}}

增加学生信息的方法

@Overridepublic void add() {System.out.println("*****************");System.out.println("开始添加学生信息:");System.out.println("*****************");boolean bool = true;loop: while (bool) {//创建学生对象来存储每一次添加的数据StudentBean st = new StudentBean();//学生的id自增的实现。与上面的 全局属性对应st.setS_id(id);id = id + 1;System.out.print("姓名:");String name = input.next();st.setName(name);System.out.print("身份证号码:");String input_id = input.next();//将身份证号码转为字符数组,方便进行判断操作   ----------------------标准:18位数字,前17位必须是数字,最后一位可以是数字,也可以是字母,字母只能为Xchar[] charArray = input_id.toCharArray();//判断位数是否为18位if (input_id.length() != 18) {System.out.println("位数不对!");//不满足则出现输入continue loop;}//判断是否为数字组成for (int i = 0; i < charArray.length; i++) {//精确到前17位if (i < charArray.length - 1) {if (charArray[i] >= '0' && charArray[i] <= '9') {} else {System.out.println("不是标准身份证格式!请重新输入:");continue loop;}//最后一位可以为数字,或者X} else if (charArray[i] == 'X' || (charArray[i] >= '0' && charArray[i] <= '9')) {System.out.println("输入格式正确!");//输入正确之后判断此身份证是否已经添加过Iterator<StudentBean> iterator1 = list_st.iterator();while (iterator1.hasNext()) {StudentBean next = iterator1.next();//身份证号码不可能会出现重复的情况if (input_id.equals(next.getId_card())) {System.out.println("此人已经存在,请重新输入:");continue loop;}}//执行到这里说明身份证号码满足要求,便可放入对象中st.setId_card(input_id);}}// 地址int nativePlaceCode = Integer.parseInt(input_id.substring(0, 6)); // 身份证前六位// 调用NativePlace.getNativePlace方法,将nativePlaceCode参数传递进去,进行地域判断String nativePlace = NativePlace.getNativePlace(nativePlaceCode); // 地址st.setAddres(nativePlace);String substring = input_id.substring(6, 10); // 出生年份int i = Integer.parseInt(substring);// 获取当前年份 得出最新年龄Calendar cl = Calendar.getInstance();int year = cl.get(Calendar.YEAR);int age = year - i;st.setAge(age);//获取身份证上面的日期信息String brith_m = input_id.substring(10, 12); // 出生日期String brith_d = input_id.substring(12, 14);//利用拼接来改变成我们想要的格式String brith = substring + "年" + brith_m + "月" + brith_d + "日";st.setDate(brith);// 性别----------倒数第二位奇数为男,偶数为女int s = Integer.parseInt(input_id.substring(16, 17));if (s % 2 == 0) {st.setSex("女");} else {st.setSex("男");}boolean key = true;//邮箱格式----qq-后缀为@qq.com,并且前面不含数字,-----163---后缀为@163.comtiaozhuan1: while (key) {System.out.println("*********************************");System.out.println("邮箱:\t\t 1、qq邮箱     \t   2、163邮箱");int exchange2 = input.nextInt();switch (exchange2) {case 1:tiaozhuan: while (true) {System.out.print("qq邮箱:");String mailbox = input.next();//判断后缀是否为@qq.comif (mailbox.endsWith("@qq.com")) {char[] charArray2 = mailbox.toCharArray();//判断除去后缀剩余的数字里面是否含有字符for (int j = 0; j < charArray2.length - 7; j++) {if (charArray2[j] >= '0' && charArray2[j] <= '9') {System.out.println("添加成功!");st.setMailbox(mailbox);key = false;break tiaozhuan1;} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}case 2:tiaozhuan: while (true) {System.out.print("163邮箱:");String mailbox = input.next();//判断后缀是否为@163.comif (mailbox.endsWith("@163.com")) {char[] charArray2 = mailbox.toCharArray();//判断除去后缀剩余的是否为纯数字for (int j = 0; j < charArray2.length - 8; j++) {if (charArray2[j] >= '0' && charArray2[j] <= '9') {System.out.println("添加成功!");st.setMailbox(mailbox);key = false;break tiaozhuan1;} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}default:continue tiaozhuan1;}}System.out.println("请输入您的个人简介:(\t 以“.”结束)");//利用可变的StringBuilder来存储个人简介StringBuilder sbuild = new StringBuilder();do {String people = input.next();//在满足添加的情况下,每一次的输入都添加到StringBuilder对象里面sbuild.append(people);//最后输入.的时候,结束此次输入} while (!(sbuild.substring(sbuild.length() - 1, sbuild.length()).equals(".")));st.setPersonal_profile(sbuild);System.out.println("是否继续添加学生信息:1、继续   \t\t 2、退出");int exchange2 = input.nextInt();switch (exchange2) {case 1:list_st.add(st);continue loop;default:list_st.add(st);bool = false;break loop;}}}

查询学生信息的方法

@Overridepublic void getAll() {boolean bool = true;loop: while (bool) {System.out.println("1、查询全部学生信息\t\t 2、按姓名查询学生信息 \t\t 3、返回上一级");int exchange1 = input.nextInt();switch (exchange1) {case 1://使用迭代器来遍历集合Iterator<StudentBean> iterator1 = list_st.iterator();while (iterator1.hasNext()) {//接受集合返回的的对象并进行输出StudentBean next = iterator1.next();System.out.println("************************************************");System.out.println(next);}System.out.println("************************************************");continue loop;case 2://根据输入的姓名查找学生信息Iterator<StudentBean> iterator2 = list_st.iterator();System.out.println("请输入要查找的学生信息的姓名:");String name1 = input.next();while (iterator2.hasNext()) {StudentBean next = iterator2.next();if (name1.equals(next.getName())) {System.out.println("************************************************");System.out.println(next);System.out.println("************************************************");}}continue loop;default:bool = false;break;}}}

修改学生信息的方法

@Overridepublic void UpDate() {StudentBean st = new StudentBean();int w = 0;// 用来计算要修改元素在集合中的下标boolean bol = true;System.out.println("请输入你要修改的学生的姓名:");boolean bool = true;loop: while (bool) {String name = input.next();//判断是否含有该名字的学生Iterator<StudentBean> iterator1 = list_st.iterator();while (iterator1.hasNext()) {StudentBean next = iterator1.next();if (name.equals(next.getName())) {System.out.println(next);bol = false;}}if (bol) {System.out.println("没有此人!(1、重新输入\t\t2、返回上一级)");int exchange4 = input.nextInt();switch (exchange4) {case 1:continue loop;default:break loop;}}//当含有此学生时,!bol才会成立while (!bol) {System.out.println("输入你要修改的学生id:-----------------------------(ID不可修改)");int s_id = input.nextInt();Iterator<StudentBean> iterator2 = list_st.iterator();while (iterator2.hasNext()) {w += 1;StudentBean next = iterator2.next();if (s_id == next.getS_id()) {System.out.println("************************************************");//学生ID不可修改,所以保留原有IDst.setId_card(next.getId_card());System.out.println(next);System.out.println("************************************************");System.out.print("姓名:");String name1 = input.next();st.setName(name1);boolean bool_1 = true;//进行身份证的修改操作,大部分操作与添加中的一样,此处不做介绍loop_1: while (bool_1) {System.out.print("身份证号码:");String input_id = input.next();char[] charArray = input_id.toCharArray();if (input_id.length() != 18) {System.out.println("位数不对!");continue loop_1;}for (int i = 0; i < charArray.length; i++) {if (i < charArray.length - 1) {if (charArray[i] >= '0' && charArray[i] <= '9') {} else {System.out.println("不是标准身份证格式!请重新输入:");continue loop_1;}} else if (charArray[i] == 'X' || (charArray[i] >= '0' && charArray[i] <= '9')) {System.out.println("输入格式正确!");Iterator<StudentBean> iterator3 = list_st.iterator();while (iterator3.hasNext()) {StudentBean next2 = iterator3.next();if (input_id.equals(next2.getId_card())) {System.out.println("此人已经存在,请重新输入:");continue loop_1;}}st.setId_card(input_id);}}// 地址int nativePlaceCode = Integer.parseInt(input_id.substring(0, 6)); // 身份证前六位// 调用NativePlace.getNativePlace方法,将nativePlaceCode参数传递进去,进行地域判断String nativePlace = NativePlace.getNativePlace(nativePlaceCode); // 地址st.setAddres(nativePlace);String substring = input_id.substring(6, 10); // 出生年份int i = Integer.parseInt(substring);// 获取当前年份 得出最新年龄Calendar cl = Calendar.getInstance();int year = cl.get(Calendar.YEAR);
//                      System.out.println(year);int age = year - i;st.setAge(age);String brith_m = input_id.substring(10, 12); // 出生日期String brith_d = input_id.substring(12, 14);String brith = substring + "年" + brith_m + "月" + brith_d + "日";st.setDate(brith);// 性别int s = Integer.parseInt(input_id.substring(16, 17));if (s % 2 == 0) {st.setSex("女");} else {st.setSex("男");}break;}System.out.println("邮箱:");// ------------------------邮箱验证--------------------------------//与添加中的代码大致一样,不做介绍boolean key = true;tiaozhuan1: while (key) {System.out.println("*********************************");System.out.println("邮箱:\t\t 1、qq邮箱     \t   2、163邮箱");int exchange2 = input.nextInt();switch (exchange2) {case 1:tiaozhuan: while (true) {System.out.print("qq邮箱:");String mailbox = input.next();if (mailbox.endsWith("@qq.com")) {char[] charArray2 = mailbox.toCharArray();for (int j = 0; j < charArray2.length - 7; j++) {if (charArray2[j] >= '0' && charArray2[j] <= '9') {System.out.println("添加成功!");st.setMailbox(mailbox);key = false;break tiaozhuan1;} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}case 2:tiaozhuan: while (true) {System.out.print("163邮箱:");String mailbox = input.next();if (mailbox.endsWith("@163.com")) {char[] charArray2 = mailbox.toCharArray();for (int j = 0; j < charArray2.length - 8; j++) {if (charArray2[j] >= '0' && charArray2[j] <= '9') {System.out.println("添加成功!");st.setMailbox(mailbox);key = false;break tiaozhuan1;} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}} else {System.out.println("格式不对,请重新输入:");continue tiaozhuan;}}default:continue tiaozhuan1;}}// --------------------------------个人信息简介--------------------------------------System.out.println("请输入您的个人简介:(\t 以“.”结束)");StringBuilder sbuild = new StringBuilder();do {String people = input.next();sbuild.append(people);} while (!(sbuild.substring(sbuild.length() - 1, sbuild.length()).equals(".")));st.setPersonal_profile(sbuild);// ----------------------------------------------------------------------------------list_st.set(w - 1, st);System.out.println("修改完成!");break loop;}}}} // 大while的}

删除学生信息的方法

 @Overridepublic void delete() {boolean bol=true;int w = 0;// 记录是否遍历到集合的最后一个元素int k = 0;// 记录删除学生的位置int i = 0;//记录删除学生的位置Iterator<StudentBean> iterator2 = list_st.iterator();System.out.println("请输入要删除的学生信息的姓名:");String name1 = input.next();//遍历集合while (iterator2.hasNext()) {boolean bool = true;w += 1;//比较是否含有该name学生StudentBean next = iterator2.next();if (name1.equals(next.getName())) {bool = false;}//如果存在的话就输出,出现一个同名的输出一次if (!bool) {System.out.println(next);}//当遍历完集合之后,根据ID删除学生信息,可能有多个同名的学生,但是ID是不一样的if (w == list_st.size()) {System.out.print("输入要删除学生的ID:");int st_id = input.nextInt();//再次遍历集合,寻找需要删除的学生的IDIterator<StudentBean> iterator3 = list_st.iterator();while (iterator3.hasNext()) {StudentBean next2 = iterator3.next();if (st_id == next2.getS_id()) {//记录要删除学生的IDi = k;bol=false;}k += 1;}}}//妈祖此条件,说明找到ID对应的学生了,此时便可以根据下标删除学生了if (!bol) {list_st.remove(i);} else {System.out.println("不存在此ID!");}}

这是部分操作的实现,里面用到了架包,来实现身份证前六位得到地址。
思想:用集合来存储学生和账号对象,打破了数组长度不可变的局限。

学生信息管理系统源码相关推荐

  1. java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运 ...

  2. Java学生信息管理系统源码

    学生信息管理系统 功能说明 学生信息管理,包括学生.班级.院系.课程.成绩等的管理. 本程序仅供学习食用. 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1.安装JDK. 2.导 ...

  3. Javaweb学生信息管理系统(源码)

                              关注微信公众号:小诸葛的博客 回复101获取项目源码 1.项目名称:学生成绩管理系统 主要管理学生信息及成绩.教师信息.考试信息等. 2.系统环境: ...

  4. 原生php开发学生信息管理系统源码

    主要功能: 1.班级管理 (1)添加班级:输入班级名称,选择系别,确认添加 (2)班级列表:班级列表显示,班级修改,删除班级,列表分页 2.学生管理 (1)添加学生:输入学生姓名,选择系别,选择班级名 ...

  5. java计算机毕业设计学生学籍信息管理系统源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计学生学籍信息管理系统源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计学生学籍信息管理系统源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈: ...

  6. 基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...

  7. 计算机毕业设计Java学生学籍信息管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java学生学籍信息管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java学生学籍信息管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...

  8. C语言期末大作业15个(附源码)成绩管理系统、图书馆管理系统、学生打卡系统、超市信息管理系统、学生考勤系统、职工信息管理系统源码、歌曲信息管理系统、超市收款系统等等

    C语言期末作业15个(上) 1.C语言学生成绩管理系统 2.C语言图书馆管理系统(复杂版) 3.C语言图书馆管理系统(简洁版) 4.C语言停车管理系统(两个版本) 5.C语言学生考勤系统 6.C语言班 ...

  9. C语言期末作业(15个)-货物管理系统、歌曲信息管理系统、职工信息管理系统源码、学生打卡系统、小学生计算机辅助教学系统、门禁系统、银行管理系统等等

    C语言期末作业15个(下) 9.C语言货物管理系统 10.C语言歌曲信息管理系统 11.C语言职工信息管理系统源码 12.C语言学生打卡系统 13.C语言小学生计算机辅助教学系统 14.C语言门禁系统 ...

  10. C语言学生学籍信息管理系统源码附赠实验报告

    一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务.本课程设计具有如下 ...

最新文章

  1. 没有任何基础学编程从哪开始_没有任何的绘画基础,该怎么学绘画?
  2. U盘安装Centos6.3 续
  3. jenkins与gitlab集成,分支提交代码后自动构建任务(六)
  4. new,is和as运算符解析及运行时类型,对象,线程堆栈,托管堆之间的联系
  5. Windows操作系统的发展历史
  6. java 小数如何转换成百分数_初等数学33-百分数
  7. 未来已来!分布式数据库的“星辰大海”绝不仅限于替换!
  8. 【DBN】Deep Belief Network简介
  9. wincc几个常用c语言编程软件,WINCC几个常用C语言编程
  10. 一场农业“人机”对战,能否凿开农村致富新门路呢?
  11. DAO是什么?为什么我们需要DAO?
  12. Unity-Some objects were not cleaned up when closing the scene.
  13. sir模型初始值_SIR模型简单了解(Susceptible Infected Recovered Model)
  14. Java如何与Simon Ritter-JDK 9到13一起发展
  15. 基于C语言的AES加密算法实现
  16. docker MySQL8
  17. 使用git命令拉取远程分支到本地分支
  18. yolov算法详解_YOLOv4算法解读(思维导图)和论文翻译
  19. wps流程图导出不清楚_一份清晰的“流程图”,无需专业软件,一个简单Word轻松搞定...
  20. 同城跑腿APP开发需具备哪些功能?

热门文章

  1. 负载均衡的几种方式_负载均衡的几种类型
  2. 手机处理器排名2019_手机CPU天梯图2020年3月最新版 你的手机处理器排名高吗?...
  3. 网页授权前端 java_在开发网页授权获取用户基本信息时code是null
  4. 每个叶子节点(nil)是黑色。_129. 求根到叶子节点数字之和
  5. 阿里淘系21春招实习过经
  6. confirm 调用ajax,jQuery ajax中使用confirm,确认是否删除的简单实例
  7. IntelliJ-IDEA-Debug技巧
  8. win10 安装c语言无法启动,win10开机出现0xc0000098无法启动简单解决方法
  9. linux中脚本退出函数,PowerShell中使用return语句退出函数例子
  10. Luogu 4245 【模板】任意模数NTT