jsp学生成绩管理系统实验报告

时间:2024.5.8

计算机与信息工程学院jsp数据库系统原理实验报告

专业:计算机科学与技术 年级/班级:13级计科2班 20##—20##学年第二学期

一、实验目的

一个学生成绩管理系统,能够实现对学生、老师基本信息、课程信息、成绩信息的管理。

学生端:

(1)学生信息查询,可根据学号、姓名及专业分别对学生信息进行查询

(2)学生信息修改,可在数据库中插入、删除和修改学生记录

(3)学生成绩录入,可录入每个学生的某门课成绩

老师端:

(1)能够让老师查看学生的信息

(2)查看学生的成绩

(3)输入学生的成绩;

管理员端:

能够实现对学生和老师的综合管理,能查看所有的学生、老师的基本信息和课程信息,能够添加、修改老师学生的课程信息和密码等。

二、总体设计

1、设计原理

2、业务流程分析图

3、数据流图

三、实验步骤

1、数据库设计

(1).数据库概念结构设计(ER图)

(2)逻辑结构设计

以下是最终的数据库表:

2、系统设计

(1). 模块结构设计

由前面的系统需求分析得到实体主要有5个:教师、学生、管理员、课程、成绩。

学生有属性:学号、姓名、性别、系名、专业、出生日期

教师有属性:教师号、姓名、性别、院系、联系电话

管理员属性:用户名、密码

课程有属性:课程号、课程名、学分、教师

成绩有属性:学号、姓名、课程号、课程名、成绩、授课老师

学生功能模块:

1、修改密码:学生进入页面后可以修改自己的密码,以达到保密性;

2、学籍维护:学生可以查看自己的基本信息(基本信息由管理员录入不能修改);

3、查看成绩:学生可以查看自己的必修课成绩。

教师功能模块

1、学生管理:该模块的主要功能是查询学生基本信息和对学生选课的管理以及成绩的录入修改。

2、 教师进入页面后可以查看自己的基本资料和修改自己的密码,以达到保密性;

管理员功能模块:

1、 进入页面后可以修改自己的密码,以达到保密性

2、 教师管理,对教师和课程进行修改和添加删除信息

3、 学生管理, 查询修改添加学生基本信息

(2)代码设计

第一部分是:教师个人管理

包括:1)查看个人资料

2)修改密码

第二部分是:学生信息管理

包括:1)学生信息查询

2)添加学生选课信息

3)学生成绩录入

教师个人管理:

1)查看个人资料

运行界面:

代码见文件夹部分1

2)修改密码

运行界面:

代码见文件夹部分2

学生信息管理:

1)学生信息查询

运行界面:

代码见文件夹部分3

2)添加学生选课信息

运行界面:

代码见文件夹部分4

3)学生成绩录入

运行界面:

代码见文件夹部分5

四、实验结果分析与总结

在此次实验课程设计中,我深刻的感受到了基础知识的重要性,记得在写一些简单的代码的时候,感觉脑子里竟然空空白白的,在程序开发过程中,最重要的还是基础知识,如果基础知识不牢固的话,以后开发大型的系统的时候会感觉很吃力,所以,一定要注重基础知识的学习。

此外,我还学到了很多在书本上学不到的东西,这些东西必须需要通过自己实践才能获得的,此次实验课程设计教给了我以后开发的一些步骤和经验,这些必将会使我受益良多。


第二篇:学生成绩管理系统实验报告


学生成绩管理系统

一、程序设计目的和要求

(1) 信息维护:

要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息

(2) 信息查询:

要求:查询时可实现按姓名查询、按学号查询

(3) 成绩统计:

要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)

二、详细设计说明

1. 实验程序分为4个模块

如上图所示:

1. 信息维护

2. 信息查询

3. 成绩统计

4. 排序

2. 主函数定义:

int main()

{

int choose;

loop:

system("cls");

printf("***********************************\n");

printf("* 欢迎来到成绩管理系统! *\n");

printf("***********************************\n");

printf("请选择您所需要的服务项目:\n");

printf("1、信息维护\n");

printf("2、信息查询\n");

printf("3、成绩统计\n");

printf("4、排序\n");

printf("5、退出系统\n");

printf("您的选择:");

scanf("%d",&choose);

system("cls");/*跳到下一页*/

switch(choose)

{

case 1:Mngstudent();//信息维护

goto loop;/*返回到主菜单*/

break;

case 2:Mnginquire();//信息查询

goto loop;

break;

case 3:Mngcount();//成绩统计

goto loop;

break;

case 4:Mngsort();

goto loop;

break;

case 5:break;

}

return 0;

}

当为1选择信息维护

当为2选择信息查询

当为3选择成绩统计

当为4选择排序

当为5选择退出系统

3. 信息维护模块

函数定义:

void Addstudent()//增加学生信息

int Countstudent()//统计学生总数

void Deletestudent()//删除学生

void Modifystudent()//修改学生

void Mngstudent()//主页面显示部分

分为:

1、增加学生

2、修改学生

3、删除学生

4、统计学生

4. 信息查询

void SearchStudent() //查找学生

void Mnginquire() //显示部分

5. 成绩统计

void infcount() //统计

void Mngcount() //显示部分

6. 排序

void infsort() //排序

void Mngsort() //显示部分

7. 结构体定义

struct Student //图书信息

{

int studentnum;

char studentname[30];

char result[3];

};

三、软件使用说明

打开主函数main并且运行,

按照要求进行操作

四、实验总结

1.实验要注意实验的模块化,将每一个功能分块执行

2.写代码时候调理要清晰

3.对排序等基本操作要掌握清楚

附件:

主函数:

//成绩管理系统主函数

#include

#include

#include "Student.h"

#include "infinquire.h"

#include "infcount.h"

#include "insort.h"

//using namespace std;

int main()

{

int choose;

loop:

system("cls");

printf("***********************************\n");

printf("* 欢迎来到成绩管理系统! *\n");

printf("***********************************\n");

printf("请选择您所需要的服务项目:\n");

printf("1、信息维护\n");

printf("2、信息查询\n");

printf("3、成绩统计\n");

printf("4、排序\n");

printf("5、退出系统\n");

printf("您的选择:");

scanf("%d",&choose);

system("cls");/*跳到下一页*/

switch(choose)

{

case 1:Mngstudent();//信息维护

goto loop;/*返回到主菜单*/

break;

case 2:Mnginquire();//信息查询

goto loop;

break;

case 3:Mngcount();//成绩统计

goto loop;

break;

case 4:Mngsort();

goto loop;

break;

case 5:break;

}

return 0;

}

信息维护:

#include

#include

#include

#include

#include "Student.h"

void Addstudent() //增加学生信息

{

FILE *fp;

int number,result[4],i;

char name[30];

fp=fopen("students.txt","a");

if(fp==NULL)

printf("File open error!\n");

else

{

printf("请输入所增加学生的学号、姓名、语文、数学、英语 :(请按照顺序输入!)\n");

scanf("%d",&number);

scanf("%s",&name);

for(i=1;i<=3;i++)

scanf("%d",&result[i]);

fprintf(fp,"%d %s %d %d %d\n",number,name,result[1],result[2],result[3]);

fclose(fp);

}

printf("写入成功!\n");

}//end function Addstudent;

int Countstudent() //统计学生总数

{

FILE *fp;

int count=0;

char ch;

fp=fopen("students.txt","r");

if(fp==NULL)

printf("File open error!\n");

else

{

while((ch=fgetc(fp))!=EOF)

if(ch=='\n')

count++;

}

fclose(fp);

return count;

}//end function Countstudent

void Deletestudent() //删除学生

{

FILE *fp;

int number;

int count=0;

int i=0,j,k;

Student student[5000];

int allstudent;

allstudent=Countstudent();

fp=fopen("students.txt","r");

if(fp==NULL)

{

printf("Files open error!\n");

exit(0);

}

else

{

printf("请输入要删除的学生的编号:\n");

scanf("%d",&number);

while(!feof(fp))

{

fscanf(fp,"%d %s %d %d %d",&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);

i++;

}

for(j=0;j

{

if(student[j].studentnum==number)

{

for(k=j;k

student[k]=student[k+1];

allstudent=allstudent-1;

count=1;

break;

}

}

fclose(fp);

if(count==0)

printf("没有找到匹配的学生信息:\n");

else

{

fp=fopen("students.txt","w");

for(j=0;j

fprintf(fp,"%d %s %d %d %d\n",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

fclose(fp);

printf("删除成功!\n");

}

}

}//end function Deletestudent;

void Modifystudent() //修改学生

{

FILE *fp;

fp=fopen("students.txt","r");

int number;

int allstudent;

allstudent=Countstudent();

int count=0;

int i=0,j,t1,t2;

Student student[5000];

if(fp==NULL)

{

printf("Files open error!\n");

exit(0);

}

else

{

printf("请输入要修改的学生的学号:\n");

scanf("%d",&number);

while(!feof(fp))

{

fscanf(fp,"%d %s %d %d %d",&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);

i++;

}

for(j=0;j

{

if(student[j].studentnum==number)

{

printf("该学生的原始信息:(学号、姓名、语文、数学、英语)\n");

printf("%d %s %d %d %d",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

count=1;

t1=j;

printf("\n请重新输入学生信息:\n");

printf("\n学号:");

scanf("%d",&student[j].studentnum);

printf("\n姓名:");

scanf("%s",&student[j].studentname);

printf("\n语文:");

scanf("%d",&student[j].result[1]);

printf("\n数学:");

scanf("%d",&student[j].result[2]);

t2=student[t1+1].studentnum;//实验过程中发现数据莫名丢失

printf("英语:");

scanf("%d",&student[j].result[3]);

while(getchar()!='\n');

break;

}

}

student[t1+1].studentnum=t2;//上面程序结束后还原

fclose(fp);

if(count==0)

printf("没有找到匹配的学生信息!\n");

else

{ fp=fopen("students.txt","w");

for(j=0;j

fprintf(fp,"%d %s %d %d %d\n",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

fclose(fp);

printf("修改成功!\n");

}

}

}//end function Modifystudent();

void Mngstudent() //学生成绩管理系统

{

int choose;

int allstudent;

int back=0;

char c;

printf("***********************************\n");

printf("* 欢迎来到学生成绩管理系统! *\n");

printf("***********************************\n");

while(back==0)

{

if(!back){

printf("请在下列项目中选择:\n");

printf("1、增加学生\n");

printf("2、修改学生\n");

printf("3、删除学生\n");

printf("4、统计学生\n");

printf("您的选择:");

scanf("%d",&choose);

printf("\n");

switch(choose)

{

case 1:Addstudent();break;

case 2:Modifystudent();break;

case 3:Deletestudent();break;

case 4:allstudent=Countstudent();

printf("书库中的学生总数为:%d\n",allstudent);

break;

}

fflush(stdin);/*清除文件缓冲区*/

printf("您是否继续维护?");

scanf("%c",&c);

printf("\n");

if(c=='n') back=1;

else system("cls");/*清屏*/

}

else{

printf("您输入的信息有误,无权对学生信息进行操作!\n");

back=1;

}

}

}//end function Mngstudent;

信息查询:

#include

#include

#include

#include "infinquire.h"

#include "Student.h"

void SearchStudent() //查找学生

{

FILE *fp;

Student student[5000];

fp=fopen("students.txt","r");

int number,choose,i=0,j;

int found=0;

char studentname[10];

if(fp==NULL)

{

printf("Files open error!\n");

exit(0);

}

else

{

printf("请选择查询方式:\n");

printf("1、按学号查询\n");

printf("2、按姓名查询\n");

scanf("%d",&choose);

switch(choose)

{

case 1:printf("请输入要查找的学生编号:\n");

scanf("%d",&number);

while(!feof(fp))

{

fscanf(fp,"%d %s %d %d %d\n",&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);

i++;

}

for(j=0;j

if(student[j].studentnum==number){

printf("学生的学号、姓名、语文、数学、英语:\n");

printf("%d %s %d %d %d",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

found=1;

break;

}

if(found==0)

printf("没有找到编号为%d的学生!\n",number);

break;

case 2:printf("请输入要查找的学生姓名:\n");

scanf("%s",&studentname);

while(!feof(fp))

{

fscanf(fp,"%d %s %d %d %d",&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);

i++;

}

for(j=0;j

if(strcmp(student[j].studentname,studentname)==0){

printf("学生的学号、姓名、语文、数学、英语:\n");

printf("%d %s %d %d %d",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

found=1;

break;

}

if(found==0)

printf("没有找到名称为%s的学生!\n",studentname);

break;

}

fclose(fp);

printf("\n");

}

}//end function SearchStudent();

void Mnginquire() //查询系统

{

int choose;

int back=0;

char c;

printf("***********************************\n");

printf("* 欢迎来到查询系统! *\n");

printf("***********************************\n");

while(back==0)

{

printf("请在下列项目中选择:\n");

printf("1、查找学生\n");

printf("您的选择:");

scanf("%d",&choose);

printf("\n");

switch(choose)

{

case 1:SearchStudent();break;

}

fflush(stdin);

printf("您是否继续查询?");

scanf("%c",&c);

printf("\n");

if(c=='n') back=1;

else system("cls");

}

}//end function MngLendStudent();

成绩统计:

#include

#include

#include

#include

#include "infcount.h"

#include "Student.h"

void infcount() //统计

{

FILE *fp;

int cla;

int count=0;

int i=0,j=0,k=0,h,l;

int allstudent;

char clas[10];

allstudent=Countstudent();

Student student[1000];

fp=fopen("students.txt","r");

if(fp==NULL)

{

printf("Files open error!\n");

exit(0);

}

else

{

printf("请输入要排序的课程:(1代表语文 2代表数学 3代表英语)\n");

scanf("%d",&cla);

printf("请输入要统计的课程分数段:\n");

printf("<:\n");

scanf("%d",&h);

printf(">:\n");

scanf("%d",&l);

switch(cla)

{

case 1:strcpy(clas,"语文");break;

case 2:strcpy(clas,"数学");break;

case 3:strcpy(clas,"英语");break;

default:printf("\n\n您的输入有误!请重新输入:\n\n");break;

}

while(!feof(fp))

{

fscanf(fp,"%d %s %d %d %d\n",&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);

i++;

}

for(j=0;j

if(student[j].result[cla]>l&&student[j].result[cla]

{

student[k]=student[j];

k++;

}

printf("%s成绩在%d到%d之间的学生数为:",clas,l,h);

printf("%d\n",k);

fclose(fp);

fp=fopen("tongji.txt","w");

for(j=0;j

fprintf(fp,"%d %s %d %d %d\n",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

fclose(fp);

}

}//end function infcount;

void Mngcount() //统计

{

int choose;

int back=0;

char c;

printf("***********************************\n");

printf("* 欢迎来到成绩统计! *\n");

printf("***********************************\n");

while(back==0)

{

printf("请在下列项目中选择:\n");

printf("1、成绩统计\n");

printf("您的选择:");

scanf("%d",&choose);

printf("\n");

switch(choose)

{

case 1:infcount();break;

}

fflush(stdin);/*清除缓冲区*/

printf("您是否继续统计y/n>");

scanf("%c",&c);

printf("\n");

if(c=='n') back=1;

else system("cls");

}

}//end function Mngcount

排序:

#include

#include

#include

#include

#include "insort.h"

#include "Student.h"

void infsort() //排序

{

FILE *fp;

int cla;

int count=0;

int i=0,j=0,temp,k=0,x=0;

Student student[1000];

Student student1;

fp=fopen("students.txt","r");

if(fp==NULL)

{

printf("Files open error!\n");

exit(0);

}

else

{

printf("请输入要排序的课程:(1代表语文 2代表数学 3代表英语)\n");

scanf("%d",&cla);

switch(cla)

{

case 1:x=1;break;

case 2:x=2;break;

case 3:x=3;break;

default:printf("\n\n您的输入有误!请重新输入:\n\n");

break;

}

while(!feof(fp))//判断文件到达末尾

{

fscanf(fp,"%d %s %d %d %d\n",&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);

i++;

}

for(j=0;j

for(k=j+1;k

if(student[j].result[x]

{ student1=student[k];student[k]=student[j];student[j]=student1;}

printf("如下表:\n");

printf("学号 姓名 语文 数学 英语\n");

for(j=0;j

printf("%d %s %d %d %d\n",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

fp=fopen("students.txt","w");

for(j=0;j

fprintf(fp,"%d %s %d %d %d\n",student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);

fclose(fp);

}

}

//end function infcount;

void Mngsort() //排序

{

int choose;

int back=0;

char c;

printf("***********************************\n");

printf("* 欢迎来到成绩排序! *\n");

printf("***********************************\n");

while(back==0)

{

printf("请在下列项目中选择:\n");

printf("1、排序\n");

printf("您的选择:");

scanf("%d",&choose);

printf("\n");

switch(choose)

{

case 1:infsort();break;

}

fflush(stdin);/*清除缓冲区*/

printf("您是否继续统计y/n>");

scanf("%c",&c);

printf("\n");

if(c=='n') back=1;

else system("cls");

}

}//end function Mngsort

头文件:

Student.h

#include

#ifndef students_H

#define students_H

struct Student //图书信息

{

int studentnum;

char studentname[30];

char result[3];

};

#endif

int Countstudent();

void Addstudent();

void Deletestudent();

void Modifystudent();

void Mngstudent();

insort.h

#include

void infsort();

void Mngsort();

infinquire.h

#include

void SearchStudent() ;

void Mnginquire();

incount.h

#include

void infcount();

void Mngcount();

更多相关推荐:
java学生成绩管理系统实验报告

JAVA课内实验报告学生成绩管理系统一实验目的及实验环境实验目的在如今的高校日常管理当中学生成绩管理系统就是其中非常重要的一环特别是当前学生规模大课程门类多校区分散等实际情况学生成绩管理系统更具有非常大的实际应...

学生信息管理系统实验报告

西安???W院数据库原理及应用设计报告题目:学生信息管理系统一.设计目的学生管理系统是高校管理工作中一项非常重要的组成部分。用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各…

学生成绩管理系统C++编程实验报告

C程序设计课程设计报告设计题目学生成绩管理系统专业计算机科学与技术网络工程班级学号姓名指导老师日期20xx0531目录一设计任务与要求31设计内容32课程设计的要求3二系统分析需求分析31需求分析32系统性能要...

学生成绩管理系统课程设计报告

1目录1需求与功能分析32系统总体框架43模块设计与分析44类的设计与分析65特色算法分析76功能测试107存在的不足与对策138程序源代码149使用说明2310参考文献2321需求与功能分析1需求分析学生成绩...

学生成绩管理系统--课程设计报告

数据结构课程设计报告课题名称姓名学院系科班级指导老师日期学生成绩管理系统20xx年1月17日目录一问题描述3二基本要求3三设计目的4四概念设计4五详细设计51主要数据结构52模块功能53调用关系5六源程序5七测...

学生成绩管理系统数据库设计实验报告

学生成绩管理系统数据库课题雇员信息管理系统姓名学号同组姓名专业班级指导教师设计时间20xx年6月4号20xx年6月10日一需求分析阶段1信息需求对学校而言学生成绩管理系统是所有工作的首要之选但是高校学生的成绩管...

学生成绩管理系统实验报告

学生成绩管理系统C语言程序设计实训报告姓名专业班级指导教师20xx年7月14日目录一实训目的和要求1二实训任务内容1三详细设计说明1四软件使用说明2五实训心得与体会6参考文献7附录部分程序清单7I一实训目的和要...

3-基于sql的学生成绩管理系统_课程设计报告

一实验题目学生证管理系统数据库的设计与实现描述设计一个学生证管理系统实现下列功能1录入某位学生的学生证信息2给定学号查询某位学生的学生证信息3给定班号显示该班所有学生的学生证信息4给定学号修改该学生的学生证信息...

学生成绩管理系统C++编程实验报告

C程序设计课程设计报告设计题目学生成绩管理系统专业计算机科学与技术网络工程班级学号姓名指导老师日期20xx0531目录一设计任务与要求31设计内容32课程设计的要求3二系统分析需求分析31需求分析32系统性能要...

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告班级:计科***班学号:****姓名:***20XX年12月数据库应用系统的初步开发一、实验类别:综合型实验二、实验目的1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案…

C#学生成绩管理系统课程设计报告

C程序设计课程设计报告2020学年第学期题目学生成绩信息管理系统专业班级姓名学号指导教师成绩年月日目录摘要1第一章绪论211设计目的212开发工具选择213开发环境214本报告的主要内容2第二章需求分析321系...

C语言程序设计实习报告---学生信息管理系统

C程序设计报告C语言课程设计题目班级学生成绩管理系统设计者焦鹏专业经济学班级学号08112227所属院系经济管理学院指导教师马钊20xx年12月29日C程序设计报告1题目和要求11问题提出与要求学生成绩管理系统...

学生成绩管理系统实验报告(31篇)