基于Android的大学生自我管理系统(Androidstudio+mysql数据库+服务端后台)A1142

 博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

一、项目介绍

一、个人基本资料
包括姓名、年龄、性别、身份证、学历证、手机号码+
二、学习管理
1学知识管理
(1):可以记录和查询课程表
(2):作业完成情况问题记录加一个拍照上传错题本
3提醒考
2.学时间管理
(1):到点提醒该学习什么课程,夏习知识点试复习时间及合理规划时间
(2):提醒作业时间
注:都是可以添加·查看,修改及提醒
三、其他
1 理财:记录画一笔收与支出,统计每月的收入白支出:
2.记事本

二、运行环境

1:客户端使用Android stuido进行开发;
2:服务端后台使用Myeclipse2014进行开发;
3:mysql数据库进行数据存储;
4:需要jdk1.7以上
5:使用雷电模拟器或者Androidstuio自带的模拟器进行运行

三、使用技术

总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示

移动端:
1:使用android原生控件以及xml布局文件来完成界面的显示
2:使用java代码完成功能的数据和逻辑交互
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示

服务端后台:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调

四、软件截图

  

五、部分代码

1:添加学习知识


public class CreatStudyActivity extends BaseActivity implements ImageItemClickListner {
    // 标题
    private TextView mTvTitle;
    // 返回
    private ImageView mIvBack;


    GridLayout grid_instructor;
    HorizontalScrollView horizontalscrollview;
    private ArrayList<SelectImageItem> imageItems = new ArrayList<SelectImageItem>();
    private SelectedImageAdapter selectedImageAdapter;
    private Button mSubmit;
    private File imgPath;
    public LoadingDialog mdialog;
    private List<String> mListImage = new ArrayList<String>();
    private int imgPosFlag = 0;
    private String picPath = null;
    private EditText post_title;
    private EditText post_content;
    // 图片上传表示位
    private int imageFlagNumber = 0;

    private TextView interestHobby;
    private EditText interestMessage;
    private EditText courseName;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_creat_ins);
        initWidget();
        initData();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.mIvBack:
                finish();
                break;

            case R.id.mSubmit:
                if (TextUtils.isEmpty(interestMessage.getText().toString())) {
                    ToastUtil.ShowCentre(this, "请输入内容");
                    return;
                }


                Log.e("pony_log", imageFlagNumber + "");

                imageFlagNumber = 0;
                UploadFileTask uploadFileTask = new UploadFileTask(this);
                uploadFileTask.execute(mListImage.get(imageFlagNumber));


                break;

        }
    }

    @Override
    public void initWidget() {

        
        courseName = (EditText) findViewById(R.id.courseName);
        interestHobby = (TextView) findViewById(R.id.interestHobby);
        interestMessage = (EditText) findViewById(R.id.interestMessage);
        mdialog = new LoadingDialog(this, "上传图片...");
        mSubmit = (Button) findViewById(R.id.mSubmit);
        grid_instructor = (GridLayout) findViewById(R.id.grid_instructor);
        horizontalscrollview = (HorizontalScrollView) findViewById(R.id.horizontalscrollview);
        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("添加知识学习信息");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
        mSubmit.setOnClickListener(this);

    }
    @Override
    public void initData() {
        ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(this));
        initSelectedGridView();
    }

    private void initSelectedGridView() {
        selectedImageAdapter = new SelectedImageAdapter(this, imageItems);
        SelectImageItem addItem = new SelectImageItem();
        addItem.setSid(100);// 添加的图标
        imageItems.add(addItem);
        selectedImageAdapter.notifyDataSetChanged();
        grid_instructor.setGridAdapter(selectedImageAdapter, CreatStudyActivity.this);

    }

    @Override
    public void imageItemClick(int position, SelectImageItem imageItem) {
        if (imageItem != null) {
            int sid = imageItem.getSid();
            if (sid == 100) {

                if (CreatStudyActivity.this.getIntent().getIntExtra("photo_message", 0) == 1) {
                    goCameraActivity();
                } else {
                    // 添加图片
                    Intent intentImages = new Intent(CreatStudyActivity.this, SelectImagesActivity.class);
                    intentImages.putExtra("image_count", imageItems.size());
                    intentImages.putExtra("max_count", "1");
                    startActivityForResult(intentImages, 1);
                }
            } else {
                Intent intentPicture = new Intent(CreatStudyActivity.this, ShowCreatePicturesActivity.class);
                intentPicture.putExtra("position", position);
                intentPicture.putExtra("piction_path", imageItems);
                startActivityForResult(intentPicture, 3);
            }
        }
    }

    private void addNewItemWithPre(String cameraPath) {

        int count = selectedImageAdapter.getCount();
        if (count > 0) {
            int selectCount = count - 1;
            SelectImageItem item = new SelectImageItem();
            item.setUrl(cameraPath);
            imageItems.add(selectCount, item);
        }
    }

    private void scrollgridView() {
        final int count = selectedImageAdapter.getCount();
        if (count > 1) {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    horizontalscrollview.smoothScrollTo(2000, 0);
                }
            }, 500);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 5) {
            Log.d("camera", "" + (data == null));
            if (mCameraFile == null || !mCameraFile.exists()) {
                return;
            }
            imgPath = mCameraFile;
            mListImage.add(mCameraFile.getAbsolutePath());
            addNewItemWithPre(mCameraFile.getAbsolutePath());
        }

        if (requestCode == 1) {
            if (data != null) {

                if (0 == data.getIntExtra("action", -1)) {
                    String cameraPath = data.getStringExtra("camera_path");
                    addNewItemWithPre(cameraPath);

                } else if (1 == data.getIntExtra("action", -1)) {
                    ArrayList<CharSequence> charSequences = data.getCharSequenceArrayListExtra("images");
                    for (CharSequence ss : charSequences) {
                        Log.e("pony_log", "image:" + ss.toString());
                        picPath = ss.toString();
                        mListImage.add(ss.toString());
                        addNewItemWithPre(ss.toString());
                    }
                }
                selectedImageAdapter.notifyDataSetChanged();
                scrollgridView();
            }
        }

        if (requestCode == 3) {
            if (data != null) {
                @SuppressWarnings("unchecked")
                ArrayList<SelectImageItem> imgUrls = (ArrayList<SelectImageItem>) data.getSerializableExtra("data");
                if (imgUrls != null && imgUrls.size() > 0) {
                    imageItems.clear();
                    imageItems.addAll(imgUrls);
                    selectedImageAdapter.notifyDataSetChanged();
                    scrollgridView();
                }
            }
        }
        grid_instructor.setGridAdapter(selectedImageAdapter, CreatStudyActivity.this);
    }

    private Uri mOutPutFileUri;
    private File mCameraFile;

    // 去拍照
    private void goCameraActivity() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        // dailyyoga_camera文件夹
        File parentFile = new File(Environment.getExternalStorageDirectory().toString() + "/dailyyoga_camera");
        if (!parentFile.exists()) {
            parentFile.mkdirs();
        }
        mCameraFile = new File(parentFile + "/" + System.currentTimeMillis() + ".jpg");
        mOutPutFileUri = Uri.fromFile(mCameraFile);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutPutFileUri);
        startActivityForResult(intent, 5);
    }


    private void createTopicPost(boolean isShow) {
        
        //对图片路径的处理
        String imagePath = "";
        for (int i = 0; i < mListImage.size(); i++) {
            String[] arrPath = mListImage.get(i).split("\\/");
            imagePath = arrPath[arrPath.length - 1] +","+imagePath;
        }
        

        AjaxParams params = new AjaxParams();
        params.put("action_flag", "addHome");
        params.put("homeCourse", TextUtils.isEmpty(courseName.getText().toString()) ? "" : courseName.getText().toString());
        params.put("homeMessage", TextUtils.isEmpty(interestMessage.getText().toString()) ? "" : interestMessage.getText().toString());
        params.put("homeUserId", MemberUserUtils.getUid(this));
        params.put("homeUserName", MemberUserUtils.getName(this));
        params.put("homeImg", imagePath.substring(0, imagePath.length()-1));
        
        params.put("homeType","2");
        httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultCode, isShow, "正在上传...");

    }

    @Override
    protected void callBackSuccess(ResponseEntry entry, int actionId) {
        super.callBackSuccess(entry, actionId);

        switch (actionId) {
            case Consts.actionId.resultCode:
                ToastUtil.show(CreatStudyActivity.this, entry.getRepMsg());
                new Handler().postDelayed(new Runnable() {
                    //
                    @Override
                    public void run() {
                        finish();
                    }
                }, 2000);
                break;
        }


    }

    @Override
    protected void callBackAllFailure(String strMsg, int actionId) {
        super.callBackAllFailure(strMsg, actionId);
        mdialog.dismiss();
        ToastUtil.show(CreatStudyActivity.this, strMsg);

    }

    public class UploadFileTask extends AsyncTask<String, Void, String> {

        /**
         * 可变长的输入参数,与AsyncTask.exucute()对应
         */
        private Activity context = null;

        public UploadFileTask(Activity ctx) {
            this.context = ctx;

        }

        @Override
        protected void onPostExecute(String result) {
            imageFlagNumber++;
            if (UploadUtils.SUCCESS.equalsIgnoreCase(result)) {
                if (imageFlagNumber < mListImage.size()) {
                    UploadFileTask uploadFileTask = new UploadFileTask(CreatStudyActivity.this);
                    uploadFileTask.execute(mListImage.get(imageFlagNumber));
                } else if (imageFlagNumber == mListImage.size()) {

                    createTopicPost(true);
                    // 返回HTML页面的内容

                }
            } else {
                ToastUtil.show(CreatStudyActivity.this, " 图片上传失败");
            }
        }

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected void onCancelled() {
            super.onCancelled();
        }

        @Override
        protected String doInBackground(String... params) {
            File file = new File(params[0]);
            return UploadUtils.uploadFile(file, Consts.URL + Consts.APP.MessageAction+"?action_flag=addHome");
        }

        @Override
        protected void onProgressUpdate(Void... values) {
        }

    }
}
 

2:登录界面

public class LoginActivity extends BaseActivity {
    private static boolean isServerSideLogin = false;
    // title
    private TextView mTvTitle;
    // µÇ¼Óû§Ãû³Æ
    private EditText mLoginNumber;
    // µÇ¼ÃÜÂë
    private EditText mLoginPswd;
    // µÇ¼°´Å¥
    private Button mLogin;
    private Button mEnterpriseQuery;
    private LinearLayout mllTop;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initWidget();
    }

    /**
     * ¿Ø¼þ³õʼ»¯
     */
    @Override
    public void initWidget() {
        
        mdialog = new LoadingDialog(this, "ÕýÔڵǼ");
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("µÇ¼");
        mLoginNumber = (EditText) findViewById(R.id.mLoginNumber);
        mLoginPswd = (EditText) findViewById(R.id.mLoginPswd);
        mLogin = (Button) findViewById(R.id.mLogin);
        mEnterpriseQuery = (Button) findViewById(R.id.mEnterpriseQuery);
        // mLoginNumber.setInputType(EditorInfo.TYPE_CLASS_PHONE);
        // ʼþµÄ¼àÌý
        mLogin.setOnClickListener(this);
        mEnterpriseQuery.setOnClickListener(this);
        // ¸øÊäÈë¿òÉèÖÃĬÈϵIJâÊÔÊý¾Ý
        mLoginNumber.setSelection(mLoginNumber.getText().length());
        // mLoginNumber.setText("TEA20170123164556");
        mLoginNumber.setText("15249243002");
        mLoginPswd.setText("123456");
    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {
        case R.id.mLogin:
            if (TextUtils.isEmpty(mLoginNumber.getText().toString())) {
                ToastUtil.ShowCentre(LoginActivity.this, "ÇëÊäÈëÊÖ»úºÅÂë");
                return;
            }
            if (TextUtils.isEmpty(mLoginPswd.getText().toString())) {
                ToastUtil.ShowCentre(LoginActivity.this, "ÇëÊäÈëµÇ¼ÃÜÂë");
                return;
            }

//             Intent intent = new Intent(LoginActivity.this,             FrameworkActivity.class);
//             startActivity(intent);
//             finish();
            //
            LoginUserPost(true);
            //
            break;
        case R.id.mEnterpriseQuery:
            Intent mEnterpriseQuery = new Intent(LoginActivity.this, RegisterCreatActivity.class);
            startActivity(mEnterpriseQuery);
        default:
            break;
        }
    }

    @Override
    public void initData() {
    }

    /**
     * Óû§µÄµÇ¼
     * 
     * @param isShow
     */
    private void LoginUserPost(boolean isShow) {
        AjaxParams params = new AjaxParams();
        params.put("action_flag", "login");
        params.put("userPhone", mLoginNumber.getText().toString());
        params.put("userPswd", mLoginPswd.getText().toString());
        httpPost(Consts.URL + Consts.APP.RegisterAction, params, Consts.actionId.resultFlag, isShow, "ÕýÔڵǼ...");
    }

    @Override
    protected void callBackSuccess(ResponseEntry entry, int actionId) {
        super.callBackSuccess(entry, actionId);

        switch (actionId) {
        case Consts.actionId.resultFlag:

            if (null != entry.getData() && !TextUtils.isEmpty(entry.getData())) {
                UserModel userModel = mGson.fromJson(entry.getData(), UserModel.class);
                MemberUserUtils.setUid(LoginActivity.this, userModel.getUserId());
                MemberUserUtils.setName(LoginActivity.this, userModel.getUserName());
                MemberUserUtils.putBean(LoginActivity.this, "user_messgae", userModel);
                Intent intent = new Intent(LoginActivity.this, FrameworkActivity.class);
                startActivity(intent);
                finish();

            }
            break;

        }

    }

    @Override
    protected void callBackAllFailure(String strMsg, int actionId) {
        super.callBackAllFailure(strMsg, actionId);

        ToastUtil.show(LoginActivity.this, strMsg);

    }
    
    

    
}
 

六、浏览更多Android毕业设计

毕业设计-基于android的租房信息发布平台的APP_信息发布app源码_Android毕业设计源码的博客-CSDN博客

毕业设计-基于android选课系统的设计与实现_android学生选课系统_Android毕业设计源码的博客-CSDN博客

毕业设计之校园一卡通管理系统的设计与实现_一卡通管理系统实现_Android毕业设计源码的博客-CSDN博客

基于Android的校园二手闲置物品交易系统设计与实现_基于android的二手交易平台_Android毕业设计源码的博客-CSDN博客

基于androidstudio校园快递APP系统的设计与实现_android studio论文_Android毕业设计源码的博客-CSDN博客

基于android的商城购物定制APP_安卓开发购物app_Android毕业设计源码的博客-CSDN博客

更多毕业设计可以浏览我的个人主页哦!

七、源码下载

https://download.csdn.net/download/u014388322/88175062

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Studio是一款用于Android应用开发的集成开发环境(IDE)。在使用Android Studio进行毕业设计App开发时,可以结合Java语言编写代码,使用XML语言设计布局文件。常见的功能模块包括登录、注册、首页、商品列表、促销商品、购物车和个人中心等。可以使用ViewPager和Fragment实现不同页面之间的切换。通过设置TabLayout来管理底部导航栏,每个Tab对应一个页面。在设计过程中,可以根据需要自定义各个页面的布局文件和相应的功能实现。最终的页面效果可以提供登录界面、主界面和各个功能模块的展示。一个例子是基于Android的学生信息管理App。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android Studio已经配置好的项目Zygisk-Il2CppDumper 相关依赖自动更新完之后,直接运行就可以生成](https://download.csdn.net/download/hexinbo/88227729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [安卓(android)毕业设计各种app项目](https://blog.csdn.net/qq_21399461/article/details/122113292)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于Android的学生信息管理App设计(Android studio开发)](https://blog.csdn.net/newlw/article/details/128172028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android毕业设计源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值