教务管理系统课程设计报告

合集下载

uml教务管理系统的课程设计

uml教务管理系统的课程设计

UML教务管理系统的课程设计一、引言在现代教育环境中,高效的教务管理系统是学校管理和教学工作的重要组成部分。

教务管理系统能够帮助学校管理课程、学生、教师等信息,提供学生选课、成绩查询、教师排课等功能,提高管理效率和教学质量。

本文针对这一问题,设计了一种基于UML的教务管理系统。

二、需求分析2.1 功能需求教务管理系统需要实现以下功能: 1. 学生管理:包括学生信息管理、学生选课、学生成绩查询等功能。

2. 教师管理:包括教师信息管理、课程安排、成绩录入等功能。

3. 课程管理:包括课程信息管理、课程安排、课程评价等功能。

4. 系统管理:包括用户权限管理、系统配置、日志管理等功能。

2.2 非功能需求教务管理系统还需要满足以下非功能需求: 1. 可靠性:系统应具有高可靠性,保证数据的完整性和一致性。

2. 安全性:系统应提供安全的用户认证和授权机制,保证数据的安全性。

3. 可扩展性:系统应具有良好的可扩展性,能够方便地扩展新的功能和模块。

4. 用户友好性:系统应具有良好的用户交互界面,易于使用。

三、系统设计3.1 概要设计教务管理系统的概要设计主要包括系统的整体架构和模块划分。

在整体架构上,可以采用三层架构,即表现层、业务逻辑层和数据访问层。

在模块划分上,可以包括学生管理模块、教师管理模块、课程管理模块和系统管理模块。

3.2 详细设计3.2.1 学生管理模块学生管理模块主要包括以下功能: - 学生信息管理:包括学生基本信息的录入、修改和查询等功能。

- 学生选课:包括学生选课的操作和选课结果的查询功能。

- 学生成绩查询:包括学生查询已修课程成绩的功能。

3.2.2 教师管理模块教师管理模块主要包括以下功能: - 教师信息管理:包括教师基本信息的录入、修改和查询等功能。

- 课程安排:包括教师课程的安排和修改等功能。

- 成绩录入:包括教师录入学生成绩等功能。

3.2.3 课程管理模块课程管理模块主要包括以下功能: - 课程信息管理:包括课程基本信息的录入、修改和查询等功能。

教务管理系统分析设计报告

教务管理系统分析设计报告

教务管理系统分析设计报告目录一、内容概要 (2)1.1 编写背景 (3)1.2 目的和意义 (4)1.3 报告结构 (5)二、系统需求分析 (6)2.1 功能需求 (7)2.1.1 学生管理功能 (8)2.1.2 教师管理功能 (9)2.1.3 课程管理功能 (11)2.1.4 成绩管理功能 (12)2.1.5 管理员功能 (13)2.2 非功能需求 (14)2.2.1 性能需求 (15)2.2.2 安全性需求 (16)2.2.3 可用性需求 (17)2.2.4 可维护性需求 (18)三、系统设计 (20)3.1 系统架构设计 (21)3.2 数据库设计 (22)3.2.1 数据表设计 (24)3.2.2 关系设计 (25)3.3 模块设计 (27)3.3.1 学生管理模块 (28)3.3.2 教师管理模块 (30)3.3.3 课程管理模块 (31)3.3.4 成绩管理模块 (33)3.3.5 管理员模块 (34)3.4 界面设计 (37)四、系统实现与测试 (38)4.1 实现方案 (39)4.2 开发进度 (40)4.3 测试计划 (41)4.4 测试结果分析 (42)五、结论与展望 (43)5.1 系统总结 (44)5.2 发展建议 (45)5.3 后续工作 (46)一、内容概要本报告旨在对教务管理系统进行分析设计,以期为系统的开发和实施提供参考。

教务管理系统是学校教育管理的重要组成部分,负责学生信息管理、课程安排、成绩统计、教师管理等功能。

本报告将从系统的需求分析、功能模块设计、技术架构设计、实施计划等方面进行详细阐述。

需求分析部分主要通过对学校现有教务管理流程的梳理,明确系统需要满足的功能需求和性能需求。

功能需求包括学生信息管理、课程安排、成绩统计、教师管理等基本功能,以及一些可选功能如在线选课、教学资源共享等。

性能需求包括系统的响应时间、并发用户数、数据安全性等方面的要求。

在功能模块设计部分,我们将根据需求分析结果,对系统进行模块划分,明确各个模块的功能和相互关系。

教务信息管理系统实验报告

教务信息管理系统实验报告

教务信息管理系统实验报告一、引言本实验旨在设计和实现一个简单的教务信息管理系统,通过该系统实现学生信息的录入、查询和删除功能,并能够对学生信息进行统计和打印。

二、系统概述本系统采用C++语言和面向对象的设计思想,具有用户友好的界面和易于操作的功能。

主要包括学生类、教务信息类和系统界面类三个类。

学生类用于存储学生的基本信息,包括学号、姓名、性别、年龄等。

教务信息类用于对学生信息进行管理,包括学生信息的输入、查询、删除和统计等。

系统界面类负责与用户进行交互,显示菜单选项供用户选择。

三、系统功能1.学生信息录入:通过输入学生的学号、姓名、性别、年龄等基本信息,将学生信息保存到文件中。

2.学生信息查询:根据学生的学号查询学生的基本信息,如姓名、性别、年龄等。

3.学生信息删除:根据学生的学号将学生的基本信息从文件中删除。

4.学生信息统计:统计学生的人数、男女比例、平均年龄等统计信息,并显示在界面上。

5.学生信息打印:将学生信息以表格形式打印出来,方便教务工作人员查阅。

四、系统设计1. 学生类设计:学生类包含学号、姓名、性别、年龄等属性,以及相应的get和set方法。

2.教务信息类设计:教务信息类包含学生信息的录入、查询、删除和统计等功能。

其中,学生信息的录入功能通过键盘输入学生的基本信息,并将其保存到文件中;查询功能通过输入学生的学号从文件中读取学生的基本信息并显示在界面上;删除功能通过输入学生的学号将学生的基本信息从文件中删除;统计功能通过读取文件中的学生信息进行统计并将结果显示在界面上。

3.系统界面设计:系统界面类负责显示菜单选项供用户选择,并根据用户的选择调用相应的功能。

五、系统实现1.学生类的实现:通过定义私有成员变量和公共成员函数的方式实现学生类。

其中,私有成员变量用于存储学生的基本信息,公共成员函数用于设置学生信息和获取学生信息。

2.教务信息类的实现:通过定义录入、查询、删除和统计等成员函数的方式实现教务信息类。

教务管理系统课程设计报告

教务管理系统课程设计报告

教务管理系统课程设计报告一、引言教务管理系统是为了提高学校教务工作效率而开发的一种信息管理系统。

本课程设计报告主要介绍了教务管理系统的设计思路、功能模块以及系统实现等方面的内容。

二、设计思路教务管理系统的设计思路是基于学校教务工作的需求和特点,通过信息技术手段对教务工作进行信息化管理,提高工作效率和服务质量。

在设计思路上,本系统采用了模块化的设计,将教务工作拆分成多个模块,分别进行管理。

同时,系统还采用了数据库技术,将数据存储在数据库中,方便对数据进行管理和查询。

三、功能模块教务管理系统的功能模块包括学生管理模块、课程管理模块、教师管理模块、成绩管理模块和课表管理模块等。

1. 学生管理模块学生管理模块主要包括学生信息的录入、修改和查询功能。

系统管理员可以通过该模块实现对学生信息的管理和维护。

2. 课程管理模块课程管理模块主要包括课程信息的录入、修改和查询功能。

教务处老师可以通过该模块实现对课程信息的管理和维护。

3. 教师管理模块教师管理模块主要包括教师信息的录入、修改和查询功能。

系统管理员可以通过该模块实现对教师信息的管理和维护。

4. 成绩管理模块成绩管理模块主要包括学生成绩的录入、修改和查询功能。

教师可以通过该模块实现对学生成绩的管理和维护。

5. 课表管理模块课表管理模块主要包括课表信息的录入、修改和查询功能。

教务处老师可以通过该模块实现对课表信息的管理和维护。

四、系统实现教务管理系统的实现主要包括前端界面设计和后端数据库设计两个方面。

1. 前端界面设计前端界面设计主要包括系统登录界面、主页面和各个功能模块的页面设计。

界面设计应简洁明了,符合用户使用习惯,提高用户体验。

2. 后端数据库设计后端数据库设计主要包括数据库表的设计和数据表之间的关系设计。

数据库表的设计应符合数据的规范和一致性要求,同时保证数据的安全性和可靠性。

五、总结教务管理系统是提高学校教务工作效率的重要工具,通过对教务工作进行信息化管理,可以提高工作效率和服务质量。

教务管理系统设计报告

教务管理系统设计报告

教务管理系统设计报告一、引言教务管理是一项涉及学校行政和学生教学管理的重要工作。

随着信息技术的发展,教务管理系统已成为现代学校管理的必备工具。

本报告旨在设计一个高效、可靠、易用的教务管理系统,以满足学校各级教务管理需求。

二、系统需求分析1. 用户管理教务管理系统应具备用户管理功能,包括用户注册、登录、权限管理等。

不同用户角色应有不同的权限,例如教师可以录入学生成绩,学生可以查询个人课程信息等。

2. 课程管理系统应能够管理学校的课程信息,包括课程名称、课程描述、上课时间地点等。

管理员应具备课程管理权限,能够新增、编辑、删除课程信息。

3. 学籍管理系统应能够管理学生的学籍信息,包括学生个人信息、学号、班级等。

管理员应具备学籍管理权限,能够新增、编辑、删除学生信息,并能够对学生进行批量导入、导出操作。

4. 选课管理系统应具备选课管理功能,学生能够通过系统选课,并能够查询已选课程的相关信息。

系统应能够控制选课的时间和选课人数限制。

5. 成绩管理系统应具备成绩管理功能,教师能够录入学生的考试成绩并进行查询和修改。

学生能够查询个人的考试成绩。

6. 课表管理系统应具备课表管理功能,学生和教师能够查询个人的课程表,并能够根据学期进行切换。

7. 教师管理系统应具备教师管理功能,包括教师的个人信息、授课课程等。

管理员能够管理教师信息,包括新增、编辑、删除教师信息等操作。

8. 数据统计与报表系统应具备数据统计与报表功能,能够对课程、学生、教师等数据进行统计分析,并能够生成相应报表,以供学校管理者进行决策参考。

三、系统设计与实现1. 技术选型根据需求分析,我们选择采用Java语言进行开发,并结合Spring框架和MySQL数据库进行系统设计与实现。

前端采用HTML、CSS和JavaScript进行开发。

2. 系统架构系统采用B/S架构,即浏览器-服务器架构。

用户通过浏览器访问系统,并与服务器进行交互来完成各项功能。

3. 数据库设计根据需求,设计数据库表结构,包括用户表、课程表、学生表、选课表、成绩表等。

教务管理系统设计报告

教务管理系统设计报告

教务管理系统设计报告一)引言教务管理是高校中一项极其繁重的任务, 教务工作人员每天都需要接触和处理大量的数据和事务。

这些信息的准确性和完整性, 时时影响着教务管理及其相关工作的顺利开展, 也为高校工作的正规化运作和标准化管理提供了依据。

二)需求分析1)服务对象经调研分析知, 教务系统的主要服务对象包括: 管理人员、教师、学生。

这些对象与教务系统的主要交互为:教师: 浏览人员、成绩、课程、选课信息;统计学生成绩情况;添加成绩。

学生: 浏览个人、课程及个人成绩信息;进行选课。

管理人员:维护系统中的基础信息的准确性和完整性, 保证各类信息的及时更新。

有权限对人员信息及课程信息进行添加删除修改操作。

2)功能需求登录: 先进行一系列的登录判定, 后按照不同的权限进入不同的界面。

学生: 学生可以进行查询(包括对自己的个人信息, 成绩以及课程信息的查询);其次学生可以进行选课。

教师:教师可以进行查询(包括对自己的个人和学生信息, 成绩以及课程信息的查询);其次是对成绩进行统计分析和对成绩的添加。

管理员:需要对人员信息及课程信息进行添加, 删除, 修改。

三)系统设计数据层: 是一般信息系统的最低层, 它为系统定义、维护、访问和修改数据, 并负责数据信息的存储、访问及其优化。

数据层可以理解成传统的数据服务器, 并在特定的数据库管理系统(DBMS)中实现。

业务层:主要用于支持大批量事务处理、事务支持、大型配置、信息传送和网络通信。

一个定义明晰的业务层扮演着应用程序入口的角色, 为我们的表现层代码提供了一个简单统一的业务逻辑实现点。

好的业务层也对我们的应用在执行何种操作, 以及向用户表达怎样的逻辑进行了明确的定义。

表示层:(也叫用户界面层)是将数据呈现给用户或处理用户输入的应用程序或系统一部分。

它并不执行数据函数, 而是通过输入向服务器请求数据, 然后以一定的格式显示结果。

教务管理系统数据库课程设计报告大学论文

教务管理系统数据库课程设计报告大学论文

河南城建学院Henan University of Urban Construction 《数据库原理》课程设计报告课程名称:《数据库原理》课程设计设计题目:《教务管理系统》指导教师:何宗耀班级:0844141学号:084414144学生姓名:同组人员:计算机科学与工程学院2016年6月目录第1章概述 (3)1.1选题的背景与意义 (3)1.2相关技术分析 (3)第2章系统功能设计 (4)2.1系统总体结构设计图 (4)2.2系统功能模块 (4)1.2.1 模块 (4)1.2.2 模块功能 (4)第3章数据库设计 (5)3.1需求分析 (5)3.1.1流程图 (5)3.1.2 数据字典 (7)3.2概念结构设计 (9)3.2.1 E—R图 (9)3.3逻辑结构设计 (11)3.3.2范式的判定(3NF) (11)3.3.3 子模式的设计(视图) (13)3.4物理结构设计 (15)3.4.1存储结构与存取方法 (15)3.4.2数据的易变与稳定部分 (16)3.4.3索引的建立 (16)3.5数据库、表建立的代码 (16)3.5.1建立视图 (20)3.5.2建立存储过程 (21)3.5.4建立触发器 (22)3.6数据库实施 (24)3.6.1 数据表截图 (24)3.6.2视图的截图 (27)3.6.3存储过程的截图 (29)3.6.4 触发器实现过程的截图 (30)第4章 (32)第1章概述1.1 选题的背景与意义现如今高等院校的招生人数越来越多,必然就会有大量的学生信息、教师信息及课程信息需要处理。

如果只靠人力来完成,这将会变成一项非常繁琐、复杂的工作,而且还有可能出现很多意想不到的错误,给管理这些数据带来了极大的不便,越来越不适合高校的发展需要。

教务管理系统是一个庞大而复杂的系统,它包括对教师信息的管理,对课程资料的管理,对学生信息的管理和对学生成绩的管理等主要功能。

教务管理系统是每所高校的一项必不可少的内容,但最基本的还是教务管理系统数据库的设计,它的好坏直接影响到学校的主要工作。

C语言课程设计报告——教务管理系统

C语言课程设计报告——教务管理系统

功能说明:实现两种权限的身份登陆的教务管理系统*/#include "stdio.h"#include "stdlib.h"#include "string.h"#include "time.h"#include "memory.h"#define share "d:\\share.dat" //定义邮件地址#define manager "d:\\manager.dat" //定义管理员邮件地址#define outmsg "d:\\outmsg.dat" //定义公告邮件地址#define logtimemsg "d:\\used login time.dat" //定义用户登录时间信息#define star_stu "d:\\stu_scname.dat" //定义学生起始文件信息#define stu_msg "d:\\stu.dat" //定义学生成绩信息地址#define mass_key "3110008758" //定义文件头部密码typedef struct student stu;#define sc_num 4 //只设定4门科目,不允许改动#define uint unsigned int/*学生成绩管理系统结构*/struct student{char num[10]; /*学生学号*/char name[10]; /*学生姓名*/uint score[sc_num]; /*科目分数*/uint average; /*科目平均分*/stu *next;}st;char gettemp=0;/*管理员身份识别结构*/typedef struct username user;struct username{char username[20];//char password[20];}use;/*时间登录信息*/struct Logtime{char userlogin[20];struct tm;};char logc;//登录次数typedef struct Logtime logtime;//========================================================== //定义通讯协议//==========================================================#define mass_max 200 //定义信息量struct Massage{int cont; //文件数量char username[15]; //发送人char mass[mass_max];//信息}mas;typedef struct Massage massage;//========================================================== //========================================================== char userlogin[10];char sc_name[sc_num][10];/*以上是学生信息*/char welcome(void);/*用户界面,返回0,则表示退出系统*//*==================================================================== 学生信息操作==================================================================== */stu*creat();/*建立链表*/void display(stu *head);/*显示用户信息*/void insert(stu *head);/*增加学生信息*/stu* delname(stu*head,char *stu_name);/*根据学生姓名删除用户信息*/stu* delnum(stu *head,char *stu_num);/*根据学生学号删除用户信息*/stu* checkname(stu *head,char *stu_name);/*输出指定学生的信息*/stu* checknum(stu *head,char *stu_num);/*输出指定学生学号的学生信息*/ void changsc_name(stu *head,char *name);/*修改用户成绩*/void changsc_num(stu *head,char *num);/*修改用户成绩*/void waring(void);/*产生警告信息*/char cheknum(char *num);/*检查学生学号是否符合格式*/char chekname(char *name);/*检查学生姓名是否符合格式*/char chekscore(char score);/*检查学生分数是否符合格式*/stu* sortscore(stu *head);/*学生按平均成绩排序*/stu* sortnum(stu *head);/*学生信息按学号排序*//*==================================================================== 学生用户登录==================================================================== */char stulogin(void);/*进入普通用户登录界面*/char stucheck(char *nam,char *stnum);/*查找是否存在该学生信息*/char newlogin(char *nam,char *stnum);/*注册学生信息*/void disnewst(void);/*获得学生信息*//*==================================================================== 系统管理选择,管理员权限==================================================================== */void stu_system(void);/*对各种操作集中管理*/void sentmsg(void);/*发送公告*/char readmsg(void);/*浏览信息*/char delemsg(void);//删除信息void chagesbject(void);/*修改课程信息*//*==================================================================== 用户登录信息==================================================================== */void setlogintime(void);/*记录用户登录时间*/void dislogintime(void);/*显示用户登录信息*/void setused(void);/*注册新用户资料*/char usedcheckname(char *name);/*用户信息检查,若存在用户,则返回1,否则返回0*/ char usedcheckpass(char *name,char *password);/*查看用户名密码是否符合*//*====================================================================存储操作====================================================================*/char save(stu *head);/*保存用户数据*/char disload();/*显示用户信息*/stu* load(void);/*加载用户数据*/void clrtxt(char *str);/*清除文本信息*/char* creat_txt(char *username);/*根据用户名,创建一个用户文件*/FILE* chekuser(char *username);/*根据用户名,查找是否有此用户信息,若无,返回NULL*/ /*====================================================================---------------main函数----------====================================================================*/void main(){FILE *fp;char i,j;char name[15];system("color b5");memset(name,'\0',sizeof(name));if((fp=fopen(star_stu ,"r+"))==NULL){printf("将新建文件!\n");fp=fopen(star_stu ,"w+");}fread(name,sizeof(name),1,fp);if(strcmp(name,mass_key)!=0){printf("文件载入出错!\t N为退出回车键继续...:");i=getchar();if((i=='n')||(i=='N')){fclose(fp);exit(1);}else{printf("\n\n数据将重新初始化!\n");printf("\n\n请输入4门科目名称\n");memset(name,'\0',sizeof(name));fwrite(name,sizeof(name),5,fp);strcpy(name,mass_key);rewind(fp);fwrite(name,sizeof(name),1,fp);for(i=0;i<sc_num;i++){printf("\n\n第%d门科目名称: ",i+1);scanf("%s",sc_name[i]);if(fwrite(sc_name[i],sizeof(sc_name[i]),1,fp)!=1){printf("\n\n\t\t\t\t保存出错!\n");getchar();exit(1);}}}}else{if(fp==NULL)printf("\n文件错误!");fscanf(fp,"%s%s%s%s",sc_name[0],sc_name[1],sc_name[2],sc_name[3]);}fclose(fp);fp=fopen(share,"w"); //为防止文件在后面打开错误fclose(fp);fp=fopen(manager,"w");fclose(fp);fp=fopen(outmsg,"w");fclose(fp);do{j=welcome();if(j==1){system("cls");printf("\t\t欢迎进入学生用户中心系统!");setlogintime();j=stulogin();}else if(j==2){setlogintime();stu_system();}}while(j!=0);fp=fopen(share,"w"); //为防止文件未关闭,倒置文件内容丢失fclose(fp);fp=fopen(manager,"w");fclose(fp);fp=fopen(outmsg,"w");fclose(fp);fp=fopen(logtimemsg,"w");fclose(fp);fp=fopen(star_stu,"w");fclose(fp);fp=fopen(stu_msg,"w");fclose(fp);}/*====================================================================---------------------------初始化用户界面---------------------------====================================================================*///返回1,则进入stu用户界面//返回0,则表示退出//返回2,则表示进入管理员界面char welcome(void){char username[20];char userpass[20];char i,wrong_cont=0,key=0,weling=1,back=0;char temp;system("color b5");while(weling){do{system("cls");printf("\t*********************欢迎进入教务管理系统********************\n");printf("\t* *\n");printf("\t* 1.用户登录*\n");printf("\t* *\n");printf("\t* 2.用户注册*\n");printf("\t* *\n");printf("\t* 3.管理员登陆*\n"); printf("\t* *\n"); printf("\t* 4.管理员注册*\n"); printf("\t* *\n"); printf("\t* 5.退出系统*\n"); printf("\t* *\n"); printf("\t=============================================================\n"); printf("\t 请按命令提示操作\n"); printf("\n\n\n");printf("\n\n\n");printf("您输入的命令为:\t");i=getchar();if((i!='1')&&(i!='2')&&(i!='3')&&(i!='4')&&(i!='5')){printf("\n输入错误的指令!请按命令提示操作1-3\n");getchar();}}while((i!='1')&&(i!='2')&&(i!='3')&&(i!='4')&&(i!='5'));switch(i){case '1':{system("cls");memset(username,'\0',sizeof(username));memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入用户名:\t");scanf("%s",username);printf("\n\t请输入学号:\t");scanf("%s",userpass);temp=stucheck(username,userpass);if(temp==0){printf("没有学生档案信息!请注册...\n");getchar();break;}else if(temp==1){memset(userlogin,'\0',sizeof(userlogin));strcpy(userlogin,username);printf("\n\t学生成绩登录有效!");getchar();return 1;}getchar();//=======================break;}case '2':{system("cls");memset(username,'\0',sizeof(username));memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入用户名:\t");scanf("%s",username);printf("\n\t请输入学号:\t");scanf("%s",userpass);while(cheknum(userpass)!=1){printf("您的输入格式有误,请重新输入!\n");printf("按回车键继续...\n");getchar();memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入学号:\t");scanf("%s",userpass);}if(newlogin(username,userpass))printf("\n\t注册成功!用户名:%s\t学号:%s",username,userpass);getchar();break;}case '3':{do{system("cls");memset(username,'\0',sizeof(username));memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入用户名:\t");scanf("%s",username);printf("\n\t请输入密码:\t");scanf("%s",userpass);if(usedcheckpass(username,userpass)==0){wrong_cont++;if(wrong_cont==3){printf("\n\t输入次数大于3次!请按回车键退出系统!\n");getchar();weling=0;return 0;}key=1;printf("\n\t按1选择返回主菜单\n\t按0继续输入用户验证码\n");do{back=getchar();if((back!='1')&&(back!='0')){printf("\n\t输入错误!按回车键继续...");getchar();}}while((back!='1')&&(back!='0'));if(back=='1')key=0;}else{key=0;weling =0;system("cls");printf("\n\n\t\t欢迎%s进入学生管理系统\n",username);memset(userlogin,'\0',sizeof(userlogin));strcpy(userlogin,username); //记录用户登录信息return 2;}}while(key);back=0;weling=1;break;return 2;}case '4':{setused();/*注册新管理员资料*/weling=1;break;}case '5':{weling=0;return 0;}}}return 1;}/*==================================================================== ---------------建立链表----------==================================================================== */stu*creat()/*建立链表*/{char i,j;char stu_num;stu *p1, *p2;stu *head;FILE *fp;fp=fopen(stu_msg,"w+");head=(stu*)malloc(sizeof(stu));head->next=NULL;p1=p2=(stu*)malloc(sizeof(stu));i=0,j=0;system("cls");printf("\n\n请输入要录入的学生人数: ");scanf("%d",&stu_num);for(i=0;i<stu_num;i++){system("cls");p1->average=0;printf("\n\n请输入学生学号: ");scanf("%s",p1->num);while(!cheknum(p1->num)){printf("\n\n输入格式错误!请重新输入学号: ");scanf("%s",p1->num);}printf("\n\n请输入学生姓名: ");scanf("%s",p1->name);while(!chekname(p1->name)){printf("\n\n输入格式出错!不能带数字或下划线!\n");printf("\n\n请重新输入学生姓名: ");scanf("%s",p1->name);}do{printf("\n\n请输入学生%s成绩:",sc_name[j]);scanf("%d",&p1->score[j]);while((100<p1->score[j])||(p1->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p1->score[j]);}p1->average+=p1->score[j];j++;}while(j<sc_num);j=0;p1->average=p1->average/4;if(i==0){head->next=p1; /*分清楚是head->next=p还是head=p*/p2=p1;p1->next=NULL;}else{p2->next=p1;p2=p1;p2->next=NULL; /*产生新的节点*/}fwrite(p1,sizeof(stu),1,fp);p1=(stu*)malloc(sizeof(stu));}display(head);getchar();fclose(fp);return head;}/*====================================================================检查学生学号是否符合格式,若正确,则返回1,否则返回0==================================================================== */char cheknum(char *num)/*检查学生学号是否符合格式*/{char i; /*获取字符串长度*/char j=strlen(num);for(i=0;i<j;i++){if(('0'>num[i])||('9'<num[i])){return 0;exit(1);}}return 1;}/*==================================================================== 检查学生姓名是否符合格式,若正确,则返回1,否则返回0==================================================================== */char chekname(char *name)/*检查学生姓名是否符合格式*/{char i;for(i=0;i<strlen(name);i++){/*if(('A'>name[i])||(('Z'<name[i])&&('a'>name[i]))||('z'<name[i]))/if(name[i]<18){return 0;exit(1);}*/}return 1;}/*==================================================================== 显示学生成绩情况==================================================================== */void display(stu *head)/*显示用户信息*/{stu *p1;char i=0;p1=head->next;system("cls");if(p1!=NULL){while(p1!=NULL){if(i==0){printf("姓名\t学号\t %s\t %s\t %s\t%s\t平均分\n",sc_name[0],sc_name[1],sc_name[2],sc_name[3]);i++;}printf("%s\t%s\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);p1=p1->next;}getchar();}else{printf("\t\t\t链表为空!\n\n\n请按回车键继续...\n");getchar();}}/*====================================================================插入学生信息====================================================================*/void insert(stu *head)/*增加学生信息*/{stu *p1,*p2;char j=0;p1=head->next;p2=(stu*)malloc(sizeof(stu)); /*创建新的学生信息*/p2->average=0;system("cls");printf("\n\n请输入要增加的学生学号: ");scanf("%s",p2->num);while(!cheknum(p2->num)){printf("\n\n输入格式错误!请重新输入学号: ");scanf("%s",p2->num);}printf("\n\n请输入学生的姓名: ");scanf("%s",p2->name);while(!chekname(p2->name)){printf("\n\n输入格式出错!不能带数字或下划线!\n");printf("\n\n请重新输入学生姓名: ");scanf("%s",p2->name);}do{printf("\n\n请输入学生%s成绩:",sc_name[j]);scanf("%d",&p2->score[j]);while((100<p2->score[j])||(p2->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p2->score[j]);}p2->average+=p2->score[j];j++;}while(j<sc_num);p2->average=p2->average/4;if(head->next==NULL){printf("\n原链表为空!");getchar();head->next=p2;}else{while(p1->next!=NULL)p1=p1->next;p1->next=p2;p2->next=NULL;}display(head);getchar();}/*====================================================================删除学生信息====================================================================*/stu* delname(stu*head,char *stu_name)/*根据学生姓名删除用户信息*/{stu *p1,*p2;char i,j=0;system("cls");if(head->next==NULL){printf("\n\n没有学生信息!\t操作错误!\n");return head;}p1=head->next;p2=p1;while(p1!=NULL){if(strcmp(p1->name,stu_name)==0){printf("\n\n你所删除的学生姓名为: %s\t学号为:%s\n",p1->name,p1->num);printf("\n\n确定为:y,取消为n\t:");i=getchar();while(!((i=='y')||(i=='Y')||(i=='n')||(i=='N'))){printf("\n\n输入错误!\t请重新输入:");i=getchar();}if((i=='y')||(i=='Y')){if(j==0){head->next=p1->next;/*删除头部接点*/}else{p2->next=p1->next;}printf("\n\n\t\t\t\t成功删除用户信息!\n\n\t\t\t按回车键继续...\n");free(p1);return head;}else{return head;}}j++;p2=p1;p1=p1->next;}printf("\n\n\t\t没有此用户记录信息!\n按回车键继续\n");getchar();system("cls");display(head);getchar();return head;}/*====================================================================删除学生信息(以学号为对象)====================================================================*/stu* delnum(stu *head,char *stu_num)/*根据学生学号删除用户信息*/{stu *p1,*p2;char i,j=0;system("cls");if(head->next==NULL){printf("\n\n\t\t没有存储学生信息!\n\n\t\t操作错误!\n");return head;}p1=head->next;p2=p1;while(p1->next!=NULL){if(strcmp(p1->num,stu_num)==0){printf("\n\n你所删除的学生姓名为: %s\t学号为:%s\n",p1->name,p1->num);printf("\n\n确定为:y,取消为n\t:");i=getchar();while(!((i=='y')||(i=='Y')||(i=='n')||(i=='N'))){printf("\n\n输入错误!\t请重新输入:");i=getchar();}if((i=='y')||(i=='Y')){if(j==0){head->next=p1->next;}else{p2->next=p1->next;}printf("\n\n\t\t\t\t成功删除用户信息!\n\n\t\t\t按回车键继续...\n");free(p1);return head;}elsereturn head;}p2=p1;p1=p1->next;j++;}printf("\n\n没有此用户信息!\n按回车键继续...\n");getchar();system("cls");display(head);getchar();return head;}/*====================================================================输出指定学生信息(以学生姓名为对象)====================================================================*/stu* checkname(stu *head,char *stu_name)/*输出指定学生的信息*/{stu *p1;system("cls");if(head==NULL){printf("\n\n\t\t没有存储学生信息!\t操作错误!\n");getchar();return head;}p1=head;while(p1->next!=NULL){if(strcmp(p1->name,stu_name)==0){printf("\n\n你所查找的学生信息如下\n");printf(" \n\n%s\t学号为:%s\n",p1->name,p1->num);printf("姓名\t学号\t\t %s\t %s\t %s\t%s\t平均分\n",\sc_name[0],sc_name[1],sc_name[2],sc_name[3]);printf("%s\t%s\t\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);getchar();return p1;}p1=p1->next;}printf("\n\n\t\t找不到相关用户信息!\n按回车键继续...\n");getchar();system("cls");display(head);getchar();return (stu*)NULL;}/*====================================================================输出指定学生信息(以学生学号为对象)====================================================================*/stu* checknum(stu *head,char *stu_num)/*输出指定学生学号的学生信息*/{stu *p1,*p2;p2=(stu*)malloc(sizeof(stu));system("cls");if(head==NULL){printf("\n\n\t\t没有存储学生信息!\t操作错误!\n");return head;}p1=head;while(p1->next!=NULL){if(strcmp(p1->num,stu_num)==0){printf("\n\n你所查找的学生信息如下\n");printf(" %s\t学号为:%s\n",p1->name,p1->num);printf("姓名\t学号\t\t %s\t %s\t %s\t%s\t平均分\n",\sc_name[0],sc_name[1],sc_name[2],sc_name[3]);printf("%s\t%s\t\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);getchar();return p1;}p1=p1->next;}printf("\n\n\t\t找不到相关用户信息!\n按回车键继续...\n");getchar();return (stu*)NULL;}/*====================================================================修改指定学生信息(以学生姓名为对象)====================================================================*/void changsc_name(stu *head,char *name)/*修改用户成绩*/{stu *p;char j=0;system("cls");p=checkname(head,name);if(p!=NULL){p->average=0;printf("\n\n请输入学生新的学号: ");scanf("%s",p->num);while(!cheknum(p->num)){printf("\n\n输入格式错误!请重新输入学号:\n ");scanf("%s",p->num);}do{printf("\n\n请输入学生成绩%s :",sc_name[j]);scanf("%d",&p->score[j]);while((100<p->score[j])||(p->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p->score[j]);}p->average+=p->score[j];j++;}while(j<sc_num);p->average=p->average/4;printf("\n\n\t\t用户数据更新完毕!\n请按回车键退出...\n");getchar();system("cls");display(head);getchar();}}/*==================================================================== 修改指定学生信息(以学生学号为对象)==================================================================== */void changsc_num(stu *head,char *num)/*修改用户成绩*/{stu *p2;char j=0;system("cls");p2=checknum(head,num);if(p2!=NULL){p2->average=0;printf("\n\n请输入学生姓名: ");scanf("%s",p2->name);while(!chekname(p2->name)){printf("\n\n输入格式错误!请重新输入学号: ");scanf("%s",p2->name);}do{printf("\n\n请输入学生成绩%s :",sc_name[j]);scanf("%d",&p2->score[j]);while((100<p2->score[j])||(p2->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p2->score[j]);}p2->average+=p2->score[j];j++;}while(j<sc_num);p2->average=p2->average/4;printf("\n\n\t\t用户数据更新完毕!请按回车键退出...\n");getchar();}}/*==================================================================== ==================================================================== ============================存储操作类函数========================== ==================================================================== ==================================================================== *//*==================================================================== 加载学生信息==================================================================== */stu* load(void)/*加载用户数据*/{FILE *fp;stu *p,*head,*p1;char i=0,j=0;fp=fopen(stu_msg,"r");rewind(fp);head=(stu*)malloc(sizeof(stu));p1=p=(stu *)malloc(sizeof(stu));while(fread(p,sizeof(stu),1,fp)==1){if(i==0){head->next=p;p1=p;}else{p1->next=p;p1=p;p1->next=NULL;}i++;p=(stu*)malloc(sizeof(stu));j++;}if(j==0){printf("\n\n\t\t\t没有数据信息可载入!\n");head=NULL;free(p);getchar();}fclose(fp);return head;}/*====================================================================显示学生信息====================================================================*/char disload()/*显示用户信息*/{FILE *fp;stu *p1;char i=0;p1=(stu*)malloc(sizeof(stu));if((fp=fopen(stu_msg,"r+"))==NULL)fp=fopen(stu_msg,"w+");rewind(fp);while(fread(p1,sizeof(stu),1,fp)==1){printf("%s\t%s\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);i++;//fread(p1,sizeof(stu),1,fp);}fclose(fp);if(i==0){printf("\n\t\t\t文件中不含学生信息!\n\t\t\t按回车键继续...\n");getchar();}else{printf("\n\t\t\t一共记录了%d名学生信息!\n\t\t\t按回车键继续...\n",i);getchar();}}/*==================================================================== 保存学生信息==================================================================== */char save(stu *head)/*保存用户数据*/{stu *p;FILE *fp;stu stt;char i=0;p=head->next;system("cls");clrtxt(stu_msg);fp=fopen(stu_msg,"w");rewind(fp);//if(head->next!=NULL){while(p!=NULL){fwrite(p,sizeof(stu),1,fp);p=p->next;i++;}if(i==0){printf("没有保存数据!\n");getchar();fclose(fp);return 0;}else{fclose(fp);return 1;}}else{fclose(fp);return 0;}fclose(fp);return 0;}/*==================================================================== 创建文本信息==================================================================== */char* creat_txt(char *username)/*根据用户名,创建一个用户文件*/{char name[20];FILE *fp;strcpy(name,"d:\\");strcat(name,username);strcat(name,".txt");fp=fopen(name,"w+");system("cls");if(fp!=NULL){//printf("\n\n文件路径为:%s\n\n",name);//printf("\n\n\t\t用户文件创建成功!\n\n\t\t请按回车键继续...\n");//getchar();fclose(fp);return name;}else{printf("\n\n\t\t无法创建用户文件!\n\n\t\t请按回车键继续...\n");getchar();fclose(fp);return name;}}/*====================================================================清除文本信息====================================================================*/FILE* chekuser(char *username)/*根据用户名,查找是否有此用户信息,若无,返回NULL*/ {}/*====================================================================清除文本信息====================================================================*/void clrtxt(char *str)/*清除文本信息*/{char clrmem[10];char semem[40];FILE *fp;int i=0,j=0;if((fp=fopen(str,"r"))==NULL){printf("\n\t无此文件!");getchar();}else{fclose(fp);fp=fopen(str,"w");memset(clrmem,'\0',sizeof(clrmem));rewind(fp);for(i=0;i<40;i++){if(fwrite(clrmem,sizeof(clrmem),1,fp)!=1){if(j==0){printf("\n\n\t\t文件清除失败!\n\n\t\t请按回车键继续...\n");getchar();break;}else{//printf("\n\n\t\t文件清除成功!\n\n\t\t请按回车键继续...\n");//getchar();break;}}elsej++;}fclose(fp);}}/*====================================================================用户登录信息====================================================================*/void setlogintime(void)/*记录用户登录时间*/{FILE *fp;int y,m,d,hour,min,sec;time_t T; // 一个可以包含时间信息的长整型struct tm *timeinfo;time( &T ); // 得到机器的日历时间if((fp=fopen(logtimemsg,"a+"))==NULL){fp=fopen(logtimemsg,"w");}time( &T ); // 得到机器的日历时间timeinfo = localtime( &T ); // 将日历时间转换为当地时间,timeinfo 是一个时间格式的指针y=timeinfo->tm_year + 1900; // 年份m=timeinfo->tm_mon + 1; // 月份d=timeinfo->tm_mday; // 日期hour=timeinfo->tm_hour;min=timeinfo->tm_min;sec=timeinfo->tm_sec;fwrite(userlogin,sizeof(userlogin),1,fp);fwrite(timeinfo,sizeof(struct tm),1,fp);//写入用户登陆信息printf("\n\n\n\t\t登陆时间为:\n\t\t%d年%d月%d日%d时%d分%d秒\n\n\n", y, m, d,hour,min,sec);fclose(fp);}/*====================================================================用户登录信息====================================================================*/void dislogintime(void)/*显示用户登录信息*/{FILE *fp;int y,m,d,hour,min,sec;struct tm *timeinfo;char name[10];int i=0;timeinfo=(struct tm*)malloc(sizeof(struct tm));fp=fopen(logtimemsg,"r+");if(fp==NULL){printf("\n\n\t\t找不到文件信息!\n\n\t\t按回车键继续...\n");getchar();}else{memset(name,'\0',sizeof(name));while(fread(name,sizeof(name),1,fp)==1){fread(timeinfo,sizeof(struct tm),1,fp);y=timeinfo->tm_year + 1900; // 年份insm=timeinfo->tm_mon + 1; // 月份d=timeinfo->tm_mday; // 日期hour=timeinfo->tm_hour;min=timeinfo->tm_min;sec=timeinfo->tm_sec;i++;printf("\n\t第%d次登陆时间为:%d年%d月%d日%d时%d分%d秒\t%s用户登录",i,y, m, d,hour,min,sec,name);memset(name,'\0',sizeof(name));}if(i==0)printf("\n没有记录用户登录时间!\n");getchar();free(timeinfo);fclose(fp);}}/*====================================================================用户登录信息====================================================================*/。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

教务管理系统课程设计报告文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]教务综合管理系统设计报告专业:软件工程成员:车振军陆建伟徐蕾杨思倩指导老师:徐明日期:2016-6-15一、引言目的为了保证项目小组能够按时完成小组任务及目标,便于项目小组成员更好地了解项目情况,使项目小组开展的各个过程合理有序,因此确定各个项目模块的开发情况和主要的负责人,供各项目模块的负责人阅读,做到及时协调,按步有序进行项目的开发,减少开发中的不必要损失。

预期的读者是设计人员、开发人员、项目管理人员、测试人员和用户。

背景高校教务管理工作是高等教育中的一个极为重要的环节,是整个院校管理的核心和基础。

面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,随着计算机及通讯技术的飞速发展,高等教育对教务管理工作提出了更高的要求。

尽快改变传统的管理模式,运用现代化手段进行科学管理,已经成为整个教育系统亟待解决的课题之一。

教务管理系统是一个大型复杂的计算机网络信息系统,满足各类高校现在和将来对信息资源采集、存储、处理、组织、管理和利用的需求,实现信息资源的高度集成与共享,实现信息资源的集中管理和统一调度。

为各级决策管理部门提出准确、及时的相关信息和快捷、方便、科学的决策分析处理系统;为信息交流、教务管理提供一个高效快捷的电子化手段;最终达到进一步提高各级领导科学决策水平,提高各院系、各部门管理人员管理水平与办公效率,减轻工作负担的目的。

教务管理系统面向管理员、教师和全校学生,实现学生管理、教师管理、课程管理、成绩处理。

定义MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

MyEclipseMyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。

MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。

二、需求分析功能需求系统目标通过本系统可以帮助教务处管理人员利用计算机快速方便的对学生信息以及对于教师信息、课程信息、成绩处理等进行管理,使散乱的信息能够具体化、直观化、合理化、简单化。

处理范围管理员通过用户名与密码登录。

一旦通过系统授予特权,可以对学生、教师、课程进行增删改查,成绩进行汇总以及排名的处理。

教师登录之后,能够进行课程的处理,以及教师信息的查询,成绩录入模块后续开放。

学生登录后,可以进行选课,成绩信息查询,以及向管理员留言。

系统功能性能需求(1)快速响应:软件响应时间,更新处理时间,要求尽可能的快;同样要求查询信息和成绩响应的结果尽可能的快。

(2)适应性强:对常用的操作系统、浏览器,可以不加修改直接使用;需借助其他软件进行操作的部分,用提供稳定的多余一种的与其他软件的接口;当数据的精度、结构与其他软件接口发生变化时,要求软件适应性强,灵活性大。

当软件出现运行错误时,应有明确的提示,并尽可能的挽救用户已输入的数据。

最后,系统硬件提供定期的数据备份功能。

(3)可扩充性:当使用到一定阶段时,数据和功能提供升级和更新。

(4)可靠度高:在各项数据的输入,输出及传输过程中要求保持数据的准确,当系统发生故障时,处理系统能及时备份数据库,避免数据流失(5)友好的用户界面及操作的灵活性:系统提供浏览器界面,便于用户实现各种查询、发送操作。

在系统操作工程中体现简单、方便、灵活的特点。

为确认信息的传送双方在系统中传送信息的可靠性及安全性,采用认证方法,将信息及时反馈给用户,这样预防了信息的丢失及错发现象。

环境需求软件开发环境:MyEclipse数据库服务器:MySQL客户端运行:windows 操作系统三、系统设计数据结构综合可行性研究和需求分析,得出教务管理系统的实体类、边界类和控制类。

教务管理系统的实体类有课程表、管理员、学生、教师、成绩表和留言表(教学质量评价表),下图为教务管理系统实体类图:教务管理系统实体类图过程描述教务管理系统分为管理员模块、教师模块和学生模块,有添加课表、查询课表、查询成绩、设置用户等用例,为更形象的表现各用例的实现过程,建立以下时序图:(1)管理员、教师和学生都可以进行查询信息的操作,查询过程类似,首先输入自己的用户名和密码登入系统,点击相应的查询按钮。

对于查询学生信息,选择学号可以准确的查到学生的信息,选择专业、班级能够显示相对应的学生信息。

(图-学生信息查询)学生信息查询(2)管理员可以汇总成绩,操作过程为:登录——>点击“成绩处理”按钮——>成绩汇总管理员汇总成绩(3)管理员进行录入课表的操作,登录成功后,选择“课程管理”按钮,根据系统所给表格,填入各节课程,保存后完成录入课表操作。

管理员录入课程(4)设置用户由管理员来操作,可以注册用户、修改用户信息和删除用户信息。

注册用户就是运用sql语句中的insertinto在数据库中插入信息;修改信息运用update对数据库进行操作;delete为删除用户信息。

管理员设置用户(5)用户有两种状态,未注册和已注册,状态图如下:(6)课表的两种状态,未录入和已录入。

(7)录入成绩由教师来操作,教师根据科目、学生学号来录入成绩。

录入成绩时序图软件体系结构教务管理系统组件图:教务管理组件图图形用户接口界面登陆界面管理员管理学生界面__四、各模块设计学生类详细设计属性设计学生类包含学生的各种信息,如姓名、班级、密码等,详情如下:名称说明长度类型描述Sid学号10Varchar学生唯一标识sname姓名20Varchar学生信息smajor专业20Varchar学生信息sclass班级30Varchar学生信息tcredit总学分Double学生信息Double学生信息acredit平均学分绩点Double学生信息egrade最终至于成绩major专业排名Int学生信息方法设计1、从用户界面获取学生输入信息,传递到类。

然后student_slt对获取的信息进行处理。

最后通过studentDao传入数据库。

2、mysql_query()函数执行一条MySQL查询,参数为query即要发送的sql查询。

学生要进行留言,使用查询语句"selectdistinctfromsreport,course,term,student,evaluatewhere='".$sno." 'and=and=and=and=and=",将成绩表、学生表、课程表、留言表连结。

3、form表单处理,超全局变量$_GET和$_POST用于收集表单数据。

学生可以修改自己的密码,输入原密码和新密码。

通过修改数据库中的用户名和密码。

教师类详细设计属性设计教师类包含教师的各种信息,如姓名、班级、密码等,详情如下:方法设计方法基本与学生表相同课程类详细设计属性设计课程的属性有课程号、课程名称和学分。

用户类详细设计属性设计方法设计管理员可以修改自己的密码,方法同学生修改密码,管理员还可以查询信息:学生成绩、教学质量评价和课程,方法如下:1、查询成绩运用form表单和sql语句查出后,用tr标签将变量显示出来。

管理员查询成绩时可以按学号查也可以按学期查,有两个提交按钮,分别为submit2和submit,按学号查询,调用函数跳转到查询出个人成绩页面;点击submit即按学期查询,调用函数跳转到查询出全体成绩页面。

2、实现注册新生时,点击“注册新生”按钮,链接到学生注册页面。

因为有以及提交按钮,所以也是使用form表单来完成,只是要修改sql语句为"insertintostudentvalues('".$sno."','".$sname."','".$scode."')"。

留言类详细设计属性设计留言表是为学生对教师进行评价而设置的,学生通过对课程的评价从而实现了对教师的评价,因为课程是由各个教师所教学的,所有教学质量难免有所不同。

学生查询课程类详细设计属性设计教师查询课程类详细设计属性设计五、数据库设计概念设计教务管理系统中涉及的实体类有:管理员、教师、学生、课程、教学质量评价、成绩,详细的类的属性和方法见下图:(1)管理员这个类的属性有用户名和密码,类的方法有增删改查课表、增删改查学生信息和教师信息、删改查成绩、查询学生留言。

(2)教师类的属性有用户名、姓名、密码和工号。

(3)学生类的属性有学号、密码、姓名和班级,方法有查询成绩、查询课表和进行留言。

(4)课程类属性有课程号和课程名称。

(5)留言表有学号、姓名、时间和课程号三个属性。

(6)成绩类图有属性:记录号、课程号、学期号、学号和成绩。

逻辑设计本节描述数据库中关系表、主外键及各表的联系。

对于教务管理系统,要实现的功能有录入学生基本信息、录入教师基本信息、录入课表、查询成绩、查询课表、学生留言;还有管理员可以对部分信息进行修改和删除操作。

所以所涉及的表有7个分别为user表、course表、record表、sc表、student表、teacher表、tc表,以下分别对各个表进行详细解释。

user表保存管理员的信息,管理员的属性有ID、密码、姓名和类型。

表间关系:1、User表与record表相关联,是一对多的关系,管理员可以操作多条record记录。

2、user表与student表相关联,是一对多的关系,管理员可以增删改查学生。

3、user表与course相关联,是多对多的关系,一门课可以由多个管理员录入,一个管理员也可以录入多门课。

4、user表与teacher表项关联,是一对多的关系,一个管理员可以增删改查多个教师。

Student表保存学生的信息,主要有学号、姓名、班级、成绩绩点、学分等。

1、Student表与user表相关联2、student表与sc表相关联,多对多的关系,一个学生有多门课,一门课也有多个学生。

Teacher表保存了教师的信息,主要有工号、姓名、密码。

1、teacher表与tc表有关联,是多对多的关系,一个教师可以开设多个课程,一个课程也可以由多个教师开设。

相关文档
最新文档