c语言设备
1. 什么是c语言的设备文件
磁盘文件、设备文件:
(1)磁盘文件:文件一般保存在磁介质(如软盘、硬盘)上,所以称为磁盘文件。
(2)设备文件:操作系统还经常将与主机相连接的I/O设备(如键盘-输入文件、显示器、打印机-输出文件)也看作为文件,即设备文件。很多磁盘文件的概念、操作,对设备文件也同样有意义,有效。
2. 设备管理 c语言
我们单位目前用的是“金字塔固定资产”,你可以网上搜索一下“金字塔固定资产管理”或是“金字塔软件工作室”就有了
3. 求C语言编写的设备管理程序
我晕……分数少,而且比较浪费时间,程序设计倒是不难,最起码看到你给的问题已经有了思路
4. C语言程序设计 设备管理程序
下面的是我前几天刚针对这题目做的做的:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
struct shebei
{
char ID[10];
char name[15];
char kind[15];
char over[15];
char yesno[10];
char time[10];
char price[10];
};
typedef struct node
{
struct shebei data;
struct node *next; //建立一个链表。
}Node;
void Add(Node *equip) //添加记录
{
Node *p,*r,*s;
char id[10]; //先用于输入ID,也用于判断是否跳出循环
r=equip;
s=equip->next; //使s为第一个有用的结点
while(r->next!=NULL) //这个循环的作用是使r为最后一个有用的结点
r=r->next; //将指针置于最末尾
while(1)
{
printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");
printf("\n请你输入设备ID号:");
scanf("%s",id);
if(strcmp(id,"0")==0) break;
p=(Node *)malloc(sizeof(Node)); //申请空间
strcpy(p->data.ID,id);
printf("\n请输入设备名称:");
scanf("%s",p->data.name);
printf("\n请输入设备种类:");
scanf("%s",p->data.kind);
printf("\n请输入报废日期:");
scanf("%s",&p->data.over);
printf("\n请输入设备是否报废:");
scanf("%s",&p->data.yesno);
printf("\n请输入设备购买时间:");
scanf("%s",&p->data.time);
printf("\n请输入设备价格:");
scanf("%s",&p->data.price);
printf(">>>>>>>>>>提示:已经完成一条记录的添加。\n");
p->next=NULL;
r->next=p; //这一步是必需的,将p与先前的链表连起来构成一条新链表
r=p; //也是必需的.将r 又重设为新链的最后一个有用结点
}
}
void Modify(Node *equip)//修改
{
Node *p;
char find[20];
if(!equip->next)
{
printf("\n>>>>>>>>>>提示:没有资料可以修改!\n");
return;
}
printf("请输入要修改的设备ID号:");
scanf("%s",find);
p=equip->next;
while(p!=NULL)
{
if(strcmp(p->data.ID,find)==0) //如果找到的话返回的是符合要求
break;
p=p->next;
}
if(p) //若找到
{
int x;
while(1)
{
printf("完成修改请输入0否则输入任意数再进行修改:");
scanf("%d",&x);
if(x==0)
{break;}
printf("请输入新设备号(原来是 %s ):",p->data.ID);
scanf("%s",p->data.ID);
printf("请输入新设备名称(原来是 %s ):",p->data.name);
scanf("%s",p->data.name);
printf("请输入新设备设备种类名称(原来是 %s ):",p->data.kind);
scanf("%s",p->data.kind);
printf("请输入新设备报废日期名称(原来是 %s ):",p->data.over);
scanf("%s",p->data.over);
printf("请输入新设备是否报废(原来是 %s ):",p->data.yesno);
scanf("%s",p->data.yesno);
printf("请输入新设备购买时间(原来是 %s ):",p->data.kind);
scanf("%s",p->data.time);
printf("请输入新设备价格(原来是 %s ):",p->data.price);
scanf("%s",p->data.price);
printf("\n>>>>>>>>>>提示:该项记录资料已经成功修改!\n");
}
}
else printf("\n>>>>>>>>>>提示:你要修改的信息不存在!\n");
}
void Disp(Node *equip)//输出记录
{
Node *p;
p=equip->next;
if(!p)
{
printf("\n>>>>>>>>>>提示:没有记录可以显示!\n");
return;
}
printf("\t\t\t\t显示结果\n");
printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
while(p)
{
printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);
p=p->next;
}
}
void Tongji(Node *equip)//统计
{
Node *p;
int sel;int flag2=0,ha=0;
p=equip->next;
char find[20];
if(!equip->next) //若链表为空
{
printf("\n>>>>>>>>>>提示:没有资料可以统计分类!\n");
return;
}
printf(">>>>>>>>>>提示:\n=====>0退出\n=====>1按设备号统计\n=====>2按设备名称统计\n");
scanf("%d",&sel);
if(sel==1)
{
printf("\n输入你要统计分类的设备号:");
scanf("%s",find);
while(p)
{
if(strcmp(p->data.ID,find)==0)
{
flag2++;
}
if(flag2==1&&ha!=flag2)
{ printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);
ha=flag2;
}
else if(flag2>ha){printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;}
p=p->next;
}
if(flag2)
{
printf("\n*************************按设备号%s统计分类的有%d条记录:*************************\n\n",find,flag2);
}
else {printf("\n按设备号%s统计的结果为0个\n\n",find);}
}
else if(sel==2)
{
printf("\n输入你要统计分类的设备名称:");
scanf("%s",find);
while(p)
{
if(strcmp(p->data.name,find)==0)
{
flag2++;
}
if(flag2==1&&ha!=flag2)
{ printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);
ha=flag2;
}
else if(flag2>ha){printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;}
p=p->next;
}
if(flag2)
{
printf("\n******************按设备名称%s统计的有%d条记录:********************\n\n",find,flag2);
}
else {printf("\n按设备名称%s统计分类的结果为0个\n\n",find);}
}
else if(sel==0) return;
}
void main()
{
Node *equip;
FILE *fp;
int flag;
Node *p,*q;
printf("\t\t\t\t设备管理系统\n");
equip=(Node*)malloc(sizeof(Node));
equip->next=NULL;
p=equip;
fp=fopen("设备管理系统","wb+");
q=(Node*)malloc(sizeof(Node));
if(fread(q,sizeof(Node),1,fp)) //将文件的内容放入接点中
{
q->next=NULL;
p->next=q;
p=q; //将该接点挂入链表中
}
fclose(fp); //关闭文件
while(1)
{
printf("**************************************目录**************************************");
printf("\n1添加记录\n");
printf("\n2修改记录\n");
printf("\n3显示记录\n");
printf("\n4统计分类记录\n");
printf("\n0*-EXIT-*\n");
printf("请输入你要操作的序号:");
scanf("%d",&flag);
switch(flag)
{
case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;
case 1: Add(equip); break; //增加记录
case 2: Modify(equip); break;//修改记录
case 3: Disp(equip); break;//显示记录信息
case 4: Tongji(equip); break;//统计记录
default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;
}
}
}
5. C语言中标准输入设备文件流标识符是什么
严格来说,流的概念出现与C++,在C中并没有文件流的概念。不过有达到同样效果的输入文件标识符,被称为标准输入设备文件指针,名字为stdin.
stdin的类型为FILE *型,对于标准输入进行操作的函数,比如scanf, gets, getchar等,都可以用文件操作函数,对stdin进行操作,达到同样效果。
比如
gets(str);
等同于
fgets(str, stdin);
6. C语言机房设备管理系统代码……急啊,大家帮帮忙!
其实很简单的一个程序,只要是个系统性程序,都差不多!给你个学生管理系统吧,改改就可以了
#include<stdio.h>
#define
N
10
struct
student
{
float
sorce[3];
float
aver;
float
high;
};
void
main()
{
int
i,j;
float
avereg=0,avermt=0,avercp=0;
float
higheg,highmt,highcp;
student
stu[N];
for(i=0;i<N;i++)
{
printf("请编号为%d的考生成绩(英语,数学,计算机):\n",i+1);
scanf("%f%f%f",&stu[i].sorce[0],&stu[i].sorce[1],&stu[i].sorce[2]);
avereg+=stu[i].sorce[0];
avermt+=stu[i].sorce[1];
avercp+=stu[i].sorce[2];
stu[i].aver=(stu[i].sorce[0]+stu[i].sorce[1]+stu[i].sorce[2])/3;
}
avereg/=N;
avermt/=N;
avercp/=N;
higheg=stu[0].sorce[0];
highmt=stu[0].sorce[1];
highcp=stu[0].sorce[2];
for(i=0;i<N;i++)
{
stu[i].high=stu[i].sorce[0];
for(j=1;j<3;j++)
if(stu[i].high<stu[i].sorce[j])
stu[i].high=stu[i].sorce[j];
if(higheg<stu[i].sorce[0])
higheg=stu[i].sorce[0];
if(highmt<stu[i].sorce[1])
highmt=stu[i].sorce[1];
if(highcp<stu[i].sorce[2])
highcp=stu[i].sorce[2];
}
printf("\n\n每门课程的全班平均分,最高分:\n\n");
printf("
英语
数学
计算机\n");
printf("平均分%14f%12f%14f\n",avereg,avermt,avercp);
printf("最高分%14f%12f%14f\n",higheg,highmt,highcp);
printf("\n\n每个考生三门课程的平均分和最高分:\n\n");
printf("编号
平均分
最高分\n");
for(i=0;i<N;i++)
printf("%4d%14f%14f\n",i+1,stu[i].aver,stu[i].high);
}
7. 急:怎样用C语言编一个设备管理系统
倒,你要能找到给你写的人,我也该他加点分!!
8. 求用C语言编的设备管理系统
#include "stdio.h"
#include "stdlib.h"
#include "cstring"
#define COUNT 30
void start(); //函数声明
void input();
void change();
void sort();
void dele();
void output();
void search();
struct deviceInfor{
char devno[30];
int devsort; //1 代表微机 2代表打印机 3代表扫描机
char devname[30];
int devprice;
char devbuydate[30];
int devstate;
char devdonedate[30];
}dev[COUNT];
int count=0;
void main() //主函数
{
while(1)
start();
}
void start() //启动菜单
{
int chi;
printf(" 实验设备管理系统\n");
printf(" ********************************************\n");
printf(" 1.设备信息的录入:\n");
printf(" 2.设备信息的修改:\n");
printf(" 3.设备信息的分类统计:\n");
printf(" 4.删除某个设备:\n");
printf(" 5.查找某个设备:\n");
printf(" 6.退出系统:\n");
printf(" ********************************************\n");
printf(" 输入你的选择: ");
scanf("%d",&chi);
//printf("\n");
if(chi==1) input();
else if(chi==2) change();
else if(chi==3) sort();
else if(chi==4) dele();
else if(chi==5) search();
else if(chi==6) { printf("你已经退出设备管理系统!\n"); exit(0);}
else { printf(" You Enter The Choice Is Not valid ! \n"); }
}
void input() //数据录入
{
char flag[20];
do{
printf("请输入你的设备信息:\n");
printf("设备编号:");
scanf("%s",dev[count].devno);
printf("设备种类(1 代表微机 2代表打印机 3代表扫描机):");
scanf("%d",&dev[count].devsort);
printf("设备名字:");
scanf("%s",dev[count].devname);
printf("设备价格:");
scanf("%d",&dev[count].devprice);
printf("设备购买日期:");
scanf("%s",dev[count].devbuydate);
printf("设备状态(1未报废 0报废):");
scanf("%d",&dev[count].devstate);
printf("设备报废日期:");
scanf("%s",dev[count].devdonedate);
count++;
printf("是否继续输入数据 y是 n否 : ");
scanf("%s",flag);
}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0);
output();
}
void change() //数据修改
{
char ch[20],a[20];
int i;
printf("\nyou sure want change devInfor y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{ printf("\nenter you want change devName:");
scanf("%s",a);
for(i=0;i<count;i++)
{
if(strcmp(dev[i].devname,a)==0)
{ printf("\nyou sure want change dev name(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nname:"); scanf("%s",dev[i].devname);}
printf("\nyou sure want change dev no(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nno"); scanf("%s",dev[i].devno);}
printf("\nyou sure want change dev sort(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nsort"); scanf("%d",&dev[i].devsort);}
printf("\nyou sure want dev price(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nprice"); scanf("%d",&dev[i].devprice);}
printf("\nyou sure want dev done date(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\ndone date"); scanf("%s",dev[i].devdonedate);}
}
} }
output();
}
void sort() //数据分类显示
{
int i,chi,sum=0,wei=0,da=0,sao=0;
printf("输入你想要统计的信息: 1(报废的机器总数) 2(机器的总类数目)");
scanf("%d",&chi);
if(chi==1) {
for(i=0;i<count;i++) {
if(dev[i].devstate==0) sum++;
}
printf("报废的机器数目为 %d \n",sum);
}
else if(chi==2){
for(i=0;i<count;i++) {
if(dev[i].devsort==1) wei++;
if(dev[i].devsort==2) da++;
else if(dev[i].devsort==3) sao++;
}
printf("微机数目为 %d 打印机数目为 %d 扫描机数目为 %d",wei,da,sao);
}else { printf("你输入的选项不符合要求!\n");}
}
void dele() //数据删除
{
int i,j;
char c[20];
printf("\nenter you want delete name :\n");
printf("name:");
scanf("%s",c);
for(i=0;i<count;i++)
if(strcmp(c,dev[i].devname)==0) break;
for(j=i;j<count-1;j++)
dev[j]=dev[j+1];
printf("\t\t\tyou had delete %s\n",c);
count--;
output();
}
void output() //数据输出
{
int i;
for(i=0;i<count;i++)
{
printf("%s %d %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdonedate);
}
}
void search() //数据查找
{
int i;
char a[20],ch[10];
printf("\nenter you want look name:");
scanf("%s",a);
for(i=0;i<count;i++)
if(strcmp(dev[i].devname,a)==0) printf("%s %d %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdonedate);
}
在vc++6.0 中测试通过 你的要求均满足了 有问题 可以hi我
9. C语言中 标准错误输出设备 和 标准输出设备 的区别是
前者句柄编号为2, 常用于输出错误信息,
后者句柄编号为1, 常用于输出信息
其他都一样
10. c语言程序设计设备管理,问题描述见补充
printf("\t\t\t1. 输入学生成绩记录 Enter the record\n"); /*输入学生成绩记录*/
printf("\t\t\t2. 显示 Print the record\n"); /*显示*/
printf("\t\t\t3. 寻找 Search record on name\n"); /*寻找*/
printf("\t\t\t4. 删除 Delete a record\n"); /*删除*/
printf("\t\t\t5. 排序 Sort to make New a file\n"); /*排序*/
printf("\t\t\t6. 插入 Insert record to list\n"); /*插入*/
printf("\t\t\t7. 保存 Save the file\n"); /*保存*/
printf("\t\t\t8. 读取 Load the file\n"); /*读取*/
printf("\t\t\t9. 退出 Quit\n"); /*退出*/