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

下载本文档

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

文档简介

中 国 地 质 大 学本科生课程论文封面课程名称:c语言课程设计与学习指导 教师姓名: 刘文中 本科生姓名: 梅旭 本科生学号: 20111004107 本科生专业: 计算机科学与技术 所在院系: 计算机学院 类 别: 必修 日 期: 2012.1.15 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序代码137程序运行结果228编程中遇到的困难及解决方法259总结心得及良好建议2610致谢261. 课程论文题目: 电影俱乐部要求 允许俱乐部成员租用DVD。若想成为会员,首先应签约并且可按月交纳费用。会员一次可租用三个DVD,没有时间限制。可浏览所有可租用的DVD,能实现新成员的开户、会员对其帐户状况的查询以及俱乐部管理者对所有交易情况的查看功能。提示(1)需求分析:DVD信息和俱乐部会员信息用文件存储,提供文件的输入输出操作;注册新会员,提供文件的添加操作;实现查询则提供文件的查找操作;另外提供键盘式选择菜单以实现功能选择。(2)总体设计:整体设计为会员注册模块、会员缴费模块、会员租用DVD模块、会员归还DVD模块、信息浏览模块和信息查询模块等。2程序设计思路将主菜单函数包含在主函数内,主函数仅仅作为menu函数的引出函数,然后再 menu函数中设置会员注册,会员缴费,会员租用dvd等多个操作选项。当进行会员注册和会员缴费时,系统将信息储存,以便查询或浏览会员信息时使用。当每个操作执行结束后,系统人会提供菜单选项,方便使用者。若操作结束后,操作人员想停止操作,则可进行第七项操作来结束,并且系统会提示操作知否继续进行。在程序中,设置全局变量N,每使用一次N使N加1并存取(以便下次使用),并使N的数值成为会员的号码。3. 功能模块图电影俱乐部管理程序注册模块缴费模块租用模块归还模块查询模块浏览模块功能模块图包括:注册模块,缴费模块,租用模块,归还模块,查询模块,浏览模块。4数据结构设计主函数(仅用于引出主菜单函数)void main() menu();主菜单函数(设置七个操作选项,六个为会员操作菜单,第七个用于退出操作系统。前六个操作完毕后,将继续提供主菜单。)void menu()int i; while (1)printf(t*菜单*rnntt会员注册请输入1rnntt会员缴费请输入2rnntt租用DVD请输入3rnntt归还DVD请输入4 rnntt查询信息请输入5rnntt浏览全部信息请输入6rnntt退出系统请输入7rnnt*菜单*rn);scanf(%d , &i);if ( i = 1)printf(tt会员注册:rn);MenberRegister(); menu(); else if ( i = 2)printf(tt会员缴费: rn);MenberMoney(); menu(); else if (i= 3)printf(tt租用DVD: rn);HireDvd();menu();else if (i = 4)printf(tt归还DVD: rn);ReturnDvd();menu();else if (i = 5)printf(tt查询会员信息: rn);ShowMem(); menu();else if (i = 6)printf(tt查询所有会员信息: rn);ShowAll();menu();else if(i=7)char ch; printf(n真的要退出?(Y/N); fflush(stdin); scanf(%c,&ch); if(ch=Y|ch=y) printf(ntt下次再来!); break; else menu;else printf(请重新输入n);会员注册函数void MenberRegister() N += 1;printf(请输入会员名称(20个字符以内):);scanf(%s , &minofN-1.name);minofN-1.number = N;minofN-1.money = 0;minofN-1.nDVD = 0;save(); printf(注册成功,会员号码为:%dn , N);会员缴费函数void MenberMoney() int num,money;printf(请输入要交费的会员号码:);scanf(%d , &num);while (num N)printf(没有这个会员,请重新输入:);scanf(%d , &num); printf(请输入要要交费的金额:);scanf(%d , &money);minofnum -1.money += money; save();printf(交费成功,%d号会员:%s 交费%d , 剩余会费 %dn , num , minofnum -1.name , money ,minofnum -1.money);会员租用dvd函数void HireDvd() int num,dvdNum;printf(请输入要租用的DVD的会员号码:);scanf(%d , &num);while (num N)printf(没有这个会员,请重新输入:);scanf(%d , &num);printf(请输入要租用的DVD数量);scanf(%d , &dvdNum);while (minofnum -1.nDVD + dvdNum 3)printf(对不起,每个会员最多只能租借3个DVD , 请重新输入需要租借的数量n);scanf(%d , &dvdNum);minofnum -1.nDVD += dvdNum;save();printf(租用的DVD成功,%d号会员:%s 已经租用的DVD数量为%dn , num , minofnum -1.name , minofnum -1.nDVD);会员归还dvd函数void ReturnDvd()int num,dvdNum;printf(请输入要归还DVD的会员号码:);scanf(%d , &num);while (num N)printf(没有这个会员,请重新输入:);scanf(%d , &num);printf(请输入要归还DVD的数量n);scanf(%d , &dvdNum);while (minofnum -1.nDVD N)printf(没有这个会员,请重新输入:);scanf(%d , &num); printf(%d 号会员的信息如下:会员名称为:%s,剩余会费为:%d,租用DVD数量为:%dn ,num , minofnum -1.name , minofnum -1.money , minofnum -1.nDVD); fclose(fp);浏览所有会员信息函数void ShowAll() int i;FILE*fp; if(fp=fopen(member.txt,r)=NULL) printf(nCannot open filen); printf(会员的信息如下:n);printf(会员号码t会员名称t剩余会费t租用DVD数量n);for(i=0 ;iN;i+)printf(%dtt%stt%dtt%dn ,minofi.number , , minofi.money , minofi.nDVD);fclose(fp);5.程序代码#include#includeint N=0;struct memberof int number; char name20;int money;int nDVD; minof100;void save() int i;FILE*fp; if(fp=fopen(member.txt,w)=NULL) printf(nCannot open filen); for(i = 0; i N)printf(没有这个会员,请重新输入:);scanf(%d , &num); printf(请输入要要交费的金额:);scanf(%d , &money);minofnum -1.money += money; save();printf(交费成功,%d号会员:%s 交费%d , 剩余会费 %dn , num , minofnum -1.name , money ,minofnum -1.money);void HireDvd() int num,dvdNum;printf(请输入要租用的DVD的会员号码:);scanf(%d , &num);while (num N)printf(没有这个会员,请重新输入:);scanf(%d , &num);printf(请输入要租用的DVD数量);scanf(%d , &dvdNum);while (minofnum -1.nDVD + dvdNum 3)printf(对不起,每个会员最多只能租借3个DVD , 请重新输入需要租借的数量n);scanf(%d , &dvdNum);minofnum -1.nDVD += dvdNum;save();printf(租用的DVD成功,%d号会员:%s 已经租用的DVD数量为%dn , num , minofnum -1.name , minofnum -1.nDVD);void ReturnDvd()int num,dvdNum;printf(请输入要归还DVD的会员号码:);scanf(%d , &num);while (num N)printf(没有这个会员,请重新输入:);scanf(%d , &num);printf(请输入要归还DVD的数量n);scanf(%d , &dvdNum);while (minofnum -1.nDVD dvdNum)printf(对不起,您只租借了%d个DVD , 请重新输入: , minofnum -1.nDVD );scanf(%d , &dvdNum);minofnum -1.nDVD -= dvdNum;save();printf(归还DVD成功,%d号会员:%s 归还%d个DVD ,目前还租用的DVD数量为%dn , num , minofnum -1.name ,dvdNum, minofnum -1.nDVD);void ShowAll() int i;FILE*fp; if(fp=fopen(member.txt,r)=NULL) printf(nCannot open filen); printf(会员的信息如下:n);printf(会员号码t会员名称t剩余会费t租用DVD数量n);for(i=0 ;i N)printf(没有这个会员,请重新输入:);scanf(%d , &num); printf(%d 号会员的信息如下:会员名称为:%s,剩余会费为:%d,租用DVD数量为:%dn ,num , minofnum -1.name , minofnum -1.money , minofnum -1.nDVD); fclose(fp);void menu() int i; while (1)printf(t*菜单*rnntt会员注册请输入1rnntt会员缴费请输入2rnntt租用DVD请输入3rnntt归还DVD请输入4 rnntt查询信息请输入5rnntt浏览全部信息请输入6rnntt退出系统请输入7rnnt*菜单*rn);scanf(%d , &i);if ( i = 1)printf(tt会员注册:rn);MenberRegister(); menu(); else if ( i = 2)printf(tt会员缴费: rn);MenberMoney(); menu(); else if (i= 3)printf(tt租用DVD: rn);HireDvd(); menu();else if (i = 4)printf(tt归还DVD: rn);ReturnDvd(); menu();else if (i = 5)printf(tt查询会员信息: rn);ShowMem(); menu();else if (i = 6) printf(tt查询所有会员信息: rn);ShowAll();menu();else if(i=7)char ch; printf(n真的要退出?(Y/N); fflush(stdin); scanf(%c,&ch); if(ch=Y|ch=y) printf(ntt下次再来!); break; else menu(); else printf(请重新输入n);void main()menu();6程序运行结果主菜单运行结果 *菜单* 会员注册请输入1 会员缴费请输入2 租用DVD请输入3 归还DVD请输入4 查询信息请输入5 浏览全部信息请输入6 退出系统请输入7 *菜单*会员注册结果(假定会员名为123)*1 会员注册:请输入会员名称(20个字符以内):123注册成功,会员号码为:1*会员缴费运行结果*2 会员缴费:请输入要交费的会员号码:1请输入要要交费的金额:125交费成功,1号会员:123 交费125 , 剩余会费 125*会员租用dvd运行结果*3 租用DVD:请输入要租用的DVD的会员号码:1请输入要租用的DVD数量2租用的DVD成功,1号会员:123 已经租用的DVD数量为2*会员归还dvd运行结果*4 归还DVD:请输入要归还DVD的会员号码:1请输入要归还DVD的数量1归还DVD成功,1号会员:123 归还1个DVD ,目前还租用的DVD数量为1*单个会员信息查询结果*5 查询会员信息:请输入要查询的会员号码:11 号会员的信息如下:会员名称为:123,剩余会费为:125,租用DVD数量为:1*浏览所有会员信息结果*6 查询所有

温馨提示

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

评论

0/150

提交评论