包括学生登陆、学生选课、删除选课、按院系/名称查找选课、个人信息修改,教师登陆、新增课程、选课查询、个人信息管理等功能。
学生选课管理系统分为三端:学生端,教师端和管理员端,管理员端:管理员可以查看学生,教师,班级,选课列表,并对学生,教师,班级信息进行增删改查。
学生选课管理系统简介
学生管理系统功能毕竟太过宽泛,也难以在短时间内完成。所以为了能够按时有效地完成系统的设计与调试,我们小组选择了学生管理系统的一个方面——学生选课系统来进行设计完成。
从学生选课系统的需求分析到数据库的设计,包括逻辑设计、物理设计等,在到最后的实现与维护一一呈现出来,包括最初的设计理念,数据库具体觉得建立以及数据的输入、管理及更新。包括实现学生选课功能、教师录入成绩功能,管理员对数据库信息的增删改查功能一应俱全。
create table student(S_no char(9), S_name char(20), S_sex char(2), S_age int, S_department char(20))
create table course (C_no char(10), C_name char(20), C_teacher char(20) )
create table choice(S_no char(9), C_no char(10), S_score int)
insert into student(S_no, S_name, S_sex, S_age, S_department)
values('001', '李志强', '男', 20, '计算机系' )
insert into student(S_no, S_name, S_sex, S_age, S_department)
values('002', '张 亮', '男', 21 '建筑工程系' )
insert into student(S_no, S_name, S_sex, S_age, S_department)
values('003', '李 平', '女', 19 '计算机系' )
insert into course(C_no, C_name, C_teacher )
values('C001', 'C语言', '王雅新' )
insert into course(C_no, C_name, C_teacher )
values('C002', '数据结构', '和海莲' )
insert into course(C_no, C_name, C_teacher )
values('C003', 'SQL Server2000', '陈 红' )
insert into choice(S_no, C_no, S_score)
values('001', 'C001', 83)
insert into choice(S_no, C_no, S_score)
values('001', 'C002', 80 )
insert into choice(S_no, C_no, S_score)
values('002', 'C001', 75)
insert into choice(S_no, C_no, S_score)
values('002', 'C004', 85)
insert into choice(S_no, C_no, S_score)
values('003', 'C002', 88)
insert into choice(S_no, C_no, S_score)
values('003', 'C003', 86)
用LINQ(语言集成查询)完成你说的这些任务很方便,具体的细节问题还得你自己做。下面举出两个例子供你参考,这两个例子用数组代替数据库,对数据库也可用同样的方法。
例1,用bool值作关键字区分两组的结果,注意group子句中的表达式产生的结果。
public class Student
{
public string Name { get; set; }
public int ID { get; set; }
public List<int> Scores;
}
public static List<Student> GetStudents()
{
//实例化数据源,注意各成员内部成绩序列的初始化
List<Student> students = new List<Student>
{
new Student {Name="张勇", ID=1, Scores= new List<int> {97, 72, 81, 60}},
new Student {Name="王磊", ID=2 Scores= new List<int> {75, 84, 91, 39}},
new Student {Name="孙敏", ID=3, Scores= new List<int> {88, 94, 65, 85}},
new Student {Name="刘晓", ID=4, Scores= new List<int> {97, 89, 85, 82}},
new Student {Name="扬帆", ID=5, Scores= new List<int> {35, 72, 91, 70}}
};
return students;
}
static void Main()
{
List<Student> students = GetStudents();
//用true或false分组,查询变量是IEnumerable<IGrouping<bool, Student>>类型
var booleanGroupQuery = from student in students
group student by studentScoresAverage() >= 80;
foreach (var studentGroup in booleanGroupQuery)
{
ConsoleWriteLine(studentGroupKey == true "平均分高于80" : "平均分低于80");
foreach (var student in studentGroup)
ConsoleWriteLine("{0,4} {1} {2}", studentID, studentName, studentScoresAverage());
}
}
输出:
平均分低于80
1 张勇 775
2 王磊 7225
5 扬帆 67
平均分高于80
3 孙敏 83
4 刘晓 8825
例2,查询人名先排序再分组,可以用姓作为分组关键字。
string[] Name = {"张明","刘新","王宏","刘洋","张媛","张宝","王金贵","刘东","王凯","刘芳"};
var sortedGroups = from name in Name
orderby name
group name by name[0] into newGroup
select newGroup;
foreach (var nameGroup in sortedGroups)
{
ConsoleWriteLine(nameGroupKey);
foreach (var name in nameGroup)
ConsoleWriteLine(" "+name);
}
输出:
刘
刘东 刘芳 刘新 刘洋
王
王宏 王金贵 王凯
张
张宝 张明 张媛
输出结果按姓分类,组内排序。
《C#编程指南》(清华大学出版社2011年1月出版,可网购)第5章和第17章专门讨论LINQ查询更新数据库。
select 学生信息表学号,学生信息表姓名 from 学生信息表,课程信息表,成绩表
where 课程信息表名称 = '数据库' and 成绩表成绩>=60
and 学生信息表学号 = 成绩表学号 and 成绩表课程代码 = 课程信息表课程代码
//自己把中文替换成英文字段名 我用的sql server数据库
select 学号、姓名、性别、年龄、所在系 from 学生 order by 年龄 desc, 学号 asc
select 学号,姓名 from 学生 where 姓名 in( select 姓名 from 学生 group by 姓名 having count()>1 )
update 成绩 set 成绩=0 where CNO=1
如果/不是除法的话 只是字符串 (除法暂时有问题)下班了 明天再来写
select C课程号,D课程名,D成绩 from COURSE C,(
select CONVERT(VARCHAR(50),A排名)+'/'+CONVERT(VARCHAR(50),BZS) as '排名/人数',a学号,a课程名,a成绩 FROM (
select ROW_NUMBER() over(partition BY 课程名 order by 成绩 desc) as 排名 , from GRADE where 学号='1') A,
(SELECT COUNT() as zs,课程名
FROM GRADE group by 课程名 ) B where a课程名=b课程名) D WHERE C课程名=D课程名
是不是有两张表的,学生信息表和学校的分院表 什么的,
你给点表的内容啊,如表一studentMessage studentId 学生学号,name 学生姓名,Id 分院编号 表二,选课表 Id 选课编号 name选课名 。。。。。
建议用 子查询 或 两表连接(inner join on)
select 学生姓名=name,
所在系=,所在系=(select Id from 表名 where 条件)
from studentMessage
或
select 学生姓名=name,
所在系=
from studentMessage
where 系Id not in(或in) (select 系name from 系表 where studentMessage系Id=系表系Id )
。。。有点乱不知道看懂没,
--创建教师信息表
create table 教师信息(
教师编号 int,
教师姓名 varchar(50),
性别 char(2),
年龄 int,
学历 varchar(20),
职称 varchar(30)
毕业院校 varchar(50),
健康状况 varchar(20)
);
--学生信息表
create table 学生信息(
学号 int,
姓名 varchar(50),
所属院系 varchar(20),
已选课情况 vharchar(50)
);
--教室信息表
create table 教室信息(
可容纳人数 int,
空闲时间 datetime
);
--选课信息表
create table 选课信息(
课程编号 int,
课程名称 varchar(50),
任课教师 varchar(20),
选课的学生情况 varchar(50)
);
--成绩信息
create table 成绩信息(
课程编号 int,
课程名称 varchar(50),
学分 int,
成绩 int
);
-----------------------------
1select from 教师信息
where 职称='讲师' and 出生时间>'1970-01-01'
2select from 教室信息
where 空闲时间='周五' and 可容纳人数>'200'
3select sum(学分) from 成绩信息 a,选课信息 b,学生信息 c
where a已选课情况=b选课的学生情况 and b课程编号=a课程编号
4select count() from 学生信息 a,选课信息 b
where a已选课情况=b选课的学生情况 and 课程名称='数据库' and 所属院系='计算机系'
1) select 课程号, 课程名称 from 课程表 where 教师姓名='李老师'
2) select 学号, 姓名 from 学生表 where (性别='女') and (年龄>23)
3) select 课程名称 from 课程表 where 课程号 in (select 选课表课程号 from 选课表,学生表 where (选课表学号=学生表学号) and (学生表姓名='李小波'))
4) select 姓名, 所在系 from 学生表 where 学号 in (select distinct 学号from 选课表 where 成绩 >= 80)
5) select distinct 学生表学号, 姓名 from 学生表, 选课表, 课程表 where (选课表学号=学生表学号) and (选课表课程号=课程表课程号) and (课程名称 <>' *** 作系统')
6)至少选修两门以上课程的学生姓名、性别。 select [姓名], [性别] from [学生表] where [学号] in (SELECT [学号] FROM [选课表] group by [学号] having count([学号])>1)
7) select count(学号) from 选课表, 课程表 where (选课表课程号=课程表课程号) and (教师姓名='李老师')
8) select distinct 学生表学号, 学生表姓名 from 学生表, 选课表, 课程表 where (选课表学号=学生表学号) and (选课表课程号=课程表课程号) and (教师姓名<>'李老师')
9) select top 1 学生表学号, 姓名, 所在系 from 学生表, 选课表, 课程表 where (选课表学号=学生表学号) and (选课表课程号=课程表课程号) and (课程名称 = ' *** 作系统) order by 成绩 desc
以上就是关于学生选课管理系统的表由什么组成全部的内容,包括:学生选课管理系统的表由什么组成、1.在学生数据库中有三张数据表,即学生表、课程表和选课表,三张表的表数据如下,写出创建学生表、课程、给定数据库中,包括“学生表”,“课程表”,“选课表”等三个数据表,表结构如下: 学生表:学号(C,6),姓等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)