C语言课程设计报告(作业).doc_第1页
C语言课程设计报告(作业).doc_第2页
C语言课程设计报告(作业).doc_第3页
C语言课程设计报告(作业).doc_第4页
C语言课程设计报告(作业).doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中 国 地 质 大 学C语言课程设计报告本科生课程论文封面课程名称 计算机高级语言课程设计(C)教师姓名 翁正平 本科生姓名 吴学洲 本科生学号 20121003682 本科生专业 机械设计制造及其自动化 所在院系 机械与电子信息学院 类别: C. 本科生 日期: 2013-07-07 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录1题目要求12需求分析13总体设计14详细设计15上机操作16总结27致谢2参考文献21题目要求23电影俱乐部【要求】要实现以下功能:(1)允许俱乐部成员租用DVD(若想成为会员,首先应该签约并按月缴纳费用。会员一次可租借3张DVD,没有时间限制)。(2)可以浏览所有可租用的DVD。(3)新成员可以开户。(4)会员可以对自己的账户状况进行查询。(5)俱乐部管理者可以对所有的交易情况进行查看。2需求分析DVD信息和俱乐部会员信息用文件来存储,因而要提供文件的输入和输出操作;要注册新会员,因而要提供文件的添加操作;要实现按月缴纳费用,因而要提供文件的修改操作;要浏览信息,因而要提供显示操作;要实现查询,则要提供文件的查找操作;要提供键盘式选择菜单以实现功能选择。3总体设计根据以上的需求分析可以将该系统的设计分为6大模块,即注册模块、浏览模块、查询模块、缴费模块、租用模块和退出模块。 其主要功能是注册和查看DVD的租出情况。其模块图如下:电影俱乐部管理程序注册模块浏览模块查询模块缴费模块租用模块退出模块 图1-1 系统功能模块图数据结构数据结构采用结构体:#include #include #include #include #include /*头文件*/ int n,n1; /* *全局变量*/ int N3; /*上次输入的信息不会丢失*/ int yuefei=30; check(); /* *验证密码*/ / menu1(); quit(); menu2(); menu3(); create(); /*建立档案*/ add(); /* *增加信息*/ monfei(); dvd(); search1(); search2(); printhuiyuan(); printdvd(); moon(); /*对主调函数的声明*/ struct dvdA char name20; int num; int sex; int huifei; int day; int dvd1; int dvd2; int dvd3; stu1100; /*结构体1*/struct dvdB int num; char name20; int k; dd1100; /*结构体2*/ 4详细设计1主函数会员初始密码为111,可以在源程序中进行修改. 开始输入密码判断密码是否为会员初始密码调用相应的函数结束NY 图1-2主函数功能流程图程序说明:主函数中提供输入输出和部分函数调用,全局变量n,n1实现保存菜单数字等简单功能,程序主要功能体现在各模块中。程序主要采用结构体变量实现操作,以一个会员的所有信息为一个单元,并用文件保存。程序中以选择结构为大框架,通过使用顺序结构和选择结构实现操作。main() /*主函数*/ printf(*欢迎使用电影俱乐部管理系统!*n); printf(nnnn请输入管理员密码:); if(check() menu1(); else printf( 抱歉!您的密码输入错误n); printf( *你无权使用本系统*n); quit(); int check() /* *验证会员密码*/ char a20,str=111; /*注意: 会员初始密码为111*/ int count; for(count=0;count3;count+) gets(a); if(strcmp(a,str)=0) return 1 ; else continue; return 0; int menu1() /*主函数功能菜单*/ FILE *fp1; int a; /*变量a保存选择菜单数字*/ if(fp1=fopen(n.txt,a+)=NULL) printf(cannot open file); exit(0); fread(&N1,sizeof(int),1,fp1); fread(&N2,sizeof(int),1,fp1); fclose(fp1); n=N1; n1=N2; moon(); printf(n 1. 建立新档案(会员档案和DVD档案)n); printf(n 2. 注册会员n); printf(n 3. 缴纳会费n); printf(n 4. 会员租用DVDn); printf(n 5. 信息浏览n); printf(n 6. 信息查询n);printf(n 7. 退出n); printf(*); printf(nnn请选择编号:); scanf(%d,&a); switch(a) /*主函数功能选择*/ case 1: create(); menu1();break; /*建立新档案模块*/ case 2: add(); menu1(); break; /*注册会员模块*/ case 3: monfei();menu1();break; /*缴纳会费模块*/ case 4: dvd();menu1();break; /*会员租用DVD模块*/ case 5: menu2();break; /*信息浏览模块菜单*/ case 6: menu3();break; /*信息查询模块菜单*/ case 7: quit();break; /*退出模块*/ default: printf(抱歉!输入编号错误n); menu1(); 2各功能模块设计注册模块本模块要求用户创建初始会员信息,是后续操作的基础。以会员名,会员编号,会员性别,会费,DVD信息作为结构体变量。结束输入会员数输入会员档案输入DVD档案开始图 1-3 注册模块流程图 add() /*注册*/printf(请输入增加会员档案的个数:);scanf(%d,&a); for(i=n;i(n+a);i+) printf(请输入会员名:); scanf(%s,&); fflush(stdin); printf(请输入会员编号: ); scanf(%d,&stu1i.num); fflush(stdin); printf(请输入会员性别:男1女2:); scanf(%d,&stu1i.sex); fflush(stdin); printf(请输入初始的会费:); scanf(%d,&stu1i.huifei); stu1i.day=s1; stu1i.dvd1=stu1i.dvd2=stu1i.dvd3=0; getchar(); if(fp=fopen(huiyuan.txt,a+)=NULL) printf(cannot open file); exit(0); for(i=n;i(n+a);i+) fwrite(&stu1i,sizeof(struct dvdA),1,fp); fclose(fp); n=n+a; if(fp=fopen(huiyuan.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in;i+) fread(&stu2i,sizeof(struct dvdA),1,fp); printf(姓名 编号 性别 会费 n); printf(%4s,%5d,%5d,%4dn, ,stu2i.num,stu2i.sex,stu2i.huifei); fclose(fp); N0=n; if(fp1=fopen(n.txt,w+)=NULL) printf(cannot open file); exit(0); fwrite(&N0,sizeof(int),1,fp1); fclose(fp1); 浏览模块该模块进行信息浏览操作,通过调用注册模块中创建的文件信息,达到浏览信息的目的。开始会员信息DVD信息显示显示结束 图1-4 浏览模块流程图search1() /*按照会员姓名查询和浏览*/ FILE *fp,*fp1; int i,c; char name20; struct dvdA stu2100; printf(n请输入会员姓名:n); scanf(%s,&name); if(fp=fopen(huiyuan.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in;i+) fread(&stu2i,sizeof(struct dvdA),1,fp); c=strcmp(name,); if(c=0) printf(姓名 编号 性别 会费 dvd1 dvd2 dvd3 n); printf(%4s,%5d,%5d,%4d %4d %4d %4dn, ,stu2i.num,stu2i.sex,stu2i.huifei,stu2i.dvd1,stu2i.dvd2,stu2i.dvd3); break; fclose(fp); menu3(); search2() /*按照DVD编号查询和浏览*/ FILE *fp,*fp1; int i,c; struct dvdB dd2100; printf(n请输入dvd编号:n); scanf(%d,&c); if(fp=fopen(dvd.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in1;i+) fread(&dd2i,sizeof(struct dvdB),1,fp); if(c=dd2i.num) printf( 编号 dvd名 数量n); printf(%4d,%5s %dn, dd2i.num,,dd2i.k); break; fclose(fp); menu3(); printhuiyuan() /*浏览会员信息*/ FILE *fp; int i; struct dvdA stu2100; if(fp=fopen(huiyuan.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in;i+) fread(&stu2i,sizeof(struct dvdA),1,fp); printf(姓名 编号 性别 会费 n); printf(%4s,%5d,%5d,%4dn, ,stu2i.num,stu2i.sex,stu2i.huifei); fclose(fp); menu2(); printdvd() /*浏览DVD信息*/ FILE *fp; int i; struct dvdB dd2100; if(fp=fopen(dvd.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in1;i+) fread(&dd2i,sizeof(struct dvdB),1,fp); printf( 编号 dvd名 数量n); printf(%4d,%5s %4dn, dd2i.num,,dd2i.k); fclose(fp); menu2(); .查询模块根据输入的会员名查找对应记录,也可以通过输入DVD名实现相同功能。开始判断是否存在记录显示记录提示未找到提示是否继续结束 图1-5查询模块流程图menu3() int a; printf(n 信息查询n ); printf(n 1.按会员名查找n); printf(n 2.按dvd查找n); printf(n 3.返回上级菜单 n); printf(nnn请输入编号:); scanf (%d,&a); switch (a) case 1: search1();break; case 2: search2();break; case 3: menu1();break; default:printf(输入编码错误n);menu3(); 缴费模块实现会员缴费操作,其实质是对保存的文件信息进行修改操作开始显示信息显示修改后信息结束输入会员姓名输入会费 图1-6缴费模块流程图。monfei() /*会员缴费*/ FILE *fp,*fp1; int i,c; char name20; struct dvdA stu2100; printf(n请输入会员姓名:n); scanf(%s,&name); if(fp=fopen(huiyuan.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in;i+) fread(&stu2i,sizeof(struct dvdA),1,fp); c=strcmp(name,); if(c=0) printf(姓名 编号 性别 会费 dvd1 dvd2 dvd3 n); printf(%4s,%5d,%5d,%4d %4d %4d %4dn, ,stu2i.num,stu2i.sex,stu2i.huifei,stu2i.dvd1,stu2i.dvd2,stu2i.dvd3); printf(请输入你要充入会费n); scanf(%d,&stu2i.huifei); fclose(fp); if(fp=fopen(huiyuan.txt,w+)=NULL) printf(cannot open file); exit(0); for(i=0;in;i+) fwrite(&stu2i,sizeof(struct dvdA),1,fp); fclose(fp); .租用模块实现DVD租用操作。其实质也是通过找到会员信息,对DVD信息进行修改操作。开始判断是否找到DVD信息修改结束输入信息 图1-7 租用模块流程图dvd() /*DVD租用*/FILE *fp, *fp1; int i,c; char name20; struct dvdA stu2100; printf(n请输入会员姓名:n); scanf(%s,&name); if(fp=fopen(huiyuan.txt,r+)=NULL) printf(cannot open file); exit(0); for(i=0;in;i+) fread(&stu2i,sizeof(struct dvdA),1,fp); c=strcmp(name,); if(c=0) printf(姓名 编号 性别 会费 dvd1 dvd2 dvd3 n); printf(%4s,%5d,%5d,%4d %4d %4d %4dn, ,stu2i.num,stu2i.sex,stu2i.huifei,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论