当前位置:文档之家› Transaction Management for XML Stored in Relational Database Systems

Transaction Management for XML Stored in Relational Database Systems

Transaction Management for XML Stored in Relational Database Systems
Transaction Management for XML Stored in Relational Database Systems

Transaction Management for XML Stored in Relational Database Systems?

Peter Pleshachkov

Institute for System Programming RAS,Russia

peter.pleshachkov@https://www.doczj.com/doc/1a5395381.html,

Abstract.Nowadays,modern commercial relational database manage-

ment systems(RDBMS)enable functionality to store,query and update

XML data.One of the key problems is e?cient handling of concurrent

access to XML data stored in RDBMS.

In this paper,we present an e?cient concurrency control method for

XML data stored in RDBMS.Our approach is based on Grabs et.al.

work on XMLTM,an XML transaction manager built on top of RDBMS.

We investigate limitations and drawbacks of XMLTM,and propose solu-

tions to overcome them.The paper summarizes our results to date and

identi?es directions for future work.

The goal of our research is e?cient and general transaction manager for

concurrent XML processing in RDBMS.

1Introduction

Today a lot of applications use XML to store and exchange data.Their amount is quite signi?cant and continues to grow.

To answer new requirements,most commnercial RDBMS vendors extend their products with XML support.Current systems(e.g.MS SQL Server2005) use binary large objects(BLOBS)to store XML documents in a certain internal https://www.doczj.com/doc/1a5395381.html,ers can create special indices on XML documents to speed up queries. The systems enable specialized query languages support such as XQuery/XPath.

However,current implementations use internal RDBMS locking for concur-rency control.This approach means that the granularity of locking is the whole XML BLOB,while access is made only to some XML nodes in it.Obviously this creates a bottleneck when concurrent access is an issue.

To solve this problem Grabs et.al.[3]proposed to use multilevel transaction management[10].According to this approach,an additional transaction man-ager XMLTM is built on top of RDBMS.It schedules concurrent updates and queries using DGLOCK protocol.XMLTM decomposes XML transaction into a number of small independent transactions over RDBMS.They are called DB transactions.And as XMLTM can commit DB transactions early,the locks on the entire BLOB are released early thereby allowing other transactions waiting

for the locks to proceed.Moreover,DB transactions are run at a lower ANSI isolation level(Read Commited).These factors allow to improve the parallelism of XML transactions.

We consider this approach to be the most promising,since XMLTM does not rely on the underlying storage scheme used by relational databases for XML documents.This means that it will work even for native XML databases.

Unfortunately there are certain limitations and drawbacks in the Grabs https://www.doczj.com/doc/1a5395381.html,ly:(1)supported query language is a restricted version of XPath, whereas modern RDBMSs support more?exible and powerful XQuery language, (2)DGLOCK protocol is based on multi-granularity locking scheme[4],which is too restrictive for a wide range of XML-operations and(3)DGLOCK does not guarantee serilizability of produced schedules.Also(4)XMLTM does not sup-port ordered XML and(5)performance of updates degrades due to signi?cant overhead needed to log before-images of updated documents by XMLTM.

The goal of our research is to overcome these XMLTM drawbacks and lim-itations and design a more e?cient and general transaction manager called SXTM(Semantic XML Transaction Manager)for concurrent XML processing

in RDBMS.The key contributions of our research are:

–We proposed a locking protocol to schedule XML transactions,which ex-ploits the semantics of XML queries and updates to improve the degree of concurrency in comparison with original DGLOCK protocol.

–We introduced a way to reduce a size of log which is needed to guarantee atomicity of XML transactions.

The remainder of the paper elaborates our contributions in Section2.In Section3we discuss previous work on concurrency control for XML data.In Sect4we give directions for future work and make conclusions.

2Results to Date

2.1Preliminaries

In SXTM we use XQuery to query XML documents.To update XML documents we use primitive update operations like insert,delete and rename.It is clear, that any complex update operation may be expressed via these operations.We consider three kinds of insert operations.The operations InsertInto(locpath, constr),InsertAfter(locpath,constr)and InsertBefore(locpath,constr) insert new node de?ned by constr as the last child,following sibling and preced-ing sibling respectively for each target node de?ned by locpath.Here Locpath (location path)is the basic operation used both in XQuery queries and update operations.The operation Delete(locpath)removes the target subtrees de?ned by locpath.The operation Rename(locpath,QName)assigns new name de?ned by QName to the target nodes de?ned by locpath.We denote the intermidiate nodes and destination nodes of Locpath as ITM and DST respectively.Below in

this paper,we use II,IA,IB,RN,D and LP to denote InsertInto,InsertAfter, InsertBefore,Rename,Delete and Locpath operations respectively.

In the Fig.1we present a sample of XML document Gtree,its DataGuide and DTD.We will use Gtree document in all examples throughout the paper.

Fig.1.An XML document GTree,its DataGuide and DTD

2.2XDGL2Locking Protocol

In this section we present a high level overview of new locking protocol called XDGL2.Except for some re?nements,the XDGL2protocol is based on our XDGL protocol presented in[8].

XDGL2requires transaction to follow the strict two-phase locking protocol (S2PL)[12].According to S2PL,a transaction acquired a lock keeps it until the end.

In SXTM we maintain the DataGuide(DG for short)structure for lock-ing purposes rather than the document iself as the document is not physically available.A DG describes every unique label path of a document exaclty once, regardless of the number of times it appears in that document,and encodes no label path that does not appear in the document.Exactly by utilizing DG as a locking structure we abstract from underlying storage scheme used for XML documents in DBMS.Thus,this generalizes the method.

To cope with deadlocks we use deadlock detector which periodically builds wait-for graph[11]of the transactions and analyzes it for cycles.When a cycle is found,a victium is selected and aborted.

There are two kinds of locks in XDGL2:structural locks and logical locks which we describe in the following subsections.

Structural locks

–P(pass)lock.This node lock is used by LP operation.It is set on the DG’s nodes which match the ITM nodes of LP.This lock prevents the deletion of ITM nodes by other transactions,but it does not prohibit any insertion of the nodes extending the sequence of ITM nodes(see example1below).

–S(share)lock.This node lock is also used by LP operation.It is set on the DG’s nodes which match the DST nodes of LP.This lock prevents any modi?cations of DST nodes.For example,for query count(/doc/person)S lock is set on node n2(see Fig.1).

–SI(shared into)lock.This node lock is used by II operation.It is set on the DG’s nodes which match the target nodes of II.This lock prevents the modi?cation of II’s target nodes and insertion of another nodes into the target nodes by concurrent transactions.The SA(shared after)and SB (shared before)locks are de?ned in a similar way.

–XN(exclusive new)lock.This node lock is used by insert operations.It is set on the DG’s node which matches the newly created nodes.This lock allows passing by the new node,(i.e it compatible with P lock),but other operations

(e.g.modid?cation)on the node are prohibited.

–X(exclisive)lock.This node lock is used by operations which modify internal nodes of the document.This lock prevents any concurrent reads and updates of the node.In our set of update operations this lock is used by RN operation since it renames the target nodes inside the document.It is set on the DG’s nodes which correspond to the RN’s target and new nodes.Note,if we rename the leaf node then we only need to acquire X lock on the RN’s target nodes and XN lock on the new nodes.

–ST(shared tree),XT(exclusive tree)locks.The ST(XT)lock is a tree lock.The ST(XT)lock is set on the DG’s node and implicitly locks all its descendants.

The ST(XT)lock prevents any updates(reads and updates)in the entire subtree.For example,XT lock is set on target nodes of D operation.

–IS(intention shared),IX(intention exclusive)locks.The IS lock must be obtained on each ancestor of the node,which is to be locked in one of the shared modes.It ensures that there are no locks on the coarser granules locking the node in con?icting mode.IX lock is de?ned in a similar way.

To deal with value-based constraints,each structural lock has an annotated value-based predicate1.The XDGL2compatibility matrix for structural locks is shown in the Fig.2.There are no strict incompatibilities in matrix.Symbol CP (check predicates)in matrix means that the requested lock is compatible with granted locks only if conjunction of annotated predicates is not satis?able.

Next we study a couple of examples to illustrate the locking mechanisms2.

Example1.Let us consider transactions T1={II(/doc,)},T2={ II(/doc,)}and T3={/doc/person/name}.According to XDGL2the following sets of structural locks{n1:(SI,IX),n2:XN},{n1:(SI,IX), n2:XN}and{n1:P,n2:P,n4:ST}must be obtained by transactions T1,T2 and T3respectively.Thus,we obtain that T1,T3and T2,T3can run concurrently whereas T1and T2can not run concurrently due to the con?ict of SI locks on node n1.

Fig.2.Lock Compatibility Matrix

Example2.For transactions T1=D(/doc/person/@age)}and T2={for$v in //person return{$v/name}}we need to obtain the sets of structural locks{n1:(IX,P),n2:(IX,P),n3:XT}and{n1:IS,n6:IS, n2:S,n8:S,n4:ST,n10:ST}respectively.Since locks required by T1and T2are compatible,we conclude that T1and T2can be executed concurrently (thus we prevent document order con?ict).

Note,that DGLOCK from XMLTM does not allow concurrent executon of transactions from examples1and2.

Logical Locks Now we turn to the discussion of the logical locks,which are used to prevent phantoms.Let us show how a phantom could appear.Suppose that transaction T1reads all of age attributes in GTree(i.e.T1issued//@age query).In the meantime transaction T2inserts new age attribute into person element with name’John’(see Fig.1).The new age attribute is the phantom for transaction T1.Generally speaking,phantoms can appear when update operation extends the DG3(adds new path to DG)and this modi?cation results in the changing of target nodes of previously executed operations.

Thus,we introduce two locks.The?rst lock is L(logical)lock,which must be set on DG’s node to protect the node’s subtrees in the document from a phantom appearance.A logical lock speci?es a set of properties.Essentially,a property is a logical condition on nodes.This lock prohibits the insertion of new nodes,which possess these properties.The second lock is IN(insert new node) lock,which speci?es the properties of new node.The update operation,which extends the DG,should obtain the IN lock on each ancestor of the new node.

Here we list all possible combinations of properties for L lock:(1)node-name=’name1’(e.g.//person),(2)node-name=’name1’,node-value relop’val1’(e.g.//name[.=’John’]),(3)node-name=’name1’,child-name=’name2’,child-value relop’val1’(e.g.//person[name=’John’]).Here relop is a comparison operation.

To check that the new node’s properties do not interfere with the L lock properties,the IN lock should specify three properties of a new node:new-node-parent-name,new-node-name,new-node-value.

Thus,L and IN locks are incompatible if one of the following conditions holds:

–If IN’s new-node-name equals to a node-name of L lock and L does not contain any other properties(case(1)from the above)4.

–If IN’s new-node-name and new-node-value both match appropriate values of L lock consisting of two properties.That is,node-name=new-node-name and new-node-value relop’val1’=#f(case(2)from the above).

–If all IN’s properties match three properties of L lock.That is node-name=new-node-parent-name,child-name=new-node-name and new-node-value relop ’val1’=#f(case(3)).

If node’s name is a wildcard’*’then it equals to any node-name.

DTD-based Concurrency Enhances We already discussed the bene?ts we got by utilizing the DG for locking.However,there are some drawbacks.The problem with DG is that it lacks the notion of document order.Therefore,the evaluation of ordered-based axes(e.g.preceding-sibling,following-sibling)on DG may result in the lock of unnecessary DG nodes.As a consequence,we can get unnecessary con?icts among transactions.

To reduce the number of such con?icts we use DTD,which speci?es the document order.For instance,on the basis of the GTree’s DTD information we can resolve the con?ict between transactions T1={/doc/person/addr/preceding-sibling::*} and T2={D(/doc/person/hobby)}.Indeed,without DTD information T1must acquire ST lock on all DG’s nodes of level2(n3,n4,n5,n6,n7),whereas T2must obtain XT lock on node n7of level2.Thus,there is a con?ict between T1and T2 on node n7.But using DTD we know that preceding sibling of addr element can only be name element,and T1must acquire ST lock only on node n4thereby allowing T2to run concurrently.

Correctness

Theorem1.All schedules of concurrent transactions generated by XDGL2sched-uler are serializable.

Formal proof of this theorem is available in[9].

2.3Atomicity of XML transactions

Decomposing XML transaction into a number of independent DB transactions, we can no longer implement XML transaction’s abort by RDBMS[10].Only active DB transactions can be rolled back by RDBMS.For this reason,XMLTM logs the before-images of updated XML documents.An abort is implemented by restoring old text value of the document.Since the logging granularity in XMLTM is greater than the locking granularity the cascading aborts are possible.

We propose a new way to guarantee atomicity of XML transactions,which allows to reduce the size of log signi?cantly.For clear presentation and because

of space limitations we consider only insert and delete operations.

To undo the insert operations we propose to log reverse operations,which delete the inserted nodes.As a consequence,an extra logging overhead for insert operations is low.This way for II(/doc/person,)operation we write into the log only D(/doc/person/name[position=last()]).Similarly,for op-eration IB(/doc/person/hobby,)we need to log D(/doc/person/addr:: preceding-sibling[position()=1])operation.

An undo of D is somewhat more di?cult and expensive-we need to log both the before-images of deleted subtrees and their positions in the document.Thus, before executing D operation we need to execute preliminary query,which ex-tracts needed information and then write its results into the log.For instance,for

D(/doc/person[name=’John’])the preliminary query is for$node at$pos

in/doc/person where$node/name=’John’return($node,$pos).Here $node variable is bound with the deleted subtree,whereas$pos de?nes the posi-tion of the subtree.To undo this D operation we will execute the following query for each$node:IA(/doc/node()[postion()=$pos-1],$node).

Note that no extra logging is needed for the last DB transaction since its commit means the end of XML transaction.We use this fact to reduce a signi?-cant logging overhead incured by D operation.We propose to execute D operation

in the following way(1)if an operation op in XML transaction preceded by D operation depends on the results of D than execute D before op’s execution,(2) else execute D operation in last DB transaction5.

3Concurrency Control for Native XML DBMSs:Related Work

The protocol developed in[2]relies on the fact that XML is usually accessed by means of XPath query language.They propose to use”path locks”to increase concurrency and provide the best results for XPath queries.Unfortunately,the authors deal with too restrictive subset of XPath.

The method presented in[7],proposes a XLP(XPath Locking Protocol) locking protocol,which is based on XPath model and has the features of richer lock modes,re?ned lock granualrity and lower lock con?ict.Another XPath-based protocol was proposed by Choi et al.[1].The protocol assumes that an XML document is modeled as a tree structure.Three versions of XML document are maintained.Concurrency Control is implemented by using read-write check and write-read check.Unfortunately,these checks are very expensive operations. The protocol was limited to theoretical design.

Several protocols[5],[6]based on the DOM operations were proposed.The protocols use di?erent kinds of locks to latch nodes on di?erent levels.These seem to work?ne for DOM operations,but there is no research done to see whether they could suite well the evaluation of path expressions.

Moreover,all these methods require direct access to the XML document, which is not possible in mant cases.

4Conclusion and Future Work

This thesis is centered around the transaction management for XML stored in RDBMSs.The main goal of our research is e?cient and general transaction manager for concurrent XML processing in RDBMS.

We start with a detailed analysis of existing solutions depicting those as-sumptions,techniques,limitations and drawbacks.In an attempt to eliminate limitations and drawbacks the thesis presents a new XDGL2locking protocol and a new way for logging high level XML-operations to guarantee atomicity of XML transactions.

Utilizing DataGuide as a locking structure,we abstract from underlying stor-age scheme used for XML documents in RDBMS.Di?erent types of locks on DataGuide structure are proposed to capture the semantics of XML operations thereby allowing to improve the degree of concurrency in comparison with exist-ing solutions.Unlike previously proposed solutions,our protocol ensures strict serilizability and combines predicate and logical locks to provide protection from phantoms appearance.

The paper presents an approach how to reduce the overhead incured by extra logging.We use a combination of logical logging and delayed execution of delete operations,which allows to undo delete operations using RDBMS’s recovery functionality.

Finally,the proposed Semantic XML Transaction Manager is primarily being implemented on top of MS SQL Server2005and in our next steps,we concentrate on its comprehensive experimental study.

References

1. E.H.Choi and T.Kanai.XPath-based Concurrency Control for XML Data.In

Proc.DEWS2003,2003.

2.S.Dekeyser and J.Hidders.Path Locks for XML Document Collaboration.In

Proc.WISE2002,Singapore,2002.

3.T.Grabs,K.Bohm,and H.-J.Schek.XMLTM:E?cient Transaction Management

for XML Documents.In Proc.ACM CIKM2002,USA,2002.

4.J.Gray et al.Granularity of locks in a large shared databases.In Proc.VLDB

1975,USA,1975.

5.M.Haustein and T.Haerder.Adjustable Transaction Isolation in XML Database

Management Systems.In Proc.XSym2004,LNCS3186,2004.

6.S.Helmer,C.-C.Kanne,and G.Moerkotte.Evaluating lock-based protocols for

cooperation on XML documents.SIGMOD Record,33(1),2004.

7.K.-f.Jea et al.Concurrency Control in XML Document Databases:XPath Locking

Protocol.In Proc.ICPADS2002,Taiwan,2002.

8.P.Pleshachkov,P.Chardin,S.Kuznetsov.XDGL:XPath-Based Concurrency Con-

trol Protocol for XML Data.Proc.BNCOD2005,LNCS3567,Sunderland,UK.

9.P.Pleshachkov,P.Chardin,and S.Kuznetsov.A DataGuide-Based Concurrency

Control Protocol for Cooperation on XML Data.In Proc.ADBIS2005,LNCS 3631,2005.

10.G.Weikum.Principles and Realization Strategies of Multilevel Transaction Man-

agement.ACM Transactions on Database Systems(TODS),16(1),1991.

11.J.Gray and A.Reuter.Transaction Processing:Concepts and Techniques.Morgan

Kaufmann Publishers Inc.,1992.

12.K.P.Eswaran et al The notions of consistency and predicate locks in a database

https://www.doczj.com/doc/1a5395381.html,m of ACM,Vol.19,No11,pp.624-633,November1976.

C++实现:简单的学生信息管理系统

<< endl << endl; cout << "按下1:进入学生信息管理系统." << endl; cout << "按下0:退出." << endl; cout << "-----------------------------------------------------" << endl<> flagOperateInformation; (); cout << endl; if (flagOperateInformation) EditMenu(); } } << endl; cout << "按下2:修改学生信息." << endl; cout << "按下3:删除学生信息." << endl; cout << "按下4:显示学生信息." << endl; cout << "按下5:按学号升序排序" << endl; cout << "按下6:读入已有信息(暂时没实现)" << endl; cout << "按下7:将信息输出(暂时没实现)" << endl; cout << "按下8:显示系统内所有学生的信息" << endl; cout << "按下0:返回上一级." << endl; cout << "--------------------------------------------" << endl << endl; cin >> flagContinueOperation; (); cout << endl; switch (flagContinueOperation) { case 1:AddStudentPersonalInformation(1); break; case 2:ModifyStudentInformation(); break; case 3:DeleteStudentInformation(); break; case 4:DisplayStudentInformation(); break; case 5:RankByID(); break; case 6:cout << "功能暂未实现" << endl; break; case 7:cout << "功能暂未实现" << endl; break; case 8:DisplayAllStudentInformation(); break; case 0:break; } } } tudent_WritePersonalInformation(iD,name,address,phone); cout << "基本信息输入成功!" << endl << "------------------------------" << endl; } tudent_WriteMaPhEgGrade(mathGrade, physicsGrade, englishGrade); cout << "学习成绩输入成功!" << endl

学生选课系统

管理信息系统课程设计报告 学生选课系统 班级: 学号: 姓名: 指导教师: 2014年12月20日

目录第一章:现行系统概述 第二章:系统分析 2.1需求分析 2.2可行性研究 2.3信息系统规划 2.4系统的开发方法的选择 2.5组织结构与功能分析 2.6业务流程分析 2.7数据与数据流程分析 2.8功能/数据分析 2.9新系统逻辑方案的建立 第三章系统设计 3.1系统总体结构设计 3.2数据结构与数据库设计 3.3代码设计 3.4输入/输出设计 3.5模块功能与处理过程设计 第四章系统实施 4.1系统实施 4.2系统运行调试

第五章:结束语(结论、建议、收获、体会及小组中每个成员的工作内容) 参考文献

第一章现行系统概述 本科生选课系统是个很庞大的信息系统。目前随着学校人数和课程的激增,对教务处而言,管理和维护选课系统关系到自身的效率,选课系统的繁杂,在一定程度上会相对的增加教务处的管理负担。对学生而言,在选课阶段必须面对大量课程进行仔细筛选,而所有课程聚在一起,学生无法快速定位自己想选以及在规定时间内被要求选的课程类别。 这些问题的出现表明我们的选课系统仍然存在着问题,也需要对其进行改造,由此提高学生选课效率,为学生的学习带来更大的便利。学生选课系统作为一种现代化的教学技术,越来越受到人们重视,是一个学校不可或缺的部分。学生选课系统就是为了管理好选课信息而设计的。学生选课系统将是选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够准确,及时,有效的查询和修改学生选课情况。

第二章系统分析 2.1需求分析 学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息。教师可以根据统计的人数挑选一定数量的学生,也可以直接在网上公布成绩,让学生直接在网上查询成绩。管理员可以指定每门课程的任课教师,修改课程信息,增加、修改、删除学生信息。分析一:系统应该满足以下几个方面需求: (1)某些选修课程因为前序课程或者教学管理资源的限制,要求系统能对课程选修人数、选修学生年级、专业等进行限制。 (2)选课过程需具有时效性,系统要能在短时间内响应大量学生的查询和选课要求,並及时处理。 (3)教务部门能及时掌握课程选修情况,系统界面直观,操作简单,学生不需经任何培训即可操作。 (4)系统要提供数据输出接口以供教务员作后期处理及保存。包括作为以后查询和评估使用的资料。 分析二:系统要实现的功能分为二大模块: 管理员模块: (1)负责统一管理,包括课程的查询、添加、修改和删除; (2)限制选修条件的管理,包括条件的添加、修改和删除; (3)统一管理用户,包括管理员和学生用户的管理; (4)系统公告的管理; (5)数据的管理和数据导出;

简单学生信息管理系统设计

——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: : 学号:

实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组容。 2.设计实现一个简单的信息管理系统。 实验容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有、学号、math、os、java用来存放 对应的成绩,在构造方法中进行、学号、课程成绩的赋值。 Override有Object继承来的tostring方法已便友好格式显 示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方法, 在main中写一段测试代码,运行以保证目前所做工作的 正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新 数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 (判断是否相等使用string类的equalsIgnoreCase方 法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的容,注意要考虑以前未保存容的情况, 可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如下: 1显示所有学生信息2按学号查找 3 按查找 4 按学号删除 5 保存 6 读入7 退出 请输入数字(1-7): 程序代码

学生选课管理系统

学生选课管理系统 SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-

#include #include #include #include #include //定义学生对象类型 typedef struct node { char Sno[10]; //学号 char Sname[10]; //姓名 char Ssex[3]; //性别 char Sage[3]; //年龄 char Sdept[4]; //所在系 struct node *next; }Student; //定义课程对象类型 typedef struct node2 { char Cno[10]; //课程号 char Cname[10]; //课程名 char Cpno[5]; //先行课 char Ccredit[3]; //学分 struct node2 *next; }Course; //定义选课对象类型 typedef struct node3 { char Sno[10]; char Cno[10]; int Grade; struct node3 *next; }SC; //初始化学生信息表

void InitlistA(Student *stu) { stu->next=NULL; } //初始化课程信息表 void InitlistB(Course *C) { C->next=NULL; } //初始化选课信息表 void InitlistC(SC *S) { S->next=NULL; } //求选课表的深度 int Getlength(SC *S) { int i=0; SC *p; p=S->next; while(p!=NULL) { p=p->next; i ; } return(i); } //用户输入数据建立学生信息表(尾插法) void CreatelistA(Student *stu) { Student *s,*r; int m,i;

项目关键节点计划

北京某企业项目关键节点计划 发展计划控制时间节点分析 1.项目可研报告,报集团批准 2.确定项目启动 3.完成项目团队组建 4.取得土地证 5.净地交付 6.提供用地红线和规划要点 7.完成《某某经营部产品定位报告》,报集团批准 8.完成《某某概念规划设计任务书》 9.完成规划及概念设计,报集团批准 10.《项目投资分析模型(概念版)》——组织概念目标成本测算确认目标成 本及财务指标(一级目标成本),完成项目经营测算 11.完成建筑方案设计 12.示范区域确定及方案设计确认 13.完成外网配套征询 14.方案设计汇报,报集团批准 15.《项目投资分析模型(方案版)》——组织方案图目标成本测算确认目标 成本及财务指标(二级目标成本),完成项目经营测算 16.取得建设用地规划许可证 17.完成基坑施工图 18.完成桩基及基础施工图 19.完成样板区施工图、景观、精装修设计 20.完成常规建筑结构水电施工图设计 21.完成景观施工图 22.完成综合管网图设计 23.取得施工图审 24.取得工程规划许可证 25.完成三通一平 26.完成工程策划 27.完成合约规划 28.《项目投资分析模型(目标版)》——组织施工图目标成本测算确认目标 成本及财务指标(三级目标成本),完成项目经营测算 29.签订总包施工合同 30.取得施工许可证 31.样板区开工 32.取得项目开发贷款 33.基础(土方)工程开工 34.±0米以下结构工程开工、独立地下结构(地库)完工(基础) 35.完成裙房或转换层结构施工 36.首批主体施工达到预售条件 37.首批主体结构封顶 38.全部主体结构封顶

39.首批门窗、栏杆、幕墙等材料进场 40.样板区工程完工、开放 41.各标段取得预售许可证 42.产品定价表,报集团批准 43.销售开盘 44.销售完成30% 45.销售完成50% 46.现金流回正时间 47.销售完成75% 48.销售完成95% 49.第一批外立面落架亮相 50.最后一批外立面落架完成 51.全部单体达竣工条件 52.市政配套埋管完工 53.室外景观、绿化完工(完成项目施工) 54.专项验收结束,取得《竣工备案证明》 55.开始办理集中交房(入伙) 56.办理房产初始登记 57.工程全部结算完成 58.完成收尾及项目财务核算 59.项目后评估

简单学生信息管理系统

简单学生信息管理系统-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: 姓名: 学号:

实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组内容。 2.设计实现一个简单的信息管理系统。 实验内容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有姓名、学号、math、os、java用 来存放对应的成绩,在构造方法中进行姓名、学号、课 程成绩的赋值。Override有Object继承来的tostring方法 已便友好格式显示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方 法,在main中写一段测试代码,运行以保证目前所做工 作的正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制 到新数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照姓名来查找,然后显示符合条件的学生信息,查无此人的话显示错误 信息。(判断姓名是否相等使用string类的 equalsIgnoreCase方法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的内容,注意要考虑以前未保存内容的 情况,可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如 下: 1显示所有学生信息 2按学号查找 3 按姓名查找 4 按学号删除 5 保存 6 读入 7 退出 请输入数字(1-7):

学生选课管理系统需求规格说明书

学生选课系统需求规格说明书

目录 0. 文档介绍 (4) 0.1文档目的 (4) 0.2文档范围 (4) 0.3读者对象 (4) 0.4参考文档 (4) 1.产品介绍 (5) 2.产品面向的用户群体 (6) 3. 产品应当遵循的标准或规范 (7) 4.产品范围 (7) 5. 产品中的角色 (7) 6. 产品的功能性需求 (8) 6.0功能性需求分类 (8) 6.1后台管理功能需求 (8) 6.1.1管理员信息管理 (8) 6.1.2教师信息管理 (10) 6.1.3学生信息管理 (11) 6.1.4课程信息管理 (12) 6.1.5排课管理 (13) 6.1.6教室信息管理 (14) 6.2前台管理功能需求 (15) 6.2.1学生选课 (15) 6.2.2撰写教师反馈 (16) 6.2.3个人信息管理 (17) 6.2.4用户登录 (19) 7. 产品的非功能性需求 (20) 7.1用户界面需求 (20) 7.2软硬件环境需求 (20) 7.3产品质量需求 (20) 7.4其他需求 (21) 附录A:需求建模与分析报告 (22) A.1学生选课系统业务流程图 (22) A.1.1系统总体业务流程分析 (22) A.1.2学生管理业务流程图分析 (23)

A.1.3教师管理业务流程图分析 (24) A.1.4选课/退课子系统业务流程图分析 (25) A.1.5教师反馈子系统业务流程图分析 (26) A.1.6管理员管理业务流程图分析 (26) A.1.7管理员排课业务流程图: (27) A.1.8管理员退课业务流程图: (28) A.2学生选课管理系统数据流程图 (29) A.2.1顶层数据流程图 (30) A.2.2 O层数据流程图 (30) A.2.3后台管理数据流程图 (31) A2.4 前台管理数据流程图 (36) 附录B:需求确认....................................................................................... 错误!未定义书签。

简单学生信息管理系统

. ——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: : 学号:

实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组内容。 2.设计实现一个简单的信息管理系统。 实验内容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有姓名、学号、math、os、java用来 存放对应的成绩,在构造方法中进行姓名、学号、课程成 绩的赋值。Override有Object继承来的tostring方法已便 友好格式显示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方法, 在main中写一段测试代码,运行以保证目前所做工作的 正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新 数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照姓名来查找,然后显示符合条件的学生信息,查无此人的话显示错误信 息。(判断姓名是否相等使用string类的 equalsIgnoreCase方法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的内容,注意要考虑以前未保存内容的情 况,可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如下: 1显示所有学生信息2按学号查找3 按姓名查找 4 按学号删除 5 保存 6 读入 7 退出 请输入数字(1-7): 程序代码

学生选课管理系统(数据库课程设计)

数据库系统原理及其应用教程 课程设计报告 设计题目选修课程管理系统的设计与实现 指导教师

摘要 随着计算机技术的日新月异,极大的推动的各个行业的信息化进程。各大高校也急需进行信息化改革,以促进教学质量和工作效率快速提升。 本文是在对各大高校全校公开课学生选课情况进行实地调查后,进行详细分析讨论后撰写的学生选课管理系统数据库设计报告。全文从最初的系统规划,到需求分析、概念设计、逻辑设计、物理设计。每一阶段都进行了详细的分析。接下来的实现、运行与维护阶段,还

进行了对本系统的测试,最后是本次项目开发的心得和体会以及本文的参考文献。 本系统主要功能是对学生选课及相关信息进行管理。较行业同类产品而言,本系统人机界面设计更加合理、人性化,用户操作简单方便。数据库的安全性更高,对用户访问权限进行了严格控制。数据存取速度更快,使用年限更长。可以很好的满足高校公开课学生选课的要求,极大的提高了学校的工作效率。 关键字:学生选课管理系统;分析;设计 目录 一、概述 (4) 1.1 设计背景 (34) 1.2 设计目的 (36) 1.3 设计内容 (39) 二、需求分析 (19) 2.1 功能分析 (7) 2.2 工作流图 (6) 2.3 数据流图 (7)

2.4 数据字典 (16) 三、概念模型设计 (18) 3.1 实体之间的联系 (18) 3.2 E-R图 (19) 四、逻辑设计 (26) 4.1 概念模型向关系模型的转换 (26) 4.2 概念模型的优化 (27) 五、源代码及查询截图 (29) 5.1 数据库的存储结构 (29) 5.2 实现 (32) 5.3 人机界面设计 (34) 5.4 系统测试 (36) 5.5 运行维护 (39) 六、总结 (40) 参考文献 (41) 一、概述 1.1设计背景 可行性研究的目的是用最小的代价在尽可能的短的时间内确定数据库系统是否可能开发、是否值得开发、是否可以开发(在该报告中主要是考查《学生选课管理系统》是否可能开发、是否值得开发、是否可以开发)。其实质是在较高层次上以较抽象方式进行的、简化的压缩的需求分析和概要设计过程。

简单的学生信息管理系统C语言

#include #include //输入函数getch的头文件,不能用getchar,具体请查看两者的区别 #include //申请空间的函数malloc的头文件 typedef struct { //定义结构体类型,包含四项内容,可以自由添加 int num; char name[10]; int age; char sex[5]; }st; typedef struct node //构造结点(也是结构体变量) { st data; //数据域 struct node *next; //指针域(指向结构体,也就是自身) }list; list *create() //建立一个单链表 { list *p,*r,*head; //定义结构体指针变量 int i,n; head = (list *)malloc(sizeof(list)); //申请头结点 r = head; head->next = NULL; //头结点的指针域先定义为空 printf("请输入学生人数:\n"); scanf("%d",&n); printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n"); for(i=1;i<=n;i++) { p = (list *)malloc(sizeof(list)); //申请一个结点 scanf("%d%s%d%s",&p->data.num,&p->https://www.doczj.com/doc/1a5395381.html,,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息 p->next = NULL; r->next = p; //将头结点指向第一个结点,以此类推。 r = r->next; } return (head); //返回头结点的地址 } void output(list *h) // 输出链表中的学生信息 { list *p; p = h->next; //使p指向第一个结点 if(p == NULL)

学生选课管理系统(详细设计说明书)

1引言 (2) 1.1编写目的 (2) 1.2背景 (2) 1.3定义 (2) 1.4参考资料 (2) 2程序系统的结构 (3) 3程序1(标识符)设计说明 (7) 3.1程序描述 (7) 3.2功能 (8) 3.3性能 (8) 3.4输人项 (8) 3.5输出项 (9) 3.6算法 (9) 3.7流程逻辑 (9) 3.8接口 (10) 3.9存储分配 (11) 3.10注释设计 (11) 3.11限制条件 (11) 3.12测试计划 (11) 3.13尚未解决的问题 (11) 4程序2(标识符)设计说明....................................................................... 错误!未定义书签。

详细设计说明书 1引言 1.1编写目的 该详细设计说明书的目的在于根据需求说明书与概要设计说明书提出该系统的详细设计,即系统的详细架构,主要包括系统的模块划分、程序系统的结构、各个模块的流程以及各层次中每个程序的设计考虑。 1.2背景 软件系统名称:学生选课系统 软件实现计算机:方正科技 与其他系统和机构的相互管理:暂无。 1.3定义 图1 程序数据字典定义 1.4参考资料 1.《软件工程导论》(张海藩编著清华大学出版社2007年5月) 2.《数据库系统概论(第四版)》(王珊编著高等教育出版社2007年11月)

3.《Visualbasic程序设计》(吴定雪主编科学出版社) 2程序系统的结构 2.1 、管理员模块程序设计说明 ①人员管理:管理员在登录之后可以对系统内的人员(包括学生、教师等)进行管理, 包括对人员的信息进行查询、修改和删除等操作。 ②课程管理:管理员在后台添加、编辑课程的基本信息(包括授课教师、开课时间设定), 同时可以编辑系统开放选课的时间,在适当时间开启和关闭选课系统。 ③系统信息管理:管理员可对系统的基本信息进行编辑,对系统公告进行更改或者系统 标题、系统相关链接等。 ④系统权限管理:对不同的用户要分配不同的权限,管理员可设定不同人员对不同模块 的访问权限,允许或者拒绝不同用户对模块的增删查改操作。 图2.1管理员模块图 2.2、教师模块程序设计说明 (1)基本信息管理:此模块主要实现两个分支功能: ①个人信息修改和密码修改。在教师用户登录状态下,实现这些功能,通过对自己 的注册信息的修改满足用户的个性需求,能将注册信息及时反映个人状态,另外,密码修改则是很多网站都应具备的基本功能,能有效保护用户身份和网络安全。 ②其它基功能如学生查询,教师查询和留言查询,这三个功能都是在教师在线状态

学生选课管理系统

软件项目管理 学生选课管理系统 项目名称: 组长 组员 提交时间: 2015年6月15日

学生选课管理系统 项目任务书 一、目的、要求 通过软件开发的实践训练,进一步掌握软件项目管理的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。 具体如下: 1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象 的系统分析与设计,软件项目管理,编码和测试方面的知识; 2.熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件 开发的全过程; 3.进一步加强和提高软件工程文档的编写能力; 4.培养协作能力和团队精神。 二、主要内容 1.课题题目:学生选课系统,本系统要实现学生选课的基本功能,包括学生退选课,查看自己的选课信息;教师查看选课学生的信息,提交成绩; 管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课 程等。 2.运用面向对象技术、UML及可视化的建模工具完成系统的需求分析与设计。 3.使用Rational Rose作为需求分析与设计的建模工具,包括静态建模和

动态建模,并利用对象模型自动生成数据模型,自动建立数据库。 4.采用分层模式的应用设计模式进行系统的设计实现。 5.系统要实现四个模块功能:教师模块、学生模块、管理员模块和公用模块。 6.初步建立系统原型,实现关键的功能,并对系统进行测试。 三、任务分配

学生选课管理系统 任务分解书(WBS)一.学生选课管理系统任务分解 1.1.1 项目规划 1.1.2 计划评审 1.2 需求开发 1.2.1 用户界面设计 1.2.2 用户需求评审 1.2.3 修改需求、修改用户界面 1.2.4 需求规格说明书 1.2.5 编写需求获取方法 1.2.6 编写需求跟踪矩阵 1.3 设计 1.3.1 概要设计 1.3.2 详细设计

一个简单数据管理软件的设计-软件综合设计-学生信息管理系统

《软件综合设计》课程实验报告

4、实验内容 1、实验步骤及流程: 1)新建工程:新建一个单文件类型的MCF工程,在Resource之中新建并利用控件设计对话框。 2)增加控件:一个控件是能够放置在一个对话框中,提供应用程序与用户交互的某种功能。本次 实验需要添加编辑框、下拉列表控件、列表框(ListBox)控件以及按钮键。 3)设置对话框及控件等的属性:一个控件相关的属性设置决定了一个控件可操作行为和显示。修 改控件ID以及名称,对话框名称等。 4)组织和安排各部件的位置大小等:软件为我们提供了各种调整方式,如:左对齐、右对齐、宽 相等、水平居中等等。 5)设置控件的顺序:执行菜单命令Layout->Tab Order可以显示并修改Tab Order,按所想要的 访问顺序依次点击每一个控件,完成后,点击空白处就可以了。 6)为对话框成员添加变量:打开ClassWizard窗口,选择Member Variables标签页,Class name下拉列表中选择CScoreDlg类。则对话框中可以创建成员变量的控件ID出现在下方的 Control IDs列表中。单击Add Variable按钮,则弹出Add Member Variable对话框,设置 变量名即可。 7)对话框类的构造函数:双击各个控件并确定就会弹出编程界面,为各个控件添加函数程序,实 现它们所对应的功能。 8)运行程序,调试程序。 2、源程序代码: 见后:实验结果及分析

3、调试过程记录: 在调试程序的时候,我们必须使程序在某一地点停下来。即是设立断点,其次再运行程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向,从而调试程序。 逐步完善对话框的内容,加入控件,编写程序:

一级节点标准

生产计划一级节点标准 为进一步加强对计划落实工作的考核力度,保证生产经营工作按公司计划得到有效落实,从而促进公司快速、健康发展,特对房地产开发流程中重要工程建设节点的完成标准强调说明如下: 一、总规报批:指“拟开工项目总规手续完备,项目后续工作能够紧前进行。 (一)项目总规报批需完善的手续: 1、土地出让合同签订完成,经过确权,办理完成国有土地使用权证; 2、拟开项目市场定位报告完成公司审批; 3、项目预算通过公司审批完成; 4、规划方案通过公司及政府的批复,完成政府图审盖章,具备施工图设计的条件; 5、完成建设用地规划许可证的办理。 二、施工图纸:指“项目单体各专业施工图纸(建筑、结构、水暖、电等)设计完成,并通过分公司的内部审核及政府的图审后,施工图纸到达总部预结算部”。 该节点包含内容有: (一)项目所在地块完成地勘并出具正式地勘报告。 (二)项目各专业图纸符合施工图设计深度及标准(根据开发进度及批次划分,外线、园林图纸可适当后延,在主体封顶前完成即可); (三)项目各专业图纸经分公司内审,并根据内审意见调整完成。 (四)项目各专业图纸完成图纸外审,并根据审核意见调整完成,取得图审合格证。 (五)完整的施工图纸到达总部预结算部,并具备施工图预算的条件。 三、预算:指“项目各专业预算工作完成,预算成果满足招标采购需求”。 该节点包含内容有: (一)根据项目标段及各专业界面划分完成预算委托并签订委托合同。

(二)根据预算委托完成项目预算,成果经公司预决算部审核并经采购部确认,满足项目招标采购需求。 四、单规:指“完成批次开发内各单体建设工程规划许可证的办理”。 该节点包含内容有: (一)根据当地政府主管部门要求,完成相应报批文件资料及费用的缴纳。 (二)单规报批完成,并取得建设工程规划许可证。 五、招标:指“在总部职能部门的监督下,在经分公司考察合格的总包供应商选择范围内,完成对拟开批次的总包供应商的选择,完成公司定标报告的审批”。 所有投标单位必须经过以分公司生产副总为第一责任人的招标小组的考察,完成相应的招标文件、定标报告。 六、项目开工:指“开工手续完备,或拟开工项目现场有实际开工动作能够保证连续生产这一系列事件的总和”。 (一)项目开工前应完备以下开工手续: 1、国有土地使用权证; 2、建设用地规划许可证; 3、建设工程规划许可证; 4、建筑工程施工许可证; (二)项目现场实际开工动作为下列情况之一: 1、破土开槽; 2、桩基施工; 3、褥垫层施工; (三)项目能够保证连续生产的条件有: 1、总包合同签订,施工单位现场管理人员已到位,主要机械、机具、施工人员已进场; 2、监理机构已进驻现场; 3、由建设单位、监理单位、施工单位和设计单位参加的图纸会审已经完成;

C++简单学生成绩管理系统

C++学生成绩管理系统 要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。 学生成绩管理系统分析: 学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。 学生成绩管理系统结构:

各个子函数功能及其流程: 1.首先定义一个学生类Class Student;并定义其各个私有变量和公有函数 2.Student();构造函数,用于初始化学生类中的各个变量并记录 3.Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容 4.Output();函数:用于输出学生信息,包括学号姓名各科及总分平均成绩

5.Find();函数:用于查找学生各项信息。 6.modify();函数:用于修改学生各项信息。 7.delete();函数:用于删除学生信息。

();函数:对学生各项信息进行排序操作。 8.save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文件将 其中的学生信息显示出来

9.“=”“<<”“>>”符号的重载:在各个函数处理数据过程中对这些的调用处理 函数源代码: 此函数源代码在VisualC++环境下编译通过。具体如下: #include"" #include"" #include"" #include"" #include"" #include"" #include"" class student ame,n1)==0) { temp=stu[j]; f3=1; } } if(f3==0) cout<<"对不起,没有你要查找的学生成绩"<

学生选课系统详细设计说明书

学生选课系统详细设计说明书 一、编写目的 该详细设计说明书的目的在于根据需求说明书与概要设计说明书提出该系统的详细设计,即系统的详细架构,主要包括系统的模块划分、程序系统的结构、各个模块的流程以及各层次中每个程序的设计考虑。 二、背景 软件系统名称:学生选课系统 软件实现计算机:LENOVO 三、管理员模块程序设计说明 ①人员管理:管理员在登录之后可以对系统内的人员(包括学生、教师等)进行管理,包 括对人员的信息进行查询、修改和删除等操作。 ②课程管理:管理员在后台添加、编辑课程的基本信息(包括授课教师、开课时间设定), 同时可以编辑系统开放选课的时间,在适当时间开启和关闭选课系统。 ③系统信息管理:管理员可对系统的基本信息进行编辑,对系统公告进行更改或者系统标 题、系统相关链接等。 ④系统权限管理:对不同的用户要分配不同的权限,管理员可设定不同人员对不同模块的 访问权限,允许或者拒绝不同用户对模块的增删查改操作。 四、教师模块程序设计说明 (1)基本信息管理:此模块主要实现两个分支功能: ①个人信息修改和密码修改。在教师用户登录状态下,实现这些功能,通过对自己的注 册信息的修改满足用户的个性需求,能将注册信息及时反映个人状态,另外,密码修改则是很多网站都应具备的基本功能,能有效保护用户身份和网络安全。 ②其它基功能如学生查询,教师查询和留言查询,这三个功能都是在教师在线状态下实 现的。学生查询对于教师来说非常实用,如果教师想要某个学生的基本信息,只要登录查询就可以找到目标学生,此模块目的在于让老师更方便的掌握学生的基本信息以备不时之需,用以师生交流上非常方便;教师查询对于同事间的交流和联系会显得很重要,这个分支模块主要在于促进同事之间的了解和及时沟通,以便得到共同关心的话题并进行探讨;而留言查询,此模块是则实现师生,同事以及个体之间的交流实现了一个更好的交流平台。 (2)资料管理: 随着教师办公信息化的发展,教师对网络的以来与日俱增,自己的授课计划以及出行安排都会及时更新在自己的平台上,这种平台包括个人博客,此模块的涉及就在于想把学校的办公平台向个人博客过渡,让老师的工作伴随自己的个性体现。 (3)成绩录入: 对于在本教师选课范围内的学生,教师可以查看学生的基本信息,并对学生成绩进行登记和更改。

选课管理系统分析

数学与计算机学院 课程设计说明书 课程名称: JA V A数据库网络综合课程设计 课程代码: 题目: 选修课程管理系统 年级/专业/班: 2012级计科3班 学生姓名: 徐茂淋 学号: 312012********* 开始时间:2014 年12月2日完成时间:2014年12月28日课程设计成绩:

指导教师签名:年月日 数学与计算机学院 课程设计任务书 ( 2014/ 2015学年第1学期) 专业:计算机科学与技术 年级:2012 课程名称:JA V A数据库网络综合课程设计 课程代码:

一、设计题目 选修管理系统 二、主要内容 调查学校教务处,设计用于管理全校学生选修课活动的系统。主要功能有: 1.全校选修计划课程管理; 2.全校选修开课课程管理; 3.全校学生选课管理; 4.全校选修课成绩管理; 5.打印报表; 6.系统维护,如数据安全管理(含备份与恢复)、操作员管理、权限设置等; 要求: 1.设计学生选课录入界面及学生选课查询界面; 2.设计课程输入界面和学生选课表及课程选修情况查询界面; 3.根据学生库和课程库,输出学生课程表(选课冲突时按学号分配课程); 三、具体要求 1.对系统作需求分析和数据库逻辑结构设计。 2.设计出ER模型,并完整标明每个实体型的相关属性,推荐使用Erwin实现。 3.利用前台开发工具,完成对每个实体型中实体数据的查询和编辑操作,并提 供相应的界面。 4.源代码格式规范,注释不少于三分之一. 5.提交完整程序代码、课程设计报告及相关文档;给出系统需求分析和数据库

6.逻辑结构设计;总结开发语言与后台数据库之间的连接形式;总结程序开 发过程中系统函数、存储过程、触发器等后台数据库对象在开发过程中的调用情况(如果没有使用,可不写);设计中遇到的问题,设计的心得体会; 调试所遇到的问题等。 四、成果及应提交材料 1.源程序一份 2.课程设计报告一份 五、主要技术路线提示 后台推荐采用SQL server或Oracle;前台开发环境为JAVA。 用前台开发工具开发相应系统,学习开发工具与数据库的连接,可采用ADO,ODBC,OLE DB或JDBC连接数据库,并调用系统存储过程、自定义存储过程、函数等。 六、进度安排 第12周:数据库系统概念模型、数据模型设计,创建数据库以及相关对象; 第13周:前台程序开发,撰写报告,接受检查。 七、推荐参考资料 1.王珊、萨师煊,数据库系统概论,高等教育出版社. 2006.5 2. 李刚等,Java程序员之旅--Java数据库技术详解,化学工业出版社,2011.4 3、姜中华,刘小春,Java 数据库应用程序设计,机械工业出版社,2008.4 4、软件开发技术联盟,Java Web开发实践,清华大学出版社,2013.9 指导教师签名日期年月日 系主任审核日期年月日

项目里程碑节点实施办法行文稿

江西抚州供电公司 电网建设项目里程碑节点实施办法 第一章总则 第一条依据赣电规〔2009〕37号《关于下达2009年电网建设项目里程碑节点计划的通知》,为使电网规划和投资计划有效衔接,合理科学地安排电网建设时序,协调工程前期、招标、施工、投产等各环节间的关系,明确各部门、各单位的职责,进一步强化电网建设过程控制,制定本办法。 第二条各部门、各单位要高度重视做好电网建设项目里程碑节点计划工作,按照责任划分和属地化管理原则,进一步细化项目节点计划,合理安排工程进度,落实责任,强化考核。 第三条电网建设项目里程碑节点管理的职能部门为基建(规划投资)部,里程碑节点详细计划由基建(规划投资)部在年初根据省公司的里程碑节点计划进行细化后提出,各责任部门节点计划完成时间纳入公司绩效考核。 第四条本办法适用于公司系统110kV及以上的输变电 工程。 第二章管理职责 第一条设计招标申请:由基建(规划投资)部在公司电网建设项目里程碑节点计划安排时间内,向省公司规划投资部递交设计招标申请,延期纳入公司绩效考核。 第二条设计招标:由基建(规划投资)部及时与省公司

规投部、招标中心联系、沟通,催促设计招标在节点计划安排时间内完成。 第三条可研报告完成:由基建(规划投资)部督促设计单位在规定时间内完成可研设计,报送省公司规投部,催促并协助省公司规投部组织完成可研设计审查。 设计单位未按时上报,延期按合同考核(如公司电力勘察设计院设计,延期按合同考核外,并对其进行绩效考核),由于其它原因未按时上报,对责任部门进行绩效考核。 第四条可研审批:由基建(规划投资)部及时与省公司规投部联系、沟通,催促下达可研审批。 第五条初设报告完成:由基建(规划投资)部督促设计单位在规定时间内完成初步设计,报送省公司基建部,催促并协助省公司基建部组织完成初步设计审查。 设计单位未按时上报,延期按合同考核(如公司电力勘察设计院设计,延期按合同考核外,并对其进行绩效考核),由于其它原因未按时上报,对责任部门进行绩效考核。 第六条初设审批:由基建(规划投资)部及时与省公司基建部联系、沟通,催促下达初设审批。 第七条主要设备招标:由基建(规划投资)部督促设计单位在规定时间内完成设备招标申请及设备标书的上报,物资供应中心根据省公司招标中心的招标总结表、中标通知书负责追踪、联系、签订商务合同并负责催货。 设计单位未按时上报,延期按合同考核(如公司电力勘察

相关主题
文本预览
相关文档 最新文档