精华内容
下载资源
问答
  • 在数字化的今天,我们需要一个学生管理系统,使我们的整体管理水平上一个档次,与如今这个高科技的信息社会接轨。 因此,如何有效的管理学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要...
  • 学生管理系统c++链表实现

    千次阅读 多人点赞 2016-04-10 22:22:18
    学生管理系统,主要划分为以下三个模块: 1) 学生:包括增加学生信息、删除学生信息、修改学生信息、查找学生信息、学生选课。 2) 课程:包括增加课程信息、删除课程信息、修改课程信息、查找课程信息。 3)拓展...
    简单版学生管理系统,c++,链表实现,如果你是计算机系的学生真的希望你不要完全复制,做下参考自己编写出来才能有所收获,这是对你的将来负责;
    学生管理系统,主要划分为以下三个模块: 
        1) 学生:包括增加学生信息、删除学生信息、修改学生信息、查找学生信息、学生选课。 
        2) 课程:包括增加课程信息、删除课程信息、修改课程信息、查找课程信息。
        3)拓展功能:文件导入,文件导出。
    #include<iostream>
    #include<fstream>
    #include<string>
    using namespace std;
    const int nubofCourse = 10;//学生最多可以选修的课程
    typedef struct StudentMessage *sMessage;//学生结点指针类型
    typedef struct Courses *sCourse;//课程结点指针类型
    fstream foutint;//文件导入导出
    /*课程结构体*/
    struct Courses {
    	int stdCourstcount;
    	string cNo;
    	string cName;
    	string scTeacher;
    	string stdNo[nubofCourse];
    	sCourse cNext;
    };
    /*学生结构体*/
    struct StudentMessage {
        string sNo;//学号
    	string sClass;
    	string sName;
    	char  sSex;
    	sMessage sNext;
    };
    
    typedef sMessage sm;//学生头指针类型
    typedef sCourse sc;//课程头指针类型			  
    /*关于我们,关于程序*/
    void aboutMe() {  //首页打印设置 
    	string input;
    	cout << "\n\n\t\t\t*****************************\n";
    	cout << "\t\t\t      学生信息管理系统\n";
    	cout << "\t\t\t*****************************\n\n\n";
    	// cout<<"\n\t\t\t    欢迎来到学生信息管理系统\n\n";
    	cout << "--------------------------------------------------------------------------------\n";
    	cout << "\n\t\t\t拼搏到无能为力,\n";  cout << "\t\t\t\t       坚持到感动自己!\n";
    	cout << "\t   开发者:路ren甲\n\n";  cout << "\t   联系方式:QQ:1508287079     or     Mail To:1508287079@qq.com\n";
    	cout << " \n--------------------------------------------------------------------------------\n";
    	//cout<<"\t______________________________________________________________________\n"; 
    	cout << "\t\t版权所有@路ren甲\n\n\n";
    	cout << "\t<输入任意字符进入>\n\t";
    	cin >> input;  //让用户输入一个字符后再进行下一步  
    	system("cls");    //清屏
    }
    //再见页面
    void goodbye() {  //首页打印设置 
    	string input;
    	// cout<<"\n\t\t\t    欢迎来到学生信息管理系统\n\n";
    	cout << " \n\n\n\n\n\n\n\n--------------------------------------------------------------------------------\n";
    	cout << "\n\t\t可能程序还有许多不足,\n";  cout << "\t\t\t 希望大家可以提出或者修改!\n";
      cout << "\t\t\t\t再见,遇见成功的自己!\n";
    	cout << " \n--------------------------------------------------------------------------------\n";
    	cout << "\t<输入任意字符关闭>\n\t";
    	cin >> input;  //让用户输入一个字符后再进行下一步  
    	exit(1);    //清屏
    }
    //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓课程函数↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//
    sc initC() {
    
    	sCourse chead;
    	chead = new Courses;
    	chead->cNext = NULL;
    	return chead;
    }
    //打印课程信息
    int ptfselect_SCourse(sc head, string sId) {
    	int flags = 0;
    	if (head->cNext == NULL) { cout << "\n\t\t\t没有选到课喔……………!_!-_-\n"; return 1; }
    	cout << "\t\t课程编号" << "\t   课程名称" << "\t   开课老师" << endl;
    	//课程信息
    	head = head->cNext;
    	while (head != NULL) {
    		for (int l = 0; l < nubofCourse; l++) {
    			if (head->stdNo[l] == sId) {
    				flags = 1;
    				cout << "\t\t" << head->cNo << "\t\t" << head->cName << "\t\t" << head->scTeacher << "\t\n";
    			}
    		}
    		head = head->cNext;
    	}
    	if (flags == 0) { cout << "\n\t\t\t没有选到课喔……………!_!-_-\n"; }
    	cout << "\t\t----------------------------------------------------\n";
    	return 1;
    }
    int ptfSCourse(sc cHead) {
    	if (cHead->cNext == NULL) { cout << "没有课程信息\n"; return 0; }
    	//全部学生信息
    	cout << "\n\t\t课程编号" << "\t   课程名称" << "\t   开课老师" << endl;
    
    	cHead = cHead->cNext;
    	while (cHead != NULL) {
    		cout << "\t\t" << cHead->cNo << "\t\t" << cHead->cName << "\t\t" << cHead->scTeacher<< "\t\n";
    		cHead = cHead->cNext;
    	}
    	return 1;
    }
    void printfCourse(sc head, int i) {
    	//一个课程信息
    	int j;
    	sCourse find;
    	j = 0;
    	find = head->cNext;
    	cout << "\n\t\t课程编号" << "\t\t课程名称" << "\t\t开课老师" << endl;
    	while (find != NULL) {
    		j++; if (j == i) {
    			cout << "\t\t" << find->cNo << "\t\t" << find->cName << "\t\t" << find->scTeacher << "\t\n";
    			break;
    		}
    		find = find->cNext;
    	}
    
    }
    void pfCourse(sc head) {
    	cout << "\n\t\t课程编号" << "\t\t课程名称" << "\t\t开课老师" << endl;
    	cout << "\t\t" << head->cNo << "\t\t" << head->cName << "\t\t" << head->scTeacher << "\t\n";
    	cout << endl;
    }
    查找课程
    int locateCourse(sc chead, string numb) {
    	int j = 0;
    	chead = chead->cNext;
    	while (chead != NULL) {
    		j++;//统计
    		if (numb == chead->cNo) {
    			return j;
    		}
    		chead = chead->cNext;
    	}
    	return 0;
    
    }
    添加课程
    void addCourse(sc scHead) {
    	sc cnew;//新课程
    	int  g = 0,k=0;
    	char flag = 'y';
    	while (flag == 'y') {
    		cnew = new Courses;
    		cnew->stdCourstcount = 0;
    		
    		while (g==0) {
    			g = 1;
    			cout << "输入课程编号(六位数字):";
    			cin >> cnew->cNo;
    			if (locateCourse(scHead,cnew->cNo) != 0) { cout << "课程编号已经存在,请重新输入" << endl; g = 0; }
    			
    		} 
    		g = 0;
    		cout << "输入课程名称:";
    		cin >> cnew->cName;
    		cout<<"输入教师姓名:";
    		cin >> cnew->scTeacher;
    		cnew->cNext = scHead->cNext;
    		scHead->cNext = cnew;
    		cout << "您想继续进行添加吗?输入y继续,输入n退出" << endl;
    		cout << "输入你的选择(y/n):";
    		cin >> flag;
    	}
    	//system("cls");
    	cout << "已经添加课程信息成功\n" << endl;
    	
    }
    //修改课程信息
    int updatesCourse(sc chead) {
    	string fdc;
    	int k = 0;
    
    	if (chead->cNext == NULL) { cout << "没有课程数据,请添加课程" << endl; return 0; }
    	cout << "输入修改课程编号:";
    	cin >> fdc;
    	chead = chead->cNext;
    	while (chead != NULL) {
    		k++;//统计
    		if (fdc == chead->cNo) {
    			pfCourse(chead);
    			cout << "课程名称:";
    			cin >> chead->cName;
    			cout << "开课老师:";
    			cin >> chead->scTeacher;	
    			cout << "修改课程" << chead->cNo << "信息成功!";
    			return k;
    		}
    		chead = chead->cNext;
    	}
    	return 0;
    
    }
    int deletesCourse(sc cHead) {
    	string del;
    	char flag;
    	int f = 0;
    	sCourse deletestd,preform;
    	int j = 0;
    	if (cHead->cNext == NULL) { cout << "没有课程数据,请添加课程" << endl; return 0; }
    	preform = cHead;
    	deletestd = cHead->cNext;//从首节点开始扫描
    	cout << "输入删除课程编号:";
    	cin >> del;//删除课程
    
    	while (deletestd != NULL) {
    		f = 0;
    		j++;
    		if (deletestd->cNo==del) {
    			pfCourse(deletestd);
    			cout << "是否删除该课程(y/n),输入你的选择:";
    			cin >> flag;
    			if (flag == 'y') {
    				cout << "删除课程" << deletestd->cName << "成功!";
    				preform->cNext = deletestd->cNext;
    				delete deletestd;
    				return j;
    			}
    			else {
    				cout << "你已经取消删除" << deletestd->cNext->cName << endl;
    				return 0;
    			}
    		}
    		preform=preform->cNext;
    		deletestd = deletestd->cNext;
    		f = 1;
    	}
    	if (f == 1) { cout << "不存在该学生找到了"; }
    	return 0;//不存在该学生找到了
    }
    //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓学生函数↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//
    /*初始化*/
    sm init() {
    	sMessage shead;
    	shead = new StudentMessage;
    	shead->sNext = NULL;
    	return shead;
    }
    //打印学生信息
    void printfSMessge(sm head, sc cHead) {
    	sm find2;
    	string fc;
    	int i = 0;
    	if (head == NULL) cout << "没有学生信息";
    	find2 = head->sNext;
    	//全部学生信息
    	head = head->sNext;
    	while (head != NULL) {
    		cout << "\t\t---------------------第"<<++i<<"位--------------------------\n";
    		cout << "\t\t\t\t姓名:" << head->sName << "\t\n";
    		if (head->sSex == '1') {
    			cout << "\t\t\t\t性别:男" << "\t\n";
    		}
    		else if (head->sSex == '0') {
    			cout << "\t\t\t\t性别:女" << "\t\n";
    		}
    		cout << "\t\t\t\t学号:" << head->sNo << "\t\n";
    		cout << "\t\t\t\t班级:" << head->sClass << "\t\n";
    
    		cout << "\n\t\t\t选修课程:\n";
    		if (find2 != NULL) {
    			fc =find2->sNo;
    			ptfselect_SCourse(cHead, fc);//输出学生选课
    		}
    		find2 = find2->sNext;
    		head = head->sNext;
    	}
    	
    
    }
    void printfPerson(sm head, int i,sc cHead) {
    	//一个学生信息
    	int j;
    	string fc;
    	sMessage find, find2;
    	//if(i==0) return head;
    	//	if(i<0) return ;//位置非法。无此结节点
    	j = 0;
    	find = head->sNext;
    	find2 = head->sNext;
    	while (find != NULL){
    		j++; if (j == i) {
    			cout << "\t\t----------------------------------------------------\n";
    			cout << "\t\t\t\t姓名:" << find->sName << "\t\n";
    			if (find->sSex == '1') {
    				cout << "\t\t\t\t性别:男" << "\t\n";
    			}
    			else if (find->sSex == '0') {
    				cout << "\t\t\t\t性别:女" << "\t\n";
    			}
    			cout << "\t\t\t\t学号:" << find->sNo << "\t\n";
    			cout << "\t\t\t\t班级:" << find->sClass << "\t\n";
    		
    			cout << "\n\t\t\t选修课程:\n";
    			while (find2 != NULL) {
    				fc = find2->sNo;
    				if(ptfselect_SCourse(cHead, fc)==1) break;//输出学生选课
    			}
    			break;
    		}
    		find2 = find2->sNext;
    		find = find->sNext;
    	}
    
    }
    void pfPerson(sm head) {
    	cout << "\t\t----------------------------------------------------\n";
    	cout << "\t\t\t\t姓名:" << head->sName << "\t\n";
    	if (head->sSex == '1') {
    		cout << "\t\t\t\t性别:男" << "\t\n";
    	}
    	else if (head->sSex == '0') {
    		cout << "\t\t\t\t性别:女" << "\t\n";
    	}
    	cout << "\t\t\t\t学号:" << head->sNo << "\t\n";
    	cout << "\t\t\t\t班级:" << head->sClass << "\t\n";
    
    	cout << "\t\t----------------------------------------------------\n";
    }
    查找学生
    int locateStdfByNo(sm sHead, string numb) {
    	int j = 0;
    	if (sHead->sNext == NULL) { cout << "没有学生数据,请添加学生" << endl; return NULL; }
    	sHead = sHead->sNext;
    	j = 0;
    	while (sHead != NULL) {
    		j++;//统计
    		if (numb==sHead->sNo) {
    			return j;
    		}
    		sHead = sHead->sNext;
    	}
    	return 0;
    }
    int locateByName(sm sHead, string sname,sc cHead) {
    	int j = 0;
    	sm head=sHead;
    	if (sHead->sNext == NULL) { cout << "没有学生数据,请添加学生" << endl; return NULL; }
    	sHead = sHead->sNext;
    	while (sHead != NULL) {
    		j++;
    		if (sHead->sName == sname) { printfPerson(head, j, cHead);
    		}
    		sHead = sHead->sNext;
    	}
    	return 0;
    }
    //添加学生
    void addStudent(sm sHead) {
    	sMessage snew;//新学生
    	int f = 1,g=0;
    	char flag = 'y';
    	while (flag == 'y') {
    		snew = new StudentMessage;
    		while (f == 1) {//判断学号和输入学号
    			f = 0;
    			cout << "输入学号6位数字:";
    			cin >> snew->sNo;
    			if (locateStdfByNo(sHead, snew->sNo) != 0) { cout << "学号已经存在,请重新输入"<<endl; f = 1;}//判断学号是否重复
    			
    		}
    		cout << "输入姓名:";
    		cin >> snew->sName;
    		f = 1;
    	     while(f==1){
    			 f = 0;
    		     cout << "输入性别选择<男:1><女:0>:";
    		     cin >> snew->sSex;
    		    if (snew->sSex!='1'&& snew->sSex != '0'&&f==0) { cout << "选择操作不对,请重新输入"<<endl; f = 1; }
    			
    		 }
    		 f = 1;
    		cout << "输入班级:";
    		cin >> snew->sClass;
    		snew->sNext = sHead->sNext;
    		sHead->sNext = snew;
    		pfPerson(snew);
    		cout << "您想继续进行添加吗?输入y继续,输入n退出" << endl;
    		cout << "输入你的选择(y/n):";
    		cin >> flag;
    
    	}
    	//system("cls");
    	cout << "已经添加学生信息成功" << endl;
    
    }
    //修改学生信息
    int updates(sm sHead) {
    	char flagc = 'y';
    	string numb;
    	int j = 0,f=1;
    	if (sHead->sNext == NULL) { cout << "没有学生数据,请添加学生" << endl; return 0; }
    	cout << "输入修改学生学号:";
    	cin >> numb;
    	sHead = sHead->sNext;
    	while (sHead != NULL) {
    		j++;//统计
    		if ( numb== sHead->sNo) {
    			pfPerson(sHead);
    			cout << "\n输入修改信息\n";
    			while (f == 1) {
    				f = 0;
    				cout << "输入性别选择<男:1><女:0>:";
    				cin >> sHead->sSex;
    				if (sHead->sSex != '1' && sHead->sSex != '0') { cout << "选择操作不对,请重新输入" << endl; f = 1; }
    
    			}
    			cout << "输入姓名:";
    			cin >> sHead->sName;
    			f = 1;
    			cout << "输入班级:";
    			cin >> sHead->sClass;
    			return j;
    		}
    		sHead = sHead->sNext;
    	}
    	return 0;
    }
    //删除
    int deletesMessage(sm sHead) {
    	string numb;
    	char flag;
    	sMessage deletestd, preform;
    	int j = 0, i = 0;
    	if (sHead->sNext == NULL) { cout << "没有学生数据,请添加学生" << endl; return 0; }
    	preform = sHead;
    	deletestd = sHead->sNext;//从首节点开始扫描
    	cout << "输入删除学生学号:";
    	cin >> numb;
    
    	while (deletestd != NULL) {
    		j++;
    		if (deletestd->sNo==numb) {
    			pfPerson(deletestd);
    			cout << "是否删除该学生(y/n),输入你的选择:";
    			cin >> flag;
    			if (flag == 'y') {
    				cout << "你已经删除" << deletestd->sName << "成功!";
    				preform->sNext = deletestd->sNext;
    				delete(deletestd->sNext);
    				return j;
    			}
    			else {
    				cout << "你已经取消删除" << deletestd->sNext->sName;
    				return j;
    			}
    		}
    		preform = preform->sNext;
    		deletestd = deletestd->sNext;
    		i = 1;
    	}
    
    	if (i == 1) cout << "没有找到该学生!-_-!\n";
    
    	return 0;//不存在该学生找到了
    }
    //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓选择排序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//
    sMessage getminkey(sm p) {
    	sm minp, exchange, perfrom;
    	if (p->sNext == NULL) {
    		return p;
    	}
    	minp = p;
    	perfrom = p;
    	p = p->sNext;
    	while (p) {
    		if (minp->sNo>p->sNo) {
    			exchange = minp;
    			minp = p;
    			perfrom->sNext = p->sNext;
    			minp->sNext = exchange;//minp是较小值的指针
    		}
    		perfrom = p;
    		p = p->sNext;
    	}
    	return minp;//返回较小值的指针
    }
    sm selectsort(sm head, sm newHead) {
    	sm j, i, temp;
    	if (head->sNext == NULL || newHead == NULL) cout << "没有学生数据,请添加学生\n";
    	i = head;
    	j = newHead;
    	i = i->sNext;
    	while (i != NULL) {//尾插法
    		i = getminkey(i);
    		j->sNext = i;
    		temp = i->sNext;
    		i->sNext = NULL;
    		j = i;
    		i = temp;
    	}
    	head->sNext = newHead->sNext;
    	return newHead;
    }
    //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓导出程序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//
    void savePersonFile(sm student, sc course) {
    	ofstream *outfile[50], out;
    	int j = 0, k = 0;
    	//写入方式为追加
    	student = student->sNext;
    	course = course->cNext;
    	while (student != NULL) {
    		string str = "Project16";
    		//string i;
    		//ostringstream change;
    		str.append(student->sName);
    		//change << j;
    		//i = change.str();
    		//str.append(i);
    		str.append(".txt");
    		outfile[j] = new ofstream(str, ios::ate);
    		*outfile[j] << "\t\t\t\t学生信息:" << endl;
    		*outfile[j] << "\t\t学号:" << student->sNo << endl;
    		*outfile[j] << "\t\t姓名:" << student->sName << endl;
    		if (student->sSex = '1'){
    			*outfile[j] << "\t\t性别:" << "男" << endl;
    		}
    		else {
    			*outfile[j] << "\t\t性别:" << "女" << endl;
    		}
    		*outfile[j] << "\t\t班级:" << student->sClass << endl;
    
    		*outfile[j] << "\t\t\t\t选修课程:" << endl;
    		while (course != NULL) {
    			for (int l = 0; l < nubofCourse; l++) {
    				if (course->stdNo[l] == student->sNo) {
    					k = 1;
    					*outfile[j] << "\t\t课程名称:" << course->cName << endl;
    					*outfile[j] << "\t\t课程编号:" << course->cNo << endl;
    					*outfile[j] << "\t\t开课老师:" << course->scTeacher << endl;
    				}
    			}
    			course = course->cNext;
    		}
    		if (k == 0) *outfile[j] << "\t\t\t没有选修课程:" << endl;
    		student = student->sNext;
    		(*outfile[j]).close();
    		j++;
    	}
    
    }
    void saveCourseToLocal(sc head) {
    	ofstream outfile;
    	outfile.open("course.txt");
    	sc p;
    	p = head->cNext;
    	while (p != NULL) {
    		outfile << p->stdCourstcount << " ";
    		outfile << p->cNo << " ";
    		outfile << p->cName << " ";
    		outfile << p->scTeacher << "\n";
    		if(p->stdCourstcount>0){
    		  for (int i = 0; i < p->stdCourstcount; i++) {
    			  outfile << p->stdNo[i] << "\n";
    		   }
    		}
    		p = p->cNext;
    	}
    }
    void readCourseFromLacal(sc head) {
    	fstream fin("course.txt");
    	if (fin)
    	{
    		sc p;
    		p = head;
    		sc q;
    		int stdCourstcount;
    		string  scTeacher, cNo, cName,std;
    		while (fin >>stdCourstcount >> cNo >> cName >> scTeacher)
    		{
    			q = new Courses;
    			if (stdCourstcount > 0) {
    				for (int i = 0; i < stdCourstcount; i++) {
    					fin >>std;
    					q->stdNo[i] = std;
    				}
    			}
    			q->stdCourstcount = stdCourstcount;
    			q->cNo = cNo;
    			q->cName = cName;
    			q->scTeacher = scTeacher;
    			q->cNext = p->cNext;
    			p->cNext = q;
    		}
    		fin.close();
    	}
    	else
    	{
    		cerr << "打开文件失败!" << endl;
    	}
    
    }
    void saveStudentToLocal(sm head) {
    	ofstream outfile;
    	outfile.open("student.txt");
    	sm p;
    	p = head->sNext;
    	while (p != NULL) {
    		outfile << p->sNo << " ";
    		outfile << p->sName << " ";
    		outfile << p->sSex  << " ";
    		outfile << p->sClass << "\n";
    		p = p->sNext;
    	}
    	outfile.close();
    }
    void readStudentFromLacal(sm head) {
    	fstream fin("student.txt");
    	if (fin)
    	{
    		sm p;
    		p = head;
    		sm q;
    		int rowNum = 0;
    		string sTel;
    		char sSex;
    		string  sClass,sNo,sName;
    		while (fin >> sNo >> sName >> sSex >> sClass)
    		{
    			q = new StudentMessage;
    			q->sNo = sNo;
    			q->sName = sName;
    			q->sSex = sSex;
    			q->sClass = sClass;
    
    			q->sNext = p->sNext;
    			p->sNext = q;
    		}
    		fin.close();
    	}
    	else
    	{
    		cerr << "打开文件失败!" << endl;
    	}
    
    }
    //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓学生选课相关函数↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//
    void stdSelectCourse(sc course, string select, string sNo) {
    	//select是课程编号,sNo选课学生学号
    	int k=0,j = 0;
    	int f = locateCourse(course, select);
    	course = course->cNext;
    	while (course != NULL) {
    		j++; if (j == f) {
    			for (int i = 0; i < course->stdCourstcount; i++) {
    				course->stdNo[course->stdCourstcount] = sNo;
    				cout << "你已经选择了"<<course->cName<<"课程" << endl;
    				k = 1;
    				break;
    			}
    			if(k!=1){
    			course->stdNo[course->stdCourstcount++] = sNo;
    			cout << "\n\t\t\t"<<course->stdNo[course->stdCourstcount - 1] << "恭喜你选课选课成功!";
    			}
    			break;
    		}
    		course = course->cNext;
    	}
    }
    //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓main函数↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//
    void main() {
    	int  i;
    	char s1,c;
    	sm sort, newHead;
        string sname;
    	string numb;
    	StudentMessage std;
    	int flag = 1, cflag = 1;
    	sm head = init();
    	newHead = init();
    	sc chead = initC();
    	aboutMe();
    
    	// 导入学生信息
    	readStudentFromLacal(head);
    	readCourseFromLacal(chead);
    	while (flag == 1) {
    		cout << "\n\n\t\t\t*****************************\n";
    		
    		cout << "\t\t\t   欢迎来到学生信息管理系统\n";
    		cout << "\t\t\t*****************************\n";
    
    		cout << " -------------------------------------------------------------------------------\n";
    		cout << "\t\t  选择功能:\n\t\t\t\t1.添加学生\n\t\t\t\t2.查找学生\n\t\t\t\t3.修改学生\n" <<
    			"\t\t\t\t4.删除学生\n\t\t\t\t5.学生排序\n\t\t\t\t6.课程管理\n\t\t\t\t7.学生选课\n\t\t\t\t8.学生列表\n\t\t\t\t9.导出学生\n\t\t\t\t0.退出学生管理系统";
    		cout << " \n\n-------------------------------------------------------------------------------\n";
    		cout << "\t\t\t请输入你的选择后按Enter键进入:";
    		cin >> s1;
    		//	system("cls");
    		switch (s1) {
    	
    		case '9':
    			system("cls"); 
    			savePersonFile(head, chead);
    			saveCourseToLocal(chead); 
    			saveStudentToLocal(head);
    			cout << "\n\n\n----------------------------------导出学生信息----------------------------------\n";
    			cout << "\n*******************************导出文件成功************************************";
    			cout << "\n!!!!!!!!!!!!!!!已经存储Project16!!!!!!!!!!!!!!!!";
    			break;
    		case '8':
    			system("cls");
    			printfSMessge(head, chead);
    			break;
    		case '0':
    			system("cls");
    			flag = 0;
    			break;
    		case '1':
    			system("cls");
    			cout << "\n\n\n-----------------------------------增加学生-------------------------------------\n";
    			addStudent(head);
    			break;
    		case '2':
    			system("cls");
    			cout << "\n\n\n----------------------------------查找学生信息----------------------------------\n";
    		
    			cout << "1.按学号查询\n2.按姓名查询\n请输入你的选择:";
    			cin >> s1;
    			switch (s1) {
    			case '1':
    				cout << "输入学生学号(6位数字):";
    				cin >> numb;
    				i = locateStdfByNo(head, numb);
    				if (head->sNext == NULL) { cout << "没有学生数据,请添加学生" << endl; }
    				if (0 != i) printfPerson(head, i, chead); else {
    					cout << "没有找到\n";
    				}
    				break;
    			case '2':
    				cout << "输入学生姓名:";
    				cin >> sname;
    				if (head->sNext == NULL) { cout << "没有学生数据,请添加学生" << endl; }
    				i = locateByName(head,sname,chead);
    				if (0 != i) printfPerson(head, i, chead); else {
    					cout << "没有找到\n";
    				}
    				break;
    			}
    			break;
    		case '3':
    			system("cls");
    			cout << "\n\n\n----------------------------------更新学生信息----------------------------------\n";
    		
    			i = updates(head);
    			if (0 != i) printfPerson(head, i, chead); else {
    				cout << "没有找到该学生!-_-!\n";
    			}
    			break;
    		case '4':system("cls");
    			cout << "\n\n\n----------------------------------删除学生-------------------------------------\n";
    			
    			i = deletesMessage(head);
    			break;
    		case '5': 
    			system("cls");
    			cout << "\n\n\n----------------------------------学生排序信息----------------------------------\n";
    
    			sort = selectsort(head, newHead);
    			if (sort) printfSMessge(head, chead);
    			
    			//printfSMessge(head, chead);
    			break;
    		case '6':
    			system("cls");
    			cflag = 1;
    			while (cflag == 1){
    				cout << "\n\n\n------------------------------课程管理系统-------------------------------------\n";
    				cout << "\n\t\t输入你选择的功能:\n\t\t\t\t1.添加课程信息\n\t\t\t\t2.查找课程\n\t\t\t\t3.修改课程信息\n\t\t\t\t4.删除课程\n\t\t\t\t5.显示课程\n\t\t\t\t0.退出图书管理\n";
    				cout << "\n------------------------------课程管理系统-------------------------------------\n\n请输入你的选择:";
    				cin >> c;
    				switch (c)
    				{
    				case '1':
    					system("cls");
    					cout << "\n\n\n----------------------------------增加课程-------------------------------------\n";
    					addCourse(chead); ptfSCourse(chead);
    					break;
    				case '2':
    					system("cls");
    					cout << "\n\n\n----------------------------------查找课程信息----------------------------------\n";
    					
    					cout << "输入课程编号:";
    					cin >> numb;
    					if (chead->cNext == NULL) { cout << "没有课程数据,请添加课程" << endl;}
    					else i = locateCourse(chead, numb);
    					if (i != 0) printfCourse(chead, i); else {
    						cout << "没有找到课程\n";
    					}break;
    				case '3':
    					system("cls");
    					cout << "\n\n\n----------------------------------更新课程信息----------------------------------\n";
    			
    					i = updatesCourse(chead);
    					if (i != 0) printfCourse(chead, i); else {
    						cout << "没有找到该课程课程\n";
    					}
    					break;
    				case '4':
    					system("cls");
    					cout << "\n\n\n----------------------------------删除课程--------------------------------------\n";
    					deletesCourse(chead); break;
    				case '5':
    					system("cls");
    					cout << "\n\n\n----------------------------------显示课程--------------------------------------\n";
    					ptfSCourse(chead);
    					break;
    					case '0':
    					system("cls");
    					cflag = 0;
    					break;
    					default:
    						break;
    				}
    		  
    			} 
    			break;
    		case '7':
    			system("cls");
    			cout << "\n\n\n-----------------------------------学生选课-------------------------------------\n";
    		
    			bool f = true;
    			if(ptfSCourse(chead)!=0){
    			string stdNo, select;
    			while (f) {
    				if (head->sNext == NULL) {
    					cout << "没有学生信息,选课成功"; f = false;
    				}
    				cout << "请输入你的(学生)的学号:";
    				cin >> stdNo;
    				f = false;
    				i = locateStdfByNo(head, stdNo);
    				if (0 == i) {
    					cout << "不存在该学生,请重新输入\n"; f = true;
    				}
    			}
    			f = true;
    			while(f){
    				f = false;
    				cout << "请输入你要选的课程编号:";
    				cin >> select;
    				if (locateCourse(chead, select) == 0) {
    					cout << "不存在该课程,请重新输入\n"; f = true; ptfSCourse(chead);
    				}
    			}
    			stdSelectCourse(chead,select, stdNo);
    			}
    			break;
    		
    		}
    		
    		cflag = 1;
    	}
    	system("cls");
    	goodbye();
    }
    
    当然自己水平有限,写的不好,还有很多bug没有完善,希望大家见谅,仅仅供大家参考,希望吐槽。
    展开全文
  • 系统从功能上划分可分为以下几大模块:功能模块管理,组权限管理,学生信息管理,课程信息管理,学生成绩管理,授课信息管理,学生信息查询,学生成绩统计等几大模块。以下将对各子模块进行说明。 功能模块管理:将系统...
  • 学生成绩管理系统

    2012-12-17 22:05:31
    学生成绩管理系统从功能上划分可分为以下几大模块: 1.学生信息管理 学生信息管理模块:设置学生基本信息,并可以对学生信息进行添加、修改、删除。 2.课程信息管理 课程信息管理:设置课程号,课程名,任课...
  • C语言程序设计结课实验:学生管理系统。本系统通过多模块化设计进行开发,包含三个.c文件(main.c、function.c和extra.c)、一个function.h文件和一个student.txt文件。实现的功能有:对学生的学号自动分配,对学生...
  • 学生管理系统 (2013年)

    2021-05-12 11:46:12
    对系统的构架进行分析,由此划分出各个模块,包括用户登陆模块,系统管理模块,班级管理模块,学生档案管理模块,学生交费管理模块,课程管理模块,成绩管理模块,打印报表模块,退出系统模块以及帮助。详细介绍了...
  • 学生宿舍管理系统

    2015-06-16 15:02:58
    学生宿舍管理系统,包括对功能模块的描述,功能模块划分,ER图的设计
  • 学生综合信息管理系统 本系统总共划分六个基本模块:用户管理,院系管理,成绩管理,学籍管理,课管理,系统帮助 开发工具的选择:建议选用.net +SQL Server,或者学生可以根据系统的需要选择所用的编程语言与数据库...
  • 学生信息管理系统 asp

    热门讨论 2009-11-12 01:24:32
    § 3.3.3 学生管理系统模块详细介绍 22 第四章 学生信息管理系统实施 24 § 4.1 创建数据库 24 § 4.2 连接数据库 24 § 4.3 系统功能模块的实现 28 § 4.3.1 用户登陆模块实现 28 § 4.3.2 学生选课功能的实现 31 ...
  • 学生信息管理系统

    2013-06-24 22:04:31
    一、题目:学生信息管理系统 二、目的与要求 1. 目的: (1) 掌握面向对象程序设计的基本思路和方法; (2) 了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程; (3) 进一步熟悉C++...
  • 学生管理系统(asp)

    热门讨论 2008-09-04 14:04:53
    使用该系统有三个角色,即管理员、学生和教师用户。管理员的权限最高,包括设置系统登陆信息, 用户基本信息、查看,修改,删除等、同时还具有查询各个模快的功能。老师和学生可以实现基本信息查询和基本添加删除的...
  • 3.1 系统功能功能模块划分 8 3.1.1 系统功能描述 8 3.1.2 系统功能模块图 10 3.2 数据库设计 12 3.2.1 数据库需求分析 12 3.2.2 数据库概念结构设计 12 3.2.3 数据库逻辑结构设计 15 3.2.4数据表之间的依赖关系 17 ...
  • WEB课设之学生成绩管理系统

    千次阅读 多人点赞 2019-07-18 17:40:44
    WEB课设之学生成绩管理系统 一、设计内容 学校每年都会有学生基本信息变动,也会举行期中期末考试。如何有效地管理这些学生的基本信息和成绩,帮助学校和老师掌握学生的基本情况,这就是学生成绩管理系统需要完成...

    WEB课设之学生成绩管理系统

    一、设计内容

    学校每年都会有学生基本信息变动,也会举行期中期末考试。如何有效地管理这些学生的基本信息和成绩,帮助学校和老师掌握学生的基本情况,这就是学生成绩管理系统需要完成的功能。学生成绩管理系统主要是用来管理学生基本信息数据与学生成绩的系统。需要提供如录入、删除、修改、查找学生基本信息以及成绩,甚至个别学生或者全体学生成绩报表的导出和学生成绩柱状图的生成。

    1、 系统需求分析
    1.1 系统功能分析
    本系统主要的功能是向学校提供学生的基本信息和考试成绩。
    本系统主要有以下几项功能:
    a、用户登录相应账号并且输入对应密码才能进入系统进行相应操作
    b、添加学生功能:姓名、学号、性别、出生年月日。(学号系统会自动生成且唯一)
    c、根据学生学号或者姓名查找学生信息功能:在界面上显示姓名、学号和成绩
    d、学生信息的修改与删除功能:不能修改学号。
    e、根据学生学号查找学生成绩功能:在界面上显示姓名、学号和成绩。
    f、根据学生姓名(支持模糊匹配)查找学生成绩功能:并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来。
    g、修改添加学生成绩功能:每个人都有数学、Java、英语、体育四门课,可分课程输入成绩。
    h、生成学生学习情况报表功能:报表包含学号、姓名、各科目成绩及对应的该科目班级平均值,总成绩以及班级总成绩平均值,用户可选择分成个人或者全班学习情况导出至excel文件。
    i、支持对单个学生各科成绩生出柱状分布图。

    1.2 系统功能模块设计(划分)
    根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图 1-1所示。
    在这里插入图片描述
    图1-1 学生成绩管理系统功能模块图

    1.3 与其它系统的关系
    学生成绩管理系统是校园信息管理系统的一个组成部分。它为其它系统如班级信息管理系统、教学管理系统、宿舍分配系统等提供学生的基本情况。同时需要其他系统提供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数据。

    1.4 数据流程图
    学生成绩管理系统的数据流程如图1-2所示。
    在这里插入图片描述
    图1-2 学生成绩管理系统数据流程图

    2、数据库设计
    2.1 数据库需求分析
    根据上一节图1-2学生成绩管理系统数据流程图,可以列出以下数据项、数据结构以及外部数据支持。
    记录学生信息所需的数据项和数据结构:
    A、学生信息表:学号、姓名、性别、生日。
    B、学生成绩表:学号、姓名、数学成绩、Java成绩、英语成绩、体育成绩。
    C、学生成绩导出表:学号、姓名、数学成绩、Java成绩、英语成绩、体育和四门科目成绩总分数。
    外部数据支持:
    A、 用户登录表:用户名、密码、用户身份证号码。

    2.2 数据库概念结构设计
    下图2-1是本系统所需数据的 E-R 模型图。
    在这里插入图片描述
    图2-1 学生成绩管理系统所需数据的 E-R 模型图

    2.3 数据库逻辑结构设计
    根据系统E-R图,需要设计3个数据表来存放学生的基本信息和成绩信息。为了系统的完整,系统中包括了应用程序设计中所需的1个外部数据表。这4个数据表如表1到表4所示。
    在这里插入图片描述
    表1 student学生信息表
    在这里插入图片描述
    表2 score学生成绩表
    在这里插入图片描述
    表3 report学生成绩导出表
    在这里插入图片描述
    表4 dlb用户登录表

    二、实现方法

    1、功能说明
    1.1 学生成绩管理系统用户注册登录和登录密码的修改
    1.2 学生个人基本信息输入
    1.3 学生个人基本信息查询、修改和删除
    1.4 学生成绩查询和修改
    1.5 学生个人或者全班成绩导出文件
    1.6 学生个人成绩生成柱状图

    2、系统界面设计
    完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。我们的系统主要有以下几个界面:
    2.1 用户账号密码信息注册界面
    2.2 用户账号密码登录界面
    2.3 用户登录失败界面
    2.4 用户密码修改界面
    2.5 学生个人基本信息录入界面
    2.6 学生个人基本信息查找界面
    2.7 查找学号失败界面
    2.8 查找姓名失败界面
    2.9 学生个人基本信息修改界面
    2.10 学生个人基本信息删除界面
    2.11 学生个人成绩查询界面
    2.12 学生个人成绩修改界面
    2.13 学生个人或者全部学生成绩导出文件界面
    2.14 学生个人成绩柱状图生成界面
    2.15 学生个人成绩柱状图显示界面
    2.16 用户操作失败界面
    2.17 用户登录主界面

    3、各功能模块的实现
    在这里插入图片描述
    图3-1用户账号密码信息注册界面

    在这里插入图片描述
    图3-2用户账号密码登录界面

    在这里插入图片描述
    图3-3学生个人基本信息录入界面

    在这里插入图片描述
    图3-4学生个人基本信息查找界面

    在这里插入图片描述
    图3-5学生个人基本信息修改界面

    在这里插入图片描述
    图3-6学生个人或者全部学生成绩导出文件界面

    以上只是WEB课设之学生成绩管理系统部分设计内容,如果想要WEB课设之学生成绩管理系统资源请点击下面资源链接进行下载,希望能帮助到你!

    独家资源:点击资源下载链接
    在这里插入图片描述

    各位大佬如有更好的建议或者不清楚的地方让各位产生了疑问,各位可以在评论中提出!

    展开全文
  • asp.net 学生成绩管理系统

    热门讨论 2011-05-11 17:22:57
    目的:通过调研目前教学管理系统中的成绩管理子系统,了解成绩管理子系统的业务流程;通过分析比较,结合用户对成绩管理子系统的改进意见与实现情况,运用面向对象思想方法,设计和实现一个满足功能和性能,并有所...
  • 数据库课设之学生信息管理系统

    万次阅读 多人点赞 2019-07-13 17:31:10
    数据库课设之学生信息管理系统 一、系统需求分析 学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生 的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。 ...

    数据库课设之学生信息管理系统

    一、系统需求分析

    学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生
    的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。

    1.1 系统功能分析
    本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。系统
    的主要功能有:
    a、学生个人信息输入,包括:姓名、性别、院系、生日、籍贯、生源所在地等。
    b、学生流动情况的输入,包括:转系、休学、复学、退学、毕业。
    c、奖惩情况的输入。
    d、学生个人情况查询和修改,包括流动情况和奖罚情况。

    1.2 系统功能模块设计(划分)
    根据系统功能要求可以将系统分解成几个模
    块来分别设计应用程序界面,如图 1 所示。
    在这里插入图片描述
    1.3 与其它系统的关系
    学生信息管理系统是校园信息管理系统的一个组成部分。它为其它系统,如班级信息管理系统、
    教学管理系统、成绩单系统、宿舍分配系统等,提供学生的基本情况。同时需要其他系统提
    供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数
    据。

    1.4 数据流程图
    学生信息管理系统的数据流程如图 2 所示。
    在这里插入图片描述

    二、数据库设计

    2.1 数据库需求分析
    根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:
    a、学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。
    b、处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效。
    c、奖励记录:记录号、级别、奖励对象、记录时间、详细描述。
    d、学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。
    所需的外部数据支持:
    e、班级:班级编号、班级名称、所属院系。
    f、院系:代码、名称。

    2.2 数据库概念结构设计
    图 3 是本系统所需数据的 E-R 模型图。
    在这里插入图片描述

    三、各功能模块的设计与实现

    3.1 功能说明
    1、学生个人信息输入
    2、学籍变更情况的输入
    3、奖励情况的输入
    4、处罚情况的输入
    5、学生个人情况查询和修改

    3.2 用户界面设计
    完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。由于本
    系统管理内容比较简单,且为校园管理信息系统的一部分,因此使用一个窗体不同的标签页
    来完成系统要求的 5 项功能。
    我们把学生信息管理系统的窗体分成____个主要部分,如图____所示。
    1、应用程序主窗体的创建
    2、学生个人信息输入界面
    3、学籍变更情况输入界面
    4、奖励情况输入界面
    5、处罚情况输入界面
    6、学生个人情况查询和修改界面

    3.3 各功能模块的实现
    1、学生个人信息输入
    2、学籍变更情况输入
    3、奖励情况输入
    4、处罚情况输入
    5、学生个人情况查询和修改
    在这里插入图片描述

    四、系统实现

    根据系统E-R图,需要设计4个数据表来存放学生的信息。为了系统的完整,系统中包括了应用程序设计中所需的4个外部数据表。为了优化数据表结构,部分字段采用代码形式,因此需要附加3个代码表。这11个数据表如表1到表11所示。

    表1 student学生个人信息表
    在这里插入图片描述
    表2 studentxj学籍变更信息表
    在这里插入图片描述
    表3 reward奖励记录信息表
    在这里插入图片描述
    表4 punishment处罚记录信息表
    在这里插入图片描述
    表5 class班级信息表
    在这里插入图片描述
    表6 department院系信息表
    在这里插入图片描述
    表7 change_code学籍变动代码表
    在这里插入图片描述
    表8 reward_levels奖励等级代码表
    在这里插入图片描述
    表9 punish_levels处罚等级代码表
    在这里插入图片描述
    表10 studentdlb学生账号密码登录表
    在这里插入图片描述
    表11 teacherdlb老师账号密码登录表
    在这里插入图片描述
    4.1、学生和教务办老师的账号密码登陆界面
    学生和教务办老师的账号密码登陆界面请见如图3-1学生和教务办老师的账号密码登陆界面。这个界面是进入学生信息管理系统的钥匙并且设置了教务办老师和学生两个权限,为了实现不同权限的登录功能,所以在数据库中设计了学生账号密码登录表和老师账号密码登录表两个表格,然后用户可以选择自己的身份权限输入自己的账号密码进行登录,然后系统通过连接数据库的两个表格去和用户输入的账号密码去相应匹配,只有匹配成功之后才会出现不同的用户主界面,然后才可以进行数据操作。(用户名的填写格式界面文本框有提示)
    实现学生和教务办老师的账号密码登陆界面的全部代码:

    package xr06;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Vector;
    import javax.swing.*;
    
    import xr06.DbProcess;
    public class Student_management_login_system extends JFrame implements ActionListener {
    
    	JButton jb1,jb2,jb3=null;  
        JRadioButton jrb1,jrb2=null;  
        JPanel jp0,jp1,jp2,jp3,jp4=null;  
        JTextField jtf=null;  
        JLabel jlb0,jlb1,jlb2,jlb3=null;  
        JPasswordField jpf=null;  
        ButtonGroup bg=null;
        private static DbProcess dbProcess;
        public static void main(String[] args) {  
    
    		Student_management_login_system smls=new Student_management_login_system();  
        }  
        public Student_management_login_system()
        {
        	setIconImage(Toolkit.getDefaultToolkit().getImage("G:\\timg-1.jpg"));//图片可以自己选择换
     
        	jb1=new JButton("登录 (login)");  
        	jb1.setBounds(32, 5, 150, 27);
        	jb1.setBackground(Color.ORANGE);
            jb2=new JButton("重置 (resetting)"); 
            jb2.setBounds(196, 5, 204, 27);
            jb2.setBackground(Color.ORANGE);
            jb3=new JButton("退出 (exit)");
            jb3.setBounds(414, 5, 150, 27);
            jb3.setForeground(Color.BLACK);
            jb3.setBackground(Color.ORANGE);
            jb1.addActionListener(this);  
            jb2.addActionListener(this);  
            jb3.addActionListener(this);  
            jrb1=new JRadioButton("教务办老师 (teacher)");  
            jrb1.setFont(new Font("宋体", Font.BOLD, 15));
            jrb1.setBounds(216, 30, 201, 27);
            jrb1.setBackground(new Color(255, 255, 153));
            jrb2=new JRadioButton("学生 (student)");  
            jrb2.setFont(new Font("宋体", Font.BOLD, 15));
            jrb2.setBounds(423, 30, 163, 27);
            jrb2.setBackground(new Color(255, 255, 153));
            bg=new ButtonGroup();  
            bg.add(jrb1);  
            bg.add(jrb2);  
            jrb2.setSelected(true);
            jp0=new JPanel(); 
            jp0.setBounds(0, 0, 602, 100);
            jp0.setBackground(new Color(255, 255, 153));
            jp1=new JPanel();  
            jp1.setBounds(0, 99, 602, 55);
            jp1.setBackground(new Color(255, 255, 153));
            jp2=new JPanel();  
            jp2.setBounds(0, 152, 602, 70);
            jp2.setBackground(new Color(255, 255, 153));
            jp3=new JPanel();  
            jp3.setBounds(0, 221, 602, 86);
            jp3.setBackground(new Color(255, 255, 153));
            jp4=new JPanel(); 
            jp4.setBounds(0, 307, 602, 93);
            jp4.setBackground(new Color(255, 255, 153));
            jlb0=new JLabel("\u5B66\u751F\u4FE1\u606F\u7BA1\u7406\u7CFB\u7EDF");
            jlb0.setFont(new Font("方正舒体", Font.BOLD, 40));
            jlb0.setBounds(129, 36, 351, 51);
            jlb1=new JLabel("用户名 (user name):");  
            jlb1.setFont(new Font("宋体", Font.BOLD, 18));
            jlb1.setBounds(54, 25, 236, 18);
            jlb2=new JLabel("\u5BC6  \u7801 (pass-word)\uFF1A");  
            jlb2.setFont(new Font("宋体", Font.BOLD, 18));
            jlb2.setBounds(54, 35, 227, 18);
            jlb3=new JLabel("\u8EAB   \u4EFD (Identity)\uFF1A"); 
            jlb3.setFont(new Font("宋体", Font.BOLD, 15));
            jlb3.setBounds(29, 26, 201, 34);
            jtf=new JTextField(15);  
            jtf.setBounds(253, 24, 281, 24);
            jpf=new JPasswordField(15); 
            jpf.setBounds(253, 34, 281, 24);
            jtf.addFocusListener(new JTextFieldHintListener("请输入学号/教职工号", jtf));
            jp0.setLayout(null);
            jp0.add(jlb0);
            jp1.setLayout(null);
            
            jp1.add(jlb1);  
            jp1.add(jtf);  
            jp2.setLayout(null);
    
            jp2.add(jlb2);  
            jp2.add(jpf);  
            jp3.setLayout(null);
    
            jp3.add(jlb3);      //添加标签
            jp3.add(jrb1);  
            jp3.add(jrb2);  
            jp4.setLayout(null);
    
            jp4.add(jb1);       //添加按钮
            jp4.add(jb2);  
            jp4.add(jb3);
            getContentPane().setLayout(null);
            getContentPane().add(jp0);
            getContentPane().add(jp1);  
            getContentPane().add(jp2);  
            getContentPane().add(jp3);  
            getContentPane().add(jp4);
            this.setTitle("学生信息管理系统 ");          
            this.setSize(605,433);         
            this.setLocation(700, 300);           
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //设置当关闭窗口时,保证JVM也退出 
            this.setVisible(true);  
            this.setResizable(false); 
        }
    	public void actionPerformed(ActionEvent e) {
    		if(e.getActionCommand().equals("登录 (login)")  
    				&& !jtf.getText().isEmpty()&&!jpf.getText().isEmpty()){
    				System.out.println("actionPerformed(). 登录 (login)");
    				String jtfQueryField = jtf.getText().trim();
    				String jpfQueryField = jpf.getText().trim();
    				queryProcess(jtfQueryField,jpfQueryField);
    				
    				}
    		else if(e.getActionCommand().equals("登录 (login)")  
    				&& jtf.getText().isEmpty()&&!jpf.getText().isEmpty()){
    			JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);  
    			}//只有用户名没有输入
    		else if(e.getActionCommand().equals("登录 (login)")  
    				&& jtf.getText().isEmpty()&& jpf.getText().isEmpty()){
    			JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);  
    			}//用户名和密码都没有输入
    		else if(e.getActionCommand().equals("登录 (login)")  
    				&& !jtf.getText().isEmpty()&&jpf.getText().isEmpty()){
    			JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);  
    			}//只有密码没有输入
    		else if(e.getActionCommand().equals("重置 (resetting)")){
    	        jtf.setText("");  
    	        jpf.setText("");  
    			}
    		else{
    			int n=JOptionPane.showConfirmDialog(null,"确定退出系统登陆界面?", "学生信息管理系统",JOptionPane.YES_NO_OPTION);
    			if(n==0) {
    				this.setVisible(false);
    			}
    		}
    	}	
    		public void queryProcess(String jtfQueryField,String jpfQueryField)
    		{
    			if(jrb1.isSelected())  
                {  
    				try{
    					// 建立查询条件
    					String jtfsql = "select * from teacherdlb where ";
    					jtfsql = jtfsql + "tuserNo";
    					jtfsql = jtfsql + " = ";
    					jtfsql = jtfsql + "'" + jtfQueryField + "';";
    					System.out.println("queryProcess(). jtfsql = " + jtfsql);
    					dbProcess = new DbProcess();
    					dbProcess.connect();
    					ResultSet jtfrs = dbProcess.executeQuery(jtfsql);
    					jtfrs.next();
    					System.out.print(jpfQueryField);
    					if(jtfrs.getString("tuserNo").equals(jtfQueryField)&&jtfrs.getString("tpswd").equals(jpfQueryField))  
    			        {            
    			            JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);           
    			            dispose();        
    			            jtf.setText("");  
    				        jpf.setText("");             
    				        Teacher t=new Teacher();       //创建新界面  
    			        }else 
    			        {  
    			            JOptionPane.showMessageDialog(null,"密码错误!请重新输入密码!","提示消息",JOptionPane.WARNING_MESSAGE); 
    			            jpf.setText("");
    			        }
    					dbProcess.disconnect();
    				}catch(SQLException sqle){
    					System.out.println("sqle = " + sqle);
    					JOptionPane.showMessageDialog(null,
    						"用户名或者密码错误!","错误",JOptionPane.ERROR_MESSAGE);
    				}catch(Exception e){
    					System.out.println("e = " + e);
    					JOptionPane.showMessageDialog(null,
    						"用户名或者密码错误!","错误",JOptionPane.ERROR_MESSAGE);
    				}                              //连接到教师的方法 页面
                }
    			if(jrb2.isSelected()) //学生在登录系统  
                {  
                	try{
        				// 建立查询条件
        				String jtfsql = "select * from studentdlb where ";
        				jtfsql = jtfsql + "suserNo";
        				jtfsql = jtfsql + " = ";
        				jtfsql = jtfsql + "'" + jtfQueryField + "';";
        				System.out.println("queryProcess(). jtfsql = " + jtfsql);
        				dbProcess = new DbProcess();
        				dbProcess.connect();
        				ResultSet jtfrs = dbProcess.executeQuery(jtfsql);
        				jtfrs.next();
        				System.out.print(jpfQueryField);
        				if(jtfrs.getString("suserNo").equals(jtfQueryField)&&jtfrs.getString("spswd").equals(jpfQueryField))  
        		        {            
        		            JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);           
        		            dispose();        
        		            jtf.setText("");  
        			        jpf.setText("");             
        		            Student ui=new Student();      //创建新界面  
        		        }else 
        		        {  
        		            JOptionPane.showMessageDialog(null,"密码错误!请重新输入密码!","提示消息",JOptionPane.WARNING_MESSAGE); 
        		            jpf.setText("");
        		        }
        				dbProcess.disconnect();
        			}catch(SQLException sqle){
        				System.out.println("sqle = " + sqle);
        				JOptionPane.showMessageDialog(null,
        					"用户名或者密码错误!","错误",JOptionPane.ERROR_MESSAGE);
        			}catch(Exception e){
        				System.out.println("e = " + e);
        				JOptionPane.showMessageDialog(null,
        					"用户名或者密码错误!","错误",JOptionPane.ERROR_MESSAGE);
        			}                              //连接到学生的方法 页面
                }  
    
    
    			
    		}
    
    }
    
    

    图3-1学生和教务办老师的账号密码登陆界面
    在这里插入图片描述
    4.2、学生用户主界面
    学生用户主界面请见如图3-2学生用户主界面。首先这个界面是在选择学生权限用户登录之后出现的,这个界面可以供用户选择查询各式个人信息以及了解学校学院相关的一些常识或者退出系统(点击相应的按钮,然后会出现相应的功能界面),同时为了使界面更加优化,特别插入了“超越梦想”为主题的图片,希望学生用户能够好好提升自己,为梦想努力奋斗,超越自我,迎来美丽人生。
    实现学生用户主界面的全部代码:

    package xr06;
    import java.util.Vector;
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.ImageIcon;
    import java.awt.Toolkit;
    
    public class Student extends JFrame implements ActionListener {
    
    	private JPanel contentPane;
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		
    		Student ui=new Student();
    						
    	}
    	/**
    	 * Create the frame.
    	 */
    	public Student() {
    		setIconImage(Toolkit.getDefaultToolkit().getImage("G:\\timg-1.jpg"));//插入图片
    		this.setResizable(false);
    		setTitle("学生信息管理系统");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(700, 320, 579, 409);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
    		
    		JPanel panel = new JPanel();
    		panel.setBackground(new Color(255, 255, 153));
    		panel.setBounds(0, 0, 573, 374);
    		contentPane.add(panel);
    		panel.setLayout(null);
    			
    		
    		JLabel lblNewLabel = new JLabel("同学你好!欢迎登陆学生信息管理系统");
    		lblNewLabel.setFont(new Font("宋体", Font.BOLD, 20));
    		lblNewLabel.setForeground(new Color(255, 255, 0));
    		lblNewLabel.setBounds(94, 24, 366, 32);
    		panel.add(lblNewLabel);
    		
    		JButton button_1 = new JButton("个人信息查询");
    		button_1.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				dispose();
    				Personcx px = new Personcx();
    			}
    		});
    		button_1.setBounds(86, 90, 167, 32);
    		panel.add(button_1);
    		
    		JButton button_2 = new JButton("个人奖励记录");
    		button_2.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				dispose();
    				Personjl xj = new Personjl();
    			}
    		});
    		button_2.setBounds(86, 148, 167, 32);
    		panel.add(button_2);
    		
    		JButton button_3 = new JButton("个人学籍变更记录");
    		button_3.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				dispose();
    				Personxj xj = new Personxj();
    			}
    		});
    		button_3.setBounds(293, 90, 167, 32);
    		panel.add(button_3);
    		
    		JButton button_4 = new JButton("个人处分记录");
    		button_4.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				dispose();
    				Personcf cf = new Personcf();
    			}
    		});
    		button_4.setBounds(293, 148, 167, 32);
    		panel.add(button_4);
    		
    		JButton button_5 = new JButton("退出");
    		button_5.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				int n=JOptionPane.showConfirmDialog(null,"确定退出该系统?", "学生信息管理系统",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					dispose();
    					Student_management_login_system sm=new Student_management_login_system();
    				}
    			}
    		});
    		button_5.setForeground(Color.RED);
    		button_5.setBounds(293, 206, 167, 32);
    		panel.add(button_5);
    		
    		JLabel label = new JLabel("         温馨提示:新生个人登陆系统之后请先查看入学须知");
    		label.setFont(new Font("宋体", Font.PLAIN, 16));
    		label.setForeground(new Color(153, 255, 51));
    		label.setBounds(25, 277, 487, 41);
    		panel.add(label);
    		
    		JButton button = new JButton("入学须知");
    		button.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				dispose();
    				Personrx rx = new Personrx();
    			}
    		});
    		button.setBounds(86, 206, 167, 32);
    		panel.add(button);
    		
    		JLabel lblNewLabel_1 = new JLabel("New label");
    		lblNewLabel_1.setIcon(new ImageIcon("C:\\Users\\\u8C22\u5112\\Pictures\\Camera Roll\\29755920_1478787143469_1024x1024.jpg"));
    		lblNewLabel_1.setBounds(0, 0, 573, 400);
    		panel.add(lblNewLabel_1);
    		this.setVisible(true);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    }
    
    

    图3-2学生用户主界面
    在这里插入图片描述
    3.3、老师学生账号密码界面
    老师学生账号密码界面请见如图3-3老师学生账号密码界面。这个界面的设计同样是专门为教务办用户设计,能通过点击全部查询,查询到系统录入的所有同学和教务办老师的账号密码,这个界面信息显示也采用了多表查询,将学生账号密码登录表、老师账号密码登录表两个表格联合查询;然后也可以通过下拉框选择相应想要选择查询的内容比如老师账号,然后点击查询获取相对应的老师账号密码信息。如果修改了账号和密码点击更新按钮,又确认实施该操作,那么会退出系统返回到原始登录界面,其它按钮的功能同上。
    实现老师学生账号密码界面的全部代码:

    package xr06;
    import java.util.Vector;
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;
    import org.omg.CORBA.PUBLIC_MEMBER;
    import java.awt.color.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class Studentzh extends JFrame implements ActionListener {
    	// 定义基本信息组件
    		JLabel jLStudentxjTable = null;// 学生学籍表
    		JLabel jLSelectQueryField = null;// 选择
    		JLabel mh = null;// :
    		JLabel teacherzh = null;// 老师账号
    		JLabel teachermm = null;// 老师密码
    		JLabel studentzh = null;// 学生账号
    		JLabel studentmm = null;// 学生密码
    		JLabel ms = null;// 描述
    		JLabel dm = null;// 代码
    		JLabel sm = null;// 说明
    		/// 定义文本框
    		JTextField jTFQueryField = null;// 查询字段
    		JTextField jTFSTz = null;// 老师账号
    		JTextField jTFSTP = null;// 老师密码
    		JTextField jTFSSZ = null;// 学生账号
    		JTextField jTFSSP = null;// 学生密码
    		JTextField jTFSDES = null;// 描述
    		JTextField jTFSCode = null;// 代码
    		JTextField jTFSsm = null;// 说明
    		// 定义按钮
    		JButton jb5 = null;// 顶部选择的四个表+1个菜单
    		JButton jBQuery = null;// 查询
    		JButton jBQueryAll = null;// 查询所有记录
    		JButton jBInsert = null;// 插入
    		JButton jBUpdate = null;// 更新
    		JButton jBDeleteCurrentRecord = null;// 删除当前记录
    		JButton jBDeleteAllRecords = null;// 删除所有记录
    		JButton EXIT = null;// 退出
    		// 定义其他
    		JComboBox<String> jCBSelectQueryField = null;// 查询字段
    		JComboBox<String> jCBsexQueryField = null;// 
    		JPanel jP1, jP2, jP3, jP4, jP5, jP6, jP8 = null;
    		JPanel jPTop, jPBottom = null;
    		DefaultTableModel studentTableModel = null;
    		JTable studentJTable = null;
    		JScrollPane studentJScrollPane = null;
    		Vector studentVector = null;
    		Vector titleVector = null;
    		private static DbProcess dbProcess;
    		String SelectQueryFieldStr = "老师账号";
    		public static void main(String[] args) {
    			Studentzh ss = new Studentzh();
    		}
    
    		// ****************************事件判断**********************
    		public Studentzh() {
    			setIconImage(Toolkit.getDefaultToolkit().getImage("G:\\timg-1.jpg"));
    			this.setResizable(false);
    			jLSelectQueryField = new JLabel("选择");
    			jLSelectQueryField.setBounds(5, 9, 30, 18);
    			mh = new JLabel(" : ");
    			mh.setBounds(192, 9, 24, 18);
    			teacherzh = new JLabel("老师账号:");
    			teacherzh.setBounds(5, 25, 68, 18);
    			teachermm = new JLabel("老师密码:");
    			teachermm.setBounds(323, 25, 68, 18);
    			// 文本框创建
    			jTFQueryField = new JTextField(10);// 查询字段
    			jTFQueryField.setBounds(214, 6, 106, 24);
    			jTFSTz = new JTextField(15);// 老师账号
    			jTFSTz.setBounds(79, 18, 215, 24);
    			jTFSTP = new JTextField(15);// 老师密码
    			jTFSTP.setBounds(395, 18, 215, 24);
    			jBQuery = new JButton("查询选择内容");
    			jBQuery.setBounds(334, 5, 155, 27);
    			jBQuery.setFont(new Font("宋体", Font.BOLD, 15));
    			jBQueryAll = new JButton("查询所有记录");
    			jBQueryAll.setBounds(503, 5, 155, 27);
    			jBQueryAll.setFont(new Font("宋体", Font.BOLD, 15));
    			jBQuery.addActionListener(this);
    			jBQueryAll.addActionListener(this);
    			// 建立下拉框
    			jCBSelectQueryField = new JComboBox<String>();// 查询字段
    			jCBSelectQueryField.setBounds(37, 6, 155, 24);
    			jCBSelectQueryField.addItem("老师账号");
    			jCBSelectQueryField.addItem("老师密码");
    			jCBSelectQueryField.addItem("学生账号");
    			jCBSelectQueryField.addItem("学生密码");
    			jCBSelectQueryField.addItemListener(new ItemListener() {// 下拉框事件监听
    				public void itemStateChanged(ItemEvent event) {
    					switch (event.getStateChange()) {
    					case ItemEvent.SELECTED:
    						SelectQueryFieldStr = (String) event.getItem();
    						System.out.println("选中:" + SelectQueryFieldStr);
    						break;
    					case ItemEvent.DESELECTED:
    						System.out.println("取消选中:" + event.getItem());
    						break;
    					}
    				}
    			});
    
    			studentVector = new Vector();
    			titleVector = new Vector();
    			// 定义表头
    			titleVector.add("老师账号");
    			titleVector.add("老师密码");
    			titleVector.add("学生账号");
    			titleVector.add("学生密码");
    			studentJTable = new JTable(studentVector, titleVector);
    			studentJTable.setPreferredScrollableViewportSize(new Dimension(400, 160));
    			studentJScrollPane = new JScrollPane(studentJTable);
    			studentJScrollPane.setBounds(0, 0, 480, 172);
    			// 分别设置水平和垂直滚动条自动出现
    			studentJScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    			studentJScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    
    			// 为表格添加监听器
    			studentJTable.addMouseListener(new MouseAdapter() {
    				public void mouseClicked(MouseEvent e) {
    					int row = ((JTable) e.getSource()).rowAtPoint(e.getPoint()); // 获得行位置
    					System.out.println("mouseClicked(). row = " + row);
    					Vector v = new Vector();
    					v = (Vector) studentVector.get(row);
    
    					jTFSTz.setText((String) v.get(0));// 老师账号
    					jTFSTP.setText((String) v.get(1));// 老师密码
    					jTFSSZ.setText((String) v.get(2));// 学生账号
    					jTFSSP.setText((String) v.get(3));// 学生密码
    				}
    			});
    
    			jP1 = new JPanel();
    			jP1.setBounds(356, 17, 8, 2);
    			jP3 = new JPanel();
    			jP3.setBounds(98, 55, 480, 172);
    			jP3.setBackground(new Color(204, 51, 0));
    			jP4 = new JPanel();
    			jP4.setBackground(new Color(255, 255, 102));
    			jP4.setBounds(0, 13, 682, 45);
    			jP5 = new JPanel();
    			jP5.setBackground(new Color(255, 255, 153));
    			jP5.setBounds(0, 69, 682, 45);
    			jP6 = new JPanel();
    			jP6.setBackground(new Color(255, 255, 153));
    			jP6.setBounds(0, 113, 682, 79);
    			jPTop = new JPanel();
    			jPTop.setBackground(new Color(255, 255, 102));
    			jPBottom = new JPanel();
    			jPBottom.setBackground(new Color(255, 255, 51));
    			jP3.setLayout(null);
    			jP3.add(studentJScrollPane);
    			jP1.setLayout(new FlowLayout(FlowLayout.CENTER, 4, 1));
    			jP4.setLayout(null);
    	//底部的五部分
    			// 第四行
    			jP4.add(jLSelectQueryField);// 文字“选择”
    			jP4.add(jCBSelectQueryField);// 下拉框
    			jP4.add(mh);
    			jP4.add(jTFQueryField);
    			jP4.add(jBQuery);
    			jP4.add(jBQueryAll);
    			jP4.setPreferredSize(new Dimension(20, 20));
    			jP5.setLayout(null);
    			// 第五行
    			jP5.add(teacherzh);
    			jP5.add(jTFSTz);
    			jP5.add(teachermm);
    			jP5.add(jTFSTP);
    			jP5.setPreferredSize(new Dimension(20, 20));
    			jP6.setLayout(null);
    			studentzh = new JLabel("学生账号:");
    			studentzh.setBounds(5, 32, 68, 18);
    			jP6.add(studentzh);
    			jTFSSZ = new JTextField(15);// 学生账号
    			jTFSSZ.setBounds(79, 29, 215, 24);
    			jP6.add(jTFSSZ);
    			studentmm = new JLabel("学生密码:");
    			studentmm.setBounds(323, 32, 68, 18);
    			jP6.add(studentmm);
    			jP6.setPreferredSize(new Dimension(20, 20));
    			jPTop.setLayout(null);
    			// 命名组件
    			jLStudentxjTable = new JLabel("账户密码表");
    			jLStudentxjTable.setBounds(14, 13, 130, 26);
    			jLStudentxjTable.setFont(new Font("华文新魏", Font.BOLD, 25));
    			jP2 = new JPanel();
    			jP2.setBackground(new Color(255, 255, 102));
    			jP2.setBounds(258, 0, 165, 50);
    			jP2.setLayout(null);
    			jP2.add(jLStudentxjTable);
    			jPTop.add(jP2);
    			// 设置顶部
    			jPTop.add(jP1);
    			jPTop.add(jP3);
    			jPBottom.setLayout(null);
    			jPBottom.add(jP4);
    			jPBottom.add(jP5);
    			jPBottom.add(jP6);
    			jTFSSP = new JTextField(15);
    			jTFSSP.setBounds(395, 29, 215, 24);
    			jP6.add(jTFSSP);
    			// 设置大局面
    			getContentPane().add("North", jPTop);
    			
    			JLabel lblNewLabel = new JLabel("   \u6CE8\u610F\u4E8B\u9879\uFF1A\u8D26\u53F7\u5BC6\u7801\u6D89\u53CA\u4F7F\u7528\u8005\u548C\u7BA1\u7406\u8005\u9690\u79C1\uFF0C\u8BF7\u52FF\u6CC4\u9732\u5916\u4F20\uFF01");
    			lblNewLabel.setBounds(79, 224, 523, 36);
    			jPTop.add(lblNewLabel);
    			lblNewLabel.setForeground(new Color(255, 0, 0));
    			lblNewLabel.setFont(new Font("华文宋体", Font.BOLD, 17));
    			getContentPane().add("South", jPBottom);
    			jBInsert = new JButton("插入");
    			jBInsert.setBounds(10, 205, 80, 27);
    			jPBottom.add(jBInsert);
    			jBInsert.setFont(new Font("宋体", Font.BOLD, 15));
    			jBUpdate = new JButton("更新");
    			jBUpdate.setBounds(95, 205, 80, 27);
    			jPBottom.add(jBUpdate);
    			jBUpdate.setFont(new Font("宋体", Font.BOLD, 15));
    			jBDeleteCurrentRecord = new JButton("删除当前记录");
    			jBDeleteCurrentRecord.setBounds(189, 205, 155, 27);
    			jPBottom.add(jBDeleteCurrentRecord);
    			jBDeleteCurrentRecord.setFont(new Font("宋体", Font.ITALIC, 15));
    			jBDeleteCurrentRecord.setForeground(Color.RED);
    			jBDeleteAllRecords = new JButton("删除所有记录");
    			jBDeleteAllRecords.setBounds(358, 205, 155, 27);
    			jPBottom.add(jBDeleteAllRecords);
    			jBDeleteAllRecords.setFont(new Font("宋体", Font.ITALIC, 15));
    			jBDeleteAllRecords.setForeground(Color.RED);
    			EXIT = new JButton("返回主页面");
    			EXIT.setBounds(527, 205, 155, 27);
    			jPBottom.add(EXIT);
    			EXIT.addMouseListener(new MouseAdapter() {
    				@Override
    				public void mouseClicked(MouseEvent e) {
    					dispose();                    
    					Teacher ui=new Teacher();
    				}
    			});
    			
    			EXIT.setFont(new Font("宋体", Font.BOLD, 15));
    			EXIT.setForeground(Color.RED);
    			EXIT.addActionListener(this);
    			jBDeleteAllRecords.addActionListener(this);
    			jBDeleteCurrentRecord.addActionListener(this);
    			jBUpdate.addActionListener(this);
    			jBInsert.addActionListener(this);
    
    			getContentPane().setLayout(new GridLayout(2, 1));
    			this.setTitle("账号密码查改");
    			this.setSize(700, 568);// 改表的大小
    			this.setLocation(630, 180);// 改表的位置
    			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    			this.setVisible(true);// 使页面显示
    			// this.setVisible(false);使页面消失
    
    			dbProcess = new DbProcess();
    
    		}
    
    		// 监听器事件
    		public void actionPerformed(ActionEvent e) { // 事件判断
    
    			if (e.getActionCommand().equals("查询选择内容") && !jTFQueryField.getText().isEmpty()) {
    				System.out.println("actionPerformed(). 查询选择内容");
    				String sQueryField = jTFQueryField.getText().trim();
    				int n=JOptionPane.showConfirmDialog(null,"确定查询该选项?", "账号密码记录",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					queryProcess(sQueryField);
    					jTFQueryField.setText("");
    				}
    			} if (e.getActionCommand().equals("查询所有记录")) {
    				System.out.println("actionPerformed(). 查询所有记录");
    				int n=JOptionPane.showConfirmDialog(null,"确定查询所有记录?", "账号密码记录",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					queryAllProcess();
    				}
    			} if (e.getActionCommand().equals("插入") && !jTFSTz.getText().isEmpty() && !jTFSTP.getText().isEmpty()
    					&& !jTFSSZ.getText().isEmpty() && !jTFSSP.getText().isEmpty() ) {
    				System.out.println("actionPerformed(). 插入");
    				int n=JOptionPane.showConfirmDialog(null,"确定插入该条记录?", "账号密码记录",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					insertProcess();
    					JOptionPane.showMessageDialog(null, "                                插入成功", "插入成功", JOptionPane.PLAIN_MESSAGE);
    				} 
    			} if (e.getActionCommand().equals("更新") && !jTFSTz.getText().isEmpty() && !jTFSTP.getText().isEmpty()
    					&& !jTFSSZ.getText().isEmpty() && !jTFSSP.getText().isEmpty() ) {
    				System.out.println("actionPerformed(). 更新");
    				int n=JOptionPane.showConfirmDialog(null,"确定更新该条记录?", "账号密码记录",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					JOptionPane.showMessageDialog(null, "                                更新成功", "更新成功", JOptionPane.PLAIN_MESSAGE);
    					updateProcess();
    					dispose();
    					Student_management_login_system sm=new Student_management_login_system();
    				} 
    			}  if (e.getActionCommand().equals("删除当前记录")) {
    				System.out.println("actionPerformed(). 删除当前记录");
    				int n=JOptionPane.showConfirmDialog(null,"注意:确定删除该条记录?", "账号密码记录",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					JOptionPane.showMessageDialog(null, "                                删除成功", "删除成功", JOptionPane.PLAIN_MESSAGE);
    					deleteCurrentRecordProcess();
    				} 
    			} if (e.getActionCommand().equals("删除所有记录"))   {
    				System.out.println("actionPerformed(). 删除所有记录");
    				int n=JOptionPane.showConfirmDialog(null,"注意:确定删除所有记录?", "账号密码记录",JOptionPane.YES_NO_OPTION);
    				if(n==0) {
    					JOptionPane.showMessageDialog(null, "                                全部删除成功", "全部删除成功", JOptionPane.PLAIN_MESSAGE);
    					deleteAllRecordsProcess();
    				}
    			}
    
    		}
    
    		// “查询”程序
    		public void queryProcess(String sQueryField) {
    			try {
    				// 建立查询条件
    				if(SelectQueryFieldStr=="老师账号"||SelectQueryFieldStr=="老师密码") {
    				String sql = "SELECT `teacherdlb`.tuserNo,`teacherdlb`.tpswd FROM `teacherdlb`  WHERE teacherdlb.tpswd IS NOT NULL  AND ";
    				String queryFieldStr = jCBSelectQueryFieldTransfer(SelectQueryFieldStr);
    				System.out.println(queryFieldStr);
    
    				
    					sql = sql + queryFieldStr;
    					sql = sql + " = ";
    					sql = sql + "'" + sQueryField + "';";
    			
    				String sql1 = "SELECT `studentdlb`.suserNo,`studentdlb`.spswd FROM `studentdlb`  WHERE studentdlb.spswd IS NOT NULL ; ";
    				System.out.println("queryProcess(). sql = " + sql);
    
    				dbProcess.connect();
    				ResultSet rs = dbProcess.executeQuery(sql);
    				ResultSet rs1 = dbProcess.executeQuery(sql1);
    
    				// 将查询获得的记录数据,转换成适合生成JTable的数据形式
    				studentVector.clear();
    				while (rs.next()&&rs1.next()) {
    					Vector v = new Vector();
    					v.add(rs.getString("tuserNo"));
    					v.add(rs.getString("tpswd"));
    					v.add(rs1.getString("suserNo"));
    					v.add(rs1.getString("spswd"));
    					
    					studentVector.add(v);//显示表
    				}
    
    				studentJTable.updateUI();
    
    				dbProcess.disconnect();}
    				
    				if(SelectQueryFieldStr=="学生账号"||SelectQueryFieldStr=="学生密码") {
    					String sql = "SELECT `studentdlb`.suserNo,`studentdlb`.spswd FROM `studentdlb`  WHERE studentdlb.spswd IS NOT NULL  AND ";
    					String queryFieldStr = jCBSelectQueryFieldTransfer(SelectQueryFieldStr);
    					System.out.println(queryFieldStr);
    
    					
    						sql = sql + queryFieldStr;
    						sql = sql + " = ";
    						sql = sql + "'" + sQueryField + "';";
    				
    					String sql1 = "SELECT `teacherdlb`.tuserNo,`teacherdlb`.tpswd FROM `teacherdlb`  WHERE teacherdlb.tpswd IS NOT NULL ; ";
    					System.out.println("queryProcess(). sql = " + sql);
    
    					dbProcess.connect();
    					ResultSet rs = dbProcess.executeQuery(sql);
    					ResultSet rs1 = dbProcess.executeQuery(sql1);
    
    					// 将查询获得的记录数据,转换成适合生成JTable的数据形式
    					studentVector.clear();
    					while (rs.next()&&rs1.next()) {
    						Vector v = new Vector();
    						v.add(rs1.getString("tuserNo"));
    						v.add(rs1.getString("tpswd"));
    						v.add(rs.getString("suserNo"));
    						v.add(rs.getString("spswd"));
    						
    						studentVector.add(v);//显示表
    					}
    
    					studentJTable.updateUI();
    
    					dbProcess.disconnect();}
    				
    			} catch (SQLException sqle) {
    				System.out.println("sqle = " + sqle);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			} catch (Exception e) {
    				System.out.println("e = " + e);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			}
    		}
    
    		// “查询全部”程序
    		public void queryAllProcess() {
    			try {
    				// 建立查询条件
    				String sql = "SELECT `studentdlb`.suserNo,`studentdlb`.spswd FROM `studentdlb`  WHERE studentdlb.spswd IS NOT NULL  ;";
    				String sql1 = "SELECT `teacherdlb`.tuserNo,`teacherdlb`.tpswd FROM `teacherdlb`  WHERE teacherdlb.tpswd IS NOT NULL ; ";
    				System.out.println("queryProcess(). sql = " + sql);
    
    				dbProcess.connect();
    				ResultSet rs = dbProcess.executeQuery(sql);
    				ResultSet rs1 = dbProcess.executeQuery(sql1);
    
    				// 将查询获得的记录数据,转换成适合生成JTable的数据形式
    				studentVector.clear();
    				while (rs.next()&&rs1.next()) {
    					Vector v = new Vector();
    					v.add(rs1.getString("tuserNo"));
    					v.add(rs1.getString("tpswd"));
    					v.add(rs.getString("suserNo"));
    					v.add(rs.getString("spswd"));
    					studentVector.add(v);//显示表
    				}
    
    				studentJTable.updateUI();
    
    				dbProcess.disconnect();
    			} catch (SQLException sqle) {
    				System.out.println("sqle = " + sqle);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			}
    		}
    
    		// “插入”程序
    		public void insertProcess() {
    			String tuserNo = jTFSTz.getText().trim();
    			String tpswd = jTFSTP.getText().trim();
    			String suserNo = jTFSSZ.getText().trim();
    			String spswd = jTFSSP.getText().trim();
    
    			// 建立插入条件
    			String sql = "insert into `teacherdlb` values('";
    			sql = sql + tuserNo + "','";
    			sql = sql + tpswd + "');";
    			
    			String sql1 = "insert into `studentdlb` values('";
    			sql1 = sql1 + suserNo + "','";
    			sql1 = sql1 + spswd + "');";
    			System.out.println("insertProcess(). sql = " + sql+"insertProcess(). sql1 = " + sql1);
    			try {
    				if (dbProcess.executeUpdate(sql) < 1||dbProcess.executeUpdate(sql1) < 1) {
    					System.out.println("insertProcess(). insert database failed.");
    				}
    			} catch (Exception e) {
    				System.out.println("e = " + e);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			}
    			queryAllProcess();
    		}
    
    		// “更新”程序
    		public void updateProcess() {
    			String tuserNo = jTFSTz.getText().trim();
    			String tpswd = jTFSTP.getText().trim();
    			String suserNo = jTFSSZ.getText().trim();
    			String spswd = jTFSSP.getText().trim();
    
    			// 建立更新条件
    			String sql = "update teacherdlb set tpswd = '";
    			sql = sql + tpswd + "'";
    			sql = sql + " WHERE tuserNo = '" + tuserNo + "';";
    			
    			String sql1 = "update studentdlb set spswd = '";
    			sql1 = sql1 + spswd + "'";
    			sql1 = sql1 + " WHERE suserNo = '" + suserNo + "';";
    			
    			System.out.println("updateProcess(). sql = " + sql+"updateProcess(). sql1 = " + sql1);
    			try {
    				if (dbProcess.executeUpdate(sql) < 1||dbProcess.executeUpdate(sql1) < 1) {
    					System.out.println("updateProcess(). update database failed.");
    				}
    			} catch (Exception e) {
    				System.out.println("e = " + e);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			}
    			queryAllProcess();
    		}
    
    		// “删除”程序
    		public void deleteCurrentRecordProcess() {
    			String tuserNo = jTFSTz.getText().trim();
    			String suserNo = jTFSSZ.getText().trim();
    
    			// 建立删除条件
    			String sql = "delete from teacherdlb where tuserNo = '" + tuserNo + "';";
    			String sql1 = "delete from studentdlb where suserNo = '" + suserNo + "';";
    			System.out.println("deleteCurrentRecordProcess(). sql = " + sql+"deleteCurrentRecordProcess(). sql1 = " + sql1);
    			try {
    				if (dbProcess.executeUpdate(sql) < 1||dbProcess.executeUpdate(sql1) < 1) {
    					System.out.println("deleteCurrentRecordProcess(). delete database failed.");
    				}
    			} catch (Exception e) {
    				System.out.println("e = " + e);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			}
    			queryAllProcess();
    		}
    
    		// “删除全部”程序
    		public void deleteAllRecordsProcess() {
    			// 建立删除条件
    			String sql = "delete from teacherdlb;";
    			String sql1 = "delete from studentdlb;";
    			System.out.println("deleteAllRecordsProcess(). sql = " + sql+"deleteAllRecordsProcess(). sql1 = " + sql1);
    			try {
    				if (dbProcess.executeUpdate(sql) < 1||dbProcess.executeUpdate(sql1) < 1) {
    					System.out.println("deleteAllRecordsProcess(). delete database failed.");
    				}
    			} catch (Exception e) {
    				System.out.println("e = " + e);
    				JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    			}
    			queryAllProcess();
    		}
    
    		public String jCBSelectQueryFieldTransfer(String InputStr) {
    			String outputStr = "";
    			System.out.println("jCBSelectQueryFieldTransfer(). InputStr = " + InputStr);
    
    			if (InputStr.equals("老师账号")) {
    				outputStr = "tuserNo";
    			} else if (InputStr.equals("老师密码")) {
    				outputStr = "tpswd";
    			} else if (InputStr.equals("学生账号")) {
    				outputStr = "suserNo";
    			} else if (InputStr.equals("学生密码")) {
    				outputStr = "spswd";
    			} 
    			System.out.println("jCBSelectQueryFieldTransfer(). outputStr = " + outputStr);
    			return outputStr;
    		}
    
    		// 退出程序
    		public void close() {
    			System.exit(0);
    		}
    }
    
    
    

    图3-3老师学生账号密码界面
    在这里插入图片描述
    3.4、新生信息输入界面
    新生信息输入界面请见如图3-4新生信息输入界面。这个界面的设计同样是专门为教务办用户设计,首先这个界面是一个录入新生信息的界面,在每一个文本框都有相应输入的数据格式的提示比如生日的文本框所提示的内容是“2013-05-20”这种格式,因为在数据库中的学生信息表格中设计的时间的数据类型是date类型,所以必须用这种数据格式的填写才能成功插入到数据库相应的表格里面去。只有当所有的文本框中都输有正确数据,然后点击确认键,然后会弹出一个窗口让用户再确认一次是否允许该操作的执行,减少用户操作失误的几率。插入数据成功之后界面的所有文本框会清空,用户可以再继续将其他学生信息插入到学生信息表中;也可以点击返回,然后返回主界面。
    实现新生信息输入界面的全部代码:

    package xr06;
    
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    
    import java.awt.Font;
    import java.awt.Color;
    import java.awt.SystemColor;
    import javax.swing.JTextField;
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.JRadioButton;
    import javax.swing.ImageIcon;
    import java.awt.Toolkit;
    
    public class Newstudent extends JFrame {
    	static String select="男";
    	ButtonGroup bg=null;
    	private static DbProcess dbProcess;
    	private JPanel contentPane;
    	private JTextField textField;
    	private JTextField textField_1;
    	private JTextField textField_3;
    	private JTextField textField_4;
    	private JTextField textField_5;
    	private JTextField textField_6;
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		
    					Newstudent f = new Newstudent();
    					
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public Newstudent() {
    		setIconImage(Toolkit.getDefaultToolkit().getImage("G:\\timg-1.jpg"));
    		
    		
    		this.setResizable(false);
    		setFont(new Font("Dialog", Font.BOLD, 25));
    		setTitle("新生信息输入");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(700, 200, 570, 533);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
    		
    		JPanel panel = new JPanel();
    		panel.setBackground(new Color(255, 255, 153));
    		panel.setBounds(0, 0, 566, 498);
    		contentPane.add(panel);
    		panel.setLayout(null);
    		
    		JLabel lblNewLabel = new JLabel("新生信息输入");
    		lblNewLabel.setBounds(182, 13, 197, 36);
    		lblNewLabel.setBackground(Color.LIGHT_GRAY);
    		lblNewLabel.setFont(new Font("华文新魏", Font.BOLD, 30));
    		panel.add(lblNewLabel);
    		
    		JLabel lblNewLabel_1 = new JLabel("学号:");
    		lblNewLabel_1.setFont(new Font("宋体", Font.BOLD, 20));
    		lblNewLabel_1.setBounds(92, 76, 71, 18);
    		panel.add(lblNewLabel_1);
    		
    		JLabel label = new JLabel("姓名:");
    		label.setFont(new Font("宋体", Font.BOLD, 20));
    		label.setBounds(92, 126, 74, 18);
    		panel.add(label);
    		
    		JLabel label_1 = new JLabel("性别:");
    		label_1.setFont(new Font("宋体", Font.BOLD, 20));
    		label_1.setBounds(92, 176, 70, 18);
    		panel.add(label_1);
    		
    		JLabel label_2 = new JLabel("生日:");
    		label_2.setFont(new Font("宋体", Font.BOLD, 20));
    		label_2.setBounds(92, 226, 77, 18);
    		panel.add(label_2);
    		
    		JLabel label_3 = new JLabel("地址:");
    		label_3.setFont(new Font("宋体", Font.BOLD, 20));
    		label_3.setBounds(92, 276, 66, 18);
    		panel.add(label_3);
    		
    		textField = new JTextField();
    		textField.setBounds(162, 74, 255, 24);
    		panel.add(textField);
    		textField.setColumns(10);
    		textField.addFocusListener(new JTextFieldHintListener("新生学号 如 1705", textField));
    		
    		textField_1 = new JTextField();
    		textField_1.addFocusListener(new JTextFieldHintListener("新生姓名 如 XR", textField_1));
    		textField_1.setColumns(10);
    		textField_1.setBounds(162, 124, 255, 24);
    		
    		panel.add(textField_1);
    		
    		
    		textField_3 = new JTextField();
    		textField_3.addFocusListener(new JTextFieldHintListener("新生生日 如 2013-05-20", textField_3));
    		textField_3.setColumns(10);
    		textField_3.setBounds(162, 224, 255, 24);
    		panel.add(textField_3);
    		
    		textField_4 = new JTextField();
    		textField_4.addFocusListener(new JTextFieldHintListener("新生地址籍贯 如 湖南长沙", textField_4));
    		textField_4.setColumns(10);
    		textField_4.setBounds(162, 274, 255, 24);
    		panel.add(textField_4);
    		
    		JLabel label_4 = new JLabel("院系:");
    		label_4.setFont(new Font("宋体", Font.BOLD, 20));
    		label_4.setBounds(92, 326, 66, 18);
    		panel.add(label_4);
    		
    		textField_5 = new JTextField();
    		textField_5.addFocusListener(new JTextFieldHintListener("新生院系 如 0101", textField_5));
    		textField_5.setColumns(10);
    		textField_5.setBounds(162, 324, 255, 24);
    		panel.add(textField_5);
    		
    		JLabel label_5 = new JLabel("班名:");
    		label_5.setFont(new Font("宋体", Font.BOLD, 20));
    		label_5.setBounds(92, 376, 66, 18);
    		panel.add(label_5);
    		
    		textField_6 = new JTextField();
    		textField_6.addFocusListener(new JTextFieldHintListener("新生班名 如 01", textField_6));
    		textField_6.setColumns(10);
    		textField_6.setBounds(162, 374, 255, 24);
    		panel.add(textField_6);
    		
    		JButton btnNewButton = new JButton("确认");
    		btnNewButton.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				if ( !textField.getText().isEmpty() && !textField_1.getText().isEmpty()
    						 && !textField_3.getText().isEmpty() && !textField_4.getText().isEmpty()
    						&& !textField_5.getText().isEmpty() && !textField_6.getText().isEmpty()) {
    					System.out.println("mouseClicked(). 确认");
    					int n=JOptionPane.showConfirmDialog(null,"确定录入该生信息?", "新生信息录入",JOptionPane.YES_NO_OPTION);
    					if(n==0) {
    						insertProcess();
    						JOptionPane.showMessageDialog(null, "                   录入信息成功", "输入信息成功", JOptionPane.PLAIN_MESSAGE); 
    						textField.setText("");
    						textField_1.setText("");
    						textField_3.setText("");
    						textField_4.setText("");
    						textField_5.setText("");
    						textField_6.setText("");
    					}
    				}
    				else {JOptionPane.showMessageDialog(null, "                   请输入完整数据,谢谢", "请输入完整数据", JOptionPane.PLAIN_MESSAGE); }
    		}
    			});
    		btnNewButton.setForeground(Color.BLACK);
    		btnNewButton.setBackground(Color.ORANGE);
    		btnNewButton.setFont(new Font("宋体", Font.BOLD, 20));
    		btnNewButton.setBounds(322, 433, 95, 35);
    		panel.add(btnNewButton);
    		
    		JButton button = new JButton("返回");
    		button.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				dispose();
    				Teacher t = new Teacher();
    			}
    		});
    		button.setForeground(Color.RED);
    		button.setFont(new Font("宋体", Font.BOLD, 20));
    		button.setBackground(Color.ORANGE);
    		button.setBounds(438, 433, 95, 35);
    		panel.add(button);
    		
    		
    		JRadioButton rdbtnNewRadioButton = new JRadioButton("男");
    		rdbtnNewRadioButton.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				System.out.println("选择“男”");
    				select="男";
    			}
    		});
    		rdbtnNewRadioButton.setFont(new Font("宋体", Font.BOLD, 17));
    		rdbtnNewRadioButton.setBackground(new Color(255, 255, 153));
    		rdbtnNewRadioButton.setBounds(162, 174, 77, 27);
    		panel.add(rdbtnNewRadioButton);
    		
    		JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("女");
    		rdbtnNewRadioButton_1.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				System.out.println("选择“女”");
    				select="女";
    			}
    		});
    		
    		rdbtnNewRadioButton_1.setFont(new Font("宋体", Font.BOLD, 17));
    		rdbtnNewRadioButton_1.setBackground(new Color(255, 255, 153));
    		rdbtnNewRadioButton_1.setBounds(238, 174, 157, 27);
    		panel.add(rdbtnNewRadioButton_1);
    		this.setVisible(true);
    		bg=new ButtonGroup();  
            bg.add(rdbtnNewRadioButton);  
            bg.add(rdbtnNewRadioButton_1);  
            rdbtnNewRadioButton.setSelected(true);
    		dbProcess = new DbProcess();
    		
    	}
    	public void insertProcess() {
    		
    		String Sno = textField.getText().trim();
    		String Sname = textField_1.getText().trim();
    		String Ssex = select;
    		String Sbirth = textField_3.getText().trim();
    		String Sadd = textField_4.getText().trim();
    		String Sacademy = textField_5.getText().trim();
    		String Scla = textField_6.getText().trim();
    
    		// 建立插入条件
    		String sql = "insert into student values('";
    		sql = sql + Sno + "','";
    		sql = sql + Sname + "','";
    		sql = sql + Ssex + "','";
    		sql = sql + Sbirth + "','";
    		sql = sql + Sadd + "','";
    		sql = sql + Sacademy + "','";
    		sql = sql + Scla + "');";
    
    		System.out.println("insertProcess(). sql = " + sql);
    		try {
    			if (dbProcess.executeUpdate(sql) < 1) {
    				System.out.println("insertProcess(). insert database failed.");
    			}
    		} catch (Exception e) {
    			System.out.println("e = " + e);
    			JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
    		}
    	}
    }
    
    

    图3-4新生信息输入界面
    在这里插入图片描述

    以上只是数据库课设之学生信息管理系统部分设计内容和源代码资源,如果想要学生信息管理系统全部资源请点击下面资源链接进行下载,希望能帮助到你!

    独家资源:点击资源下载链接

    同时在完成相关设计可能会用到的博主博客中的文章内容:

    1、Navicat for MySQL资源分享和下载以及SQL文件的导入导出

    2、Eclipse最新最简最详细安装教程

    各位大佬如有更好的建议或者不清楚的地方让各位产生了疑问,各位可以在评论中提出!

    展开全文
  • 为提高学校管理部门管理效率、保证公寓管理质量,设计了基于Visual FoxPro 8.0开发模式的大学生公寓管理系统,实现公寓管理工作的智能化,本系统设计共分为5大模块:查询模块、成员删除模块、数据维护模块、打印模块...
  • 这段时间回顾了下jsp的知识,简单写了个学生管理系统,大概功能有: 1、学生管理、用户管理、学院管理、个人信息 2、权限划分上,实现了不同角色不同权限:普通用户、学生只有浏览权限,管理员可以增删改查 文章目录...

    java jsp 学生信息管理系统

    这段时间回顾了下jsp的知识,简单写了个学生管理系统,大概功能有:
    1、学生管理、用户管理、学院管理、个人信息
    2、权限划分上,实现了不同角色不同权限:普通用户、学生只有浏览权限,管理员可以增删改查

    实现过程

    整体代码使用了简单的分层,实体类层(以及dao层)、service逻辑层、controller控制层。

    一共有三个实体类:用户类、学生类、学院类

    public class User {
    	
    	private static final long serialVersionUID = 1L;
    	private String id;
    	private String username;		// 用户名
    	private String password;		// 密码
    	private String pic;		// 头像
    	private String role;		// 角色
    	private String type;   //类型
    	
    	public User() {
    		super();
    	}
    
    	public User(String id){
    		this.id = id;
    	}
    	
    	public String getId() {
    		return id;
    	}
    
    
    	public void setId(String id) {
    		this.id = id;
    	}
    	
    
    	public String getUsername() {
    		return username;
    	}
    
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	
    	public String getPic() {
    		return pic;
    	}
    
    	public void setPic(String pic) {
    		this.pic = pic;
    	}
    	
    	public String getRole() {
    		return role;
    	}
    
    	public void setRole(String role) {
    		this.role = role;
    	}
    
    	public String getType() {
    		return type;
    	}
    
    	public void setType(String type) {
    		this.type = type;
    	}
    	
    	
    	
    }
    
    public class Student {
    	
    	private static final long serialVersionUID = 1L;
    	private String id;
    	private String name;		// 姓名
    	private Integer age;		// 年龄
    	private String sex;		// 性别
    	private String address;		// 家庭住址
    	private String tel;		// 家庭电话
    	private String phone;		// 手机号码
    	private String code;		// 身份证号码
    	private String content;		// content
    	private String classId;		// 班级编号
    	private String pic;
    	private String cname;
    	private String collegeId;  //学院编号
    	
    	
    	public String getCname() {
    		return cname;
    	}
    
    	public void setCname(String cname) {
    		this.cname = cname;
    	}
    
    	public String getPic() {
    		return pic;
    	}
    
    	public void setPic(String pic) {
    		this.pic = pic;
    	}
    
    	public Student() {
    		super();
    	}
    
    	public Student(String id){
    		this.id = id;
    	}
    	
    	public String getId() {
    		return id;
    	}
    
    
    	public void setId(String id) {
    		this.id = id;
    	}
    	
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public Integer getAge() {
    		return age;
    	}
    
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    	
    	public String getSex() {
    		return sex;
    	}
    
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	
    	public String getAddress() {
    		return address;
    	}
    
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	
    	public String getTel() {
    		return tel;
    	}
    
    	public void setTel(String tel) {
    		this.tel = tel;
    	}
    	
    	public String getPhone() {
    		return phone;
    	}
    
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	
    	public String getCode() {
    		return code;
    	}
    
    	public void setCode(String code) {
    		this.code = code;
    	}
    	
    	public String getContent() {
    		return content;
    	}
    
    	public void setContent(String content) {
    		this.content = content;
    	}
    	
    	public String getClassId() {
    		return classId;
    	}
    
    	public void setClassId(String classId) {
    		this.classId = classId;
    	}
    
    	public String getCollegeId() {
    		return collegeId;
    	}
    
    	public void setCollegeId(String collegeId) {
    		this.collegeId = collegeId;
    	}
    	
    	
    }
    
    public class College {
    	
    	private static final long serialVersionUID = 1L;
    	private String id;
    	private String name;		// 学院名称
    	private String locate;		// 建筑位置
    	
    	public College() {
    		super();
    	}
    
    	public College(String id){
    		this.id = id;
    	}
    	
    	public String getId() {
    		return id;
    	}
    
    
    	public void setId(String id) {
    		this.id = id;
    	}
    	
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getLocate() {
    		return locate;
    	}
    
    	public void setLocate(String locate) {
    		this.locate = locate;
    	}
    		
    }
    

    dao层:分别用来操作user、student、college的数据表

    public class StudentDao {
    
    	
    	/**
    	 * 添加
    	 * @param con
    	 * @param student
    	 * @return
    	 * @throws Exception
    	 */
    	public int add(Connection con,Student student)throws Exception{
    		student.setId(UUID.randomUUID().toString().replace("-", ""));
    		String sql="insert into db_student values(?,?,?,?,?,?,?,?,?,?,?)";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1,student.getId());
    		pstmt.setString(2,student.getName());
    		pstmt.setInt(3,student.getAge());
    		pstmt.setString(4,student.getSex());
    		pstmt.setString(5,student.getAddress());
    		pstmt.setString(6,student.getTel());
    		pstmt.setString(7,student.getPhone());
    		pstmt.setString(8,student.getCode());
    		pstmt.setString(9,student.getContent());
    		pstmt.setString(10,student.getPic());
    //		pstmt.setString(11,student.getClassId());
    		pstmt.setString(11,student.getCollegeId());
    		return pstmt.executeUpdate();
    	}
    	
    	/**
    	 * 删除
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public int delete(Connection con,String id)throws Exception{
    		String sql="delete from db_student where id=?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, id);
    		return pstmt.executeUpdate();
    	}
    	
    	
    	/**
    	 * 更新
    	 * @param con
    	 * @param user
    	 * @return
    	 * @throws Exception
    	 */
    	public int update(Connection con,Student student)throws Exception{
    		String sql="update db_student set name=?,age=?,sex=?,address=?,tel=?,phone=?,code=?,content=?,pic=?,college_id=? where id = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(11,student.getId());
    		pstmt.setString(1,student.getName());
    		pstmt.setInt(2,student.getAge());
    		pstmt.setString(3,student.getSex());
    		pstmt.setString(4,student.getAddress());
    		pstmt.setString(5,student.getTel());
    		pstmt.setString(6,student.getPhone());
    		pstmt.setString(7,student.getCode());
    		pstmt.setString(8,student.getContent());
    		pstmt.setString(9,student.getPic());
    //		pstmt.setString(10,student.getClassId());
    		pstmt.setString(10,student.getCollegeId());
    		return pstmt.executeUpdate();
    	}
    	
    	
    	/**
    	 * 查询所有
    	 * @param con
    	 * @param student
    	 * @return
    	 * @throws Exception
    	 */
    	public List<Student> list(Connection con,Student student,Page<Student> page)throws Exception{
    		List<Student> list = new ArrayList<>();
    		Student entity=null;
    		StringBuffer sqlBuffer = new StringBuffer();
    		sqlBuffer.append("select a.*,b.name as cname from db_student a left join db_college b on b.id = a.college_id where 1=1");
    		//拼接分页条件
    			String name =  student.getName();
    			if(name != null && name !=""){
    				sqlBuffer.append(" and a.name = '"+name+"'");
    			}
    			
    			String collegeId =  student.getCollegeId();
    			if(collegeId != null && collegeId !=""){
    				sqlBuffer.append(" and a.class_id = '"+collegeId+"'");
    			}
    			
    		
    		
    		//拼装分页参数
    		sqlBuffer.append(" limit "+((page.getPageNo()-1)*page.getPageSize())+","+page.getPageSize());
    		
    		String sql=sqlBuffer.toString();
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		ResultSet rs=pstmt.executeQuery();
    		while(rs.next()){
    			entity = new Student();
    			entity.setId(rs.getString("id"));
    			entity.setName(rs.getString("name"));
    			entity.setAge(rs.getInt("age"));
    			entity.setSex(rs.getString("sex"));
    			entity.setAddress(rs.getString("address"));
    			entity.setTel(rs.getString("tel"));
    			entity.setPhone(rs.getString("phone"));
    			entity.setCode(rs.getString("code"));
    			entity.setContent(rs.getString("content"));
    			entity.setPic(rs.getString("pic"));
    //			entity.setClassId(rs.getString("class_id"));
    			entity.setClassId(rs.getString("college_id"));
    			entity.setCname(rs.getString("cname"));
    			list.add(entity);
    		}
    		return list;
    	}
    	
    	/**
    	 * id查询
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public Student getById(Connection con,String id)throws Exception{
    		Student student=null;
    		String sql="select * from db_student where id = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, id);
    		ResultSet rs=pstmt.executeQuery();
    		if(rs.next()){
    			student=new Student();
    			student.setId(rs.getString("id"));
    			student.setName(rs.getString("name"));
    			student.setAge(rs.getInt("age"));
    			student.setSex(rs.getString("sex"));
    			student.setAddress(rs.getString("address"));
    			student.setTel(rs.getString("tel"));
    			student.setPhone(rs.getString("phone"));
    			student.setCode(rs.getString("code"));
    			student.setContent(rs.getString("content"));
    			student.setPic(rs.getString("pic"));
    //			student.setClassId(rs.getString("class_id"));
    			student.setClassId(rs.getString("college_id"));
    		}
    		return student;
    	}
    	
    	//获取总数 分页使用
    	public int count(Connection con,Student student)throws Exception{
    		int count = 0;
    		StringBuffer sqlBuffer = new StringBuffer();
    		sqlBuffer.append("select count(*) as count from db_student where 1=1");
    		//拼接分页条件
    			String name =  student.getName();
    			if(name != null && name !=""){
    				sqlBuffer.append(" and name = '"+name+"'");
    			}
    			
    			String collegeId =  student.getCollegeId();
    			if(collegeId != null && collegeId !=""){
    				sqlBuffer.append(" and college_id = '"+collegeId+"'");
    			}
    			
    		
    		String sql=sqlBuffer.toString();
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		ResultSet rs=pstmt.executeQuery();
    		while(rs.next()){
    			count = rs.getInt("count");
    		}
    		return count;
    	}
    	
    	
    }
    
    public class CollegeDao {
    
    	
    	/**
    	 * 添加
    	 * @param con
    	 * @param college
    	 * @return
    	 * @throws Exception
    	 */
    	public int add(Connection con,College college)throws Exception{
    		college.setId(UUID.randomUUID().toString().replace("-", ""));
    		String sql="insert into db_college values(?,?,?)";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1,college.getId());
    		pstmt.setString(2,college.getName());
    		pstmt.setString(3,college.getLocate());
    		return pstmt.executeUpdate();
    	}
    	
    	/**
    	 * 删除
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public int delete(Connection con,String id)throws Exception{
    		String sql="delete from db_college where id=?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, id);
    		return pstmt.executeUpdate();
    	}
    	
    	
    	/**
    	 * 更新
    	 * @param con
    	 * @param user
    	 * @return
    	 * @throws Exception
    	 */
    	public int update(Connection con,College college)throws Exception{
    		String sql="update db_college set name=?,locate=? where id = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(3,college.getId());
    		pstmt.setString(1,college.getName());
    		pstmt.setString(2,college.getLocate());
    		return pstmt.executeUpdate();
    	}
    	
    	
    	/**
    	 * 查询所有
    	 * @param con
    	 * @param grade
    	 * @return
    	 * @throws Exception
    	 */
    	public List<College> list(Connection con,College college,Page<College> page)throws Exception{
    		List<College> list = new ArrayList<>();
    		College entity=null;
    		StringBuffer sqlBuffer = new StringBuffer();
    		sqlBuffer.append("select * from db_college where 1=1");
    		//拼接分页条件
    			String name =  college.getName();
    			if(name != null && name !=""){
    				sqlBuffer.append(" and name = '"+name+"'");
    			}
    			
    			String locate =  college.getLocate();
    			if(locate != null && locate !=""){
    				sqlBuffer.append(" and locate = '"+locate+"'");
    			}
    			
    		
    		
    		//拼装分页参数
    		sqlBuffer.append(" limit "+((page.getPageNo()-1)*page.getPageSize())+","+page.getPageSize());
    		
    		String sql=sqlBuffer.toString();
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		ResultSet rs=pstmt.executeQuery();
    		while(rs.next()){
    			entity = new College();
    			entity.setId(rs.getString("id"));
    			entity.setName(rs.getString("name"));
    			entity.setLocate(rs.getString("locate"));
    			list.add(entity);
    		}
    		return list;
    	}
    	
    	/**
    	 * id查询
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public College getById(Connection con,String id)throws Exception{
    		College college=null;
    		String sql="select * from db_college where id = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, id);
    		ResultSet rs=pstmt.executeQuery();
    		if(rs.next()){
    			college=new College();
    			college.setId(rs.getString("id"));
    			college.setName(rs.getString("name"));
    			college.setLocate(rs.getString("locate"));
    		}
    		return college;
    	}
    	
    	//获取总数 分页使用
    	public int count(Connection con,College college)throws Exception{
    		int count = 0;
    		StringBuffer sqlBuffer = new StringBuffer();
    		sqlBuffer.append("select count(*) as count from db_college where 1=1");
    		//拼接分页条件
    			String name =  college.getName();
    			if(name != null && name !=""){
    				sqlBuffer.append(" and name = '"+name+"'");
    			}
    			
    			String locate =  college.getLocate();
    			if(locate != null && locate !=""){
    				sqlBuffer.append(" and locate = '"+locate+"'");
    			}
    			
    		
    		String sql=sqlBuffer.toString();
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		ResultSet rs=pstmt.executeQuery();
    		while(rs.next()){
    			count = rs.getInt("count");
    		}
    		return count;
    	}
    	
    	
    }
    
    public class UserDao {
    
    	
    	/**
    	 * 添加
    	 * @param con
    	 * @param user
    	 * @return
    	 * @throws Exception
    	 */
    	public int add(Connection con,User user)throws Exception{
    		user.setId(UUID.randomUUID().toString().replace("-", ""));
    		String sql="insert into db_user values(?,?,?,?,?,?)";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1,user.getId());
    		pstmt.setString(2,user.getUsername());
    		pstmt.setString(3,user.getPassword());
    		pstmt.setString(4,user.getPic());
    		pstmt.setString(5,user.getRole());
    		pstmt.setString(6,user.getType());
    		return pstmt.executeUpdate();
    	}
    	
    	/**
    	 * 删除
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public int delete(Connection con,String id)throws Exception{
    		String sql="delete from db_user where id=?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, id);
    		return pstmt.executeUpdate();
    	}
    	
    	
    	/**
    	 * 更新
    	 * @param con
    	 * @param user
    	 * @return
    	 * @throws Exception
    	 */
    	public int update(Connection con,User user)throws Exception{
    		String sql="update db_user set username=?,password=?,pic=?,role=? where id = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(5,user.getId());
    		pstmt.setString(1,user.getUsername());
    		pstmt.setString(2,user.getPassword());
    		pstmt.setString(3,user.getPic());
    		pstmt.setString(4,user.getRole());
    		return pstmt.executeUpdate();
    	}
    	
    	
    	/**
    	 * 查询所有
    	 * @param con
    	 * @param user
    	 * @return
    	 * @throws Exception
    	 */
    	public List<User> list(Connection con,User user,Page<User> page)throws Exception{
    		List<User> list = new ArrayList<>();
    		User entity=null;
    		StringBuffer sqlBuffer = new StringBuffer();
    		sqlBuffer.append("select * from db_user where 1=1");
    		//拼接分页条件
    			String username =  user.getUsername();
    			if(username != null && username !=""){
    				sqlBuffer.append(" and username = '"+username+"'");
    			}
    			
    		
    		
    		//拼装分页参数
    		sqlBuffer.append(" limit "+((page.getPageNo()-1)*page.getPageSize())+","+page.getPageSize());
    		
    		String sql=sqlBuffer.toString();
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		ResultSet rs=pstmt.executeQuery();
    		while(rs.next()){
    			entity = new User();
    			entity.setId(rs.getString("id"));
    			entity.setUsername(rs.getString("username"));
    			entity.setPassword(rs.getString("password"));
    			entity.setPic(rs.getString("pic"));
    			entity.setRole(rs.getString("role"));
    			list.add(entity);
    		}
    		return list;
    	}
    	
    	/**
    	 * id查询
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public User getById(Connection con,String id)throws Exception{
    		User user=null;
    		String sql="select * from db_user where id = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, id);
    		ResultSet rs=pstmt.executeQuery();
    		if(rs.next()){
    			user=new User();
    			user.setId(rs.getString("id"));
    			user.setUsername(rs.getString("username"));
    			user.setPassword(rs.getString("password"));
    			user.setPic(rs.getString("pic"));
    			user.setRole(rs.getString("role"));
    		}
    		return user;
    	}
    	
    	//获取总数 分页使用
    	public int count(Connection con,User user)throws Exception{
    		int count = 0;
    		StringBuffer sqlBuffer = new StringBuffer();
    		sqlBuffer.append("select count(*) as count from db_user where 1=1");
    		//拼接分页条件
    			String username =  user.getUsername();
    			if(username != null && username !=""){
    				sqlBuffer.append(" and username = '"+username+"'");
    			}
    			
    		
    		String sql=sqlBuffer.toString();
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		ResultSet rs=pstmt.executeQuery();
    		while(rs.next()){
    			count = rs.getInt("count");
    		}
    		return count;
    	}
    	
    	
    }
    
    public class LoginDao {
    
    	
    	/**
    	 * 用户登录
    	 * @param con
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 */
    	public User login(Connection con,String username,String password, String type)throws Exception{
    		User user=null;
    		String sql="select * from db_user where username = ? and password=? and type=?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, username);
    		pstmt.setString(2, password);
    		pstmt.setString(3, type);
    		ResultSet rs=pstmt.executeQuery();
    		if(rs.next()){
    			user = new User();
    			user.setId(rs.getString("id"));
    			user.setUsername(rs.getString("username"));
    			user.setPassword(rs.getString("password"));
    			user.setPic(rs.getString("pic"));
    			user.setRole(rs.getString("role"));
    			user.setType(rs.getString("type"));
    		}
    		return user;
    	}
    	
    	
    	public User checkUsername(Connection con,String username)throws Exception{
    		User user=null;
    		String sql="select * from db_user where username = ?";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		pstmt.setString(1, username);
    		ResultSet rs=pstmt.executeQuery();
    		if(rs.next()){
    			user = new User();
    			user.setId(rs.getString("id"));
    			user.setUsername(rs.getString("username"));
    			user.setPassword(rs.getString("password"));
    			user.setPic(rs.getString("pic"));
    			user.setRole(rs.getString("role"));
    		}
    		return user;
    	} 
    	
    }
    

    service层(处理逻辑):

    /**
     * 学院DAO接口
     *
     */
    public class CollegeServiceImpl  implements CollegeService  {
    	
    	CollegeDao collegeDao = new CollegeDao();
    	
    	@Override
    	public int add(College college) {
    		try {
    			Connection con = DbUtil.getCon();
    			Integer result =collegeDao.add(con, college);
    			DbUtil.closeCon(con);
    			return result;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return 0;
    	}
    
    	@Override
    	public int delete(String id) {
    		try {
    			Connection con = DbUtil.getCon();
    			int delete = collegeDao.delete(con, id);
    			DbUtil.closeCon(con);
    			return delete;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return 0;
    	}
    
    	@Override
    	public int update(College college) {
    		try {
    			Connection con = DbUtil.getCon();
    			int update = collegeDao.update(con, college);
    			DbUtil.closeCon(con);
    			return update;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return 0;
    	}
    
    	@Override
    	public Page<College> page(College college, Page<College> page) {
    		try {
    			Connection con = DbUtil.getCon();
    			int count = collegeDao.count(con,college);
    			page.setCount(count);
    			page.setPrev(page.getPageNo()-1);
    			page.setNext(page.getPageNo() + 1);// 下一页
    			page.setLast((count - 1) / page.getPageSize() + 1);// 总也数
    			List<College> list = collegeDao.list(con, college, page);
    			page.setList(list);
    			DbUtil.closeCon(con);
    			return page;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	@Override
    	public College getById(String id) {
    		try {
    			Connection con = DbUtil.getCon();
    			College college = collegeDao.getById(con, id);
    			DbUtil.closeCon(con);
    			return college;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    		
    }
    

    这一层就贴这一个吧,其他的与这个逻辑相同,可以参照着写

    controller控制层,也只贴下CollegeController.java:

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    import com.student.info.bean.College;
    import com.student.info.dao.CollegeDao;
    import com.student.info.service.CollegeService;
    import com.student.info.service.impl.CollegeServiceImpl;
    import com.student.utils.Page;
    
    @WebServlet("/college")
    public class CollegeController extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	
    	CollegeDao collegeDao=new CollegeDao();
    	CollegeService collegeService = new CollegeServiceImpl();
    	
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doPost(request, response);
    	}
    	
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String method = request.getParameter("method");
    		if ("add".equals(method)) {
    			add(request,response);
    		}else if ("delete".equals(method)) {
    			delete(request, response);
    		}else if ("list".equals(method)) {
    			list(request, response);
    		}else if ("update".equals(method)) {
    			update(request, response);
    		}else if ("form".equals(method)) {
    			form(request, response);
    		}else if ("save".equals(method)) {
    			save(request, response);
    		}
    		
    	}
    	
    	//添加
    	private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    		String contextPath = request.getServletContext().getContextPath();
    
    		String name = request.getParameter("name");
    		String locate = request.getParameter("locate");
    		College college = new College();
    		college.setName(name);
    		college.setLocate(locate);
    		collegeService.add(college);
    		response.sendRedirect(contextPath+"/college?method=list");
    	}
    	
    	//添加保存
    	protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String contextPath = request.getServletContext().getContextPath();
    		
    		College college = new College();
    		 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
            String savePath = this.getServletContext().getRealPath("/upload");
            File file = new File(savePath);
            //判断上传文件的保存目录是否存在
            if (!file.exists() && !file.isDirectory()) {
                System.out.println(savePath+"目录不存在,需要创建");
                //创建目录
                file.mkdir();
            }
            //消息提示
            String msg = "";
            try{
                //使用Apache文件上传组件处理文件上传步骤:
                //1、创建一个DiskFileItemFactory工厂
                DiskFileItemFactory factory = new DiskFileItemFactory();
                //2、创建一个文件上传解析器
                ServletFileUpload upload = new ServletFileUpload(factory);
                 //解决上传文件名的中文乱码
                upload.setHeaderEncoding("UTF-8"); 
                //3、判断提交上来的数据是否是上传表单的数据
                if(!ServletFileUpload.isMultipartContent(request)){
                    //按照传统方式获取数据
                    return;
                }
                //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
                List<FileItem> list = upload.parseRequest(request);
                for(FileItem item : list){
                    //如果fileitem中封装的是普通输入项的数据
                    if(item.isFormField()){
                        String name = item.getFieldName();
                         //解决普通输入项的数据的中文乱码问题
    					if ("id".endsWith(name)) {
                        	if (item.getString("UTF-8")!=null && item.getString("UTF-8")!="") {
                        		college.setId(item.getString("UTF-8"));
    						}
    					}
    					if ("name".endsWith(name)) {
    						college.setName(item.getString("UTF-8"));
    					}
    					if ("locate".endsWith(name)) {
    						college.setLocate(item.getString("UTF-8"));
    					}
                        
                    }else{//如果fileitem中封装的是上传文件
                        //得到上传的文件名称,
                        String filename = item.getName();
                        System.out.println(filename);
                        if(filename==null || filename.trim().equals("")){
                            continue;
                        }
                        //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
                        //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
                        filename = filename.substring(filename.lastIndexOf("\\")+1);
                        //获取item中的上传文件的输入流
                        InputStream in = item.getInputStream();
                        //创建一个文件输出流
                        FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
                        //创建一个缓冲区
                        byte buffer[] = new byte[1024];
                        //判断输入流中的数据是否已经读完的标识
                        int len = 0;
                        //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
                        while((len=in.read(buffer))>0){
                            //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
                            out.write(buffer, 0, len);
                        }
                        //关闭输入流
                        in.close();
                        //关闭输出流
                        out.close();
                        //删除处理文件上传时生成的临时文件
                        item.delete();
     					msg = "文件上传成功!";
                        
                    }
                }
                if (college.getId()!=null && !"".equals(college.getId())) {
        			collegeService.update(college);
        		}else{
        			collegeService.add(college);
        		}
        		response.sendRedirect(contextPath+"/college?method=list");
            }catch (Exception e) {
                msg= "文件上传失败!";
                e.printStackTrace();
                request.setAttribute("msg",msg);
                request.getRequestDispatcher("/views/info/collegeForm.jsp").forward(request, response);
            }
    	}
    	
    	//删除
    	private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String contextPath = request.getServletContext().getContextPath();
    		String id = request.getParameter("id");
    		collegeService.delete(id);
    		response.sendRedirect(contextPath+"/college?method=list");
    	}
    	
    	//修改
    	private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String id = request.getParameter("id");
    		String name = request.getParameter("name");
    		String locate = request.getParameter("locate");
    		College college = new College();
    		college.setId(id);
    		college.setName(name);
    		college.setLocate(locate);
    		collegeService.update(college);
    		request.setAttribute("college", college);
    		request.getRequestDispatcher("/views/info/collegeForm.jsp").forward(request, response);
    	}
    	
    	//列表查询
    	private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.err.println("---开始查询---");
    		College college = new College();
    		//分页有关
    		Page<College> page = new Page<College>();
    		//设置查询页
    		String pageNoStr = request.getParameter("pageNo");
    		if (pageNoStr != null && pageNoStr != "") {
    			page.setPageNo(Integer.parseInt(pageNoStr));
    		}
    		//设置查询条件
    		String name = request.getParameter("name");
    		if (name != null && name != "") {
    			college.setName(name);
    			request.setAttribute("name", name);
    		}
    		String locate = request.getParameter("locate");
    		if (locate != null && locate != "") {
    			college.setLocate(locate);
    			request.setAttribute("locate", locate);
    		}
    		
    		page = collegeService.page(college, page);
    		request.setAttribute("page", page);
    		request.getRequestDispatcher("/views/info/collegeList.jsp").forward(request, response);
    	}
    	
    	//form跳转页面
    	private void form(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String id = request.getParameter("id");
    		College college = new College();
    		if (id!=null && id!="") {
    			college = collegeService.getById(id);
    		}
    		request.setAttribute("college", college);
    		request.getRequestDispatcher("/views/info/collegeForm.jsp").forward(request, response);
    	}
    	
    }
    

    对了,缺少sql,我把sql也贴出来(里面包含了初始化的一些数据):

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : localhost_3306
    Source Server Version : 50723
    Source Host           : localhost:3306
    Source Database       : webstudent1
    
    Target Server Type    : MYSQL
    Target Server Version : 50723
    File Encoding         : 65001
    
    Date: 2020-07-09 21:29:12
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for db_class
    -- ----------------------------
    DROP TABLE IF EXISTS `db_class`;
    CREATE TABLE `db_class` (
      `id` varchar(64) NOT NULL COMMENT '编号',
      `name` varchar(64) DEFAULT NULL COMMENT '班级名称',
      `content` text COMMENT '班级介绍',
      `teacher` varchar(64) DEFAULT NULL COMMENT '班主任',
      `tel` varchar(64) DEFAULT NULL COMMENT '班主任电话',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of db_class
    -- ----------------------------
    INSERT INTO `db_class` VALUES ('0f4821bf4a7d4b76b6a8cc7be00531db', '一年级', '一年级', '李老师', '17823212222');
    INSERT INTO `db_class` VALUES ('7064fe6a918a44b892bc5e1946b10238', '三年级', '三年级', '牛老师', '17823212222');
    INSERT INTO `db_class` VALUES ('8ff3cda9ba9841dd87433d23015b8b5f', '二年级', '呵呵呵', '得老师', '17823212222');
    INSERT INTO `db_class` VALUES ('9a51b9230886403fa6f2aa674fbaf9ed', '计算机一班', '测试', '小李老师', '15878784520');
    
    -- ----------------------------
    -- Table structure for db_college
    -- ----------------------------
    DROP TABLE IF EXISTS `db_college`;
    CREATE TABLE `db_college` (
      `id` varchar(64) NOT NULL COMMENT '编号',
      `name` varchar(64) DEFAULT NULL COMMENT '班级名称',
      `locate` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of db_college
    -- ----------------------------
    INSERT INTO `db_college` VALUES ('1', '计算机学院', '11号楼');
    INSERT INTO `db_college` VALUES ('2', '材料学院', '2号楼');
    INSERT INTO `db_college` VALUES ('c64c91db35ac4a84a4e9e2b1d279e4ec', '理学院', '7号楼');
    INSERT INTO `db_college` VALUES ('d1548e5235c547358c862fa8b15775de', '文学院', '4号楼');
    
    -- ----------------------------
    -- Table structure for db_student
    -- ----------------------------
    DROP TABLE IF EXISTS `db_student`;
    CREATE TABLE `db_student` (
      `id` varchar(64) NOT NULL COMMENT '编号',
      `name` varchar(64) DEFAULT NULL COMMENT '姓名',
      `age` int(11) DEFAULT NULL COMMENT '年龄',
      `sex` varchar(64) DEFAULT NULL COMMENT '性别',
      `address` varchar(255) DEFAULT NULL COMMENT '家庭住址',
      `tel` varchar(64) DEFAULT NULL COMMENT '家庭电话',
      `phone` varchar(64) DEFAULT NULL COMMENT '手机号码',
      `code` varchar(64) DEFAULT NULL COMMENT '身份证号码',
      `content` text COMMENT 'content',
      `pic` varchar(255) DEFAULT NULL COMMENT '头像',
      `college_id` varchar(64) DEFAULT NULL COMMENT '学院编号',
      PRIMARY KEY (`id`),
      KEY `class_id` (`college_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of db_student
    -- ----------------------------
    INSERT INTO `db_student` VALUES ('6ab3b6028e2244ae8b732337cf5cbd2c', '小李2', '23', '男', '北京', '1845362721', '1234@163.com', '2039', 'af', null, '2');
    INSERT INTO `db_student` VALUES ('9d6f05fdb9a3420fb64b551bc45494a0', '小王', '24', '男', '北京', '1845362721', '1234@163.com', '5698', 'af', null, 'd1548e5235c547358c862fa8b15775de');
    INSERT INTO `db_student` VALUES ('accb0844809b4e85a1513008354ab4c1', '小李', '23', '男', '北京', '1845362721', '1234@163.com', '看电影', '124235', null, '1');
    INSERT INTO `db_student` VALUES ('dfeeba837d61404e96c3f112997007d0', '章子', '23', '男', '北京', '1845362721', '1234@163.com', '7465', 'afsa', null, 'd1548e5235c547358c862fa8b15775de');
    
    -- ----------------------------
    -- Table structure for db_user
    -- ----------------------------
    DROP TABLE IF EXISTS `db_user`;
    CREATE TABLE `db_user` (
      `id` varchar(64) NOT NULL COMMENT 'ID',
      `username` varchar(64) DEFAULT NULL COMMENT '用户名',
      `password` varchar(255) DEFAULT NULL COMMENT '密码',
      `pic` varchar(255) DEFAULT NULL COMMENT '头像',
      `role` varchar(100) DEFAULT NULL COMMENT '角色',
      `type` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of db_user
    -- ----------------------------
    INSERT INTO `db_user` VALUES ('0c4910f52539481ea56e7696adb6aa80', '用户2', '123456', null, '123456', '2');
    INSERT INTO `db_user` VALUES ('153df7fb21044639b2d2006fa9bb8871', '小王1', '123456', null, '123456', '0');
    INSERT INTO `db_user` VALUES ('1694c6b8a1dd4ad0a7d0c7f5173c8c4e', 'test10', '123456', null, 'test1', '0');
    INSERT INTO `db_user` VALUES ('39e02cffc9be4fc7b60076dd33efd252', 'root', '123456', null, '李斯2', '0');
    INSERT INTO `db_user` VALUES ('63b0cc5f83194860bde04a9d87cefb52', '李四', '123456', null, '李四', '0');
    INSERT INTO `db_user` VALUES ('8637d34e157f4244bc087f0d0a66ebb2', 'admin', '123456', null, '管理员', '1');
    INSERT INTO `db_user` VALUES ('8db63a33d3964e69869852099e33b023', '用户3', '123456', null, '用户3', '2');
    INSERT INTO `db_user` VALUES ('a3585c69a8da4973a54ecbed06f0f0a6', 'test12', '123456', null, '学生12', '0');
    INSERT INTO `db_user` VALUES ('bcc69747173a4725ac5452ba1482eb7b', 'zhangsan', '123456', null, '123456', '0');
    INSERT INTO `db_user` VALUES ('c996844be05c4ca88a6f8c552efd7f97', '小何', '123456', null, '123456', '0');
    INSERT INTO `db_user` VALUES ('e5e72dd0bfd648eaa61119b7877862b3', 'zs1', '123456', null, '123456', '0');
    SET FOREIGN_KEY_CHECKS=1;
    
    

    系统运行

    1、登录页面:分为用户、学生、管理员三种用户登录
    在这里插入图片描述
    2、管理员登录页面:
    在这里插入图片描述
    可以进行用户、学生、学院的增删改查(其他两个模块的页面布局一样)

    3、学生和用户登录:
    在这里插入图片描述
    只能浏览,不能进行其他操作

    4、如果是学生和管理员登录都可以修改个人信息:
    在这里插入图片描述

    写在最后

    技术有限,时间有限,目前只能做到这里,如果有什么建议,可以交流v:Code2Life2

    展开全文
  • 基于C#的学生选课管理系统

    千次阅读 2021-01-09 22:14:19
    基于C#的学生选课管理系统 摘 要 随着科学技术的不断提高,计算机科学日渐成熟,它已经进入人类社会的各个领域并发挥着越来越重要的作用。使用计算机对选课信息进行管理,具有传统选课方式无法比拟的优点。例如...
  • 【简答题】[说明] 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下。 (1)每门课程都由3~6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的...
  • 学生信息管理系统概要设计说明书:编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处。流程、程序系统的组织结构、模块划分、功能分配、接口设计。 运行设计、数据结构设计和出错处理设计等,为程序的...
  • 学生成绩管理管理系统

    万次阅读 多人点赞 2020-06-23 15:18:26
    学生成绩管理管理系统 一,需求分析 1、编写目的 为了明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。本文档供项目经理、设计人员、开发人员参考。 2、项目背景 使用计算机对学生信息进行管理...
  • 学生选课和成绩管理是高等学校教务管理的重要组成部分,主要包括教师管理学生成绩梦块、学生选课模块系统管理模块。每门课程包括学分、学时、课程名字以及课程性质(必传和选修)等信息。每位教师可以教授若干门课程,...
  • 了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用Visual C++ 6.0实现学生成绩管理系统的输入、显示、排序、插入、删除、查找、求平均分等基本操作,使用函数实现模块化程序设计和结构体类型处理组合...
  • 基于ASP的学生宿舍管理系统

    热门讨论 2009-05-09 12:47:32
    通过登录才可进入管理系统。登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。在本系统中,只有三种身份:学生、宿舍管理员、系统管理员 2.查看信息: 通过留言板和公共栏,学生、宿舍管理员...
  • java开发学生管理系统

    2020-06-25 00:06:48
    学生成绩管理系统 –需求分析 一、任务概述 1.1项目背景: 随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生...
  • 学生考勤管理系统

    千次阅读 2020-12-02 14:51:30
    这里写自定义目录标题学生考勤管理系统 学生考勤管理系统 背景分析: 随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。如今针对师生的成绩查询系统、教务管理系统、招生就业系统、...
  • Node.js学生管理系统(Express+MySQL)

    千次阅读 多人点赞 2018-08-12 14:59:20
    如果想看用其他数据持久化案例(如MongoDB数据库),可以点击 Node学生管理案例  目录 一、完成功能:实现对“学生信息”的增删改查。并且实现了数据持久化。 数据库为MySQL。 二、使用到的技术:基于Express...
  • Node.js学生管理系统(Express+MongoDB)

    千次阅读 多人点赞 2018-08-12 11:00:22
    如果想看用其他数据持久化案例(如MySQL数据库),可以点击 Node学生管理案例  目录 一、完成功能:实现对“学生信息”的增删改查。并且实现了数据持久化。 数据库为MongoDB。 二、使用到的技术:基于Express...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,539
精华内容 4,615
关键字:

学生管理系统模块划分