数据库设计以及源代码
毕业设计(论文)-powerbuilder+sql_账务处理系统分析设计与开发[管理资料]
编号毕业设计(论文)题目账务处理系统分析设计与开发二级学院会计学院专业财务信息化班级0364-3学生姓名学号指导教师评阅教师时间目录摘要 (I)Abstract (II)言 (1)课题背景 (1)课题的目的与意义 (1)本人在课题中的主要工作 (1) (3) (3) (3) (3) (4) (5) (6) (7) (8) (9) (9) (9) (11) (12) (12) (12) (14)手工业务流程图 (14)手工处理业务流程分析 (16)计算机处理业务流程图 (17)计算机处理业务流程分析 (18)账务系统的计算机处理与手工处理比较 (19) (22) (22) (23) (24) (25) (26) (27) (27) (29) (29) (29) (30) (30) (30) (31) (32) (34) (34) (35) (40) (40) (40)PBL库说明 (41) (44) (44) (47) (61) (140) (149)新建账套 (149)主界面 (149)系统码表初始化 (150)码表维护 (151)增加科目 (151)科目查询 (152)科目修改 (154)科目余额初始 (154)试算平衡 (155)凭证查询 (156)凭证修改 (157)凭证审核 (157)凭证记账 (158)账簿查询——总账 (159)账簿查询——科目明细账 (160)账簿查询——现金日记账及银行日记账 (161)科目余额表查询 (162)结转损益 (163)报表取数 (164)期末结账 (165)致谢 (166)参考文献 (167)账务处理系统分析设计与开发文献综述 (168)摘要目前《会计信息化》课程的实验所选用的软件一般是用友、金蝶、金算盘等商品化会计软件,然而,由于商品化会计软件是不可能向用户提供软件模块的流程分析、数据库设计以及源代码,因此,《会计信息化》课程的实验教学只是向学生讲授会计软件的简单操作与使用,不能深入讲解软件的流程分析及部分涉及到源程序的软件设计内容,更不能讲解其中主要的数据分析设计内容。
个人财务管理数据库设计含完整版代码
SQL Server 2000数据库应用个人财务管理系统数据库设计个人财务管理数据库设计1.问题概述为单个账户设计一个财务管理系统,该系统主要用于对于个人的财务状况进行实时、有效的管理,从支出以及收入。
2.概念设计该系统数据模型包含的实体有:(1).账户:收入和支出的主要对象实体。
(2).支出:该账户的支出金额。
(3).收入:该账户的收入金额、(4).余额:该账户在进行收入以及支出事件之后当前金额数。
(5).支出清单:账户每次详细的支出记录。
(6).收入清单:账户每次详细的收入记录。
数据实体间的关系如下图:支出单支出账户余额收入单收入3.数据实体的E——R模型4.数据表设计账户关系模式支出单关系模式支出关系模式收入单关系模式收入关系模式余额关系模式5.验证该数据模型经验证符合三范式。
6.物理设计硬件:cpu: Intel(R) Core(TM)2 Duo T5800 @ 2.00GHz 内存:2.00GHz 硬盘:250GMB 软件:OS:Microsoft windows xp Professional sp2 DBMS: Microsoft SQL Server 20007.数据库创建示例程序。
(1).创建数据库“pfm.mdf”CREATE DATABASE pfmON(NAME=pfm_dat,FILENAME='D:\PFM\pfm.mdf')(2).创建账户数据表“account”use pfmgocreate table account(帐号Char(20) not null primary key,姓名Char(8) not null,出生日期 datetime not null,性别Char(2) not null,身份证号 Char(20) not null,)插入数据:use pfmgoinsert accountvalues('00001','曹鹏','1986-11-4','男','510703198600101100')(3).创建支出单数据表“payoutlist”use pfmgocreate table payoutlist(支出单号 Char(20) not null primary key, 支出日期 Datetime not null,支出用途 Char(150),支出金额 Char(20) not null,帐号 Char(20) not null,)(4).创建收入单数据表“incomelist”use pfmgocreate table incomelist(收入单号 Char(20) not null primary key, 收入日期 Datetime not null,收入用途 Char(150),收入金额 Char(20) not null,帐号 Char(20) not null,)(5).创建支出数据表“payout”use pfmgocreate table payout(帐号 Char(20) not null primary key, 总支出金额 Char(20) not null,)(6).创建收入数据表“income”use pfmgocreate table income(帐号 Char(20) not null primary key, 总收入金额 Char(20) not null,)(7).创建余额数据表“balance”use pfmgocreate table balance(帐号 Char(20) not null primary key,当前金额 Char(20) not null,)8.总结。
数据库课程设计小型管理系统源码
数据库课程设计小型管理系统源码一、概述随着信息技术的飞速发展,数据库管理系统在各个领域得到了广泛的应用。
数据库课程通常会设计一个小型的管理系统作为课程项目,以帮助学生加深对数据库原理和应用的理解。
在本文中,我们将介绍一个小型管理系统的源码设计,涉及数据库的设计、前端界面和后端代码的编写。
二、数据库设计1. 数据库概述我们选用MySQL作为本系统的数据库管理系统,因为MySQL是一款成熟稳定、性能优越的关系型数据库管理系统,对学生来说也比较容易上手。
2. 数据表设计我们将设计两张主要的数据表,分别是学生信息表和课程信息表。
具体的字段设计如下:- 学生信息表(Student)- 学号(ID)- 尊称(Name)- 芳龄(Age)- 性莂(Gender)- 专业(Major)- 课程信息表(Course)- 课程编号(ID)- 课程名称(Name)- 学分(Credit)- 授课教师(Teacher)3. 数据库连接在系统的后端代码中,需要使用相应的数据库连接方式来连接MySQL 数据库,并对数据表进行增删改查操作。
三、前端界面设计1. 技术选择我们选择使用HTML、CSS和JavaScript来构建系统的前端界面,这些技术简单易用,并且能够实现较为复杂的交互效果。
2. 界面布局我们将设计两个主要的界面,分别是学生信息管理界面和课程信息管理界面。
在这两个界面中,用户可以进行对应数据表的增删改查操作。
3. 交互效果通过JavaScript语言的编写,我们可以实现一些动态的交互效果,比如表单验证、数据的实时更新等。
四、后端代码编写1. 技术选择在后端代码的编写中,我们选择使用Java语言来实现,因为Java具有跨评台性、稳定性好、易于维护等优点。
2. 数据库操作在后端代码中,需要对数据库进行相应的增删改查操作,需要使用MySQL提供的JDBC API来实现数据库连接和数据操作。
3. 接口设计我们将设计各种接口来实现前端界面和后端代码的交互,比如增加学生信息、删除课程信息、更新学生信息等接口。
数据库课程设计报告_模板
《数据库课程设计》
题目:
学号:
班级:
姓名:
指导教师:
1.需求分析
1.1. 系统需求分析
根据实际任务确定
1.2. 可行性分析
从硬件和选取软件方面考虑(前台开发工具使用Visual Basic,后台数据库使用SQL Server,中间层采用的数据访问技术)。
1.3. 系统的功能简介
例如:系统管理模块(CTRL+O)
该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户(快捷键:CTRL+A)、修改密码(快捷键:CTRL+B)、重新登录(快捷键:CTRL+F1)等等。
1.4. 系统开发的目标
本系统的设计目标将完成????????主要任务。
2.数据库设计
2.1数据库的概念设计
做系统的E-R图,分析实体之间的联系
2.2系统的逻辑结构设计
E-R图→关系模式
2.3学生管理系统的物理结构设计
有关实体的数据表,例如:kecheng表:{课程名称,教材}
以及各表的物理结构,例如:kecheng表:
3.总体设计
系统的整体框架图
4.详细设计
本部分主要内容为本系统(或模块)的运行界面以及主要界面的源代码。
例如:系统登陆界面:
本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在USE表中,本系统根据不同的用户而设置了不同的权限,可以用909;909为用户名和密码来登陆本系统。
5.全文总结参考文献。
数据库设计关于图书馆管理系统的设计(有完整代码,史上最全!)
数据库设计关于图书馆管理系统的设计(有完整代码,史上最全!)《数据库》课程设计(2008/2009学年第2学期第18-19 周)数据库课程设计任务书⼀、⽬的1.掌握计算机管理信息系统设计的⼀般⽅法,主要包括系统分析、系统设计的组织和实施。
2.关系型数据库管理系统的编程技术,并能独⽴完成⼀般⼩系统的程序设计、调试运⾏等⼯作。
3.培养把所学知识运⽤到具体对象,并能求出解决⽅案的能⼒。
⼆、任务(任选其⼀)A.运⽤关系型数据库管理系统,实现本院图书馆管理信息系统。
具体要求如下:—图书、资料的登记、注销和查询。
—借书证管理,包括申请、注销借书证,查询借书证持有⼈等。
—借还图书、资料的登记、超期处理,超期拒借等。
—图书、资料查询,借、还图书和资料情况查询。
—图书、资料借阅情况的统计分析,拒此作为图书馆图书、资料订够的依据之⼀。
(本项不作为基本要求)B.运⽤关系型数据库管理系统,实现服务电话管理系统向客户现场派技术⼈员的服务公司可以⽤服务电话管理系统跟踪客户、员⼯、⼯作订单、发票、付款等等。
要求:数据库要存储以下信息:—客户信息—客户⼯需单信息—完成⼯需单所需⼈⼯—完成⼯需单所需部件—部件信息—付款信息—雇员信息完成的功能:—输⼊/查看客户⼯需单信息—输⼊/查看部件、雇员等其它信息—付款—打印发票等三、结果形式1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语⾔及查询结果。
2.上机实现。
四、考核1.课程设计态度(20分)。
2.递交的书⾯材料(40分)。
3.上机运⾏情况(40分)⽬录1.问题描述 (2)1.1背景 (2)1.2数据需求 (2)1.3事物需求 (3)1.4关系模式 (3)2.⽅案图表设计 (3)2.1E-R图 (3)2.2数据流程图 (8)2.3数据字典 (9)2.4关系图: (11)3.数据库源代码 (12)3.1数据库建⽴ (12)3.2数据初始化 (14)4.结果数据处理 (17)4.1单表查询 (17)4.2超期处理 (19)4.3还书操作 (20)4.4借书操作 (22)4.5书籍状态 (24)4.6读者状态 (24)5.结束语 (26)5.1课程设计⼼得 (26)1.问题描述1.1背景随着图书馆规模的不断扩⼤,图书数量也相应的增加,有关图书的各种信息量也成倍增加,⾯对着庞⼤的信息量,传统的⼈⼯⽅式管理会导致图书馆管理上的混乱,⼈⼒与物⼒过多浪费,图书馆管理费⽤的增加,从⽽使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定⼀套合理、有效,规范和实⽤的图书管理系统,对图书资料进⾏集中统⼀的管理。
源代码设计笔记
源代码设计笔记
**1.系统架构**
主要分为三层:表示层、业务逻辑层、数据访问层。
表示层:负责处理用户界面,以及与用户的交互,比如登录、注册、查询等等。
业务逻辑层:负责处理业务逻辑,比如计算报价、订单处理等等。
数据访问层:负责与数据库的交互,比如查询数据、更新数据等等。
**2.数据库设计**
数据库设计主要包括两个部分:数据表设计和索引设计。
数据表设计:负责确定数据表的结构,比如表名、字段名、字段类型、字段长度等等。
索引设计:负责确定索引的类型,以及索引的字段,以提高数据检索的效率。
**3.接口设计**
接口设计主要包括以下几个方面:
1.请求方式:确定接口的请求方式,比如GET、POST等等。
2.参数设计:确定接口的参数,比如参数名、参数类型、参数长度等等。
3.返回结果:确定接口的返回结果,比如返回状态码、返回数据等等。
4.错误处理:确定接口的错误处理方式,比如错误状态码、错误信息等等。
毕业设计源代码
毕业设计源代码
毕业设计源代码是指学生在完成自己的毕业设计过程中,所编写的程序代码和相关文档。
毕业设计源代码包括程序设计语言源代码、数据库设计源代码、系统架构设计源代码等。
对于很多计算机专业的大学生来说,毕业设计是他们在学校里最重要的项目之一,也是他们展示个人技能和能力的重要机会。
因此,毕业设计源代码的质量和完整性都至关重要。
毕业设计源代码应该具备清晰的逻辑结构、良好的代码风格、严密的错误处理机制以及可扩展性和可维护性。
同时,毕业设计源代码还需要考虑到数据安全性和数据保护机制,以确保用户数据得到最佳的安全保障。
如果你需要获取毕业设计源代码,可以考虑访问GitHub和GitLab等开源社区平台,或者与同行交流沟通。
同时,还可以参考其他优秀的毕业设计源代码,了解不同的编程技巧和思路,从而提高自己的编程水平和能力。
总之,毕业设计源代码不仅仅是一个学生的毕业作品,更是他们技术能力和计算机科学知识的体现,因此,它必须经过严格的测试和评估,以确保其质量和完整性。
(完整word版)数据库课程设计教务管理系统
洛阳理工学院课程设计报告课程名称数据库课程设计设计题目教务管理系统专业计算机科学与技术班级学号姓名完成日期课程设计任务书设计题目:教务管理系统设计内容与要求:设计教务管理系统,类似于我校教务管理系统,有四类用户:教务员、学生、教师、管理员教务员可以输入学生、教师、班级、课程信息。
一个班级只属于一个专业,一个学生只属于一个班级。
教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
一个教师可以教授多个班的多门课程,每门课由多位老师讲授。
课程分两类,必修课和选修课。
系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
要求:1.完成本系统的需求分析,写出功能需求和数据需求描述;2.完成数据库的概念结构设计、逻辑结构设计、物理结构设计;3.完成本系统的部分功能模块的程序界面设计。
指导教师:2017 年12 月29 日课程设计评语成绩:指导教师:_______________年月日目录一、概述 (2)1.1、本设计的目的与意义 (2)1.2、数据库开发工具和应用程序开发工具 (2)二、需求分析 (2)2.1功能需求 (2)2.2数据需求 (2)三、概念结构设计 (2)3.1、E-R模型设计 (2)3.2、总体E-R图描述 (4)四、逻辑结构设计 (4)4.1、关系模型 (4)4.2、关系模式的优化与说明 (4)五、物理结构设计 (5)5.1建立数据库 (5)5.2表与表结构 (5)六、应用程序设计 (6)6.1、系统总体结构 (6)6.2、系统界面与源代码 (7)6.2.1、界面 (8)6.2.2、功能描述 (9)6.2.3、程序源代码 (10)七、设计总结 (23)一、概述本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2008数据库无缝链接。
“猿”手机app数据库设计
“猿”⼿机app数据库设计编写⽬的该博客是app在前期开发阶段针对⽤户所进⾏的数据库设计,通过ER图,数据字典,数据流图来对该软件的数据库开发进⾏设计,并且附上部分源代码进⾏参考。
定义ER图:E-R图也称实体-联系图(Entity Relationship Diagram),提供了表⽰实体类型、属性和联系的⽅法,⽤来描述现实世界的概念模型UML 图:UML-Unified Model Language 统⼀建模语⾔,⼜称标准建模语⾔。
是⽤来对软件密集系统进⾏可视化建模的⼀种语⾔。
UML的定义包括UML语义和UML表⽰法两个元素。
数据字典:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进⾏定义和描述,其⽬的是对数据流程图中的各个元素做出详细的说明,使⽤数据字典为简单的建模项⽬。
数据流图:简称DFD,它从数据传递和加⼯⾓度,以图形⽅式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析⽅法的主要表达⼯具及⽤于表⽰软件模型的⼀种图⽰⽅法。
数据字典⽤户表字段名中⽂名数据类型主键外键说明user_id⽤户账号int PK不能为空password⽤户密码char不能为空status⾝份char不能为空level会员等级char不能为空题⽬字段名中⽂名数据类型主键外键说明q_id题⽬编号int PK不能为空question题⽬char不能为空level难度级别char不能为空anser答案char不能为空管理员字段名中⽂名数据类型主键外键说明m_id管理员id int PK不能为空q_id题⽬编号int FK不能为空user_id⽤户账号int FK不能为空ER图设计数据流图数据库源代码设计CREATE TABLE `user` (`user_id` int NOT NULL,`password` char(20) NOT NULL, `status` char(20) NOT NULL,'level' char(20) NOT NULL,PRIMARY KEY (`user_id`) );CREATE TABLE `question` (`q_id` int NOT NULL,`question` char(20) NOT NULL, `anser` char(20) NOT NULL,`level` char(20) NOT NULL,PRIMARY KEY (`q_id`));CREATE TABLE `manager` (`m_id` int NOT NULL,`q_id` int NOT NULL,`user_id` int NOT NULL,PRIMARY KEY (`m_id`));。
数据库设计方案
数据库设计规范与技巧一、数据库设计过程数据库技术是信息资源管理最有效的手段。
数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库设计的各阶段:A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。
B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。
C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。
然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。
D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
1. 需求分析阶段需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。
自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图表达了数据和处理过程的关系。
系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
2. 概念结构设计阶段通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
概念模型用于信息世界的建模。
概念模型不依赖于某一个DBMS支持的数据模型。
概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
Access数据库程序设计
Access数据库程序设计Access数据库程序设计概述Access数据库是微软公司开发的一款关系型数据库管理系统,它提供了一组完整的工具和功能,用于创建和管理数据库,并实现数据的存储、查询、更新等操作。
Access数据库程序设计主要是指利用Access数据库编写程序,实现数据库的设计和操作。
数据库设计数据库设计是数据库程序设计的基础,它决定了数据库的结构和关系。
在Access中,可以使用表格、查询、表单和报告等工具来进行数据库设计。
表格设计表格是Access中存储数据的基本单位,通过表格可以定义和管理数据的结构。
在表格设计中,需要确定表格的字段和字段类型,并设置相应的约束和索引。
查询设计查询是对数据库中的数据进行检索和统计的操作,它可以根据指定的条件和排序规则,从一个或多个表格中获取需要的数据。
在查询设计中,需要定义查询的字段、条件和排序规则,并选择合适的查询类型。
表单设计表单是用户与数据库交互的界面,通过表单可以添加、修改和删除数据。
在表单设计中,需要选择合适的控件和布局,以及设置相应的属性和事件。
报告设计报告是以表格和图表的形式展示数据库中的数据,用于各种统计和分析结果。
在报告设计中,需要选择合适的报告类型、布局和样式,以及设置相应的数据来源和过滤条件。
数据库操作Access数据库可以通过编写VBA(Visual Basic for Applications)代码来实现各种数据库操作,包括数据的增删改查、事务管理和数据验证等。
连接数据库需要通过连接字符串建立与数据库的连接,可以使用连接字符串中的用户名和密码进行身份验证。
执行SQL语句可以使用VBA代码执行SQL语句对数据库进行增删改查操作,可以使用参数化查询来保证数据的安全性。
事务管理可以使用事务来保证数据库操作的原子性和一致性,通过VBA 代码控制事务的开始、提交和回滚。
数据验证可以通过编写VBA代码对用户输入的数据进行验证,确保数据的合法性和完整性。
数据库课程设计源代码
数据库课程设计源代码一、课程目标知识目标:1. 理解数据库的基本概念,掌握数据库设计的基本原理。
2. 学习并运用数据库设计源代码的编写方法,能够独立完成小型项目的数据库设计。
3. 掌握数据库表、字段、索引、关系等基本元素的创建和使用。
技能目标:1. 培养学生运用数据库设计工具进行数据库设计的能力。
2. 培养学生编写结构化查询语言(SQL)进行数据操作的能力。
3. 提高学生分析问题、解决问题的能力,使其能够根据实际需求设计合适的数据库结构。
情感态度价值观目标:1. 激发学生对数据库技术的兴趣,培养其主动学习的积极性。
2. 培养学生的团队协作意识,使其在项目实践中学会与他人合作、沟通。
3. 培养学生的创新意识,鼓励其在数据库设计过程中尝试新思路和方法。
课程性质:本课程为实践性较强的课程,旨在培养学生的数据库设计能力,提高其在实际项目中的应用水平。
学生特点:学生具备一定的编程基础,对数据库有一定的了解,但缺乏实际设计经验。
教学要求:1. 结合课本知识,注重理论与实践相结合,使学生能够在实践中掌握数据库设计方法。
2. 强化编程实践,让学生通过编写源代码,巩固所学知识,提高动手能力。
3. 鼓励学生参与项目实践,培养其独立分析和解决问题的能力。
二、教学内容1. 数据库基本概念:数据库的定义、作用、分类。
2. 数据库设计原理:实体关系模型、关系数据库设计、范式理论。
3. 数据库设计工具:使用ER图、DFD图等工具进行数据库设计。
4. SQL语言:数据定义、数据操纵、数据查询、数据控制。
5. 数据库表、字段、索引、关系的创建和使用。
6. 数据库设计实例:结合实际项目,进行数据库设计案例分析。
7. 实践项目:设计并实现一个简易的数据库项目,包括以下环节:a. 需求分析b. 概念结构设计c. 逻辑结构设计d. 物理结构设计e. 数据库实施f. 数据库维护教学内容安排和进度:1. 第1周:数据库基本概念、设计原理。
2. 第2周:数据库设计工具、SQL语言基础。
工程项目管理源代码(3篇)
第1篇摘要:随着我国经济的快速发展,工程项目管理在各个行业中的地位日益凸显。
工程项目管理源代码作为工程项目管理的重要工具,能够有效地提高工程项目的管理效率和质量。
本文将介绍工程项目管理源代码的基本概念、功能特点、实现方法以及在实际应用中的优势。
一、引言工程项目管理源代码是一种基于计算机技术的工程项目管理工具,它能够将工程项目的管理过程、信息、资源等有机地整合在一起,为项目管理人员提供全面、高效、便捷的项目管理服务。
工程项目管理源代码的开发和应用,有助于提高工程项目的管理水平,降低项目成本,缩短项目周期。
二、工程项目管理源代码的基本概念1. 概念工程项目管理源代码是指使用编程语言编写,用于实现工程项目管理功能的计算机程序。
它主要包括项目计划、进度管理、资源管理、成本管理、质量管理、风险管理等模块。
2. 特点(1)模块化设计:工程项目管理源代码采用模块化设计,将项目管理的各个功能模块进行封装,便于用户根据实际需求进行选择和配置。
(2)易于扩展:工程项目管理源代码具有良好的可扩展性,用户可以根据实际需求添加新的功能模块,满足不同类型工程项目的管理需求。
(3)易用性:工程项目管理源代码操作简便,用户界面友好,易于学习和使用。
(4)数据安全性:工程项目管理源代码采用加密技术,确保项目数据的安全性和保密性。
三、工程项目管理源代码的功能特点1. 项目计划管理(1)制定项目计划:工程项目管理源代码可以根据项目需求,制定详细的项目计划,包括项目目标、进度、资源、成本等。
(2)项目进度跟踪:实时跟踪项目进度,确保项目按计划进行。
(3)项目调整:根据实际情况,对项目计划进行调整,确保项目目标的实现。
2. 资源管理(1)资源分配:合理分配项目资源,包括人力、设备、材料等。
(2)资源调度:根据项目进度,实时调整资源分配,确保项目顺利进行。
(3)资源利用率分析:分析项目资源利用率,提高资源利用效率。
3. 成本管理(1)成本估算:根据项目需求,估算项目成本。
数据库设计以及源代码
系统建设详细设计1、数据库设计管理员用户表信息:学生用户表:学生信息表:班级文本50 所在班级专业文本50 所学专业2 系统程序文件设计与编写与数据库连接的代码:<% db="message、mdb"set Conn=server、createobject("adodb、Connection")conn、open "Provider=Microsoft、Jet、OLEDB、4、0;Data Source="&server、mappath(db)%>登陆界面代码:代码为:<!--#include file="conn、inc" --><%if request("Submit")<>"" thenset rs=server、createobject("adodb、recordset")sql="SELECT username,password from users where username='"&request("username")&"'"rs、open sql,conn,1,3if rs、bof and rs、eof thenmsg="错误:用户名不存在"elseif rs("password")=request("password") thenSession("admin")=trueresponse、redirect "index、asp?users=admin"elsemsg="错误:密码不正确"end ifend ifrs、closeset rs=nothingConn、closeSet conn = Nothingend if%><html><head><title>管理员</title><script language="JavaScript" type="text/JavaScript"><!--function MM_jumpMenu(targ,selObj,restore){ //v3、0eval(targ+"、location='"+selObj、options[selObj、selectedIndex]、value+"'");if (restore) selObj、selectedIndex=0;}//--></script><LINK href="style、css" rel=Stylesheet type=text/css></head><center><span class="style1”>学生信息管理系统</span></center></td></tr><tr><td colspan="2"><center>管理员:<input name="username" type="text" maxlength="10">密码:<input name="password" type="password" > <input type="submit" name="Submit" value="登录"><input type="reset" name="Submit2" value="重置">用户类型:<select name="menu1" onChange="MM_jumpMenu('parent',this,0)"><option value="admin_login、asp" selected>管理员</option><option value="student_login、asp">学生</option></select> <br> <fontcolor=red><%=msg%></font> </center> </td></tr></table></form></body></html>显示信息:代码为:<!--#include file=”conn、inc”<%if Session(“admin”)<>true and Session(“student”)<>true then Response、Redirect “student_login、asp”end if%><!doctype html public “-//W3C//DTD HTML 4、0 Transitional//EN”><html><head><title>学生信息</title><LINK href=”style、css” rel=Stylesheet type=text/css></style></head><table align=center><tr><td colspan=”2”><center><span class=”style1”>学生信息管理系统</span></center></td></tr><tr><td colspan=”5”><a href=”#”>[<b>首页</b>]</a><a href=”search、asp”>[查询]</a><a title=”需要管理员权限”href=”post、asp”>[添加]</a><a href=”admin_login、asp”>[管理]</a><a href=”logout、asp”>[退出]</a></td></tr></table><%users = Request(“users”)If request(“PageNo”)=”” thenPageNo=1ElsePageNo=int(request(“PageNo”))End Ifsql=”SELECT * from liuyan order by ID desc”set rs=server、createobject(“adodb、recordset”)rs、open sql,conn,1,3if not(rs、eof and rs、bof) thenrs、Pagesize=3rs、absolutepage=PageNox = 0For x = 1 to rs、Pagesizeif x mod 2 thentr_color=”#EBEBEB”elsetr_c olor=”#ffffff”end ifIf rs、eof thenExit ForElseif isNull(Rs(“Dateandtime”)) thenstrDateandtime = “”elsestrDateandtime = Cstr(Rs(“Dateandtime”))end if‘Username,Email,Content,Sex,DateandtimeResponse、Write “<tabl e width=50% border=0 align=center cellpadding=0 cellspacing=0 bgcolor=” + tr_color+ “>”Response、Write “<tr>”Response、Write “<td width=20% nowrap>姓名:</td>”Response、Write “<td width=60% class=Tab>” + Rs(“Username”) + “</td>”‘修改删除链接if us ers = “admin” thenResponse、Write “<td width=20% class=Tab align=right>” + “<a href=post、asp?users=” + users + “&id=” + cstr(Rs(“ID”)) + “><font color=blue>修改</font></a> <a href=delete、asp?users=” + users + “&id=” + cstr(Rs(“ID”)) + “><font color=blue>删除</font></a>” + “</td>”elseResponse、Write “<td width=20% class=Tab></td>”end ifResponse、Write “</tr>”Response、Write “<tr>”Response、Write “<td>性别:</td>”Response、Write “<td colspan=2>” + Rs(“Sex”) + “</td>”Response、Write “</tr>”Response、Write “<tr>”Response、Write “<td>班级:</td>”Response、Write “<td colspan=2>” + Rs(“Class”) + “</td>”Response、Write “</tr>”Response、Write “<tr>”Response、Write “<td>专业:</td>”Response、Write “<td colspan=2>” + Rs(“Major”) + “</td>”Response、Write “</tr>”Response、Write “<tr>”Response、Write “<td>入学时间:</td>”Response、Write “<td colspan=2>” + strDateandtime + “</td>”Response、Write “</tr>”Response、Write “<tr>”Response、Write “<td>评语:</td>”Response、Write “<td colspan=2>” + Rs(“Content”) + “</td>”Response、Write “</tr>”Response、Write “<tr>”Response、Write “<td>E-mail:</td>”Response、Write “<td colspan=2>” + Rs(“Email”) + “</td>”Response、Write “</tr>”Response、Write “</table>”Response、Write “<table border=0 align=center>”‘if users = “admin” then‘Response、Write “<tr>”‘Response、Write “<td align=right bgcolor=”+ tr_color+ “><a href=delete、asp?users=”+ users + “&id=”+ cstr(Rs(“ID”)) + “><font color=red>删除</font></a></td>”‘Response、Writ e “</tr>”‘end ifResponse、Write “<tr>”Response、Write “<td height=1></td>”Response、Write “</tr>”Response、Write “</table>”rs、MoveNextEnd IfNextend ifif rs、recordcount > 0 then<tr><td>共有<%=rs、recordcount%>条学生信息 <%=rs、pagesize%>条/页 共<%=rs、pagecount%>页</td><td align=”right” class=”Tab”>分页:<%for i=1 to rs、pagecountif pageno <> I thenResponse、Write “<A href=index、asp?users=” + users + “&pageno=” + cstr(i) + “>”&i&”</a> ”elseResponse、Writ e “<b>” & I & “</b> ”end ifnext%></td> </tr></table>Else<tr><td><marquee>目前,没有任何学生信息!</marquee></td> </tr></table>End if<%rs、closeset rs=nothingConn、closeSet conn = Nothing%></body></html>4、查询信息页面显示:代码为:<!--#include file="conn、inc" --><%if Session("admin")<>true and Session("student")<>true then Response、Redirect "student_login、asp"end if%>if studentid <>0 thensql="SELECT * from liuyan where ID="&studentidset rs=server、createobject("adodb、recordset")rs、open sql,conn,1,3<%rs、closeset rs=nothingConn、closeSet conn = Nothingend if%>。
数据库设计教案
数据库课程设计教案一、课程设计目的数据库系统课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据库系统概论》课程后进行的一次全面的综合练习。
其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
1)熟悉数据库系统的开发流程;2)培养学生实际规划开发项目的能力;3)培养学生的团队协作精神。
二、课程设计要求运用某个数据库管理系统及开发工具制作一个小型管理信息系统。
所设计的管理系统应包含输入输出、查询统计、插入、删除、报表及数据备份等基本功能。
题目的选择可以是实际问题,也可以是虚构的问题。
根据所学的软件软件工程和数据库设计理论、方法,写出详细的设计说明书。
三、课程设计的组织形式数据库系统课程设计分小组进行,每组学生人数一般3-5人。
分组按成绩好差、能力强弱搭配的原则,每个小组由1名组长负责安排和协调组员的任务。
四、课程设计开发环境数据库设计环境及程序设计语言可以自选。
五、课程设计参考教材《数据库系统概论》萨师煊王珊编著,高等教育版社,2000.2《软件工程—理论、方法与实践》刘强编著,高等教育版社,2005.7六、课程设计时间课程设计时间为18周,每周2节课,学分1分,第18周提交设计文档及源代码。
七、课程设计考核方式学生所完成的数据库管理系统的设计文档和程序设计结果,以此作为考核依据。
八、附录1、附录1 设计文档参考格式2、附录2 设计参考题目1、附录1 设计文档参考格式1) 封面数据库系统课程设计人事薪资管理系统的设计班级____________________________________________学号____________________________________________姓名____________________________________________成绩____________________________________________完成日期:年月日2) 文档格式(1)、概述包括项目背景、编写目的、软件定义、开发环境等内容。
原型开发与数据库设计实验案例
客户
( 客户代码,姓名,性别,街道,城市,省,邮编,电话)
供应商(供应商代码,姓名,街道,城市,省,邮编,电话) 雇员 ( 雇员代码,职位,姓名,性别,电话,佣金率)
类别
存货 采购
(类别代码,名称)
(存货代码,[类别代码],[供应商代码],品名规格,售价) (购货定单号,[雇员代码],[供应商代码],日期)
35
复杂查询
• 计算迄今为止的销售佣金总额。第1个查询从 多个表中选出各职员的佣金率和所售商品的 数量、售价计算佣金,第2个查询再使用第一 个查询的结果得出销售总佣金。查询结果保 存为L_5A和L_5B。 • 哪类产品的产品成本加成率最高?计算公式 为[售价]-[单位成本]/[单位成本]。列出按降序 排列的各种存货的平均成本加成率。查询结 果保存为L_6。
第1部分
本部分的目标是告诉读者如何建立数据库中的表。此 处使用的数据库是微软的数据库产品Access97/2000。 背景资料:Canyon Adventure Equitment Company (CAEC)公司最近刚开始营业。CAEC在一家地方性的零售 商店销售各式的自行车、滑雪、野营用的传动装置。 CAEC致力于以最合理的价格向客户提供最好的传动装置。 CAEC的业主希望将有关运营活动的数据收集到一个关系 数据库中,管理人员将使用该数据库管理业务。现在请你 为CAEC建立该数据库。 CAEC的局部REAL模型参见下图:
14
Microsoft Access注释
• 建立数据库和表所需的命令:
• 1、建立新的数据库:从开始菜单的程序组中选择Microsoft Access 并单击启动ACCESS,在窗口中选择新建数据库/空数据库,单击确 定。在文件新建数据库窗口的保存位置中选择驱动器D:,单击窗口 工具栏新建文件夹,输入ACS [班级],并单击保存,选择ACS[班级] 子目录,输入数据库名:CAEC[学号],单击创建将打开数据库窗口。 • 2、建立表:在数据库窗口中选择表/新建,在弹出窗口中选择设计视 图并单击确定,出现表1:表窗口。你可以在其中输入字段名称、数 据类型、说明,调整字段属性(大小,格式,小数位、标题、默认 值、有效性规则)等,并设置主键(在关键字字段上单击右键,从 快捷菜单中选择主键即可)。利用快捷菜单也可以插入删除行(字 段)。新表编辑完成后,单击窗口的关闭按钮,根据提示输入表名 称,单击确定即完成新表的保存并返回数据库窗口。
《数据库应用》课程设计——人事管理系统(java源代码)
《数据库应用》课程设计——人事管理系统(java源代码)//用户登陆类package classsource;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Land extends JFrame{JFrame jf ;JTextField textName=new JTextField(); JPasswordField textage=new JPasswordField(); JLabel label = new JLabel("员工管理系统");JLabel labelName=new JLabel("用户名:");JLabel labelage=new JLabel("密码:");JButton buttonEnter=new JButton("登录");JButton buttoncancel=new JButton("清空");public Land(){jf=this;setTitle("登录");Font f = new Font("新宋体",Font.PLAIN,12); Container con = getContentPane();con.setLayout(null);label.setBounds(95,10,110,20);label.setFont(new Font("新宋体",Font.PLAIN,14));con.add(label);labelName.setBounds(45,40,55,20);labelName.setFont(f);con.add(labelName);textName.setBounds(95,40,120,20);con.add(textName);labelage.setBounds(45,70,45,20);con.add(labelage);labelage.setFont(f);textage.setBounds(95,70,120,20);con.add(textage);buttonEnter.setBounds(90,110,60,20);buttonEnter.setFont(f);con.add(buttonEnter);//登陆的鼠标监听buttonEnter.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent me){if(textName.getText().equals("")){new JOptionPane().showMessageDialog(null,"用户名不能为空!"); }else if(textage.getText().equals("")){new JOptionPane().showMessageDialog(null,"密码不能为空!"); }else{String sql="select * from UserInformation where User_Name = '" + textName.getText() + "' and Password = '" + textage.getText()+ "'";System.out.println(sql);Judge(sql);}}});buttoncancel.setBounds(155,110,60,20);buttoncancel.setFont(f);con.add(buttoncancel);//清空按钮的鼠标监听方法buttoncancel.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent me){textName.setText("");textage.setText("");}});setResizable(false);Image img=Toolkit.getDefaultToolkit().getImage("image\\main.gif");setIconImage(img);Toolkit t = Toolkit.getDefaultToolkit();int w = t.getScreenSize().width;int h = t.getScreenSize().height;setBounds(w/2-150,h/2-90,300,180);setVisible(true);}private void Judge(String sqlString) {if (Database.joinDB()) {if (Database.query(sqlString))try{if(Database.rs.isBeforeFirst()) {System.out.println("密码正确");jf.setVisible(false);.close();new Main();}else {System.out.println("错误");new JOptionPane().showMessageDialog(null,"用户名或密码错误!","",JOptionPane.ERROR_MESSAGE);}}catch(Exception ex) {System.out.println(ex.getMessage());}}else{System.out.println("连接数据库不成功");}}public static void main(String args[]){new Land();}}//主函数类,可以独立运行package classsource;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Main extends JFrame implements Runnable{ Thread t=new Thread(this);JDesktopPane deskpane = new JDesktopPane();JPanel p = new JPanel();Label lp1=new Label("欢迎使用员工管理系统 !"); ImageIcon icon1=new ImageIcon("imagetjsc.gif"); ImageIcon icon2=new ImageIcon("imagecxdl.gif"); ImageIcon icon3=new ImageIcon("imagexgmm.gif"); ImageIcon icon4=new ImageIcon("imagetcxt.gif"); ImageIcon icon5=new ImageIcon("imagejj.gif"); ImageIcon icon6=new ImageIcon("imagehelp.gif"); ImageIcon icon7=new ImageIcon("imagecx.gif"); ImageIcon icon8=new ImageIcon("imagegl.gif");ImageIcon icon9=new ImageIcon("imagext.gif");ImageIcon icon10=new ImageIcon("imagexxgl.gif");ImageIcon icon11=new ImageIcon("imagexxcx.gif");ImageIcon icon12=new ImageIcon("imagebz.gif");ImageIcon icon13=new ImageIcon("imagegy.gif");ImageIcon icon14=new ImageIcon("imageglxx.gif");ImageIcon icon15=new ImageIcon("imagecxxx.gif");//完--------------------------------------------------------------------------------public Main(){setTitle("员工管理系统");Container con = getContentPane();con.setLayout(new BorderLayout());con.add(deskpane,BorderLayout.CENTER);Font f =new Font("新宋体",Font.PLAIN,12);JMenuBar mb = new JMenuBar();JMenu systemM = new JMenu("系统管理");systemM.setFont(f);JMenu manageM = new JMenu("信息管理");manageM.setFont(f);JMenu employeeMM = new JMenu("员工信息管理");employeeMM.setFont(f);JMenu selectM = new JMenu("信息查询");selectM.setFont(f);JMenu employeeSM =new JMenu("员工信息查询"); employeeSM.setFont(f);JMenu helpM = new JMenu("帮助");helpM.setFont(f);JMenu aboutM=new JMenu("关于");aboutM.setFont(f);JMenuItem password = new JMenuItem("密码修改"); password.setFont(f);JMenuItem land = new JMenuItem("重新登陆");land.setFont(f);JMenuItem addDelete = new JMenuItem("添加/删除用户"); addDelete.setFont(f);JMenuItem exit = new JMenuItem("退出系统");exit.setFont(f);systemM.add(password);systemM.add(land);systemM.add(addDelete);systemM.add(exit);//为系统管理菜单加事件password.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){System.out.println("AmendPassword");deskpane.add(new AmendPassword());}});land.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("Land");setVisible(false);new Land();}});addDelete.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ deskpane.add(new AddDeleteUser());}});exit.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//new JOptionPane().showMessageDialog(setVisible(false);}});JMenuItem departmentM = new JMenuItem("部门信息管理"); departmentM.setFont(f);JMenuItem employeeM = new JMenuItem("基本信息管理"); employeeM.setFont(f);JMenuItem trainM = new JMenuItem("培训信息管理");trainM.setFont(f);JMenuItem encouragementPunishM = new JMenuItem("奖罚信息管理"); encouragementPunishM.setFont(f);JMenuItem wageM =new JMenuItem("薪资信息管理");wageM.setFont(f);employeeMM.add(trainM);employeeMM.add(employeeM);employeeMM.add(encouragementPunishM);employeeMM.add(wageM);manageM.add(employeeMM);manageM.add(departmentM);//为管理菜单加事件departmentM.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("Departmentmanage");deskpane.add(new Departmentmanage());}});employeeM.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("Employeemanage");deskpane.add(new Employeemanage());}});trainM.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("Trainmanage");deskpane.add(new Trainmanage());}});encouragementPunishM.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){System.out.println("EncouragementPunish");deskpane.add(new EncouragementPunish());}});wageM.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("WageManage");deskpane.add(new WageManage());}});JMenuItem departmentS = new JMenuItem("部门信息查询"); departmentS.setFont(f);JMenuItem employeeS = new JMenuItem("基本信息查询"); employeeS.setFont(f);JMenuItem trainS = new JMenuItem("培训信息查询");trainS.setFont(f);JMenuItem encouragementPunishS = new JMenuItem("奖罚信息查询"); encouragementPunishS.setFont(f);JMenuItem wageS =new JMenuItem("薪资信息查询");wageS.setFont(f);employeeSM.add(trainS);employeeSM.add(employeeS);employeeSM.add(encouragementPunishS);employeeSM.add(wageS);selectM.add(employeeSM);selectM.add(departmentS);//为查询菜单加事件departmentS.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("DIQ");deskpane.add(new DIQ());}});employeeS.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("BIQ");deskpane.add(new BIQ());}});trainS.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("TIQ");deskpane.add(new TIQ());}});encouragementPunishS.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){System.out.println("EPIQ");deskpane.add(new EPIQ());}});wageS.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("SIQ");deskpane.add(new SIQ());}});JMenuItem help = new JMenuItem("帮助");help.setFont(f);JMenuItem about =new JMenuItem("关于");about.setFont(f);helpM.add(help);aboutM.add(about);//为帮助菜单加事件about.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){deskpane.add(new About());}});mb.add(systemM);mb.add(manageM);mb.add(selectM);mb.add(helpM);mb.add(aboutM);setJMenuBar(mb);Image img=Toolkit.getDefaultToolkit().getImage("imagemain.gif"); setIconImage(img);systemM.setIcon(icon9);manageM.setIcon(icon8);selectM.setIcon(icon7);helpM.setIcon(icon6);addDelete.setIcon(icon1);land.setIcon(icon2);password.setIcon(icon3);exit.setIcon(icon4);employeeMM.setIcon(icon5);employeeSM.setIcon(icon5);departmentM.setIcon(icon10);departmentS.setIcon(icon11);help.setIcon(icon6);aboutM.setIcon(icon13);about.setIcon(icon13);employeeM.setIcon(icon14);trainM.setIcon(icon14); encouragementPunishM.setIcon(icon14); wageM.setIcon(icon14);employeeS.setIcon(icon15);trainS.setIcon(icon15); encouragementPunishS.setIcon(icon15); wageS.setIcon(icon15);JToolBar jToolBar1 = new JToolBar(); jToolBar1.setLayout(new GridLayout(9,1)); JButton jButton1 = new JButton();jButton1.setToolTipText("员工基本信息管理"); JButton jButton2 = new JButton();jButton2.setToolTipText("员工基本信息查询"); JButton jButton3 = new JButton();jButton3.setToolTipText("修改密码");JButton jButton5 = new JButton();jButton5.setToolTipText("计算器");JButton jButton6 = new JButton();jButton6.setToolTipText("退出系统");jToolBar1.setMaximumSize(new java.awt.Dimension(600, 50)); jToolBar1.setMinimumSize(new java.awt.Dimension(600, 50)); //添加工具栏中按钮的方法jButton1.setIcon(new ImageIcon("image1.png"));jButton1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("Employeemanage");deskpane.add(new Employeemanage());}});jToolBar1.add(jButton1);jButton2.setIcon(new ImageIcon("image2.png"));jButton2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){deskpane.add(new BIQ());}});jToolBar1.add(jButton2);jButton3.setIcon(new ImageIcon("image3.png"));jButton3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){deskpane.add(new AmendPassword());}});jToolBar1.add(jButton3);jButton5.setIcon(new ImageIcon("image5.png"));jButton5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("Calculator");deskpane.add(new Calculator());}});jToolBar1.add(jButton5);jButton6.setIcon(new javax.swing.ImageIcon("image6.png")); jButton6.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});jToolBar1.add(jButton6);jToolBar1.setBounds(0, 0, 30, 600);jToolBar1.setEnabled(false);con.add(jToolBar1,BorderLayout.WEST);p.setLayout(new BorderLayout());p.add(lp1,BorderLayout.EAST);t.start();con.add(p,BorderLayout.SOUTH);Toolkit t = Toolkit.getDefaultToolkit();int width = t.getScreenSize().width - 200; int height = t.getScreenSize().height - 100; setSize(width,height);setLocation(150,100);setVisible(true);setResizable(false);}//线程的方法public void run(){System.out.println("线程启动了!");Toolkit t = Toolkit.getDefaultToolkit();int x=t.getScreenSize().width;System.out.println("x=" + x);lp1.setForeground(Color.red);while(true){if(x<-600){x=t.getScreenSize().width;}lp1.setBounds(x,0,700,20);x-=10;try{Thread.sleep(100);}catch(Exception e){} }}public static void main(String[] args){new Main();}}//数据库联接类package classsource;import java.sql.*;public class Database {public static Connection cn;public static Statement st;public static ResultSet rs;public static boolean joinDB() {boolean joinFlag;try {joinFlag = true;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cn =DriverManager.getConnection("jdbc:odbc:EmployeeInformationMS","sa"," ");cn.setCatalog("EmployeeInformationMS");System.out.println("数据库连接成功");st = cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);return joinFlag;} catch (SQLException sqlEx) {System.out.println(sqlEx.getMessage());joinFlag = false;return joinFlag;} catch (ClassNotFoundException notfoundEX) { System.out.println(notfoundEX.getMessage());joinFlag = false;return joinFlag;}}public static boolean executeSQL(String sqlString) { boolean executeFlag;try {st.execute(sqlString);executeFlag = true;} catch (Exception e) {executeFlag = false;System.out.println("sql exception:" + e.getMessage()); }return executeFlag;}public static boolean query(String sqlString) {try {rs = null;//System.out.println(sqlString);rs = st.executeQuery(sqlString);} catch (Exception Ex) {System.out.println("sql exception:" + Ex);return false;}return true;}}//添加删除用户类package classsource;import java.awt.event.*;import java.awt.*;import javax.swing.*;import java.sql.*;public class AddDeleteUser extends javax.swing.JInternalFrame { private JButton butACancel,butDCancel,butDelete,butOk;private JComboBox cbUserName;private JLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5;private JPasswordField pas1,pas2,pas3;private JTextField txtname;public AddDeleteUser() {initComponents();this.setVisible(true);this.setClosable(true);this.setSize(268,350);}private void initComponents() { jLabel1 = new JLabel();jLabel2 = new JLabel();jLabel3 = new JLabel();txtname = new JTextField();pas1 = new JPasswordField();pas2 = new JPasswordField(); butOk = new JButton();butACancel = new JButton();jLabel4 = new JLabel(); cbUserName = new JComboBox(); jLabel5 = new JLabel();pas3 = new JPasswordField(); butDelete = new JButton(); butDCancel = new JButton(); getContentPane().setLayout(null); jLabel1.setText("新用户名:"); getContentPane().add(jLabel1); jLabel1.setBounds(30, 30, 70, 20); jLabel2.setText("输入密码:");getContentPane().add(jLabel2);jLabel2.setBounds(30, 60, 70, 18); jLabel3.setText("确认密码:"); getContentPane().add(jLabel3);jLabel3.setBounds(30, 90, 60, 18); getContentPane().add(txtname); txtname.setBounds(100, 30, 130, 24); getContentPane().add(pas1);pas1.setBounds(100, 60, 130, 24); getContentPane().add(pas2);pas2.setBounds(100, 90, 130, 24); butOk.setText("添加");getContentPane().add(butOk);butOk.setBounds(80, 130, 70, 27); butACancel.setText("清空"); getContentPane().add(butACancel); butACancel.setBounds(160, 130, 70, 27); jLabel4.setText("已有用户名:"); getContentPane().add(jLabel4);jLabel4.setBounds(30, 180, 80, 18); getContentPane().add(cbUserName); cbUserName.setBounds(100, 180, 130, 24); jLabel5.setText("密码:"); getContentPane().add(jLabel5);jLabel5.setBounds(30, 210, 60, 18);getContentPane().add(pas3);pas3.setBounds(100, 216, 130, 24);butDelete.setText("删除");getContentPane().add(butDelete);butDelete.setBounds(79, 260, 70, 27);butDCancel.setText("清空");getContentPane().add(butDCancel);butDCancel.setBounds(160, 260, 70, 27);//将所有用用户名读出来Database.joinDB();String sql="select * from UserInformation";try{if(Database.query(sql)){while(Database.rs.next()){String name=Database.rs.getString("User_Name");cbUserName.addItem(name);}}}catch(Exception e){}//为添加和取消按钮加事件----------------------------------------- butOk.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(txtname.getText().equals("")){new JOptionPane().showMessageDialog(null,"用户名不能为空!");}else if(pas1.getText().equals("")){new JOptionPane().showMessageDialog(null,"密码不能为空!");}else if(pas1.getText().equals(pas2.getText())){String sql="insert UserInformation values('"+ txtname.getText() +"','"+ pas1.getText() +"','B')";try{if(Database.executeSQL(sql)){new JOptionPane().showMessageDialog(null,"添加成功!");cbUserName.addItem(txtname.getText());}}catch(Exception ea){}}}});butACancel.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){txtname.setText("");pas1.setText("");pas2.setText("");}});//为删除和取消按钮加事件--------------------------------------- butDelete.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String name="" + cbUserName.getSelectedItem();String sql="select * from UserInformation where User_Name='"+ name +"'";try{if(Database.query(sql)){Database.rs.next();String pas=pas3.getText();String password=Database.rs.getString("Password");System.out.println(password);if(pas.equals(password)){String sdelete="delete from UserInformation where User_Name='"+ name +"'";if(Database.executeSQL(sdelete)){new JOptionPane().showMessageDialog(null,"删除成功!");pas3.setText("");cbUserName.removeAllItems();String sql1="select * from UserInformation";if(Database.query(sql1)){while(Database.rs.next()){Stringname1=Database.rs.getString("User_Name"); cbUserName.addItem(name1);}}}}else{new JOptionPane().showMessageDialog(null,"密码不正确!");}}}catch(Exception el){System.out.println(el);}}});butDCancel.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){pas3.setText("");}});}}//修改密码类package classsource;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class AmendPassword extends JInternalFrame { JLabel lbe1=new JLabel("修改密码");JPanel p=new JPanel();public AmendPassword(){setTitle("修改密码");p.add(lbe1);AmendPanel panel=new AmendPanel();Container contentPane=getContentPane(); contentPane.add(p,"North");contentPane.add(panel,"Center");setBounds(100, 100, 280, 260);this.setClosable(true);setVisible(true);}}class AmendPanel extends JPanel {JButton b1,b2;JLabel lbe2,lbe3,lbe4,lbe5; JPasswordField pas1,pas2,pas3; JComboBox tf;public AmendPanel(){lbe2=new JLabel("用户名:");lbe3=new JLabel("输入旧密码:"); lbe4=new JLabel("输入新密码:"); lbe5=new JLabel("确定新密码:"); tf=new JComboBox();pas1=new JPasswordField();pas2=new JPasswordField();pas3=new JPasswordField();b1=new JButton("确定");b2=new JButton("清空");add(lbe2);lbe2.setBounds(16,10,90,25); this.add(tf);tf.setBounds(100,10,120,25); add(lbe3);lbe3.setBounds(16,45,90,25);add(pas1);pas1.setBounds(100,45,120,25);add(lbe4);lbe4.setBounds(16,80,80,25);add(pas2);pas2.setBounds(100,80,120,25);add(lbe5);lbe5.setBounds(16,115,80,25);add(pas3);pas3.setBounds(100,115,120,25);add(b1);b1.setBounds(100,160,60,30);add(b2);b2.setBounds(160,160,60,30);setLayout(null);//将所有用用户名读出来Database.joinDB();String sql="select * from UserInformation";try{if(Database.query(sql)){while(Database.rs.next()){String name=Database.rs.getString("User_Name"); tf.addItem(name);}}}catch(Exception e){}//为确定取消按钮加事件b1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String name="" + tf.getSelectedItem();System.out.println(name);String sql="select * from UserInformation where User_Name='"+ name +"'";System.out.println(sql);try{if(Database.query(sql)){Database.rs.next();String ps1=pas1.getText();String password=Database.rs.getString("Password");if(ps1.equals(password)){if(pas2.getText().equals(pas3.getText())){String supdate="update UserInformation set Password='"+pas3.getText()+"' where User_Name='"+ name +"'";Database.executeSQL(supdate);new JOptionPane().showMessageDialog(null,"密码更改成功!");}else{new JOptionPane().showMessageDialog(null,"两次密码不同!");}}else{new JOptionPane().showMessageDialog(null,"旧密码不正确!");}}}catch(Exception el){System.out.println(el);}}});b2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){pas1.setText("");pas2.setText("");pas3.setText("");}});}}//关于类package classsource;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class About extends JInternalFrame {JLabel label = new JLabel("运行环境:Windows");JLabel labe2 = new JLabel("开发语言:JAVA");JLabel labe3 = new JLabel("数据库类型:SqlServer2000"); public About(){setTitle("关于");Container con=getContentPane();con.setLayout(new GridLayout(4,1));con.add(label);con.add(labe2);con.add(labe3);con.setBackground(Color.white);setResizable(false);setSize(380,220);setVisible(true);setClosable(true);}}//员工信息查询类package classsource;import java.awt.*;import javax.swing.*;import javax.swing.table.*;import java.awt.event.*;import java.util.*;import javax.swing.JScrollPane.*;import java.sql.*;public class BIQ extends JInternalFrame{JLabel lbl1=new JLabel("基本信息查询");JLabel lbl2=new JLabel("员工编号:");JLabel lbl3=new JLabel("员工姓名:");JTextField btxtid=new JTextField(10);JTextField btxtname=new JTextField(10);JButton btn1=new JButton("查询");JTable table;DefaultTableModel dtm;String columns[] = {"员工编号","员工姓名"," 性别 ","出生日期","婚姻状况","政治面貌"," 学历 ","进入公司时间","转正时间"," 部门 "," 职务 ","员工状态"," 备注"};public BIQ(){setTitle("基本信息查询");dtm = new DefaultTableModel();table = new JTable(dtm);JScrollPane sl = new JScrollPane();sl.getViewport().add(table);dtm.setColumnCount(5);dtm.setColumnIdentifiers(columns); getContentPane().setLayout(null);lbl1.setBounds(240,10,300,30);lbl1.setFont(new Font("宋体",Font.BOLD,24)); getContentPane().add(lbl1);Font f=new Font("宋体",Font.PLAIN,12);lbl2.setBounds(10,60,80,25);lbl2.setFont(f);getContentPane().add(lbl2);btxtid.setBounds(80,60,80,23);btxtid.setFont(f);getContentPane().add(btxtid);lbl3.setBounds(10,90,80,25);lbl3.setFont(f);getContentPane().add(lbl3);btxtname.setBounds(80,90,80,23);btxtname.setFont(f);getContentPane().add(btxtname);btn1.setBounds(90,130,60,25);btn1.setFont(f);getContentPane().add(btn1);sl.setBounds(180,60,500,370);getContentPane().add(sl);//设置边框btxtid.setBorder(BorderFactory.createLineBorder(Color.black));btxtname.setBorder(BorderFactory.createLineBorder(Color.black));btn1.setBorder(BorderFactory.createRaisedBevelBorder());sl.setBorder(BorderFactory.createLineBorder(Color.black));//----连接数据库--------------------------------------------------------------------------Database.joinDB();String sql="select * from EmployeeInformation";if(Database.query(sql)){System.out.println(sql);try{while(Database.rs.next()){String eNumber=(""+Database.rs.getInt("E_Number"));System.out.println(eNumber);String eName=Database.rs.getString("E_Name");System.out.println(eName);String eSex=Database.rs.getString("E_Sex");System.out.println(eSex);String eBornDate=Database.rs.getString("E_BornDate");System.out.println(eBornDate);String eMarriage=Database.rs.getString("E_Marriage");System.out.println(eMarriage);StringePoliticsVisage=Database.rs.getString("E_PoliticsVisage"); System.out.println(ePoliticsVisage);String eSchoolAge=Database.rs.getString("E_SchoolAge"); System.out.println(eSchoolAge);String eEnterDate=Database.rs.getString("E_EnterDate"); System.out.println(eEnterDate);String eInDueFormDate=Database.rs.getString("E_InDueFormDate"); System.out.println(eInDueFormDate);String eDepartment=Database.rs.getString("E_Department"); System.out.println(eDepartment);String eHeadship=Database.rs.getString("E_Headship");System.out.println(eHeadship);String eEstate=Database.rs.getString("E_Estate");System.out.println(eEstate);String eRemark=Database.rs.getString("E_Remark");System.out.println(eRemark);Vector v=new Vector();v.add(eNumber);v.add(eName);v.add(eSex);v.add(eBornDate);v.add(eMarriage);v.add(ePoliticsVisage);v.add(eSchoolAge);v.add(eEnterDate);v.add(eInDueFormDate);v.add(eDepartment);v.add(eHeadship);v.add(eEstate);v.add(eRemark);dtm.addRow(v);}}catch(Exception eBIQ){System.out.println("初始化数据失败!");}}//为查询按钮加事件btn1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent eBIQ){ System.out.println("按钮事件");String esql;int rc=dtm.getRowCount();for(int i=0;i<rc;i++){dtm.removeRow(0);}if(btxtid.getText().equals("")&&btxtname.getText().equals("")){ esql="select * from EmployeeInformation";}else if(btxtname.getText().equals("")){esql="select * from EmployeeInformation where E_Number = '" + btxtid.getText() +"'";}else{esql="select * from EmployeeInformation where E_Number = '" + btxtid.getText() +"' or E_Name like '%"+ btxtname.getText() +"%'";}System.out.println(esql);if(Database.query(esql)){try{while(Database.rs.next()){String eNumber=(""+Database.rs.getInt("E_Number"));System.out.println(eNumber);String eName=Database.rs.getString("E_Name");System.out.println(eName);。
数据库课程设计(学生管理系统)-附代码
数据库课程设计报告题目:学生信息管理系统院系名称:计算机学院专业名称:班级:学生姓名:学号(8位):指导教师:设计起止时间:2011年12月19日~2011年12月30日一. 设计目的1、掌握DBMS的基本工作原理2、培养数据库应用系统设计的基本思路和方法3、培养分析、解决问题的能力二. 设计内容利用数据库实现对学生信息的管理所用数据库:sqlserver 2008开发语言:java、开发工具:eclipse三.概要设计通过访问数据库实现以下功能:1、不同用户权限登陆系统2、用户密码修改3、学生信息的添加、查询、修改、浏览1.功能模块图2.各个模块详细的功能描述。
1、系统用户管理模块管理员和普通用户通过这个模块登陆系统,不同的用户用不同的用户名登陆,通过选择登陆模式(管理员或者普通用户)登陆系统,完成不同的操作。
两种用户都可以对自己的登陆密码进行修改。
新用户可进行注册操作,注册后登陆,并进行信息的完善。
2、学生信息管理模块管理员和普通用户对学生信息由不同的操作。
管理员可以对信息进行增加,删除,修改和列表查看,普通用户对自己的信息可进行查询,和修改。
四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图3.重点设计及编码、--学生信息表--create table studentinfo(Sid int primary key identity(1,1),Sname varchar(30) not null,Ssex varchar(10) check(Ssex='男' or Ssex='女'),Snumber varchar(8) check(Snumber like '0409[0-9][0-9][0-9][0-9]') not null,Sprofession varchar(30),Sclass varchar(20),Sdate datetime default getDate());--普通用户登陆信息表--create table userinfo(id int primary key identity(1,1),name varchar(30) not null,mima varchar(20) not null);--管理员登陆信息表--create table userinfo(id int primary key identity(1,1),name varchar(30) not null,mima varchar(20) not null);--连接数据库—try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}catch(ClassNotFoundException e){System.out.print("加载驱动程序失败");}String conURL="jdbc:sqlserver://localhost:1433; DatabaseName=SIMS";try{Connectioncon=DriverManager.getConnection(conURL,"sa","majie");Statement st=con.createStatement();、}catch(SQLException g){System.out.println("错误代码:"+g.getErrorCode());System.out.println("错误内容:"+g.getMessage());}五.测试数据及运行结果1.正常测试数据和运行结果登录信息查询修改信息2.异常测试数据及运行结果六.调试情况,设计技巧及体会1.改进方案本次课程设计实现了系统的基本功能,做的不是很复杂,跟预期想的结果有些差距,数据库表的设计有点简单,下来还要增加表的复杂度,以及触发器的使用。
数据库设计源代码
ieldType=='D'{count+=8;continue;}else ifrec->fieldi.fieldType=='I'{count+=4;continue;}else ifrec->fieldi.fieldType=='T'{count+=6;continue;}count+=rec->fieldi.fieldLen;}return count+1;}pDbfHand NewDbfHeadpDbfHand hand, pDbfRec recieldType;= 0;switch{case DOUBLE:= 8;break;case FLOAT:= 4;break;case INT:= 4;break;case SHORT:= 2;break;default:= rec-> fieldi.fieldLen;break;}strcpy, rec-> fieldi.fieldName;+= shortrec-> fieldi.fieldLen;if-1 ==fwritechar&field, sizeofFieldDcp , 1 , hand->fd return NULL;}hand-> = 0x20;hand-> = rec-> realCounts;for i = 0; i < rec-> realCounts; i++hand-> i = rec-> fieldi;return hand;}void WriteFieldEndpDbfHand handieldName,,sizeof;hand-> i.fieldLen = ;hand-> i.fieldType = ;hand-> i.fieldDcis = ;hand-> i.offset = ;}fori=0;i<hand->;i++{forj=0;hand->i.fieldNamej='\0';j++{hand->i.fieldNamej=tolowerhand->i.fieldNamej;}}return hand;}char SaveDate char strieldType == DA TE && record-> fieldi.fieldData = NULL record-> fieldi.fieldData = SaveDaterecord-> fieldi.fieldData;curFieldLen = hand-> i.fieldLen;actDataLen = strlenrecord-> fieldi.fieldData;if actDataLen > curFieldLenactDataLen = curFieldLen;memcpy&bufnPos, record-> fieldi.fieldData, actDataLen;nPos += hand-> i.fieldLen;}bufhand-> = '\0 ';if -1 == fwritebuf, hand-> , 1 , hand->fdrest = FALSE;return rest;}char ReadDbfDate char strieldName{flag=1;break;}}ifflagreturn j;elsereturn -1;}int IsBottomRecordpDbfHand handieldData=charmallochand->m.fieldLen+1;memsetrec->fieldm.fieldData, 0x00, hand->m.fieldLen+1;}if -1== fseekhand->fd,hand->curFpAddr, SEEK_SET ieldLen;memcpyrec->fieldi.fieldData,recData+fieldOffset,curFieldLen;rec->fieldi.fieldData = DsdStrEndSpacerec->fieldi.fieldData, curFieldLen;if rec->fieldi.fieldType == DATE && rec->fieldi.fieldData0 = 0x20rec->fieldi.fieldData =ReadDbfDaterec->fieldi.fieldData;}return 1;}pDbfHand AddRecpDbfHand hand, pDbfRec recordieldData=charmalloclen+1;memsetreci->fieldhand->.fieldData, 0x00, len+1;reci->realCounts++;}}strcpyhand->hand->.fieldName,field_name;hand->hand->.fieldNamestrlenfield_name='\0';hand->hand->.fieldType=type;hand->hand->.fieldLen=len;hand->hand->.fieldDcis=dec;hand->++;reccounts=hand->;hand->fd=fopen"c:\\数据库\\","w";fclosehand->fd;hand->fd=fopen"c:\\数据库\\","w+b";ifNewDbfHeadhand, &hand->rec == NULLreturn NULL;if NULL == WriteFieldDicsribehand, &hand->recreturn NULL;WriteFieldEndhand;if0=fclosehand->fdreturn NULL;fori=0;i<reccounts;i++AddRechand,reci;return hand;}pDbfHand AlterFieldpDbfHand hand,char field_name,char type,int len,int decieldDcis=dec;reci->fieldnum.fieldLen=len;reci->fieldnum.fieldType=type;}}hand->num.fieldType=type;hand->num.fieldLen=len;hand->num.fieldDcis=dec;reccounts=hand->;hand->fd=fopen"c:\\数据库\\","w";fclosehand->fd;hand->fd=fopen"c:\\数据库\\","w+b";ifNewDbfHeadhand, &hand->rec == NULLreturn NULL;if NULL == WriteFieldDicsribehand, &hand->recreturn NULL;WriteFieldEndhand;if0=fclosehand->fdreturn NULL;fori=0;i<reccounts;i++AddRechand,reci;return hand;}pDbfHand DropFieldpDbfHand hand,char field_name,int nieldDcis=reci->fieldnum+1.fieldDcis;reci->fieldnum.fieldLen=reci->fieldnum+1.fieldLen;reci->fieldnum.fieldType=reci->fieldnum+1.fieldType;num++;}}ifnum==-1{forj=0;j<10;j++hand->num.fieldNamej=0;hand->num.fieldType=0;hand->num.fieldLen=0;hand->num.fieldDcis=0;}else{for;num<n;num++{strcpyhand->num.fieldName,hand->num+1.fieldName;hand->num.fieldType=hand->num+1.fieldType;hand->num.fieldLen=hand->num+1.fieldLen;hand->num.fieldDcis=hand->num+1.fieldDcis;}}hand->;reccounts=hand->;hand->fd=fopen"c:\\数据库\\","w";fclosehand->fd;hand->fd=fopen"c:\\数据库\\","w+b";ifNewDbfHeadhand,&hand->rec == NULLreturn NULL;if NULL == WriteFieldDicsribehand,&hand->recreturn NULL;WriteFieldEndhand;if0=fclosehand->fdreturn NULL;fori=0;i<reccounts;i++AddRechand,reci;return hand;}pDbfHand CreateDbfDbfRec rec; bftable_namej+1='d';table_namej+2='b';table_namej+3='f';table_namej+4='\0';do{int field_lengtf=0,flag=1;ieldNamej=sqli;num.fieldNamej='\0';for;sqli==' ';i++;forj=0;sqli=' '&&sqli=',';i++,j++ieldType=Type1j;break;}}ifj==5ieldType=='C'{ieldLen=field_lengtf;}else ifnum.fieldType=='N'||num.fieldType=='F'num.fieldLen=4;else ifnum.fieldType=='D'num.fieldLen=8;else ifnum.fieldType=='S'num.fieldLen=2;field_lengtf=0,flag=1;for;sqli==' ';i++;forj=0;sqli=' '&&sqli=','&&sqli=';';i++,j++lag=1;else{error=0;printf"\n你输入的'KEY'有误,请重新创建\n";break;}}else ifstrcmpcondition,"unique"==0lag=2;else ifstrcmpcondition,"not"==0lag=3;else{error=0;printf"\n你输入的约束条件'NOT NULL'有误,请重新创建\n";break;}}elseieldDcis=0;num.offset=0;=num+1;num++;bf文件return 1;elsereturn 0;}return 1;}int ALTER{char type610={"char","int","short","float","double"};char Type16={'C','N','S','F','D'};FILE fp;int i,j,num,error=1;char T; ; bftable_namej+1='d';table_namej+2='b';table_namej+3='f';table_namej+4='\0';iff=OpenDbf==0 lag=1;else{error=0;printf"\n你输入的'KEY'有误,请重新输入SQL语句\n";}}else ifstrcmpcondition,"unique"==0lag=2;else ifstrcmpcondition,"not"==0lag=3;else{error=0;printf"\n你输入的约束条件'NOT NULL'有误,请重新输入SQL语句\n";}}else lag;iffp=fopen"d:\\","a+b"{printf"打开约束性条件文件失败,请重新输入SQL语句\n";return 0;}fwrite&con,sizeofCondition,1,fp;fclosefp;}}else ifstrcmptemp,"alter"==0ieldName=NULLprintf" %-6s|",f->i.fieldName;}printf"\n";printf"-----------+";fori=0;i<f->;i++printf"-------+";printf"\n";printf"完整性约束|";fori=0;i<f->;i++{switchconi.flag{case 1:printf" 主键|";break;case 2:printf"唯一值|";break;case 3:printf" 非空|";break;default:printf" |";}}printf"-----------+";fori=0;i<f->;i++printf"-------+";printf"\n";printf"TYPE |";fori=0;i<f->;i++{switchf->i.fieldType{case 'N':printf" int |";break;case 'C':printf" char |";break;case 'S':printf" short |";break;case 'F':printf" float |";break;case 'D':printf" double|";break;default:printf" |";}}printf"\n";printf"-----------+";fori=0;i<f->;i++printf"-------+";printf"\n";printf"LENGTH |";fori=0;i<f->;i++printf" %2d |",f->i.fieldLen;printf"\n";printf"-----------+";fori=0;i<f->;i++printf"-------+";printf"\n";}fori=0;i<f->;i++printf"\n";printf"表结构如下:\n";fori=0;i<f->;i++printf"-------+";printf"\n";fori=0;i<f->;i++printf" %-6s|",f->i.fieldName;printf"\n";fori=0;i<f->;i++printf"-------+";printf"\n";fclosefp;return 1;}int a{char mark,n;Show;while1{int i;char order;Read;fori=0;sqli==' ';i++;mark=tolowersqli;switchmark{case 'c':ifCREATEprintf"建表成功\n";else{printf"建表失败\n";continue;}break;case 'a':ifALTERprintf"修改表成功\n";else{printf"修改表失败\n";continue;}break;default:printf"输入错误,请重新输入\n";}printf"是否显示表,请选择y/n\n";whilen=getchar=='\n';whilegetchar='\n';whilen= 'n' &&n='N'&&n= 'y'&&n='Y'{printf"你输入错误,请重新选择y/n\n";whileorder=getchar=='\n';whilegetchar='\n';}ifn=='y'||n=='Y'{ifOutPutprintf"OK\n";elsecontinue;}printf"是否继续操作,请选择y/n\n";whileorder=getchar=='\n';whilegetchar='\n';whileorder = 'n' &&order='N'&& order = 'y'&&order='Y'{printf"你输入错误,请重新选择y/n\n";whileorder=getchar=='\n';whilegetchar='\n';}iforder=='n'||order=='N'break;}return 0;}int b{char mark,n;Show;while1{int i;char order;Read1;fori=0;sqli==' ';i++;mark=tolowersqli;switchmark{case 'c':ifCREATEprintf"建表成功\n";else{printf"建表失败\n";continue;}break;case 'a':ifALTERprintf"修改表成功\n";else{printf"修改表失败\n";continue;}break;default:printf"输入错误,请重新输入\n";}printf"是否显示表,请选择y/n\n";whilen=getchar=='\n';whilegetchar='\n';whilen= 'n' &&n='N'&&n= 'y'&&n='Y' {printf"你输入错误,请重新选择y/n\n";whileorder=getchar=='\n';whilegetchar='\n';}ifn=='y'||n=='Y'{ifOutPutprintf"OK\n";elsecontinue;}printf"是否继续操作,请选择y/n\n"; whileorder=getchar=='\n';whilegetchar='\n';whileorder = 'n' &&order='N'&& order = 'y'&&order='Y'{printf"你输入错误,请重新选择y/n\n";whileorder=getchar=='\n';whilegetchar='\n';}iforder=='n'||order=='N'break;}return 0;}int main{int n;ShowBeginning;while1{printf"请选择执行方式:\n";printf"1、以命令方式运行\n2、以程序方式运行\n3、退出\n";scanf"%d",&n;switchn{case 1:a;break;case 2:b;break;case 3:break;default:printf"你输入错误,请重新选择\n";break;}ifn==3break;}return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统建设详细设计1.数据库设计管理员用户表信息:学生用户表:学生信息表:班级文本50 所在班级专业文本50 所学专业2 系统程序文件设计与编写与数据库连接的代码:<% db="message.mdb"set Conn=server.createobject("adodb.Connection")conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db)%>登陆界面代码:代码为:<!--#include file="conn.inc" --><%if request("Submit")<>"" thenset rs=server.createobject("adodb.recordset")sql="SELECT username,password from users where username='"&request("username")&"'"rs.open sql,conn,1,3if rs.bof and rs.eof thenmsg="错误:用户名不存在"elseif rs("password")=request("password") thenSession("admin")=trueresponse.redirect "index.asp?users=admin"elsemsg="错误:密码不正确"end ifend ifrs.closeset rs=nothingConn.closeSet conn = Nothingend if%><html><head><title>管理员</title><script language="JavaScript" type="text/JavaScript"><!--function MM_jumpMenu(targ,selObj,restore){ //v3.0eval(targ+".location='"+selObj.options[selObj.selectedIndex].va lue+"'");if (restore) selObj.selectedIndex=0;}//--></script><LINK href="style.css" rel=Stylesheet type=text/css></head><center><span class="style1”>学生信息管理系统</span></center></td></tr><tr><td colspan="2"><center>管理员:<input name="username" type="text" maxlength="10">密码:<input name="password" type="password" > <input type="submit" name="Submit" value="登录"><input type="reset" name="Submit2" value="重置">用户类型:<select name="menu1" onChange="MM_jumpMenu('parent',this,0)"><option value="admin_login.asp" selected>管理员</option><option value="student_login.asp">学生</option></select> <br> <fontcolor=red><%=msg%></font> </center> </td></tr></table></form></body></html>显示信息:代码为:<!--#include file=”conn.inc”<%if Session(“admin”)<>true and Session(“student”)<>true then Response.Redirect “student_login.asp”end if%><!doctype html public “-//W3C//DTD HTML 4.0 Transitional//EN”><html><head><title>学生信息</title><LINK href=”style.css” rel=Stylesheet type=text/css></style></head><table align=center><tr><td colspan=”2”><center><span class=”style1”>学生信息管理系统</span></center></td></tr><tr><td colspan=”5”><a href=”#”>[<b>首页</b>]</a><a href=”search.asp”>[查询]</a><a title=”需要管理员权限”href=”post.asp”>[添加]</a><a href=”admin_login.asp”>[管理]</a><a href=”logout.asp”>[退出]</a></td></tr></table><%users = Request(“users”)If request(“PageNo”)=”” thenPageNo=1ElsePageNo=int(request(“PageNo”))End Ifsql=”SELECT * from liuyan order by ID desc”set rs=server.createobject(“adodb.recordset”)rs.open sql,conn,1,3if not(rs.eof and rs.bof) thenrs.Pagesize=3rs.absolutepage=PageNox = 0For x = 1 to rs.Pagesizeif x mod 2 thentr_color=”#EBEBEB”elsetr_c olor=”#ffffff”end ifIf rs.eof thenExit ForElseif isNull(Rs(“Dateandtime”)) thenstrDateandtime = “”elsestrDateandtime = Cstr(Rs(“Dateandtime”))end if‘Username,Email,Content,Sex,DateandtimeResponse.Write “<tabl e width=50% border=0 align=center cellpadding=0 cellspacing=0 bgcolor=” + tr_color+ “>”Response.Write “<tr>”Response.Write “<td width=20% nowrap>姓名:</td>”Response.Write “<td width=60% class=Tab>” + Rs(“Username”) + “</td>”‘修改删除链接if us ers = “admin” thenResponse.Write “<td width=20% class=Tab align=right>” + “<a href=post.asp?users=” + users + “&id=” + cstr(Rs(“ID”)) + “><font color=blue>修改</font></a> <a href=delete.asp?users=” + users + “&id=”+ cstr(Rs(“ID”)) + “><font color=blue>删除</font></a>” + “</td>”elseResponse.Write “<td width=20% class=Tab></td>”end ifResponse.Write “</tr>”Response.Write “<tr>”Response.Write “<td>性别:</td>”Response.Write “<td colspan=2>” + Rs(“Sex”) + “</td>”Response.Write “</tr>”Response.Write “<tr>”Response.Write “<td>班级:</td>”Response.Write “<td colspan=2>” + Rs(“Class”) + “</td>”Response.Write “</tr>”Response.Write “<tr>”Response.Write “<td>专业:</td>”Response.Write “<td colspan=2>” + Rs(“Major”) + “</td>”Response.Write “</tr>”Response.Write “<tr>”Response.Write “<td>入学时间:</td>”Response.Write “<td colspan=2>” + strDateandtime + “</td>”Response.Write “</tr>”Response.Write “<tr>”Response.Write “<td>评语:</td>”Response.Write “<td colspan=2>” + Rs(“Content”) + “</td>”Response.Write “</tr>”Response.Write “<tr>”Response.Write “<td>E-mail:</td>”Response.Write “<td colspan=2>” + Rs(“Email”) + “</td>”Response.Write “</tr>”Response.Write “</table>”Response.Write “<table border=0 align=center>”‘if users = “admin” then‘Response.Write “<tr>”‘Response.Write “<td align=right bgcolor=”+ tr_color+ “><a href=delete.asp?users=”+ users + “&id=”+ cstr(Rs(“ID”)) + “><font color=red>删除</font></a></td>”‘Response.Writ e “</tr>”‘end ifResponse.Write “<tr>”Response.Write “<td height=1></td>”Response.Write “</tr>”Response.Write “</table>”rs.MoveNextEnd IfNext.end ifif rs.recordcount > 0 then<tr><td>共有<%=rs.recordcount%>条学生信息 <%=rs.pagesize%>条/页 共<%=rs.pagecount%>页</td> <td align=”right” class=”Tab”>分页:<%for i=1 to rs.pagecountif pageno <> I thenResponse.Write “<A href=index.asp?users=” + users + “&pageno=” + cstr(i) + “>”&i&”</a> ”elseResponse.Writ e “<b>” & I & “</b> ”end ifnext%></td> </tr></table>Else<tr><td><marquee>目前,没有任何学生信息!</marquee></td> </tr></table>End if<%rs.closeset rs=nothingConn.closeSet conn = Nothing%></body></html>4、查询信息页面显示:.代码为:<!--#include file="conn.inc" --><%if Session("admin")<>true and Session("student")<>true then Response.Redirect "student_login.asp"end if%>if studentid <>0 thensql="SELECT * from liuyan where ID="&studentidset rs=server.createobject("adodb.recordset")rs.open sql,conn,1,3<%rs.closeset rs=nothingConn.closeSet conn = Nothingend if%>。