设计要求
实验室设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等.能够完成以下功能:
1)建立一个文件,将每条记录信息写入文件中并能显示于屏幕上;
2)能对文件进行补充.修订.删除,能统计所有设备的总价值;
3)进一步要求:完成设备按种类、按所属部门进行统计.
代码展示
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<malloc.h>
struct equip{
char version[15];
char name[30];
char usename[15];
int usenum;
char branch[30];
int number;
double price;
char buyday[10];
char kind[5];
int numofequi;
};
struct equip equip[10000];
void main(){
void menu();
printf("\n *******欢迎使用本软件!*******\n\n");
menu();
printf("\n *******感谢使用本软件!*******\n");
}
void menu(){
int a;
void menu();
void readfile();
void inputnew();
void sumprice();
void change();
void Delete();
void inputuse();
void giveback();
void statistic();
while(1){
printf(" =============主菜单==============\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(" = 9 退出本程序 =\n");
printf(" =================================\n");
printf(" 请选择你需要的功能序号:");
if( scanf("%d",&a)!=0){
break;
}
fflush(stdin);
printf("您的输入出现问题,即将返回主菜单!");
Sleep(1000);
system("cls");
printf("\n *******欢迎使用本软件!*******\n\n");
}
switch(a){
case 1: readfile(); system("pause");system("cls");menu();break;
case 2: sumprice(); system("cls");menu();break;
case 3: inputnew(); system("cls");menu();break;
case 4: change(); system("cls");menu();break;
case 5: Delete(); system("cls");menu();break;
case 6: inputuse(); system("cls");menu();break;
case 7: giveback(); system("cls");menu();break;
case 8: statistic();system("cls");menu();break;
case 9: exit(0);break;
default:printf("\n【Error】您输入的序号有误!\n\n");menu();
}
}
void readfile(){
void readnosee();
void show();
int i;
system("cls");
readnosee();
show();
printf("\n");
}
void sumprice(){
void readnosee();
double sum=0;
int numsum=0;
int i,m=3;
FILE *p;
system("cls");
readnosee();
m=equip[0].numofequi;
p=fopen(".\\输出文件夹\\综合统计.txt","w+");
printf("=============设备信息如下=============\n序号 设备号 设备名称 所属部门 设备数量 设备价格 购买时间 领用人 领用数量 种类\n") ;
fprintf(p,"=============设备信息如下=============\n序号 \t设备号 \t设备名称 \t所属部门 \t设备数量 \t设备价格 \t购买时间 \t领用人 \t领用数量 \t种类\n");
for(i=0;i<m;i++){
sum=sum+(equip[i].number+equip[i].usenum)*equip[i].price;
numsum=numsum+equip[i].number+equip[i].usenum;
printf("%-6d%-15s%-15s%-15s%-15d%-15.2lf%-15s%-10s%-10d%-s\n",i+1,equip[i].version,equip[i].name,equip[i].branch,equip[i].number,equip[i].price,equip[i].buyday,equip[i].usename,equip[i].usenum,equip[i].kind);
fprintf(p,"%-6d\t%-15s\t%-15s\t%-15s\t%-15d\t%-15.2lf\t%-15s\t%-10s\t%-15d\t%s\n",i+1,equip[i].version,equip[i].name,equip[i].branch,equip[i].number,equip[i].price,equip[i].buyday,equip[i].usename,equip[i].usenum,equip[i].kind);
}
printf("~~~~~~~~\n目前系统记录的设备\n总价值是:%.2lf\n总数量:%d\n~~~~~~~~\n",sum,numsum);
fprintf(p,"~~~~~~~~\n目前系统记录的设备总价值是:%.2lf\n总数量:%d\n~~~~~~~~\n",sum,numsum);
printf("【Tips】已生成“综合统计.txt”文件\n");
fclose(p);
system("pause");
}
void inputnew(){
int i,n,m,h=1;
FILE*fp;
void readnosee();
void save();
readnosee();
m=equip[0].numofequi;
printf("请输入录入设备的种数:");
scanf("%d",&n);
printf("请输入设备\n===============================\n设备号 设备名称 所属部门 设备数量 设备价格 购买时间 种类\n");
for(i=m;i<n+m;i++){
printf("请输入第%d条数据\n",h);
h++;
scanf("%s%s%s%d%lf%s%s",equip[i].version,equip[i].name,equip[i].branch,&equip[i].number,&equip