C语言课程设计报告模版.docx
- 文档编号:11756036
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:19
- 大小:145.94KB
C语言课程设计报告模版.docx
《C语言课程设计报告模版.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告模版.docx(19页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告模版
C语言课程设计报告
课程名称:
C语言课程设计
教师姓名:
学生姓名:
学生学号:
专业:
计算机应用技术
所在院系:
信息与智能工程系
日期:
1.课程设计题目:
实验设备管理系统设计
【要求】
实验设备信息包括:
设备编号,设备种类(如:
微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:
(1)能够完成对设备的录入和修改。
(2)对设备进行分类统计。
(3)设备的查询。
【提示】
需求分析:
实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
2.程序设计思路
根据需求分析,可将系统的设计分为四个模块:
输入模块,修改模块,统计模块,查询模块;实验室设备信息用文件存储,提供文件的输入输出;建立实验设备信息结构体,结构体成员包括:
设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期。
(1)主函数设计
主函数提供输入,处理,输出部分的函数调用,其中各功能模块用菜单方式选择,即主函数里显示一系列功能选项,判断后,是否调用个功能模块用了switch()选择功能。
(2)各功能模块设计
输入模块:
定义了文件型指针变量,打开文件输入用户要输入设备的个数,输入设备的各项详细信息,将输入的信息存储到文件的中;用到fopen(文件名,使用文件方式);fclose(文件指针);fprintf(文件指针,格式字符串,输出列表)。
修改模块:
输入要修改的设备编号,是否找到该设备资料,如果找到记录,调用修改函数,对该设备的信息进行修改;如果没有找到,返回主菜单。
在寻找的过程中用了字符串的比较strcmp(字符串1,字符串2),如果字符串1=字符串2,则函数值为0。
如果字符串1>字符串2,则函数值为一个正整数。
如果字符串1<字符串2,则函数值为一个负整数。
比较时,只能用if(strcmp(str1,str2)>0)。
还用到feof()若到文件末尾,函数值为“真”。
统计模块:
打开文件,并对文件中的设备信息进行统计计算类型数目,总价格,平均价格;此程序中将char类型转化成double型,用到了pc=atof();fscanf(文件指针,格式字符串,输入列表);同样也用到了字符串的比较strcmp(字符串1,字符串2),feof()。
查询模块:
询问用户想要选择的搜索方式,分三种类型查询(设备名称,设备型号,设备价格),再用switch()的选择功能,每一种类型有用到了feof()控制循环,字符串的比较strcmp(字符串1,字符串2),
3.功能模块图
(1)输入模块
(2)修改模块
(3)统计模块
(4)查询模块
4.数据结构设计
此程序中用到了
(1)基本类型:
1)常量的使用#defineN50,
2)整型(int),
3)字符型(char),
4)浮点型(双精度double)。
(2)构造类型:
1)数组类型(equipCode[10],equipType[20],equipName[20]
equipPrice[10],equipOver[20],equipYesno[10],equipTime[10])
2)结构体类型:
structequip
{
charequipCode[10];
charequipType[20];
charequipName[20];
charequipPrice[10];
charequipOver[20];
charequipYesno[10];
charequipTime[10];
}equ[N],temp;
(3)指针类型:
FILE*fp,文件型指针变量,fp是一个指向FLIE类型结构
的指针变量。
5.功能模块设计
6.程序代码
#include"stdio.h"
#include
#include
#defineN50
structequip
{
charequipCode[10];
charequipType[20];
charequipName[20];
charequipPrice[10];
charequipOver[20];
charequipYesno[10];
charequipTime[10];
}equ[N],temp;
intenter()//输入记录
{
FILE*fp;
intc;
printf("**************************************\n");
printf("Addnewequiment\n");
printf("**************************************\n");
if((fp=fopen("test.txt","a"))==NULL)
{
printf("Cannotopenfile!
\n");
}
printf("------------------\n");
printf("请输入设备ID号:
\n");
scanf("%s",temp.equipCode);
printf("请输入设备类型\n");
scanf("%s",temp.equipType);
printf("请输入设备名称\n");
scanf("%s",temp.equipName);
printf("请输入设备价格\n");
scanf("%s",temp.equipPrice);
printf("请输入设备购买日期\n");
scanf("%s",temp.equipTime);
printf("请输入设备报废日期\n");
scanf("%s",temp.equipOver);
printf("请输入设备是否报废\n");
scanf("%s",temp.equipYesno);
fprintf(fp,"%s%s%s%s%s%s%s\n",
temp.equipCode,
temp.equipType,
temp.equipName,
temp.equipPrice,
temp.equipTime,
temp.equipOver,
temp.equipYesno);
fclose(fp);
printf("\n-----------------------\n");
printf("Returntomainmenu?
\n");
printf("1.YES,AdditionSuccessful\n");
printf("2.NO,Iwanttoquitnow\n");
scanf("%d",&c);
if(c==1)return(0);
if(c==2)return(0);
}
intmodifty()//修改记录
{
charcode[10];
inti,j;
intc;
FILE*fp;
printf("*************************************\n");
printf("Modiftyfortheequiment\n");
printf("*************************************\n");
printf("Pleaseinputtheequipcodeformodiftying\n");
scanf("%s",code);
printf("------------------------------------\n");
if((fp=fopen("test.txt","r"))==NULL)
{
printf("\nCannotopentest!
\n");
}
for(i=0;!
feof(fp);i++)
{
fscanf(fp,"%s%s%s%s%s%s%s",
equ[i].equipCode,
equ[i].equipType,
equ[i].equipName,
equ[i].equipPrice,
equ[i].equipTime,
equ[i].equipOver,
equ[i].equipYesno);
if(strcmp(equ[i].equipCode,code)==0)
{
printf("------------------\n");
printf("InputnewequipCode\n");
scanf("%s",equ[i].equipCode);
printf("Inputnewequiptype\n");
scanf("%s",equ[i].equipType);
printf("Inputnewequipname\n");
scanf("%s",equ[i].equipName);
printf("InputequipPrice\n");
scanf("%s",equ[i].equipPrice);
printf("Inputneweuiptime\n");
scanf("%s",equ[i].equipTime);
printf("Inputneweuipover\n");
scanf("%s",equ[i].equipOver)
printf("Inputneweuipyesno\n");
scanf("%s",equ[i].equipYesno);
}
}
fclose(fp);
j=i;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("\nCannotopentest!
\n");
}
for(i=0;i { printf("\nwrite! \n"); fprintf(fp,"%s%s%s%s%s%s%s", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); } fclose(fp); printf("\n-----------------------\n"); printf("Returntomainmenu? \n"); printf("1.YESModifySuccessful\n"); printf("2.NO,quitnow\n"); scanf("%d",&c); if(c==1)return(0); if(c==2)return(0); } intdisp()//统计记录 { intc; doublesum=0; intcount=0; doubleaver=0; chartype[20]; inti; FILE*fp; if((fp=fopen("test.txt","r"))==NULL) { printf("\nWrong\n"); } printf("pleaseinputequipType: \n"); scanf("%s",type); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%s%s%s%s", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); printf("\nOK! \n"); printf("%s,%s,%s,%s,%s,%s,%s\n", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); if(strcmp(equ[i].equipType,type)==0) { doublepc=atof(equ[i].equipPrice);//char转换为double count++; sum+=pc; aver=sum/count; } } fclose(fp); printf("----------Statist--Result-----------"); printf("\n\n这种类型的数目: %d",count); printf("\n\n总的价格: %lf",sum); printf("\n\n平均价格: %lf",aver); printf("\nexit"); printf("\n-----------------------\n"); printf("Returntomainmenu? \n"); printf("1.YESDispSuccessful\n"); printf("2.NO,quitnow.\n"); scanf("%d",&c); if(c==1)return(0); if(c==2)return(0); } intsearch()//查询记录 { charcode[10]; charname[20]; charprice[10]; intsel; intc; FILE*fp; inti; fp=fopen("test.txt","r"); if(fp==NULL)exit(0); printf("pleasechoosethewayofsearch: \n\n"); printf("1.searchbyequipCode\n\n"); printf("2.searchbyequipName\n\n"); printf("3.searchbyequipPrice\n\n"); printf("0.return\n\n"); printf("pleaseinputnumber0-5: "); scanf("%d",&sel); if(sel==0)exit(0); switch(sel) { case0: exit(0);break; case1: printf("pleaseinputequipCode: \n"); scanf("%s",code); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%s%s%s%s", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); if(strcmp(equ[i].equipCode,code)==0) { printf("\nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesno\n"); printf("\n%s,%s,%s,%s,%s,%s,%s\n", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); } } break; case2: printf("pleaseinputequipName: \n"); scanf("%s",name); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%s%s%s%s", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); if(strcmp(equ[i].equipName,code)==0) { printf("\nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesno\n"); printf("\n%s,%s,%s,%s,%s,%s,%s\n", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); } } break; case3: printf("pleaseinputequipPrice: \n"); scanf("%d",&price); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%s%s%s%s", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); if(strcmp(price,equ[i].equipPrice)==0) { printf("\nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesno\n"); printf("\n%s,%s,%s,%s,%s,%s,%s\n", equ[i].equipCode, equ[i].equipType, equ[i].equipName, equ[i].equipPrice, equ[i].equipTime, equ[i].equipOver, equ[i].equipYesno); } } break; } fclose(fp); printf("\n-----------------------\n"); printf("Returntomainmenu? \n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 模版
![提示](https://static.bdocx.com/images/bang_tan.gif)