谁可以帮忙做下这个题目呀 数据库课程设计

谁可以帮忙做下这个题目呀 数据库课程设计,第1张

数据库课程设计报告

计网0831数据库课程设计

1、数据的导入和导出今天是数据库实习的第一天,对于我们来说数据库虽然是今年刚刚学过的课程,但是我们已经考试完一段时间了,所以也很久没有翻书本了,很多知识在刚刚做的时候还是很陌生的,不得不翻一下书本,下面就是在第一天实习中所产生的问题报告和分析结果。

在做实训前,老师先给我们讲了数据库如何导入EXCL表,在老师的指导下我们学会了,为创建表提供了方便。

首先我们是建立了一个新的KCSJ数据库,建立的数据语句如下:

用SQL语句在D:\KCSJ下创建课程设计数据库(KCSJ)

(一)CREATE DATABASE KCSJ

ON

(NAME=KCSJ_DATA,

FILENAME='D:\KCSJ_DATA.MDF')

LOG ON

(NAME=KCSJ_LOG,

FILENAME='D:\KCSJ_LOG.LDF')

将KCSJ.XLS文件中的数据导入KCSJ数据库中。导入后在数据库中将生成以下五个基本表:

学生(学号,姓名,性别,年龄,入学成绩,班级,籍贯)

成绩(学号,课程号,成绩)

课程(课程号,课程名,教师名)

三角形(a,b,c,s)

回文数(A1,A2)

其中:a>学生、成绩、课程、三角形、回文数是表的名字。

b>学号、姓名、性别、班级、籍贯、课程名和教师名为字符型,长度分别为10 、10、2、6、8、20、10;

c>入学成绩为整型。

d>年龄、课程号和成绩为整型或微整型。

e>A1为整型;A2为字符型,长度为2。

f>a、b、c为float类型,代表三角形的三边,s为float类型,代表三角形的面积。

在导入数据库中KCSJ.XLS文件的数据导入的时候是在所有任务--导入数据—数据源为excel97-2000- 文件位置—导入表中的数据—修改类型和长度 最后确定。

用企业管理器创建数据库(JW0831),将KCSJ数据库中的五个表导入该数据库中。

打开所有任务 导入数据源 选择KSCJ 数据库 下一步 再选择jw0831数据库 选择所有 确定 就可以将KCSJ数据库中的五个表导入该数据库中。

简单的结构化查询

--(1)查询学生的详细记录

select*from 学生

--(2)查询学生表中前两个班级(班级名称不能重复)

select top 2 班级 from 学生

group by 班级

在做本题的时候,由于想的比较复杂,外加题意有点模糊,所以转了很大一个圈,并在老师的侧外指导下通过group by分组才把本题做了出来。

--(3)显示把 成绩表中各科学生的成绩加 20 分后的信息

select*from 成绩

where 成绩='成绩'+20

在做本题的时候,由于题意理解错误,所以我先用updata语句来进行更新,但是在做到其它题的时候,听到老师在指导其它同学的时候,把题意一说,我才恍然大悟,自己的方向又错了。然后又重新思考,接着就做出了上面的答案。

--(4)查询来自逗宁波地 学生的学号、姓名、籍贯

select 学号,姓名,籍贯 from 学生

where 籍贯='宁波'

--(5)查询选修4号课程且考试成绩在70分以上的学生的学号以及所选修的课程号和成绩,显示前3条结果记录

select top 3*from 成绩

where 成绩>=70 and 课程号='4'

--(6)查询入学成绩在 300-400 分之内的学生的详细情况,并按入学成绩降序排序 ( 用两种方法完成 )

select * from 学生

where 300<入学成绩 and 入学成绩<400 order by 入学成绩 desc

select * from 学生

where 入学成绩 between 300 and 400 order by 入学成绩 desc

--(7)统计学生表中的学生人数

select count(*)from 学生

对于今天的题目做的多了,忽然发现很多题的类型都差不多,都是运用基本的书本知识,然后融会贯通,举一反三,然后不费吹灰之力就做出来了,我说的不费吹灰之力是简单的,但是有些还是费了好大一番功夫的。

--(8)查询学生表中姓李,姓名列包含两个字的学生的基本情况

select * from 学生

where 姓名 like '李_'

--(9)查询名字中第 2 个字为‘北'的学生的基本信息

select * from 学生

where 姓名 like '_北%

在做这几道题的时候,我解决了并也明白了—和%得区别和用途

--(10)查询选修 4 号课程,成绩在 80-90 分之间的学生学号和成绩

select*from 成绩

where 80<=成绩 and 成绩<90 and 课程号='4'

--(11)查询 JW0831 班和 JW0551 班学生的姓名、性别及班级(用谓词查询 in )

select 姓名,性别,班级 from 学生 where 班级 in('JW0831','JW0551')

group by 姓名,性别,班级

对于本道题拿到的时候,还是愣了一下的,因为我忽然不知道什么是,对于用谓词查询 in,自己不会用,在翻书翻了一遍并且询问了同学才发现如何去用它。

--(12)查询缺少成绩的学生的学号和相应的课程号

select 学号,课程号 from 成绩

where 成绩 is NULL

--(13)统计选修了4号课程学生人数

SELECT COUNT(*)AS'人数' FROM 成绩 where 课程号='4'

--(14)查询JW0831班家在河北学生的学号、姓名、性别

select 学号,姓名,性别 from 学生

where 籍贯='河北'and 班级='JW0831'

--(15)检索刘志生老师所授课程的课程号和课程名。

select 课程号,课程名 from 课程

where 教师名='刘志生'

---(16)检索年龄大于23岁的男学生的学号和姓名。

select 学号,姓名 from 学生

where 性别='男' and 年龄>23

--(17)查询学生表中姓李的学生的基本情况

select *from 学生

where 姓名 like '李%'

--(18) 统计学生表中所有学生逗入学成绩地的平均分、最高分、最低分

select AVG(入学成绩) as'平均成绩',max(入学成绩) as'最高分',min(入学成绩) as'最低分'from 学生

--(19)查询选修了1号或者3号课程,成绩及格的学生的学号和成绩

select 学号,成绩 from 成绩

where 成绩>=60 and 课程号 in (1,3)

--(20)统计学生表中所有男女生人数

SELECT 性别, COUNT(性别)AS'人数' FROM 学生

group by 性别

对于今天的题除了自己不太熟悉课本知识和同学讨论出来的那些分析外,对于其他的题已经没有什么问题了,因为我把今天的题做完之后,把报告写完的同时,对于明天的题我也进行了一番思考,并且还帮助其他同学解决了一些不会的问题。

星期二 天气 冷 心情 good

3、复杂的结构化查询

--(1)检索至少选修刘志生老师所授课程中一门课程的女学生姓名。

select 学生.学号,姓名,性别,课程.课程号 from 学生,成绩,课程

where 性别='女' and 课程.课程号 in(select 课程号 from 课程 where 教师名='刘志生')and 学生.学号=成绩.学号

and 课程.课程号=成绩.课程号

对于今天的课程设计不是像昨天一样那么简单了,简直是提高了一个很大的层次,简直是一步三晃啊!不容易啊!就像本题一样,在查询的时候要用一个子查询和三个条件才能把它做出来!

--(2)检索吴计算同学不学的课程的课程号。

select 课程号 from 课程 where 课程号 not in(select 成绩.课程号 from 成绩,学生where 姓名='吴计算' and 成绩.学号=学生.学号)

在本题中,用的方法还真是一波三折啊!因为如果要查不学的课程,要先查出他学的课程,然后再排掉学过的!充分运用了not in这个语法

--(3)检索至少选修四门课程的学生学号。

select 学号, count(成绩.学号)as '门数' from 成绩,课程 where 成绩.课程号=课程.课程号

group by 成绩.学号

having count(成绩.学号)>=4

对于本题的用的是count做统计这个数据语句,外加可以用在group by 语句后的having条件语句。通过本题的联系,可以很好的运用count 和having语句

--(4)检索全部学生都选修的课程的课程号与课程名。

select 课程.课程名 ,课程.课程号 from 成绩,课程

where 成绩.课程号=课程.课程号

group by 课程.课程名,课程.课程号

having count(成绩.学号) in (select count(学生.学号)from 学生)

--(5)检索选修课程包含刘志生老师所授课的学生学号。

select 学号 from 成绩,课程

where 教师名='刘志生'and 成绩.课程号=课程.课程号

--(6)统计有学生选修的课程门数。

select 学号, count(成绩.学号)as '门数' from 成绩,课程 where 成绩.课程号=课程.课程号

group by 成绩.学号

--(7)求选修4号课程的学生的平均年龄。

select AVG(年龄)as'平均年龄',成绩.课程号 from 学生,成绩

where 课程号='4' and 学生.学号=成绩.学号

group by 成绩.课程号

--(8)求刘志生老师所授课程的每门课程的学生平均成绩。

select avg(成绩.成绩)as'平均成绩',课程.课程号 from 成绩,课程

where 教师名='刘志生' and 成绩.课程号=课程.课程号

group by 课程.课程号

--(9)统计每门课程的学生选修人数(超过6人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

select 成绩.课程号, count(成绩.学号)as '人数' from 成绩,课程

where 成绩.课程号=课程.课程号

group by 成绩.课程号

having count(成绩.学号)>=6

order by count(成绩.学号) asc

--(10)检索学号比陆力利同学大,而年龄比他小的学生姓名。

select 学号,姓名 from 学生

where 学号>(select 学号 from 学生 where 姓名='陆力利') and 年龄<(select 年龄 from 学生 where 姓名='陆力利'

--(11)求年龄大于女同学平均年龄的男学生姓名和年龄。

select 姓名,年龄 from 学生

where 性别='男'and 年龄>(select avg(年龄)as'平均年龄'from 学生 where 性别='女')

--(12)统计学生人数超过 5人的班级名称和对应的人数

select 班级,count(学生.学号)as '人数'from 学生

group by 班级

having count(学生.学号)>=5

--(13)检索课程号和选修人数,查询结果按人数升序排列,若人数相同,按课程号降序排列。

select 成绩.课程号, count(成绩.学号)as '人数' from 成绩,课程

where 成绩.课程号=课程.课程号

group by 成绩.课程号

order by count(成绩.学号) asc,成绩.课程号 desc

这道题运用很多知识点,不但用了count 统计 还用了 group by 分组 外加排序

--(14)查询选修课程学生的学号、姓名、所选课程号、取得的成绩

select 学生.学号,学生.姓名,成绩.课程号,成绩.成绩 from 学生,成绩

where 学生.学号=成绩.学号

--(15)查询学生的学号、课程号和成绩等级

select 学号,课程号,成绩,(

CASE

WHEN 成绩>=90 and 成绩<=100 THEN 'A'

WHEN 成绩>=80 and 成绩<90 THEN 'B'

WHEN 成绩>=70 and 成绩<80 THEN 'C'

WHEN 成绩>=60 and 成绩<70 THEN 'D'

ELSE 'E'

END ) as 等级

from 成绩

本题运用了一个新的知识点,这个知识点是在老师的ppt课件上找到的,利用这个语句何以很好很方便的为管理系统中的成绩分等级,所以在本体中一定要记住本语句的语法如:case when……andthen ……else end

今天小结,通过今天一天的课程设计,我觉得我收获了很多,因为它让我以前学的不太好的知识点全部都巩固了一遍,尤其是成绩、课程、学生这些表与表的链接,每次不是这里连不上就是那里连不上,但是现在不但可以连上了,还可以帮助其他同学检查出来错误,真是一笔不小的收获,虽然今天做的题比较难,但是每一次在自己的努力下做出来都会有不小的成就感……

3、复杂的结构化查询

星期三 天气 冷 心情 good

外面飘着雪花,美好的一天又已经开始了!实习已经到了一半,离回家的日子也近了很多,所以心情也是越实习越好了!今天的工作当然也完成的比较顺利!虽然有的还挺难的!但是相信自己一定就会成功!嘿嘿……看看自己的劳动成果就知道了!

3、复杂的结构化查询

--(16)查询选修了英语的学生的姓名和成绩

select 学生.姓名,成绩.成绩 from 成绩,学生,课程

where 课程.课程名='英语'and 学生.学号=成绩.学号 and 课程.课程号=成绩.课程号

group by 学生.姓名,成绩.成绩

--(17)分别统计每个班级的男女人数(要求显示出班级、性别、对应的人数)

SELECT 班级, 性别, COUNT(性别)AS'人数' FROM 学生

group by 班级,性别

--(18)求年龄大于所有女同学年龄的男学生姓名和年龄。

select 姓名,年龄 from 学生

where 性别='男'and 年龄>(select max(年龄) from 学生 where 性别='女')

group by 姓名,年龄

--(19)计算选修了1号课程的学生的平均成绩(要求显示出课程号和对应的平均成绩)

select 课程号,avg(成绩)as'平均成绩'from 成绩

where 课程号='1'

group by 课程号

--(20)查询选修课程学生的学号、姓名、所选课程名、取得的成绩

select 学生.学号,姓名,课程.课程名,成绩.成绩 from 学生,成绩,课程

where 学生.学号=成绩.学号 and 课程.课程号=成绩.课程号

--(21)查询学生的学号、姓名、性别及所选修各门课程的成绩(要求每位学生用一个数据行显示这些信息)

SELECT 学生.学号, 学生.姓名,学生.性别,

(select 成绩 from 成绩 where 课程号='1' and 学生.学号=学号) as '数学',

(select 成绩 from 成绩 where 课程号='2' and 学生.学号=学号) as '英语',

(select 成绩 from 成绩 where 课程号='3' and 学生.学号=学号) as '计算机基础',

(select 成绩 from 成绩 where 课程号='4' and 学生.学号=学号) as '数据库',

(select 成绩 from 成绩 where 课程号='5' and 学生.学号=学号) as '政治',

(select 成绩 from 成绩 where 课程号='6' and 学生.学号=学号) as '体育'

FROM 学生 INNER JOIN 成绩 ON 学生.学号=成绩.学号

GROUP BY 学生.学号, 学生.姓名,学生.性别

--(22)查询李路路所学的课程名和对应的成绩,并按照成绩升序排列。

select 姓名,课程名,成绩 from 学生,课程,成绩

where 姓名='李路路'and 课程.课程号=成绩.课程号 and 学生.学号=成绩.学号

order by 成绩

--(23)查询平均成绩大于 75 分的课程,要求显示课程名和平均成绩。

select 课程名,avg(成绩)as'平均成绩' from 课程,成绩

where 课程.课程号=成绩.课程号

group by 课程名

having avg(成绩)>=75

--(24)查询所选课程平均成绩前三名的那些学生的姓名和平均成绩。

select top 3 学生.学号,姓名,avg(成绩.成绩)as'平均成绩'from 成绩,学生 where 学生.学号=成绩.学号 group by 学生.学号,姓名 order by avg(成绩.成绩) desc

--(25)查询和李工业在同一个班级的学号和姓名

select 学号,姓名 from 学生

where 班级 in (select 班级 from 学生 where 姓名='李工业')

--(26)查询JW0831班中入学成绩比李里高的学生的姓名

select 姓名 from 学生

where 班级='JW0831' and 入学成绩>(select 入学成绩 from 学生 where 姓名='李里')

--(27)在学生表中查询高于入学成绩平均分的学生学号、姓名、班级、入学成绩

select 学号,姓名,班级,入学成绩 from 学生

where 入学成绩>(select avg(入学成绩)as'平均成绩'from 学生)

--(28)查询没有选修课程的学生的学号和姓名

select 学生.学号,学生.姓名 from 学生

where 学号 not in(select 学号 from 成绩 group by 学号 )

--(29)查询选修了 5(含5) 门以上课程的学生的姓名。

select 姓名 from 学生,成绩,课程 where 成绩.课程号=课程.课程号 and 学生.学号=成绩.学号

group by 成绩.学号,姓名

having count(成绩.学号)>=5

--(30)查找同名同姓的学生信息。

select a1.* from 学生 a1,学生 a2

where a1.姓名=a2.姓名 and a1.学号<>a2.学号

星期四 天气 冷 心情 good

数据管理

--(1)利用学生表创建一个新表(不含数据):优秀(学号,姓名,性别),

--然后在学生表中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,

--并把检索到的值送往优秀表中。

select 学号,姓名,性别 into 优秀 from 学生

where 5>6

insert into 优秀 select 学号,姓名,性别 from 学生 where 学号 in (select 学号 from 成绩 group by 学号 having min(成绩)>=80 )

--(2)把李路路同学的选课和成绩全部删去。

delete from 成绩

where 成绩 in(select 成绩 from 学生,成绩 where 学生.学号=成绩.学号 and 姓名='李路路')

--(3)把低于总平均成绩的女同学成绩提高5%。

UPDATE 成绩 SET 成绩=成绩*(1+0.05) WHERE 成绩<(select avg(成绩.成绩)as'平均成绩'from 成绩) and 学号 in(select 学号 from 学生 where 性别='女')

--(4)把选修数学课不及格的成绩全改为空值。

UPDATE 成绩 SET 成绩=null WHERE 成绩<60 AND 课程号=(select 课程号 from 课程 where 课程名='数学')

--(5)在成绩表修改4号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。

UPDATE 成绩 SET 成绩=成绩*0.5 WHERE 成绩<=75 and 课程号='4'

UPDATE 成绩 SET 成绩=成绩*0.4 WHERE 成绩>75 and 课程号='4'

--(6)将选修4号课程且成绩没有及格的学生的成绩调整为 60 分。

UPDATE 成绩 SET 成绩=60 WHERE 成绩<60 AND 课程号='4'

自定义函数的使用

编写一函数(hws),判断一个整数是否为回文数,若是函数值为逗是地,否则为逗否地,利用该函数判断回文数基本表中A1列的整数是否为回文数,若是,则A2列的值为逗是地,否则为逗否地。

create function hws(@A1 int)

returns char(2)

as

begin

declare @y int,@r int,@c char(2),@z int

select @y=0,@z=@A1

while @A1!=0

select @r=@A1%10,@y=@y*10+@r,@A1=@A1/10

if @y=@z

set @c='是'

else

set @c='否'

return @c

end

update 回文数 set A2=dbo.hws(A1)。

星期五 天气 冷 心情 good

游标的使用

利用游标可以访问单独数据行的特点,逐一对三角形基本表中的数据行(三条边)进行处理,求三角形的面积。

Declare yb cursor

For

Select*from 三角形

Declare @a float,@b float,@c float,@p float,@s float

Open yb

Fetch next from yb into @a,@b,@c,@s

While @@fetch_status=0

Begin

If @a+@b>@c and @a+@c>@b and @b+@c>@a

select @p=(@a+@b+@c)/2.0,@s=round(sqrt(@p*(@p-@a)*(@p-@b)*(@p-@c)),2)

else

set @s=null

update 三角形 set s=@s where current of yb

fetch next from yb into @a,@b,@c,@s

end

close yb

deallocate yb

心得体会

时光匆匆,一个星期的实习已经接近尾声了,对于本次的实习心情就是轻松加愉快,收获也是硕果累累,在老师的安排下,实习的过程是根据每天老师给的任务,按时完成作业然后再把报告写完根据规划每天都有条不絮的干着自己的事情,对于我是一个不会安排时间的人,生活中重来没有规划,所以事情每次干完不是紧一阵就是松一阵的,所以通过这次实习中在老师的安排下,自己也懂得了安排时间的重要性,也从中吸取到了一些经验。

在本次实习中我不仅把本学期学习的数据库基本知识进行了点到点的复习,也把它进行了巩固,在原来没有学好的地方通过本次的实习学的比以前学的更好,不仅如此,我们在做课程设计的时候还学会了独自的思考和协作,有些知识点我们运用的不是很好,但是后面再老实的帮助和在同学的探讨下,最后都把它解决了出来。除此之外,我也感觉到实习并不是因为完成任务而实习,它是为了让我们更好的掌握知识,并把知识运用到生活中去的,就像艺术一样,源于生活,而应用于生活一样。数据库的学习,也是为了以后生活中方便自己方便他人而学习的。

由于每天紧张的课程,一路都是匆匆来匆匆去,所以一个班同学的交流也是很少的,通过实习所以同学之间交流的机会也就比较多了一点,比才的感觉也因此增进了不少,以上就是本次在实习中所得到的心得,至于没有感受到的,将在以后的生活中再次的吸取生活中的经验。来进行学习中的总结。

数据库课程设计

题目:小型超市管理系统

1、项目计划

1.1系统开发目的

(1)大大提高超市的运作效率;

(2)通过全面的信息采集和处理,辅助提高超市的决策水平;

(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。

1.2背景说明

21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。

1.3项目确立

针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。

1.4应用范围

本系统适应于各种小型的超市。

1.5 定义

(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。

(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。

(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。

(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。

库存告警提示:当商品的库存数量低于库存报警数量时发出提示。

(5)盘点:计算出库存、销售额、盈利等经营指标。

1.6 参考资料

《数据库原理及设计》 陶宏才编 清华大学出版社

《SQL Server 2000 实用教程》范立南编 清华大学出版社

《SQL Server 2000 编程员指南》李香敏编 北京希望电子出版社

《轻松搞定 SQL Server 2000 程序设计》Rebecca M.Riordan编

《软件工程规范》Watts S.Humphrey编 清华大学出版社

《软件工程理论与实践》 Shari Lawrence Pfleeger编 清华大学出版社

《软件需求分析》 Swapna Kishore编 机械工业出版社

《软件工程思想》 林锐编

2、逻辑分析与详细分析

2.1系统功能

(1)、零售前台(POS)管理系统,本系统必须具有以下功能:

 商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑 *** 作水平层次的人员均能准确快速地进行商品扫描录入。

 收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。

 安全性:OS登陆、退出、换班与 *** 作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法 *** 作。

 独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业

(2)、后台管理系统,本系统必须具备以下功能

 进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。

 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。

 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。

 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工 *** 作权限管理。 客户销售权限管理。

(3)系统结构

系统总体结构

模块子系统结构

功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。

功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。

功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。

功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。

功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。

功能描述:人员管理子系统提供基本信息登记管理,员工 *** 作权限管理,客户销售权限管理的功能。

2.2、流程图

前台管理系统

顶层DFD图

第0层DFD图

第1层DFD图

2.3、户类型与职能

(1)、员工(营业员):

 通过商品条形码扫描输入商品到购买清单

 *** 作软件计算交易总金额

 *** 作软件输出交易清单

 对会员进行会员卡扫描以便打折

(2)、:超市经理

 *** 作软件录入商品,供货商,厂商

 *** 作软件制定进货计划

 查询打印计划进货与入库记录

 *** 作软件控制商品销售与否

 查询打印销售情况

 *** 作软件生成销售排行榜

 查询库存明细记录

 根据软件发出的库存告警进行入货

 *** 作软件进行盘点计算

(3)、总经理:

 基本信息登记管理

 员工 *** 作权限管理

 客户销售权限管理

2.4、统开发步骤

 确定参与者和相关的用况

 为每个用况设计过程

 建立顺序图,确定每个脚本中对象的协作

 创建类,确定脚本中的对象

 设计, 编码, 测试, 集成类

 为过程编写系统测试案例

 运行测试案例,检验系统

2.5、系统环境需求

 系统模式

本系统采用C/S模式作为开发模式

 硬件环境

服务器端:

高性能的计算机一台,

普通的双绞线作为连接。

客户端: 普通的计算机或者工作站,

普通的双绞线作为连接。

 软件环境

服务器端:安装SQL Server 2000的服务器版本,

安装windows 2000服务器版本,

配置了诺顿等必须的防毒软件。

客户端: 安装SQL Server2000的服务器版本,

安装了VB等可视化开发工具软件,

安装windows2000服务器版本。

2.6、系统安全问题

信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库, *** 作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。

 系统要能重建

 系统应该是可审查的

 系统应能进行有效控制,抗干扰能力强

 系统使用者的使用权限是可识别的

3、基于UML的建模

3.1语义规则

用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。

UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。

用例(use case):

参与者(actor):

3.2、UML模型

3.21、系统UML模型

3.22、子系统UML模型

(1)零售前台(POS)管理系统用例视图

(2)后台管理系统用例视图

3.3、系统实现图

4、超市销售系统概念设计文档

(1)、系统ER图

(2)、系统ER图说明

1) 商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;

2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;

3) 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。

(3)、视图设计

1) 交易视图(v_Dealing)——用于查询交易情况的视图;

2) 计划进货视图(v_PlanStock)——用于查询进货计划的视图;

3) 销售视图(v_Sale)——用于查询销售明细记录的视图;

4) 入库视图(v_Stock)——用于查询入库情况的视图。

5、逻辑设计文档

(1)、系统关系模型

a) 商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)

b) 用户表(用户编号,用户名称,用户密码,用户类型)

c) 会员表(会员编号,会员卡号,累积消费金额,注册日期)

d) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)

e) 交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)

f) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)

g) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)

h) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)

(2)、系统数据库表结构

数据库表索引

表名 中文名

MerchInfo 商品信息表

User 用户表

Menber 会员表

Sale 销售表

Dealing 交易表

Stock 进货入库表

Provide 供货商表

Factory 厂商表

商品信息表(MerchInfo)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

MerchID int 4 P Not null 商品编号

MerchName Varchar 50 Not null 商品名称

MerchPrice Money 4 Not null 价格

MerchNum Int 4 Not null 库存数量

CautionNum Int 4 Not null 库存报警数量

PlanNum Int 4 null 计划进货数

BarCode Varchar 50 Not null 条形码

SalesProPrice Money 4 促销价格

SalesProDateS Datetime 8 促销起日期

SalesProDateE Datetime 8 促销止日期

AllowAbate Int 4 Not null 允许打折

AllowSale Int 4 Not null 允许销售

FactoryID Varchar 10 F Not null 厂商编号

ProvideID Varchar 10 F Not null 供货商编号

用户表(User)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

UserID varchar 10 P Not null 用户编号

UserName Varchar 25 Not null 用户名称

UserPW Varchar 50 Not null 用户密码

UserStyle Int 4 Not null 用户类型

会员表(Menber)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

MemberID Varchar 10 P Not null 会员编号

MemberCard Varchar 20 Not null 会员卡号

TotalCost Money 4 Not null 累积消费金额

RegDate Datetime 8 Not null 注册日期

销售表(Sale)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

SaleID Varchar 10 P Not null 销售编号

MerChID Varchar 10 F Not null 商品编号

SaleDate Datetime 8 Not null 销售日期

SaleNum Int 4 Not null 销售数量

SalePrice Money 4 Not null 销售单额

交易表(Dealing)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

DealingID Varchar 10 P Not null 交易编号

DealingPrice Money 4 Not null 交易金额

DealingDate Money 4 Not null 交易日期

MemberID Varchar 10 会员卡号

UserName Varchar 10 F Not null 用户名称

入库纪录表(Stock)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

StockID Varchar 10 P Not null 入库编号

MerchID Varchar 10 F Not null 入库商品编号

MerchNum Int 4 Not null 入库数量

MerchPrice Money 4 Not null 单额

TotalPrice Money 4 Not null 总额

StockDate Datetime 8 Datetime 入库日期

PlanDate Datetime 8 Datetime 计划进货日期

StockState Int 4 Not null 入库状态

供货商表(Provide)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

ProvideID varchar 10 P Not null 供货商编号

ProvideName Varchar 50 Not null 供货商名称

ProvideAddress Varchar 250 供货商地址

ProvidePhone Varchar 25 供货商电话

厂商表(Provide)

字段名 字段类型 长度 主/外键 字段值约束 对应中文名

FactoryID varchar 10 P Not null 厂商编号

FactoryName Varchar 50 Not null 厂商名称

FactoryAddress Varchar 250 厂商地址

FactoryPhone Varchar 25 厂商电话

6、物理设计文档

/*----------创建数据库----------*/

create database SuperMarketdb

on primary

(

name=SuperMarketdb,

filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',

size=100MB,

maxsize=200MB,

filegrowth=20MB

)

log on

(

name=SuperMarketlog,

filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',

size=60MB,

maxsize=200MB,

filegrowth=20MB

)

go

/*----------创建基本表----------*/

use [SuperMarketdb]

go

/*创建交易表*/

CREATE TABLE Dealing (

DealingID int identity(1,1) Primary key ,

DealingDate datetime NOT NULL ,

DealingPrice money NOT NULL ,

UserName varchar(25) NULL ,

MemberCard varchar(20) NULL

)

GO

/*创建厂商表*/

CREATE TABLE Factory (

FactoryID varchar(10) Primary key ,

FactoryName varchar(50) NOT NULL ,

FactoryAddress varchar(250) NULL ,

FactoryPhone varchar(50) NULL

)

GO

/*创建会员表*/

CREATE TABLE Member (

MemberID varchar(10) Primary key ,

MemberCard varchar(20) NOT NULL ,

TotalCost money NOT NULL ,

RegDate datetime NOT NULL

)

GO

/*创建商品信息表*/

CREATE TABLE MerchInfo (

MerchID int identity(1,1) Primary key ,

MerchName varchar(50) Unique NOT NULL ,

MerchPrice money NOT NULL ,

MerchNum int NOT NULL ,

CautionNum int NOT NULL ,

PlanNum int NOT NULL ,

BarCode varchar(20) Unique NOT NULL ,

SalesProPrice money NULL ,

SalesProDateS datetime NULL ,

SalesProDateE datetime NULL ,

AllowAbate int NOT NULL ,

AllowSale int NOT NULL ,

FactoryID int NOT NULL ,

ProvideID int NOT NULL

)

GO

/*创建供应商表*/

CREATE TABLE Provide (

ProvideID varchar(10) Primary key ,

ProvideName varchar(50) NOT NULL ,

ProvideAddress varchar(250) NULL ,

ProvidePhone varchar(25) NULL

)

GO

/*创建销售表*/

CREATE TABLE Sale (

SaleID int identity(1,1) Primary key ,

MerChID int NOT NULL ,

SaleDate datetime NOT NULL ,

SaleNum int NOT NULL,

SalePrice money NOT NULL

)

GO

/*创建入库表*/

CREATE TABLE Stock (

StockID int identity(1,1) Primary key ,

MerchID int NOT NULL ,

MerchNum int NOT NULL ,

MerchPrice money NULL ,

TotalPrice money NULL ,

PlanDate datetime NULL ,

StockDate datetime NULL,

StockState int NOT NULL

)

GO

/*创建用户表*/

CREATE TABLE User (

UserID varchar(10) Primary key ,

UserName varchar(25) NOT NULL ,

UserPW varchar(50) NOT NULL ,

UserStyle int NOT NULL ,

)

GO

/*----------创建表间约束----------*/

/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/

ALTER TABLE MerchInfo ADD

CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY

(

[FactoryID]

) REFERENCES Factory (

[FactoryID]

),

CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY

(

[ProvideID]

) REFERENCES Provide (

[ProvideID]

)

GO

/*销售表中商品编号与商品信息表之间的外键约束*/

ALTER TABLE Sale ADD

CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY

(

[MerChID]

) REFERENCES MerchInfo (

[MerchID]

) ON DELETE CASCADE

GO

/*入库表中商品编号与商品信息表之间的外键约束*/

ALTER TABLE Stock ADD

CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY

(

[MerchID]

) REFERENCES MerchInfo (

[MerchID]

) ON DELETE CASCADE

GO

/*----------创建索引----------*/

/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)

GO

/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)

GO

/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)

GO

/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)

GO

/*----------创建视图----------*/

/*创建用于查询交易情况的视图*/

CREATE VIEW v_Dealing

AS

SELECT DealingDate as 交易日期,

UserName as 员工名称,

MemberCard as 会员卡号,

DealingPrice as 交易金额

FROM Dealing

GO

/*创建用于查询进货计划的视图*/

CREATE VIEW v_PlanStock

AS

SELECT Stock.StockID as SID,

MerchInfo.MerchName as 商品名称,

MerchInfo.BarCode as 条形码,

Factory.FactoryName as 厂商,

Provide.ProvideName as 供货商,

Stock.MerchNum as 计划进货数量,

Stock.PlanDate as 计划进货日期

FROM Stock,MerchInfo,Provide,Factory

Where Stock.MerchID = MerchInfo.MerchID

and Provide.ProvideID=MerchInfo.ProvideID

and Factory.FactoryID=MerchInfo.FactoryID

and Stock.StockState=0

GO

/*创建用于查询销售明细记录的视图*/

CREATE VIEW v_Sale

AS

SELECT MerchInfo.MerchName as 商品名称,

MerchInfo.BarCode as 条形码,

MerchInfo.MerchPrice as 商品价格,

Sale.SalePrice as 销售价格,

Sale.SaleNum as 销售数量,

Sale.SaleDate as 销售日期

FROM Sale INNER JOIN

MerchInfo ON Sale.MerChID = MerchInfo.MerchID

GO

/*创建用于查询入库情况的视图*/

CREATE VIEW v_Stock

AS

SELECT MerchInfo.MerchName as 商品名称,

MerchInfo.BarCode as 条形码,

Factory.FactoryName as 厂商,

Provide.ProvideName as 供货商,

Stock.MerchPrice as 入库价格,

Stock.MerchNum as 入库数量,

Stock.TotalPrice as 入库总额,

Stock.StockDate as 入库日期

FROM Stock,MerchInfo,Provide,Factory

Where Stock.MerchID = MerchInfo.MerchID

and Provide.ProvideID=MerchInfo.ProvideID

and Factory.FactoryID=MerchInfo.FactoryID

and Stock.StockState=1

GO

7、小结

和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。

由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:

 本系统只适合小型超市使用,不能适合中大型超市使用;

 超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;

对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。

数据库课程设计报告 目录目录……………………………………………………………………………………1一.设计目标…………………………………………………………………………2二.系统介绍…………………………………………………………………………2三.数据库设计……………………………………………………………………....21.需求分析……………………………………………………………………….22.概念结构设计………………………………………………………………….3 (1)实体设计………………………………………………………………..3 (2)ER图……………………………………………………………………33.逻辑结构设计………………………………………………………………….4四.应用程序设计……………………………………………………………………41.delphi7.0开发环境……………………………………………………………4 2.软件分析…………………………………………………………………..…4 (1)软件的需求分析………………………………………………………..4 (2)软件的基本功能………………………………………………………..5 3.软件的设计与实现…………………………………………………………….6 五.实现的应用系统介绍…………………………………………………………….81.系统模块…………………………………………………………………….82. 文件简介…………………………………………………………………….83 .系统运行…………………………………………………………………….8 六.总结………………………………………………………………………………17 一.设计目标理论应用--运用数据库设计理论设计一个较完善的有实际意义的数据库结构;工具使用--掌握目前流行数据库管理系统工具和前端应用开发工具;应用开发--为数据库开发相应应用程序,构成完整的数据库应用系统;报告编写--用文字处理软件编写高质量的设计报告。二.系统简介名称:超市进销存管系统功能:基于超市管理的全面自动化,减少入库管理、出库管理及库存管理中的漏洞,节约不少管理开支,增加企业收入。 实现对产品的增加、修改、删除、以及日常查询,对产品的出库、入库进行管理。同时对营销状况进行简单的分析,并可以导出各种查询报表。数据库:ACCESS实现:Delphi 7.0系统构架:C/S(Client/Server )三.数据库设计.1.需求分析:超市进销存管理系统2.概念结构设计(1)实体设计商品信息(商品编号,商品名称,商品单位,商品单价,类别,产地,说明)进货信息(进货编号,商品编号,进货单价,进货数量,进货时间,经手人,供货单位)出货信息(出货编号,商品编号,出货单价,出货数量,经手人,接收人及说明等)库存信息(商品编号,库存说明,说明等)用户信息(用户名,密码,用户类型)(2)E-R图包含说明产地商品单价商品类别商品名称商品编号商 品经手人进货数量进货时间进货单价商品编号进货编号供货单位进货记录商品编号出货数量接收人经手人出货单价出货编号出货时间出货记录库存记录说明商品编号库存说明111n3.逻辑结构设计关系模型(第1数据项为主键)商品信息(商品编号,商品名称,商品单位,商品单价,类别,产地,说明)进货信息(进货编号,商品编号,进货单价,进货数量,进货时间,经手人,供货单位)出货信息(出货编号,商品编号,出货单价,出货数量,经手人,接收人及说明等)库存信息(商品编号,库存说明,说明等)用户信息(用户名,密码,用户类型)出货商品金额(出货时间,出货单价,出货数量,出货金额)进货商品金额(进货时间,进货单价,进货数量,进货金额)四.应用程序设计1.Delphi 7.0 开发环境Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。Delphi 7的集成开发环境(1DE)和Delphi以前的版本基本一致。它把单、多个工具栏及一组窗口和应用程序设计在一起,将代码以事件的形式与界面的每一元素建立联系,使用户很方便地在这个高度集成的开发环境的组成和各种辅助工具的使用方法和使用技巧。2.软件分析(1)软件的需求分析:开发本软件的主要目的是为了优化超市的日常管理。采用计算机管理信息系统为实现超市管理科学化和现代化,给它带来了明显的经济效益和社会效益 (2)软件的基本功能与说明:a.商品信息管理商品信息管理:用来管理系统中要用来进行进货,出货 *** 作的商品的信息,包括添加,修改,删除和查询信息。其中,查询可以进行精确查询和模糊快速查询。任意时刻,生成当前表格报表。 b. 用户管理1.用户添加该权限只有管理员拥有,可以添加临时用户,或者增设管理员用户。2.用户删除该权限只有管理员拥有,可以删除用户。3.用户密码修改用来修改登陆用户的密码,长时间地使用一个密码可能会使密码不安全,导致整个系统的不安全,因此有必要定期修改密码。 c. 营销分析1.综合分析某一时间段内,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。同时提供进货情况查询、出货情况查询、库存情况查询。2.日分析某一天中,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。 d. 日常 *** 作商品进货 *** 作:用来完成商品的进货 *** 作。商品出货 *** 作:用来完成商品的出货 *** 作。进行进货 *** 作时,进货编号以及进货时间是自动生成的,无需改动,否则会出现错误。所生成的商品编号为该种类型商品的最大编号,且后面有提示用户允许的编号范围,超出此范围会出错,如果编号方式正确且大于最大编号,确定添加后会提示用户填写新加商品的相关信息。进行出货 *** 作时,出货编号自动生成,用记无须改动。在出货单价小于进货的最小单价时会询问是否继续出货,出货数量不能大于库存数量。e.信息查询1.库存信息查询:用来查询库存的商品的信息,可以按照商品编号,商品名称和商品类别来查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品的库存信息,并将其打印输出。同时,该查询可以根据商品的库存量来将商品中库存不足、库存饱和、库存过剩的商品一一列出并提供打印输出功能。2.进货信息查询:用来查询商品的进货记录,可以按照商品编号,商品名称,商品类别,经手人和进货日期查询,可以将查询结果输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的进货情况,并将其打印输出。同时以图表的形式分析该种商品的进货价格走势分析图。3.出货信息查询:用来查询商品的出货记录,可以按照商品编号,商品名称,商品类别,经手人和出货日期查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的出货情况,并将其打印输出。同时以图表的形式分析该种商品的出货价格走势分析图。3.软件设计与实现添加、修改、删除是通过delphi自带函数实现的。查询是通过添加SQL语句或者直接在access中建立相对的查询(如出货商品金额、进货商品金额查询)实现的。(1).程序实现//添加adoquery1.Closeadoquery1.SQL.Clearadoquery1.SQL.Add('select * from 进货信息' )adoquery1.Open adoquery1.Appendadoquery1.fieldbyname('进货编号').asstring:=edit1.Textadoquery1.fieldbyname('商品编号').asstring:=edit2.Textadoquery1.fieldbyname('进货单价').asstring:=edit3.Textadoquery1.fieldbyname('进货数量').asstring:=edit4.Textadoquery1.fieldbyname('进货时间').asstring:=edit5.Textadoquery1.fieldbyname('经手人').asstring:=combobox5.Textadoquery1.fieldbyname('供货单位').asstring:=edit7.Textadoquery1.Post快速添加:adoquery1.Append//删除一条记录if Application.MessageBox('真的要删除当前所选记录吗?','删除确认',MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3)<>IDYES thenabortelseadoquery1.delete//修改一条记录ifApplication.MessageBox('真的要修改当前所选记录吗?','修改确认',MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3)<>IDYES then AdoQuery1.CancelUpdateselseadoquery1.edit//对表的排序procedure TForm2.DBGrid1TitleClick(Column: TColumn)var i : integerbeginfor i:= 1 to DBGrid1.Columns.Count dobegin//恢复所有标题字体为默认DBGrid1.Columns[i-1].Title.Font.Color := clWindowTextDBGrid1.Columns[i-1].Title.Font.Style := []endif ADOQuery1.Sort<>(Column.FieldName+' ASC') then //判断原排序方式beginADOQuery1.Sort := Column.FieldName+' ASC'Column.Title.Font.Color := clRed//改变标题行字体为红色,表示当前的排序方式为升序Column.Title.Font.Style := [fsBold]endelse beginADOQuery1.Sort := Column.FieldName+' DESC'Column.Title.Font.Color := clBlue//改变标题行字体为红色,表示当前的排序方式为降序Column.Title.Font.Style := [fsBold]endend//查询示例adoquery2.closeadoquery2.sql.clearadoquery2.SQL.Add('select distinct(进货信息.进货编号),商品信息.商品名称,进货信息.商品编号,商品信息.类别,进货信息.进货单价,进货信息.进货数量,进货信息.进货时间,进货信息.经手人,进货信息.供货单位 from 进货信息,商品信息 where 商品信息.商品编号=进货信息.商品编号 and ')adoquery2.SQL.Add('进货时间>=#'+DateToStr(DateTimePicker1.Date)+'# and 进货时间<=#'+DateToStr(DateTimePicker2.Date+1)+'#')adoquery2.Open*五.实现的应用系统介绍1.系统的模块(1)主界面模块Form1(2)信息管理模块Form2,form18(3)日常 *** 作模块Form3(4)信息管理模块Form5(5) 用户管理模块Form14(6)系统管理模块用户登陆:form8关于系统:form10退出系统:from11()登陆窗体Form82.文件简介:(1)文件help包括生成jun_help帮助的所有源程序。(2)文件image系统所有用到的图片文件(3) 文件project系统可执行文件project.exe。系统数据库超市进销存储管理系统.mdb(4) 文件sounds系统所有用到的声音文件(5) 文件unit_date系统自动生成的相关文件3.系统运行:1.欢迎:2.到达主界面后,提示登陆(系统管理—登陆系统)。用户可以查看帮助获得系统的相关信息:3.用户登陆界面:4.若用户为管理员,则可以进行用户管理 *** 作。用户有权添加、修改、删除其它用户。5.若用户为普通用户,则用户只能对自己的相关信息进行修改,添加用户、删除用户不可用。6.商品信息管理模块商品信息管理:用来管理系统中要用来进行进货,出货 *** 作的商品的信息,包括添加,修改,删除和查询信息。其中,查询可以进行精确查询和模糊快速查询。任意时刻,生成当前表格报表。7.营销分析模块:1).综合分析某一时间段内,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。同时提供进货情况查询、出货情况查询、库存情况查询。2).日分析某一天中,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。8.商品进出货 *** 作模块:1)进行进货 *** 作时,进货编号以及进货时间是自动生成的,无需改动,否则会出现错误。所生成的商品编号为该种类型商品的最大编号,且后面有提示用户允许的编号范围,超出此范围会出错,如果编号方式正确且大于最大编号,确定添加后会提示用户填写新加商品的相关信息。2)进行出货 *** 作时,出货编号自动生成,用记无须改动。在出货单价小于进货的最小单价时会询问是否继续出货,出货数量不能大于库存数量。9.信息查询模块:1).库存信息查询:用来查询库存的商品的信息,可以按照商品编号,商品名称和商品类别来查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品的库存信息,并将其打印输出。同时,该查询可以根据商品的库存量来将商品中库存不足、库存饱和、库存过剩的商品一一列出并提供打印输出功能。2).进货信息查询:用来查询商品的进货记录,可以按照商品编号,商品名称,商品类别,经手人和进货日期查询,可以将查询结果输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的进货情况,并将其打印输出。同时以图表的形式分析该种商品的进货价格走势分析图。3).出货信息查询:用来查询商品的出货记录,可以按照商品编号,商品名称,商品类别,经手人和出货日期查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的出货情况,并将其打印输出。同时以图表的形式分析该种商品的出货价格走势分析图。10关于系统模块:11.用户管理模块:1).用户添加该权限只有管理员拥有,可以添加临时用户,或者增设管理员用户。2).用户删除该权限只有管理员拥有,可以删除用户。3).用户密码修改用来修改登陆用户的密码,长时间地使用一个密码可能会使密码不安全,导致整个系统的不安全,因此有必要定期修改密码。12.退出系统模块:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10827839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存