c语言程序设计题目 :机房收费管理系统
机器使用情况你可以理解为那些机器已经有人在用了。如果你的程序机器有编号的话,你可以再给每台机器加一个变量记录有没有人在用,有同学进去就标志为有在用,学生出来则标记为无人在用,这样要显示使用情况只要分机器有在用和无人在用显示一下就行了。
或者不设标记,但要记录没个学生用的是哪台机器,要输出时为每一台机器搜索是否有学生在用就可以了,不过效率不如第一种。无法预测你用的数据结构,故无法给你代码,自己写吧,很简单。
比如第一种,你可以用如下数据结构:
struct computer {
int no;
boo is_using;
} com[50];
假设机房有50台机子。
只要在登记学生的函数中顺便处理一下用的哪台机子就行了。
另外,虚机团上产品团购,超级便宜
机房收费管理系统用C语言怎么写~~~~哪位大虾帮忙必有重谢!!!
机房收费管理系统 (1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。 (2)计算功能:计算每个下机学生的上机费用,每小时1元。 (上机费用=上机时间* 1.0/h ,不足一小时按一小时计算) (3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。 (4)机器使用情况的显示(显示方式不限但要一目了然) #includestdio.h #includemath.h #includemalloc.h #define NULL 0 #define LEN sizeof(struct student) struct student { long num; long class; char name[15]; int hour1; int min1; int hour2; int min2; struct student *next; }; int n; #include”file1.h” #include”insert.c” #include”creat.c” #include”time.c” #include”del.c” #include”save.c” #include”copy.c” #include”print.c” #include”swit.c” void main() {char c; int flag,k; struct student *head,*stu; printf(” one hour 1.0 yun !\n”); printf(” Infed information———-1\n”); printf(” Search expense————-2\n”); printf(” delet the information——3\n”); printf(” =============================================\n”); printf(” !!!Example!!!\n”); //例子示范// printf(” ###*************Infed information**********##\n”); printf(” number class name 12:30-14:21\n”); //注意号输入// head=creat(); //使head=调用返回“头指针”// for(flag=1;flag;) //flag为真,操作// { printf(” Will you ? : “); //输入相应的数值,做相应的操作// scanf(“%d”,k); swit(head,stu,k); printf(“go on ? y/n: “); getchar(); c=getchar(); if(c==’N’||c==’n’) flag=0; //如果输入’n’or’N’则退出使用本软件,否则继续相应操作// } } void swit(struct student *head,struct student *stu,int k) { long dele,number; struct student *p1; switch(k) { case 1: { printf(” !!!Example!!!\n”); //例子示范// printf(“##*********Infed information**********##\n”); printf(“number class name 12:30-14:21\n”);//注意号输入 printf(” =:”); stu=(struct student *)malloc(LEN); //添加信息时必须开 scanf(“%ld%ld%s%d:%d-%d:%d”,stu-num,stu-class,stu-name,stu-hour1,stu-min1,stu-hour2,stu-min2); while(stu-num!=0) //作用为多次输入后,多次开辟空间// { head=insert(head,stu); printf(” =:”); stu=(struct student *)malloc(LEN); //添加信息时必须开辟空间// scanf(“%ld%ld%s%d:%d-%d:%d”,stu-num,stu-class,stu-name,stu-hour1,stu-min1,stu-hour2,stu-min2); } copy(head); print(head); }break; case 2: { printf(“##*************Search.expense*************##\n”); printf(” search number :”); //输入要找的号码“number-num”// scanf(“%ld”,number); while(number!=0) //输入0,则结束擦找// { time(head,number); printf(” search number :”); scanf(“%ld”,number); } }break; case 3: {printf(“##**********delet.the.information*********##\n”); printf(” input the deleted number:”); //输入删除号码// scanf(“%ld”,dele); while(dele!=0) ////输入0,则结删除// { head=del(head,dele); print(head); copy(head); printf(” input the deleted number:”); scanf(“%ld”,dele); } }break; } } struct student *creat(void) //1 {struct student *head; struct student *p1,*p2; n=0; p1=p2=(struct student *)malloc(LEN); //创建空间为”LEN”,强转换为结构型,第一次输入// printf(” =:”); scanf(“%ld%ld%s%d:%d-%d:%d”,p1-num,p1-class,p1-name,p1-hour1,p1-min1,p1-hour2,p1-min2); head=NULL; while(p1-num!=0) //号码不为0,可继续输入// { n=n+1; //输入一个,节点加一// if(n==1) head=p1; //有一个用户// else p2-next=p1; //多个用户,p1将指向下一个节点// p2=p1; p1=(struct student *)malloc(LEN); //将创建下一个空间,创建下一个空间后,输入信息// printf(” =:”); scanf(“%ld%ld%s%d:%d-%d:%d”,p1-num,p1-class,p1-name,p1-hour1,p1-min1,p1-hour2,p1-min2); } p2-next=NULL; //表尾// return(head); } struct student * insert(struct student * head,struct student * stud) //stud是添加的用户// {struct student *p0,*p1,*p2; p1=head; p0=stud; if(head==NULL) //如果没有任何用户,添加为第一// {head=p0;p0-next=NULL;} else {while((p0-nump1-num)(p1-next!=NULL)) //按号码小到大排列,并寻找添加节点// {p2=p1;p1=p1-next;} //p1将指向下一个节点// if(p0-num=p1-num) {if(head==p1) head=p0; //恰好最小// else p2-next=p0; //在中间// p0-next=p1;} else {p1-next=p0;p0-next=NULL;} //在末尾// } n=n+1; //添加后接点数// return(head); } struct student *del(struct student *head,long num) { struct student *p1,*p2; if(head==NULL) {printf(“NO list!\n”);} //如果没有任何用户,不商除// p1=head; while(num!=p1-num p1-next!=NULL) //寻找符合节点// {p2=p1;p1=p1-next;} //p1将指向下一个节点// if(num==p1-num) {if(p1==head) head=p1-next; //恰好最小// else p2-next=p1-next; //在中间,便指向尾接点// printf(“delete %ld success !\n”,num); //输出商除用户 n=n-1; //商除后接点数// } else printf(“%ld not been found !\n”,num);//当找不到时// return(head); } void print(struct student * head) {struct student *p; printf(“Now %d person!!!\n”,n); //当前用户// p=head; if(head!=NULL) //要有用户// do { printf(“%ld%ld%s%d:%d-%d:%d\n”,p-num,p-class,p-name,p-hour1,p-min1,p-hour2,p-min2); time(p,p-num); p=p-next; //指向下一个节点// }while(p!=NULL); else printf(“NO one ! \n”); } void time(struct student *head,long number) {struct student *p=head; int i,a,b; float c; if(p==NULL) {printf(“NO list!\n”);} else { for(i=0;in;i++) { if(p-num==number) break; else p=p-next; } a=(p-hour2)-(p-hour1); b=fabs((p-min2)-(p-min1)); c=(a+b/60.0)*1.0; printf(” %ld Money is :%f\n”,number,c); } } void copy(struct student *head) { save(head); } void save(struct student *head) { struct student *p; FILE *fp; int i; p=head; if((fp=fopen(“list.c”,”w”))==NULL) { printf(“cannot open list.c\n”); return; } do { if(fwrite(p,sizeof(struct student),1,fp)!=1) printf(“list write error\n”); p=p-next; }while(p!=NULL); fclose(fp); }
c语言编程题 设计一个机房收费管理系统,实现对学生上机收费的管理。 功能描述如下: (1)输入功能
你好!这是一个机房收费管理系统截图,基本可以满足你的要求