联系方式

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

您当前位置:首页 >> C/C++编程C/C++编程

日期:2018-06-16 11:45


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>


struct record

{

char name[10];

   char age[10];

char sex[5];  

   char number[30];

int Math;

int English;

int program;

int sum;

int aver;

}contact[500];

struct record temp;

int NO=0;

FILE *fp,*fp2;

void mainmenu();                     //主菜单

void newrecord();                    //新建菜单

void browsemenu();                   //浏览菜单

void sort();                         //按学号排序(降序)

void searchmenu();                   //查找菜单

void searchname();                   //按姓名查找

void searchnumber();                 //按学号查找

void modifymenu();                   //修改菜单

void savefile();

void read_NO();

void over();


void main()

{

printf("\n\t\t      :)欢迎使用通讯录管理系统beta");

   printf("\n\t\t文件导入中……请稍后……\n\n\n\n\n");

   system("cls");


   while (1)

{

mainmenu();

}

}


void mainmenu()                    //主菜单

{

char choice;

   system("cls");

   printf("\n\n") ;

 

   printf("\n\t\t请选择(1-6):");

   choice=getch();

   switch (choice)

{

case '1':newrecord();break;

   case '2':browsemenu();break;

   case '3':searchmenu();break;

   case '4':modifymenu();break;

   case '5':sort();break;

   case '6':exit(0);

   default:mainmenu();

}

}


void newrecord()                    //新建菜单

{

printf("\n\t\t**************** 请输入学生信息 ****************\n");

if((fp=fopen("contact.txt","r"))==0)

{

fp=fopen("contact.txt","w");

fclose(fp);

fp2=fopen("NO.txt","w");

NO=0;

fprintf(fp2,"NO=%d",NO);

fclose(fp2);

}

read_NO();

   {

printf("\n\t输入姓名:    年龄:    性别:     学号:\n");

   scanf("%s%s%s%s",&contact[NO].name,&contact[NO].age,&contact[NO].sex,&contact[NO].number);

   printf("\n\t高数成绩:    英语成绩:    C语言成绩:\n");

scanf("%d%d%d",&contact[NO].Math,&contact[NO].English,&contact[NO].program);

   contact[NO].sum=contact[NO].English+contact[NO].Math+contact[NO].program;

   contact[NO].aver=contact[NO].sum/3;

}

savefile();  

   printf("\n\t\t是否继续添加?(y/n):");

   if (getch()=='y')

newrecord();

   mainmenu();

}



void sort(int c)

{int i,j,n;

printf("按学号排序按1\n");

scanf("%d",&n);      

  while(n==1)

  {c=c-1;        

  for(i=c;i>0;i--)

       {

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

           {

               if(contact[j].number>contact[j+1].number)

               {

                   temp.number=contact[j].number;

                   strcpy(temp.name,contact[j].name);

                   temp.age=contact[j].age;

                   temp.sex=contact[j].sex;

                   temp.English=contact[j].English;

                   temp.Math=contact[j].Math;

                   temp.program=contact[j].program;

                   temp.sum=contact[j].sum;

                   temp.aver=contact[j].aver;


                   contact[j].number=contact[j+1].number;

                   strcpy(contact[j].name,contact[j+1].name);

                   contact[j].age=contact[j+1].age;

contact[j].sex=contact[j+1].sex;

                   contact[j].English=contact[j+1].English;

                   contact[j].Math=contact[j+1].Math;

                   contact[j].program=contact[j+1].program;

                   contact[j].sum=contact[j+1].sum;

                   contact[j].aver=contact[j+1].aver;

               

                   contact[j+1].number=temp.number;

                   strcpy(contact[j+1].name,temp.name);

                   contact[j+1].age=temp.age;

contact[j+1].sex=temp.sex;

                   contact[j+1].English=temp.English;

                   contact[j+1].Math=temp.Math;

contact[j+1].program=temp.program;

                   contact[j+1].sum=temp.sum;

                   contact[j+1].aver=temp.aver;                    

               }

           }

       }

  }

}



void browsemenu()                   //浏览菜单

{

int i;

   system("cls");

read_NO();

fp=fopen("contact.txt","r");

if(fp==0)

{

printf("\n\n\n\n\n\t\t\t    电话簿文件不存在");

over();

}

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

fscanf(fp,"姓名:%s\n年龄:%s\n性别:%s\n学号:%s\n高数:%d\n英语:%d\n编程:%d\n总分:%d\n平均分:%d\n\n",&contact[i].name,&contact[i].age,&contact[i].sex,&contact[i].number,&contact[i].Math,&contact[i].English,&contact[i].program,&contact[i].sum,&contact[i].aver);

fclose(fp);

   if(NO!=0)

{

printf("\t\t*************** 以下为学生所有信息**************\n");

       printf("\n╔═══╦══╦══╦══════╦══╦══╦═══╦═══╦═══╗\n");

printf("║姓名  ║年龄║性别║学号        ║高数║英语║C语言 ║总分  ║平均分║\n");

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

{

printf("╠═══╬══╬══╬══════╬══╬══╬═══╬═══╬═══╣\n");

   printf("║%-6s║%-4s║%-4s║%-12s║%-4d║%-4d║%-6d║%-6d║%-6d║\n",contact[i].name,contact[i].age,contact[i].sex,contact[i].number,contact[i].Math,contact[i].English,contact[i].program,contact[i].sum,contact[i].aver);

}

printf("╚═══╩══╩══╩══════╩══╩══╩═══╩═══╩═══╝\n");

printf("\t\t************************************************");

}

else

printf("\n\t\t☆学生信息中无任何纪录☆");

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

   getch();

   return;


}




































void searchmenu()                   //查找菜单

{

char choice;

   system("cls");

   printf("\n\t\t******************* 查找菜单 *******************");

   printf("\n\t\t*************** ☆1 .按姓名查找 *****************");

printf("\n\t\t*************** ☆2 .按学号查找 *****************");

   printf("\n\t\t*************** ☆3 .返回主菜单 *****************");

   printf("\n\t\t************************************************");

   printf("\n\t\t请选择:");

   choice=getche();

   switch (choice)

{

case '1':searchname();break;

case '2':searchnumber();break;

   case '3':mainmenu();break;

}

}


void searchname()                   //按姓名查找

{

int mark=0;

   int i;

   char name[20];

   printf("\n\t\t***************** 按姓名查找 *******************");

   printf("\n\t\t请输入学生姓名:");

   scanf("%s",name);

read_NO();

fp=fopen("contact.txt","r");

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

{

fscanf(fp,"姓名:%s\n年龄:%s\n性别:%s\n学号:%s\n高数:%d\n英语:%d\nC语言:%d\n\n",&contact[i].name,&contact[i].age,&contact[i].sex,&contact[i].number,&contact[i].Math,&contact[i].English,&contact[i].program);

if (strcmp(contact[i].name,name)==0)

{

printf("\n\t\t************ 以下是您查找的学生信息 **********");

           printf("\n\t\t姓    名: %s",contact[i].name);

           printf("\n\t\t年    龄: %s",contact[i].age);

           printf("\n\t\t性    别: %s",contact[i].sex);

           printf("\n\t\t学    号: %s",contact[i].number);

   printf("\n\t\t高数成绩: %d",contact[i].Math);

printf("\n\t\t英语成绩: %d",contact[i].English);

printf("\n\t\tC语言成绩: %d",contact[i].program);

           printf("\n\t\t************************************************");

mark++;

}

}

fclose(fp);

if(mark==0)

printf("\n\t\t没有该姓名的学生纪录");

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

   getch();

   return;

}


void searchnumber()                  //按学号查找

{

int mark=0;

   int i;  

   char number[30];

   printf("\n\t\t****************** 按学号查找 ******************");

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

   scanf("%s",&number);

read_NO();

fp=fopen("contact.txt","r");

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

{

fscanf(fp,"姓名:%s\n年龄:%s\n性别:%s\n学号:%s\n高数:%d\n英语:%d\nC语言:%d\n\n",&contact[i].name,&contact[i].age,&contact[i].sex,&contact[i].number,&contact[i].Math,&contact[i].English,&contact[i].program);

if (strcmp(contact[i].number,number)==0)

{

printf("\n\t\t************ 以下是您查找的学生信息 **********");

           printf("\n\t\t姓    名: %s",contact[i].name);

           printf("\n\t\t年    龄: %s",contact[i].age);

           printf("\n\t\t性    别: %s",contact[i].sex);

           printf("\n\t\t学    号: %s",contact[i].number);

printf("\n\t\t高数成绩: %d",contact[i].Math);

printf("\n\t\t英语成绩: %d",contact[i].English);

printf("\n\t\tC语言成绩: %d",contact[i].program);

           printf("\n\t\t************************************************");

mark++;

}

}

fclose(fp);

if(mark==0)

printf("\n\t\t没有该姓名的学生纪录");

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

   getch();

   return;

}


void modifymenu()                   //修改菜单

{

int mark=0;

   int i,k;

   int t=0;

   char choice;

   char name[10];

   struct record modify;

   system("cls");

   printf("\n\t\t请输入您要修改的姓名:");

   scanf("%s",name);

read_NO();

fp=fopen("contact.txt","r+");

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

fscanf(fp,"姓名:%s\n年龄:%s\nsex:%s\n学号:%s\n高数:%d\n英语:%d\nC语言:%d\n\n",&contact[i].name,&contact[i].age,&contact[i].sex,&contact[i].number,&contact[i].Math,&contact[i].English,&contact[i].program);


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

{

if (strcmp(contact[i].name,name)==0)

{

k=i;mark=1;

           modify=contact[i];

           printf("\n\t\t********** 以下是您将修改的学生信息 **********");

           printf("\n\t\t姓    名: %s",contact[i].name);

           printf("\n\t\t年    龄: %s",contact[i].age);

           printf("\n\t\t性    别: %s",contact[i].sex);

           printf("\n\t\t学    号: %s",contact[i].number);

           printf("\n\t\t高数成绩: %d",contact[i].Math);

printf("\n\t\t英语成绩: %d",contact[i].English);

printf("\n\t\tC语言成绩: %d",contact[i].program);

           printf("\n\t\t是否继续?y/n");

           if(getch()=='n')

modifymenu();

           else

{

printf("\n\t\t选择您要修改的选项:");

               printf("\n\t\t\t(1).姓    名");

               printf("\n\t\t\t(2).年    龄");

           printf("\n\t\t\t(3).性    别");

           printf("\n\t\t\t(4).学    号");

printf("\n\t\t\t(5).高数成绩");

   printf("\n\t\t\t(6).英语成绩");

   printf("\n\t\t\t(7).C语言成绩");

               printf("\n\t\t\t(8).返    回");

               printf("\n\t\t请选择: ");

               choice=getch();

               switch(choice)

{

case '1': printf("姓    名:"); scanf("%s",contact[i].name); break;

               case '2': printf("年    龄:"); scanf("%s",contact[i].age); break;

               case '3': printf("性    别:"); scanf("%s",contact[i].sex); break;

               case '4': printf("学    号:"); scanf("%s",contact[i].number); break;

case '5': printf("高数成绩:"); scanf("%d",contact[i].Math);break;

case '6': printf("英语成绩:"); scanf("%d",contact[i].English);break;

case '7': printf("C语言成绩:"); scanf("%d",contact[i].program);break;

               case '8': mainmenu(); break;

               default: modifymenu();

}

printf("\n\t\t您的修改结果为:");

           printf("\n\t\t姓    名: %s",contact[i].name);

               printf("\n\t\t年    龄: %s",contact[i].age);

               printf("\n\t\t性    别: %s",contact[i].sex);

               printf("\n\t\t学    号: %s",contact[i].number);

printf("\n\t\t高数成绩: %d",contact[i].Math);

   printf("\n\t\t英语成绩: %d",contact[i].English);

   printf("\n\t\tC语言成绩: %d",contact[i].program);

               printf("\n\t\t确认修改?y/n");

           if(getch()=='n')

{

contact[i]=modify;

                   printf("\n\t\t修改未保存!");

}

           else

{

fclose(fp);

fp=fopen("contact.txt","w");

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

fprintf(fp,"姓名:%s\n年龄:%s\n性别:%s\n学号:%s\n高数:%d\n英语:%d\nC语言:%d\n\n",contact[i].name,contact[i].age,contact[i].sex,contact[i].number,contact[i].Math,contact[i].English,contact[i].program);

fclose(fp);

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

}

               printf("\n\t\t是否继续修改?(y/n)");

               if (getch()=='y')

modifymenu();

}

}

}

   if (mark==0)

{

printf("\n\t\t没有该学生的纪录");

       printf("\n\t\t是否继续修改?(y/n)");

       if (getch()=='y')

modifymenu();

}

   return;

}




void savefile()

{

int i;

  fp=fopen("contact.txt","a+");

fseek(fp,0,SEEK_END);

fprintf(fp,"姓名:%s\n年龄:%s\n性别:%s\n学号:%s\n高数:%d\n英语:%d\nC语言:%d\n\n",contact[NO].name,contact[NO].age,contact[NO].sex,contact[NO].number,contact[NO].Math,contact[NO].English,contact[NO].program);

fclose(fp);

NO++;

fp2=fopen("NO.txt","w");

fprintf(fp2,"NO=%d",NO);

fclose(fp2);

   printf("\n\t\t已成功保存至文件!\n");

}


void read_NO()

{

fp2=fopen("NO.txt","r");

if(fp2==NULL)

{

printf("\n\t\t对不起,文件中无任何纪录");

over();

}

fscanf(fp2,"NO=%d",&NO);

fclose(fp2);

}


void over()

{

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

getch();

mainmenu();

}


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

python代写
微信客服:codinghelp