精华内容
下载资源
问答
  • 2021-02-12 15:11:52

    java学生管理系统总结报告

    成都东软信息技术职业学院

    期末项目报告

    项目名称:学生管理系统系 别:计算机科学与技术系年级专业:xx级软件技术班 级:x学 号:xx学生姓名:xx

    xx年 xx 月 xx 日项目内容及知识应用

    1.1项目完成内容

    首先实现登录模块,分为教室登录和学生登录

    登录界面有一个下拉条分别为学生和教师,选中哪一个就会登录到相应的界面

    学生管理系统分为两大块:学生和教师两个模块

    学生登录后进入学生界面,学生界面有菜单项和按钮

    学生界面里面有查询自己的成绩,查询自己的详细信息,还可以修改密码,修改自己的信息,菜单项还有帮助等按钮

    教师界面里面可以增加学生,显示所有学生的成绩,查找学生,查询学生的详细信息,删除学生的成绩和删除学生,还有刷新和退出等功能

    教室界面当点击选中学生时在上面的标签面板会显示学生的详细信息,当查询学生的详细信息时会之间进入该学生的学生面板,教师就可以对学生的信息进行修改

    刚登录教师界面时系统启用了另外一个线程,会默认加载所有的学生成绩和信息,当教师点击“显示所有成绩”时就会马上把学生成绩的面板显示在界面上,所有教师就无需等待系统加载

    教师界面当老师点击刷新时,会再启动一个线程来重新把学生的信息加载到内存然后显示到界面上

    教师界面的成绩表中还有总分和平均分,系统加载的时候会自动计算每一个学生的总分和平均分

    教师还可以直接在成绩表中修改学生的成绩,用以来会很方便,修改成绩后要点击刷新按钮来刷新总分和平均分

    教室界面还增加了班级的分类,可以查看所有的班级,也可以查看一个班级的学生信息

    学生管理系统还增加了上传照片的功能,每个学生都可以上传自己的照片,老师也可以帮学生上传照片

    1.2知识(点)应用以及经验总结

    该学生管理系统采用了分层的思想而且参考了MVC设计模式,但是都做得不够完美。

    该系统分为业务逻辑层、实体层和显示层:

    业务逻辑层(com.ccniit.student.manage)有StudentManage、GradeManage、PasswordNotFountException、StduentNotFountException和GradeNotFountException。先写了一个工具类(DBConnection),负责与数据库的连接,业务逻辑层联系数据库实体、显示层。进行综合的控制与处理。这里自定义了几个异常类,主要是抛出无法找到相应类的异常。这样就可以返回多个结果。

    实体层(com.ccniit.student)有两个类Student和Grade,是根据数据库里面的表来实现的,字段就是实体里面的属性还有所有属性的get和set方法,也可以写几个构造方法,没有其他的方法。业务逻辑层就操作这两个类。

    显示层(com.ccniit.student.view)有Login、StduentGrade、Teacher、ImagePanel、ShowImage、Uploading这六个类。主要是负责显示给客户,用于和客户交互信息。所有学生成绩用一个表来显示,Teacher类有另外一个线程来读取所有学生的成绩,在表中教师可以直接在表中修改学生的成绩,修改过后系统会自动修改数据库的数据,来实现动态修改。

    显示层主要是添加的内部匿名监听,由于会有重复监听所以大部分监听都分别写了一个方法,来调用这个方法。

    每个学生都可以上传自己的照片,在有照片的情况下,老师可以看到学生的照片这样可以让老师更快的认识每一个学生,点击学生的照片可以放大该学生的照片,点击别的地方该放大的照片就会消失

    该系统主要用到的知识有:

    流程控制

    类和对象

    类的继承

    接口和多态

    数组

    顺序表

    数据库编程

    常用的GUI组件

    JTable

    多线程

    事件处理

    项目实现及关键代码

    (各个功能界面截图+代码说明,代码为关键代码并加入注释)

    系统流程图

    类包层功能DBConnectioncom.ccniit.student.util逻辑连接数据库Studentcom.ccniit.student模型保存学生对象Gradecom.ccniit.student模型保存成绩对象StduentManagecom.ccniit.student.manage逻辑操作学生对象GradeManagecom.ccniit.student.manage逻辑操作成绩对象StudentNotFoundExceptioncom.ccniit.student.manage逻辑当学生找不到时抛出此异常GradeNotFoundExceptioncom.ccniit.student.manage逻辑当成绩找不到时抛出此异常PasswordNotFoundExce

    更多相关内容
  • 数据库课程设计 学生管理系统 总结报告.docx数据库课程设计 学生管理系统 总结报告.docx数据库课程设计 学生管理系统 总结报告.docx数据库课程设计 学生管理系统 总结报告.docx数据库课程设计 学生管理系统 总结报告...
  • 数据库课程设计 学生管理系统 总结报告.pdf数据库课程设计 学生管理系统 总结报告.pdf数据库课程设计 学生管理系统 总结报告.pdf数据库课程设计 学生管理系统 总结报告.pdf数据库课程设计 学生管理系统 总结报告.pdf...
  • 学生成绩管理 ? 实现功能输入输出插入删除查找追加读入显示保存拷贝排序索引分类合计退出 能实现对学生信息的简单管理 具体要求 建立一个4个学生的信息登记表每个学生的信息包括学号姓名和3门课程的成绩FOX,C,...
  • 学生管理系统总结(c语言)

    千次阅读 2021-05-18 15:59:15
    本周完成了学生管理系统,在完成的过程中遇见了许多问题,今天来总结上周写管理系统一些比较困难的模块。 登陆界面 在写学生管理系统时,我首先写的是登陆界面,学生管理系统有三个身份的id,分别是管理员,老师,与...

    前言

    本周完成了学生管理系统,在完成的过程中遇见了许多问题,今天来总结上周写管理系统一些比较困难的模块。

    登陆界面

    在写学生管理系统时,我首先写的是登陆界面,学生管理系统有三个身份的id,分别是管理员,老师,与学生。我的想法是输入账号,系统可以自动识别账户的身份,所以我的结构体设计如下:

    struct personid {       // 账户数据结构
        char id[20];
        char cypher1[20];
        char quanxian[20];
        char classnum[20];
        struct personid *next;
    };
    

    用字符串存储账号,密码,权限,以及学号或者班级。
    在登陆前首先应该用链表提取文件中的账号。代码如下:

    struct personid *Create(char name[]) {  //从文件中读取账户;
        FILE *fp = fopen(name, "r");
        if (fp == NULL) {
                printf("不存在文件%s\n", name);
                exit(1);
        }
        struct personid *head = (struct personid*)malloc(sizeof(struct personid));
        head->next = NULL;
        while (!(feof(fp))) {
            struct personid *p = (struct personid*)malloc(sizeof(struct personid));
            fscanf(fp, "%s %s %s %s\n", p->id, p->cypher1, p->quanxian, p->classnum);
            p->next = head->next;
            head->next = p;
        }
        fclose(fp);
        return  head;
    }
    

    下面是登陆界面的代码:

    void menu() {     //初始界面
        printf("--------[欢迎进入学生管理系统]--------\n");
        printf("1.登录账户\n");
        printf("2.注册账户\n");
        printf("3.修改密码\n");
        printf("4.找回密码\n");
        printf("0.退出系统\n");
        printf("----------------------------------\n");
        setbuf(stdin, NULL);
        keydown();
    }
    void keydown() {
        char choice[50];
        scanf("%s", choice);
        setbuf(stdin, NULL);
        if (choice[1] == '\0') {
            switch (choice[0]) {
                case '0':
                    exit(0);
                    break;
                case '1':
                    denglu();
                    break;
                case '2':
                    zhuce();
                    break;
                case '3':
                    xiugai();
                    break;
                case '4':
                    zhaohui();
                    break;
                default:
                    printf("无效输入\n");
                    menu();
                    break;
            }
        } else {
            printf("无效输入\n");
            menu();
        }
        
    }
    

    在写系统时一定要注意程序的稳定性,我的程序是通过不断输入来进行操作的,一开始我在写代码时,利用的是getchar函数来进行输入,造成了输入多个字符之后程序就会崩掉的问题,在后来修改时,将所有的getchar函数换成的scanf来输入,这样可以保证程序的稳定性,在进行判断时只需判断输入的是否是一个字符且有这个操作即可。
    在macOS系统下可以利用setbuf(stdin, NULL) 来清除缓冲区。

    注册操作

    如果新用户进入程序,那么首先进行的操作就是注册操作,我在最开始写注册操作时,是让 用户自己输入自己的身份 ,这样的写法是很失败的,如果学生进行操作,也可以注册管理员,是很不严谨的!
    后来在修改时,利用了不同的邀请码注册不同的身份,用户无需输入身份,学生只需输入自己的学号,老师则需要选择自己对应的班级。
    代码如下:

    void zhuce() {
        printf("请输入邀请码:\n");
        int yaoqingma1 = 111;
        int yaoqingma2 = 222;
        int yaoqingma3 = 333;
        int x;
        scanf("%d", &x);
        if (x != yaoqingma1 && x != yaoqingma2 && x != yaoqingma3) {
            printf("无效邀请码,请联系导员:\n");
            setbuf(stdin, NULL);
            menu();
        }
        if (x == 111 || x ==222 || x == 333) {
            printf("please input the id with number:");
            char id[20];
            char id1[20];
            char id2[20];
            char id3[20] = "\n";
            char id4[20] = "0";
            char id6[20];
            scanf("%s", id);
            printf("please input the password:");
            scanf("%s", id1); next1:
            if (x == 111) {
                strcpy(id2, qx1);
                printf("请输入学号\n");
                scanf("%s", id4);
                struct personid *p = Create(zhroad);
                while (p) {
                    if (!strcmp(id4, p->classnum)) {
                        printf("该学号已被注册,按0返回上一层,任意键重新输入\n");
                        setbuf(stdin, NULL);
                        char a;
                        a = getchar();
                        if (a == '0') {
                            menu();
                        }
                        setbuf(stdin, NULL);
                        goto next1;
                    }
                    p = p->next;
                }
            } else if (x == 222) {
                printf("请选择您的班级\n");
                printf("1.网络1班\n");
                printf("2.网络2班\n");
                printf("3.网络3班\n");
                printf("4.网络4班\n");
                printf("5.网络5班\n");
                scanf("%s", id6);
                if (id6[1] == '\0') {
                    if (id6[0] == '1' || id6[0] == '2' || id6[0] == '3' || id6[0] == '4' || id6[0] == '5') {
                        setbuf(stdin, NULL);
                        strcpy(id4, id6);
                    } else {
                        setbuf(stdin, NULL);
                        printf("该班级不存在.\n");
                        menu();
                    }
                } else {
                    printf("该班级不存在\n");
                    setbuf(stdin, NULL);
                    menu();
                }
                strcpy(id2, qx2);
            } else if (x == 333) {
                strcpy(id2, qx3);
            }
            AppendDataToFile(zhroad, id);
            AppendDataToFile(zhroad, kong);
            AppendDataToFile(zhroad, id1);
            AppendDataToFile(zhroad, kong);
            AppendDataToFile(zhroad, id2);
            AppendDataToFile(zhroad, kong);
            AppendDataToFile(zhroad, id4);
            AppendDataToFile(zhroad, id3);
            printf("注册成功请重新登陆!\n");
            setbuf(stdin, NULL);
            menu();
        }
    }
    

    在进行学生注册时,应该对学生输入的学号进行一个判断,判断该学号是否被注册,若被注册应该重新输入。
    在进行老师注册时,应该让老师选择已有的班级,如果没有则重新输入。
    在注册成功后利用文件将已经注册的账号存储起来

    学生界面的一些操作

    学生主要可以进行下面几种操作:

    
    void studentmenu() {        //学生操作界面
        printf("-----[good afternoon student ]-----\n");
        printf("1.查询成绩\n");
        printf("2.查询本班成绩\n");
        printf("3.成绩分析\n");
        printf("4.成绩申诉\n");
        printf("5.返回上一层:\n");
        printf("0.退出系统\n");
        printf("----------------------------------\n");
        studentkeydown();
        }
    

    在最初写代码时,我是让学生输入自己的学号来进行成绩查询,如果是考输入学号来查询的话,那么也可以输入别人的成绩,查询别人班的成绩,如果这样写,那学生的操作就和老师甚至管理员无异。
    在最后修改代码时,我将学生的学号和账号绑定,在进行成绩查询等操作时,无需输入自己的学号,

    教师界面的一些操作

    教师界面的主要功能如下

    void teachermenu() {           //老师操作界面
        printf("-----[good afternoon teacher]-----\n");
        printf("1.增加新的学生信息\n");
        printf("2.删除学生信息\n");
        printf("3.修改学生信息\n");
        printf("4.查询学生信息\n");
        printf("5.输出本班成绩\n");
        printf("6.成绩分析\n");
        printf("7.提醒管理员更新成绩\n");
        printf("8.返回上一层:\n");
        printf("0.退出系统\n");
        printf("----------------------------------\n");
        setbuf(stdin, NULL);
        teacherkeydown();
    }
    

    在一开始写代码时,和上面的学生操作类似,我是让老师输入班级或者老师输入学号来进行相关操作的,这样书写的话老师就成为了一个万能老师,可以查询文件中所存储的所有学生信息,现实中不存在教整个学校的老师,并且这样与管理员的功能冲突。
    在后来修改代码时,我在老师注册时让老师选择了班级,我们将这个班级与老师的账号绑定,并且规定老师只能查询自己班学生的成绩,若输入其他班的成绩,则会进行相应的错误提醒。
    老师操作界面代码如下:

    void teacherkeydown() { //教师输入选择界面
        char *x;
        char *a;
        x = allclassnum;
        struct student *temp1 = NULL;
        char str2[200];
        char str1[100];
        setbuf(stdin, NULL);
        scanf("%s", str1);
        if (str1[1] == '\0') {
            switch (str1[0]) {
                case '0':
                    exit(0);
                    break;
                case '1':
                    a = classnum(x);
                    temp1 = mescreate(a);
                    temp1 = addnode(temp1);
                    writetoclassfile(temp1, a);
                    teachermenu();
                    break;
                case '2':
                    a = classnum(x);
                    temp1 = mescreate(a);
                    temp1 = delnode(temp1);
                    writetoclassfile(temp1, a);
                    teachermenu();
                    break;
                case '3':
                    a = classnum(x);
                    temp1 = mescreate(a);
                    temp1 = changenode(temp1);
                    writetoclassfile(temp1, a);
                    teachermenu();
                    break;
                case '4':
                    printf("please input student studyid:\n");
                    char studyid[20];
                    scanf("%s", studyid);
                    if (studyid[1] == allclassnum[0] && studyid[0] == '0' && strlen(studyid) < 6) {
                        printpersonnalsocre(studyid);
                        teachermenu();
                    } else {
                        printf("不是您的学生或者学号不存在\n");
                        teachermenu();
                    }
                    
                    break;
                case '5':
                    a = classnum(x);
                    temp1 = mescreate(a);
                    temp1 = sort4(temp1);
                    Printall(temp1);
                    setbuf(stdin, NULL);
                    teachermenu();
                    break;
                case '6':
                    a = classnum(x);
                    temp1 = mescreate(a);
                    chengjifenxi(temp1);
                    teachermenu();
                    break;
                case '7':
                    FILE *fp1;
                    fp1 = fopen(shensu, "w");
                    printf("please input the wrong\n");
                    scanf("%s", str2);
                    fprintf(fp1, "%s\n", str2);
                    printf("您的提醒已经发送!");
                    break;
                case '8':
                    menu();
                    break;
                default:
                    printf("输入有误请重新输入\n");
                    teachermenu();
                    break;
                }
        } else {
            printf("输入有误请重新输入\n");
            teachermenu();
        }
    }
    

    管理员的一些操作

    管理员的主要功能如下:

    void guanlidaiban() {
        printf("-----[good afternoon manager ]----\n");
        printf("1.密码注册\n");
        printf("2.密码修改\n");
        printf("3.密码找回\n");
        printf("4.成绩申诉\n");
        printf("5.更新成绩库\n");
        printf("0.退出系统\n");
        printf("----------------------------------\n");
        keydowmdaiban();
    }
    void guanlimenu() {
        printf("-----[good afternoon manager ]----\n");
        printf("1.代办选项\n");
        printf("2.增加账号和密码\n");
        printf("3.删除账号和密码\n");
        printf("4.修改账号和密码\n");
        printf("5.输出所有账号和密码\n");
        printf("6.录入所有的账号和密码\n");
        printf("7.进入教师用户端\n");
        printf("a.返回上一层\n");
        printf("0.退出系统\n");
        printf("----------------------------------\n");
        guanlikeydown();
    }
    

    管理员相比较于教师,可以对账号进行操作,并且可以查询所有班的成绩,在最开始设计时,我将管理员的操作写的跟学生教师冲突,尤其是进入教师用户端,进入教师用户端的代码如下。

    printf("请选择您想进行操作的班级\n");
                    printf("1.网络1班\n");
                    printf("2.网络2班\n");
                    printf("3.网络3班\n");
                    printf("4.网络4班\n");
                    printf("5.网络5班\n");
                    scanf("%s", choice1);
                    if (choice1[1] != '\0') {
                        printf("班级不存在请重新输入\n");
                        goto  next1;
                    } else if (choice1[0] == '1' || choice1[0] == '2' || choice1[0] == '3' || choice1[0] == '4' || choice1[0] == '5') {
                        allclassnum[0] = choice1[0];
                        teachermenu();
                    } else {
                        printf("班级不存在请重新输入\n");
                        goto  next1;
                    }
    

    管理员可以选择班级进行查看,当管理员选择后我将全局变量allclassnum(记录教师班级)改成了相对应操作的班级然后进入教师端。

    总结

    最开始写管理系统时没有注意很多细节,并且逻辑不合理,导致刚刚写完时非常的拉垮,在以后写程序时一定会多多留心。

    展开全文
  • 学生管理系统总结

    千次阅读 热门讨论 2017-08-15 20:42:28
    学生管理系统是我接触的第一个小系统!现在首先来说一下 我从开始前到进行中和结束后的经历和感受!  开始前,感觉很神奇,因为在日常生活中我们会接触到各种系统,但是可能从来没有想过他是怎么弄出来的。所以在...

                学生管理系统是我接触的第一个小系统!现在首先来说一下 我从开始前到进行中和结束后的经历和感受!

            开始前,感觉很神奇,因为在日常生活中我们会接触到各种系统,但是可能从来没有想过他是怎么弄出来的。所以在开始学生管理系统之前,给我的感觉就是“神奇”!

            进行中;

            代码和窗体的构建!看着PDF文档,先是被ER模型和一些数据库的表的创建内容搞蒙了!后来才知道数据库已经建立好了。在做准备工作的时候我看见很多同学在装SQL server的时候都重装了系统,虽然知道装系统是简单而又麻烦的事,但还是装了!后来才知道,不一定要重装系统,也有解决的办法。(微微一笑)。装好之后,就真正的开始了!代码和窗体的构建和当时敲的百例差不多!代码中会掺杂着 一些SQL语句。虽然能大概看懂,但是感觉还是有点虚!其中有一些问题的是某些查询和修改的窗体并没有给代码,而是要自己根据之前给过的类似的进行更改!

           调试过程中!看着终于敲完了代码和窗体。然后迫不及待的开始了运行,然后就第一个窗体就出现了 错误。然后调试了半天 ,才弄好!看来一个程序重要和困难的地方在与后期的调试!在调试的整个过程中是痛并快乐的,痛的是又出现了错误,快乐的是解决了BUG之后,又学到了东西!所以千万不能怕困难的出现,因为每次困难的出现都伴随这一个你没有掌握的知识点!一步一步,慢慢来,才是王道!调试的过程中,也能悟出一点规律,例如出现“91”变量未定义 类型的错误,多半是问题出现了在与数据的连接,查询上面!等等!

             结束后;看着自己的小系统,经得住别人点击了,每一项功能都能正常运行。真的是大快人心啊!再加上自己做的小优化,把它做成独一无二的系统。成就感十足!

             回头看看,整个经历,从好奇到疑问困难最后到掌握学习!这也应该是使各标准的学习过程吧!

            说了这么多,下面来简单的总结一下,和做一下分享!

     1、 整个过程重点在调试的时候,但是由于bug实在有点多,所以,我用了一个比较笨的办法,就是按顺序把每个窗体出现的问题都记在一个本子上,当然也可以是Word里。然后逐项进行调试,调完一个就划一个!可能是 我的记性不好,总一不小心就修改错窗体!虽然方法笨,但是条理清晰,效率也提升了不少!

    2、在父窗体上添加其他控件!不知道大家有没有 发现,父窗体的界面真的是有些不友好!而且不能添加除了picturebox和timer控件以外的其他控件!

            解决办法:可以在主窗体上添加一个无边框字窗体,将这个子窗体的 borderstyle 改为 0    MDIchild =true 

            然后在主窗体的加载事件中加入代码

                                        
    Private Sub MDIForm_Load()
    wubianform.Show
    wubianform.Height = fMainForm.Height
    wubianform.Width = fMainForm.Width

                     这样就行了,可以再这个无边框窗体上添加图片,换背景什么的了!说到换背景,为什么picturebox不行呢 ?以为添加了picturebox控件确实可以添加背景 ,但你会发现是此背景也可以叫 前景,他会完全挡住其他字窗体的!

    3、由于调试的次数很多,所以在不知不觉的过程中就忘记了这次登录的是哪个账户!所以可以在刚才的无边窗体上做手脚!

           解决办法:在无边窗体上添加一个label控件!将其名字改为namelabel(当然名字你可以随便起,你开心就好),

                                   
    Private Sub Form_Load()
    Dim txtSQL, msgtext As String
    Dim mrc As ADODB.Recordset
    Me.BorderStyle = 0 
    txtSQL = "select*from user_info where user_ID='" & UserName & "'"
        Set mrc = executeSQL(txtSQL, msgtext)
           namelabel.Caption = Trim(mrc.Fields(0)) & ",你好!"
           mrc.Close
        
    
    End Sub
                                   

     4、注册按钮的添加。每次看到这个登录窗体,我都能想起QQ的登录窗体上有一个注册的按钮!于是也就想加一个!

           解决办法:其实这个挺简单的!把添加用户 的那个窗体修改一下界面。代码上稍加修改就行了!我想这么简单的大家应该都能搞定!但是以后应该注意的是

           注册窗体的MDICHILD属性没必要改成true。点击“注册”按钮后应该调出刚才创建的注册窗体!

            在按钮的 click事件中添加zhuceform.show理论上就OK了。但是并不能所愿,出现以下错误。

                                    

                    遇到这个问题,首先要了解一下 模式窗体和非模式窗体

           模式窗体:简单的说,你必须关闭该窗体,才能操作其它窗体;比如说,必须按确定或取消,或者按关闭

           非模式窗体:不用关闭此窗体,就可以跳转到另一个窗体。

           还有一个深刻的解释:窗体名.Show [Modal][,Owerner]说明:Modal:指定窗体显示的模式,可以为vbModal(=1)或vbModeless(=0,默认值),vbModal表示将窗体作为模式对话框显示,这种情况下,Show方法后的代码要等到模式对话框关闭之后才能执行,且焦点也不能移动到其他窗体;vbModeless表示将窗体作为无模式对话框显示,这种情况下,焦点能在其他窗体之间转移。

          简单的理解,就是1 让该窗体模式化了!

    5、在帮助菜单下,加入了联系我们按钮!!这个按钮点击后会来打开我的CSDN主页!

          解决办法:Shell "C:\Program Files (x86)\Internet Explorer\iexplore.exe http://blog.csdn.net/ming_5257 "    分解来看引号中的内容“浏览器.EXE文件的路径  后面是想要打开的网址!”

           这个貌似有个缺点,就是在自己电脑上可以,但是在别人电脑上就不行,应为每个人电脑上的浏览器路径和名称种类可能不同那个 !如果大家有解决的办法,欢迎交流分享!

    6、在父窗体的状态栏上添加时间显示,并让其自动刷新时间!

         解决办法:在父窗体上添加一个timer控件,设置interval属性值为500

               在父窗体的Activate的事件中,设置状态栏的显示内容

                            
    Private Sub MDIForm_Activate()
    fMainForm.sbstatusbar.Panels(1).Text = Me.Caption
    fMainForm.sbstatusbar.Panels(2).Text = Now
    fMainForm.sbstatusbar.Panels(3).Text = "版权所有"
    End Sub

                             在 timer的事件中添加代码             
                            
    Private Sub Timer1_Timer()
    
        If fMainForm.sbstatusbar.Panels(2).Text <> CStr(Time) Then
        fMainForm.sbstatusbar.Panels(2).Text = Time
    End If
    end sub

                            这样就可以了 !

    7、数据查询时,添加相应的逻辑。例如学号 与学生姓名对应 !

          解决办法:在学号的下拉框的单击事件中,添加代码!

                              
    Private Sub Combosid_Click()
    Dim mrc As ADODB.Recordset
        Dim txtSQL As String
        Dim msgtext As String
        txtSQL = "select * from student_info where student_id='" & Combosid.Text & "'"
        Set mrc = executeSQL(txtSQL, msgtext)
        While (mrc.EOF = False)
           txtname = mrc!student_name
            
            mrc.MoveNext
        Wend
        mrc.Close
    End Sub
                                 其他的逻辑方法和这个类似,就不做多介绍了!要注意的是,学号 的控件是combobox 所以要把代码添加进学号下拉框的click的事件中。

     8、学号文本框,禁止输入汉字!大家知道,学号一般都是数字,而很少是汉字,所以如果不加以限制,总感觉怪怪的!

           解决办法:在要限制的控件的KeyPress事件中,添加代码。

                                 
    Private Sub txtsid_KeyPress(KeyAscii As Integer)
        If KeyAscii = 8 Then Exit Sub
        If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
    End Sub
                                  要问为什么,那就需要回去好好看看ASCII码了!

     9、添加 密码眼。相信很多时候我们在注册或登录某网站的时候,都会有这显示密码这一选项!所以给自己的系统也加一个。

           解决办法:我是在输入密码的文本框后添加了一个image 控件,将其stretch属性改为true。然后在picture 中添加了一个小眼睛的图标。然后再image的mousedown属性中添加了两行代码

                                 txtpassword1.PasswordChar = ""
                                 txtpassword2.PasswordChar = ""

    在鼠标按下的时候触发事件,将两个密码文本框的*清除

    在image的mouseup事件中添加如下代码

                                 txtpassword1.PasswordChar = "*"
                                 txtpassword2.PasswordChar = "*"

    在鼠标松开的时候触发事件,将两个密码文本框的输入内容加密

    结束语:通过这一阶段的学习,又再次了解了和学习了数据库,感觉没有以前那么神秘了,我想 这也可以说明我成长了。加油!


    展开全文
  • 3.5 学生成绩管理界面 17 3.6 用户信息管理界面 19 3.7 考勤信息操作界面 22 3.8 学生成绩查询界面 24 3.9 学生考勤信息查询界面 第四章 系统测试 4.1 登陆功能测试 4.2查询功能测试 4.3信息更改功能测试 4.4成绩...
  • 实训报告 实训名称 学生成绩管理系统 系部 专业班级 学生姓名 学 号 指导教师 完成日期 南京铁道职业技术学院 目 ? ? ? ? ? ? ? ? ? ? ? 装 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
  • 学生管理系统总结(一)

    千次阅读 2017-12-02 11:23:58
    前言学生管理系统做了一段时间了,有很多问题需要自己解决,敲完代码之后就是调试,在这个过程之中感觉自己收获到很多以下是一些常见的错误,总结一下,以后有类似错误可以有一个方向。主要内容1.变量未定义 该...

    前言

    学生管理系统做了一段时间了,有很多问题需要自己解决,敲完代码之后就是调试,在这个过程之中感觉自己收获到很多以下是一些常见的错误,总结一下,以后有类似错误可以有一个方向。

    主要内容

    1.变量未定义
    这里写图片描述
    该错误大概有三种情况:(1)写错了默认变量类型名,即Dim – 后面的类型。(2)未引用部件等对象。(3)窗口名称写错或未创建该窗口。
    2.对象变量或 With 块变量未设置
    这里写图片描述
    创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用 Set 语句将一个正确的引用赋值给对象变量。
    该错误一般情况下都是SQL语句出现错误,比如单引号的中文/英文,单引号错写成双引号,数据库的列名写错,Where和”之间需要有空格,txtSQL语句后面格式错误。
    3.控件问题
    这里写图片描述
    本来应该是控件组,一个一个复制过去的,不是一个一个添加的。
    4.数据库和代码问题
    这里写图片描述
    代码中引用的数据库数据不存在。

    小结

    剩下的问题大多数都是代码敲错,或者控件名称打错或者漏写代码,数据库和代码不一致等粗心错误,在学生管理系统的调试中暴露了我的很多缺点,以后一定要多多注意。
    
    展开全文
  • 大学Access学生档案管理系统总结报告
  • 包括总体设计,界面设计,详细设计与实现,系统测试,设计总结等。适合参考模板。
  • 课程设计目的 做一个学生信息管理系统 要求运用到 JavaEE 中的二层模式做设计都要用上要求要有后台就是说要连接到数据库适当的运用 java 代码和 jsp javascript 和 css 课程设计题目描述和需求分析 2.1 课程设计题目...
  • 大学期间写的一份Python学生信息管理系统,使用的是文件存储的格式,但是没有学习数据库之类的东西,只能这样写了。代码包含:教师端学生端的登录,学生基本信息的增删改查等四项基本功能。教师端功能全,学生端把...
  • 数据库系统概论 课程设计 设计名称 学生信息管理系统数据库设计 指导老师 杨林 蔡亮 班级 学号 姓名 成绩 KT873-2 6 李龙 KT873-2 7 暴晋南 KT873-2 19 李琰 目 录 TOC \o "1-7" \h \z \u 一需求分析 2 1.1功能需求...
  • 1.学生成绩管理系统分为三个用户角色,登录界面可以选择三种不同的角色进行登录系统 2.管理员角色登录系统可以有以下功能: 管理考试信息:可以对考试批次信息进行增删改查操作 管理教师信息:可以对教师个人信息...
  • 1 引言 1.1 编写目的 为了总结报告在工作过程中产生的问题 获得的经验 并且总结报告设计和制作者过 程中的逻辑和想法以便在以后的生产和学习过程中得到进一步提高 1.2 背景 说明 a 本项目名称学生信息管理系统 ...
  • C 语言课程设计学生成绩管理系统 个人心得体会 徐州工程学院 14 计嵌 1 班 07 组 张凯 这一周以来的课程设计不仅让我明白了 C 语言的确是一门很有用的但是又是不容易的一门课程 起初刚开始做课程设计时 以为这个课程...
  • c语言学生成绩管理系统总结

    千次阅读 多人点赞 2020-12-27 11:09:03
    一、系统功能 1.基本功能 1.录入信息 2.按照学号查找信息 3.按照学号修改信息 4.按照学号删除信息 5.插入信息 6.浏览全部信息 7.按c语言成绩排序 8.保存到文件 2.结构体 typedef struct student { char num[20]; /...
  • 主要为大家详细介绍了python学生信息管理系统的完整版本代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 基本满足了课程实训学生宿舍管理系统所需要的全部网页等前端需求,没有包括后端部分。
  • [Python] 学生信息管理系统 总结

    千次阅读 2021-01-22 14:51:26
    [Python] 学生信息管理系统 总结 需求分析:学生信息管理系统的功能 模块调用: 总体展示 def menu(): # 菜单显示 pass def main(): # 主程序 pass def insert(): # 插入学生信息 pass def save(lst): # ...
  • 学生成绩管理系统,分三个模块:学生,教师和管理员。 管理员模块:负责学生、老师信息的增删改;发布课程信息的增删改,以便让学生选课;审核老师提交的学生成绩并且打印成绩存档;按照课号查询每个课号的学生成绩...
  • 第一章 绪论 1.1 研究背景 ... 5.3 学生功能实现 5.4 教师功能实现 5.4.1 成绩功能实现 5.4.2 其他信息查询 5.5 管理员功能实现 5.6 本章小结 第六章 总结与展望 6.1 工作总结 6.2 研究展望
  • 学生信息管理系统案例小结

    千次阅读 2020-12-24 04:42:25
    charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 学生信息管理系统 学生信息列表 <%-- <%-- --%> 序号 学号 姓名 性别 生日 地址 QQ 邮箱 操作 --%> ${s.count...
  • 课程设计题目:基于MFC的学生班级信息管理系统设计 课程设计功能要求: (一)实现账号登陆界面; (二)实现添加学生的信息;(添加学生的信息为:学号,姓名,性别,专业,年级,出生日期) (三)实现删除学生的信息; (四)...
  • 学生信息管理系统负责编辑学生信息,适时地更新学生的资料。下面通过python实现一个简单的学生信息管理系统 stuInfo=[] def main(): while True: printMenu() #打印菜单 key=int(input('请输入功能对应的数字:'...
  • Python学生成绩管理系统源码+.exe,Pycharm及自带IDLE完美运行,可用来应付大作业或作为基础学习,内含心得体会以及细节注释,易根据自身需要修改,源码在system文件夹里
  • 山东德州科技职业学院 信息工程系 SQL Server实训报告书 项目名称 学生信息管理系统 数据库构建与设计 姓 名 X X X 班 级 XX级计算机应用 一班 指导教师 X X 完成时间 200X.X.X-200X.X.X 德州科技职业学院 信息工程...
  • 系统初始界面;登陆界面设计 ;学生信息录入;学生信息修改;学生信息查询;学生成绩录入;修改学生成绩;学生成绩查询 ;用户管理 该项目用PyCharm 可直接打开,数据库内嵌,可直接用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,676
精华内容 27,470
关键字:

学生管理系统总结

友情链接: 银行家.zip