分享
分销 收藏 举报 申诉 / 48
播放页_导航下方通栏广告

类型8内蒙古科技大学课程设计任务书-影碟信息管理系统.docx

  • 上传人:精***
  • 文档编号:9757767
  • 上传时间:2025-04-06
  • 格式:DOCX
  • 页数:48
  • 大小:132.34KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    内蒙古 科技大学 课程设计 任务书 影碟 信息管理 系统
    资源描述:
    内蒙古科技大学 本科生课程设计说明书 题 目:C语言课程设计 —— 影碟信息管理系统 学生姓名: 学 号: 专 业: 班 级: 指导教师: 46 / 48 内蒙古科技大学课程设计任务书 课程名称 C语言课程设计 设计题目 影碟信息管理系统 指导教师 时间 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 影碟信息管理系统 图影碟息包括:电影名称、出品公司、导演姓名、主演姓名(至少2个)、上映时间、库存数量、价格等。试设计一影碟信息管理系统,使之能提供以下功能: v 影碟信息录入功能(影碟信息用文件保存)--输入;影碟信息浏览功能--输出 v 查询或排序功能:(至少两种查询方式)--算法 ●按电影名称查询 ●按主演姓名查询 v 影碟信息的插入、删除与修改 v 影碟的借出与归还 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天  选择课程设计题目,分析课题的要求 第二天  编程 第三天  编程及调试 第四天  写课程设计报告 第五天  提交课程设计报告(打印稿及电子稿) 五、评分标准 1. 根据平时上机考勤、表现和进度,教师将每天点名和检查 2. 根据课程设计完成情况,必须有可运行的软件。 3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。 六、建议参考资料 1.《C语言程序设计》,谭浩强,清华大学出版社 2.《C语言程序设计课程设计》,刘振安,机械工业出版社 第一部分:程序总体设计思路 4 1.1结构体设计 4 1.2运行界面设计 4 第二部分 详细设计 9 2.1 输入模块设计 9 2.2 输出模块设计 11 2.3查找模块设计 12 2.4 借阅与归还模块设计 14 2.5 删除模块设计 18 第三部分 课程设计总结 19 附录:程序代码 20 参考文献 32 简介 由于C语言是面对过程的语言,故我的设计思路是根据目标程序 运行的过程来编写的。 程序具体设计思路如下: 程序的需求是设计影碟信息管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先如果设计一个添加函数把要录入的碟片录入一个文件中,再建立一个借阅者文件把借阅人放入其中。然后建立添加、浏览删除、查询、借阅和归还等函数,通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内容所包含的数据的操作。整个程序的设计思路到此结束。 开始 N Y 请根据菜单进行选择 结束 是否退出 菜单 4. 碟片借阅归还 3. 碟片信息查询 2. 浏览碟片信息 1. 录入 碟片 信息 5. 用户信息添加 第一部分:程序总体设计思路 1.1结构体设计 数据项描述={数据项名,数据类型,长度}; 影片信息={ 影片ID,CHAR,10; 片名,CHAR,20; 导演,CAHR,20; 介绍,CAHR,200; 上映时间,DATE,10 }; 租借记录={ 记录项ID,CHAR,10; 借出时间,DATE,10; 归还时间,DATE,10; 租金,INT,4 } 1.2运行界面设计 进入主菜单 图1.1 选择1进行碟片添加 图1.2 选择2进行查询 图1.3 选择(1)碟片名查询 图1.4 选择(2)演员名查询 图1.5 选择3进行碟片借阅 图1.7 选择6进行碟片浏览 图1.8 选择4碟片归还 图1.9 选择7碟片删除 图1.10 第二部分 详细设计 2.1 输入模块设计 定义一个add添加函数添加碟片 开始 输入影碟信息 If 0==cd_number else 以写入方式打开文件进行添加 以追加方式打开文件进行添加 cd_number++ 结束 void add(void)// { FILE *a; //文件指针 printf("请输入碟片名称:\n"); scanf("%s",CD[cd_number].film_name); printf("请输入出品公司:\n"); scanf("%s",CD[cd_number].film_gongsi); printf("请输入导演姓名:\n"); scanf("%s",CD[cd_number].film_daoyan); printf("请输入主演姓名:\n"); scanf("%s",CD[cd_number].film_zhuyan); printf("请输入上映时间:\n"); scanf("%s",CD[cd_number].shijie); getchar(); n = 1; //修改借阅标记 if(0==cd_number) { a=fopen("cd.txt","wb"); fwrite(&CD[cd_number],sizeof(struct cd),1,a); } else { a=fopen("cd.txt","ab"); fwrite(&CD[cd_number], sizeof(struct cd), 1, a); } cd_number++; printf("影片添加成功\n"); getchar(); fclose(a); } 2.2 输出模块设计 定义一个read函数浏览所有碟片信息 开始 I=0;i++ 输出影碟信息 i<cd_number 结束 void read(void) { int i; system("cls"); for(i=1; i<cd_number; i++) { printf("\n\n"); printf(" 碟片名称 :"); printf("%s\n",CD[i].film_name); printf(" 出品公司 :"); printf("%s\n",CD[i].film_gongsi); printf(" 导演姓名 :"); printf("%s\n",CD[i].film_daoyan); printf(" 主演姓名 :"); printf("%s\n",CD[i].film_zhuyan); printf(" 上映时间 :"); printf("%s\n",CD[i].shijie); } printf("输入任意键返回"); getch(); } scanf("%d",&n); } 2.3查找模块设计 定义一个cheak函数从文件中查找相应的碟片信息 开始 I=0; CD[i].film_name,cd_name==0 I++ 输出影碟信息 i<cd_number 结束 void check(void)// { int i; char cd_name[10]; system("cls"); printf("请要查询的输入碟片名:\n"); scanf("%s",cd_name); printf("碟片名称 出品公司 导演姓名 主演姓名 上映时间\n"); for(i = 0; i < cd_number; i++) { if(strcmp(CD[i].film_name,cd_name)==0) { printf("%s %s %s %s %s %d\n", CD[i].film_name,CD[i].film_gongsi,CD[i].film_daoyan, CD[i].film_zhuyan,CD[i].shijie); } if(i==cd_number) printf("抱歉,不能找到。\n"); } getchar(); getchar(); } 2.4 借阅与归还模块设计 定义一个借阅和归还函数,通过输入碟片名查找与之相符的碟片进行借阅或归还。 找到要借阅的碟片借阅 借阅 结束 开始 归还借阅的碟片,n-1 归还 void rent(void) // { int n; char user_name[10]; char cd_name[10]; 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(&CD[i], sizeof(struct cd),1,b); } for (i = 0; i < user_number; i++) { fread(&RENT[i],sizeof(struct rent),1,a); } printf("请输入借阅人:\n"); scanf("%s",user_name); getchar(); printf("请输入碟片名称\n"); scanf("%s",cd_name); getchar(); printf("请再次输入碟片名称:\n"); scanf("%s",RENT[i].film_name[k]); k++; getchar(); printf("已借%d张\n",k); for (int j = 0; j < cd_number; j++) { if((strcmp(CD[j].film_name, cd_name))==0) { n=0; } } printf("请输入借出日期:\n"); scanf("%d",&RENT[i].rent_time); printf("借阅成功\n"); scanf("%d",&n); fclose(a); fclose(b); } //--------------碟片归还函数---------------------------- void returnn (void) // { int n; char user_name[10]; char cd_name[10]; 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(&CD[i], sizeof(struct cd), 1, b); for (i = 0; i < user_number; i++) fread(&RENT[i], sizeof(struct rent), 1, a); printf("请输入借阅人:\n"); scanf("%s",user_name); for (i = 0; i < user_number; i++) { if ((strcmp(user_name, RENT[i].username))==0) { printf("输入要归还的碟片名:\n"); scanf("%s",cd_name); for (j = 0; j < cd_number; j++) { if((strcmp(CD[j].film_name, cd_name))==0) { n = 1; break; } } } } printf("借出日期:%d\n",RENT[i].rent_time); printf("归还日期:\n"); scanf("%d",&RENT[i].return_time); getchar(); if (((RENT[i].return_time - RENT[i].rent_time) % 3)==0) RENT[i].money = (RENT[i].return_time - RENT[i].rent_time) / 3; else RENT[i].money = (RENT[i].return_time - RENT[i].rent_time) / 3 + 1; printf("租金:%d\n",RENT[i].money); scanf("%d",&n); fclose(a); fclose(b); } 2.5 删除模块设计 通过定义一个Delete删除函数进行删除,首先从文件中查找到与之对应的信息后面的覆盖到前面进行删除。 开始 i<cd_number 删除影碟信息 I=0; CD[i].film_name,cd_name==0 I++ 结束 void shanchu(void) { int i,j,key; char cd_name[10]; system("cls"); printf("请输入要删除的碟片:"); scanf("%s",&cd_name); if(cd_name==0) return; for(i=0;i<cd_number;i++) { if(strcmp(CD[i].film_name,cd_name)==0) { cd_number--; for(j=i;j<cd_number;j++) strcpy(CD[i].film_name,CD[j+1].film_name); strcpy(CD[i].film_gongsi,CD[j+1].film_gongsi); strcpy(CD[i].film_daoyan,CD[j+1].film_daoyan); strcpy(CD[i].film_zhuyan,CD[j+1].film_zhuyan); strcpy(CD[i].shijie,CD[j+1].shijie); key=1; printf("删除成功!"); getchar(); getchar(); } } if(key!=1) { printf("无此碟片!"); getchar(); getchar(); } 第三部分 课程设计总结 经过几周的课程设计,我学到了很多东西: ①巩固和加深了对编程的理解,提高综合运用本课程所学知识的能力。 ②培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。 ③经过实际编译系统的分析设计、编程调试。 ④能够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。 课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。 在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去。 另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。 附录:程序代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include<conio.h> void check2(void); void add(void); //新片上架函数 void read(void);//浏览碟片 void shanchu(void);//删除碟片 void check(void); // 碟片查询函数 void rent(void); //碟片借阅函数 void returnn (void);// 碟片归还函数 int user_number =2; //定义会员函数 int cd_number =1; //定义碟片函数 struct cd//碟片结构体 { char film_name[100]; //碟片名称 char film_gongsi[100]; //出品公司 char film_daoyan[100]; //导演姓名 char film_zhuyan[100]; //主演姓名 char shijie[11]; //上映时间 }; int n;//借阅标记 struct rent//碟片借阅结构体 { char username[10];//使用者名 char userxingbie[10];//使用者性别 int userage;//使用者年龄 int year;//使用者出生年份 int month;//使用者出生月份 int day;//使用者出生天数 char film_name[10][10]; //碟片名称 char rent_time; //借出日期 int return_time; //归还日期 int money; //租金 }; struct cd CD[1000]; //定义CD函数 struct rent RENT[1000]; //定义出租函数 void main() //主函数 { char choice; char op; system("cls"); a: printf("1:碟片添加 \n"); printf("2:碟片预览 \n"); printf("3:碟片查询 \n"); printf("4:碟片删除 \n"); printf("5:碟片借阅 \n"); printf("6:碟片归还 \n"); printf("0:退出程序 \n"); printf("请输入你的选择:\n"); scanf("%c",&choice); switch(choice) //多条件选择判断 { case'1': { system("cls"); add(); //碟片添加函数 break; } case'2': { system("cls"); read();//浏览函数 break; } case'3': { system("cls"); printf("1.按影碟名查询 \n"); printf("2.按主演名查询 \n"); printf("请输入查询方式:\n"); getchar(); scanf("%c",&op); switch (op) { case '1': { system("cls"); check(); break; } case '2': { system("cls"); check2(); break; } } break; } case'4': { system("cls"); shanchu(); //删除函数 break; } case'5': { system("cls"); rent(); //碟片借出函数 break; } case'6': { system("cls"); returnn();//碟片归还函数 break; } case'0': system("cls"); printf ("感谢您对此系统的使用,再见!\n"); exit(0);//退出函数 } system("cls"); goto a; } void add(void)//新片添加 { FILE *a; //文件指针 printf("请输入碟片名称:\n"); scanf("%s",CD[cd_number].film_name); printf("请输入出品公司:\n"); scanf("%s",CD[cd_number].film_gongsi); printf("请输入导演姓名:\n"); scanf("%s",CD[cd_number].film_daoyan); printf("请输入主演姓名:\n"); scanf("%s",CD[cd_number].film_zhuyan); printf("请输入上映时间:\n"); scanf("%s",CD[cd_number].shijie); getchar(); n = 1; //修改借阅标记 if(0==cd_number) { a=fopen("cd.txt","wb"); fwrite(&CD[cd_number],sizeof(struct cd),1,a); } else { a=fopen("cd.txt","ab"); fwrite(&CD[cd_number], sizeof(struct cd), 1, a); } cd_number++; printf("影片添加成功\n"); fclose(a); printf(" 输入任意键返回"); getch(); } void read(void)//--------------------浏览影碟信息----------------------------------- { int i; system("cls"); for(i=1; i<cd_number; i++) { printf(" 碟片名称 :"); printf("%s\n",CD[i].film_name); printf(" 出品公司 :"); printf("%s\n",CD[i].film_gongsi); printf(" 导演姓名 :"); printf("%s\n",CD[i].film_daoyan); printf(" 主演姓名 :"); printf("%s\n",CD[i].film_zhuyan); printf(" 上映时间 :"); printf("%s\n",CD[i].shijie); } printf("输入任意键返回"); getch(); } void check(void)//影碟信息查询 { int i; char cd_name[10]; system("cls"); printf("请要查询的输入碟片名:\n"); scanf("%s",cd_name); for(i = 0; i < cd_number; i++) { if(strcmp(CD[i].film_name,cd_name)==0) { printf("\n\n"); printf(" 碟片名称 :"); printf("%s\n",CD[i].film_name); printf(" 出品公司 :"); printf("%s\n",CD[i].film_gongsi); printf(" 导演姓名 :"); printf("%s\n",CD[i].film_daoyan); printf(" 主演姓名 :"); printf("%s\n",CD[i].film_zhuyan); printf(" 上映时间 :"); printf("%s\n",CD[i].shijie); break; } if(i==cd_number) printf("抱歉,不能找到。\n"); } getchar(); printf(" 输入任意键返回"); getch(); } void rent(void) //-------------碟片借阅函数----------------------------- { int n; char user_name[10]; char cd_name[10]; FILE *a;// FILE *b;// int k=0; int i,j; a = fopen("rent.txt","r"); b = fopen("cd.txt","r"); for (i = 0; i < cd_number; i++) { fread(&CD[i], sizeof(struct cd),1,b); } for (i = 0; i < user_number; i++) { fread(&RENT[i],sizeof(struct rent),1,a); } printf("请输入碟片名称\n"); scanf("%s",cd_name); k++; getchar(); printf("已借%d张\n",k); for (j = 0; j < cd_number; j++) { if((strcmp(CD[j].film_name, cd_name))==0) { n=0; } } printf("请输入借出日期:\n"); scanf("%d",&RENT[i].rent_time); printf("借阅成功\n"); fclose(a); fclose(b); printf(" 输入任意键返回"); getch(); } void returnn (void) //碟片归还函数---------------------------- { int n; char user_name[10]; char cd_name[10]; 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(&CD[i], sizeof(struct cd), 1, b); } for (i = 0; i < user_number; i++) { fread(&RENT[i], sizeof(struct rent), 1, a); } for (i = 0; i < user_number; i++) { if ((strcmp(user_name, RENT[i].username))==0) { printf("输入要归还的碟片名:\n"); scanf("%s",cd_name); for (j = 0; j < cd_number; j++) { if((strcmp(CD[j].film_name, cd_name))==0) { n = 1; break; } } } } printf("借出日期:%d\n",RENT[i].rent_time); printf("归还日期:\n"); scanf("%d",&RENT[i].return_time); getchar(); if (((RENT[i].return_time - RENT[i].rent_time) % 3)==0) { RENT[i].money = (RENT[i].return_time - RENT[i].rent_time) / 3; } else { RENT[i].money = (RENT[i].return_time - RENT[i].rent_time) / 3 + 1; } printf("租金:%d\n",RENT[i].money); printf(" 输入任意键返回"); getch(); fclose(a); fclose(b); } void shanchu(void)//删除碟片 { int i,j,key; char cd_name[10]; system("cls"); printf("请输入要删除的碟片:"); scanf("%s",&cd_name); if(cd_name==0) return; for(i=0; i<cd_number; i++) { if(strcmp(CD[i].film_name,cd_name)==0) { cd_number--; for(j=i; j<cd_number; j++) strcpy(CD[i].film_name,CD[j+1].film_name); strcpy(CD[i].film_gongsi,CD[j+1].film_gongsi); strcpy(CD[i].film_daoyan,CD[j+1].film_daoyan); strcpy(CD[i].film_zhuyan,CD[j+1].film_zhuyan); strcpy(CD[i].shijie,CD[j+1].shijie); key=1; printf("删除成功!"); getchar(); printf(" 输入任意键返回"); getch(); } } if(key!=1) { printf("无此碟片!"); printf("您可以与管理员取得联系,希望
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:8内蒙古科技大学课程设计任务书-影碟信息管理系统.docx
    链接地址:https://www.zixin.com.cn/doc/9757767.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork