联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> OS作业OS作业

日期:2018-09-05 03:34


#include <stdio.h>

#include <stdlib.h>


struct computermarket

{

   char computername[15];

   char model[10];   //型号

   float saleprice;    //进价

   float soldprice;    //售价

   int number;    //数量

   float gain;     //盈利

}


computer[1000];

char password[6] = "123";    //初始密码


int main()

{

   char select = 0;

   char t1[15],t2[15];

   struct computermarket computername_order;

   struct computermarket price_order;

   

   float sum;

   FILE *fp;

   int m, n, i, j, k, t3;

   int x = 3;

   int flag = 0;

   char s[8];

   system("co 1b");

   

   

   do

   {

       printf("请输入密码:\n");

       scanf("%s",s);

       if(!strcmp(s,password))/*进行密码验证*/

       

       {

           printf("PASS\n\n\n");

           flag=1;

           break;

       }

       

       else

       {

           printf("密码错误,请重新输入:\n");

           x--;

       }

   }

   

   while(x>0);

   if(!flag)

   {

       printf("你已经输入三次错误密码!");

       

       

       exit(0);

   }

back:       //goto点0



   system("cls");//清屏 包含在stdlib.h头文件中,执行清屏操作

   //系统菜单

   puts("                                                                     ");

   puts("                                                                     ");


   puts("                ***************************************************");

   puts("                $                                                   $");

   puts("                $         欢迎使用实验室管理系统                    $");

   puts("                $                                                   $");

   puts("                $               1.学生注册                          $");

   puts("                $                                                   $");

   puts("                $               2.修改用户                          $");

   puts("                $                                                   $");

   puts("                $               3.学生信息                          $");

   puts("                $                                                   $");

   puts("                $               4.查询用户                          $");

   puts("                $                                                   $");

   puts("                $               5.删除管理                          $");

   puts("                $                                                   $");

   puts("                $               6.显示用户信息                      $");

   puts("                $                                                   $");

   puts("                $               7.排序管理                          $");

   puts("                $                                                   $");

   puts("                $               8.退出系统                          $");

   puts("                $                                                   $");

   puts("                ********************************************************");

   printf("请选择(1-8):");

   select=getch();//输入选择选项 getch包含在conio.

   

   

   switch(select)

   {

   

   

   

   case '1':

   {

       //打开资料文件

       if((fp=fopen("computer.txt","r+"))==NULL)

       {

           printf("\n文件不存在!\n按任意键新建一个...\n");    //如果文件不存在,提示新建一个


           getch();   //吃掉任意键

           fp=fopen("computer.txt","w+");//创建新文件

           fclose(fp); //建完关闭,以便用r+方式打开

           goto back;//返回点0

       }

       for(m=0; !feof(fp); m++) //从文件读入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

           

       system("cls");//清屏

       printf("录入学生信息请按1.\n\n");

       scanf("%d",&t3); // 输入选项

       if(t3==1)

       {

       

           system("cls");

           printf("要录入的类型:");

           scanf("%d",&n);//输入要录入的电脑有几种

           for(i=0; i<n; i++) //依次录入库存

           {

           

               system("cls");

               printf("请输入个人信息: ");

               scanf("%s",computer[m+i].computername);

               printf("\n姓名:");

               scanf("%s",computer[m+i].model);

               printf("\n性别:");

               scanf("%f",&computer[m+i].saleprice);

               printf("\n专业:");

               scanf("%f",&computer[m+i].soldprice);

               printf("\n学号:");

               scanf("%d",&computer[m+i].number);

           }

           

           for(i=0; i<n; i++) //将文数据件写入文件中

               fprintf(fp,"%7s %7s %7.2f %7 ",computer[m+i].computername,computer[m+i].model,computer[m+i].saleprice,computer[m+i].soldprice,computer[m+i].number);//格式控制 0.00为盈利值

               

           fclose(fp);//关闭文件

           printf("您的操作已经完成!\n");

           printf("姓名 性别 专业 学号\n");//在屏幕上输出录入的信息

           

           for(i=0; i<n; i++) //左对齐输出

               printf("%-7s %-7s %-7.2f %-7.2",computer[m+i].computername,computer[m+i].model,computer[m+i].saleprice,computer[m+i].soldprice,computer[m+i].number);

               

           printf("请按任意键返回主菜单\n");

           getch();

       }

       goto back;//返回点0

       

   }

   

   

   

   

   case '2':

   {

       fp=fopen("computer.txt","r+");//打开文件

       for(m=0; !feof(fp); m++) //读入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

back2://goto点1

       system("cls");//清屏

       printf("姓名 性别 专业 学号 \n");

       

       for(k=0; k<m; k++) //输出原来电脑库存的信息

           printf("%-7s %-7s %-7.2f %-7.2f ",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number);

           

       printf("\n请输入姓名: ");//输入要改变库存量的信息

       scanf("%s",t1);

       printf("\n请输入学号:");

       

       scanf("%s",t2);

       for(k=0; k<m; k++) //数据进行比较是否存在

           if(strcmp(computer[k].computername,t1)==0&&strcmp(computer[k].model,t2)==0)

           

           

               break;

       if(k==m)//如果不存在


       {

           printf("您输入的信息不存在。\n");

           

           printf("\n请返回重新输入 按任意键...");

           getch();

           goto back2;//返回点1

       }

       printf("姓名 性别 专业 学号 \n");

       printf("%-7s %-7s %-7.2f %-7.2f \n",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number);//输出未改变之前的信息

       

       

       printf("\n请输入改变的信息:");

       

       scanf("%f",&computer[k].saleprice);

       printf("\n请输入改变的信息:");

       

       scanf("%f",&computer[k].soldprice);

       

       printf("\n请输入改变的学号:");

       scanf("%d",&computer[k].number);

       

       remove("computer.txt");           //删除原文件

       fp=fopen("computer.txt","w+");     //创建新文件

       

       for(i=0; i<m; i++) //在新文件中写入

           fprintf(fp,"%7s %7s %7.2f %7.2f %7d %7.2f\n",computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

           

       fclose(fp);

       printf("修改成功\n\n");

       printf("姓名 性别 专业 学号 \n");

       

       printf("%-7s %-7s %-7.2f %-7.2f  \n\n",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number);//输出改变之后的信息

       

       

       printf("修改已完成。\n\n1(继续)\n\n2(退出)\n");

       scanf("%d",&t3);

       if(t3==1)

           goto back2;

       else

           goto back;

           

   }

   

   

   

   

   case '3':

   {

       fp=fopen("computer.txt","r+");//打开文件

       for(m=0; !feof(fp); m++) //读入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

back3://goto点2

       system("cls");

       printf("姓名 性别 专业 学号 \n");

       sum=0;//算总盈利之用

       for(k=0; k<m; k++)

       

       {

           //在屏幕上输出库存信息

           printf("%-7s %-7s %-7.2f %-7.2f \n",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number,computer[k].gain);

           

           sum=sum+computer[k].gain;//计算总盈利

       }

       printf("\n总盈利:%.2f\n\n",sum);//输出总盈利

       printf("请输入信息\n\n名: "); //输入信息

       

       

       scanf("%s",t1);

       printf("\n型号:");

       scanf("%s",t2);

       for(k=0; k<m; k++) //对数据进行比较

           if(strcmp(computer[k].computername,t1)==0&&strcmp(computer[k].model,t2)==0)

           

           

               break;

       if(k==m)//如果不存在

       {

           printf("您输入的信息不存在。\n\n");

           

           

           printf("请返回重新输入 按任意键...");

           getch();

           goto back3;//返回点2

       }

       printf("姓名 性别 学号\n");

       printf("\n%-7s %-7s %-7d \n",computer[k].computername,computer[k].model,computer[k].number);//输出要销售的电脑信息

       

       printf("\n请输入信息:");

       scanf("%d",&t3);

       computer[k].number=computer[k].number-t3;//计算件数

       

       computer[k].gain=computer[k].gain+(computer[k].soldprice-computer[k].saleprice)*t3;//计算盈利

       

       remove("computer.txt");        //删除原文件

       fp=fopen("computer.txt","w+");  //创建新文件

       for(i=0; i<m; i++) //在新文件中写入数据

   

           fprintf(fp,"%7s %7s %7.2f %7.2f %7d %7.2f\n",computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

           

       fclose(fp);

       printf("姓名 性别 学号\n");

       printf("%-7s %-7s %-7d \n",computer[k].computername,computer[k].model,computer[k].number);//输出销售后的电脑信息

       

       printf("您的操作已经完成!\n\n");

       printf("姓名 性别 专业 学号 \n");

       

       sum=0;

       for(k=0; k<m; k++)

       

       {

           //在屏幕上输出库存信息

           printf("%-7s %-7s %-7.2f %-7.2f  \n",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number,computer[k].gain);

           

           sum=sum+computer[k].gain;//计算总盈利

       }

       printf("\n总盈利:%.2f\n\n",sum);//输出总盈利

       

       printf("销售已完成。\n\n1(继续)\n\n2(退出)\n");

       

       scanf("%d",&t3);

       if(t3==1)

           goto back3;

       else

       

           goto back;

   }

   

   

   

   

   case '4'://查询

   {

       if((fp=fopen("computer.txt","r+"))==NULL)//打开文件

       

       {

           printf("文件打不能打开!\n");//提示文件打不开

           

           getch();

           exit(1);

       }

       for(m=0; !feof(fp); m++) //读入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

           

back4:

       system("cls");

       printf("请输入要查询的信息\n\n");//输入要查询的电脑的信息

       

       printf("姓名:");

       scanf("%s",t1);

       printf("\n学号:");

       scanf("%s",t2);

       

       for(k=0; k<m; k++) //数据进行比较

           if(strcmp(computer[k].computername,t1)==0&&strcmp(computer[k].model,t2)==0)

           

               break;

       if(k==m)//如果不存在

       {

       

       

           printf("您输入的产品信息不存在。\n");

           printf("\n请返回重新输入 按任意键...");

           getch();

           goto back4;

       }

       printf("姓名 性别 专业 学号 \n");

       printf("\n%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f \n",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number,computer[k].gain);

       

       printf("是否要继续查询?\n\n1(继续)\n\n2(退出):");

       scanf("%d",&t3);

       

       if(t3==1)

           goto back4;

       else

           goto back;

   }

   

   

   

   

   

   case '5'://删除管理

   {

       if((fp=fopen("computer.txt","r+"))==NULL)//提示文件打不开

       

       {

           printf("文件打不能打开!\n");

           getch();

           

           exit(1);

       }

       for(m=0; !feof(fp); m++) //输入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

back5://goto点5

       system("cls");

       printf("姓名 性别 专业 学号  \n");

       

       sum=0;    //在屏幕上输出库存

       for(k=0; k<m; k++)

       {

       

           printf("%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f \n",computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number,computer[k].gain);

           

           sum=sum+computer[k].gain;//计算总盈利

       }

       printf("\n总盈利:%.2f\n\n",sum);

       printf("请输入要删除的信息\n\n");//输入要删除的电脑的信息

       

       printf("姓名:");

       scanf("%s",t1);

       printf("\n学号:");

       

       scanf("%s",t2);

       for(k=0; k<m; k++) //数据进行比较

           if(strcmp(computer[k].computername,t1)==0&&strcmp(computer[k].model,t2)==0)

           

               break;

       if(k==m)//如果不存在

       {

       

       

           printf("您输入的产品信息不存在。\n");

           printf("\n请返回重新输入 按任意键...");

           getch();

           goto back5;

       }

       

       printf("姓名 专业  学号\n");

       printf("\n%-7s %-7s %-7d \n",computer[k].computername,computer[k].model,computer[k].number);

       

       printf("\n是否要删除?\n\n1(删除)\n\n2(不删除):");

       scanf("%d",&t3);//选择是否要删除

       if(t3==1)//如果要删除

       

       {

           remove("computer.txt");             //删除原文件

           fp=fopen("computer.txt","w+");     //创建新文件

           

           printf("\n姓名 性别 专业 学号  \n");//删除完后在文件夹中写入和在屏幕显示剩下的电脑信息

           

           for(i=0; i<m; i++)

           {

               if(i!=k)

               

               {

                   fprintf(fp,"%7s %7s %7.2f %7.2f %7d %7.2f\n",computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

                   

                   printf("%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f \n",computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

                   

               }

           }

           printf("\n删除已完成\n");

       }

       

       else     //不删除

           printf("\n删除未完成\n");

       fclose(fp);

       

       printf("\n按任意键返回菜单...");

       getch();

       

       goto back;//返回主菜单

       

   }

   

   

   

   

   

   case '6'://显示电脑库存

   {

       if((fp=fopen("computer.txt","r+"))==NULL)//打开文件

       

       {

           printf("文件打不能打开!\n");//提示文件打不开

           getch();

           

           exit(1);

       }

       for(m=0; !feof(fp); m++) //读入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

       system("cls");

       printf("姓名  性别   专业   学号 \n");//在屏幕上显示数据

       for(k=0; k<m; k++)

       

       {

           printf("%d      %-7s %-7s %-7.2f %-7.2f %-7d \n",k+1,computer[k].computername,computer[k].model,computer[k].saleprice,computer[k].soldprice,computer[k].number);

           

           

       }

       fclose(fp);

       printf("请按任意键返回主菜单\n");

       getch();

       goto back;

       

   }

   

   

   

   

   

   

   case '7'://排序

   {

       if((fp=fopen("computer.txt","r+"))==NULL)//打开文件

       {

           printf("文件打不能打开!\n");//提示文件打不开

           

           getch();

           exit(1);

       }

       

       for(m=0; !feof(fp); m++) //读入数据

           fscanf(fp,"%s %s %f %f %d %f\n" ,computer[m].computername,computer[m].model,&computer[m].saleprice,&computer[m].soldprice,&computer[m].number,&computer[m].gain);

           

back7:

       system("cls");

       printf("\n请选择排序标准?\n\n1(按姓名排序)\n\n2(按专业排序)\n\n3(按学号排序)\n");

       

       scanf("%d",&t3);

       if(t3==1)//按品牌排序

       {

       

           for(i=0; i<m-1; i++)

               for(j=i+1; j<m; j++)

                   if(strcmp(computer[i].computername,computer[j].computername)>0)

                   

                   {

                       computername_order=computer[i];

                       computer[i]=computer[j];

                       computer[j]=computername_order;

                   }

                   

           printf("按品牌排序输出:\n");

           printf("姓名   性别  专业   学号 \n");

           

           for(i=0; i<m; i++)

           {

           

               printf("%d     %-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f \n",i+1,computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

               

           }

           printf("排序已完成。\n\n1(继续)\n\n2(退出)\n");

           scanf("%d",&t3);

           if(t3==1)

           

               goto back7;

           else

               goto back;

               

       }

       else if(t3==2)//按进价排序

       {

           for(i=0; i<m-1; i++)

           

               for(j=i+1; j<m; j++)

                   if(computer[i].saleprice>computer[j].saleprice)

                   

                   {

                       price_order=computer[i];

                       computer[i]=computer[j];

                       computer[j]=price_order;

                   }

                   

                   

           printf("按进价排序输出:\n");

           printf("姓名   性别   专业   学号\n");

           for(i=0; i<m; i++)

           {

               printf("%d     %-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f  \n",i+1,computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

               

               

           }

           printf("排序已完成。\n\n1(继续)\n\n2(退出)\n");

           scanf("%d",&t3);

           if(t3==1)

           

               goto back7;

           else

           

               goto back;

       }

       

       else if(t3==3) //按利润排序

       {

           for(i=0; i<m-1; i++)

               for(j=i+1; j<m; j++)

               

                   if(computer[i].gain<computer[j].gain)

                   

                   {

                       price_order=computer[i];

                       computer[i]=computer[j];

                       computer[j]=price_order;

                       

                   }

           printf("按利润排序输出:\n");

           

           printf("姓名 性别 专业学号\n");

           for(i=0; i<m; i++)

           {

               printf("%d     %-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f  \n",i+1,computer[i].computername,computer[i].model,computer[i].saleprice,computer[i].soldprice,computer[i].number,computer[i].gain);

               

               

           }

           printf("排序已完成。\n\n1(继续)\n\n2(退出)\n");

           scanf("%d",&t3);

           if(t3==1)

               goto back7;

               

           else

               goto back;

       }

       break;

   }

   

   

   

   

   case '8'://退出系统

   {

       system("cls");

       printf("谢谢你的使用!\n");

       exit(0);

   }

   }

}



版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp