计算机技术基础(C语言).pdf

上传人:奔*** 文档编号:90910656 上传时间:2023-05-18 格式:PDF 页数:55 大小:6.70MB
返回 下载 相关 举报
计算机技术基础(C语言).pdf_第1页
第1页 / 共55页
计算机技术基础(C语言).pdf_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《计算机技术基础(C语言).pdf》由会员分享,可在线阅读,更多相关《计算机技术基础(C语言).pdf(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机技术基础(C语言)课程设计指导书目录前言.2设计一.3设计二.12设计三.19设计四.20设计五.21设计六.22设计七.23设计八.24设计九.25设计十.26设计十一.27设计十二.28报告样文.29C语言图形函数.38-1 -刖s课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要。本实验指导书的主旨是:辅助非计算机专业的学生进行计算机技术基础课程设计。本课程的课程设计实际是非计算机应用专业学生学习完 计算机技术基础课程后,进行

2、的一次全面的综合训练,其目的在于加深对计算机程序设计思路和基本知识的理解,掌握运用软件开发的基本方法。按课程设计指导书提供的课题,学生可以根据自己的情况和实验的基本需求独立完成设计,标 有“可选”的部分可根据设计时间的安排及工作量的大小适当选择。也可选用其他课题或组成设计小组,分模块进行,共同协作完成一个课题的设计任务。要求书写详细的设计说明书,对复杂的代码段和程序段,应画出程序流程图。设计完成后,必须提交设计报告,软件数据盘。由指导教师按优秀、良好、中等、及格和不及格五级分制评定成绩。成绩不及格者不能获得学分,其余可获得1.5学分。严禁相互抄袭。-2-设计一电子通讯录一、【实验目的】培养学生

3、综合利用C语言进行程序设计的能力,主要是培养学生利用系统提供的标准函数进行创新设计。二、【实验条件】在安装Windows2000 DOS和 TC环境的微机机房进行。三、【实验内容】1.add添加好友信息2.revice修改好友信息3.d elete删除一个好友信息4.name按名字查找一个好友信息5.birthday按生日查找一个好友信息电子通讯录功能如下:Function choose1.Read2.Append3.Delete4.Search5.Save and exit6.Quit说明:上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的电话号码,通讯地址和出生日期,而且它还提供

4、了检索和删除功能。在后面还将提供按生日先后排序的功能,这些都有助于该通讯录的管理.四、【实验准备】指导教师由任课教师或本专业教师和工程技术人员担任。指导教师在课程设计开始前一个月下发课程设计指导书,学生根据个人情况选定自己的课题。选定题目后查找资料、准备设计材料。五、【设计思想:】1.用顺序表设计电子通讯录的结构为了表示较为复杂的数据内容,一般用结构这种数据类型,第步就是在结构中定义所需要的各项信息。一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,

5、这样就产生了电子通讯录的基本结构:struct addr/*通讯地址结构定义*/char post_num10;/*邮编*/char addr40;/*家庭地址*/);struct birth/*出生年月结构定义*/int year;/*年份*/int month;/*月份*/int day;/*日期*/);struct friend/*电子通讯录结构定义*/-3-i n t n u m b e r;/*序号*/c h a r n a m e 2 0 /*姓名*/c h a r s e x;/*性别*/s t r u c t b i r t h b i r t h;/*出生年月*/s t r

6、u c t a d d r a d d r;/*通信地址*/c h a r t e l e p h o n e(1 3 ;/*联系电话*/);定义的主结构f r i e n d 包含了前述的五项内容n a m e,s e x,和 t e l e p h o n e 分别代表了姓名,性别和联系电话。为了让结构中的各项组分更加清晰,定义了二个小结构b i r t h 和 a d d r 分别代表出生年月和通讯地址,因此实际上f r i e n d 包含了8项内容。有了结构定义后,我们可以很轻松地构造出电子通讯录的主体:s t r y c t f r i e n d f r i e n d s 5

7、0 ;采用一维数组f r i e n d s 5 0 ,正是用到了顺序表这种最简单的数据结构来表示问题。2.增添电子通讯录中的内容对于电子通讯录这样一张顺序表来说,内容的录入是必不可少的操作。由于采用的是顺序存储结构。这项工作很简单,只需要在把输入的信息按顺序放在空的f r i e n d s 数组元素中即可。函数D a t a _ In p u t 完成了信息的录入工作:v o i d D a t a _ i n p u t(i n t j)(f r i e n d s j .n u m b e r=j;p r i n t f(n n n t N o%d r e c o r d”,j);p

8、r i n t f (n n t N a m e:);/*读入姓名*/scanf,f r i e n d s j .n a m e);p r i n t f (n t S e x (m/f):z,);/*读入姓别*/s c a n f(%c,f e f r i e n d s j .s e x);p r i n t f (n t b i r t h d a y:);/*读入出生年月*/p r i n t f (z,n t t y e a r:,z);s c a n f(%d,&f r i e n d s j .b i r t h,y e a r);p r i n t f (,z n t t m

9、 o n t h,z);s c a n f&f r i e n d s j .b i r t h,m o n t h);p r i n t f (,z n t t d a y,z);s c a n f (%d,&f r i e n d s j .b i r t h,d a y);p r i n t f (z n t P o s t n u m b e r:z,);/*读入邮编*/s c a n f f r i e n d s j .a d d r.p o s t _ n u m);p r i n t f (/z n t A d d r e s s:,z);/*读入家庭地址*/s c a n f

10、(%s ,f r i e n d s j .a d d r.a d d r);p r i n t f (,z n t t e l e p h o n e:z,);/*读入联系电话*/s c a n f (,z%s,z,f r i e n d s j .t e l e p h o n e);-4-录入完毕后典型的一份信息如下所示:NO:1Name:张三Sex:mBirthday(y/m/d):1980 5 12Postnum:100034Address:Beijing UniversityTele:(010)620052003.电子通讯录记录的维护(插入与删除)在实际使用中,数据资料输入后,还需

11、要不断的更新和维护操作,最常见的是数据的插入与删除。作为顺序表来说,如何在插入与删除数据资料后仍然能保持原有数据之间的关系,是需要考虑的关键问题。电子通讯录的插入算法如下:printf(,zntlnsert No:);/*录入插入位置*/s c a n f&k);for(j=i+l;jk;j-)/*插入位置后的元素顺序后移*/strcpy(friendsj.name,friendsjT.name);/*交换元素内容*/friendsj.sex二friendsj+1.sex;friendsj.birth.year=friendsj-1.birth,year;friendsj.birth.mont

12、h=friendsj-1.birth,month;friendsj.birth,day=friendsj-11 birth,day;strcpy(friendsj.addr.post_num,friendsj-l.addr.post_num);strcpy(friendsj.addr.addr,friendsj-1.addr.addr);strcpy(friendsj.telephone,friendsj-l.telephone);Data_Input(k);/*插入位置上填入待插入元素*/i+;/*总元素个数增1*/删除算法如下:printfC W D elete No:);/*读入删 除位

13、置*/scanf(%d,&k);for(j=k;ji;j+)/*删除位置前的元素顺序前移*/(strcpy(frindsj.name,frindsj+l.name);friendsj.sex=frindsj+l.sex;friendsj.birth.year=friendsj+1.birth,year;friendsj.birth,month二friendsj+1 birth,month;frindsj.birth,day二friendsj+1.birth,day;strcpy(friendsj.addr.post_num,friendsj+1.addr.post_num);strcpy(fr

14、iendsj.addr.addr,friendsj+1.addr.addr);strcpy(friendstj.telephone,friendsj+1.telephone);)i-;/*元素总数减1*/-5-函数s e a r c h 的代码如下:s e a r c h ()p r i n t f(/z n t P l e a s e i n p u t n a m e:);/*提示输入要查询的姓名*/g e t s(s e a r c h _ n a m e);f o r(j=l;j D /*查询失败,给出提示信息*/p r i n t f Cz n t N o s u c h r e c

15、 o r d s);)文件存盘代码如下F IL E *f p;v o i d D a t a _ S a v e()(i n t j;f p=f o p e n(,zf r i e n d.t x t,w );/*c 以可写方式打开或创建文件 f r i e n d,t x t*/f o r(j=l;j =i;j+)f w r i t e(&f r i e n d s j ,s i z e o f(s t r u c t f r i e n d),1,f p);f c l o s e(f p);)处理有关的文件操作,最容易忽视的就是关闭文件的操作.如果不及时关闭,容易造成文件内容的丢失,或者占

16、用大量的内存,导至程序的执行速度下降。从文件f r i e n d,t x t 读取记录的代码如下:v o i d D a t a _ L o a d()(i n t j;l o n g k;f p 二 f o p e n(f r i e n d,t x t,r+t);/*打开文件 f r i e n d,t x t*/i f(f p!=N U L L)f o r(i=l;i 50;i+)i f (j=f g e t c (f p)=二 E O F)/*判断是否到了 文件尾*/r e t u r n;k=i-l;f s e e k(f p,k*s i z e o f(s t r u c t f

17、 r i e n d),S E E K _ S E T);f r e a d(&f r i e n d s i ,s i z e o f (s t r u c t f r i e n d),1,f p);/*从文件中读一条记录*/)e l s e /*如果文件不存在*/-6-f p=f o p e n(f r i e n d,t x t,w);i=l;)六、【总体设计】在前面五个步聚的基础上开始进行程序主函数的设计 主函数首先调用初始化函数D a t a L oa d 从己有文件f r i e nd,t x t 读取记录,如果是第一次使用,那么该文件不存在就创建一个新文件,接下来程序进入一个无

18、限循环,首先用一系列p r i nt f 语句打印出各功能的选择菜单,并提示按下数字键调用相应的功能。这里使用了 s w i t c h 分支结构来处理按键消息,这是一种典型的用法,当选择了 q u i t 菜单后,程序给出是否存盘的提示。/*.全部源代码如下*/#i nc lu d e#i nc lu d e#i nc lu d e#i nc lu d e#i nc lu d e s t r u c t a d d r c h a r p os t _ nu m 10;c h a r a d d r 4 0;);s t r u c t b i r t h i nt y e a r;i nt

19、mont h;i nt d a y;);s t r u c t f r i e nd l i nt nu mb e r;c h a r na me 20;c h a r s e x;s t r u c t b i r t h b i r t h;s t r u c t a d d r a d d r;c h a r t e le p h one 13;f r i e nd s 5 0;F I L E *f p;i nt i;/*通讯地址结构定义*/*邮编*/*家庭地址*/*出生年月结构定义*/*年份*/*月份*/*日期*/*电子通讯录结构定义*/*序号*/*姓名*/*性别*/*出生年月*/*通

20、信地址*/*联系电话*/v oi d D a t a _ L oa d()i nt j;long k;-7-f p=f op e n(z,f r i e nd.t x t ,r+t);/*打开文件 f r i e nd,t x t*/i f(f p!=N U L L)f or(i=l;i 5 0;i+)j=f g e t c(f p);i f (j=E O F)/*判断是否到了文件尾*/r e t u r n;k=i-l;f s e e k(f p,k*s i z e of(s t r u c t f r i e nd l),SE E K _ SE T);f r e a d (&f r i e

21、 nd s i ,s i z e of (s t r u c t f r i e nd l),1,f p);/*从文件中读取一条记录*/)e ls e f p=f op e n(f r i e nd,t x t”,w );i=l;)v oi d D a t a _ Sh ow(i nt j)/*打印记录的详细资料*/p r i nt f (,n n t N o:%3d n,f r i e nd s j .nu mb e r);p r i nt f(X nX t B i r t h d a y(y/m/d):%4 d%2d%2d,f r i e nd s j .b i r t h,y e a r

22、,f r i e nd s j .b i rt h.mont h,f r i e nd s j .b i r t h,d a y);p r i nt f(n t P os t nu m:%-10s ,f r i e nd s j .a d d r.p os t _ nu m);p r i nt f (z z n t a d d r e s s:%-4 0sz z,f r i e nd s j .a d d r.a d d r);p r i nt f (,/n t T e le%-13s/,,f r i e nd s j .t e le p h one);)v oi d D a t a _ I

23、np u t (i nt j)/*记录插入函数*/(f f lu s h (s t d i n);f r i e nd s j .nu mb e r=j;p r i nt f (,z n n n t N o%d r e c or d”,j);p r i nt f C n n t N a me:,z);/*读入姓名*/s c a nf(%s ,f r i e nd s j .na me);f f lu s h(s t d i n);p r i nt f (z,n t Se x(m/f):,z);/*读入性别*/s c a nf (枇 ,&f r i e nd s j .s e x);p r i

24、nt f (z,n t-b i r t h d a y-);/*读入出生年月*/p r i nt f(n t y e a r:);s c a nf(%d,&f r i e nd s j .b i r t h,y e a r);p r i nt f(n t t mont h:);s c a nf(%d,&f r i e nd s j .b i r t h,mont h);p r i nt f(n t t d a y:);s c a nf(%d,f t f r i e nd s j .b i r t h,d a y);p r i nt f (,n t P os t _ nu mb e r:/,);

25、/*读入邮编*/-8-s c a nf (/s ,f r i e nd s j .a d d r.p os t _ nu m);p r i nt f (z n t A d d r e s s:);/*读入家庭地址*/s c a nf(%s,f r i e nd s j .a d d r.a d d r);p r i nt f (/n t t e le p h one:/,);/*读入联系电话*/s c a nf C/%sz,,f r i e nd s j .t e le p h one);)v oi d D a t a _ Sa v e()(i nt j;f p 二 f op e n(f r

26、i e nd.t x t ,w );f or(j=l;j =i;j+)f w r i t e(&f r i e nd s j ,s i z e of(s t r u c t f r i e nd l),1,f p);)v oi d ma i nO(i nt j,k;c h a r c h;c h a r s e a r c h na me;c lr s c r 0;D a t a _ L oa d();i ;d o p r i nt f(z,n n n t F u nc t i on c h oos e:);p r i nt f (,z n t l.R e a d);p r i nt f(n

27、t 2.A p p e nd);p r i nt f (,z n t 3.D e le t e);p r i nt f (z,n t 4.Se a r c h);p r i nt f (z,n t 5.I ns e r t);p r i nt f (z,n t 6.Sa v e a nd E x i t);p r i nt f (/z n t 7.Q u i t);p r i nt f(n n);p r i nt f(t C h oi c e:);c h=g e t c h e O ;s w i t c h(c h)c a s e 5 T :j=l;/*显示通讯录中的所有记录*/w h i l

28、e(g e t c h()!=O x lb&j i)p r i nt f (z,n t E nd of e _ not e nz z);b r e a k;c a s e 2,:/*增加通讯录中的记录*/w h i le(g e t c h()!=0 x lb&,&i 5 0)i+;D a t a _ I np u t (i);-9-i f (i=5 0)p r i nt f (z,n t e _ not e i s f i lle d nz,);b r e a k;c a s e 3:/*删除通讯录中的记录*/i f(i l)p r i nt f (n t N o r e c or d s

29、n,/);b r e a k;)p r i nt f C n t D e le t e N o:);/*读入删除位置*/scan f&k);f or(j=k;j i;j+)/*删除位置前的元素顺序前移*/s t r c p y(f r i e nd s j .na me,f r i e nd s j+l.na me);f r i e nd s j .s e x=f r i e nd s j=l.s e x;f r i e nd s j ,b i r t h.y e a r=f r i e nd s j+1.b i r t h,y e a r;f r i e nd s j b i r t h.m

30、ont h=f r i e nd s j+1.b i r t h,mont h;f r i e nd s j .b i r t h.d a y=f r i e nd s j+l.b i r t h,d a y;s t r c p y(f r i e nd s j .a d d r,p os t _ nu m,f r i e nd s j+1.a d d r.p os t _ nu m);s t r c p y(f r i e nd s j .a d d r.a d d r,f r i e nd s j+l.a d d r.a d d r);s t r c p y(f r i e nd s j

31、.t e le p h one,f r i e nd s j+1.t e le p h one);)i-;/*元素总数减1*/b r e a k;c a s e 4 :/*通讯录查询功能*/p r i nt f(n t P le a s e i np u t na me:);g e t s(s e a r c h _ na me);f or(j=l;j l)/*查询失败*/p r i n t f (,zn t No s u c h r e c o r d s);b r e a k;c a s e 5:p r i n t f(z,n t l n s e r t No:);/*录入插入位置*/sc

32、anf&k);f o r(j=i+l;j next=NULL;rear-next=p;rear=p;)其中rear即为尾指针,而指针p 指向新增的节点。算法的流程和上述完全一样。录入留言记录的函数代码如卜.所示:void Data_Input(struct record*p)(struct data*d;struct time*t;front+;getdate(t);/*取系统时间*/p-t_time.ti_hour=ti_hour;p-t_time.ti_min=ti_min;p-ti me.ti_sec=ti_sec;printf(nnnnDate:%4d%2d%2d,p-t_date.d

33、a_yeanp-t_date.da_mon,p-t_date.da_day);printf(*nTime:%2d:%2d:%2dH,p-t_time.ti_hour,p-t_time.ti_min,p-t_time.ti_sec);printfVXnXnXtPlease input record:);gets(p-event);/*输入留言内容*/p-next=NULL;)上述函数中,采用了 getdate()和 gettime。两个函数用来获取系统的日期和时间。这两个函数只返回指向当前H期和时间的两个指针,还需要将值立即赋给留言记录中的结构成员。3、出队操作一留言记录的删除和入队操作相反的是

34、出队操作,即在队头将记录删除,这也是符合“先进先出”的原则的。由于设置了头节点,因此出队操作显得非常简单。只需要修改头节点的指针域,让其指向第二个节点即可。而第一个节点则将其释放掉。其余节点,包括尾指针都不必做任何修改操作。例如一个队列原本由头节点、节 点 1 和节点2 相链而成,执行出队操作时,相当于将头节点和节点1、节 点 1 和节点2 之间的两条链断开,而用断链将头节点和节点2 链上,多出-13-来的节点1将其释放掉。典型的出队操作算法如F:void queue_delete(struct element head)(struct element*temp;temp=head,next-

35、next;head.next=temp;)在执行出队操作时,一定要记住需要将出队的节点释放。由于采用链式存储,事先无法估计需要多大的存销售市场空间,也不必去估计。每次新增一个节点时,都是调用内存分配函数为新节点申请一块内存,如下所示:p=malloc(sizeof(struct record)函数malloc开辟了一块大小为record结构元素的内存区域,把搔向该区域的指针赋给指针 P,这块内存单元的所有权就从系统转移到了指针p。当 p 指向的数据元素被删除(出队)时.,定要用如下方式将内存单所有权还给系统:free(p);函数free。的作用和malloc。刚好相反,它将指定的内存单元还给了

36、系统。因为系统的内存单元是有限的,如果不及时释放占用的内存,会造成内存资源耗尽或由于内存的减少导致程序执行速度下降。4、记录的存取的读取void Data_Save(struct record*p)/*记录文件的存取*/(intj;fp=fopen(tele_rec.txt,w);/*以可写方式打开记录文件*/while(p!=NULL)/*若未到队尾,徨将记录存储到文件中*/(fwrite(p.sizeof(struct record),l.fp);p=p-next;)fclose(fp);/*关闭指定的文件*/)struct event*Data_Load()/*从记录文件中读取记录*/(

37、long k;struct record*p,*q;p=event_head.next;fp=fopen(tele_rec.txt,r+t);/*以读方式打开记录文件*/if(fp!=NULL)while(!feof(fp)/*依次读取记录并执行入队操作*/(fread(q,sizeof(struct record),1,fp);p-next=q;/*这里p 为尾指针,q 为指向新节点的指针*/p=q;-14-p-next=NULL;event_end=p;)else(fp=fopen(ntele_rec.txt,wn);/*若文件不存在,创建指定文件名的新文件*/event_head.nex

38、t=NULL;event_end=event_head.next;)六、【总体设计】在前面五个步聚的基础上开始进行程序主函数的设计。主函数首先调用初始化函数/*-留言簿代码如下-*/#include#include#includestruct record(struct date t_date;/*定义留言日期*/struct time t_time;/*定义留言时间*/char event100J;/*定义电话内容*/struct record*next;/*指向下一个节点的指针*/event_head;struct record*event_end;int front;FILE*fp;vo

39、id Data_Save(struct record*p)/*记录文件的存储*/intj;fp=fopen(Htele_rec.txt,w);/*以可写方式打开记录文件*/while(p!=NULL)/*若未到队尾,循环将记录存储到文件中*/(fwrite(p,sizeof(struct record),l,fp);p=p-next;fclose(fp);/*关闭指定的记录文件*/struct event*Data_Load()/*从记录文件中读取记录*/(long k;struct record*p,*q;p=event_head.next;fp=fopen(,tele_rec.txt,nr

40、+t,);/*以读方式打开文件*/if(fp!=NULL)(while(!feof(fp)/*依次读入记录并执行入队操作*/(fread(q,sizeof(struct record),l,fp);p-next=q;/*这里p 为尾轴针,q 为指向新节点的指针*/-15-p=q;p-next=NULL;event_end=p;)else(fp=fopen(tele_rec.txt,w);/*若该文件不存在,创建指定文件名的新文件*/event_head.next=NULL;event_end=event_head.next;)void Data_Input(struct record*p)(s

41、truct data*d;struct time*t;front+;getdate(d);/*取系统日期*/p-t_date.da_year=d-da_year;p-t_date.da_mon=d-da_mon;p-t_date.da_day=d-da_day;gettime(t);/*取系统时间*/p-t_time.ti_hour=t-ti_hour;p-t_time.ti_min=t-ti_min;p-time.ti_sec=t-ti_sec;printf(nnnnDate:%4d%2d%2dn,p-t_date.da_year,p-t_date.da_mon,p-t_date.da_da

42、y);printf(nnTime:%2d:%2d:%2d,p-t_time.ti_hour,p-t_time.ti_min,p-t_time.ti_sec);printf(HnntPlease input record:);gets(p-event);/*输入留言内容*/p-next=NULL;)void main()(intj,k;char ch;char*search_name;struct record*p,*q;clrscr();Date_Load();doprintf(nnntFunction choose:1);printf(nntl.Readu);printf(nnt2.Appe

43、nd);printf(nt3.Deleteu);printf(nt4.Quitn);printf(,nnH);printf(tChoice:);ch=getche();switch(ch)caseT:/*阅读留言内容*/if(front=rear)(printf(MntNo records.);-16-break;)p=event_front-next;while(getch()!=Ox 1 b&p!=NULL)(Data_Show(p);p=p-next;)break;case 2:/*添加留言记录*/p=malloc(sizeof(struct record);Data_Input(p);

44、event_end-next=p;event_end=p;while(getch()!=0 x 1 b&(front+l)!=rear)(-p=malloc(sizeof(struct record);Data_Input(p);event_end-next=p;event_end=p;)break;case 3:p=event_head.next;/*删除留言记录*/event_head.next=p-next;free(p);exit(O);break;case 4:printf(MntDo you want to save e_note:(y/n);ch=getch();char*sea

45、rch_name;struct record*p,*q;clrscr();Date_Load();doprintf(nnntFunction choose:n);printf(ntl.ReadH);printf(nt2.Append);printf(nnt3.Delete);printf(nt4.Quitn);printf(nnnn);printf(,tChoice:H);ch=getche();switch(ch)(casel:/*阅读留言内容*/if(front=rear)(printf(ntNo records.);break;)p=event_front-next;while(getc

46、h()!=Ox 1 b&p!=NULL)(Data_Show(p);-17-p=p-next;)break;case 2:/*添加留言记录*/p=malloc(sizeof(struct record);Data_Input(p);event_end-next=p;event_end=p;while(getch()!=0 x 1 b&(front+1)!=rear)(p=malloc(sizeof(struct record);Data_Input(p);event_end-next=p;event_end=p;)break;case 3:p=event_head.next;/*删除留言记录*

47、/event_head.next=p-next;free(p);exit(O);break;case 4:printf(nntDo you want to save e_note:(y/n)n);ch=getch();if(ch=y)Data_Save(event_head.next);fclose(fp);exit(O);default:printf(nPlease choose num 1 4nn);)while(l);)七、【报告要求】要求学生独立完成课程设计任务,并按课程设计要求写出课程设计说明书。(1)设计题目;(2)选题背景(3)设计思路;(4)流程图;(5)程序清单(6)总结、设

48、计结果说明-18-设计三图书管理系统一、【实验目的】通过本实验,学生应能正确利用所学过的知识,完成实验中所提出的任务,达到综合运用、掌握网络信息制作与发布的基本技术的目的。二、【实验条件】在安装W i n d o w s 2 0 0 0、D O S 和 TC环境的微机机房进行。三、【实验内容】1 .新书入库:图书信息包括书名,书号,库存量,现存量共4项.首先输入3本书的信息,并将其存入文件”b o o k.d a t”中.当有新书入库时,先判断文件中是否有此书(即比较书名),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到文件中.2 .图书查询:输入一个书号,在文件中查找此书,若

49、找到则输出此书的全部信息;若找不到则输出查找失败的信息.3 .借阅管理(1)每个读者的信息包括姓名,编号,1 张借书卡(限借一本书),输入3个读者的信息存入文件“r e a d e r .d a t”中.(2)借书登记:输入读者的姓名,所借图书的书号,先判断姓名是否在文件 r e a d e r.d a t”中,若有则将书号存入一张借书卡上(注:初始时借书卡的信息都为零,借书后借书卡的信息改为所借书的书号),并修改文件 r e a d e r.d a t”的相应内容,同时修改文件”b o o k,d a t”中此书的现存量.若 r e a d e r.d a t”无此姓名,则应提示错误(3)还

50、书管理:输入读者的姓名,所还图书的书号,将借书卡的信息置为零,并修改文件r e a d e r.d a tM的相应内容,同时修改文件”b o o k,d a t”中此书的现存量.4 .输出全部图书信息和全部读者信息5 .退出系统.四、【实验准备】指导教师由任课教师或本专、业教师和工程技术人员担任。指导教师在课程设计开始前一个月下发课程设计指导书,学生根据个人情况选定自己的课题。选定题目后查找资料、准备设计材料。五、【设计方法】略六、【总体设计】略七、【报告要求】要求学生独立完成课程设计任务,并按课程设计要求写出课程设计说明书。(1)设计题目;(2)选题背景(3)设计思路;(4)流程图;(5)程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁