




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学课程设计说明书内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 影碟管理系统学生姓名:学 号:专 业:班 级:指导教师:日 期:36内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目影碟管理系统指导教师时间 一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。影碟信息管理系统图影碟息包括:电影名称、出品公司、导演姓名、主演姓名(至少2个)、上映时间、库存数量、价格等。试设计一影碟信息管理系统,使之能提供以下功能:v 影碟信息录入功能(影碟信息用文件保存)输入;影碟信息浏览功能输出v 查询或排序功能:(至少两种查询方式)算法按电影名称查询 按主演姓名查询v 影碟信息的插入、删除与修改v 影碟的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社目 录内蒙古科技大学课程设计任务书I第一章 需求分析31.1引言31.2任务概述31.3数据描述31.4功能需求31.5性能需求31.6运行需求41.7任务计划4第二章概要设计52.1总体设计52.2数据类型设计(或数据结构设计)52.3接口设计 /函数声明52.4运行界面设计5第三章详细设计73.1输入模块设计73.2输出模块设计73.3查找模块设计73.4排序模块设计73.5保存及读取模块设计7第四章测试分析84.1测试程序执行情况84.2出现的问题和解决的方法8第五章用户手册(可选)95.1使用说明95.2运行说明9第六章课程设计总结10附录:程序代码11参考文献12致谢13第一章 需求分析1.1 引言一直以来人们使用传统的人工方式管理影碟店的日常工作,租借和归还过程主要依靠手工。这样无论是销售人员还是购买人员都很不方便。为方便对影碟店光盘、影碟资料、借还影碟等进行高效的管理,特编写程序以提高影碟店的管理效率。1.2 任务概述1目标本影碟管理系统主要应用与小型的影碟音像店中,方便管理员对大量的影碟信息,包括电影名、导演、电影公司、上市日期等进行增加、查询、保存等操作。2运行环境本系统对于硬件要求不高,软件只要是windows2000及以上版本都可以使用。3用户特点本系统对用户的要求不高,一般懂得一些基本的电脑操作即可。维护人员为本小组的开发人员,均为计算机专业本科教育,懂得VC+6.0编程。4条件与限制计算机一台1.3 数据描述系统数据类型有:整型int,字符型char,结构体struct;自己定义的数据类型有:DATE , CD1.4 功能需求1功能划分影碟管理系统可分为三部分:信息管理;借阅处理;查询2功能描述(1)信息管理功能:能对影碟的各种信息进行管理、登记,保存等。(2)借阅处理功能:对影碟的借阅进行管理登记,保存记录。(3) 查询功能:让管理人员对影碟的信息进行查阅。1.5 性能需求1时间特性本系统对时间的要求较高,时间反应要快,在查询时必须能在几秒时间内作出反应,弹出所要查询的各类图书信息以及借阅者信息。2兼容性和扩展性仅限在影碟音像店内部电脑使用。1.6 运行需求1用户界面屏幕格式:(1)要求有菜单及工具栏以方便操作(2)各数据库信息可在屏幕上直接修改(3)各数据统计结果可在屏幕上显示(4)进行系统分析后的结果在另一窗口中显示2硬件环境普通的计算机3软件环境支持的操作系统包括Windows98/XP/7/8/10中文版及以上版本要用到的编译语言vc+6.01.7 任务计划该程序主要实现影碟信息的管理任务其中包括影碟信息录入功能,碟信息浏览功能,影碟信息查找或排序功能,影碟信息的删除与修改,影碟的借出与归还。详情如下:(1) 输入的形式为int,char;输入值的范围为int:-21474836482147483647,char:-128127;(2) 输出的形式为数字,汉字,字母;(3) 程序所能达到的功能:1.选择功能:自由选择执行什么功能。2.录入影碟信息,其中包括电影序号,电影名称,电影导演,电影主演,电影出品公司,电影上市时间,电影库存。3.浏览影碟信息,输出所有电影信息。4.影碟信息的查找,可以按照电影名称和演员查找影碟,并且浏览其信息。5.影碟信息的排序,可以按照上市时间和库存量将电影信息进行排序并且浏览。6.影碟信息的修改,可以根据影碟编号和该影碟信息编号修改某影碟的某项信息。7.影碟信息的删除,可以根据影碟编号,删除该影碟的信息。8影碟的租借与归还,可以根据影碟编号进行租借与归还。(4) 测试数据: 任意键开始使用:enter选择功能:1影碟信息的录入:1录入影碟数量:1电影名称:恶棍天使导演名称:邓超主要演员:邓超,孙俪出品公司:光线影业出品时间年份:2015 出品时间月份:12是否保存:y任意键进行下一步操作:enterMain第二章 概要设计2.1 总体设计selectWelcomeenteringquit tlendingmodificationservicebrowsing2.2 数据类型设计(或数据结构设计)typedef struct dateint year;int month;DATE; 对影碟信息采用一个结构体变量,使影碟信息的使用及修改更加灵活方便typedef struct CDchar filmnameN;char directN;char filmactorN;char filmcorporationN;int quantity;int price;DATE time;CD;2.3 接口设计 函数名函数格式 函数功能welcomeVoid欢迎界面selectVoid系统提供的功能选取enteringVoid影碟信息的录入browsingVoid影碟信息的浏览serviceVoid影碟信息的查询modificationVoid影碟信息的修改lendingVoid影碟的借出与归还quitVoid退出系统MainInt主函数(调用分函数)2.4 运行界面设计欢迎界面功能选择第三章 详细设计3.1 输入模块设计开始 输入光盘数量输入光盘信息n确定输入么?yn要保存么?y保存y要继续输入么?n结束开始3.2 输出模块设计 打开记录文件输出数据n是否退出y结束开始3.3 查找模块设计选择查找方式按照演员名查找按照电影名查找y继续查找么?n结束开始3.4 排序模块设计选择排序方式按照上市时间排序按照库存排序y继续排序么?n结束开始3.5 保存及读取模块设计打开并读取文件yny结束退出?保存是否保存?第四章 测试分析4.1 测试程序执行情况0.1select函数 选择界面1.1录入电影数目1.2录入信息1.3输入y或Y保存1.4录入完成选项2.1浏览已录入的信息3.1排序3.2查找4.1修改资料4.2删除信息5.1租借界面5.2归还界面6.1退出4.2 出现的问题和解决的方法1.录入年份可能不符合现实情况,录入月份不合法2.输入Y或N的时候直接跳过输入错误:scanf读入了enter解决:前面加上了空格第五章 用户手册(可选)该程序设计语言为C,支持中文输入输出,方便快捷,小巧实用。大多数输入错误都会有明确的提示,要求重新输入,但有小部分bug因篇幅原因请用户自行注意。1.修改删除功能时,请不要输入不存在的电影编号,否则会出现乱码(仅出现,并不会影响管理文件)2.录入时请不要尝试故意输入错误信息,以免造成未知的后果。3.每当输入Y/N时请不要输入其他字符,以免误操作。第六章 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢。附录:程序代码#include#include#include#define N 100typedef struct dateint year;int month;DATE;typedef struct CDchar filmnameN;char directN;char filmactorN;char filmcorporationN;int quantity;DATE time;CD;void welcome();/欢迎界面void select();/功能选择void entering(CD stu);/录入void browsing(CD stu);/浏览void service();/查找和排序void modification();/修改void lending();/租借与归还void quit();/退出int main()/主函数只调用欢迎和选择welcome();select();return 0;/*函数功能;欢迎界面*/void welcome()system(COLOR e5);printf( 欢迎使用影碟管理系统,祝您使用愉快!n);printf( 设计者 * n);printf( 请按Enter开始使用.n);getchar(); system(cls);/*函数功能:系统提供的功能选择*/void select()system(COLOR 07);int n,choice;CD stuN;system(cls);printf(请在下列功能中选择一项以继续n);printf(n);printf( 1 影碟信息录入 n);printf( n);printf( 2 影碟信息浏览 n);printf( n);printf( 3 影碟信息查询 n);printf( n);printf( 4 影碟信息修改 n);printf( n);printf( 5 影碟的借与归 n);printf( n);printf( 6 退出管理系统 n);printf(n);start:scanf(%d,&n);choice=n;switch(choice)case 1: /影碟信息录入entering(stu);break;case 2: /影碟信息浏览browsing(stu);break;case 3: /影碟信息查询service();break;case 4: /影碟信息修改modification();break;case 5: /影碟的借与归lending();break;case 6: /退出管理系统quit();break;default:/后面是冒号printf(输入错误,请重新输入:n);goto start; /输入错误时重新跳回start/*函数功能:影碟信息的录入*/void entering(CD stu)int n;int i;int a,b;char op;char ol;FILE *fp;start:system(cls);printf(请输入要录入电影数目n);scanf(%d,&n);getchar();system(cls);for(i=0;igetchar();printf(请输入第%d部电影导演姓名:n,i+1);scanf(%s,&stui.direct);getchar();printf(请输入第%d部电影主要演员:n,i+1);scanf(%s,&stui.filmactor);getchar();printf(请输入第%d部电影公司:n,i+1);scanf(%s,&stui.filmcorporation);getchar();printf(请输入第%d部电影上市时间:n,i+1);rescanf_year:printf(年份:);/goto语句的开头,如果时间输入错误的话,goto语句跳到这里scanf(%d,&stui.time.year);if(stui.time.year=1895&stui.time.year=1&stui.time.month=12);elseprintf(输入不合法,请重新输入:n);goto rescanf_month;getchar();printf(请输入第%d张影碟库存:n,i+1);scanf(%d,&stui.quantity);getchar();system(cls);printf(输入完毕,是否保存? 请输入y(Y)或n(N)进行操作n);/可以直接在输出语句中进行提醒scanf(%c,&op);if(op=n|op=N) /此处记录op赋值n的情况ifstart:printf(请选择以下命令以继续:n);printf(1.重新输入 2.退出n);/此处可以删去goto down一段以缩短代码长度scanf(%d,&b);if(b=1)goto start;else if(b=2)goto down;elseprintf(输入错误,请重新输入 请输入(1/2):n);goto ifstart;getchar();system(cls);if(op=y|op=Y)/此处记录op赋值y的情况printf(已保存,请按任意键进行下一步操作n);if(fp=fopen(FilmSystem.txt,a)=NULL)printf(未能成功打开记录文件FilmSystem.txtn);exit(0);fwrite(stu,sizeof(CD),n,fp);fclose(fp);restart:getchar();system(cls);printf(请选择接下来的操作:n);printf(1.继续录入 2.返回主菜单 3.退出n);scanf(%d,&a);if(a=1)goto start;else if(a=2)select();else if(a=3)down:quit();elseprintf(命令输入错误,请重新输入 (请输入1/2/3)n);goto restart;/*函数功能:影碟信息的浏览*/void browsing(CD stu)FILE *fp;int i,n,a;if(fp=fopen(FilmSystem.txt,r)=NULL)printf(未能成功打开记录文件FilmSystem.txtn);exit(0);for(i=0;!feof(fp);i+)fread(&stui,sizeof(CD),1,fp);fclose(fp);n=i;for(i=0;in-1;i+)printf(n);printf(第%d部电影名称:,i+1);printf(%sn,stui.filmname);printf(第%d部电影导演姓名:,i+1);printf(%sn,stui.direct);printf(第%d部电影主要演员:,i+1);printf(%sn,stui.filmactor);printf(第%d部电影公司:,i+1);printf(%sn,stui.filmcorporation);printf(第%d部电影上市时间:,i+1);printf(年份:);printf(%d,stui.time.year);printf(月份:);printf(%d,stui.time.month);printf(n);printf(第%d张影碟库存:,i+1);printf(%dn,stui.quantity);restart:printf(请选择接下来的操作:n);printf(1.返回主菜单 2.退出n);scanf(%d,&a);if(a=1)select();if(a=2)quit();if(a!=1&a!=2)printf(输入错误,请重新输入 请输入(1/2)n);goto restart;/*函数功能:影碟信息的查询*/void service()CD stuN;int i,j,n,a,b,c,k,l,len;int temp;char sort100;char ch;FILE *fp;if(fp=fopen(FilmSystem.txt,r)=NULL)printf(未能成功打开记录文件 FilmSystem.txtn);exit(0);for(i=0;!feof(fp);i+)fread(&stui,sizeof(CD),1,fp);fclose(fp);n=i-1;printf(选择一项功能以继续:n);printf(1.排序 2.查找 n);scanf(%d,&a);if(a=1)printf(请选择排序依据:n);printf(1.按上市时间 2.按库存n);/此处可以加上3.售价scanf(%d,&b);printf(1.升序排列 2.降序排列n);scanf(%d,&c);if(b=1)if(1=c)/1=c与2=c段的代码一模一样,可以直接复制for(i=0;in-1;i+)for(j=i+1;jstuj.time.year)/此处排序可以删除掉以减少代码长度temp=stui.time.year;stui.time.year=stuj.time.year;stuj.time.year=temp;for(i=0;in-1;i+)for(j=i+1;jstuj.time.month)temp=stui.time.month;stui.time.month=stuj.time.month;stuj.time.month=temp;if(2=c)for(i=0;in;i+)for(j=i+1;jn;j+)if(stui.time.yearstuj.time.year)temp=stui.time.year;stui.time.year=stuj.time.year;stuj.time.year=temp;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(stui.time.year=stuj.time.year)if(stui.time.monthstuj.time.month)temp=stui.time.month;stui.time.month=stuj.time.month;stuj.time.month=temp;if(2=b)if(1=c)for(i=0;in-1;i+)for(j=i+1;jstuj.quantity)temp=stui.quantity;stui.quantity=stuj.quantity;stuj.quantity=temp;if(2=c)for(i=0;in-1;i+)for(j=i+1;jstuj.quantity)temp=stui.quantity;stui.quantity=stuj.quantity;stuj.quantity=temp;for(i=0;in;i+)printf(n);printf(第%d部电影名称:,i+1);printf(%sn,stui.filmname);printf(第%d部电影导演姓名:,i+1);printf(%sn,stui.direct);printf(第%d部电影主要演员:,i+1);puts(stui.filmactor);printf(第%d部电影公司:,i+1);printf(%sn,stui.filmcorporation);printf(第%d部电影上市时间:n,i+1);printf(年份:);printf(%d,stui.time.year);printf( 月份:);printf(%d,stui.time.month);printf(n);printf(第%d张影碟库存:,i+1);printf(%dn,stui.quantity);if(a=2)found:printf(请选择查找关键字:n);printf(1.电影名 2.演员n);scanf(%d,&b);if(1=b)k=0;printf(1.电影名:);scanf(%s,&sort);for(i=0;in;i+)if(0=strcmp(sort,stui.filmname)k+;printf(n);/此段找到之后显示电printf(第%d部电影名称:,i+1);/影信息的代码与按照演printf(%sn,stui.filmname);/员找到的是相同的,可以printf(第%d部电影导演姓名:,i+1);/直接复制printf(%sn,stui.direct);/复制至2=bprintf(第%d部电影主要演员:,i+1);/复制至2=bputs(stui.filmactor);/复制至2=bprintf(第%d部电影公司:,i+1);/复制至2=bprintf(%sn,stui.filmcorporation);/复制至2=bprintf(第%d部电影上市时间:n,i+1);/复制至2=bprintf(年份:);/复制至2=bprintf(%d,stui.time.year);/复制至2=bprintf( 月份:);/复制至2=bprintf(第%d张影碟库存:,i+1);/复制至2=bprintf(%dn,stui.quantity);/复制至2=bbreak;if(0=k)printf(没有找到该电影!n);printf(您要继续查找吗? 请输入(Y/N)n);getchar();ch=getchar();if(ch=y|ch=Y)goto found;if(2=b)k=0;printf(演员名:);scanf(%s,&sort);for(i=0;in;i+)char z100;for(j=0;jn;j+)if(stui.filmactorj=sort0)len=strlen(sort);for(int counter=0;counterlen;counter+,j+)zcounter=stui.filmactorj;zcounter=0;if(0=strcmp(sort,z) k+;printf(n);printf(第%d部电影名称:,i+1);printf(%sn,stui.filmname);printf(第%d部电影导演姓名:,i+1);printf(%sn,stui.direct );printf(第%d部电影主要演员:,i+1);puts(stui.filmactor );printf(第%d部电影公司:,i+1);printf(%sn,stui.filmcorporation);printf(第%d部电影上市时间:n,i+1);printf(年份: );printf(%d,stui.time.year );printf( 月份: );printf(%d,stui.time.month );printf(n);printf(第%d张影碟库存:,i+1);printf(%dn,stui.quantity );if(0=k)printf(没有找到该演员所演的电影!n);printf(您要继续查找吗? 请输入(Y/N)n);getchar();ch=getchar();if(ch=y|ch=Y)goto found;restart:printf(请选择您接下来的操作:n);printf(1.返回主菜单 2.退出n);scanf(%d,&l);if(l=1)select();if(l=2)quit();if(l!=1&l!=2)printf(输入错误,请重新输入(1/2)n);goto restart;/*函数功能:影碟信息的修改*/void modification()CD stuN;FILE *fp;int i,n,a,b,c,d,e,g;char op,ol,os;start:if(fp=fopen(FilmSystem.txt,r)=NULL)printf(未能成功打开记录文件 FilmSystem.txtn);exit(0);for(i=0;!feof(fp);i+)fread(&stui,sizeof(CD),1,fp);fclose(fp);getchar();system(cls);n=i;printf(影碟列表:n);for(i=0;i=1895&stua-1.time.year=1&stua-1.time.month=12);elseprintf(当前输入不合法,请重新输入n);goto rescanf_month;break;case 6:printf(请输入您想修改的库存:n,i+1);scanf(%d,&stua-1.quantity);break;defa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络音服务合作协议书
- 房屋租赁维修合同
- 酒店前台收银系统服务协议
- 提前准备的2025年行政管理试题及答案
- 2025年上海市的住房租赁合同
- 建筑工程项目后评估的重要性试题及答案
- 市政基础设施建设与管理试题及答案
- 2025项目管理服务合同模板
- 行政管理专业的实习与实践经验分享及试题及答案
- 行政人员培训需求分析试题及答案
- 高血压脑出血专家共识
- 西格列汀二甲双胍缓释片-药品解读
- 多因素身份认证
- 小学二年级下学期数学家长会课件
- 铁路基本建设工程设计概(预)算编制办法-国铁科法(2017)30号
- 汽车修理厂台账表格范本
- 颜真卿《劝学》ppt课件1
- 400字作文稿纸20x20格A4标准稿纸
- 管道燃气客服员(高级工)技能鉴定考试题库大全(含答案)
- 氢气储存和运输 课件 第1、2章 氢气存储与运输概述、高压气态储运氢
- 护士执业注册培训合格证明
评论
0/150
提交评论