学生选课系统的简单实现

刚接触java没多长时间,写了一个简单的学生选课系统;可能有很多bug
同时也把这个程序连接到了io流里面进行账户信息存储到文件当中去。
刚开始写的时候还没学到java面向对象,就把所有的东西都写到了一个类中
看起来很繁琐…


import java.io.*;
import java.util.*;

//学生信息类
public class MainSystem{
	static String name;  //姓名
	static String number;   //学号(账户)
	static String male;     //性别
	static String age;         //年龄
	static String department;  //院系
	static String password;    //密码
	static Map<String,String> course=new HashMap<String,String>();
	
	//姓名
	public static String getName(){
		return name;
	}
	public static void setName(String sName){
		name=sName;
	}

	//账户(学号)
	public  static String getNumber(){   
		return number;              //返回account
	}
	public  static void setNumber(String sNumber){
		number=sNumber;      //为account赋值
	}

	//性别
	public static String getMale(){
		return male;
	}
	public static void setMale(String sMale){
		male=sMale;
	}

	//年龄
	public static String getAge(){
		return age;
	}
	public static void setAge(String sAge){
		age=sAge;
	}

	//院系
	public static String getDepartment(){
		return department; 
	}
	public static void setDepartment(String sDepartment){
		department=sDepartment;
	}

	//密码
	public  static String getPassword(){   
		return password;              //返回password
	}
	public  static void setPassword(String sPassword){
		password=sPassword;      //为password赋值
	}

	public  MainSystem()throws Exception{
		Scanner sc=new Scanner(System.in);
		//欢迎语句
		System.out.println("*********************************************************************");
		System.out.println("*************************欢迎来到学生选课系统!***************************");
		System.out.println("**********************************************************************");
		
		//main System界面
		System.out.println("1.注册  2.登录  3.学生信息(选课结果)  4.选课  5.退选  6.修改密码  0退出");
		System.out.println("请输入需要办理的业务:");
		int n=sc.nextInt();
		while(true){
			//用于循环让用户操作
			switch(n){
				case 1:
					MainSystem.login();
					break;    //调用注册方法
				case 2:
					/*if(a==0){
						System.out.println("请先注册!");
					}else{
						MainSystem.loginPassword();
					}*/
					MainSystem.loginPassword();
					break;    //调用登陆方法
				case 3:
					if(b==0){
						System.out.println("请先登录!");
					}else{
						MainSystem.printInformation();
					}
					break;    //调用学生信息方法
				case 4:
					if(b==0){
						System.out.println("请先登录!");
					}else{
						MainSystem.selectCourse();
					} 
					break;    //调用选课方法
				case 5:
					if(b==0){
						System.out.println("请先登录!");
					}else{
						MainSystem.noSelectCourse();
					};
					break;    //调用退选方法
				case 6:
					if(b==0){
						System.out.println("请先登录!");
					}else{
						MainSystem.addPassword();
					}
					break;    //调用修改密码方法
				case 0:
					System.out.println("拜拜!");
					System.exit(-1);    //调用退出
				default:
					System.out.println("你输入的不正确...");
			}
			System.out.println("1.注册  2.登录  3.学生信息(选课结果)  4.选课  5.退选  6.修改密码  0退出");
			System.out.println("请输入需要办理的业务:");
			n=sc.nextInt();
		}
	}



	static int a=0;//用于判别是否注册的参数
	
	//注册
	public static void login() throws Exception{		
		Scanner sc=new Scanner(System.in);//创建Scanner对象
		BufferedWriter bw = new BufferedWriter(new FileWriter("student.txt",true));//创建Buffer文件流对象
		
		System.out.print("请输入学号:");
		MainSystem.setNumber(sc.next());
		bw.write(MainSystem.getNumber()+",");//把学号存入到文件去
		System.out.print("请输入姓名:");
		MainSystem.setName(sc.next());
		bw.write(MainSystem.getName()+",");//把姓名存入到文件去
		System.out.print("请输入性别:");
		MainSystem.setMale(sc.next());
		bw.write(MainSystem.getMale()+",");//把性别存入到文件去
		System.out.print("请输入年龄:");
		MainSystem.setAge(sc.next());
		bw.write(MainSystem.getAge()+",");//把年龄存入到文件去
		System.out.print("请输入院系:");
		MainSystem.setDepartment(sc.next());
		bw.write(MainSystem.getDepartment()+",");//把学院存入到文件去
		//输入密码
		System.out.print("请输入密码:");
		MainSystem.setPassword(sc.next());
	
		System.out.print("请再次输入密码:");
		String password1=sc.next();

		//循环来鉴别两次输入的密码是否相同

		
		while(true){
			if (MainSystem.getPassword().equals(password1)==false){
				System.out.println("两次输入密码不同!,请重新输入!");
			
				password1=sc.next();
			}
			else{
				break;
			}
		}
		a=1;
		System.out.println("恭喜你注册成功!!!");
		bw.write(MainSystem.getPassword());//把密码存入到文件中去
		bw.write("\r\n");
		System.out.println("小提示:您的学号即为您的登陆账户!");
		bw.close();
	}



	static int b=0;//用于判别是否登录的参数
	static int c=0;//用于判断登录的第几个账户信息
	//登录
	public static void loginPassword() throws Exception{
		Map map=new LinkedHashMap();//创建Map对象存放账户和密码
		
		Scanner sc=new Scanner(System.in);
		BufferedReader br = new BufferedReader(new FileReader("student.txt"));//把student文件中数据读取
		
		String line="";
		while((line=br.readLine())!=null) {
			String [] strArray=line.split(",");
			map.put(strArray[0],strArray[5]);//把账户和密码放到map集合中去
			
		}
		if(map.isEmpty()) {
			System.out.println("还没有注册信息");
		}else {
				System.out.print("请输入账户登录");
				String number1=sc.next();
				System.out.print("请输入密码登录");
				String password1=sc.next();
				int flag=0;
				while(flag!=3){
					
					b=0;
				while(true) {
					c=0;
					Set keySet=map.keySet();//获取键的集合
					Iterator it=keySet.iterator();//迭代健的集合
					while(it.hasNext()==true) {
						Object key=it.next();//账户
						Object value=map.get(key);//密码
						String key1=(String)key;//把账户转化成String类型
						String value1=(String)value;//把密码转化成String类型
						c++;
						//用户进行登录
						if(number1.equals(key1)==false||password1.equals(value1)==false){
							/*System.out.println("密码/账户输入错误!");
							flag++;
							System.out.print("请重新输入账户:");
							number1=sc.next();
							System.out.print("请重新输入密码:");
							password1=sc.next();
							break;*/
						}else{
							System.out.println("登陆成功!");
							
							System.out.println("欢迎您使用本系统!");
							b=1;
							new MainSystem();
							break;
						}
					}
					if(b==1) {
						break;
					}else {
						System.out.println("密码/账户输入错误!");
						flag++;
						System.out.print("请重新输入账户:");
						number1=sc.next();
						System.out.print("请重新输入密码:");
						password1=sc.next();
					}
					
				}
					
		
				if(b==1) {
					break;
				}	
				
				if(flag==3){
					System.out.println("输入三次错误!");
					b=0;
					new MainSystem();
					break;
				}
			}
		}
}

	//修改密码
	public static void addPassword()throws Exception{
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入旧密码:");
		int i=0;
		while(i!=999){
		i++;
		String password1=sc.next();
		if(password1.equals(MainSystem.getPassword())==true){
			System.out.print("请输入新密码:");
	
			MainSystem.setPassword(sc.next());
		
			System.out.print("请再次输入密码:");
			String password2=sc.next();

			//循环来鉴别两次输入的密码是否相同

			int flag =1;
			while(flag!=3){
				if (password2.equals(MainSystem.getPassword())==false){
					System.out.println("两次输入密码不同!,请重新输入!");
					flag++;
					password2=sc.next();
				}
				else{
					break;
				}
			}
			
			System.out.println("密码修改成功!请重新登陆。");
			MainSystem.loginPassword();
			return;
		}else{
			System.out.print("旧密码输入错误!请重新输入:");
		}
	}
}
	
	//学生信息
	public static void printInformation()throws Exception{
		BufferedReader br = new BufferedReader(new FileReader("student.txt"));//把student文件中数据读取
		int i=0;
		String line="";
		while((line=br.readLine())!=null) {
			String [] strArray=line.split(",");
			i++;
			if(i==c) {
				System.out.println("姓名:"+strArray[1]+" "+"学号(账户):"+strArray[0]+" "+"性别:"+strArray[2]+"年龄"+strArray[3]+" "+"院系:"+strArray[4]);
			}
		}
		
		
		
		//for语句用于打印课程
		if(flag==0) {
			System.out.println("你没有所选取的课程!");
		}else {
			System.out.println("您选的课程:");
			Set keySet=course.keySet();//获取键的集合
			Iterator it=keySet.iterator();//创建Iterator对象
			while(it.hasNext()==true){
				Object key=it.next();
				Object value=course.get(key);
				System.out.println(key+":"+value);
			}
		}
		
	}
	
	static int flag=0;//课程数量
	
	//选课
	public static void selectCourse(){
		Scanner sc=new Scanner(System.in);
		
		while(true) {//用于循环选课
			System.out.println("1.选取课程 0.退出选课");
			int xuhao=sc.nextInt();
			if(xuhao==1) {
				Map<String,String>map=new HashMap<String,String>();//创建Map对象
		
				map.put("1","数据结构");//存入选课数据
				map.put("2","高等数学");
				map.put("3","大学英语");
				map.put("4","Java基础");
				System.out.println("你可以选取的课程:");
				Set keySet=map.keySet();//获取键的集合
				Iterator it=keySet.iterator();//创建Iterator对象
				while(it.hasNext()==true){
					Object key=it.next();
					Object value=map.get(key);
					System.out.println(key+":"+value);
				}
				System.out.println("请输入你要选取的代码:");
				int x=sc.nextInt();//用户输入所选取的代码
				switch (x){
					case 1:course.put("1","数据结构");System.out.println("选取成功!");flag++;break;
					case 2:course.put("2","高等数学");System.out.println("选取成功!");flag++;break;
					case 3:course.put("3","大学英语");System.out.println("选取成功!");flag++;break;
					case 4:course.put("4","Java基础");System.out.println("选取成功!");flag++;break;
					default:System.out.println("您输入的不正确");
				}
			}
			if(xuhao==0) {
				break;
			}
			if(xuhao!=0&&xuhao!=1) {
				System.out.println("输入错误,请从新输入:");
			}
			
		}
		
	}
	
	//退选
		public static void noSelectCourse(){
			Scanner sc=new Scanner(System.in);
			
			while(true) {
				System.out.println("你的课程数量:"+flag);
				Set keySet=course.keySet();//获取键的集合
				Iterator it=keySet.iterator();//创建Iterator对象
				while(it.hasNext()==true){
					Object key=it.next();
					Object value=course.get(key);
					System.out.println(key+":"+value);
				}
				
				System.out.println("1.退选课程 0.退出退选");
				int xuhao=sc.nextInt();
				if(xuhao==1) {
					if(flag!=0) {
						int c=0;
						while(true) {
							System.out.println("请输入你要退选的代码:");
							String x=sc.next();
							Set entrySet=course.entrySet();
							Iterator it1=entrySet.iterator();
							while(it1.hasNext()==true) {
								Map.Entry entry=(Map.Entry)(it1.next());
								Object key=entry.getKey();//键
								Object value=entry.getValue();//值
								String str=(String)key;//强制转化为String类型
								if(x.equals(str)==true) {
									it1.remove();
									System.out.println("退选成功!");
									c++;
									flag--;
									break;
								}else {
									System.out.println("输入错误!");
									break;
								}
							}
							if(flag==0) {
								break;
							}
							if(c!=0) {
								break;
							}
						}
					}else {
						System.out.println("没有课程!为你自动跳出。");
						break;
					}
					
				}
				if(xuhao==0) {
					break;
				}
				if(xuhao!=0&&xuhao!=1) {
					System.out.println("输入错误,请从新输入:");
				}
			}
			
		}
		
		
	//测试类
		public static void main(String[] args)throws Exception{
			MainSystem ms=new MainSystem();
		}
}
#include<iostream.h> #include<string.h> class course { char courname[50]; static int count; public: //course(char *t) {strcpy(courname,t);} //void print() //{ //cout<<courname<<endl; //} void show1() { char ch; cout<<"你是否继续选修其他的课程:"<<endl; cout<<"是/Y 否/e"<<endl; cin>>ch; while(ch!='e') { cout<<"欢迎再次进入计算机系选课程系统"<<endl; cout<<" c语言程序设计/1 java语言程序设计/2 英语/3"; cout<<" 操作系统/4 c++语言程序设计/5 数据库/6 "; cout<<" vc++语言程序设计/7 退出/e"<<endl; cin>>ch; } } void show2() { char ch; cout<<"你是否继续选修其他的课程:"<<endl; cout<<"是/Y 否/e"<<endl; cin>>ch; while(ch!='e') { cout<<"欢迎再次进入英语系选课程系统"<<endl; cout<<" 大学英语/1 计算机基本操作/2 英语听力/3"; cout<<" 英语写作/4 英语阅读/5 历史/6 "; cout<<" c语言程序设计/7 退出/e"<<endl; cin>>ch; } } void showcomputer() { int i; cout<<"欢迎进入计算机系选课程系统"<<endl; cout<<" c语言程序设计/1 java语言程序设计/2 英语/3"; cout<<" 操作系统/4 c++语言程序设计/5 数据库/6 "; cout<<" vc++语言程序设计/7 退出/e"<<endl; cin>>i; do{ switch(i) {case 1: cout<<"你选的课程为:"<<"c语言程序设计"<<endl; count++; cout<<"你已经选择1号课程,之后不能再选了!"<<endl; break; case 2: cout<<"你选的课程为:"<<"java语言程序设计"<<endl; count++; break; case 3: cout<<"你选的课程为:"<<"英语"<<endl; count++; break; case 4: cout<<"你选的课程为:"<<"操作系统"<<endl; count++; break; case 5: cout<<"你选的课程为:"<<"c++语言程序设计"<<endl; count++; break; case 6: cout<<"你选的课程为:"<<"数据库"<<endl; count++; break; case 7: cout<<"你选的课程为:"<<"vc++语言程序设计"<<endl; count++; break; default:; } show1(); }while(i!='e'&& count<4); } void showenglish() { int i; cout<<"欢迎进入英语系选课程系统"<<endl; cout<<" 大学英语/1 计算机基本操作/2 英语听力/3"; cout<<" 英语写作/4 英语阅读/5 历史/6 "; cout<<" c语言程序设计/7 退出/e"<<endl; cin>>i; do{ //while(i!='e'&& count<4) switch(i) {case 1: cout<<"你选的课程为:"<<"大学英语"<<endl; count++; break; case 2: cout<<"你选的课程为:"<<"计算机基本操作"<<endl; count++; break; case 3: cout<<"你选的课程为:"<<"英语听力"<<endl; count++; break; case 4: cout<<"你选的课程为:"<<"英语写作"<<endl; count++; break; case 5: cout<<"你选的课程为:"<<"英语阅读"<<endl; count++; break; case 6: cout<<"你选的课程为:"<<"历史"<<endl; count++; break; case 7: cout<<"你选的课程为:"<<"c语言程序设计"<<endl; count++; break; default:; } show2(); }while(i!='e'&& count<4); } }; class student { char name[10]; // 姓名 char sno[10]; // 学号 char cname[50]; course course1; // 子对象 public: //student(char *c):course(t) //{} //void disp() //{ //cout<<"学生:"<<name<<endl<<" 课程:"<<endl; //cout<<""<<course1.show()<<endl; //} void get() { //course1.print(); char choice; cout<<"请选择你所在的专业进行操作:"<<endl; cout<<" 计算机系/c 数学系/m 英语系/n"; cout<<" 中文系/z 退出/e"<<endl; cin>>choice; while(choice!='e') { switch(choice) { case 'c': cout<<"请输入你的姓名,学号信息:"; cout<<"请输入你的名字:"<<endl; cin>>name; cout<<"请输入你的学号:"<<endl; cin>>sno; course1.showcomputer(); break; case 'n': cout<<"请输入你的姓名,学号信息:"; cout<<"请输入你的名字:"<<endl; cin>>name; cout<<"请输入你的学号:"<<endl; cin>>sno; course1.showenglish(); break; case 'm': cout<<"请输入你的姓名,学号信息:"; cout<<"请输入你的名字:"<<endl; cin>>name; cout<<"请输入你的学号:"<<endl; cin>>sno; break; case 'z': cout<<"请输入你的姓名,学号信息:"; cout<<"请输入你的名字:"<<endl; cin>>name; cout<<"请输入你的学号:"<<endl; cin>>sno; break; default:; } cout<<"请选择你所在的专业进行操作:"<<endl; cout<<" 计算机系/c 数学系/m 英语系/e"; cout<<" 中文系/z 退出/e"<<endl; cin>>choice; } } }; int course::count=0; void main() { student s; s.get(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值