版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学海无涯C语言课程设计报告055071班王耀琪学号:20071004144一. 前言C语言是一种编译型程序设汁语言,编程设计是学习该语言的一个重要环节。通过温习已 学的知识,在上机实践中熟悉C语言的编程环境,进而达到能够编写较复杂程序并将其实 际应用的程度。在实际编程中不断地深入学习数孺结构、算法、编译原理、操作系统原理、 软件工程等知识,加深对C语言的理解,切实提髙编程水平,这是C语言课程设计的主要 目的。二. 正文(1)题目:电影俱乐部【要求】允许俱乐部成员租用DVDO若想成为会员,首先应签约并且可按月交纳费用。 会员一次可租用三个DVD,没有时间限制。可浏览所有可租用的DVD,能实现新成
2、员的开 户、会员对其帐户状况的查询以及俱乐部管理者对所有交易情况的査看功能。(2)需求分析:DVD信息和俱乐部会员信息用文件存储,提供文件的输入输岀操作;注 册新会员,提供文件的添加操作;实现査询则提供文件的查找操作;另外提供键盘式选择菜 单以实现功能选择。(3)总体设计:整体设计为会员注册模块、会员缴费模块、会员租用DVD模块、会员 归还DVD模块、信息浏览模块和信息查询模块等。程序说明:主函数中提供输入输出和部分函数调用,全局变 n.nl实现保存菜单数字等简 单功能,程序主要功能体现在各模块中。程序主要采用结构体变量实现操作,以一个会员的 所有信息为一个单元,并用文件保存。程序中以选择结构
3、为大框架,通过使用顺序结构和选 择结构实现操作。(4)代码设计1.主函数提供密码验证和输入输岀功能,各功能用菜单方式选择,使用文件存放,流程图如图所示, 密 码 123可 在 源 程 序 修 改。main OPrintf ("*欢迎使用 DVD 信息管理系统*n,z);Printf (z,nnnn请输入管理员密码:");if (CheCkO)menul0;elseprintf (z,密码输入错误n");Printf(ZZ *你无权使用本系统*);QUit ();int CheCkO /*验证会员密码*/Char a20, str二"123" /
4、*注意:会员初始密码为 123*/int count;for (COUnt=O;COUnt<3;count+) gets(a);if (StrCmp(a,Str)=O)return 1 ;elsecontinue;return 0;int menul 0 *主函数功能菜单*/FILE *fpl;int a; /*变量a保存选择菜单数字*/ 辻(fpl=fopen(zzn. txt", "a+") =NULL) printf(ZZCannOt OPerI file");exit(O);fread(Nl, SiZeOf (int), 1, fpl);
5、fread(&N2, SiZeOf(int), 1, fpl); fclose (fpl);n=Nl;nl=N2;moon O ;Printf Cn 1.建立新档案(会员档案和DVD档案)r);Printf (wn 2.注册会员n");Printf Cn 3.缴纳会费n");Printf Cn 4.会员租用 DVDn");Printf (/zn 5.信息浏览n");Printf (wn 6.信息査询n");Printf (z,n 7.退出n");Printf( ,*");Printf (z,nn 请选择编号:&quo
6、t;); SCanf (,%dz &);SWitCh (a) /*主函数功能选择*/ CaSe 1: create () ; menul () ; Jbreak; /*建立新档案模块*/*注册会员模块*/*缴纳会费模块*/*会员租用DVD模块*/*信息浏览模块菜单*/*信息查询模块菜单*/CaSe 2: add(); menulO J break;CaSe 3: monfei() :menu 1() ;break;CaSe 4: dvd();menul O ;break;CaSe 5: menu2O;break;CaSe 6: menu3O;break;CaSe 7: QUito ;b
7、reak;/*退出模块*/default: Printf(Zz输入编号错误n");menulO;12.注册模块本模块要求用户创建初始会员信息,是后续操作的基础。以会员划,会员编号,会员性别, 会费,DVD信息作为结构体变量。Printf(H请输入增加会员档案的个数:”); SCanf(H%da);for(i=n;i<(n+a);i+)Printf(N请输入会员名:”);SCanf(,%s,);fflush(stdin);Printf("请输入会员编号:");SCanf(H%dstu li.nun);fflush(stdin);Printf
8、(MW输入会员性别:男1女2: ,);scanf(,%dstu li.sex);fflush(stdin);PriIHf(”请输入初始的会费:");SCanf(U%d,stuli.huifei); stuli.day=sl;Stul i.dvdl=stul i.dvd2=stul i.dvd3=0;getchar();if(fp=fopen(MhUiyUan.txt,'a+,)=NULL)printf(HCannOt OPen file,r);exit(O);)fbr(i=n;i<(n+a);i+)fwrite(&stu li,sizeof(struct dvd
9、A)J .fp); fclose(fp);n=n+a;if(fp=fopcn(MhUiyUan.txt,r+)=NULL)printf(cannot OPen file*);exit(O);for(i=0;i<n;i+)fread(&stu2i,sizeof(struct dvdA)J Jp);PrimfC姓名编号性别会费");Printf(H%4s,%5d,%5d,%4dn, ,stu2i.num,stu2i.sex,stu2i.huifei);fclose(fp);N0=n;if(fpl=fopenC,n.txt,nw+,)=NULL)print
10、f(cannot OPen file”);exit(O);fwrite(&N 0,SiZeOf(int) JJpl);fclose(fpl);3 浏览模块该模块进行信息浏览操作,通过调用注册模块中创建的文件信息,达到浏览信息的目的。SearChI 0 /*按会员姓名查询和浏览信息*/ FILE *fp, *fpl;int if c;Char name20;StrUCt dvdA stu21001;Printf (z,请输入会员姓名:n");SCanf(Z,%sz &name);if (fp=fopenCZhUiyUan. txt", "r+&quo
11、t;) )=NULL)printf("'cannot OPen file");exit(O);for(i=0;i<n;i+)fread(&stu2Li, SiZeOf(StrUCt dvdA),1, fp);C=StrCmP(name, stu2i. name);if(c=0) Printf (z,姓名编号 性别会费已租DVDl已租DVD2已租DVD3 n");Printfc%4s5d%4d%5d%7d10d%10dn",stu2i name, stu2i num, stu2i sex, stu2i huifei, stu2i dv
12、dl, stu2i dvd2t S tu2i. dvd3);break;fclose(fp);menu3();SearCh2 O *按DVD编号查询和浏览信息*/FILE *fp, *fpl;int it c;StrUCt dvdB dd2100;Printf (”n 请输入 DVD 编号:n");SCanfW &c);if (fp=fopen(,zdvd. txt", "r+") =NULL)printf("'cannot OPerl file");exit(O);for(i=0;i<nl;i+)fread(&
13、amp;dd2-i, SiZeOf(StrUCt dvdB),1,fp);if(c=dd2il num) Printf ("编号 DVD 名数量n");Printf (,z%4d%5s%7dz"l dd2i. num, dd2i. namet dd2i. k);break;fclose (fp);menu3 O;PrinthUiyUano(FILE *fp;int i;StrUCt dvdA stu2100;if (fp=fopen(ZZhUiyUan. txt", "r+") )=NULL)printf("'can
14、not OPerl file");exit(O);for(i=0;i<n;i 卄) fread(&stu2i, sizeof (st:CUCt dvdA), 1, fp);Printfr姓名编号性别会费n");Printf (zz%4s5d%5d%4dnzz, , stu2i num, stu2i sex, stu2i huifei); fclose (fp);menu2();PrintdVdOFILE *fp;int i;StrUCt dvdB dd2100;if (fp=fopen (ZZdVd. txt", "+&
15、quot;) =NULL)printf(ZZCannOt OPerI file");exit(O);for(i=0;i<nl;i+)fread(&dd2i,SiZeOf(StrUCt dvdB), 1, fp);Printfr 编号 DVD 名数fin*);Printf (ZZMd%5s%4dnA,l dd2i. num, dd2i. name, dd2i. k);fclose (fp);menu2O ;4.查询模块根据输入的会员需查找对应记录,也可以通过输入DVD名实现相同功能“1学海无涯menu3()int a;Printf(Hn 信息査询nj;Pnntf(, 1.
16、按会员冬查找n");Printf(Hn 2按 dvd 查找1);Printf(, 3.返回上级菜单nn);Printf("nn 请输入编号:");SCanf (,t%da);SWitCh (a)CaSe 1: SearChI ();break;CaSe 2: SearCh2();break:CaSe 3: InenUl();break;default:Printf(H 输入编码错误 iT);mcnu3();5缴费模块实现会员缴费操作,其实质是对保存的文件信息进行修改操作。monfei()FILE *fp,*fpl;int i,c;Char nane20;StrUC
17、t dvdAstu2100;Printf(,n请输入会员姓名:n");SCanf(H%sname);if(fp=fopen(,huiyuan.txt,r+H)=NULL)printf(HCannOt OPen file,r);exit(O);for(i=0;i<n;i+)fread(<festu2i,sizeof(struct dvdA),l ,fp);C=StrCmP(name,);if(c=O) Printf(H 编号 性别 会费 ClVdl dvd2 dvd3n);Printf(M%4s,%5d,%5d,%4d%4d%4d%4dn,stu2i.n
18、ame5stu2i.num.stu2i.sex,stu2i.huifei5tu2i.dvdl,stu2i.dvd2,stu2i. dvd3);Printf("请输入你要充入会费n");scanf(,%dstu2i.huifei);fclose(fp);if(fp=fopcn(MhUiyUan.txt,w+H)=NULL)printf(cannot OPen file”);exit(O);for(i=0;i<n;i+)fwrite(&stu2i,sizcof(slrucl dvdA)J Jp); fclose(fp);6,租用模块实现DVD租用操作。其实质也是通
19、过找到会员信息对DVD信息进行修改操作。开始输入信息DVD信息修 改结束dvd()FILE *fp卢fpl;int i,c;Char name20;StrUCt dvdAstu2100;Printf(,n请输入会员姓名:n");SCanf(V%sname);if(fp=fopen(MhUiyUan.txt,r+M)=NULL)printf(cannot OPCn file):exit(O);for(i=0;i<n;i+)fread(&stu2i,sizeof(struct dvdA),l,fp);C=StrCmP();if(c=O)prin
20、ti姓名 编号 性别 会费 dvdl dvd2 dvd3n);Printf(,%4s,%5d.%5d.%4d%4d%4d%4dn,5stu2i.num,stu2i.sex,stu2i.huifei,stu2i.dvdl,stu2i.dvd2,stu2. dvd3);Printf(H请输入你要修改后的dvdl编号:");scanf(,r%d,l,stu2i.dvd 1);Printf(,请输入你要修改后的dvd2编号:”);SCanf(H%d,stu2i.dvd2);Printf(,请输入你要修改后的dvd3编号:”);scanf(,t%d,stu2i.dvd3);
21、fclose(fp);if(fp=fopen(MhUiyUan.txt,w+M)=NULL)printf(HCannOt OPen file,r);exit(O);for(i=0;i<n;i+)fwrite( <festu2i,SiZeOf(StrUCt dvdA)J Jp); fclose(fp);menu I ();(5)运行与测试测试结果正常,程序可以顺利使用。可见截图。, ×卜 "UDc¾nw>nrE 訐rfi <*rHrA""<面Dpbug 电建但乐部(完威(m"L“欢迎使用电影P 输入密码:1
22、2311.档案薙立I2. 会员注册I3. 会费功能I4. dud信息B5-測览信息I6.查询信息1?-退岀Bb选择编号:B1学海无涯1-InlXlB100费r語; 1證会联畫 I号另会另q数 的名编性的性 竺档会会会充R点eedu 4A-入入纟入、<、lr、A Q请童ffilg请请哇鸟I.档秦建立2- 会员注册3- 会费功能4dud信息5.浏览信息仏杳询信息(三) 后记通过近三个星期的程序编写及课程报告的书写,对C语言的认识大大加深了, 课程设计尤苴对具体编程能力的提高有着极大帮助。使我受益非浅。在设汁过 程中,主要遇到的问题是考虑具体算法时遇到的困难以及实际编写时的编写错 误,虽然造成
23、了困扰,但是在参考设计指导书的例子后,算法问题基本解决, 而编写错误经过不断努力也减少了,当然这其中离不开老师和同学的帮助。(四) 附录:源代码include <stdio.h>include <string.h>include <stdlib.h>include <nath.l>include <time.h>int n,nl;/*全局变量*/int N3*上次输入的信息不会丢失*/int yuefei=30;CheCk(); /*验证密码*/menu 1();quit();mcnu2();menu3();Create();/* 建
24、立档案 */add(); /*增加信息*/monfei();dvd();SearChl ();SearCh2();PrinthUiyUan(); PrintdVd(); moon();StrUCt dvdAChar nane20;int num:int sex;int huifei;int day;int dvd 1;int dvd2;int dvd3; stul100; stiuct dvdB int num:Char name20; int k;ddl100;main()Printf(H*欢迎使用电影俱乐部程序* * *y,)Printf(Hnnn 输入密码:,);if(check()me
25、nu 1();elseprintf(密码错误);Printf(M * * * * 请检查*n);quit();int CheCkoChar a20,str=,123o; int count;for(count=0;COUnt<3;COUnt+) gets(a); if(strcmp(a,str)=O)return 1 ;continue;return O;int menu 1()LE *fpl;int a;if(fp l=fopen(,n.txt,Ha+,r)=NULL) printf(cannot OPen file):exit(O);)fread(&N ItSiZeOf(in
26、t) J JP1); fread(&N2,SiZeOf(int), 1 ,fp 1); fclose(fpl);n=Nl;nl=N2;moon();PrintfC,n 1档案建nn);Printf(,n 2.会员注册n");Printf("n 3.会费功能n”); Printf(,'n 4. dvd 信息n");Printf(,'n 5.浏览信息n,J; Printf(,'n 6.査询信息r);Printf(Hn 7.退出); Printf(Hnnn i选择编号:");SCanf(U%d,a);SWitCh(a) CaSe
27、 1: create(); menul();break; CaSe 2: add(); menu 1(); break;CaSe 3: monfei()unenu 1 ();break; CaSe 4: dvd();InenU 1();break;CaSe 5: InenU2();break;CaSe 6: menu3()break;CaSe 7: quit();break;default: Printf(M编号错误! ); menu 1();int menu2()int a;Printf(N信息浏览nj;Printf("n 1.会员信息浏览n");Printf(H 2.d
28、vd 信息浏览nPrintf(M 3.返回上级菜单n");Printf("nn 请输入编号:"); scanf(%da);SWitCh(a)CaSe 1: PrinthuiyUan();break;CaSe 2: PrintdVd();break;CaSe 3: menul()break; default:Printf("i 入编号错误 n");men2();CreateOFILE *fpfpl;int i;StrUCt dvdAstu2100;StrUCt dvdB dd2100; int y,m,d,sl;timej timep;StrUC
29、t tm *p;time(&(imcp);P=ICKaItime(&timep); /*取得当地时间 */m=l+p->tm_mon;d=p->tm_mday;sl=m*30+d;Printf("请输入档案的个数:");SCanf(H%dn);N0=n;for(i=0;i<n;i+)Printf(N请输入会员名:”);SCanf(,%s,);Primf(”请输入会员编号;");scanf(,%dstuli.nun);Printf(H请输入会员性别:男1女2:");SCanf(U%d,stu li.se
30、x);fflush(stdin);Printf(HiW输入充入的会费:");scanf(,%dstu li.huifei);StUlIi.day=sl;StU 1 i .d vd 1 =StU 1 i .d vd2=stu 1 i .dvd3=0;getchar();if(fp=fopen(MhUiyUan.txt,'w+,)=NULL)printf(cannot OPen file);exit(O);for(i=0;i<n;i+)fwrite(&stu 1 i,sizeof(struct dvdA),l,fp);fclose(fp);if(fp=fopcn(,
31、huiyuan.txt,r+,)=NULL)printf(HCannOt OPen file,r);exit(O);for(i=0;i<n;i+)fread(<festu2i,sizeof(struct dvdA),l ,fp);Printf(M姓名编号性别会费n,);Printf(',%4s,%5d,%5dt%4dn, ,stu2i.nunstu2i.sex,stu2i.huifei);fclose(fp);Printf(,i输入dvd档案的个数:");SCanf(W%d,nl);N2=nl;for(i=0;i<nl:i+)Printf
32、(N请输入dvd编号:”);SCanf(H%dndd li.num);Printf("请输入 dvd 名;");SCanf(U%sdd );ddli.k=l;getchar();if(fp=fopen(,dvd.txt,w+,)=NULL)printf(,cannot OPen file*);exit(O);)for(i=0;i<nl;i+)fwrite(<feddli,sizeof(struct dvdB), 1 ,fp);fclose(fp);if(fp=fopcn(,dvd.txt,r+,)=NULL)printf(HCannOt OPen
33、file*);exit(O);for(i=0;i<nl;i+)fread(<fedd2i,sizf(struct dvdB)丄 fjp);Printf("编号dvd名数量n");Printf(H%4dt%5s %dn, ,dd2i.k);fclose(fp);if(fpl=fopen(,n.txtM;,w+H)=NULL)printf(,cannot OPen file*);exit(O);fwrite(&N0,SiZeOf(int) J JP );fwrite( &N2,SiZeOf(int ),1 JPl)
34、;fclose(fpl);add()FILE *fpfpl;int i,a;stiuct dvdAstu2100;int m.d.sl;timej timep;StrUCt tin *p;time(&(imcp);P=ICKaItime(&timep); *取得当地时间 */ m=l+p->tm_InOn;d=p->tm_mday;sl=m*30+d;Printf(Mi输入增加会员档案的个数:“);SCanf(H%da);for(i=n;i<(n+a);i+)Printf(N请输入会员名:”);SCanf(,%s,stu 1 );fflush(st
35、din);Printf("请输入会员编号:");SCanf(H%dstu li.nun);fflush(stdin);Printf(MW输入会员性别:男1女2: ,); scanf(,%dstu li.sex);fflush(stdin);Printf(N请输入初始的会费);if(c=O)printf(,姓名编号性别会费 dvdldvd2dvd3n);Printf(H%4s,%5d,%5d,%4d%4d%4d%4dn,,stu2i.num,stu2i.sex,stu2i.huifei,stu2i.dvdl,stu2i.dvd2,stu2i. dvd3);
36、Printf(H请输入你要充入会费n");scanf(,r%d,'stu2i.huifei);fclose(fp);if(fp=fopcn(,huiyuan.txt,'w+H)=NULL)printf(HCannOt OPen file,r);exit(O);for(i=0;i<n;i+)fwrite( <festu2i,sizeof(struct dvdA)J Jp);fclose(fp);dvd()FILE *fp,*fpl;int i,c;Char name20;StrUCt dvdAstu2100;Printf(,n请输入会员姓名:n")
37、;SCanf(H%sname);if(fp=fopen(MhUiyUan.txt,r+H)=NULL)printf(HCannOt OPen filen);exit(O);for(i=0;i<n;i+)fread(<festu2i,sizeof(struct dvdA),l ,fp);C=StrCnIP();if(c=O) Printf(H 编号 性别 会费 ClVdl dvd2 dvd3n);Printf(H%4s,%5d.%5d.%4d%4d%4d%4dn,,stu2i.num,stu2i.sex,stu2i.huifei,st
38、u2i.dvdl,stu2i.dvd2,stu2i. dvd3);Printf("请输入你要修改后的dvdl编号:");scanf(,%dstu2i.dvd 1);Printf(,请输入你要修改后的dvd2编号SCanf(U%dstu2i.dvd2);Printf(,请输入你要修改后的dvd3编号:”);SCanfCt%d,stu2i.dvd3);fclose(fp);if(fp=fopen(HhUiylIan.txt,w+,)=NULL)printf(cannot OPen file);exit(O);for(i=0;i<n;i+)fwrite( <festu
39、2i,sizeof(struct dvdA)J Jp);fclose(fp);menu 1();moon()FILE *fp;int i;StrUCt dvdAstu2100;int m.d,sl,s2;timej timep;StrUCt tin *p;time(&limcp);P=IOCaItime(&timep); * 取得当地时间 */m=l+p->tm_mon;d=p->tm_mday;sl=m*30+d;if(fp=fopen(MhUiyUan.txt,'a+,)=NULL)printf(HCannOt OPen file*);exit(O);)
40、for(i=0;i<n;i+) frcad(&stu2i,sizeof(structdvdA).l,fp);s2=(sl-stu2i.day)30;if(s2>0) stu2i.huifei=stu2i.huifei-yuefei*s2;stu2i.day=sl;fclose(fp);if(fp=fopen(MhUiyUan.txt,w+,)=NULL)printf(cannot OPCn file): exit(O);for(i=Oi<i+)fwrite(&stu2i,sizeof(struct dvdA)J Jp);fclose(fp);SearChloF
41、ILE *fp.*fpl;int i,c;Char name20;StrUCt dvdAstu2100;Printf(,n请输入会员姓名:n");SCanf(U%s,name);if(fp=fopen(,huiyuan.txt,r+M)=NULL)printf(,cannot OPen file*);exit(O);)for(i=0;i<n;i+)fread(stu2i,sizeof(struct dvdA)J,fp);C=StrCmP();if(c=O)printi姓名 编号 性别 会费 dvdl dvd2 dvd3n);Printf(H%4s,%5d,%5d,%4d%4d%4d%4dn,9s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年自贡客运资格证试题完整版
- 吉首大学《期货与期权》2021-2022学年第一学期期末试卷
- 吉首大学《非参数统计》2021-2022学年第一学期期末试卷
- 吉林艺术学院《造型基础训练III》2021-2022学年第一学期期末试卷
- 吉林艺术学院《数字化建筑环境设计软件基础SketchUP》2021-2022学年第一学期期末试卷
- 期刊经营转让协议书范文模板
- 吉林师范大学《中国画技法研究》2021-2022学年第一学期期末试卷
- 吉林师范大学《虚拟现实设计与制作》2021-2022学年第一学期期末试卷
- 2024年大棚蔬菜分包协议书模板
- 2024年大葱采购协议书模板
- 2024年国家公务员考试《行测》真题卷(副省级)答案及解析
- 教育局职业院校教师培训实施方案
- 2024年新华社招聘应届毕业生及留学回国人员129人历年高频难、易错点500题模拟试题附带答案详解
- 江苏省南京市秦淮区2023-2024学年八年级上学期期中语文试题及答案
- 2024年个人车位租赁合同参考范文(三篇)
- (完整版)新概念英语第一册单词表(打印版)
- 签申工作准假证明中英文模板
- 员工履历表(标准样本)
- 2024年山东省济南市中考数学真题(含答案)
- 山东省青岛市黄岛区2023-2024学年六年级上学期期中语文试卷
- 二手门市销售合同范本
评论
0/150
提交评论