小型教材订购系统.docx

上传人:b****7 文档编号:10582013 上传时间:2023-02-21 格式:DOCX 页数:75 大小:594.88KB
下载 相关 举报
小型教材订购系统.docx_第1页
第1页 / 共75页
小型教材订购系统.docx_第2页
第2页 / 共75页
小型教材订购系统.docx_第3页
第3页 / 共75页
小型教材订购系统.docx_第4页
第4页 / 共75页
小型教材订购系统.docx_第5页
第5页 / 共75页
点击查看更多>>
下载资源
资源描述

小型教材订购系统.docx

《小型教材订购系统.docx》由会员分享,可在线阅读,更多相关《小型教材订购系统.docx(75页珍藏版)》请在冰豆网上搜索。

小型教材订购系统.docx

小型教材订购系统

重庆师范大学

课程名称:

软件工程

试题题目:

小型教材订购系统

 

姓名:

罗鹏、陆荟芸

学号:

2008*******、2008*******

专业:

2008级计算机科学与技术(师范)

学院:

计算机与信息科学学院

时间:

2010年12月17号

 

一、开发背景与目标

项目名称:

“教材订购系统”;

项目开发小组成员:

罗鹏、陆荟芸

项目与其他软件,系统的关系:

本项目采用客户机/服务器原理,客户端的程序是建立在WindowsNT系统上以MicrosoftVisualC++以及ACCESS数据库等为开发软件的应用程序。

1.系统开发的背景

人工订购教材流程复杂,容易出错,且效率低下。

经常造成资料管理混乱,容易产生问题。

开发学校教材订购系统是供学校的老师和学生订购教材使用,流程简单,且负责管理订购教材的工作人员的处理时间自由,查看清晰、方便,且处理起来也比较高效,不容易出错。

2.系统开发目标:

1)学生和老师能够随时登录订购教材、查看和修改订购单,还可以查看领书

单。

2)发行人员能随时登录处理订购单、查看库存和输入初始的库存书籍,还有查看进书通知。

3)采购人员能随时登录系统查看缺书单,填写进书单。

系统实现后,大大提高学校教材订购的服务效率。

降低教材订购服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销,使得订购者订购更加方便,也为学校节省了许多人力资源。

二、需求分析说明书

2.1系统介绍

系统名称:

学校教材订购系统

系统的简要说明:

各个订购者把信息(姓名,号码,所要订购的书名,主编,数量等)输入到系统中,系统为订购者安排领书单.当订购者输入其各项信息后,系统打印出领书单给订购者,订购者如有什么不满,可以通过系统删除已订购教材书籍.

1.学生和老师能够随时登录订购教材、查看和修改订购单,还可以查看领书单。

2.发行人员能随时登录处理订购单、查看库存和输入初始的库存书籍,还有查看进书通知。

3.采购人员能随时登录系统查看缺书单,填写进书单。

2.2系统面向的用户群体

用户群体:

学校的学生、老师和相关购书单位、机构。

2.3系统的功能性需求

系统功能要求:

1)输入人员信息(姓名,号码)

2)系统能够存储老师和学生填写的订购单,输出订购单和提供修改订购单的功能。

3)发行人员能够登陆系统处理相应的订购单、查看库存和输入初始的库存书籍,还有查看进书通知。

采购人员能随时登录系统查看缺书单,填写进书单。

4)主要功能:

为客户订购教材,提供教材订购业务,方便人们的订购服务,提高工作质量及服务质量。

性能要求:

将订购教材的信息及时反映在学校的工作平台上。

订购系统的定单必须无差错的存储在学校的主服务器上。

对服务器上的数据必须进行及时正确的刷新。

输出要求:

数据完整,详实。

输出要求:

简捷,快速,实时。

7)故障处理要求:

出现故障会给出提示页面和纠错步骤

8)精度:

应该保证查询时的精度与全面性

9)时间特性要求:

操作的响应时间应该一般为1~2秒,当数据增大或者运算量增大时适当增多处理时间,一般应该控制在3~4秒

10)灵活性:

遇到错误操作时会给出适当处理方式并且及时纠正且给出相应提示

12)输入输出要求:

以字符串输入,输入数据的设备是鼠标各键盘。

系统输入输出数据应满足用户的需求,保证精度。

13)数据管理能力要求:

系统要处理的数据不会太大,对容量方面不会有太多要求

 

可靠性要求:

具有正常操作情况下不会出现故障的可靠性

可维护性要求:

可以随时进行维护修改的操作并且工作量能保持在一定的限度内

可重用性要求:

应采取模块化方式进行设计,系统内各模块接口尽可能强内聚,弱耦合,以提高模块的可重用性。

可理解性要求:

系统的各个界面或者提示操作都应该通俗易懂

2.4系统的非功能性需求

2.4.1.安全与保密要求:

服务器的管理员享有对教材信息库及定购信息库的管理与修改。

系统要求用户登录时进行身份验证,允许通过任可身份的用户使用本系统,要但读取其他用户的信息就一定要通过其资料验证通过。

2.4.2运行环境

硬件环境:

P2、更高档微机或笔记本电脑;运行时内存要求:

最少为64M;所需硬盘:

最少5M。

软件环境:

Windows2000/XP/ME

三、可行性分析报告

3.1社会可行性分析

1.用户使用可行性:

1)使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知识,所有人员都要经过本公司培训.

2)管理人员也需经一般培训.

3)经过培训人员将会熟练使用本软件.。

2.

社会其他方面可行性:

教材订购系统在学校教材管理的方面大大提高了工作效率,使得订购者订购更加方便,也为学校节省了许多人力

3.2操作可行性分析

用户操作可行性:

使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知识,所有人员都要经过本公司培训.

管理人员也需经一般培训。

经过培训人员将会熟练使用本软件。

软件能被原有工作人员快速接受。

3.3技术可行性分析

1.系统的简要说明:

各个订购者把信息(姓名,号码,所要订购的书名,主编,数量等)输入到系统中,系统为订购者安排领书单.当订购者输入其各项信息后,系统打印出领书单给订购者,订购者如有什么不满,可以通过系统删除已订购教材书籍.

2.数据处理和数据流图:

现有技术可完全承担开发任务。

3.4时间、设备可能性

本系统的开发需要大概两个月的时间,时间充足,时间可行;

本系统的开发只需要两台PC机和相关开发软件,设备可行。

3.5文档要求

文档写作按照学院老师规定要求填写。

四、开发环境与项目规划

4.1开发环境

系统是在winXP下MsrosoftVisualStudio完成的。

4.2项目规划与管理

4.2.1开发人员安排

人员分工:

陆荟芸、罗鹏:

需求分析、软件设计、编码、测试(项目很小,共同完成)。

4.2.2开发进度安排

阶段点工作成果时间

需求分析:

需求规格说明书2010-9-20—2010-9-23

设计:

设计说明书2010-9-24—2010-9-27

编码:

源程序清单2010-9-27—2010-10-20

测试:

测试报告2010-10-22-2010-12-9

五、结构化分析与设计

5.1本系统的基本设计概念和处理流程如下。

S1:

系统启动时,激活身份验证模块。

S2:

通过身份验证后,对系统进行初始化,判断用户身份,导入到不同的处理页面是。

S3:

系统进入消息循环状态,通过事件驱动机制激活各功能模块,并执行指定模块。

S4:

各项功能执行完毕后,重新进入消息循环状态。

S5:

由退出系统事件激活关闭系统模块,退出系统。

5.2结构

六、数据库分析与设计

6.1数据库环境说明

运行环境:

Windows2000/XP/ME

6.2数据库命名标准与规范

按如下的数据格式输入数据即可:

教师或学生姓名

号码

订购书籍

删除书籍

查看订购单

查看领书单

liang

7022

cyuyan

rjgc

sjjg

cyuyan

查看

查看

hao

7021

zcyl

发行人员姓名

号码

处理订购单

查看进书通知

输入系统初始库存书籍

查看库存

cong

7024

处理

查看

cyuyan

rjgc

sjjg

查看

采购人员姓名

号码

查看缺书单

填写进书单

zhu

7023

查看

zcyl

6.3数据库逻辑设计

6.3.1逻辑设计步骤

1.建立教师学生模块。

2.建立发行人员模块。

3.建立采购人员模块

4.将以上的模块按照逻辑设计原则进行连接。

6.3.2逻辑设计原则

6.3.3逻辑设计图

6.4数据库物理设计

6.4.1数据库物理设计步骤

1.根据物理设计图分析各自的模块的特性与联系。

2.建立各自的的模型图。

3将各自的模型图进行联系并融合。

6.4.2表、视图汇总

七、人机界面设计

7.1界面设计原则

1.简单,易懂,富有人性化。

7.2系统窗体汇总

略,详见数据测试。

7.3主界面设计

7.4子界面设计

下面给出一个子界面的,详细见数据测试。

订购书名为zcyl这本库存不存在的书籍。

8.1实现环境与技术

硬件环境:

P2、更高档微机或笔记本电脑;运行时内存要求:

最少为64M;所需硬盘:

最少5M。

软件环境:

Windows2000/XP/ME

#include

#include

#include

#include

#include

#include

#include

#include"conio.h"

#defineUSER_LENsizeof(USER)

#defineBOOK_LENsizeof(BOOK)

typedefstructuser/*用户*/

{charnum[12];/*号码*/

charname[30];/*姓名*/

structuser*next;

}USER;

typedefstructbook/*书籍*/

{charnam[30];/*名字*/

chareditor[30];/*作者*/

intamount;/*数量*/

inttag1;/*库存标记*/

inttag2;/*数量是否足够标记*/

structbook*next;

}BOOK;

charfirst_menu();/*顶层菜单*/

USER*user_input();/*用户信息输入(完成)*/

BOOK*input_book_list();/*输入图书信息*/

voidbooks_list_save(BOOK*head_book,charfilename[]);/*以用户名为文件名存储书籍信息*/

voidprint_fetch(USER*head_user);/*显示领书单*/

charuser_menu();/*教师学生菜单*/

charbuyer_menu();/*采购员菜单*/

charissuer_menu();/*发行人员菜单*/

voiddispose_buy_list();/*处理订购单*/

BOOK*load(charfilename[]);/*打开存储书籍的文件*/

USER*load_user_record(charfilename[]);/*打开存储用户信息的文件*/

voidprint_book_list(BOOK*head_book);/*显示书单(总共20行)*/

BOOK*obliterate(BOOK*head_book);/*删除*/

voidsave_user_record(USER*head);

voidcreate_file(charfilename[]);/*创建空文件(为了以后的追加做准备)*/

voidadd_to_store(BOOK*new_adding);/*加到库存*/

voidprint_user_record(USER*head_user);/*打印用户记录*/

intcmp_store(BOOK*head_store,BOOK*head_book);/*检查库存是否存在该书籍*/

voidreturn_list();/*返回领书单*/

voiddelete_file(charfilename[]);/*删除文件*/

voidcheck_about_lack(BOOK*head_book);/*登记入缺书表*/

voidweek_day();/*显示星期*/

BOOK*together(BOOK*head_book);/*归并相同的名称书籍的数量*/

intcheck_amount(charinput[]);/*检查输入的数字是否合法*/

intamount_do(charinput[5]);

/*主要模块*/

voidabout_system();/*系统备注*/

charquit();/*退出确定*/

voidtcher_stu_do();/*教师和学生模块*/

voidbuyer();/*采购员模块*/

voidissuer();/*发行人员模块*/

voidmain()

{system("color2f");

if(fopen("c:

\\all_user.txt","r")==NULL)create_file("all_user");

printf("\n\n\n\n\n欢迎进入学校教材订购系统\n\n");

printf("按任意键继续");

getch();

for(;;)

switch(first_menu())

{case'0':

switch(quit()){case'1':

about_system();exit(0);break;

case'0':

break;

}

break;

case'1':

tcher_stu_do();break;

case'2':

buyer();break;

case'3':

issuer();break;

}

}

voidweek_day()

{char*wday[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

time_ttimep;

structtm*p;

intm;

time(&timep);

p=localtime(&timep);/*取得当地时间*/

if(!

strcmp(wday[p->tm_wday],"Sun"))m=7;

if(!

strcmp(wday[p->tm_wday],"Mon"))m=1;

if(!

strcmp(wday[p->tm_wday],"Tue"))m=2;

if(!

strcmp(wday[p->tm_wday],"Wed"))m=3;

if(!

strcmp(wday[p->tm_wday],"Thu"))m=4;

if(!

strcmp(wday[p->tm_wday],"Fri"))m=5;

if(!

strcmp(wday[p->tm_wday],"Sat"))m=6;

switch(m)

{case1:

printf("星期一|\n");break;

case2:

printf("星期二|\n");break;

case3:

printf("星期三|\n");break;

case4:

printf("星期四|\n");break;

case5:

printf("星期五|\n");break;

case6:

printf("星期六|\n");break;

case7:

printf("星期日|\n");break;

}

}

charfirst_menu()/*顶层菜单*/

{charn;

time_ttimep;

structtm*p;

time(&timep);

p=localtime(&timep);/*取得当地时间*/

system("cls");/*刷屏*/

printf("|*************************************************************|\n");

printf("|今天是%d年%d月%d日",(1800+p->tm_year),(1+p->tm_mon),p->tm_mday);week_day();

printf("|=============================================================|\n");

printf("|欢迎使用我们的系统|\n");

printf("||\n");

printf("|(按'0'退出,)|\n");

printf("|===========================MENU==============================|\n");

printf("|请根据选择输入您的身份|\n");

printf("|1.教师或学生|\n");

printf("|2.采购人员|\n");

printf("|3.发行人员|\n");

printf("||\n");

printf("||\n");

printf("||\n");

printf("||\n");

printf("||\n");

printf("||\n");

printf("|*************************************************************|\n");

printf("\n\t\t\t您的选择是(1-3):

");

scanf("%s",&n);

return(n);

}

USER*user_input()/*用户信息输入(完成)*/

{

USER*p,*head=NULL;

time_ttimep;

structtm*a;

p=(USER*)malloc(USER_LEN);

if(!

p)

{printf("\nOutofmemory.");

return(head);

}

time(&timep);

a=localtime(&timep);/*取得当地时间*/

system("cls");/*刷屏*/

printf("|*************************************************************|\n");

printf("|今天是%d年%d月%d日",(1800+a->tm_year),(1+a->tm_mon),a->tm_mday);week_day();

printf("|=============================================================|\n");

printf("|欢迎使用我们的系统|\n");

printf("||\n");

printf("|(按'0'退出,)|\n");

printf("|===========================MENU==============================|\n");

printf("\n\n\n");

printf("姓名(27个字符以内):

");

scanf("%s",&p->name);

if(p->name[0]=='0')return(NULL);

while(strlen(p->name)>27)

{system("cls");

printf("您输入的姓名过长,请重新输入,不要超过27个字符");

getch();

system("cls");/*刷屏*/

printf("|*************************************************************|\n");

printf("|今天是%d年%d月%d日",(1800+a->tm_year),(1+a->tm_mon),a->tm_mday);week_day();

printf("|=============================================================|\n");

printf("|欢迎使用我们的系统|\n");

printf("||\n");

printf("|(按'0'退出,)|\n");

printf("|===========================MENU==============================|\n");

printf("\n\n\n");

printf("姓名(27个字符以内):

");

scanf("%s",&p->name);

if(p->name[0]=='0')return(NULL);

}

printf("\n");

printf("号码(7位以内):

");

scanf("%s",&p->num);

if(p->num[0]=='0')return(NULL);

while(strlen(p->num)>7)

{system("cls");

printf("您的号码过长请重新输入");

getch();

system("cls");

printf("|*************************************************************|\n");

printf("|今天是%d年%d月%d日",(1800+a->tm_year),(1+a->tm_mon),a->tm_mday);week_day();

printf("|=============================================================|\n");

printf("|欢迎使用我们的系统|\n");

printf("||\n");

printf("|(按'0'退出,)|\n");

printf("|===========================MENU==============================|\n");

printf("\n\n\n");

printf("姓名:

%s",p->name);

printf("\n\n");

printf("号码(7位以内):

");

scanf("%s",&p->num);

if(p->num[0]=='0')return(NULL);

}

p->next=NULL;

head=p;

returnhead;

}/*还没有对输入的数据长度做规范处理*/

/*还没有确定是否要对使用的用户做记录*/

/*文件的读取或是存储存在问题*/

BOOK*input_book_list(BOOK*head)/*输入图书信息*/

{BOOK*p1,*p2;

charinput[5];

system("cls");

printf("输入需订购书籍的信息\n\n");

printf("如果你知道该图书的主编则输入其姓名,否则输入'0'\n\n");

printf("(按'0'返回)\n\n\n\n");

if(head==NULL)

{head=p1=p2=(BOOK*)malloc(BOOK_LEN);/*输入第一个结点*/

do

{printf("书名:

");/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1