• 基于JavaSSM的学生成绩管理APP系统设计与实现


    目录
    1、项目概述 3
    1.1 项目的目的和意义 3
    1.2 现状分析 3
    2、主要业务流程分析 3
    3、需求分析 3
    4、系统功能设计 3
    5、系统UI设计 3
    6、系统数据库设计 3
    7、系统体系结构设计 4
    8、统一接口设计 4
    9、其它需要说明的设计要点 4
    10、详细设计与成果 4
    11、项目体会 4
    2、主要业务流程分析
    成绩管理系统可以输入课程和成绩数据,并可以完成添加、修改、删除等查询,并根据各种条件基本满足师生的需要。成绩管理系统主要包括学生的基本信息、年龄、电话等方面的信息,内容比较简单。成绩管理系统主要用于学生成绩信息的输入,具有课程注册、成绩查询、学生信息注册等功能。一般来说,它具有编辑、查询、学生成绩管理等功能。
    学生端登陆该系统后,进入个人信息页面可以查看自己的个人信息,进入课程管理页面可以对已选课程的课程成绩查询,显示其学号、科目名称和成绩,进入课程论坛页面可以进入现有话题查看和跟帖,也可以创建新的讨论话题。
    教师端登录系统后可以进入个人信息页面可以查看自己的个人信息,还可以先选择已开放课程,之后进行成绩录入、成绩修改、成绩查询、成绩分析、删除课程的操作,也可以增加新开放的课程。成绩录入先选择需要录入的人数,再添加其学号与成绩。成绩修改先输入需要修改的成绩的学生学号进行查询,然后输入其姓名,科目,任课教师,成绩,然后提交修改。成绩查询可查询已选此门课程的学生的学号、姓名和成绩。成绩分析可以选择分数比例分析图查看饼状统计图,或者选择分段人数分析图查看条状统计图。删除课程就会删除此门开放课程。本文转载自http://www.biyezuopin.vip/onews.asp?id=15280
    3、需求分析
    功能需求:
    (1)成绩管理系统可以提供一个完善的登陆界面,使学生或教师都可以通过此窗口登陆。
    (2)成绩管理系统可以提供完善的学生信息和课程信息管理界面,学生或管理员可以查看和管理学生信息与课程信息。
    (3)成绩管理系统可以提供完善的课程信息管理界面,教师或管理员可以查看和管理课程信息,进行成绩录入、成绩修改、成绩查询、成绩分析。
    (4)成绩管理系统有一个后端管理页面,可以作为管理员登陆查看与修改学生信息,教师信息,课程信息和论坛信息。

    非功能需求:
    (1)登陆时采用的用户名 和密码都采用MD5算法保护,再存入数据库存储。
    (2)该系统能够在android4.0.13以上版本的安卓系统上正常运行。

    package org.shop.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.shop.pojo.Student;
    import org.shop.pojo.Teacher;
    import org.shop.service.StudentService;
    import org.shop.service.TeacherService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import net.sf.json.JSONObject;
    import tool.Md5;
    
    @Controller
    public class LoginController {
    
    	@Autowired
    	private StudentService ss;
    	@Autowired
    	private TeacherService ts;
    	
    	
    	//Android
    	@RequestMapping(value="login")
    	public void doLogin(HttpServletRequest request,HttpServletResponse response) 
       {    
    		response.setContentType("text/html;charset=utf-8");		
            try {
    			request.setCharacterEncoding("utf-8");
    		} catch (UnsupportedEncodingException e2) {
    			// TODO Auto-generated catch block
    			e2.printStackTrace();
    		}
            response.setCharacterEncoding("utf-8");
    		String id = request.getParameter("id");
    		String password = request.getParameter("password");
    		//System.out.println(id+"   "+password);
    		long num = Long.parseLong(id);
    		long stuMin = 1000000000L;
    	    long stuMax = 9999999999L;
    		//老师的登录
    		if(num>=10000000&&num<=99999999)
    		{
    			//System.out.println("进入老师");	
    			List teachers = new ArrayList<>();
    			try{
    			teachers =  ts.queryById(id);
    			}catch(Exception e)
    			{
    				e.printStackTrace();
    			}
    			
    			
    			boolean flag = false;
    			if(teachers.isEmpty())
    			{
    				flag =false;
    			//	System.out.println("没有查到数据");
    			}	
    			else{
    				Teacher teacher = teachers.get(0);
    			//	System.out.println(teacher.toString());
    				if(teacher.getPassword().equals(password))
    				{
    					flag = true;
    				}
    				
    			}
    			JSONObject object = new JSONObject();
    			if(flag)
    			{
    				object.put("status",true);
    				object.put("msg","login success");
    				
    			}else{
    				object.put("status",false);
    				object.put("msg","login fail!");
    			}
    			try{
    				PrintWriter write = response.getWriter();
    				write.print(object);
    			}catch(IOException e){
    				e.printStackTrace();
    			}
    			
    		    return ;
    		}
    		//学生的登录
    		else if(num>=stuMin&&num=10000000&&num<=99999999)
    			{
    				System.out.println("进入老师");	
    	             List teachers = ts.queryById(id);
    	        	 JSONObject object = new JSONObject();
    	             if(teachers.isEmpty())
    	             {
    	            
    	            	 object.put("status", false);
    	            	 object.put("msg", "No such teacher of this id!");
    	             }
    	             else if(teachers.size()>=2){
    	            	 object.put("status", false);
    	            	 object.put("msg", "Too many teachers of the same id!");
    	             }
    	             else{
    	            	 Teacher teacher = teachers.get(0);
    	            	 System.out.println("pw"+password);
    	            	 ts.modifyTeacher(id, password, teacher.getName(), teacher.getPhonenum());
    		            	 object.put("status", true);
    		            	 object.put("msg", "The teacher's password is modified successfully!");
    	             }
    	             
    	             PrintWriter writer;
    				try {
    					writer = response.getWriter();
    					  writer.print(object);
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    	           
    			    return ;
    			}
    			//学生的登录
    			else if(num>=stuMin&&num
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305

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

  • 相关阅读:
    1、计算机组成与体系结构
    JavaWeb之Servlet、拦截器、监听器及编程思想
    read 方法为什么返回 int 类型
    OPTEE Gprof(GNU profile)
    Vue3鼠标拖拽生成区域块并选中元素
    React Native 入门(三)——js与native互相通信
    前端实用参考链接结合
    四大直辖市1米分辨率土地覆盖数据,精度超高
    1区TOP正刊,SCI&EI双检,IF逐年上涨,正在邀稿中~
    基于Matlab实现logistic方法(源码+数据)
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/126721030