⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rightzhuhhanshu.cpp

📁 非常简单的一个通讯录程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define SIZE 6
#define LEN  sizeof(struct student_type)
#define  PRINT1  printf("----------------------------------------------------------------------------\n");
#define  PRINT2  printf(" 学号      姓名            性别      年龄            地址 \n");
#define  PRINT3  printf("   %-5d%-20s%-10c%-15d%-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].age,stu1[i].addre);
#define  PRINT4  printf("\n");
#define  PRINT5  printf("               **********************************          \n");
struct student_type     /*学生信息结构体*/
{
    int  num;
    char name[20];
    char sex;
    int  age;
    char addre[15];
}stu1[SIZE];
main()                         /****************主函数*********************/
{
 int n;
 char c,d;
 void print_ori();
 void  printall_after();
 void  modify();
 void  add_extra();
 void delect();
 void find();
 void  count();
 void exit();
 void display_menu();
 system("color 47");
    printf("\n\n");
    printf("            ======================================================           \n");
    printf("\n");
    printf("                         欢迎您使用学生证管理系统    \n");
    printf("\n");
    printf("            ======================================================      \n");
    printf("\n*******************************************************************************");
    printf("     *****总设计师      : 丁高明 \n");
    printf("    *****总设计师资料  :编号:18   单位: 地信0602\n");
    printf("    *****技术顾问      : 温国海\n");
    printf("    *****技术总监      : 温国海\n");
    printf("    *****出品时间      : 2007年7月6日\n");
    printf("    *****版权归属      : 自主设计 国产版权\n");
    printf("*******************************************************************************");
    printf("\n\n\n");
    printf("\n                    **********是否进入系统************\n");
    printf("\n\t\t\t\t y/n    ");
    if(d=getchar()=='y')
    {
      do
     {
      display_menu();
      PRINT4; PRINT4;
      printf("\n----------您现在以到达主菜单界面,请输入 1--6 进入操作区--------");
      scanf("%d",&n);
      switch(n)
      {
       case 1: print_ori();          break;
       case 2: printall_after();     break;
       case 3: modify();             break;
       case 4: add_extra();          break;
       case 5: delect();             break;
       case 6: find();               break;
       case 7: count();              break;
       case 8: exit();               break;
      }
      PRINT4;
      if(n!=8)
      {
        printf("你想继续使用程序吗?------------------(y/n)   ");
        getchar();
        c=getchar();
      }
     }while((c=='y'||c=='Y')&&(n!=8));
    }
}
void display_menu()        /***************打印菜单*****************/
{
    system("color 17");
    printf("--------------------------------------------------------------------------------\n");
    printf("   下面是此系统的操作菜单\n");
    printf("\n           __________________________________________________\n");
    printf("\n           | 1  --->>      *  显示未处理的学生原始信息   *  |\n");
    printf("\n           | 2  --->>      *  显示处理后所有的学生信息   *  |\n");
    printf("\n           | 3  --->>      *  修改学生信息               *  |\n");
    printf("\n           | 4  --->>      *  增加学生信息               *  |\n");
    printf("\n           | 5  --->>      *  删除学生信息               *  |\n");
    printf("\n           | 6  --->>      *  查找学生信息               *  |\n");
    printf("\n           | 7  --->>      *  统计系统                   *  |\n");
    printf("\n           | 8  --->>      *  退出程序                   *  |\n");
    printf("            __________________________________________________");
}
void exit()              /***************跳出循环*************/
{
    system("color 46");
    printf("            ======================================================           \n");
    printf("\n                     欢迎您使用学生证管理系统软件      \n");
    printf("\n            ======================================================      \n");
    printf("\n");
    printf("  -----------------------------------------------------------------------------\n");
    printf("  \n如果您有对本公司有意见或建议,请通过以下联系方式与我们联系:\n");
    printf("\n              ******* gaoming9281029@souhoo.com.cn!******\n");
    printf("===============================================================================      \n");
    printf("软件开发商:");
    printf("中南大学地信软件家园有限公司      \n");
    printf("                                             董事长兼总经理:丁高明\n");
    printf("\n本公司以先进的技术,竭诚为您服务!\n");
    printf("\n开拓创新是生存之源,  与时俱进是发展之本! 国产软件的发展靠你,靠我,也靠他!!\n ");
    PRINT4;
    printf("\n                              *  版权所有   违法必究! *");
    printf("\n输入任意键结束程序!\n");
}
void sort()
 {                                /************按学号排序****************/
   FILE *fp3;
   int i,j,sum=0;
   struct student_type temp;
   if((fp3=fopen("stu_list.txt","rb"))==NULL)
      {
        printf("error!");
        exit(0);
      }
    for(i=0;fread(&stu1[i],LEN,1,fp3)!=0;i++)
      sum=i+1;
   fclose(fp3);
   fp3=fopen("stu_list.txt","rb");
    for(i=0;i<sum-1;i++)
      for(j=i+1;j<sum;j++)
       {
         if(stu1[i].num>stu1[j].num)
          {
            temp=stu1[i];
            stu1[i]=stu1[j];
            stu1[j]=temp;
          }
        }
   fp3=fopen("stu_list.txt","wb");
   for(i=0;i<sum;i++)
      fwrite(&stu1[i],LEN,1,fp3);
   fclose(fp3);
 }
 void print_ori()
{                                      /**************输出原始的学生信息**************/
   FILE *fp;
    int i;
    if((fp=fopen("stu_list2.txt","r"))==NULL)
      {
        printf("error!");
        exit(0);
      }
    PRINT1;    PRINT2;
    for( i=0;i<SIZE;i++)
      {
        PRINT1;
        fread(&stu1[i],sizeof(struct student_type),1,fp) ;
        PRINT3;
      }
     PRINT1;
    fclose(fp);
}
void printall_after()    /****输出所有的修改后的学生信息******/
{
    FILE *pp;
    int i;
    void sort();
    sort();
    pp=fopen("stu_list.txt","rb");
    PRINT1;   PRINT2;    PRINT1;
   for( i=0;fread(&stu1[i],sizeof(struct student_type),1,pp)!=0;i++)
      {
        PRINT1;   PRINT3;
      }
       PRINT1;
      fclose(pp);
}
void  modify()                       /************修改学生信息************/
{
    FILE *p;
    char sex,name[20],addre[15];
    int i,k,num,t,m,age;
    char  c1='y', c2='y';
    if((p=fopen("stu_list.txt","rb"))==NULL)
    {
       printf("文件打开失败!!");
       return;
    }
     PRINT4;  PRINT4; PRINT1;
     PRINT4; PRINT4;
    for(i=0;fread(&stu1[i],LEN,1,p)!=0;i++)
     t=i+1;
    fclose(p);
     printf("\n\n\n");
     printf("**************************************************************************");
     printf("\n\n您现在以进入学生信息修改界面,参照下述修改菜单,请按下面的提示完成操作!\n");
     printf("\n**************************************************************************");
     printf("\n\n\n\n");
     printf("\n***************修改菜单:\n");
     PRINT4;   PRINT1;
     printf("                    * 1  ----------   修改学号\n");
     printf("                    * 2  ----------   修改姓名\n");
     printf("                    * 3  ----------   修改性别\n");
     printf("                    * 4  ----------   修改年龄\n");
     printf("                    * 5  ----------   修改地址\n");
     printf(" \n   ****提示:若想修改某个学生的所有信息利用删除和添加功能实现****\n");
     PRINT1;    PRINT4;
    do
    {
     p=fopen("stu_list.txt","rb");
     printf("\n请输入您要修改的学生的学生证号(不要以0开头):-------------");
     scanf("%d",&num);   PRINT4;   PRINT4;
     for(i=0;fread(&stu1[i],sizeof(struct student_type),1,p)!=0;i++)
        if(num==stu1[i].num)
         {
          printf("\n*********你要修改的学生的原始信息\n");
          PRINT4; PRINT1; PRINT2;
          PRINT1; PRINT3; PRINT1;
          break;
         }
    if(fread(&stu1[i],sizeof(struct student_type),1,p)==0 )
    printf("\n********没有此学生,请返回主菜单查看处理后的学生信息********\n"); PRINT4;
      do
      {
          printf("\n请输入要修改的选项(1--5)------------");
          scanf("%d",&m);
          switch(m)
              {
                case 1:  printf("\n******请输入新的学号----");  scanf("%d",&stu1[i].num);   break;
                case 2:  printf("\n******请输入新的姓名----");  scanf("%s",stu1[i].name);   break;
                case 3:  printf("\n******请输入新的性别----");  scanf("%c",&stu1[i].sex);   break;
                case 4:  printf("\n******请输入新的年龄----");  scanf("%d",&stu1[i].age);   break;
                case 5:  printf("\n******请输入新的地址----");  scanf("%s",stu1[i].addre);  break;
              }
         p=fopen("stu_list.txt","wb");
         for(k=0;k<t;k++)
         fwrite(&stu1[k],sizeof(struct student_type),1,p);
         getchar();
         printf("\n您仍需要修改该学生其他的信息吗--------(y/n)");
         c2=getchar();
         }while(c2==('y')||c2==('Y'));
   fclose(p);
   printf("\n您仍需要修改其他的学生信息吗?\n");
   printf("\n输入 y 继续,输入 n 输出修改后的所有的学生信息---------(y/n)");
   getchar();
   scanf("%c",&c1);
  }while(c1=='y');
  printf("\n***********输出修改后的所有的学生信息*************\n");
   printall_after();
}
void delect()                 /************删除学生信息***********/
{
    int dele,i,j,t,flag;
    char c='y';
    FILE *f;
    printf("\n\n");
    f=fopen("stu_list.txt","rb");
  do
   {
     f=fopen("stu_list.txt","rb");
    printf("\n\n请输入所要删除的学生的学号(不要以0开头):----------------");
    scanf("%d",&dele);
    for(i=0;fread(&stu1[i],LEN,1,f)!=0;i++)
     {
       t=i+1;
       if(dele==stu1[i].num)
        {
           printf("\n**********************要删除的学生信息*********************\n");
           PRINT1; PRINT2;
           PRINT3; PRINT1;
        }
     }
    fclose(f);
    for(flag=1,i=0;flag&&i<t;i++)
      {
         if(dele==stu1[i].num)
        {

           for(j=i;j<t-1;j++)
          {
           stu1[j].num=stu1[j+1].num;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -