c语言课程设计报告.docx
《c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告
课程设计报告
课程名称c程序设计
设计题目实验设备管理系统设计
专业班级
姓名
学号
指导教师
起止时间2010.7.5~2010.7.10
成绩评定
考核
内容
设计
表现
设计
报告
答辩
综合
评定
成绩
电气与信息学院
课程设计考核和成绩评定办法
1.课程设计的考核由指导教师根据设计表现、设计报告、设计成果、答辩等几个方面,给出各项权重,综合评定。
该设计考核教研室主任审核,主管院长审批备案。
2.成绩评定采用五级分制,即优、良、中、及格、不及格。
3.参加本次设计时间不足三分之二或旷课四天以上者,不得参加本次考核,按不及格处理。
4.课程设计结束一周内,指导教师提交成绩和设计总结。
5.设计过程考核和成绩在教师手册中有记载。
课程设计报告内容
课程设计报告内容、格式各专业根据专业不同统一规范,经教研室主任审核、主管院长审批备案。
注:
1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。
2.为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文采用宋体五号字)或手写。
课程设计目的
1、综合运用c程序设计课程和其他先修课程的理论和知识,掌握程序设计的一般方法,树立正确的设计思想,培养分析问题和解决实际问题的能力;
2、学会从实际的要求出发,合理的选择算法,正确的使用测试方法,培养学生程序设计能力;
3、学习运用帮助和查阅有关技术资料的能力。
题目六:
实验设备管理系统设计
实验设备信息包括:
设备编号,设备种类(如:
微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、实验设备信息录入功能(课程信息用文件保存)
3、实验设备信息浏览功能
4、实验设备信息查询功能
查询方式
按设备名称查询
按设备种类查询
5、实验设备信息的删除与修改(可选项)
流程图
程序清单
#include
#include
#include
#defineBUFLEN80/*缓冲区最大字符数*/
#defineLEN20/*编号和名称最大字符数,实际请更改*/
#defineN200/*最大设备数量,实际请更改*/
structequip
{
charcode[LEN+1];/*编号*/
charname[LEN+1];/*名称*/
charkind[LEN+1];/*种类*/
charprice[LEN+1];/*价格*/
chartime[LEN+1];/*购入日期*/
charyn[3];/*是否报废*/
charbroken[LEN+1];/*报废日期*/
}equ[N];
intk=1,n,m;/*定义全局变量*/
voidreadfile();/*函数声明*/
voidseek();voidmodify();voidinsert();voiddel();voiddisplay();
voidsave();voidmenu();
intmain()
{while(k)
menu();
system("pause");
return0;}
voidreadfile()/*建立信息*/
{
charbuf[BUFLEN],*p="student.dat";
FILE*fp;
inti=0;
if((fp=fopen("student.dat","r"))==NULL)
{printf("Openfile%serror!
Strikeanykeytoexit!
",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s%s%s%s%s%c%s",equ[i].code,equ[i].name,equ[i].kind,
equ[i].price,equ[i].time,equ[i].yn,equ[i].broken)==7)
{i++;i=i;}
fclose(fp);
n=i;
printf("录入完毕!
\n");}
voidseek()
{inti,j,item,flag;
chars1[21];/*以名称和编号最长长度+1为准*/
printf("------------------\n");
printf("1.按种类查询\n");
printf("2.按名称查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while
(1)
{printf("请选择子菜单编号:
");
scanf("%d",&item);
flag=0;
switch(item)
{
case1:
printf("请输入要查询的设备的种类:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(equ[i].kind,s1)==0)
{flag=1;
printf("该设备的编号,名称,种类,价格,购入日期,是否报废,报废日期,分别为:
\n");
printf("%s%s%s%s%s%c%s\n",equ[i].code,equ[i].name,equ[i].kind,
equ[i].price,equ[i].time,equ[i].yn,equ[i].broken);
}
if(flag==0)
printf("该编号不存在!
\n");break;
case2:
printf("请输入要查询的设备的名称:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(equ[i].name,s1)==0)
{flag=1;
printf("该设备的编号,名称,种类,价格,购入日期,是否报废,报废日期分别为:
\n");
printf("%s%s%s%s%s%c%s\n",equ[i].code,equ[i].name,equ[i].kind,
equ[i].price,equ[i].time,equ[i].yn,equ[i].broken);}
if(flag==0)
printf("该名称不存在!
\n");break;
case3:
return;
default:
printf("请在1-3之间选择\n");}}}
voidmodify()/*修改信息*/
{inti,j,item,num;
charyn1[3],s1[LEN+1],s2[LEN+1];/*以名称和编号最长长度+1为准*/
printf("请输入要要修改的设备的编号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(equ[i].code,s1)==0)
num=i;
printf("------------------\n");
printf("1.修改名称\n");
printf("2.修改种类\n");
printf("3.修改价格\n");
printf("4.修改购入日期\n");
printf("5.修改是否报废\n");
printf("6.修改报废日期\n");
printf("7.退出本菜单\n");
printf("------------------\n");
while
(1)
{printf("请选择子菜单编号:
");
scanf("%d",&item);
switch(item)
{
case1:
printf("请输入新的名称:
\n");
scanf("%s",s2);
strcpy(equ[num].name,s2);break;
case2:
printf("请输入新的种类:
\n");
scanf("%s",equ[num].kind);break;
case3:
printf("请输入新的价格:
\n");
scanf("%s",s2);
strcpy(equ[num].price,s2);break;
case4:
printf("请输入新的购入日期:
\n");
scanf("%s",s2);
strcpy(equ[num].time,s2);break;
case5:
printf("请输入新的是否报废:
\n");
scanf("%c",yn1);
strcpy(equ[num].yn,yn1);break;
case6:
printf("请输入新的报废日期:
\n");
scanf("%s",s2);
strcpy(equ[num].broken,s2);break;
case7:
return;
default:
printf("请在1-7之间选择\n");}}}
voidinsert()
{inti=n,j,flag;
printf("请输入待增加的设备数:
\n");
scanf("%d",&m);
do
{flag=1;
while(flag)
{flag=0;
printf("请输入第%d个设备的编号:
\n",i+1);
scanf("%s",equ[i].code);
for(j=0;j
if(strcmp(equ[i].code,equ[j].code)==0)
{printf("已有该编号,请检查后重新录入!
\n");
flag=1;
break;/*如有重复立即退出该层循环,提高判断速度*/}
}
printf("请输入第%d个设备的名称:
\n",i+1);
scanf("%s",equ[i].name);
printf("请输入第%d个设备的种类:
\n",i+1);
scanf("%s",equ[i].kind);
printf("请输入第%d个设备的价格:
\n",i+1);
scanf("%s",equ[i].price);
printf("请输入第%d个设备的购入日期:
(格式:
年.月)\n",i+1);
scanf("%s",equ[i].time);
printf("请输入第%d个设备是否报废:
\n",i+1);
scanf("%c",equ[i].yn);
printf("请输入第%d个设备的报废日期:
\n",i+1);
scanf("%s",equ[i].broken);
if(flag==0)
{i=i;i++;
}}while(in+=m;
printf("录入完毕!
\n\n");}
voiddel()
{inti,j,flag=0;
chars1[LEN+1];
printf("请输入要删除设备的编号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(equ[i].code,s1)==0)
{flag=1;
for(j=i;jequ[j]=equ[j+1];}
if(flag==0)
printf("该编号不存在!
\n");
if(flag==1)
{printf("删除成功,显示结果请选择菜单6\n");
n--;}}
voiddisplay()
{inti,j;
printf("所有设备的信息为:
\n");
for(i=0;i{printf("%s%s%s%s%s%c%s\n",equ[i].code,equ[i].name,equ[i].kind,
equ[i].price,equ[i].time,equ[i].yn,equ[i].broken);}}
voidsave()
{inti,j,k,flag=0;
FILE*fp;
fp=fopen("equip.dat","w");
for(i=0;i{fprintf(fp,"%s%s%s%s%s%c%s\n",equ[i].code,equ[i].name,equ[i].kind,
equ[i].price,equ[i].time,equ[i].yn,equ[i].broken);}
fclose(fp);}
voidmenu()/*界面*/
{intnum;
printf("\n\n简易设备信息管理系统\n\n");
printf("*****系统功能菜单*****\n");
printf("---电子094226号制作-------\n");
printf("1.读入设备信息\n");
printf("2.查询设备信息\n");
printf("3.修改设备信息\n");
printf("4.录入设备信息\n");
printf("5.按编号删除信息\n");
printf("6.显示当前信息\n");
printf("7.保存当前设备信息(要把修改保存到文件,退出程序前必须执行本项)\n");
printf("8.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:
");
scanf("%d",&num);
switch(num)
{
case1:
readfile();break;
case2:
seek();break;
case3:
modify();break;
case4:
insert();break;
case5:
del();break;
case6:
display();break;
case7:
save();break;
case8:
k=0;break;
default:
printf("请在1-8之间选择\n");
}
}
(主页面)
(录入数据)
(查询)
(修改信息)
(信息的删除)
心得体会
在短短一周的实习期间使我获取了不少新知识也巩固了许多老知识。
我体会到了老师和同学们的热心帮助,无论面对学习中多大的困难,同学们都会帮助你,老师也会帮助你,大家就像兄弟姐妹一样。
老师安排我们有具体的分工:
首先,在计算机机房里同学们积极的对C语言进行巩固与实习,老师热心的讲解同学们提出的问题和实习过程中应该注意的事项。
老师把我们分为几组,每一组五个人,并且分配了具体的任务。
然后,同学们把自到自己的小组里,大家具体分工,你编这道题,我编这道题……我们不会的地方就去问学习比较好一些的同学,或者去问老师,老师和同学们总是那么的热心,只要你还不明白,不论你问多少次,老师和同学们都会耐心地给你细心的讲解,直到讲会为止。
最后,我们把自己的成果交给老师,经过老师的检阅,然后答辩,就这样,这次实习圆满结束。
这次实习是有益的,它不仅让我们学习到了C语言的知识,更让我们学习到了同学们之间的那种团队精神,为我以后踏入社会工作准备了很多良好的知识与经验。