语c言课程设计通讯录管理系统大学毕设论文.docx
《语c言课程设计通讯录管理系统大学毕设论文.docx》由会员分享,可在线阅读,更多相关《语c言课程设计通讯录管理系统大学毕设论文.docx(40页珍藏版)》请在冰豆网上搜索。
![语c言课程设计通讯录管理系统大学毕设论文.docx](https://file1.bdocx.com/fileroot1/2023-2/4/49ce41b4-b011-4ed2-8a41-7a14bc10d078/49ce41b4-b011-4ed2-8a41-7a14bc10d0781.gif)
语c言课程设计通讯录管理系统大学毕设论文
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——影碟管理系统
学生姓名:
张升辉
学号:
1567159128
专业:
软件工程
班级:
软件1班
指导教师:
褚燕华
日期:
2016年1月4日
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
影碟信息管理系统
指导教师
褚燕华
时间
2016.1.5——2016.1.9
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
影碟信息管理系统
图影碟息包括:
电影名称、出品公司、导演姓名、主演姓名(至少2个)、上映时间、库存数量、价格等。
试设计一影碟信息管理系统,使之能提供以下功能:
v影碟信息录入功能(影碟信息用文件保存)--输入;影碟信息浏览功能--输出
v查询或排序功能:
(至少两种查询方式)--算法
●按电影名称查询●按主演姓名查询
v影碟信息的插入、删除与修改
v影碟的借出与归还
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
第一章需求分析
1.1引言
一直以来人们使用传统的人工方式管理影碟店的日常工作,租借和归还过程主要依靠手工。
这样无论是销售人员还是购买人员都很不方便。
为方便对影碟店光盘、影碟资料、借还影碟等进行高效的管理,特编写程序以提高影碟店的管理效率。
1.2任务概述
本影碟管理系统主要应用与小型的影碟音像店中,方便管理员对大量的影碟信息,包括电影名、导演、电影公司、上市日期等进行增加、查询、保存等操作。
本系统对于硬件要求不高,软件只要是windows2000及以上版本都可以使用。
1.3数据描述
系统数据类型有:
整型int,字符型char,结构体struct;
自己定义的数据类型有:
DATE,CD
1.4功能需求
功能划分:
影碟管理系统可分为三部分:
信息管理;借阅处理;查询
功能描述:
(1)信息管理功能:
能对影碟的各种信息进行管理、登记,保存等。
(2)借阅处理功能:
对影碟的借阅进行管理登记,保存记录。
(3)查询功能:
让管理人员对影碟的信息进行查阅。
1.5性能需求
1.时间特性
本系统对时间的要求较高,时间反应要快,在查询时必须能在几秒时间内作出反应,弹出所要查询的各类图书信息以及借阅者信息。
2.兼容性和扩展性
仅限在影碟音像店内部电脑使用。
第二章概要设计
2.1
总体设计
2.2数据类型设计(或数据结构设计)
typedefstructdate//关于时间的结构体
{
intyear;//年份
intmonth;//月份
}DATE;
typedefstructCD//关于影碟信息的结构体
{
charfilmname[N];//电影名字
chardirect[N];//导演
charfilmactor[N];//主要演员
charfilmcorporation[N];//电影公司
intquantity;//库存
intprice;//价格
DATEtime;
}CD;
2.3接口设计
函数名
函数类型
函数功能
main
int
主函数(调用分函数
select
void
系统提供的功能选取
entering
void
影碟信息的录入
browsing
void
影碟信息的浏览
service
void
影碟信息的查询
modification
void
影碟信息的修改
lending
void
影碟的借出与归还
quit
void
退出系统
第三章详细设计
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归还:
第五章课程设计总结
程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
附录:
程序代码:
#include
#include
#include
#defineN100
typedefstructdate//关于时间的结构体
{
intyear;//年份
intmonth;//月份
}DATE;
typedefstructCD//关于影碟信息的结构体
{
charfilmname[N];//电影名字
chardirect[N];//导演
charfilmactor[N];//主要演员
charfilmcorporation[N];//电影公司
intquantity;//库存
intprice;//价格
DATEtime;
}CD;
voidselect();/*函数功能:
系统提供的功能选取*/
voidentering(CDstu[]);/*函数功能:
影碟信息的录入*/
voidbrowsing(CDstu[]);/*函数功能:
影碟信息的浏览*/
voidservice();/*函数功能:
影碟信息的查询*/
voidmodification();/*函数功能:
影碟信息的修改*/
voidlending();/*函数功能:
影碟的借出与归还*/
voidquit();/*函数功能:
退出系统*/
intmain()
{
select();
return0;
}
/*函数功能:
系统提供的功能选取*/
voidselect()
{
intn,choice;
CDstu[N];
system("cls");
printf("请在下列功能中选择一项以继续\n");
printf("1.影碟信息录入\n2.影碟信息浏览\n3.影碟信息查询\n4.影碟信息修改\n5.影碟的借出与归还\n6.退出系统\n");
start:
scanf("%d",&n);
choice=n;
switch(choice)
{
case1:
//影碟信息录入
entering(stu);
break;
case2:
//影碟信息浏览
browsing(stu);
break;
case3:
//影碟信息查询
service();
break;
case4:
//信息修改
modification();
break;
case5:
//影碟借出与归还
lending();
break;
case6:
//退出系统
quit();
break;
default:
printf("输入错误,请重新输入:
\n");
gotostart;
}
}
/*函数功能:
影碟信息的录入*/
voidentering(CDstu[])
{
intn,i,a,b;
charop,ol;
FILE*fp;
start:
printf("您想录入几部电影?
\n");
scanf("%d",&n);
getchar();
system("cls");
for(i=0;i{
printf("请输入第%d部电影名称:
\n",i+1);
scanf("%s",&stu[i].filmname);
getchar();
printf("请输入第%d部电影导演姓名:
\n",i+1);
scanf("%s",&stu[i].direct);
getchar();
printf("请输入第%d部电影主要演员:
\n",i+1);
gets(stu[i].filmactor);
printf("请输入第%d部电影公司:
\n",i+1);
scanf("%s",&stu[i].filmcorporation);
getchar();
printf("请输入第%d部电影上市时间:
\n",i+1);
rescanf:
printf("年份:
");
scanf("%d",&stu[i].time.year);
//gotorescan;
rescan:
getchar();
printf("月份:
");
scanf("%d",&stu[i].time.month);
getchar();
printf("请输入第%d张影碟库存:
\n",i+1);
scanf("%d",&stu[i].quantity);
getchar();
printf("请输入第%d张影碟售价:
\n",i+1);
scanf("%d",&stu[i].price);
getchar();
system("cls");
printf("输入完毕,是否保存?
y/n\n");
scanf("%c",&op);
if(op=='n'||op=='N')
{
ifstart:
printf("请选择以下命令以继续:
\n");
printf("1.重新输入2.退出\n");
scanf("%d",&b);
if(b==1)
{
gotostart;
}
elseif(b==2)
{
gotodown;
}
else
{
printf("输入错误,请重新输入(1/2)\n");
gotoifstart;
}
}
getchar();
system("cls");
if(op=='y'||op=='Y')
{
printf("正在保存......\n\n");
printf("按任意键进行下一步\n");
}
}
if((fp=fopen("FilmSystem.txt","a"))==NULL)
{
printf("未能成功打开记录文件FilmSystem.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)
{
gotostart;
}
elseif(a==2)
{
select();
}
elseif(a==3)
{
down:
quit();
}
else
{
printf("输入错误,请重新输入(1/2/3)\n");
gotorestart;
}
}
/*函数功能:
影碟信息的浏览*/
voidbrowsing(CDstu[])
{
FILE*fp;
inti,n,a;
if((fp=fopen("FilmSystem.txt","r"))==NULL)
{
printf("未能成功打开记录文件FilmSystem.txt!
\n");
exit(0);
}
for(i=0;!
feof(fp);i++)
{
fread(&stu[i],sizeof(CD),1,fp);
}
fclose(fp);
n=i;
for(i=0;i{
printf("\n");
printf("第%d部电影名称:
",i+1);
printf("%s\n",stu[i].filmname);
printf("第%d部电影导演姓名:
",i+1);
printf("%s\n",stu[i].direct);
printf("第%d部电影主要演员:
",i+1);
puts(stu[i].filmactor);
printf("第%d部电影公司:
",i+1);
printf("%s\n",stu[i].filmcorporation);
printf("第%d部电影上市时间:
\n",i+1);
printf("年份:
");
printf("%d",stu[i].time.year);
printf("月份:
");
printf("%d",stu[i].time.month);
printf("\n");
printf("第%d张影碟库存:
",i+1);
printf("%d\n",stu[i].quantity);
printf("第%d张影碟售价:
",i+1);
printf("%d\n",stu[i].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");
gotorestart;
}
}
/*函数功能:
影碟信息的查询*/
voidservice()
{
CDstu[N];
inti,j,n,a,b,c,k,l,len;
inttemp;
charsort[100];
charch;
FILE*fp;
if((fp=fopen("FilmSystem.txt","r"))==NULL)
{
printf("未能成功打开记录文件FilmSystem.txt!
\n");
exit(0);
}
for(i=0;!
feof(fp);i++)
{
fread(&stu[i],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(i=0;i{
if(0==strcmp(sort,stu[i].filmname))
{
k++;
printf("\n");
printf("第%d部电影名称:
",i+1);
printf("%s\n",stu[i].filmname);
printf("第%d部电影导演姓名:
",i+1);
printf("%s\n",stu[i].direct);
printf("第%d部电影主要演员:
",i+1);
puts(stu[i].filmactor);
printf("第%d部电影公司:
",i+1);
printf("%s\n",stu[i].filmcorporation);
printf("第%d部电影上市时间:
\n",i+1);
printf("年份:
");
printf("%d",stu[i].time.year);
printf("月份:
");
printf("%d",stu[i].time.month);
printf("\n");
printf("第%d张影碟库存:
",i+1);
printf("%d\n",stu[i].quantity);
printf("第%d张影碟售价:
",i+1);
printf("%d\n",stu[i].price);
break;
}
}
if(0==k)
{
printf("没有找到该电影!
\n");
printf("您要继续查找么?
y/n\n");
getchar();
ch=getchar();
if(ch=='y'||ch=='Y')
{
gotochazhao;
}
}
}
if(2==b)
{
k=0;
printf("演员名:
");
scanf("%s",&sort);
for(i=0;i{
if(0==strcmp(sort,stu[i].filmactor))
{
k++;
printf("\n");
printf("第%d部电影名称:
",i+1);
printf("%s\n",stu[i].filmname);
printf("第%d部电影导演姓名:
",i+1);
printf("%s\n",stu[i].direct);
printf("第%d部电影主要演员:
",i+1);
puts(stu[i].filmactor);
printf("第%d部电影公司:
",i+1);
printf("%s\n",stu[i].filmcorporation);
printf("第%d部电影上市时间:
\n",i+1);
printf("年份:
");
printf("%d",stu[i].time.year);
printf("月份:
");
printf("%d",stu[i].time.month);
printf("\n");
printf("第%d张影碟库存:
",i+1);
printf("%d\n",stu[i].quantity);
printf("第%d张影碟售价:
",i+1);
printf("%d\n",stu[i].price);
}
}
if(0==k)
{
printf("没有找到该演员所演的电影!
\n");
printf("您要继续查找么?
y/n\n");
getchar();
ch=getchar();
if(ch=='y'||ch=='Y')
{
gotochazhao;
}
}
}
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");
gotorestart;
}
}
/*函数功能:
影碟信息的修改*/
voidmodification()
{
CDstu[N];
FILE*fp;
inti,n,a,b,c,d,e,g;
charop,ol,os;
start:
if((fp=fopen("FilmSystem.txt","r"))==NULL)
{
printf("未能成功打开记录文件FilmSystem.txt!
\n");
exit(0);
}
for(i=0;!
feof(fp);i++)
{
fread(&stu[i],sizeof(CD),1,fp);
}
fclose(fp);
getchar();
system("cls");
n=i;
printf("影碟列表:
\n");
for(i=0;i{
printf("%d.%s\n",i+1,stu[i].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("%s\n",stu[a-1].filmname);
printf("2.导演:
");