收藏 分销(赏)

影碟管理系统范文.doc

上传人:人****来 文档编号:4469986 上传时间:2024-09-24 格式:DOC 页数:44 大小:175KB
下载 相关 举报
影碟管理系统范文.doc_第1页
第1页 / 共44页
影碟管理系统范文.doc_第2页
第2页 / 共44页
影碟管理系统范文.doc_第3页
第3页 / 共44页
影碟管理系统范文.doc_第4页
第4页 / 共44页
影碟管理系统范文.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、影碟管理系统422020年4月19日文档仅供参考内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 影碟信息管理系统学生姓名:曹政学 号:专 业:计算机科学与技术班 级:13计算机2班指导教师:周李涌内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目影碟信息管理系统指导教师周李涌时间 -12-30 -1-3一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题

2、,独立完成,题目选定后不可更换。影碟信息管理系统图影碟息包括:电影名称、出品公司、导演姓名、主演姓名(至少2个)、上映时间、库存数量、价格等。试设计一影碟信息管理系统,使之能提供以下功能:v 影碟信息录入功能(影碟信息用文件保存)输入;影碟信息浏览功能输出v 查询或排序功能:(至少两种查询方式)算法按电影名称查询 按主演姓名查询v 影碟信息的插入、删除与修改v 影碟的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写

3、要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)目录内蒙古科技大学课程设计任务书I简介III第一部分:程序总体设计思路41.1 结构体设计41.2 运行界面设计4第二部分: 详细设计82.1输入模块设计82.2输出模块设计92.3 查找模块设计92.4 借阅与归还模块设计102.5 删除模块设计14第三部

4、分: 课程设计总结16附录:程序代码17简介 由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。具体设计思路如下:程序的需求是设计影碟信息管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先如果设计一个添加函数把要录入的碟片录入一个文件中,再建立一个借阅者文件把借阅人放入其中。然后建立添加、浏览删除、查询、借阅和归还等函数,经过函数的层层调用来实现程序的逻辑结构。中间经过文件的打开和关闭实现对文件内容所包含的数据的操作。整个程序的设计思路到此结束。开始NY请根据菜单进行选择结束是否退出菜单4.碟片借阅归还3.碟片信息查询2.浏览碟片信息1.录入

5、碟片信息5.用户信息添加第一部分:程序总体设计思路1.1结构体设计数据项描述=数据项名,数据类型,长度;影片信息=影片ID,CHAR,10; 片名,CHAR,20;导演,CAHR,20;介绍,CAHR,200;上映时间,DATE,10;租借记录=记录项ID,CHAR,10;借出时间,DATE,10;归还时间,DATE,10;租金,INT,41.2运行界面设计进入主菜单图1.1选择A进行碟片添加图1.2选择B进行查询图1.3选择E进行借阅人添加图1.4选择C进行碟片借阅图1.5选择F进行碟片浏览图1.6选择G碟片删除图1.7第二部分 详细设计2.1 输入模块设计定义一个add添加函数添加碟片开始

6、输入影碟信息If 0=cd_numberelse以写入方式打开文件进行添加以追加方式打开文件进行添加cd_number+结束void add(void)/ FILE *a; /文件指针printf(请输入碟片名称:n); scanf(%s,CDcd_number.film_name);printf(请输入出品公司:n);scanf(%s,CDcd_number.film_gongsi);printf(请输入导演姓名:n); scanf(%s,CDcd_number.film_daoyan); printf(请输入主演姓名:n); scanf(%s,CDcd_number.film_zhuyan

7、);printf(请输入上映时间:n);scanf(%s,CDcd_number.shijie);getchar();n = 1; /修改借阅标记if(0=cd_number)a=fopen(cd.txt,wb);fwrite(&CDcd_number,sizeof(struct cd),1,a);elsea=fopen(cd.txt,ab);fwrite(&CDcd_number, sizeof(struct cd), 1, a);cd_number+;printf(影片添加成功n); getchar();fclose(a);2.2 输出模块设计定义一个read函数浏览所有碟片信息开始I=0

8、;i+输出影碟信息icd_number结束void read(void)int i;int n;system(cls);printf(碟片名称 出品公司 导演姓名 主演姓名 上映时间n);for(i=1;icd_number;i+)printf(%s %s %s %s %s n,CDi.film_name,CDi.film_gongsi,CDi.film_daoyan,CDi.film_zhuyan,CDi.shijie);scanf(%d,&n);2.3查找模块设计定义一个cheak函数从文件中查找相应的碟片信息开始I=0;CDi.film_name,cd_name=0I+输出影碟信息icd

9、_number结束void check(void)/ int i;char cd_name10; system(cls);printf(请要查询的输入碟片名:n); scanf(%s,cd_name); printf(碟片名称 出品公司 导演姓名 主演姓名 上映时间n);for(i = 0; i cd_number; i+) if(strcmp(CDi.film_name,cd_name)=0) printf(%s %s %s %s %s %dn,CDi.film_name,CDi.film_gongsi,CDi.film_daoyan,CDi.film_zhuyan,CDi.shijie);

10、if(i=cd_number) printf(抱歉,不能找到。n);getchar();getchar();2.4 借阅与归还模块设计定义一个借阅和归还函数,经过输入碟片名查找与之相符的碟片进行借阅或归还。找到要借阅的碟片借阅借阅结束开始归还借阅的碟片,n-1归还void rent(void) / int n;char user_name10; char cd_name10; FILE *a;/ FILE *b;/ int k=0;a = fopen(rent.txt,r);b = fopen(cd.txt,r);for (int i = 0; i cd_number; i+) fread(&

11、CDi, sizeof(struct cd),1,b);for (i = 0; i user_number; i+) fread(&RENTi,sizeof(struct rent),1,a); printf(请输入借阅人:n); scanf(%s,user_name);getchar(); printf(请输入碟片名称n); scanf(%s,cd_name); getchar(); printf(请再次输入碟片名称:n); scanf(%s,RENTi.film_namek);k+; getchar();printf(已借%d张n,k); for (int j = 0; j cd_numb

12、er; j+) if(strcmp(CDj.film_name, cd_name)=0) n=0; printf(请输入借出日期:n); scanf(%d,&RENTi.rent_time); printf(借阅成功n);scanf(%d,&n);fclose(a); fclose(b); /-碟片归还函数-void returnn (void) /int n;char user_name10; char cd_name10; FILE *a; FILE *b; int i; int j; int k = 0; a = fopen(rent.txt,r);b = fopen(cd.txt,r)

13、;for (i = 0; i cd_number; i+) fread(&CDi, sizeof(struct cd), 1, b); for (i = 0; i user_number; i+) fread(&RENTi, sizeof(struct rent), 1, a); printf(请输入借阅人:n); scanf(%s,user_name); for (i = 0; i user_number; i+) if (strcmp(user_name, RENTi.username)=0) printf(输入要归还的碟片名:n); scanf(%s,cd_name); for (j =

14、 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) n = 1; break; printf(借出日期:%dn,RENTi.rent_time);printf(归还日期:n); scanf(%d,&RENTi.return_time); getchar();if (RENTi.return_time - RENTi.rent_time) % 3)=0) RENTi.money = (RENTi.return_time - RENTi.rent_time) / 3; else RENTi.money = (RENTi.return_

15、time - RENTi.rent_time) / 3 + 1; printf(租金:%dn,RENTi.money); scanf(%d,&n);fclose(a); fclose(b); 2.5 删除模块设计经过定义一个Delete删除函数进行删除,首先从文件中查找到与之对应的信息后面的覆盖到前面进行删除。开始icd_number删除影碟信息I=0;CDi.film_name,cd_name=0I+结束void shanchu(void) int i,j,key;char cd_name10;system(cls);printf(请输入要删除的碟片:);scanf(%s,&cd_name)

16、;if(cd_name=0) return;for(i=0;icd_number;i+)if(strcmp(CDi.film_name,cd_name)=0)cd_number-;for(j=i;jcd_number;j+)strcpy(CDi.film_name,CDj+1.film_name);strcpy(CDi.film_gongsi,CDj+1.film_gongsi);strcpy(CDi.film_daoyan,CDj+1.film_daoyan);strcpy(CDi.film_zhuyan,CDj+1.film_zhuyan);strcpy(CDi.shijie,CDj+1.

17、shijie);key=1;printf(删除成功!);getchar();getchar();if(key!=1)printf(无此碟片!);getchar();getchar();第三部分 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,C语言编程已经成为当今计算机应用中空前活跃的领域, 在生活中能够说得是无处不在。因此作为二十一世纪的大学来说掌握计算机编程的开发技术是十分重要的。回顾起此次影碟信息管理课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在

18、整整几个星期的日子里,能够说得是苦多于甜,可是能够学到很多很多的的东西,同时不但能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。经过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,能够说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,经过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于

19、顺利完成了,在设计中遇到了很多编程问题,最后在自己查阅各种资料下,终于游逆而解。同时,我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!附录:程序代码#include #include #include void add(void); /新片上架函数void read(void);/浏览碟片void shanchu(void);/删除碟片void check(void); / 碟片查询函数void rent(void); /碟片借阅函数void useradd(void); /使用者添加void returnn (void);/ 碟片归还函数

20、int user_number =2; /定义会员函数int cd_number =1; /定义碟片函数struct cd/碟片结构体 char film_name10; /碟片名称char film_gongsi10; /出品公司char film_daoyan10; /导演姓名char film_zhuyan10; /主演姓名char shijie5; /上映时间; int n;/借阅标记struct rent/碟片借阅结构体 char username10; /使用者名char film_name1010; /碟片名称int rent_time; /借出日期int return_time

21、; /归还日期int money; /租金; struct cd CD1000; /定义CD函数struct rent RENT1000; /定义出租函数/-主函数-void main() /主函数 char choice; /菜单a: printf( *欢迎进入影片信息管理系统* n); printf( -n); printf( 请输入你的选择 n); printf( A:影片添加 n); printf( B:碟片查询 n); printf( C:碟片借阅 n); printf( D:碟片归还 n); printf( E:借阅者注册 n); printf( F碟片浏览 n); printf(

22、 G碟片删除 n); printf( H退出程序 n); printf( -n); scanf(%c,&choice); switch(choice) /多条件选择判断 case A: add(); /碟片添加函数 break; case B: check(); /碟片查询函数 break; case C: rent(); /碟片借出函数 break; case D: returnn();/碟片归还函数 break; caseE: useradd();/使用者注册函数 break; caseF:read();/浏览函数break; caseG: shanchu(); /删除函数 break;

23、caseH:exit(0);/退出函数 system(cls); goto a; /-碟片添加-void add(void)/新片添加 FILE *a; /文件指针printf(请输入碟片名称:n); scanf(%s,CDcd_number.film_name);printf(请输入出品公司:n);scanf(%s,CDcd_number.film_gongsi);printf(请输入导演姓名:n); scanf(%s,CDcd_number.film_daoyan); printf(请输入主演姓名:n); scanf(%s,CDcd_number.film_zhuyan);printf(请

24、输入上映时间:n);scanf(%s,CDcd_number.shijie);getchar();n = 1; /修改借阅标记if(0=cd_number)a=fopen(cd.txt,wb);fwrite(&CDcd_number,sizeof(struct cd),1,a);elsea=fopen(cd.txt,ab);fwrite(&CDcd_number, sizeof(struct cd), 1, a);cd_number+;printf(影片添加成功n); getchar();fclose(a);/-浏览影碟信息-void read(void)int i;int n;system(

25、cls);printf(碟片名称 出品公司 导演姓名 主演姓名 上映时间n);for(i=1;icd_number;i+)printf(%s %s %s %s %s n,CDi.film_name,CDi.film_gongsi,CDi.film_daoyan,CDi.film_zhuyan,CDi.shijie);scanf(%d,&n);/-影碟信息查询-void check(void)/ int i;char cd_name10; system(cls);printf(请要查询的输入碟片名:n); scanf(%s,cd_name); printf(碟片名称 出品公司 导演姓名 主演姓名

26、 上映时间n);for(i = 0; i cd_number; i+) if(strcmp(CDi.film_name,cd_name)=0) printf(%s %s %s %s %s %dn,CDi.film_name,CDi.film_gongsi,CDi.film_daoyan,CDi.film_zhuyan,CDi.shijie);if(i=cd_number) printf(抱歉,不能找到。n);getchar();getchar();/-借阅者添加函数-void useradd(void)/添加system(cls);/清屏FILE *a; /文件指针printf(请输入姓名:n

27、); scanf(%s,RENTuser_number.username); getchar();a = fopen(rent.txt,ab);/追加方式打开fwrite(&RENTuser_number, sizeof(struct rent), 1, a);/把a中一个rent结构体赋给RENTuser_numberprintf( 添加成功 n); user_number+; getchar();fclose(a); /-碟片借阅函数-void rent(void) / int n;char user_name10; char cd_name10; FILE *a;/ FILE *b;/

28、int k=0;a = fopen(rent.txt,r);b = fopen(cd.txt,r);for (int i = 0; i cd_number; i+) fread(&CDi, sizeof(struct cd),1,b);for (i = 0; i user_number; i+) fread(&RENTi,sizeof(struct rent),1,a); printf(请输入借阅人:n); scanf(%s,user_name);getchar(); printf(请输入碟片名称n); scanf(%s,cd_name); getchar(); printf(请再次输入碟片名

29、称:n); scanf(%s,RENTi.film_namek);k+; getchar();printf(已借%d张n,k); for (int j = 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) n=0; printf(请输入借出日期:n); scanf(%d,&RENTi.rent_time); printf(借阅成功n);scanf(%d,&n);fclose(a); fclose(b); /-碟片归还函数-void returnn (void) /int n;char user_name10; char cd_na

30、me10; FILE *a; FILE *b; int i; int j; int k = 0; a = fopen(rent.txt,r);b = fopen(cd.txt,r);for (i = 0; i cd_number; i+) fread(&CDi, sizeof(struct cd), 1, b); for (i = 0; i user_number; i+) fread(&RENTi, sizeof(struct rent), 1, a); printf(请输入借阅人:n); scanf(%s,user_name); for (i = 0; i user_number; i+)

31、 if (strcmp(user_name, RENTi.username)=0) printf(输入要归还的碟片名:n); scanf(%s,cd_name); for (j = 0; j cd_number; j+) if(strcmp(CDj.film_name, cd_name)=0) n = 1; break; printf(借出日期:%dn,RENTi.rent_time);printf(归还日期:n); scanf(%d,&RENTi.return_time); getchar();if (RENTi.return_time - RENTi.rent_time) % 3)=0)

32、RENTi.money = (RENTi.return_time - RENTi.rent_time) / 3; else RENTi.money = (RENTi.return_time - RENTi.rent_time) / 3 + 1; printf(租金:%dn,RENTi.money); scanf(%d,&n);fclose(a); fclose(b); /-删除碟片-void shanchu(void) int i,j,key;char cd_name10;system(cls);printf(请输入要删除的碟片:);scanf(%s,&cd_name);if(cd_name=

33、0) return;for(i=0;icd_number;i+)if(strcmp(CDi.film_name,cd_name)=0)cd_number-;for(j=i;jcd_number;j+)strcpy(CDi.film_name,CDj+1.film_name);strcpy(CDi.film_gongsi,CDj+1.film_gongsi);strcpy(CDi.film_daoyan,CDj+1.film_daoyan);strcpy(CDi.film_zhuyan,CDj+1.film_zhuyan);strcpy(CDi.shijie,CDj+1.shijie);key=1;printf(删除成功!);getchar();getchar();if(key!=1)printf(无此碟片!);getchar();getchar();

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服