栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【无标题】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
 #include
#include
#define LEN sizeof(book)


typedef struct book //确认结构体
{

 char id[8];
 char name[31];
 char author[27];
 char publish[31];
 double price;

}book;

void Menu1();//标题函数

void Menu2();//菜单函数

void WriteToFile();//书籍信息输入的函数

void ReadFromFile();//显示所有信息的函数

void QueryFile();//书籍的查询函数

void ModifyFile();//书籍的修改函数

void DeletFile();//删除数据的函数
 int chengxv1()                                                                 //chengxv1
 {
	 int select;
 
 do 
 {
  Menu1();
  Menu2();
  scanf("%d", &select);
  switch (select)
  {
  case 1:
   WriteToFile();
   break;

  case 2:
   ReadFromFile();
   break;

  case 3:
   QueryFile();
   break;

  case 4:
   ModifyFile();
   break;

  case 5:
   DeletFile();
   break;

  default:
   printf("退出程序!");
   exit(0);
   break;
  }
 }while ((select == 1 || select == 2)||(select == 3|| select == 4)||( select == 5));

 return 0;
}//利用switch函数进行菜单的选择

void Menu1()
{
 printf("**********欢迎使用西京大学图书管理系统***********n");

}//标题函数1

void Menu2()
{
 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
 printf("tt1.录入图书ttn");
 printf("tt2.显示图书ttn");
 printf("tt3.查询图书ttn");
 printf("tt4.修改图书ttn");
 printf("tt5.删除图书ttn");
 printf("tt0.退出ttn");
 printf("tt输入你的操作:");

}//标题函数2

void WriteToFile()
{
 FILE *fp = NULL;
 book stu;
 char flag = 'y';
 fp = fopen("book1.dat", "ab+");//打开文件

 if (fp == NULL)
 {
  printf("文件打开失败!n");
  exit(1);//1表示在有错的方式退出程序
 }

 while ((flag == 'y' || flag == 'Y'))
 {
  system("cls");
  Menu1();

  printf("请输入图书id:");
  scanf("%s", stu.id);

  printf("请输入书名:");
  scanf("%s", stu.name);

  printf("请输入书籍作者:");
  scanf("%s", &stu.author);

  printf("请输入出版社:");
  scanf("%s", &stu.publish);

  printf("请输入价格:");
  scanf("%lf", &stu.price);


  fwrite(&stu, LEN, 1, fp);
  fflush(stdin);

  printf("继续输入吗?继续请输入y或Y:");
  getchar();
  scanf("%c", &flag);
 }
 
 fclose(fp);//关闭文件
 return;
}//图书添加的函数

void ReadFromFile()
{
 system("cls");
 Menu1();
 FILE *fp = NULL;
 book stu;
 fp = fopen("book1.dat", "rb");

 if (fp == NULL)
 {
  printf("文件打开失败");
  exit(1);
 }
 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
 printf("         idtt书名tt作者n");

 fseek(fp, 0, SEEK_SET);

 while (!feof(fp))
 {
  if (fread(&stu, LEN, 1, fp))
  {
   printf("%10st%8stt%5sn", stu.id, stu.name, stu.author);
  }
 }

 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
 system("pause");
 system("cls");
 fclose(fp);
 return;
}

void QueryFile()
{
 system("cls");
 Menu1();
 book stu;
 char x[8];
 int flag = 0;
 FILE *fp;

 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
 printf("tt请输入图书id:");
 scanf("%s", x);
 printf("  ID  书名    作者     出版社     价格n");

 fp = fopen("book1.dat", "rb");

 if (fp == NULL)
 {
  printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
  printf("错误n");
  printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
  return;
 }
 
 fseek(fp, 0, SEEK_SET);
 while (fread(&stu, LEN, 1, fp))
 {

  if (strcmp(x, stu.id) == 0)
  {
   printf("%3s  %5s  %5s    %10s %5.2lfn", stu.id, stu.name, stu.author, stu.publish, stu.price);
   flag = 1;
  }

  if (flag = 0)
  {
   printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
   printf("没有图书信息");
   printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
  }
 }

 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
 fclose(fp);
 system("pause");
 system("cls");
 return;
}

void ModifyFile()
{
 system("cls");
 Menu1();
 book stu;
 FILE *fp;
 char x[8];

 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
 printf("请输入图书id:");
 scanf("%s", x);

 fp = fopen("book1.dat", "rb+");

 if (fp == NULL)
 {
  printf("文件打开失败");
  exit(1);
 }

 fseek(fp, 0, SEEK_SET);
 while (fread(&stu, LEN, 1, fp))
 {

  if (strcmp(x, stu.id) == 0)
  {
   printf("请重新输入图书id:   ");
   scanf("%s", stu.id);

   printf("请重新输入书名:    ");
   scanf("%s", stu.name);

   printf("请重新输入书籍作者  : ");
   scanf("%s", &stu.author);

   printf("请重新输入图书出版社  : ");
   scanf("%s", &stu.publish);

   printf("请重新输入图书价格 :   ");
   scanf("%lf", &stu.price);
   printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
   fflush(stdin);
   fseek(fp, 0-LEN, SEEK_CUR);
   fwrite(&stu, LEN, 1, fp);
   fclose(fp);
  }

  if (feof(fp))
  {
   printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
   printf("没有图书信息");
   printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n");
  }

 }

 system("pause");
 system("cls");
 return;
}

void DeletFile()
{
 system("cls");
 Menu1();
 book s;
 FILE* fp;
 char a[10];
 fp = fopen("book1.dat", "rb+");

 if (fp == NULL)
 {
  printf("打开文件错误!!!n");
  exit(1);
 }

 printf("n请输入图书ID:");
 scanf("%s", a);
 printf("nttt删除成功n");

 fseek(fp, 0, SEEK_SET);
 FILE* fp1;
 fp1 = fopen("linshi.dat", "ab+");//读写新建一个临时文件

 while (fread(&s, LEN, 1, fp))//从原文件读一个结点
 {
  if (strcmp(a, s.id) != 0)//不是要删除的内容
  {
   fwrite(&s, LEN, 1, fp1);
  }
 }

 fclose(fp);
 fclose(fp1);
 remove("book1.dat");//删除原文件
 rename("linshi.dat", "book1.dat");//重命名为原文件

 fflush(stdin);
 system("pause");
 system("cls");
 return;
}
#define _CRT_SECURE_NO_WARNINGS
#define MAX_PERSON 1000
typedef struct Person
{
	char name[1024];
	char tel[1024];
}
Person;
typedef struct AddressBook 
{    
Person persons[MAX_PERSON];
int size;
}
AddressBook;
void init(AddressBook* addressbook)
{  
	addressbook->size = 0;
}
void addPerson(AddressBook* addressbook)
{
	printf("新增借书学生n");
	int cursize = addressbook->size;
	if (cursize >= MAX_PERSON) 
	{
		printf("名单已满,增加失败!n");
    }    Person* p = &addressbook->persons[cursize];
	printf("请输入学生姓名:");
	scanf("%s", p->name);
	printf("请输入学生电话:");
	scanf("%s", p->tel);
	printf("新增借书学生成功!n");
    addressbook->size++;
}
void findPerson(AddressBook* addressbook)
{
	printf("按照姓名查找借书学生n");
	printf("请输入要查找的姓名: ");
	char name[1024] = { 0 };
	scanf("%s", name);
	for (int i = 0; i < addressbook->size; i++) 
	{        Person* p = &addressbook->persons[i];
	if (strcmp(name, p->name) == 0)
	{
		printf("[%d]tt%stt%sn", i, p->name, p->tel); 
	} 
	}
	printf("查找完成!n");
}
void delPerson(AddressBook* addressbook)
{
	printf("删除借书学生n");
	printf("请输入要删除的借书学生的编号: ");
	int id = 0;scanf("%d", &id);
	if (id < 0 || id >= addressbook->size) 
	{
		printf("您输入的编号有误!n");
		return;
    }
	if (id == addressbook->size - 1) 
	{
		addressbook->size--;printf("删除成功!n");
		return;
    }
    addressbook->persons[id] = addressbook->persons[addressbook->size - 1]; 
	addressbook->size--;printf("删除成功!n");
}
void updatePerson(AddressBook* addressbook)
{
	printf("更新联系人n");printf("请输入要更新的联系人的编号: ");
	int id = 0;
	scanf("%d", &id);
	if (id < 0 || id >= addressbook->size) 
	{
		printf("您输入的编号有误!n");
		return;
    }
    Person* p = &addressbook->persons[id];
	printf("请输入学生姓名:");
	scanf("%s", p->name);
	printf("请输入学生电话:");
	scanf("%s", p->tel);
	printf("更新借书学生成功!n");
}
void printPerson(AddressBook* addressbook)
{
	printf("查所有借书学生:n");
	for (int i = 0; i < addressbook->size;i++)
	{
        Person* p = &addressbook->persons[i];
		printf("[%d]tt%stt%sn", i, p->name, p->tel);
    }
	printf("共计 [%d] 条记录n", addressbook->size);
}
void clearPerson(AddressBook* addressbook) 
{
	for (int i = 0; i < addressbook->size; i++)
	{
        addressbook->size--;
		if (addressbook->size == 0) 
		{
			break;
        } 
}printf("清空成功n");}
void sortPerson(AddressBook* addressbook)
{
	if (addressbook->size <= 0) 
	{
		printf("名单没有联系人,请添加!n");   
	}
	int i = 0;
	int j = 0;
	for (i = 0; i < addressbook->size - 1; i++)  
	{
		for (j = 0; j < addressbook->size - i - 1; j++)   
		{
			if (strcmp(addressbook->persons[j].name, (addressbook->persons[j + 1]).name) > 0)  
			{ 
				Person tmp = addressbook->persons[j]; 
				addressbook->persons[j] = addressbook->persons[j + 1]; 
				addressbook->persons[j + 1] = tmp;       
			}     
		}printf("排序成功!n");  
	}
}

int menu() 
{
printf("=====================n");
printf(" 1. 新增借书学生n");
printf(" 2. 查找借书学生n");
printf(" 3. 删除借书学生n");
printf(" 4. 修改借书学生n");
printf(" 5. 查看所有借书学生n");
printf(" 6. 清空所有借书学生n");
printf(" 7. 以名字排序所有借书学生n");
printf(" 0. 退出n");
printf("=====================n");
printf(" 请输入您的选择:");
int choice = 0;scanf("%d", &choice);
return choice;
}
typedef void(*Func)(AddressBook*);
AddressBook addressbook;

int chengxv2()                                                           //chengxv2
{  


	Func funcs[] = {
		NULL,      
			addPerson, 
			findPerson,   
			delPerson, 
			updatePerson,
            printPerson,
            clearPerson,
			sortPerson,
    };
    init(&addressbook);
	while (1)
	{
	int choice = menu();
	if (choice == 0) 
	{
	printf("GoodBye!!!");
	break;
	}
	if (choice < 0 || choice>sizeof(funcs) / sizeof(funcs[0]))
	{
		printf("您的输入无效!n");
		continue;    
    }     
	funcs[choice](&addressbook);  
	}   
	system("pause");
	return 0;
}
void main()                                                             //main
{
    int a;


		char ch;
do{
	printf("nnnntt****&****&****&****&****&****&****&****&****&****");
	printf("nnnntt欢迎使用本系统!!!");
	printf("nnnntt******************************按任意键继续.....");
	ch=getchar();
	
	
	
	
}while(!ch);





printf("请选择程序序号n");
printf("1.图书管理系统n");
printf("2.借书学生统计系统n");
scanf("%d",&a);
switch(a)

{
case 1:   chengxv1();  break;
case 2:   chengxv2();  break;




default:			
	              printf("输入错误!!!n");
				  break;
}







}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号