精华内容
下载资源
问答
  • Java图形界面开发—学生信息管理系统 完整源码

    千次下载 热门讨论 2017-02-28 21:36:13
    学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。有俩种权限选择。分别跳转到不同的界面。 2、使用了事件监听、Java操作SQLserver数据库等知识。 3、图形化界面中使用了JTable等组件,将查询结果...
  • 学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。有俩种权限选择。分别跳转到不同的界面。 2、使用了事件监听、Java操作SQLserver数据库等知识。 3、图形化界面中使用了JTable等组件,将查询结果...
  • 学生信息管理系统.zip

    2019-09-15 12:28:42
    使用Swing可视化图形界面组件,结合JDBC技术,与SQL Server 数据库连接,实现可注册,登陆系统,对学生的基本信息进行管理,本资源适合Java 新手学习,培养对编程的兴趣,当然,也可供Java课程设计和毕业设计的同学...
  • 选定一行,这行中的信息就选择到下面的组件中,具体代码及注释如下 protected void selectedtableRow() { //定义一个选择函数 // TODO Auto-generated method stub DefaultTableModel...

    将Java表格中的各个属性信息,添加鼠标点击事件,选定并选择到指定的文本框或其他组件中。这样描述有点模糊,举例子说明—如图
    在这里插入图片描述
    如图选定一行,这行中的信息就选择到下面的组件中,具体代码及注释如下

    protected void selectedtableRow() { //定义一个选择函数
    		// TODO Auto-generated method stub
    		DefaultTableModel dft = (DefaultTableModel) teacherlistinfotable.getModel();//创建表格模型对象强制转化为此类型,teacherlistinfotable是这张表的名
    		editteachernametextField.setText(dft.getValueAt(teacherlistinfotable.getSelectedRow(), 1).toString());
    		editteachertitletextField.setText(dft.getValueAt(teacherlistinfotable.getSelectedRow(), 2).toString());
    		editteacheragetextField.setText(dft.getValueAt(teacherlistinfotable.getSelectedRow(), 4).toString());
    		editteacherpasswordtextField.setText(dft.getValueAt(teacherlistinfotable.getSelectedRow(), 5).toString());
    		
    		String sex = dft.getValueAt(teacherlistinfotable.getSelectedRow(), 3).toString();
    		if(sex.equals(manradioButton.getText()))
    			manradioButton.setSelected(true);
    		if(sex.equals(womanradioButton.getText()))
    			womanradioButton.setSelected(true);
    	}
    

    文本框
    getSelectedRow()函数返回鼠标点击所在的行数
    getValueAt(int rowIndex,int columnIndex)返回表格中坐标信息,rowindex所在行,columnindex所在列
    获得坐标信息后通过toString()变为字符串输出,再通过setText设置下面的的值
    单选按钮
    先获取选定的字符(男,女),如果获取到的性别和原先默认的性别相同,则setSelected(true)设置为真,else则不变
    下拉列表框

    String classname = dft.getValueAt(stulistinfotable.getSelectedRow(), 3).toString();//获取表格中选定的信息
    		for(int i=0;i<stuclasscomboBox_1.getItemCount();i++){//循环原有的下拉框中的内容,getItemCount()获取下拉框总行数
    			StuClass sc =  (StuClass) stuclasscomboBox_1.getItemAt(i);//student对象类型强制转换为Stuclass,getItemAt(i)得到索引值
    			if(classname.equals(sc.getName())){
    			stuclasscomboBox_1.setSelectedIndex(i);
    			}
    

    在这里插入图片描述

    stuclasscomboBox_1.setSelectedIndex(i);设置下拉框的默认选择项为下拉框模型(stuclasscomboBox_1)中的第i个变量
    stuclasscomboBox_1.getItemAt(i)获得下拉框模型(stuclasscomboBox_1)第i个变量,强制转换为StuClass类(StuClass类中为是数据库中属性的get/set方法),通过再StuClass类中的getName()方法获取。
    先获取到鼠标点击选定的班级名称,再循环查看获得到的班级名称是否与下拉框中的班级相吻合,如果是则通过setSelectedIndex(i)设置为下拉框当前班级名称。否,则继续循环查找。

    展开全文
  • java的学生信息管理系统 学生信息管理系统是:图形界面、流与文件等技术的综合应用。 图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的...
  • Android实现学生信息管理系统之登录与数据库准备 效果 依赖 大部分组件来自于Design库 在build.gradle 文件中添加这样的代码 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) ...

    前言

    数据库设计参考我的上一篇博客
    Android实现学生信息管理系统之登录与数据库准备
    代码我已经放到了github上,需要的可以下载
    https://github.com/SunnyBoy-WYH/AndroidDemo
    考虑到大家可能github下载慢,我也在码云放了一份
    https://gitee.com/SunnyBoy-WYH/AndroidDemo

    觉得还可以的可以Star一下…

    效果图

    在这里插入图片描述

    依赖

    大部分组件来自于Design库
    在build.gradle 文件中添加这样的代码

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:design:28.0.0'
    }
    

    要想使用circleimageview–圆形imageview也就是我的头像,只需要在上面依赖中添加如下一句

    implementation 'de.hdodenhof:circleimageview:2.1.0'
    

    添加依赖之后记得Sync now 编译一下 以让它下载你的依赖。

    侧滑菜单参考我之前的一篇博客
    Android 界面美化之DrawerLayout(抽屉式布局)+菜单栏导航实现

    XML布局代码

    用于提交留言的布局 activity_submit_message.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@mipmap/liuyan_new"
        tools:context=".student.submit_message">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="50dp"
            android:gravity="center"
            android:textSize="30dp"
            android:text="留言"/>
        <EditText android:text=""
            android:layout_marginTop="50dp"
            android:id="@+id/et_message"
    
            android:lines="5"
    
            android:gravity="top"
    
            android:hint="请输入您的反馈意见(字数500以内)!"
            android:textSize="20sp"
            android:textColor="#000000"
    
            android:layout_width="fill_parent"
    
            android:layout_height="wrap_content">
    
        </EditText>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:text="提交"
            android:background="@mipmap/color"
            android:id="@+id/button_submit"
            />
    
    </LinearLayout>
    

    选课界面的布局文件 activity_choose_course.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".student.choose_course"
        android:background="@mipmap/choosecourse"
        android:orientation="vertical">
        <ListView
            android:layout_width="match_parent"
            android:layout_height="650dp"
            android:layout_weight="9"
            android:id="@+id/listview_course">
    
        </ListView>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="选择"
                android:id="@+id/choose"
                android:layout_marginLeft="120dp"
                />
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/back"
                android:text="返回"/>
        </LinearLayout>
    
    
    </LinearLayout>
    

    java逻辑代码

    学生端主界面 activity_student.java

    package com.example.database_manage.student;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Build;
    import android.os.Bundle;
    import android.provider.MediaStore;
    import android.support.annotation.NonNull;
    import android.support.annotation.Nullable;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.NavigationView;
    import android.support.v4.content.FileProvider;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBar;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;
    import android.widget.Toast;
    import com.example.database_manage.Common.Common_methon;
    import com.example.database_manage.Common.Common_toolbarColor;
    import com.example.database_manage.R;
    import com.example.database_manage.database.CommonDatabase;
    import com.example.database_manage.database.image_store;
    import com.example.database_manage.start_load.load;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
    
    import de.hdodenhof.circleimageview.CircleImageView;
    
    public class activity_student extends AppCompatActivity  {
        private SQLiteDatabase db;
    
        //切换用户弹出的对话框
        private AlertDialog.Builder builder;
    
        //Toolbar用于替代原有的actionBar
        private Toolbar toolbar ;
    
        //用于显示学生选课信息的listview
        private ListView listView_mycourse;
    
        //侧滑
        private DrawerLayout drawerLayout;
        private NavigationView navigationView;
    
        //用于获取NavigationView的headlayout,方便监听子项
        private View headview;
    
        //headlayout中的textview
        private TextView textView_welcome;
    
        //headlayout中circleimage
        private CircleImageView circleImageView;
    
    
        private Uri imageUri;
    
        private static final int TAKE_PHOTO =1;
    
        private image_store imageStore;
    
        private  Intent intent_1;
    
        //悬浮按钮也就是加号,用于选课
        private FloatingActionButton floatingActionButton;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.activity_student);
    
            initView();
    
            //获取登录信息,以锁定用户
            intent_1 = getIntent();
    
            final ActionBar actionBar = getSupportActionBar();
            if(actionBar!=null)
            {
                actionBar.setDisplayHomeAsUpEnabled(true);
    
                //设置左箭头图片
                actionBar.setHomeAsUpIndicator(R.drawable.a);
    
            }
    
            //headlayout中的欢迎实现
            textView_welcome.setText(findNameById(intent_1.getStringExtra("student_id")));
    
    
    
    
            //菜单栏实现
            navigationView.setCheckedItem(R.id.nav_menu_myinfo);
            navigationView.setCheckedItem(R.id.nav_menu_changeacc);
    
    
            //设置标题栏与状态栏颜色保持一致
            new Common_toolbarColor().toolbarColorSet(activity_student.this);
    
            //头像初始化
            Bitmap bitmap_temp = imageStore.getBmp(db,intent_1.getStringExtra("student_id"));
    
            if(bitmap_temp!=null)
            {
                circleImageView.setImageBitmap(bitmap_temp);
            }
    
    
            //NavigationView的菜单项监听器
            navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                    switch (menuItem.getItemId())
                    {
                        case R.id.nav_menu_myinfo:
                            Intent intent_about = new Intent(activity_student.this, about_me.class);
                            intent_about.putExtra("student_id", intent_1.getStringExtra("student_id"));
                            startActivity(intent_about);
    
                            break;
                        case R.id.nav_menu_changeacc:
                            builder = new AlertDialog.Builder(activity_student.this);
    
                            builder.setIcon(R.drawable.ic_launcher_background);
                            //    设置Title的内容
                            builder.setTitle("提示");
                            //    设置Content来显示一个信息
                            builder.setMessage("您确定要切换账号吗?");
                            //    设置一个PositiveButton
                            builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
                            {
                                @Override
                                public void onClick(DialogInterface dialog, int which)
                                {
                                    startActivity(new Intent(activity_student.this, load.class));
                                    finish();
                                }
                            });
                            //    设置一个NegativeButton
                            builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
                            {
                                @Override
                                public void onClick(DialogInterface dialog, int which)
                                {
                                    //取消就什么都不做
                                }
                            });
    
                            //  显示出该对话框
                            builder.show();
                            break;
                            //留言
                        case R.id.nav_menu_liuyan:
                            Intent intent_submit = new Intent(activity_student.this, submit_message.class);
                            intent_submit.putExtra("student_id", intent_1.getStringExtra("student_id"));
                            startActivity(intent_submit);
                            break;
    
                            //查看选课结果
                        case R.id.nav_menu_look_hcourse:
    
                        //两表连接查询
                        Cursor cursor = db.rawQuery(
                                "select * from student_course inner join course " +
                                        "on student_course.course_name =course.course_name " +
                                        "AND student_course.teacher_name = course.teacher_name  " +
                                        "where student_id = ?", new String[]{intent_1.getStringExtra("student_id")});
                        ArrayList<Map<String, String>> arrayList_1 = new ArrayList<Map<String, String>>();
                        if (cursor.getCount() == 0) {
                            Toast.makeText(activity_student.this, "您还没有选择任何课!", Toast.LENGTH_SHORT).show();
                        } else {
                            while (cursor.moveToNext()) {
                                Map<String, String> map = new HashMap<String, String>();
    
                                map.put("course_time", cursor.getString(cursor.getColumnIndex("course_time")));
                                map.put("course_name", cursor.getString(cursor.getColumnIndex("course_name")));
                                map.put("teacher_name", cursor.getString(cursor.getColumnIndex("teacher_name")));
                                map.put("course_period", cursor.getString(cursor.getColumnIndex("course_period")));
                                map.put("course_weight", cursor.getString(cursor.getColumnIndex("course_weight")));
                                arrayList_1.add(map);
    
                            }
                            //设置适配器,并绑定布局文件
                            SimpleAdapter simpleAdapter = new SimpleAdapter(activity_student.this, arrayList_1, R.layout.choose_result,
                                    new String[]{"course_name", "teacher_name", "course_time", "course_weight", "course_period"}, new int[]{R.id.result_course_name, R.id.result_teacher_name, R.id.result_time, R.id.result_weight, R.id.result_period});
                            listView_mycourse.setAdapter(simpleAdapter);
                        }
    
                        break;
    
                        default:
                            break;
                    }
                    return true;
                }
            });
    
    
    
            //为listview设定监听器
            View.OnClickListener listener = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    switch (v.getId()) {
                        case R.id.floatingbutton_choose_course:
                            //再将从登陆界面接受的学生学号传给选择课程的活动
                            Intent intent_2 = new Intent(activity_student.this, choose_course.class);
                            intent_2.putExtra("student_id", intent_1.getStringExtra("student_id"));
                            startActivity(intent_2);
                            break;
                        case R.id.circleimage:
                            // 创建File对象,用于存储拍照后的图片
                            File outputImage = new File(getExternalCacheDir(), "output_image.jpg");
                            try {
                                if (outputImage.exists()) {
                                    outputImage.delete();
                                }
                                outputImage.createNewFile();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                            if (Build.VERSION.SDK_INT < 24) {
                                imageUri = Uri.fromFile(outputImage);
                            } else {
                                imageUri = FileProvider.getUriForFile(activity_student.this, "com.example.database_manage.fileprovider", outputImage);
                            }
                            // 启动相机程序
                            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
                            startActivityForResult(intent, TAKE_PHOTO);
    
                            break;
                        default:
                            break;
                    }
                }
            };
    
    
            floatingActionButton.setOnClickListener(listener);
            circleImageView.setOnClickListener(listener);
    
    
        }
    
        //点击头像拍照实现
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            switch (requestCode)
            {
                case TAKE_PHOTO:
                    if(resultCode ==RESULT_OK)
                    {
                        try{
                            //将拍摄的照片显示到头像中
                            Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
                            circleImageView.setImageBitmap(bitmap);
    
                            //更新本人资源表
                            Bitmap bitmap1 = new Common_methon().compressBoundsBitmap(activity_student.this,imageUri,200,200);
                            imageStore.update(bitmap1,db,intent_1.getStringExtra("student_id"));
                        }catch (FileNotFoundException e)
                        {
                            e.printStackTrace();
    
                        }
    
                    }
                    break;
                default:
                    break;
            }
        }
    
        private void initView() {
    
            //获取数据库对象
            db = new CommonDatabase().getSqliteObject(activity_student.this, "test_db");
    
            listView_mycourse = findViewById(R.id.listview_mycourse);
    
            toolbar =findViewById(R.id.toolbar_student);
    
            setSupportActionBar(toolbar);
    
            drawerLayout = findViewById(R.id.drawerlayout_student);
    
            navigationView = findViewById(R.id.navigation_view);
    
            headview = navigationView.inflateHeaderView(R.layout.headlayout);
    
    
            textView_welcome = headview.findViewById(R.id.welcome_textview);
    
    
            circleImageView = headview.findViewById(R.id.circleimage);
    
            floatingActionButton = findViewById(R.id.floatingbutton_choose_course);
    
            imageStore = new image_store();
    
        }
    
        //
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
    
            switch (item.getItemId())
            {
                case android.R.id.home:
                    drawerLayout.openDrawer(GravityCompat.START);
    
                    break;
                default:
                    break;
            }
            return true;
        }
    
        //根据用户的学号去查找姓名
        public String findNameById(String id)
        {
            Cursor cursor = db.query("student",null,"id = ?",new String[]{id},null,null,null,null);
    
            //如果没查到
            if(cursor.getCount()==0)
            {
                return "无法获取您的个人信息";
            }
            else
            {
                String str = "";
                while(cursor.moveToNext())
                {
                    str = cursor.getString(cursor.getColumnIndex("name"));
                }
                return  str+" 欢迎您!";
            }
    
        }
    
    }
    
    

    我的信息界面 about_me.java

    package com.example.database_manage.student;
    
    import android.content.Intent;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.example.database_manage.R;
    import com.example.database_manage.database.CommonDatabase;
    /*
        我的信息功能实现,主要根据登录时传过来的intent所携带的数据
     */
    public class about_me extends AppCompatActivity {
        SQLiteDatabase db ;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_about_me);
    
            //获取数据库对象
            db = new CommonDatabase().getSqliteObject(about_me.this,"test_db");
    
            //获取登录时传来的信息
            final Intent intent_about_me =getIntent();
    
            //绑定组件
            TextView t_about_id = findViewById(R.id.aboutme_id);
            TextView t_about_name = findViewById(R.id.aboutme_name);
            TextView t_about_phone = findViewById(R.id.aboutme_phone);
            TextView t_about_banji = findViewById(R.id.aboutme_banji);
            TextView t_about_sex = findViewById(R.id.aboutme_sex);
            TextView t_about_age = findViewById(R.id.aboutme_age);
            TextView t_about_college = findViewById(R.id.aboutme_college);
    
            Cursor cursor_about = db.query("student",null,"id = ?",new String[]{intent_about_me.getStringExtra("student_id")},null,null,null);
            while(cursor_about.moveToNext())
            {
                //将通过id查询到的学生信息显示到界面中
                t_about_id.setText(cursor_about.getString(cursor_about.getColumnIndex("id")));
                t_about_name.setText(cursor_about.getString(cursor_about.getColumnIndex("name")));
                t_about_banji.setText(cursor_about.getString(cursor_about.getColumnIndex("banji")));
                t_about_phone.setText(cursor_about.getString(cursor_about.getColumnIndex("phone")));
                t_about_sex.setText(cursor_about.getString(cursor_about.getColumnIndex("sex")));
                t_about_age.setText(cursor_about.getString(cursor_about.getColumnIndex("age")));
                t_about_college.setText(cursor_about.getString(cursor_about.getColumnIndex("college")));
    
            }
            Button button_back = findViewById(R.id.button_finish_about);
            Button button_jidian = findViewById(R.id.button_query_jidian);
            button_jidian.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                //主要用于查询绩点
                    Cursor cursor1 =db.rawQuery(
                            "select * from student_course inner join course " +
                                    "on student_course.course_name =course.course_name " +
                                    "AND student_course.teacher_name = course.teacher_name  " +
                                    "where student_id = ?",new String[]{intent_about_me.getStringExtra("student_id")});
    
                    //设定比对数组,根据河北大学绩点对照
                    double[] duizhao = new double[105];
                    double fenmu =0.0;
                    double fenzi =0.0;
                    double temp=0.8;
    
                    for(int i=0;i<60;i++)
                    {
                        duizhao[i]=0;
                    }
    
                    for(int j=60;j<66;j++)
                    {
                        temp+=0.2;
                        duizhao[j]=temp;
    
    
                    }
                    temp=2.0;
                    for(int z=66;z<95;z++)
                    {
                        temp+=0.1;
                        duizhao[z]=temp;
                    }
                    for(int k=95;k<=100;k++)
                    {
                        duizhao[k]=5.0;
                    }
    
                    while(cursor1.moveToNext())
                    {
                        if(cursor1.getString(cursor1.getColumnIndex("score"))!=null) {
                            fenmu = fenmu + Double.parseDouble(cursor1.getString(cursor1.getColumnIndex("course_weight")));
                            fenzi += duizhao[Integer.parseInt(cursor1.getString(cursor1.getColumnIndex("score")))] * Double.parseDouble(cursor1.getString(cursor1.getColumnIndex("course_weight")));
                        }
    
                    }
                    if(fenmu<0.1)
                    {
                        Toast.makeText(about_me.this,"您还没有选任何课或您的成绩老师还没有注入哦",Toast.LENGTH_LONG).show();
                    }
                    else
                    {
                        Toast.makeText(about_me.this,"您的绩点为:"+String.valueOf(fenzi/fenmu),Toast.LENGTH_LONG).show();
                    }
    
    
    
                }
            });
    
    
            button_back.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }
    }
    
    

    配合listview的选课自定义Adapter courseAdapter.java

    package com.example.database_manage.student;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.TextView;
    
    
    import com.example.database_manage.R;
    
    import java.util.List;
    
    /*
    主要用于设定listview的适配器
     */
    public class courseAdapter extends BaseAdapter {
         Context mContext;
         List<item> mList;
         ViewHolder mViewHolder;
    
        public  courseAdapter(Context mContext, List<item> mList)
        {
            this.mContext = mContext;
            this.mList = mList;
        }
        @Override
        public int getCount()
        {
            return mList.size();
        }
        @Override
        public Object getItem(int i)
        {
            return mList.get(i);
        }
        @Override
        public long getItemId(int i)
        {
            return i;
        }
        @Override
        public View getView(final int i, View view, ViewGroup viewGroup)
        {
            final item it = mList.get(i);
            if(view == null)
            {
                //用LayouInflater加载布局,传给布局对象view
                // 用view找到三个控件,存放在viewHolder中,再把viewHolder储存到View中
                // 完成了把控件展示在ListView的步骤
                 view = LayoutInflater.from(mContext).inflate(R.layout.list_item_course, viewGroup, false);
    
                 mViewHolder = new ViewHolder();
                 mViewHolder.checkBox = (CheckBox)view.findViewById(R.id.checkbox_1);
                 mViewHolder.course_name = (TextView)view.findViewById(R.id.t_course_name);
                 mViewHolder.course_time = (TextView)view.findViewById(R.id.t_course_time);
                 mViewHolder.course_period =(TextView) view.findViewById(R.id.t_course_period);
                 mViewHolder.teacher_name = view.findViewById(R.id.t_teacher_name);
                 mViewHolder.course_weight = view.findViewById(R.id.t_course_weight);
                 view.setTag(mViewHolder);
            }
            else
                {
    
                    mViewHolder = (ViewHolder) view.getTag();
                }
            mViewHolder.checkBox.setOnCheckedChangeListener (
                    new CompoundButton.OnCheckedChangeListener()
            {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b)
            {
                it.setIscheck(b);
            }
    
            });
            mViewHolder.course_name.setText(it.getCourse_name());
            mViewHolder.course_time.setText(it.getCourse_time());
            mViewHolder.course_period.setText(it.getCourse_period());
            mViewHolder.teacher_name.setText(it.getTeacher_name());
            mViewHolder.checkBox.setChecked(it.getIscheck());
            mViewHolder.course_weight.setText(it.getCourse_weight());
            return view;
            }
        class ViewHolder
        {
            TextView course_name;
            TextView course_time;
            CheckBox checkBox;
            TextView course_period;
            TextView teacher_name;
            TextView course_weight;
        }
    }
    
    

    配合自定义Adapter使用的子项类item, item.java

    package com.example.database_manage.student;
    /*
    item主要设计选课时的选中状态以及信息
     */
    public class item {
        String course_name;
        String course_time;
        String course_period;
        String course_weight;
        String teacher_name;
        Boolean ischeck;
    
    
        public  item(String course_name, String course_time, String course_period,String teacher_name,String course_weight)
        {
            this.course_name = course_name;
            this.course_time = course_time;
            this.course_period = course_period;
            this.teacher_name = teacher_name;
            this.course_weight = course_weight;
            this.ischeck = false;
    
        }
        public String getCourse_weight() {
            return course_weight;
        }
    
        public String getTeacher_name() {
            return teacher_name;
        }
    
        public void setTeacher_name(String teacher_name) {
            this.teacher_name = teacher_name;
        }
        public String getCourse_name() {
            return course_name;
        }
    
        public String getCourse_time() {
            return course_time;
        }
    
        public String getCourse_period() {
            return course_period;
        }
    
        public void setCourse_name(String course_name) {
            this.course_name = course_name;
        }
    
        public Boolean getIscheck() {
            return ischeck;
        }
    
        public void setIscheck(Boolean ischeck) {
            this.ischeck = ischeck;
        }
    }
    
    

    提交留言用的界面 submit_message.java

    package com.example.database_manage.student;
    
    import android.content.ContentValues;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.example.database_manage.R;
    import com.example.database_manage.database.CommonDatabase;
    
    public class submit_message extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_submit_message);
            final EditText editText = findViewById(R.id.et_message);
            Button button_submit = findViewById(R.id.button_submit);
    
    
    
            button_submit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(editText.getText().toString().equals(""))
                    {
                        Toast.makeText(submit_message.this,"留言不可以为空",Toast.LENGTH_SHORT).show();
                    }
                    else
                    {
                        ContentValues contentValues = new ContentValues();
                        contentValues.put("student_id",getIntent().getStringExtra("student_id"));
                        contentValues.put("message",editText.getText().toString());
    
                        new CommonDatabase().getSqliteObject(submit_message.this,"test_db").
                                insert("message",null,contentValues);
                        Toast.makeText(submit_message.this,"留言成功!",Toast.LENGTH_SHORT).show();
                        finish();
                    }
    
    
                }
            });
    
    
        }
    }
    
    

    学生端选课界面 choose_course.java

    package com.example.database_manage.student;
    
    import android.content.ContentValues;
    import android.content.Intent;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.Toast;
    
    import com.example.database_manage.R;
    import com.example.database_manage.database.CommonDatabase;
    
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class choose_course extends AppCompatActivity {
        private SQLiteDatabase db;
        private List<item> arrayList;
        private courseAdapter c;
        private ListView listView_course;
        private Button button_back;
        private Button button_choose;
        private CommonDatabase commonDatabase;
        private Intent intent_3;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_choose_course);
            /
            commonDatabase = new CommonDatabase();
    
            db =commonDatabase.getSqliteObject(choose_course.this,"test_db");
            /
            listView_course = findViewById(R.id.listview_course);
            button_back = findViewById(R.id.back);
            button_choose =findViewById(R.id.choose);
            intent_3 = getIntent();
            View.OnClickListener listener_choose =new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    switch (v.getId())
                    {
                        case R.id.choose:
                            String string_chongtu = "";
                            for(int i=0;i<c.getCount();i++)
                            {
                                //获取子项的对象
                                item it = (item)c.getItem(i);
    
                                //如果是被选中的状态
                                if(it.ischeck==true)
                                {
                                    //去表中查一下是否已经存在
                                    Cursor cursor = db.query("student_course",null,"student_id =? AND course_name =? AND teacher_name = ?",
                                            new String[]{intent_3.getStringExtra("student_id"),it.getCourse_name(),it.getTeacher_name()},null,null,null);
                                   //如果不存在
                                    if(cursor.getCount()==0)
                                    {
                                        ContentValues values1 = new ContentValues();
                                        
    
                                        values1.put("student_id",intent_3.getStringExtra("student_id"));
                                        values1.put("course_name",it.getCourse_name());
                                        values1.put("teacher_name",it.getTeacher_name());
                                        db.insert("student_course",null,values1);
                                    }
                                    //存在说明已经选过了
                                    else
                                    {
                                        string_chongtu+=it.getCourse_name();
                                        string_chongtu+="/";
                                    }
                                }
                                //如果没有冲突的
                                if(string_chongtu.equals(""))
                                {
                                    Toast.makeText(choose_course.this,"选课成功!",Toast.LENGTH_SHORT).show();
    
                                }
                                else
                                {
                                    Toast.makeText(choose_course.this,string_chongtu+"重复选中,其他课程选课成功!",Toast.LENGTH_SHORT).show();
                                }
    
                            }
    
                            break;
    
                        case R.id.back:
                            finish();
                            break;
                    }
                }
            };
            button_choose.setOnClickListener(listener_choose);
            button_back.setOnClickListener(listener_choose);
    
            //获取课程的全部信息
            Cursor cursor = db.query("course", null, null, null, null, null, null);
    
            arrayList= new ArrayList<item>();
            //对游标进行遍历
            while(cursor.moveToNext())
            {
    
                String  name = cursor.getString(cursor.getColumnIndex("course_name"));
                String  time = cursor.getString(cursor.getColumnIndex("course_time"));
                String  period = cursor.getString(cursor.getColumnIndex("course_period"));
                String  teacher = cursor.getString(cursor.getColumnIndex("teacher_name"));
                String  weight = cursor.getString(cursor.getColumnIndex("course_weight"));
    
                item it = new item(name,time,period,teacher,weight);
                arrayList.add(it);
            }
             //实例化Adapter
             c = new courseAdapter(choose_course.this,arrayList);
    
            listView_course.setAdapter(c);
        }
    }
    
    
    展开全文
  • 学生信息管理系统 一.课程设计的目的 Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者...
  • JAVA 学生成绩管理系统 山西工程职业技术学院 计算机系实训报告设计名称: 软件课程设计 设计题目: 学生成绩管理系统 学生学号: 10503091014 专业班级: 网 10 学生姓名: 贾慧斌 学生成绩: 指导教师(职称): 牛...

    41528d3028836879cd698677c3999917.gifJAVA 学生成绩管理系统

    山西工程职业技术学院 计算机系实训报告设计名称: 软件课程设计 设计题目: 学生成绩管理系统 学生学号: 10503091014 专业班级: 网 10 学生姓名: 贾慧斌 学生成绩: 指导教师(职称): 牛承珍 实训时间: 2011.6.20 至 2011.6.24 1 概要结构设计1.1 系统功能结构设计具体的流程图如下:开始得到事件处理器组件源是否为插入输入插入信息调用 Student 中的 insert 语句插入记录是否为删除输入关键字调用 Student 中delete 语句来删除记录 是否为查询输入关键字和改变的值调用 Student 中select 语句来查询退出系统结 束显示操作成功显示操作成功YNYYNN开始得到事件处理器组件源是否为插入输入插入信息调用 Student 中的 insert 语句插入记录是否为删除输入关键字调用 Student 中delete 语句来删除记录 是否为查询输入关键字和改变的值调用 Student 中select 语句来查询退出系统结 束显示操作成功显示操作成功YNYYNN开始得到事件处理器组件源是否为插入输入插入信息调用 Student 中的 insert 语句插入记录是否为删除输入关键字调用 Student 中delete 语句来删除记录 是否为查询输入关键字和改变的值调用 Student 中select 语句来查询退出系统结 束显示操作成功显示操作成功YNYYNN2 数据库的连接2.1 新建数据库根据需要构建一个名为 student 的学生数据库SQL 的代码如下:Create database student2.2 新建表格根据需要构建两个表格用来存储学生的信息,和学生的成绩创建学生信息表Create table student (stuNo char(10) primary key ,name char(10),gender name char(10),age int)创建学生成绩表Create table score(stuNo char(10)primary key, score int)2.3 新建名为 student 的数据源打开控制面板,找到数据源新建一个 student 的数据源,单击添加,选择 SQL,并在服务器内添加(local )注意修改默认的数据库,选中自己的数据库 student进行数据库的链接测试在数据源管理器中会看到自己添加的数据源 student。3 详细设计及实现3.1 公共类的定义学生类的定义代码如下:import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JOptionPane;public class Student {String stuNo;String name;String gender;int age;public Student() { }public Student(String stuNo, String name, String gender, int age) {this.stuNo = stuNo;this.name = name;this.gender = gender;this.age = age;}public String getStuNo() {return stuNo;}public void setStuNo(String stuNo) {this.stuNo = stuNo;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//向数据库中插入学生基本信息,若插入成功返回 truepublic boolean insertStudent() {boolean b = true;try {Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = “insert into student values( “ + stuNo + “ , “ + name+ “ , “ + gender + “ ,“ + age + “)“;sql = new String(sql.getBytes(“GBK“), “ISO-8859-1“); //处理汉字乱码statement.cuteUpdate(sql);statement.close();con.close();} catch (Exception e) {b = false;System.out.println(“插数据遇到异常!“);}return b;}//根据学号查询学生基本信息,若查询成功返回 truepublic boolean selectByStuNo(String stuNo) throws Exception {boolean b = false;Connection con = SQLConnection.getCon();Statement statement = con.createStatement();String sql = “select * from student where stuNo = “ + stuNo + “ “;ResultSet rs = statement.cuteQuery(sql);if (rs.next()) {String no = rs.getString(1);this.setStuNo(no);String n = rs.getString(2);n = new String(n.getBytes(“ISO-8859-1“), “GBK“); //处理汉字乱码this.setName(n);String g = rs.getString(3);g = new String(g.getBytes(“ISO-8859-1“), “GBK“); //处理汉字乱码this.setGender(g);this.setAge(rs.getInt(4));b = true;}rs.close();statement.close();con.close();return b;}public boolean deleteStudent

    展开全文
  • 数据库结构设计2.1数据库表2.2学生信息管理系统的E-R3.软件运行演示4.功能介绍 1.设计思路介绍 本学生学籍管理系统采用前台应用程序结合后台SQL Server2016数据库的C/S架构的开发模式,运用C#语言为开发语言,通过...

    1.设计思路介绍

    本学生学籍管理系统采用前台应用程序结合后台SQL Server2016数据库的C/S架构的开发模式,运用C#语言为开发语言,通过优化程序的代码及结构,提高了程序的运行效率。
    学生学籍管理系统在Visual Studio2017环境中结合SQL Server2016数据库进行开发,该环境提供了大量可供选择的数据控件、可以很方便地建立与数据库的连接,此外,利用各种组件可对数据库进行多种操作。

    2.数据库结构设计

    学生学籍管理系统中需要采集大量信息,包括学籍信息,成绩信息、课程信息等,我们需要合理有效组织数据表的结构,以及合理设置每张表所包含的字段,否则后期进行数据的整理等操作时,会增加降低数据的可读性,提高编程难度,造成效率降低。根据系统设计框架,数据信息可归纳为以下内容:
    专业信息:描述专业名称;
    班级名称:描述班级名称、所属专业等信息;
    学生信息:描述学生学号、姓名、家庭地址等基础信息;
    课程信息:描述课程名称、所开班级信息;
    成绩信息:描述课程、学期、成绩信息;
    用户信息:描述用户名称、密码信息;

    一个专业可包含有多个班级;
    一个班级对应一个入学年份及学制;
    一个班级可以包含多名学生;
    一个学生拥有唯一的学号;
    一个班级在一个学期可以开设多门课程;
    一门课程需要记录每名学生的成绩;

    2.1数据库表

    根据上述数据间的对应关系,设计数据库中应包含的数据表可以如下:
    数据库表(StudentStatusDb)
    在这里插入图片描述
    用户登录信息表tbUserInfo
    在这里插入图片描述
    班级信息表tbclassInfo
    在这里插入图片描述
    学生专业信息表tbSpecialtyInfo
    在这里插入图片描述
    学生成绩信息表tbScoreInfo
    在这里插入图片描述
    学生课程信息表tbCourseInfo
    在这里插入图片描述
    学籍信息表tbStudentInfo
    在这里插入图片描述

    2.2学生信息管理系统的E-R图

    在这里插入图片描述
    根据学生信息管理系统的E-R图分析哪些表间的字段存在依赖关系,分析结果如下:
    1)班级信息表中的专业信息来源于专业信息表;
    2)学生信息表中的班级信息来源于班级信息表;
    3)课程信息表中的班级来源于班级信息表;
    4)学生成绩表中的学号来源于学生信息表;

    3.软件运行演示

    登录界面
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    4.功能介绍

    系统功能结构图
    在这里插入图片描述
    5.项目总结
    整个项目难点在于数据库的搭建,一开始调试总是报错,后面经过一步步排查发现是权限设置问题,真个系统设计功能还比较基础,仍有很大的改进空间,欢迎交流与指点!

    展开全文
  • 6.何年何月到何年何月 所在学校或单位 任何职务 证明人 学习情况 个人特长 奖惩记录 爱好 处分记过 学籍异动情况 毕(结)业或肄业日期 毕(结)业或肄业去向 备 注 >>学生档案信息资料添加,修改,删除 7.真实姓名: 曾...
  • 基于Java语言的学生信息管理系统是:图形界面、流与文件等技术的综合应用。 图形界面的实现:考虑到简单、实用还要尽量美观等特点,就选择了大量的Swing和部分AWT来完成实现,在选择组件上,文本编辑区就选用了...
  • 本篇文章主要利用简单的awt、swing等组件进行布局管理,由于时间原因并未对其进行丰富的设计,但对于学习如何布局,如何用Java的组件进行界面化操作响应有一定的学习价值! 存入效果: 输出效果: 删除: ...
  • 专为学校管理而设计的免费学生信息系统。 包括的模块:-学校设置-学生(人口统计学,联系人...)-成绩-时间表-资格-出勤-会计-学生账单-学科-食品服务附加组件,例如消息传递,电子邮件,导入工具,测验,图书馆模块...
  • JAVA《网络编程》——项目1 GUI程序设计一、...编写程序,实现对学生信息的基本管理:录入、查询、显示、删除、修改等操作,利用ArrayList进行信息存储,利用表格显示信息。程序效果参考如1-2所示。 获取源代码请点
  • 学生信息成绩管理系统采用Python + qt5 来实现 由于项目文件比较多所以我分了好几个包来完成这个项目如下: 然后就是一些要安装的组件 其实就是数据库组件pymysql,和qt5相关的组件。其项目就是基于对数据库的...
  • 学生公寓管理系统是典型的小型信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能...
  • Java 学生管理系统

    千次阅读 2016-10-21 10:51:01
    简易信息管理系统适合新手学Java图形界面开发。 1、登录界面可以进行登录操作。有俩种权限选择。分别跳转到不同的界面。 2、使用了事件监听、Java操作SQLserver数据库等知识。 3、图形化界面中使用了JTable...
  • 学生档案管理系统asp+sql

    热门讨论 2010-01-26 16:27:07
    《数动学生档案管理系统》 1.引言 自学电脑已经三年了,总希望能派上用处,前段时间看见学校用Excel管理学生档案于是想在网上下载一个档案管理软件,却发现是付费软件,后来咨询档案管理的老师才知道免费的软件功能...
  • 图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易...
  • 学生信息管理源码

    2015-12-25 22:41:08
    后来网上大多数人经验总结出来,从而增加了这么一个层次,主要是为了降低耦合,面向接口、组件编程,具体的服务类,能产生实际效果和影响的类放于此。】 impl:实现层,定义的接口,implement的缩写。 view:...
  • 正方教务管理系统建设方案

    热门讨论 2012-05-12 23:17:48
    2.2 教务管理信息系统框架 8 2.3 设计原则 9 2.4 技术路线 10 2.4.1 SOA技术体系 10 2.4.2 开发语言 11 2.4.3 面向对象的组件技术 11 2.4.4 基于后台数据库的多层架构 11 2.4.5 服务管理平台 11 2.4.6 负载均衡、...
  • 总之,本系统拥有传统网络硬盘 CMS 校本资源中心等功能,非常贴近学校应用,是目前最适合的文件管理系统,是有效解决校园网文件管理问题的完美解决方案,该方案将继教育网平台、校园网平台之后,深入发展教育信息化...
  • 总之,本系统拥有传统网络硬盘+CMS+校本资源中心等功能,非常贴近学校应用,是目前最适合的文件管理系统,是有效解决校园网文件管理问题的完美解决方案,该方案将继教育网平台、校园网平台之后,深入发展教育信息化...
  • 悠索科技高校教务管理系统采用先进的.Net2.0技术开发,数据库基于通用的数据库访问组件 可以和Access2003/SQL2000/2005/2008无缝结合,采用AJAX技术无刷新更新系统。 系统的性能和安全性得到了极大的保证。 本系统...
  • 题 目: 图书管理系统 成 绩: 指导教师: 王素红 2010 年 11 月 22 日 1.设计目的 1.对图书资源进行分类,发布到网上,以供读者阅读。 2.为读者提供图书检索功能; 3.读者能方便地阅览电子图书; ...
  • 基于ssm的教务管理系统,绝对可用! 想学习ssm的同学不要错过 1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性...
  • 任务背景:图书管理系统是当前社会每个人不可缺少的信息系统,利用C语言和Dve c++制作图书管理系统,从根本上改变图书信息多、繁琐、易丢失,从而提高信息管理和存储效率。在对系统进行分析和设计的基础上,创建各种...
  • java学籍管理系统(access)

    热门讨论 2008-11-06 00:46:54
    1目的 (1)熟悉运用AWT\SWING组件进行图形界面设计的方法; (2)运用JDBC技术进行JAVA的数据库...3) 把 Java同Access数据库连接起来实现学生基本信息和课程基本信息、分数信息操作。 4) 编译调试直至输出满意的结果。
  • 悠索科技高校教务管理系统采用先进的.Net2.0技术开发,数据库基于通用的数据库访问组件 可以和Access2003/SQL2000/2005/2008无缝结合,采用AJAX技术无刷新更新系统。 系统的性能和安全性得到了极大的保证。 本系统...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 247
精华内容 98
关键字:

学生信息管理系统组件图