程序设计语言课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川大学网络教育学院
课程设计说明书
本文是范文,仅供参考写作,禁止抄袭本文内容上传提交,违者取消写作资格,成绩不合格!
课程名称程序设计语言课程设计
校外学习中心
专业
层次
年级
学生姓名
学号
实验设备管理系统设计
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、数据结构设计
此程序中用到了
(1)基本类型:1)常量的使用#define N 50,2)整型(int),
3)字符型(char),4)浮点型(双精度double)。
(2)构造类型:1)数组类型(equipCode[10] ,equipType[20],equipName[20]
equipPrice[10],equipOver[20],equipYesno[10],equipTime[10] )
2)结构体类型:struct equip
{
char equipCode[10];
char equipType[20];
char equipName[20];
char equipPrice[10];
char equipOver[20];
char equipYesno[10];
char equipTime[10];
}equ[N],temp;
(3)指针类型:FILE *fp,文件型指针变量,fp是一个指向FLIE类型结构
的指针变量。
5、算法设计
6. 程序代码
#include "stdio.h"
#include
#include
# define N 50
struct equip
{
char equipCode[10];
char equipType[20];
char equipName[20];
char equipPrice[10];
char equipOver[20];
char equipYesno[10];
char equipTime[10];
}equ[N],temp;
int enter() //输入记录
{
FILE *fp;
int c;
printf("**************************************\n");
printf("Add new equiment\n");
printf("**************************************\n"); if((fp=fopen("test.txt","a"))==NULL)
{
printf("Can not open file!\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);