学生学籍管理系统实验报告及源代码
一、课程设计目的加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工程实践动手能力二、课程设计内容学生学籍管理系统1,输入并验证密码;2,设计菜单进行选择相应的操作;3,用链表录入并输出数据,包括学生的户籍、成绩、奖惩信息;4,将录入的数据存放在文件里面并读取文件;5,对录入的数据进行修改;6,删除个人信息;7,查找个人信息;8,对录入的成绩进行排序;9,统计不及格的成绩;10,释放链表;三、需求分析对所开发系统功能、性能的描述,想要实现的目标。
输入并验证密码的正确性,定义结构体类型来存放学生的基本信息(包括学生的姓名、学号、性别、出生日期等),然后建立链表存放信息,将信息存入文件中,以便以后的各个功能模块调试时直接调用,对数据进行修改、删除、查找、排序操作,然后对输入的数据进行统计,查出不及格的学生成绩。
实现的目标是对学生的学籍进行管理,更新并统计数据。
四、概要设计功能模块说明:输入密码:从键盘输入密码,判断输入的密码是否与系统设定的密码相同,若相同则进入主菜单,不相同则继续输入;主菜单:显示系统的各项功能与相对应的数字选项。
输入数据函数:从键盘输入数据,并将数据存入链表。
输出数据函数:对存储的数据进行输出。
查找数据函数:对存储的数据进行查询并显示查询结果。
删除数据函数:对存入的数据进行删除。
修改数据函数:对存入的数据进行修改。
保存数据函数:将从键盘输入的数据存入到文件中 读取数据函数:从文件中读取个人信息。
排序函数:对平均成绩进行排序并显示排序结果 统计函数:对不及格成绩进行统计并显示统计结果。
退出系统:退出系统五、详细设计及运行结果通过两周的课程设计,我对学过的C语言基本知识进行了巩固,并且还对知识进行了扩展。
在本次实习时,刚开始完全没有头绪,不知道从何入手,感觉难度很大.但是逐渐开始编写程序慢慢发现,原来不是想象中的那么难.在一个个模块成功编写出来的同时,获得了巨大的成就感,并且掌握的许多上课遗漏和不很了解的知识.。
对一些细节以前不太注意,常常忽略,真正操作起来时发现一些小问题也会导致程序无法进行。
要想运行正常,必须保证零错误。
同时,这两周的实习使我对链表更熟悉了。
以前总感觉链表很难,这次程序设计中,我用链表存取数据,并进行删除修改等操作,慢慢对链表熟悉。
另外,在程序运行编译的过程中出现一些错误,需要耐心的去检查错误,调试程序。
七、参考文献《C语言程序设计》谭浩强清华大学出版社《C语言程序设计教程》张毅坤曹锰张亚玲西安交通大学出版社《C语言程序设计》王曙燕曹锰科学出版社#include <conio.h>#include <dos.h>#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <math.h>#include <string.h>#define LEN sizeof(struct student)typedef struct{ int year;int month;int day;} DATE;struct student{ int num;char name[10];char sex;DATE birthday;int math;int C;int physic;int English;float average;DATE time;char reason[50];char result[50];char unit[50];struct student *next;};struct student * read_file(); /*读取文件*/void save_file(); /*保存*/void input(); /*创建链表,输入数据*/void output(struct student *head); /*输出*/void seek(struct student *h); /*查找*/void del() ; /*删除*/void change (); /*修改*/void sort() ; /*对成绩进行排序*/void summarise(); /*对不及格成绩进行统计*/void free_linklist(void); /*释放链表*/void print(struct student *p); /*输出函数*/void menu(); /*菜单*/void password(); /*密码*/struct student *head=NULL;int number=0;main(){ password();getch();system("cls");printf("\n\n\n\n\n\t\t\t*******欢迎进入学生学籍管理系统*******\n\n\n");getch();menu();}void password(){char s[8],ch;int i;s[0]='0';s[1]='4'; s[2]='0'; s[3]='8' ;s[4]='2'; s[5]='0'; s[6]='4'; s[7]='1' ;printf("\n\n\n\n\n\t\t\t**************************\n\n");printf("\t\t\t**************************\n\n");printf("\t\t\t**************************\n\n\n\n\n");do{printf("\t\t\t\tplease input password: \n\t\t\t\t\t");for(i=0;i<8;i++){ ch=getch();if(ch!=s[i])break;printf("*");}printf("\n\n");if(i!=8){printf("It's error!!\n");printf("please input again!\n");}else break;}while(1);}void menu(){int select=-1;head=NULL;while (select!=0){ system("cls");printf("\t\t\t*************************************\n");printf("\t\t\t *1 Input \n");printf("\t\t\t *2 Output \n");printf("\t\t\t *3 seek \n");printf("\t\t\t *4 delete \n");printf("\t\t\t *5 change \n");printf("\t\t\t *6 save \n");printf("\t\t\t *7 read \n");printf("\t\t\t *8 sort \n");printf("\t\t\t *9 summarise \n");printf("\t\t\t *0 Exit \n");printf("\t\t\t************************************\n");printf("Please input select(0-8):");scanf("%d",&select);switch(select){case 1:input();break;case 2:output( head);break;case 3:seek(head);break;case 4:del();break;case 5:change();break;case 6:save_file();break;case 7:head=read_file();break;case 8:sort();break;case 9:summarise();break;case 0:free_linklist();break;}}}void input() /*创建链表,输入数据*/{struct student *p1,*p2;p1=(struct student *)malloc (LEN);printf ("please input the student's information:\n");printf ("address information:\n");printf ("num name sex year month day \n");scanf("%d", &p1->num);fflush(stdin);scanf ("%s",p1->name);fflush(stdin);scanf ("%c",&p1->sex);fflush(stdin);scanf("%d%d%d",&p1->birthday.year,&p1->birthday.month,&p1->birthday.day);printf ("score information:\n");printf ("math C physic English\n");scanf ("%d%d%d%d",&p1->math,&p1->C,&p1->physic,&p1->English);p1->average=((float)(p1->math+p1->C+p1->physic+p1->English))/4;printf(" rewards and punishments:\n");printf (" time(year month day )\n");scanf ("%d%d%d",&p1->time.year,&p1->time.month,&p1->time.day);printf ("reason: ");fflush(stdin);scanf ("%s",p1->reason);printf ("result: ");fflush(stdin);scanf ("%s",p1->result);printf ("unit: ");fflush(stdin);scanf ("%s",p1->unit);p1->next=NULL;number++;if(head==NULL){head=p1;}else{p2=head;while (p2->next )p2=p2->next;p2->next=p1;}getch();}void output(struct student *head) /*输出链表*/{struct student *p;int kind,flag=1;char choice='a';if (head==NULL){printf("Not Input before!\n");getch();return;}while (flag){printf ("students' information input before as fowllow:\n");printf ("1:address; 2:score; 3:rewards and punishments 0:exit\n");printf ("please choice: ");scanf ("%d",&kind);p=head;do{switch(kind){ case 1:printf ("address information:\n");printf ("num name sex year month day \n");printf ("%d %s %c ",p->num,p->name,p->sex);printf(" %d %d %d\n",p->birthday.year,p->birthday.month,p->birthday.day);break;case 2:printf ("score information:\n");printf ("num name math C physic English averag\n");printf ("%d %s %d %d %d %d ",p->num ,p->name ,p->math,p->C,p->physic,p->English);printf ("%2.2f\n",p->average);break;case 3:printf(" rewards and punishments:");printf ("num : %d name %s \n",p->num,p->name);printf ("time: year/%d month/%d day/%d \n",p->time.year,p->time.month,p->time.day);printf("reason: %s\n",p->reason);printf("result: %s\n",p->result);printf ("unit: %s\n",p->unit);break;}p=p->next;}while(p);printf ("continue to choice (y/n) ");fflush(stdin);choice=getchar();if(choice=='n')flag=0;}printf("Display finish!\n");getch();}void seek(struct student *h) /*查找链表*/{ struct student *p;int seeknum;printf ("please input the num what you look for :");scanf ("%d",&seeknum);p=h;while (p&&seeknum!=p->num)p=p->next;if(!p)printf ("the num you look for don't exist!\n");else{print(p);}getch();}void del () /*删除链表*/{int delnum;struct student *p1,*p2;p1=head;printf("input delete num:\n");scanf("%d",&delnum);while (delnum!=p1->num&&p1->next!=NULL){ p2=p1;p1=p1->next;}if (delnum==p1->num){if (p1==head)head=p1->next;elsep2->next=p1->next;printf ("the student's information you input have been deleted!\n");number--;}elseprintf ("the student you what to delete don't exist!\n");getch();}void change() /*修改链表*/{int changenum,kind;int choice,flag=1;char select=1;struct student *p;p=head;while (flag!=0){ printf ("please input the num you want to change:\n");scanf ("%d",&changenum);while (changenum!=p->num)p=p->next;if (changenum==p->num){printf ("input the new information:\n");printf ("1:address ; 2:score ;3: rewards and punishments; 0:exit;\n");printf("input the kind you want to change:");fflush(stdin);scanf("%d",&kind);switch(kind){ case 1:printf ("1: name; 2:sex; 3:birthday;");printf ("please choice :");fflush(stdin);scanf ("%d",&choice);switch (choice){ case 1:printf ("input the new name:");fflush(stdin);scanf ("%s",p->name);break;case 2:printf ("input the new sex:");fflush(stdin);scanf("%c",&p->sex);break;case 3:printf ("input the new birthday:");fflush(stdin);scanf("%d%d%d",&p->birthday.year,&p->birthday.month,&p->birthday.day);break;}break;case 2:printf ("1:math; 2:C; 3: physics; 4:English;");printf ("please choice :");fflush(stdin);scanf ("%d",&choice );switch (choice){ case 1:printf ("input the new math:");fflush(stdin);scanf ("%d",&p->math);break;case 2:printf ("input the new C:");fflush(stdin);scanf ("%d",&p->C);break;case 3:printf ("input the new physic:");fflush(stdin);scanf ("%d",&p->physic);break;case 4:printf ("input the new English:");fflush(stdin);scanf ("%d",&p->English);break;}break;case 3:printf ("1: time; 2:reson; 3: result; 4: unit;");printf ("please choice:");fflush(stdin);scanf ("%d",&choice);switch (choice){ case 1:printf ("input the new time:");fflush(stdin);scanf("%d%d%d",&p->time.year,&p->time.month,&p->time.day);break;case 2:printf ("input the new reason:");fflush(stdin);scanf ("%s",p->reason);break;case 3:printf (" input the new result :");fflush(stdin);scanf ("%s",p->result);break;case 4:printf ("input the new unit:");fflush(stdin);scanf ("%s",p->unit);break;}}}elseprintf ("the num you want to change don't exist!\n");printf(" continue to change ?(y/n)");fflush(stdin);select=getchar();if(select=='n')flag=0;elseprintf ("continue!\n");}print(p);getch();}void save_file() /*保存文件*/ { FILE *fp;struct student *stu;char filename[10];printf ("input infile name:\n");scanf ("%s",filename);if ((fp=fopen(filename,"wb+"))==NULL){ printf ("cannot open file!!");exit(0);}stu=head;do{if(fwrite(stu,LEN,1,fp)!=1)printf ("file write error!");stu=stu->next;}while(stu);printf ("the file has been kept!\n");fclose (fp);getch();}struct student * read_file() /*读取文件*/ { FILE *fp;char filename[10];struct student *p,*head=NULL,*stu;printf ("please input filename:\n");scanf("%s",filename);if ((fp=fopen(filename,"rb+"))==NULL){ printf ("the file don't exist!");exit(0);}stu=p=(struct student *) malloc(LEN);if(head==NULL){fread(stu,LEN,1,fp);head=stu;}while (p->next!=NULL){p->next=stu;p=stu;stu=(struct student *) malloc(LEN);fread(stu,LEN,1,fp);}p->next=NULL;fclose (fp);printf("read sucess!\n");return (head);getch();}void print(struct student *p) /*输出*/{printf ("the new information is:\n");printf ("address information:\n");printf ("num: %d name %s sex %c\n" ,p->num ,p->name ,p->sex);printf ("year: %d month %d day %d \n",p->birthday.year,p->birthday.month,p->birthday.day);printf ("score information:\n");printf ("math: %d C: %d physic: %d English: %d ",p->math,p->C,p->physic,p->English);printf(" average: %2.2f \n",p->average);printf(" rewards and punishments:\n");printf ("time: year/%d month/%d day/%d \n",p->time.year,p->time.month,p->time.day);printf("reason: %s\n",p->reason);printf("result: %s\n",p->result);printf ("unit: %s\n",p->unit);}void sort() /*对成绩进行排序*/{int i=0,j,k,n=0;struct student stu[50],t,*p;head=read_file();for(p=head;p;p=p->next){stu[i].num =p->num ;strcpy(stu[i].name,p->name );stu[i].math =p->math ;stu[i].C =p->C ;stu[i].physic =p->physic ;stu[i].English =p->English ;stu[i].average =p->average ;i++;n++;}for(j=0;j<n;j++)for(k=j+1;k<n-1;k++)if(stu[j].average<stu[k].average){t=stu[j];stu[j]=stu[k];stu[k]=t;}for(i=0;i<n;i++){printf("No: %d\n",i+1);printf("num name math C physic English average\n");printf("%d %s %d %d %d %d %2.2f\n",stu[i]. num,stu[i].name,stu[i].math,stu[i].C,stu[i].physic,stu[i].English,stu[i].average);}getch();}void summarise() /*对不及格成绩进行统计*/{struct student *p;head=read_file();printf("not pass:\n");printf(" math:\n");printf (" num name math :\n");for(p=head;p;p=p->next)if(p->math<60){printf(" %d ",p->num);printf (" %s ",p->name);printf (" %d \n",p->math);}printf("\n C:\n");printf (" num name C:\n");for(p=head;p ;p=p->next)if(p->C<60){printf(" %d ",p->num);printf (" %s ",p->name);printf (" %d \n",p->C);}printf("\n physic:\n");printf (" num name physic:\n");for(p=head;p;p=p->next)if((p->physic)<60){printf(" %d ",p->num);printf (" %s ",p->name);printf (" %d \n ",p->physic);}printf("\n English:\n");printf (" num name English :\n");for(p=head;p;p=p->next)if(p->English<60){printf(" %d ",p->num);printf (" %s ",p->name);printf (" %d \n",p->English);}printf("\n average:\n");printf (" num name average:\n");for(p=head;p;p=p->next)if(p->average<60){printf(" %d ",p->num);printf (" %s ",p->name);printf (" %2.2f \n",p->average);}getch();}void free_linklist(void) /*释放链表*/ {struct student *p;while (head!=NULL){p=head;head=head->next;free(p);}printf("=THE END!!\n");}。
c语言学籍管理系统源代码
c语言学籍管理系统源代码学籍管理系统的背景及意义随着社会的不断发展和教育的普及,学籍管理工作日益被重视。
传统的手工管理学籍的方式效率低下,存在着各种弊端,以致无法满足现代学校管理的需求。
因此,开发一款高效、便捷、可靠的学籍管理系统成为普遍需求,为了提高管理效率、减少工作难度,学籍管理系统被越来越广泛地使用。
本文将介绍一款基于C语言开发的学籍管理系统的源代码。
基本功能该学籍管理系统可以实现学生信息的录入、删除、修改和查询,以及学生的成绩录入、修改和查询。
此外,该系统还具备数据存储和文件读写的功能,能够自动保存学生信息和成绩数据,保障数据的安全性和可靠性。
模块设计该系统按照功能模块划分,主要分为三个模块:学生信息管理模块、学生成绩管理模块和数据存储与文件读写模块。
学生信息管理模块该模块主要实现学生信息的录入、删除、修改和查询等基本功能。
以下为该模块的主要源代码:```struct student {char name[20]; // 姓名int id; // 学号char sex[5]; // 性别char major[20]; // 专业};struct student stu[1000]; // 学生信息结构体数组int num_of_stu = 0; // 学生总数void add_student() { // 添加学生信息printf("请输入学生姓名:");scanf("%s", stu[num_of_stu].name);printf("请输入学生学号:");scanf("%d", &stu[num_of_stu].id);printf("请输入学生性别:");scanf("%s", stu[num_of_stu].sex);printf("请输入学生专业:");scanf("%s", stu[num_of_stu].major);num_of_stu++;printf("添加成功!\n");}void delete_student() { // 删除学生信息int delete_id;printf("请输入要删除的学生学号:");scanf("%d", &delete_id);int index = search_student_by_id(delete_id); if (index == -1) {printf("该学号不存在!\n");return;}for (int i = index; i < num_of_stu - 1; i++) { stu[i] = stu[i + 1];}num_of_stu--;printf("删除成功!\n");}void modify_student() { // 修改学生信息int modify_id;printf("请输入要修改的学生学号:");scanf("%d", &modify_id);int index = search_student_by_id(modify_id); if (index == -1) {printf("该学号不存在!\n");return;}printf("请输入学生姓名:");scanf("%s", stu[index].name);printf("请输入学生学号:");scanf("%d", &stu[index].id);printf("请输入学生性别:");scanf("%s", stu[index].sex);printf("请输入学生专业:");scanf("%s", stu[index].major);printf("修改成功!\n");}int search_student_by_id(int id) { // 根据学号查询学生信息for (int i = 0; i < num_of_stu; i++) {if (stu[i].id == id) {return i;}}return -1;}void query_student() { // 查询学生信息int query_id;printf("请输入要查询的学生学号:");scanf("%d", &query_id);int index = search_student_by_id(query_id);if (index == -1) {printf("该学号不存在!\n");return;}printf("姓名\t学号\t性别\t专业\n");printf("%s\t%d\t%s\t%s\n", stu[index].name,stu[index].id, stu[index].sex, stu[index].major);}```学生成绩管理模块该模块主要实现学生成绩信息的录入、修改和查询等功能。
c语言学生管理系统源代码
c语言学生管理系统源代码#include <stdio.h>。
#include <stdlib.h>。
#include <string.h>。
/*定义学生结构体*/。
typedef struct student。
char num[20]; //学号。
char name[20]; //姓名。
int c; //语文成绩。
int math; //数学成绩。
float ave; //平均分。
struct student *next;。
} stu;。
/*函数声明*/。
void menu_select(); //显示菜单。
void add(); //添加学生信息。
void delete(); //删除学生信息。
void modify(); //修改学生信息。
void search(); //查询学生信息。
void get_ave(); //计算学生平均成绩。
void display(); //显示学生信息。
void esc(); //退出系统。
int main()。
menu_select();。
return 0;。
}。
//显示菜单。
void menu_select()。
int select;。
while (1)。
printf("\n学生管理系统\n");。
printf("------菜单------\n");。
printf("1.添加学生信息 2.删除学生信息\n");。
printf("3.修改学生信息 4.查询学生信息\n");。
printf("5.计算学生平均成绩 6.显示学生信息\n");。
printf("7.退出系统\n");。
printf("请输入您的选择:");。
scanf("%d", &select);。
java学生信息管理系统实验报告(共10篇)
java学生信息管理系统实验报告(共10篇)JAVA学生信息管理系统实验报告JAVA程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK1.6,my eclipse或者EditPlus编程工具。
并安装MySQL数据库四、实验内容编写并调试运行Java程序,进行设计,掌握Java开发的基础。
五、实验任务设计学生信息管理系统。
要求包括1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。
而普通用户只可以查找学生信息。
2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。
六、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1、程序清单:1.1程序模块清单package Pan;import java.awt.event.ItemListener;import javax.swing.*;import ponent;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.InputEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.util.*;import java.awt.Color;import java.text.DecimalFormat;import java.sql.*;import java.sql.Date;import java.awt.*;import java.util.Vector;public class Res{/*** @param args*/public static void main(String[] args){FirstWindow win =new FirstWindow(学生信息管理系统); }}class FirstWindow extends JFrame implements ActionListener {JMenuBar menubar;JMenu menu1,menu2,menu3,menu4;public final JMenuItem a11,a12,a13,a14,a15,a16,a17; public final JMenuItem a21,a22,a23,a24;public final JMenuItem a3;public final JMenuItem a4;public final JButton btn;JPanel pnl;JLabel label;boolean flag;FirstWindow(String s){setTitle(s);setSize(400,400);setLocation(100,100);setVisible(true);setDefaultCloseOperation(3);pnl=new JPanel();this.getContentPane().add(pnl);pnl.setLayout(new BorderLayout());label=new JLabel(欢迎使用学生管理系统,JLabel.CENTER);label.setForeground(Color.red);pnl.add(label,BorderLayout.CENTER);menubar=new JMenuBar();menu1=new JMenu(使用);menu2=new JMenu(用户管理);menu3=new JMenu(帮助);menu4=new JMenu(退出);a11=new JMenuItem(管理员登录);a12=new JMenuItem(查询学生信息);a13=new JMenuItem(更改学生信息);a14=new JMenuItem(删除学生信息);a15=new JMenuItem(添加学生信息);a16=new JMenuItem(超级管理员登录);篇二:java学生成绩管理系统实验报告JAVA课内实验报告学生成绩管理系统一. 实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。
学生信息管理系统完整源代码+mysql文件
数据库所用的数据自己导入MYSQL5.5,Navicat8就可以用了。
下面是具体的数据资料/*MySQL Data TransferSource Host: localhostSource Database: simsTarget Host: localhostTarget Database: simsDate: 2013-6-25 9:24:26*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for manager-- ----------------------------DROP TABLE IF EXISTS `manager`;CREATE TABLE `manager` (`id` varchar(10) NOT NULL,`name` varchar(30) NOT NULL,`Mima` varchar(20) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for studentinfo-- ----------------------------DROP TABLE IF EXISTS `studentinfo`;CREATE TABLE `studentinfo` (`Sname` varchar(30) NOT NULL,`Ssex` varchar(10) NOTNULL,`Snumber` varchar(10) NOT NULL,`Sprofession` varchar(30) NOT NULL,`Sclass`varchar(20) NOT NULL,`Sdate` varchar(30) character set utf8 collate utf8_unicode_ciNOT NULL,PRIMARY KEY (`Snumber`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='InnoDBfree: 4096 kB';-- ------------------------------ Table structure for userinfo-- ----------------------------DROP TABLE IF EXISTS `userinfo`;CREATE TABLE `userinfo` (`id` varchar(10) NOT NULL,`name` varchar(30) NOT NULL,`Mima` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL, PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records-- ----------------------------INSERT INTO `manager` VALUES ('1', '1', '2');INSERT INTO `manager` VALUES ('2', '恩恩', '123456');INSERT INTO `manager` VALUES ('3', '大大', '123456');INSERT INTO `manager` VALUES ('4', '啊啊', '123456');INSERT INTO `manager` VALUES ('5', '5', '5');INSERT INTO `manager` VALUES ('6', '孙霞', '123456');INSERT INTO `studentinfo` V ALUES ('张三', '男', '2010303755', '数学', '2', '2010-02- 12');INSERT INTO `studentinfo` V ALUES ('李四', '男', '2010303760', '物理', '1', '1995.9.6'); INSERT INTO `studentinfo` V ALUES ('王二', '女', '2010303761', '应数', '2','1990.9.11');INSERT INTO `studentinfo` V ALUES ('麻子', '女', '2010303762', '信计', '1','1999.9.10');INSERT INTO `userinfo` V ALUES ('1', '1', '1');INSERT INTO `userinfo` V ALUES ('13', '13', '1');INSERT INTO `userinfo` V ALUES ('2', '2', '2');INSERT INTO `userinfo` V ALUES ('3', '3', '3');INSERT INTO `userinfo` V ALUES ('6', '6', '6');INSERT INTO `userinfo` V ALUES ('7', '7', '6');下面是相应的程序:package MS;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Add implements ActionListener {JFrame f1;Container ct;JPanel jp,jp1,jp2,jp3;JButton btn1,btn2;JLabel label;JTextField tf1,tf2,tf3,tf4,tf5,tf6;Add(){f1=new JFrame();ct=f1.getContentPane();//初始化面板jp=new JPanel();jp1=new JPanel(new GridLayout(6,1));jp2=new JPanel(new GridLayout(6,1));jp3=new JPanel();btn1=new JButton("确定");btn2=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>添加学生信息</font>",SwingConstants.CENTER);label.setForeground(Color.gray);tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);tf6.setText("例:2000-02-02");//文本框加入提示语tf6.addFocusListener(new FocusListener(){public void focusGained(FocusEvent e) {tf6.setText("");}public void focusLost(FocusEvent e) {}});jp.add(label);ct.add(jp,"North");jp1.add(new JLabel("姓名",SwingConstants.CENTER));jp2.add(tf1);jp1.add(new JLabel("性别",SwingConstants.CENTER));jp2.add(tf2);jp1.add(new JLabel("学号",SwingConstants.CENTER));jp2.add(tf3);jp1.add(new JLabel("专业",SwingConstants.CENTER));jp2.add(tf4);jp1.add(new JLabel("班级",SwingConstants.CENTER));jp2.add(tf5);jp1.add(new JLabel("入学时间",SwingConstants.CENTER));jp2.add(tf6);jp3.add(btn1);jp3.add(btn2);ct.add(jp1,"West");ct.add(jp2,"East");ct.add(jp3,"South");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f1.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f1.setLocation(xcenter, ycenter);f1.setVisible(true);//f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);}public void insert(){if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")){JOptionPane.showMessageDialog(f1,"请填写完整信息");return;}try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connectioncon=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String s="insert into studentinfo values('"+tf1.getText()+"','"+tf2.getText()+"','"+tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";String query="select * from studentinfo where Snumber='"+tf3.getText().trim()+"'";ResultSet res=st.executeQuery(query);if(res.next()){JOptionPane.showMessageDialog(f1,"学号信息已经存在!");con.close();tf3.setText("");}else if(tf6.getText().length()!=10){JOptionPane.showMessageDialog(f1,"入学时间格式有误!");con.close();tf6.setText("");}int insert=st.executeUpdate(s);if(insert==1){JOptionPane.showMessageDialog(f1,"录入信息成功!");tf1.setText("");tf2.setText("");tf3.setText("");tf4.setText("");tf5.setText("");tf6.setText("");}}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){insert();}else if(cmd.equals("取消")){f1.hide();}}public Container getCt(){return ct;}public void setCt(Container ct){this.ct = ct;}}package MS;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Delete implements ActionListener {JFrame f2;Container ct;JPanel jp1,jp2,jp3,jp4;JLabel label;JTextField text;JTable table;//接收数据库中返回的信息JButton btn1,btn2,btn3;Object columnName[]={"姓名","性别","学号","专业","班级","入学时间"};Object ar[][]=new Object[80][6];Delete(){f2=new JFrame();ct=f2.getContentPane();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();label=new JLabel();text=new JTextField();btn1=new JButton("查询");btn2=new JButton("删除");btn3=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除的学生姓名:</font>",SwingConstants.CENTER);label.setBackground(Color.blue);table=new JTable(ar,columnName);JScrollPane scroll=new JScrollPane(table);text=new JTextField(20);jp2.add(btn1);jp2.add(btn2);jp2.add(btn3);jp1.add(label);jp1.add(text);ct.add(jp1,"North");jp3.setLayout(new BorderLayout());jp3.add(new JLabel("学生信息如下"));jp3.add(scroll);ct.add(jp2,"South");ct.add(jp3,"Center");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f2.setSize(450, 400);int xcenter=(x-450)/2;int ycenter=(y-400)/2;f2.setLocation(xcenter, ycenter);f2.setVisible(true);//f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);}int i=0;public void show(String s){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String sql="select * from studentinfo where Sname='"+s+"'";ResultSet res=st.executeQuery(sql);/*if(!(res.next())){JOptionPane.showMessageDialog(f,"所要查询的信息不存在");} */while(res.next()){String sName=res.getString(1);String sSex=res.getString(2);String sNumber=res.getString(3);String sProfession=res.getString(4);String sClass=res.getString(5);String sDate=res.getString(6);ar[i][0]=sName;ar[i][1]=sSex;ar[i][2]=sNumber;ar[i][3]=sProfession;ar[i][4]=sClass;ar[i][5]=sDate;i++;}f2.repaint();con.close();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}public void delete(int line){try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String name=(String)(ar[line][2]);String sql="delete from studentinfo where Snumber ='"+name+"'";int del=st.executeUpdate(sql);if(del==1){ar[line][0]="";ar[line][1]="";ar[line][2]="";ar[line][3]="";ar[line][4]="";ar[line][5]="";JOptionPane.showMessageDialog(null,"删除成功!","信息", JOptionPane.YES_NO_OPTION);}con.close();f2.repaint();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("查询")){String qu=text.getText().trim();show(qu);}if(cmd.equals("删除")){int de=table.getSelectedRow();if(de==-1){JOptionPane.showMessageDialog(null,"请选定要删除的行","错误信息", JOptionPane.YES_NO_OPTION);}else{delete(de);}}if(cmd.equals("取消")){f2.hide();}}}package MS;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.SwingConstants;public class Liulan implements ActionListener {JFrame f4;Container ct;JPanel jp1,jp2,jp3,jp4;JLabel label;JButton btn1,btn2;JTable table;Object[][] ar=new Object[80][6];Object[] columnName={"姓名","性别","学号","专业","班级","入学时间"};Liulan(){f4=new JFrame();ct=f4.getContentPane();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();btn1=new JButton("点击浏览");btn2=new JButton(" 取消");label=new JLabel("<html><font color=#00FF22 size='4'>学生信息浏览<font>",SwingConstants.CENTER);label.setBackground(Color.blue);table=new JTable(ar, columnName);JScrollPane scroll=new JScrollPane(table);jp1.add(label);jp2.add(btn1);jp2.add(btn2);jp3.add(scroll);ct.add(jp1,"North");ct.add(jp3,"Center");ct.add(jp2,"South");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f4.setSize(500,530);int xcen=(x-500)/2;int ycen=(y-530)/2;f4.setLocation(xcen,ycen);f4.setVisible(true);btn1.addActionListener(this);btn2.addActionListener(this);}int i=0;public void select(){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String s="select * from studentinfo";ResultSet res=st.executeQuery(s);while(res.next()){String sName=res.getString(1);String sSex=res.getString(2);String sNumber=res.getString(3);String sProfession=res.getString(4);String sClass=res.getString(5);String sDate=res.getString(6);ar[i][0]=sName;ar[i][1]=sSex;ar[i][2]=sNumber;ar[i][3]=sProfession;ar[i][4]=sClass;ar[i][5]=sDate;i++;}f4.repaint();con.close();}catch(SQLException e){System.out.println("错误代码:"+e.getErrorCode());System.out.println("错误信息:"+e.getMessage());}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e){// TODO Auto-generated method stubString cmd=e.getActionCommand();if(cmd.equals("点击浏览")){select();}else if(cmd.equals(" 取消")){f4.hide();}}}package MS;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import java.sql.DriverManager;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JRadioButton;import javax.swing.JTextField;import javax.swing.SwingConstants;@SuppressWarnings("serial")public class Login extends JFrame implements ActionListener {Container cp=null;JFrame f=null;JButton button1,button2,button3;JTextField t1;JPasswordField t2;JLabel jlable1,jlable2;JRadioButton rabtn1,rabtn2;Color c;JPanel jp1,jp2,jp3;String table=null;Login(){f=new JFrame("学生信息管理系统");button1=new JButton("确定");button2=new JButton("取消");button3=new JButton("注册");//button3.setOpaque(false);button3.setBorder(null);button3.setBackground(Color.getColor("#292421"));rabtn1=new JRadioButton("普通用户");rabtn1.setBackground(Color.getColor("#292421"));rabtn2=new JRadioButton("管理员");rabtn2.setBackground(Color.getColor("#292421"));ButtonGroup group=new ButtonGroup();group.add(rabtn1);group.add(rabtn2);cp=f.getContentPane();jlable1=new JLabel("输入用户号");jlable2=new JLabel("输入密码");jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();t1=new JTextField(20);t2=new JPasswordField(20);//jp3.add(group);jp1.add(jlable1);jp1.add(t1);jp1.add(jlable2);jp1.add(t2);jp1.add(rabtn1);jp1.add(rabtn2);jp1.add(button3);JLabel JL=new JLabel("<html><font color=#292421 size='7'><i>欢迎登陆" + "</i></font>",SwingConstants.CENTER);cp.add(JL,"North");jp2.add(button1);jp2.add(button2);cp.add(jp1,"Center");cp.add("South",jp2);cp.setBackground(new Color(127, 255, 212 ));jp2.setBackground(new Color(127, 255, 212 ));jp1.setBackground(new Color(127, 255, 212 ));Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;int y=screen.height;f.setSize(250,300);int xcenter=(x-300)/2;int ycenter=(y-300)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//------------------------------------------------------------///*监听事件*/button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);rabtn1.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){JRadioButton jop=(JRadioButton) e.getSource();if (jop.isSelected())table="userinfo";}});rabtn2.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){JRadioButton jop=(JRadioButton) e.getSource();if (jop.isSelected())table="manager";}});f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}@SuppressWarnings("deprecation")public void confirm(String tableName){try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:mysql://localhost:3306/sims";try{Connection con=DriverManager.getConnection(conURL,"root","123456");Statement st=con.createStatement();String id=t1.getText().trim();String Mima=t2.getText().trim();String queryMima="select * from "+tableName+" where id='"+id+"' and mima='"+Mima+"'";ResultSet res=st.executeQuery(queryMima);if(res.next()){if(tableName.equals("manager"))new Mstudent(id);else if(tableName.equals("userinfo"))new Ustudent(id);f.hide();con.close();}else{JOptionPane.showMessageDialog(null,"密码错误请重输!!!","提示!",JOptionPane.YES_NO_OPTION);}t1.setText("");t2.setText("");}catch(SQLException g){System.out.println("错误代码:"+g.getErrorCode());System.out.println("错误内容:"+g.getMessage());}}ItemListener listen=new ItemListener(){public void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stub}};public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){if(table==null){JOptionPane.showMessageDialog(f,"请选择用户类型");}confirm(table);}else if(cmd.equals("取消")){f.dispose();}else if(cmd.equals("注册")){new Regist();}}public static void main(String []arg){new Login();}}package MS;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenuBar;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.SwingConstants;import javax.swing.border.TitledBorder;@SuppressWarnings("serial")public class Mstudent extends JFrame implements ActionListener {JButton Query = new JButton("查询信息");JButton add = new JButton("添加信息");JButton delete = new JButton("删除信息");JButton xiugai = new JButton("浏览全部信息");JButton liulan = new JButton("修改密码");JMenuBar mb = new JMenuBar();// 菜单栏JPanel jp = new JPanel();Container cp = getContentPane();String userName;Mstudent(){}Mstudent(String userName){erName = userName;mb.add(Query);mb.add(add);mb.add(delete);mb.add(xiugai);mb.add(liulan);JPanel j=new JPanel();j.add(mb,"Center");cp.add(j, "North");// 设置边框jp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue, 2), null, TitledBorder.CENTER,TitledBorder.TOP));jp.setLayout(new BorderLayout());JLabel label1 = new JLabel("欢迎使用学生信息管理系统",SwingConstants.CENTER);jp.add(label1);JScrollPane scrollpane = new JScrollPane(jp);cp.add(scrollpane,"Center");setTitle("欢迎登陆" + "--" + "你好:" + userName);Toolkit kit = Toolkit.getDefaultToolkit();Dimension screen = kit.getScreenSize();int x = screen.width; /* 取得显示器窗口的宽度*/int y = screen.height; /* 取得显示器窗口的高度*/setSize(600, 600);int xcenter = (x - 600) / 2;int ycenter = (y - 600) / 2;setLocation(xcenter, ycenter);/* 显示在窗口中央*/setVisible(true);//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 注册临听器Query.addActionListener(this);add.addActionListener(this);delete.addActionListener(this);xiugai.addActionListener(this);liulan.addActionListener(this);}public void actionPerformed(ActionEvent e){String cmd = e.getActionCommand();if (cmd.equals("查询信息")){new QueryWays();}if (cmd.equals("添加信息")){new Add();}if (cmd.equals("删除信息")){new Delete();}if (cmd.equals("浏览全部信息")){new Liulan();}if (cmd.equals("修改密码")){new UpdateCode();}}public static void main(String[] args){new Mstudent("");}}package MS;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Query implements ActionListener {String sql =null;int a;String info;JFrame f3;// Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpwest;JButton btn1,btn2;//确定,取消JLabel label,label2;//标签,请输入姓名(label)JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6;//文本框Query(int a){this.a=a;f3=new JFrame();Container cp=f3.getContentPane();//初始化面板,按钮,标签,文本框jp=new JPanel();jp1=new JPanel();jp2=new JPanel(new GridLayout(6,1));jp3=new JPanel();jp4=new JPanel(new GridLayout(6,1));jpwest=new JPanel();btn1=new JButton("确定");btn2=new JButton("取消");label=new JLabel("<html><font color=#CC00FF size='4'>请输入姓名:" + "</font>",SwingConstants.CENTER);label2=new JLabel("<html><font color=#CC00FF size='4'>请输入学号:" + "</font>",SwingConstants.CENTER);label.setForeground(Color.gray);tf=new JTextField(20);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//布局,添加控件if(a==0){jp.add(label);jp.add(tf);}else if(a==1){jp.add(label2);jp.add(tf);}cp.add(jp,"North");jp4.add(new JLabel("姓名",SwingConstants.CENTER));jp2.add(tf1);jp4.add(new JLabel("性别",SwingConstants.CENTER));jp2.add(tf2);jp4.add(new JLabel("学号",SwingConstants.CENTER));jp2.add(tf3);jp4.add(new JLabel("专业",SwingConstants.CENTER));jp2.add(tf4);jp4.add(new JLabel("班级",SwingConstants.CENTER));jp2.add(tf5);jp4.add(new JLabel("入学时间",SwingConstants.CENTER));jp2.add(tf6);jp3.add(btn1);jp3.add(btn2);cp.add(jp4,"West");cp.add(jp2,"East");cp.add(jp3,"South");cp.add(jp1);Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; //显示窗口宽度int y=screen.height;//窗口高度f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);f3.setVisible(true);//f3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btn1.addActionListener(this);btn2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/。
学生信息管理系统源代码(java)
目录1.Client.java (2)2.LoginGUI.java (2)3.AdminGUI.java (6)4.StudentGUI.java (14)5.Select.java (17)6.UpdateAndInsert.java (24)7.Delete.java (27)8.Student.java (29)9.Administrator.java (31)1.Client.java/*程序入口*/package ms;public class Client{public static void main(String[] args){LoginGUI lg=new LoginGUI();lg.login();}}2.LoginGUI.java/*登陆主窗口*/package ms;import java.awt.BorderLayout;import java.awt.Choice;import java.awt.GridLayout;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class LoginGUI{JFrame log=null; //登陆主窗口JPanel jPanel1=null; //用于存放用户名、密码、登录方式标签JPanel jPanel2=null; //用于存放用户名、密码输入框和登录方式选择框JPanel jPanel3=null; //用于存放登陆、退出按钮JLabel jLabel1=null; //用于存放用户名标签JLabel jLabel2=null; //用于存放密码标签JLabel jLabel3=null; //用于存放登录方式标签JLabel jLabel4=null; //学生管理系统登陆标签TextField t1=null; //用于存放用户名输入TextField t2=null; //用于存放密码输入Choice c=null; //用于存放登录方式选择JButton jB1=null; //登陆按钮JButton jB2=null; //退出按钮String UserName=null; //存放用户输入的用户名String UserPassword=null; //存放用户输入的密码int UserLimit=-1; //存放用户选择登陆权限public LoginGUI(){super();this.log = new JFrame("学生学籍管理系统");this.jPanel1=new JPanel();this.jPanel2=new JPanel();this.jPanel3=new JPanel();jLabel1=new JLabel("用户名");jLabel2=new JLabel("密码");jLabel3=new JLabel("登录方式");jLabel4=new JLabel(new ImageIcon("image/login.jpg"));t1=new TextField();t2=new TextField();c=new Choice(); //创建一个登录方式下拉选择框c.add("学生登陆");c.add("管理员登陆");jB1=new JButton("登陆"); //创建登陆按钮jB2=new JButton("退出"); //创建退出按钮}public void login(){BorderLayout border=new BorderLayout();border.setVgap(15);border.setHgap(10);log.setLayout(border); //设置登陆主窗口布局管理器为BorderLayoutlog.add(jPanel1, BorderLayout.WEST);log.add(jPanel2, BorderLayout.CENTER);log.add(jPanel3, BorderLayout.SOUTH);log.add(jLabel4,BorderLayout.NORTH);jPanel1.setLayout(new GridLayout(3,1,30,20)); //3行1列jPanel2.setLayout(new GridLayout(3,1,30,20));jPanel3.setLayout(new GridLayout(1,2,10,30));jPanel1.add(jLabel1); //添加三个标签用户名、密码、登陆方式jPanel1.add(jLabel2);jPanel1.add(jLabel3);jPanel2.add(t1); //添加用户名、密码输入文本框登陆方式选择框jPanel2.add(t2);jPanel2.add(c);jPanel3.add(jB1); //添加两个按钮jPanel3.add(jB2);jB1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){erName=LoginGUI.this.t1.getText();erPassword=LoginGUI.this.t2.getText();erLimit=LoginGUI.this.c.getSelectedIndex();if(erLimit==0){StudentGUI ll=new StudentGUI(LoginGUI.this.log,erName);Select sel=new Select();sel.setStudentList();for(int i=0;i<sel.getStudentAllId().size();i++){if(sel.getStudentAllId().get(i).toString().equals(erNa me)&&sel.getStudentAllPassword().get(i).equals(erPass word)){log.setVisible(false);ll.studentGo();}else if(i==sel.getStudentAllId().size()-1){JOptionPane.showMessageDialog(LoginGUI.this.log,"用户名密码错误");}}}else if(erLimit==1){AdminGUI admin=new AdminGUI(LoginGUI.this.log);Select sel=new Select();sel.setAdminList();for(int i=0;i<sel.getAdminAllId().size();i++){if(sel.getAdminAllId().get(i).toString().equals(erNam e)&&sel.getAdminAllPassword().get(i).equals(erPasswor d)){log.setVisible(false);admin.adminGo();}else if(i==sel.getAdminAllId().size()-1){JOptionPane.showMessageDialog(LoginGUI.this.log,"用户名密码错误");}}}}});jB2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){System.exit(0);}});log.setSize(240,260);log.setLocationRelativeTo(null);log.setResizable(false);log.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e){System.exit(0);}});log.setVisible(true);}}3.AdminGUI.java/*管理员登陆图形界面*/package ms;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class AdminGUI{JDialog log=null;//管理员登陆主窗口JPanel jp1=null;//用于存放管理员登陆标签和jp5JPanel jp2=null;//用于存放查询修改增加删除按钮JPanel jp3=null;//用于存放信息块和jp5JPanel jp4=null;//用于存放修改插入删除按钮JPanel jp5=null;//用于存放请输入学号文本框JLabel jadminLog=null; //管理员登陆标签JLabel jLabel=null; //请输入学号标签TextField tf=null; //请输入学号文本框JButton jb1=null;//查询按钮JButton jb2=null;//修改按钮JButton jb3=null;//增加按钮JButton jb4=null;//删除按钮JButton jb5=null; //列出全部学生信息TextArea ta=null;//信息文本框JLabel jl=null; //用于站位String id=null; //用于保存用户输入查询学号TextField[] jtf = new T extField[9] ;JDialog jdialog=null;public AdminGUI(JFrame log){super();this.log = new JDialog(log,"管理员登陆",true);jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jp5=new JPanel();jadminLog=new JLabel(new ImageIcon("image/admin.jpg"));jLabel=new JLabel("请输入学号");tf=new TextField();jb1=new JButton("查询");jb2=new JButton("修改");jb3=new JButton("增加");jb4=new JButton("删除");jb5=new JButton("列出全部学生信息");ta=new TextArea("点击查询按钮将在此显示查询信息");jl=new JLabel();}public void adminGo(){BorderLayout bl=new BorderLayout();bl.setVgap(30);bl.setHgap(30);log.setLayout(bl);log.add(jp1,BorderLayout.NORTH);BorderLayout bl1=new BorderLayout();bl1.setVgap(20);jp1.setLayout(bl1);jp1.add(jadminLog,BorderLayout.CENTER);jp5.setLayout(new GridLayout(1,2,200,200));jp5.add(jLabel);jp5.add(tf);log.add(jp2,BorderLayout.WEST);jp2.setLayout(new GridLayout(2,1,200,300));jp2.add(jb1);jp2.add(jb5);log.add(jp3,BorderLayout.CENTER);jp3.setLayout(new BorderLayout(10, 10));jp3.add(jp5,BorderLayout.NORTH);jp3.add(ta);jp5.setLayout(new GridLayout(1,5,10,10));jp5.add(jLabel);jp5.add(tf);log.add(jp4,BorderLayout.SOUTH);jp4.setLayout(new GridLayout(1,3,200,30));jp4.add(jb2);jp4.add(jb3);jp4.add(jb4);log.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e){System.exit(0);}});jb1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){AdminGUI.this.id=AdminGUI.this.tf.getText();Select sel=new Select();sel.selectStudent(AdminGUI.this.id);if(sel.getStudent()!=null){Student student=sel.getStudent();AdminGUI.this.ta.setText("学号\t\t"+"姓名\t\t"+"性别\t\t"+"出生日期\t\t"+"民族\t\t"+"籍贯\t\t"+"专业\t\t"+"班级\t\t"+"联系电话\t\t"+"密码\t\t");AdminGUI.this.ta.append("\n"+student.getId()+"\t\t"+student.getNa me()+"\t\t"+student.getSex()+"\t\t"+student.getBornDate()+"\t\t"+student.getNationality()+"\t\t"+student.getNationality()+"\t\t"+stu dent.getMaj()+"\t"+student.getCla()+"\t\t"+student.getTelNum()+"\t\t"+student.getPassword()+"\n");}else{AdminGUI.this.ta.setText("查无此人");}}});jb5.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Select sel=new Select();sel.selectAllStudent();AdminGUI.this.ta.setText("学号\t\t"+"姓名\t\t"+"性别\t\t"+"出生日期\t\t"+"民族\t\t"+"籍贯\t\t"+"专业\t\t"+"班级\t\t"+"联系电话\t\t"+"密码\t\t\n");for(int i=0;i<sel.getAllStudent().size();i++){Student student=sel.getAllStudent().get(i);AdminGUI.this.ta.append(student.getId()+"\t\t"+student.getName() +"\t\t"+student.getSex()+"\t\t"+student.getBornDate()+"\t\t"+student.getNationality()+"\t\t"+student.getHometown()+"\t\t"+st udent.getMaj()+"\t"+student.getCla()+"\t\t"+student.getTelNum()+"\t\t"+student.getPa ssword()+"\n");}}});log.setSize(850,580);log.setLocationRelativeTo(null);log.setResizable(false);jb3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){jdialog=new JDialog(AdminGUI.this.log);String[] str=new String[]{"姓名","性别","出生日期","民族","籍贯","专业","班级","联系电话","密码"};JLabel[] jlabel=new JLabel[9];for(int i=0;i<9;i++){jlabel[i]=new JLabel(str[i]);jtf[i]=new TextField();}JPanel jpanel1=new JPanel();JPanel jpanel2=new JPanel();JButton jbutton1=new JButton("确定");JButton jbutton2=new JButton("取消");jdialog.setLayout(new BorderLayout());jdialog.add(jpanel1,BorderLayout.CENTER);jdialog.add(jpanel2,BorderLayout.SOUTH);jpanel1.setLayout(new GridLayout(9,2,10,10));for(int i=0;i<9;i++){jpanel1.add(jlabel[i]);jpanel1.add(jtf[i]);}jpanel2.add(jbutton1);jpanel2.add(jbutton2);jbutton1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Student student=new Student();student.setName(AdminGUI.this.jtf[0].getText());student.setSex(AdminGUI.this.jtf[1].getText()); student.setBornDate(AdminGUI.this.jtf[2].getText());student.setNationality(AdminGUI.this.jtf[3].getText());student.setHometown(AdminGUI.this.jtf[4].getText());student.setMaj(AdminGUI.this.jtf[5].getText());student.setCla(AdminGUI.this.jtf[6].getText());student.setTelNum(AdminGUI.this.jtf[7].getText()); student.setPassword(AdminGUI.this.jtf[8].getText());UpdateAndInsert up=new UpdateAndInsert();if(up.insertStudent(student)==true){JOptionPane.showMessageDialog(AdminGUI.this.log,"添加成功");}jdialog.dispose();}});jbutton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){jdialog.dispose();}});jdialog.setSize(500,400);jdialog.setLocationRelativeTo(null);jdialog.setResizable(false);jdialog.setVisible(true);}});jb4.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){if(new Delete().delete(AdminGUI.this.tf.getText())==true){JOptionPane.showMessageDialog(AdminGUI.this.log,"刪除成功");}elseJOptionPane.showMessageDialog(AdminGUI.this.log,"刪除失敗");}});jb2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Select sel=new Select();AdminGUI.this.id=AdminGUI.this.tf.getText();sel.selectStudent(AdminGUI.this.tf.getText());Student student=sel.getStudent();if(student==null){JOptionPane.showMessageDialog(AdminGUI.this.log,"请检查输入的学号");}else{jdialog=new JDialog(AdminGUI.this.log);String[] str=new String[]{"姓名","性别","出生日期","民族","籍贯","专业","班级","联系电话","密码"};JLabel[] jlabel=new JLabel[9];for(int i=0;i<9;i++){jlabel[i]=new JLabel(str[i]);}jtf[0]=new TextField(student.getName());jtf[1]=new TextField(student.getSex());jtf[2]=new TextField(student.getBornDate());jtf[3]=new TextField(student.getNationality());jtf[4]=new TextField(student.getHometown());jtf[5]=new TextField(student.getMaj());jtf[6]=new TextField(student.getCla());jtf[7]=new TextField(student.getTelNum());jtf[8]=new TextField(student.getPassword());JPanel jpanel1=new JPanel();JPanel jpanel2=new JPanel();JButton jbutton1=new JButton("确定");JButton jbutton2=new JButton("取消");jdialog.setLayout(new BorderLayout());jdialog.add(jpanel1,BorderLayout.CENTER);jdialog.add(jpanel2,BorderLayout.SOUTH);jpanel1.setLayout(new GridLayout(9,2,10,10));for(int i=0;i<9;i++){jpanel1.add(jlabel[i]);jpanel1.add(jtf[i]);}jpanel2.add(jbutton1);jpanel2.add(jbutton2);jbutton1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Student student=new Student(Integer.parseInt(AdminGUI.this.id), jtf[0].getText(), jtf[1].getText(), jtf[2].getText(), jtf[3].getText(), jtf[4].getText(), jtf[5].getText(), jtf[6].getText(), jtf[7].getText(), jtf[8].getText());UpdateAndInsert up=new UpdateAndInsert();if(up.updateStudent(student)==true){JOptionPane.showMessageDialog(AdminGUI.this.log,"更改成功");;}jdialog.dispose();}});jbutton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){jdialog.dispose();}});jdialog.setSize(500,400);jdialog.setLocationRelativeTo(null);jdialog.setResizable(false);jdialog.setVisible(true);}}});log.setVisible(true);}}4.StudentGUI.java/*学生操作图形界面*/package ms;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.TextField;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class StudentGUI{JDialog log=null;//学生登入类主窗口JPanel jp1=null;//用于存放登入块JPanel jp2=null;//用于存放信息块JPanel jp3=null;//用于密码存放修改块JPanel jp4=null;//用于存放我的信息按钮JLabel jl1=null;//学生登入标签JLabel jl2=null;//学号标签JLabel jl3=null;//学生姓名标签JLabel jl4=null;//性别标签JLabel jl5=null;//出生日期标签JLabel jl6=null;//民族标签JLabel jl7=null;//籍贯标签JLabel jl8=null;//专业标签JLabel jl9=null;//班级标签JLabel jl10=null;//联系电话标签JLabel jl11=null;//请输入密码标签JButton jb1=null;//我的信息按钮JButton jb2=null;//密码修改按钮TextField t1=null;//学号文本框TextField t2=null;//学生姓名文本框TextField t3=null;//性别文本框TextField t4=null;//出生日期文本框TextField t5=null;//民族文本框TextField t6=null;//籍贯文本框TextField t7=null;//专业文本框TextField t8=null;//班级文本框TextField t9=null;//联系电话文本框TextField t10=null;//密码文本框JPanel jp5=new JPanel();//存放密码输入框String id=null;public StudentGUI(JFrame log,String str){super();this.log = new JDialog(log,"学生登入",true);jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jl1=new JLabel(new ImageIcon("image/student.jpg"));jl2=new JLabel("学号:");jl3=new JLabel("学生姓名:");jl4=new JLabel("性别:");jl5=new JLabel("出生日期:");jl6=new JLabel("民族:");jl7=new JLabel("籍贯:");jl8=new JLabel("专业:");jl9=new JLabel("班级:");jl10=new JLabel("联系电话:");jl11=new JLabel("请输入新密码:");jb1=new JButton("我的信息");jb2=new JButton("密码修改");t1=new TextField();t2=new TextField();t3=new TextField();t4=new TextField();t5=new TextField();t6=new TextField();t7=new TextField();t8=new TextField();t9=new TextField();t10=new TextField();this.id=str;}public void studentGo(){BorderLayout bl=new BorderLayout();bl.setHgap(30);bl.setVgap(30);log.setLayout(bl);log.add(jp1,BorderLayout.NORTH);//将登入块信息块密码修改块放入主窗口log.add(jp2,BorderLayout.CENTER);log.add(jp3,BorderLayout.SOUTH);log.add(jp4,BorderLayout.WEST);jp1.add(jl1,BorderLayout.CENTER);jp2.setLayout(new GridLayout(5,2,20,10));jp2.add(jl2);jp2.add(t1);jp2.add(jl3);jp2.add(t2);jp2.add(jl4);jp2.add(t3);jp2.add(jl5);jp2.add(t4);jp2.add(jl6);jp2.add(t5);jp2.add(jl7);jp2.add(t6);jp2.add(jl8);jp2.add(t7);jp2.add(jl9);jp2.add(t8);jp2.add(jl10);jp2.add(t9);jp4.add(jb1);BorderLayout bl1=new BorderLayout();bl1.setHgap(38);jp3.setLayout(bl1);jp3.add(jb2,BorderLayout.WEST);jp3.add(jp5,BorderLayout.CENTER);jp5.setLayout(new GridLayout());jp5.add(jl11);jp5.add(t10);jb1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){Select sel=new Select();sel.selectStudent(id);Student student=sel.getStudent();t1.setText(new Integer(student.getId()).toString());t2.setText(student.getName());t3.setText(student.getSex());t4.setText(student.getBornDate());t5.setText(student.getNationality());t6.setText(student.getHometown());t7.setText(student.getMaj());t8.setText(student.getCla());t9.setText(student.getTelNum());}});jb2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){String password=StudentGUI.this.t10.getText();UpdateAndInsert up=new UpdateAndInsert();if(up.updatePassword(id, password)==true){JOptionPane.showMessageDialog(StudentGUI.this.log,"修改成功");}}});log.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e){System.exit(0);}});log.setSize(550,420);log.setLocationRelativeTo(null);log.setResizable(false);log.setVisible(true);}}5.Select.java/* 查询类包括查询的各种方法*/package ms;import java.sql.*;import java.util.LinkedList;public class Select{private LinkedList<Integer> studentAllId=null;private LinkedList<String> studentAllPassword=null;private LinkedList<Integer> adminAllId=null;private LinkedList<String> adminAllPassword=null;private Student student=null;private LinkedList<Student> allStudent=null;// 定义MySQL的数据库驱动程序public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;// 定义MySQL数据库的连接地址public static final String DBURL = "jdbc:mysql://localhost:3306/studentMS" ;// MySQL数据库的连接用户名public static final String DBUSER = "root" ;// MySQL数据库的连接密码public static final String DBPASS = "systemout" ;public Select(){super();this.studentAllId = new LinkedList<Integer>();this.studentAllPassword = new LinkedList<String>();this.adminAllId = new LinkedList<Integer>();this.adminAllPassword = new LinkedList<String>();this.allStudent = new LinkedList<Student>();}public LinkedList<Integer> getStudentAllId(){return studentAllId;}public LinkedList<String> getStudentAllPassword(){return studentAllPassword;}public LinkedList<Integer> getAdminAllId(){return adminAllId;}public LinkedList<String> getAdminAllPassword(){return adminAllPassword;}public Student getStudent(){return student;}public LinkedList<Student> getAllStudent(){return allStudent;}public void setStudentList() //设置studentAllId 和studentAllPassword{Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select id,password from student";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{stmt = conn.createStatement() ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{rs = stmt.executeQuery(sql) ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){studentAllId.add(rs.getInt(1));studentAllPassword.add(rs.getString(2));}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;stmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}}public void setAdminList(){Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select id,password from admin";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{stmt = conn.createStatement() ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{rs = stmt.executeQuery(sql) ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){adminAllId.add(rs.getInt(1));adminAllPassword.add(rs.getString(2));}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;stmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}}public boolean selectStudent(String str){Connection conn = null ; // 数据库连接PreparedStatement pstmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select name,sex,bornDate,nationality,hometown,maj,cla,telNum,password "+ "from student where id=?";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{pstmt = conn.prepareStatement(sql) ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{pstmt.setString(1, str);} catch (SQLException e2){e2.printStackTrace();}try{rs = pstmt.executeQuery() ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){student=new Student(Integer.parseInt(str),rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9));}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;pstmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}if(student !=null){return true;}else{return false;}}public void selectAllStudent(){Connection conn = null ; // 数据库连接PreparedStatement pstmt = null ; // 数据库的操作对象ResultSet rs = null ; // 保存查询结果String sql = "select * "+"from student";try{Class.forName(DBDRIVER) ; // 加载驱动程序}catch(ClassNotFoundException e){e.printStackTrace() ;}try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;}catch(SQLException e){e.printStackTrace() ;}try{pstmt = conn.prepareStatement(sql) ; //得到stmt对象用于执行sql语句} catch (SQLException e1){e1.printStackTrace();}try{rs = pstmt.executeQuery() ;//保存sql查询结果} catch (SQLException e1){e1.printStackTrace();}try{while(rs.next()){student=new Student(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getString(10));allStudent.add(student);}} catch (SQLException e1){e1.printStackTrace();}try{rs.close() ;pstmt.close() ;conn.close() ; // 数据库关闭}catch(SQLException e){e.printStackTrace() ;}}}6.UpdateAndInsert.java/*修改&&插入类定义了修改和插入的所有方法*/package ms;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class UpdateAndInsert{// 定义MySQL的数据库驱动程序public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;// 定义MySQL数据库的连接地址public static final String DBURL = "jdbc:mysql://localhost:3306/studentMS" ;// MySQL数据库的连接用户名public static final String DBUSER = "root" ;// MySQL数据库的连接密码public static final String DBPASS = "systemout" ;public boolean insertStudent (Student student){String name=student.getName();String sex=student.getSex();String bornDate=student.getBornDate();String nationality=student.getNationality();String hometown=student.getHometown();String maj=student.getMaj();String cla=student.getCla();String telNum=student.getTelNum();String password=student.getPassword();Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库操作try{Class.forName(DBDRIVER) ;} catch (ClassNotFoundException e){// TODO Auto-generated catch blocke.printStackTrace();} // 加载驱动程序String sql = "INSERT INTO student(name,sex,bornDate,nationality,hometown,maj,cla,telNum,passw ord) "+" VALUES('"+name+"','"+sex+"','"+bornDate+"','"+nationality+"','"+hometown+"' ,'"+maj+"','"+cla+"','"+telNum+"','"+password+"')";try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();}try{stmt = conn.createStatement() ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 实例化Statement对象try{stmt.executeUpdate(sql) ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 执行数据库更新操作try{stmt.close() ; // 关闭操作conn.close() ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 数据库关闭return true;}public boolean updateStudent(Student student){Select sel=new Select();if(sel.selectStudent(newInteger(student.getId()).toString())==false){return false;}Connection conn = null ; // 数据库连接Statement stmt = null ; // 数据库操作String name=student.getName();String sex=student.getSex();String bornDate=student.getBornDate();String nationality=student.getNationality();String hometown =student.getHometown();String maj=student.getMaj();String cla=student.getCla();String telNum=student.getTelNum();String password=student.getPassword();String sql="UPDATE student SET name='"+name+"',sex='"+sex+"',bornDate='"+bornDate+"',nationality ='"+nationality+"',hometown='"+hometown+"',maj='"+maj+"',cla='"+c la+"',telNum='"+telNum+"',password='"+password+"' WHERE id="+student.getId() ;try{conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;} catch (SQLException e1){// TODO Auto-generated catch blocke1.printStackTrace();}try{stmt = conn.createStatement() ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 实例化Statement对象try{stmt.executeUpdate(sql) ;} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();} // 执行数据库更新操作try{stmt.close() ; // 关闭操作conn.close() ; // 数据库关闭} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();}return true;}。
学生管理系统 实验报告
学生管理系统实验报告1. 实验目的本次实验的目的是设计并实现一个学生管理系统,通过该系统能够对学生的信息进行管理和操作,包括添加、删除、查询和修改学生的基本信息。
2. 实验环境与工具- 操作系统:Windows 10- 开发工具:Visual Studio Code- 编程语言:Python3. 实验内容及方法3.1 设计思路根据需求,学生管理系统需要能够对学生的基本信息进行增删改查的操作,因此我们设计了以下几个功能模块:- 添加学生信息:通过输入学生的姓名、学号、性别和年龄等信息,将学生信息添加到系统中。
- 删除学生信息:根据输入的学号,删除系统中对应的学生信息。
- 查询学生信息:根据学号或姓名进行查询,得到学生的基本信息。
- 修改学生信息:根据学号选择要修改的学生信息,然后逐项修改学生的基本信息。
3.2 实现方法学生管理系统的设计与实现主要包括以下几个模块:- 主程序入口:通过命令行菜单的方式,接受用户的选择并调用相应的功能模块。
- 添加学生信息:通过输入学生的基本信息,将信息存储到系统的数据结构中。
- 删除学生信息:根据输入的学号,在数据结构中找到对应的学生信息并删除。
- 查询学生信息:根据学号或姓名,在数据结构中查找对应的学生信息并返回。
- 修改学生信息:根据学号选择要修改的学生信息,并逐项修改学生的基本信息。
以上模块通过编写相应的函数并在主程序入口进行调用,最终实现学生管理系统。
4. 实验结果及分析通过输入指定的命令,学生管理系统能够正确地完成相应的功能,包括添加学生信息、删除学生信息、查询学生信息和修改学生信息。
系统能够正确地将学生的基本信息存储到数据结构中,并可以根据学号或姓名进行快速查找。
同时,系统允许对学生信息进行修改和删除操作,保证了信息的完整性和准确性。
在实际使用中,学生管理系统可以应用于学校的学籍管理、班级管理和成绩管理等方面。
通过该系统,可以方便、高效地管理学生的基本信息,提高学校管理工作的效率。
C语言学籍管理系统(内含源代码)
学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查询学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。
系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。
程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。
以下是这些函数原型及功能设计。
(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。
学籍管理系统_实验报告
随着教育信息化的发展,传统的手工学籍管理方式已经无法满足现代教育管理的需求。
为了提高学籍管理工作的效率和准确性,我们设计并实现了学籍管理系统。
本实验旨在通过实际操作,熟悉学籍管理系统的开发流程,掌握数据库设计、前端界面设计、后端逻辑处理等技能,并提升对教育信息化的认识。
二、实验内容与步骤1. 需求分析- 确定系统功能模块:学生信息管理、课程信息管理、成绩信息管理、查询统计、系统维护等。
- 分析用户需求:管理员、教师、学生等不同角色的操作需求。
2. 数据库设计- 设计学生信息表(学号、姓名、性别、出生日期、民族、政治面貌等)。
- 设计课程信息表(课程编号、课程名称、学分、开课学院等)。
- 设计成绩信息表(学号、课程编号、成绩等)。
- 设计教师信息表(教师编号、姓名、性别、职称等)。
3. 前端界面设计- 使用HTML、CSS、JavaScript等技术设计用户界面。
- 实现用户登录、菜单导航、数据录入、查询统计等功能。
4. 后端逻辑处理- 使用Java、Python等编程语言实现业务逻辑。
- 实现数据存储、查询、更新、删除等功能。
- 实现权限控制、数据备份与恢复等功能。
5. 系统测试- 进行单元测试、集成测试、系统测试等。
- 检查系统功能、性能、稳定性等方面是否符合要求。
1. 系统功能实现- 学生信息管理:可以录入、修改、删除学生信息,实现对学生信息的查询和统计。
- 课程信息管理:可以录入、修改、删除课程信息,实现对学生课程学习的统计和分析。
- 成绩信息管理:可以录入、修改、删除成绩信息,实现对学生成绩的查询和分析。
- 查询统计:可以按照学号、姓名、课程名称等条件查询学生信息、课程信息、成绩信息,并生成报表。
- 系统维护:可以修改用户密码、备份与恢复数据等。
2. 系统性能分析- 系统响应时间较短,用户操作流畅。
- 数据库存储效率较高,查询速度快。
- 系统稳定性良好,运行过程中未出现崩溃现象。
3. 系统优化建议- 优化数据库索引,提高查询效率。
学生信息管理系统 系统源代码
系统源代码一、登录界面代码using System;using System.Data;using System。
Configuration;using System。
Collections;using System.Web;using System.Web。
Security;using System。
Web.UI;using System。
Web。
UI。
WebControls;using System.Web。
UI.WebControls。
WebParts;using System。
Web.UI.HtmlControls;using System.Data。
SqlClient;public partial class login :System.Web。
UI。
Page{protected void txtid_Click(object sender,EventArgs e){txtid.Text = ”";txtpassword。
Text = ””;}protected void Button1_Click(object sender, EventArgs e){string strconn = ConfigurationManager。
AppSettings[”connStr”];SqlConnection conn = new SqlConnection(strconn);conn。
Open();DataSet ds=new DataSet ();SqlDataAdapter da = new SqlDataAdapter("select * from users where userid=’" + txtid。
Text + "' and userpwd=’” + txtpassword.Text + ”’", conn);da.Fill(ds);if (ds。
学生管理系统实验报告
学生管理系统实验报告一、实验目的: 学习学生管理系统java程序编程、编写学生管理系统程序。
二、实验环境: 在软件Eclipse运行环境下运行1.实验步骤:2.在Eclipse环境中创建一个java工程, 然后创建学生管理系统类, 并在这类中编写代码。
3.调试代码, 并进行纠正。
4.检验试验结果, 查看是否符合要求。
5.得到结果。
实验内容代码:import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.JDialog;import javax.swing.JFrame;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Xsglxt extends JFrame implements ActionListener { JPanel mb1,mb2;JLabel bq1;JTextField wbk1;JButton an1,an2,an3,an4;JTable bg1;JScrollPane gd1;Xsxx xsxx2;public static void main(String[] args){Xsglxt xs=new Xsglxt();}public Xsglxt(){mb1=new JPanel();bq1=new JLabel("请输入姓名");wbk1=new JTextField(10);an1=new JButton("查询");an1.addActionListener(this);an1.setActionCommand("chaxun");mb1.add(bq1);mb1.add(wbk1);mb1.add(an1); mb2=new JPanel();an2=new JButton("添加");an2.addActionListener(this);an2.setActionCommand("tianjia");an3=new JButton("修改");an3.addActionListener(this);an3.setActionCommand("xiugai");an4=new JButton("删除");an4.addActionListener(this);an4.setActionCommand("shanchu");mb2.add(an2);mb2.add(an3);mb2.add(an4);xsxx2=new Xsxx();bg1=new JTable(xsxx2);gd1=new JScrollPane(bg1);this.add(gd1);this.add(mb1,"North");this.add(mb2,"South");this.setTitle("学生管理系统");this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("chaxun")){String xingming=this.wbk1.getText().trim();String sql="select * from xuesheng where xingming='"+xingming+"'";xsxx2=new Xsxx(sql);bg1.setModel(xsxx2);else if(e.getActionCommand().equals("tianjia")){Tianjia tj=new Tianjia(this,"添加学生信息",true);System.out.println("123456");xsxx2=new Xsxx();bg1.setModel(xsxx2);}else if(e.getActionCommand().equals("xiugai")){int ii=this.bg1.getSelectedRow();if(ii==-1){JOptionPane.showMessageDialog(this,"请选中要删除的行");return;}new Xiugai(this,"修改学生信息",true,xsxx2,ii);System.out.println("123456");xsxx2=new Xsxx();bg1.setModel(xsxx2);else if(e.getActionCommand().equals("shanchu")){int ii=this.bg1.getSelectedRow();if(ii==-1){JOptionPane.showMessageDialog(this, "请选中要删除的行");return;}String st=(String)xsxx2.getValueAt(ii,0);PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;Statement sn=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");//String xuehao=this.wbk1.getText().trim();ps=ct.prepareStatement("delete from xuesheng where xuehao=?");ps.setString(1, st);ps.executeUpdate();}catch(Exception c2){e.paramString();}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}}catch(Exception e3){}}xsxx2=new Xsxx();bg1.setModel(xsxx2);}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*; import javax.swing.JDialog; import javax.swing.JFrame; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Xiugai extends JDialog implements ActionListener { JLabel bq1, bq2, bq3, bq4, bq5, bq6;JTextField wbk1, wbk2, wbk3, wbk4, wbk5, wbk6;JButton an1, an2;JPanel mb1, mb2, mb3, mb4;public Xiugai(Frame fck, String ckm, Boolean msck, Xsxx xsxx2, int hang) {super(fck, ckm, msck);bq1 = new JLabel(" 学号");bq2 = new JLabel(" 姓名");bq3 = new JLabel(" 性别");bq4 = new JLabel(" 年龄");bq5 = new JLabel(" 籍贯");bq6 = new JLabel(" 院系");wbk1 = new JTextField(5);wbk1.setText((String) xsxx2.getValueAt(hang, 0));wbk1.setEditable(false);wbk2 = new JTextField(5);wbk2.setText((String) xsxx2.getValueAt(hang, 1));wbk3 = new JTextField(5);wbk3.setText((String) xsxx2.getValueAt(hang, 2)); wbk4 = new JTextField(5);wbk4.setText((String) xsxx2.getValueAt(hang, 3)); wbk5 = new JTextField(5);wbk5.setText((String) xsxx2.getValueAt(hang, 4)); wbk6 = new JTextField(5);wbk6.setText((String) xsxx2.getValueAt(hang, 5));an1 = new JButton("修改");an1.addActionListener(this);an1.setActionCommand("tiangjia2");an2 = new JButton("取消");an2.addActionListener(this);an2.setActionCommand("quxiao");mb1 = new JPanel();mb2 = new JPanel();mb3 = new JPanel();mb4 = new JPanel();mb1.setLayout(new GridLayout(6, 1));mb2.setLayout(new GridLayout(6, 1));mb1.add(bq1);mb1.add(bq2);mb1.add(bq3);mb1.add(bq4);mb1.add(bq5);mb1.add(bq6);mb2.add(wbk1);mb2.add(wbk2);mb2.add(wbk3);mb2.add(wbk4);mb2.add(wbk5);mb2.add(wbk6);mb3.add(an1);mb3.add(an2);this.add(mb1, BorderLayout.WEST); this.add(mb2);this.add(mb3, BorderLayout.SOUTH); this.add(mb4, BorderLayout.EAST);this.setSize(370, 270);this.setLocation(401, 261);this.setResizable(false);//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("tiangjia2")){PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;Statement sm=null;System.out.println("00000000000");try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.println("1111111111");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");System.out.println("222222222222");String ss=("update xuesheng set xingming=?,xingbie=?,nianling=?,jiguan=?,yuanxi=? where xuehao='"+wbk1.getText().trim()+"'");ps=ct.prepareStatement(ss);ps.setString(1, wbk2.getText());ps.setString(2, wbk3.getText());ps.setString(3, wbk4.getText());ps.setString(4, wbk5.getText());ps.setString(5, wbk6.getText());ps.executeUpdate();this.dispose();} catch (Exception e1) {e1.printStackTrace();}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e3){}}}else if(e.getActionCommand().equals("quxiao")) {this.dispose();}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.JDialog;import javax.swing.JFrame;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Xsxx extends AbstractTableModel {Vector ziduan,jilu;PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;public int getRowCount(){return this.jilu.size();}public int getColumnCount(){return this.ziduan.size();}public Object getValueAt(int hang,int lie){return (((Vector) this.jilu.get(hang)).get(lie)); }public Xsxx(){this.sqlyj("select * from xuesheng");}public Xsxx(String ss){this.sqlyj(ss);}public String getColumnName(int e)return (String)this.ziduan.get(e);}public void sqlyj(String sql){ziduan=new Vector();ziduan.add("学号");ziduan.add("姓名");ziduan.add("性别");ziduan.add("年龄");ziduan.add("籍贯");ziduan.add("所在院系");jilu=new Vector();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");ps=ct.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){Vector hang=new Vector();hang.add(rs.getString(1));hang.add(rs.getString(2));hang.add(rs.getString(3));hang.add(rs.getString(4));hang.add(rs.getString(5));hang.add(rs.getString(6));jilu.add(hang);}}catch (Exception e){e.printStackTrace();} finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e){} }}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*; import javax.swing.JDialog; import javax.swing.JFrame; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Tianjia extends JDialog implements ActionListener{ JLabel bq1,bq2,bq3,bq4,bq5,bq6;JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6;JButton an1,an2;JPanel mb1,mb2,mb3,mb4;public Tianjia(Frame fck,String ckm,Boolean msck){super(fck,ckm,msck);bq1=new JLabel(" 学号");bq2=new JLabel(" 姓名");bq3=new JLabel(" 性别");bq4=new JLabel(" 年龄");bq5=new JLabel(" 籍贯");bq6=new JLabel(" 院系");wbk1=new JTextField(5);wbk2=new JTextField(5);wbk3=new JTextField(5);wbk4=new JTextField(5);wbk5=new JTextField(5);wbk6=new JTextField(5);an1=new JButton("添加");an1.addActionListener(this);an1.setActionCommand("tiangjia2");an2=new JButton("取消");an2.addActionListener(this);an2.setActionCommand("quxiao");mb1=new JPanel();mb2=new JPanel();mb3=new JPanel();mb4=new JPanel();mb1.setLayout(new GridLayout(6,1));mb2.setLayout(new GridLayout(6,1));mb1.add(bq1); mb1.add(bq2); mb1.add(bq3);mb1.add(bq4); mb1.add(bq5); mb1.add(bq6);mb2.add(wbk1); mb2.add(wbk2); mb2.add(wbk3);mb2.add(wbk4); mb2.add(wbk5); mb2.add(wbk6);mb3.add(an1); mb3.add(an2);this.add(mb1,BorderLayout.WEST);this.add(mb2);this.add(mb3,BorderLayout.SOUTH);this.add(mb4,BorderLayout.EAST);this.setSize(370, 270);this.setLocation(401, 281);this.setResizable(false);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("tiangjia2")){PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;Statement sm=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");String ss=("insert into xuesheng values(?,?,?,?,?,?)");ps=ct.prepareStatement(ss);ps.setString(1, wbk1.getText());ps.setString(2, wbk2.getText());ps.setString(3, wbk3.getText());ps.setString(4, wbk4.getText());ps.setString(5, wbk5.getText());ps.setString(6, wbk6.getText());ps.executeUpdate();this.dispose();} catch (Exception e2){}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e3){}}}else if(e.getActionCommand().equals("quxiao")) {this.dispose();}}}实验小结:实验原道的问题是刚开始时程序只能查询不能添加修改删除等, 经过老师指导后修改程序后, 程序就能完成各项操作了。
