1、语c言课程设计通讯录管理系统大学毕设论文内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 影碟管理系统学生姓名:张升辉学 号:1567159128专 业:软件工程班 级:软件1班指导教师:褚燕华日 期: 2016年1月4日内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目影碟信息管理系统指导教师褚燕华时间2016.1.52016.1.9一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师
2、提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。影碟信息管理系统图影碟息包括:电影名称、出品公司、导演姓名、主演姓名(至少2个)、上映时间、库存数量、价格等。试设计一影碟信息管理系统,使之能提供以下功能:v 影碟信息录入功能(影碟信息用文件保存)输入;影碟信息浏览功能输出v 查询或排序功能:(至少两种查询方式)算法按电影名称查询 按主演姓名查询v 影碟信息的插入、删除与修改v 影碟的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,
3、调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社
4、2C语言程序设计课程设计,刘振安,机械工业出版社第一章 需求分析1.1 引言一直以来人们使用传统的人工方式管理影碟店的日常工作,租借和归还过程主要依靠手工。这样无论是销售人员还是购买人员都很不方便。为方便对影碟店光盘、影碟资料、借还影碟等进行高效的管理,特编写程序以提高影碟店的管理效率。1.2 任务概述本影碟管理系统主要应用与小型的影碟音像店中,方便管理员对大量的影碟信息,包括电影名、导演、电影公司、上市日期等进行增加、查询、保存等操作。本系统对于硬件要求不高,软件只要是windows2000及以上版本都可以使用。1.3 数据描述系统数据类型有:整型int,字符型char,结构体struct;
5、自己定义的数据类型有:DATE , CD1.4 功能需求功能划分:影碟管理系统可分为三部分:信息管理;借阅处理;查询功能描述:(1)信息管理功能:能对影碟的各种信息进行管理、登记,保存等。(2)借阅处理功能:对影碟的借阅进行管理登记,保存记录。(3) 查询功能:让管理人员对影碟的信息进行查阅。1.5 性能需求1.时间特性本系统对时间的要求较高,时间反应要快,在查询时必须能在几秒时间内作出反应,弹出所要查询的各类图书信息以及借阅者信息。2.兼容性和扩展性仅限在影碟音像店内部电脑使用。第二章 概要设计2.1 总体设计2.2 数据类型设计(或数据结构设计)typedef struct date /关
6、于时间的结构体 int year; /年份 int month; /月份DATE;typedef struct CD /关于影碟信息的结构体 char filmnameN; /电影名字 char directN; /导演 char filmactorN; /主要演员 char filmcorporationN; /电影公司 int quantity; /库存 int price; /价格 DATE time;CD;2.3 接口设计函数名函数类型函数功能mainint主函数(调用分函数selectvoid系统提供的功能选取enteringvoid影碟信息的录入browsingvoid影碟信息的浏
7、览servicevoid影碟信息的查询modificationvoid影碟信息的修改lendingvoid影碟的借出与归还quitvoid退出系统第三章 详细设计3.1 输入模块设计3.2 输出模块设计3.3 查找模块设计3.4 保存及读取模块设计第四章 测试分析4.1 测试程序执行情况主菜单:1.1录入:1.2保存:2.1浏览:3.1查询(电影名):3.2查询(演员):4.1修改:5.1租借:5.2归还:第五章 课程设计总结程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机
8、应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。附录:程序代码:#include#include#include#define N 100typedef struct date /关于时间的结构体 int year; /年份 int month; /月份DATE;typedef struct CD /关于影碟信息的结构体 char filmnameN; /电影名字 char directN; /导演 char filmactorN; /主要演员 char filmcorporationN; /电影公司 int quantity; /库存 int pr
9、ice; /价格 DATE time;CD;void select(); /*函数功能:系统提供的功能选取*/void entering(CD stu); /*函数功能:影碟信息的录入*/void browsing(CD stu); /*函数功能:影碟信息的浏览*/void service(); /*函数功能:影碟信息的查询*/void modification(); /*函数功能:影碟信息的修改*/void lending(); /*函数功能:影碟的借出与归还*/void quit(); /*函数功能:退出系统*/int main() select(); return 0;/*函数功能:系统
10、提供的功能选取*/void select() int n,choice; CD stuN; system(cls); printf(请在下列功能中选择一项以继续n); printf(1.影碟信息录入n2.影碟信息浏览n3.影碟信息查询n4.影碟信息修改n5.影碟的借出与归还n6.退出系统n); start:scanf(%d,&n); choice=n; switch(choice) case 1: /影碟信息录入 entering(stu); break; case 2: /影碟信息浏览 browsing(stu); break; case 3: /影碟信息查询 service(); brea
11、k; case 4: /信息修改 modification(); break; case 5: /影碟借出与归还 lending(); break; case 6: /退出系统 quit(); break; default: printf(输入错误,请重新输入:n); goto start; /*函数功能:影碟信息的录入*/void entering(CD stu) int n,i,a,b; char op,ol; FILE *fp;start: printf(您想录入几部电影?n); scanf(%d,&n); getchar(); system(cls); for(i=0;in;i+) p
12、rintf(请输入第%d部电影名称:n,i+1); scanf(%s,&stui.filmname); getchar(); printf(请输入第%d部电影导演姓名:n,i+1); scanf(%s,&stui.direct ); getchar(); printf(请输入第%d部电影主要演员:n,i+1); gets(stui.filmactor ); printf(请输入第%d部电影公司:n,i+1); scanf(%s,&stui.filmcorporation); getchar(); printf(请输入第%d部电影上市时间:n,i+1);rescanf:printf(年份: );
13、 scanf(%d,&stui.time.year ); /goto rescan;rescan: getchar(); printf(月份: ); scanf(%d,&stui.time.month ); getchar(); printf(请输入第%d张影碟库存:n,i+1); scanf(%d,&stui.quantity ); getchar(); printf(请输入第%d张影碟售价:n,i+1); scanf(%d,&stui.price ); getchar(); system(cls); printf(输入完毕,是否保存?y/nn); scanf(%c,&op); if(op=
14、n|op=N) ifstart: printf(请选择以下命令以继续:n); printf(1.重新输入 2.退出n); scanf(%d,&b); if(b=1) goto start; else if(b=2) goto down; else printf(输入错误,请重新输入(1/2)n); goto ifstart; getchar(); system(cls); if(op=y|op=Y) printf(正在保存.nn); printf(按任意键进行下一步n); if (fp = fopen(FilmSystem.txt,a) = NULL) printf(未能成功打开记录文件 Fi
15、lmSystem.txt!n); 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(); else printf(输入错误,请重新输入(1/2/3)n); goto restart; /*函数功能:影碟信息的浏览*/vo
16、id browsing(CD stu) FILE *fp; int i,n,a; if (fp = fopen(FilmSystem.txt,r) = NULL) printf(未能成功打开记录文件 FilmSystem.txt!n); 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部电影导演姓名:,
17、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.q
18、uantity ); printf(第%d张影碟售价:,i+1); printf(%dn,stui.price ); 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 sort
19、100; char ch; FILE *fp; if (fp = fopen(FilmSystem.txt,r) = NULL) printf(未能成功打开记录文件 FilmSystem.txt!n); exit(0); for (i=0; !feof(fp); i+) fread(&stui, sizeof(CD), 1, fp); fclose(fp); n=i-1; chazhao: printf(请选择查找依据:n); printf(1.电影名 2.演员n); scanf(%d,&b); if(1=b) k=0; printf(1.电影名:); scanf(%s,&sort); for
20、(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 ); printf(第%d部电影主要演员:,i+1); puts(stui.filmactor ); printf(第%d部电影公司:,i+1); printf(%sn,stui.filmcorporation); printf(第%d部电影上市时间:n,i+1); printf(年份
21、: ); printf(%d,stui.time.year ); printf( 月份: ); printf(%d,stui.time.month ); printf(n); printf(第%d张影碟库存:,i+1); printf(%dn,stui.quantity ); printf(第%d张影碟售价:,i+1); printf(%dn,stui.price ); break; if(0=k) printf(没有找到该电影!n); printf(您要继续查找么?y/nn); getchar(); ch=getchar(); if(ch=y|ch=Y) goto chazhao; if(2
22、=b) k=0; printf(演员名:); scanf(%s,&sort); for(i=0;in;i+) if(0=strcmp(sort,stui.filmactor) 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.filmcorpo
23、ration); 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 ); printf(第%d张影碟售价:,i+1); printf(%dn,stui.price ); if(0=k) printf(没有找到该演员所演的电影!n); printf(您要继续查找么?y/nn); getchar(); ch=g
24、etchar(); if(ch=y|ch=Y) goto chazhao; 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 =
25、 fopen(FilmSystem.txt,r) = NULL) printf(未能成功打开记录文件 FilmSystem.txt!n); 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;in-1;i+) printf(%d.%sn,i+1,stui.filmname); printf(输入您想编辑的电影编号:n); scanf(%d,&a); getchar(); system(cls); printf(选择您想执行的命令n); printf(1.修改信息 2.删除n); scanf(%d,&c); if(c=1) getchar(); system(cls); printf(该影碟具体信息:n); printf(1.电影名称:); printf(%sn,stua-1.filmname); printf(2.导演:);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1