IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 图书管理系统c/c++超级详细 -> 正文阅读

[C++知识库]图书管理系统c/c++超级详细

图书管理系统


可能会有点小bug但是不是很影响使用,用来练手或者应付期末考试应该足够了~~

结构`

void login();//登陆函数 
void out_put(int n);//输出菜单函数 
int input_class(struct Class *s,int num);//新建课程函数
void output_class(struct Class *s,int num);//浏览课程函数 
void find_class(struct Class *s,int num);//查询课程函数
void change_class(struct Class *s,int num);//修改课程函数 
void Change_class(struct Class *s,int i);//修改课程内容函数 
int delete_class(struct Class *s,int num);//删除课程函数
void sort_class(struct Class *s,int num);//排序课程函数
void into_class(struct Class *s,int num);//插入课程函数 
void swap(struct Class *a,struct Class *b);//结构体排序 
int read_class(struct Class *s);//读文件
void write_class(struct Class *s,int n);//写文件 

下面是正文共1.1k行代码

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <Windows.h>
#include <string.h>
using namespace std;
struct Class 
{
	char num[30];
	char name[30];
	char sex[10];
	int time;
	double score;
};
int flag_input=1;
void login();//登陆函数 
void out_put(int n);//输出菜单函数 
int input_class(struct Class *s,int num);//新建课程函数
void output_class(struct Class *s,int num);//浏览课程函数 
void find_class(struct Class *s,int num);//查询课程函数
void change_class(struct Class *s,int num);//修改课程函数 
void Change_class(struct Class *s,int i);//修改课程内容函数 
int delete_class(struct Class *s,int num);//删除课程函数
void sort_class(struct Class *s,int num);//排序课程函数
void into_class(struct Class *s,int num);//插入课程函数 
void swap(struct Class *a,struct Class *b);//结构体排序 
int read_class(struct Class *s);//读文件
void write_class(struct Class *s,int n);//写文件 

int main()
{
//	login();//登陆函数接口 
	struct Class s[200];
	int number=0;//记录课程总数量 
	char choice;
	while(1)
	{
		system("cls");
		out_put(2);
		cout<<"请输入你的选择"<<endl;
		cin>>choice;
		if(choice<'0'||choice>'7')
		{
			cout<<"你的输入有误,请重新输入"<<endl;
			system("pause");
		}
		else
		{
			switch(choice)
			{
				case '0':
						exit(0);
				case '1':
						number=read_class(s); 
						number+=input_class(s,number);
						flag_input=0;
						break;
				case '2':
						number=read_class(s);
						output_class(s,number);
						break;
				case '3':
						number=read_class(s);
						find_class(s,number);
						break;
				case '4':
						number=read_class(s);
						change_class(s,number);
						write_class(s,number);
						break;
				case '5':
						number=read_class(s);
						number-=delete_class(s,number);
						write_class(s,number);
						break;
				case '6':
						number=read_class(s);
						sort_class(s,number);
						write_class(s,number);
						break;
				case '7':
						number=read_class(s);
						into_class(s,number);
						break;
			}	
		} 
	} 
}
//登陆函数 
void login()
{
	while(1)
	{
		system("cls");
		out_put(1);
		char choice;
		cin>>choice;
		char key[20],code[20];
		strcpy(key,"1111111");
		strcpy(code,"1111");//账号密码初始化
		int key_num,code_num;//存放账号和密码的长度
		key_num=strlen(key);
		code_num=strlen(code);
		
		char user_num[20],user_passwd[20];
		int i;
		if(choice=='1')
		{
			for(i=3;i>0;i--)
			{
				cout<<"请输入不会超过11位的学号"<<endl;
				cin>>user_num;
				getchar();
				cout<<"请输入密码"<<endl;
				cin>>user_passwd;
				if((strcmp(user_num,key)!=0)&&(strcmp(user_passwd,code)!=0))
				{
					system("cls");
				if(i==1)
				{
					cout<<"输入错误次数已达3次,系统自动退出"<<endl;
					system("pause");
					exit(0);
				}
					cout<<"对不起,学号和密码都输入错误,还有"<<i-1<<"次机会,请重新输入"<<endl; 
				}
				else if((strlen(user_num)>11)||(strcmp(user_num,key)!=0))
				{
					system("cls");
				if(i==1)
				{
					cout<<"输入错误次数已达3次,系统自动退出"<<endl;
					system("pause");
					exit(0);
				}
					cout<<"对不起,学号输入错误,还有"<<i-1<<"次机会,请重新输入"<<endl; 
				}
				else if((strlen(user_passwd)>5)||(strcmp(user_passwd,code)!=0))
				{
					system("cls");
				if(i==1)
				{
					cout<<"输入错误次数已达3次,系统自动退出"<<endl;
					system("pause");
					exit(0);
				}
					cout<<"对不起,密码输入错误,还有"<<i-1<<"次机会,请重新输入"<<endl; 
				}
				else
				{
					system("cls");
					cout<<"输入正确,欢迎光临!!"<<endl;
					system("pause");
					return;//返回主函数 
				}
			}
		}
		else if(choice=='0')
		exit(0);
		else
		{
			cout<<"输入错误,请重新输入"<<endl;
			system("pause");
		}
	}
}
//新建课程函数
int input_class(struct Class *s,int num)
{
	FILE *file;
	int i=0;
	if((file=fopen("class.txt","a"))==NULL)
	{
		cout<<"打开文件失败!"<<endl;
		system("pause");
		exit(0);
	}
	int n=0;//记录单次录入的课程数
	int tmp=0;//总共的课程数,用于循环限制
	int class_num=0;//保存一共录入的课程数 
	while(1)
	{
		system("cls");
		class_num+=n;
		out_put(3);//输出菜单 
		char choice;
		cin>>choice;
		if(choice=='1')
		{
			cout<<"请输入你要新建的课程数"<<endl;
			scanf("%d",&n);
			class_num+=n;
			tmp=n+num;//总共的课程数,用于循环限制
			int flag=0;
			getchar();
			for(i=num;i<tmp;i++)
			{
				system("cls");
				printf("请输入第%d个课程的课程编号:",i+1-flag_input);
				gets(s[i].num);
				while(1)//课程编号查错 
				{
					if(strlen(s[i].num)<=10)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10位数以内的课程编号!"<<endl;
						printf("请输入第%d个课程的课程编号:",i+1-flag_input);
						gets(s[i].num);
					 } 
				}
				printf("请输入第%d个课程的课程名称:",i+1-flag_input);
				gets(s[i].name);
				while(1)//课程名称查错 
				{
					if(strlen(s[i].name)<=20)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10个字以内的课程名称!"<<endl;
						printf("请输入第%d个课程的课程名称:",i+1-flag_input);
						gets(s[i].name);
					 } 
				}
				printf("请输入第%d个课程的课程性质(必修/选修):",i+1-flag_input);
				gets(s[i].sex);
				while(1)//课程性质查错 
				{
					if((strcmp(s[i].sex,"必修")==0)||(strcmp(s[i].sex,"选修")==0))
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入必修或者选修!"<<endl;
						printf("请输入第%d个课程的课程性质:",i+1-flag_input);
						scanf("%s",s[i].sex);
					 } 
				}

				printf("请输入第%d个课程的课程总学时:",i+1-flag_input);
				scanf("%d",&s[i].time);
				while(1)
				{
					if(s[i].time>100||s[i].time<=0)
					{
						cout<<"你的输入有误,请输入0-100之间的一个整数"<<endl;
						printf("请输入第%d个课程的课程总学时:",i+1-flag_input);
						scanf("%d",&s[i].time);
					}
					else
					break;
				}
				printf("请输入第%d个课程的课程学分:",i+1-flag_input);
				scanf("%lf",&s[i].score);
				while(1)
				{
					if(s[i].score>5.0||s[i].score<=0.0)
					{
						cout<<"你的输入有误,请输入0-5之间的一个实数"<<endl;
						printf("请输入第%d个课程的课程学分:",i+1-flag_input);
						scanf("%lf",&s[i].score);
					}
					else
					break;
				}
				fprintf(file,"%s %s %s %d %lf\n",s[i].num,s[i].name,s[i].sex,s[i].time,s[i].score);
				system("pause");
				getchar();
			}
		}
		else if(choice =='0')
		{
			if(fclose(file))
			{
				cout<<"关闭文件失败!"<<endl;
				exit(0);
			}
		return class_num;
		}
		else
		{
			out_put(4);
		}
	}
}
//浏览课程函数
void output_class(struct Class *s,int num)
{
	system("cls");
	if(num==0)
	{
		cout<<"对不起,文件内暂无课程信息,请先新建课程!"<<endl;
		system("pause");
	}
	else
	printf("课程编号  课程名称  课程性质  总学时   学分\n");
	for(int i=0;i<num;i++)
	{
		printf("%s",s[i].num);
		printf("%10s",s[i].name);
		printf("%15s",s[i].sex);
		printf("     ");
		cout<<s[i].time;
		printf("%10.2f\n",s[i].score);
	}
	system("pause");
}
//查询课程函数
void find_class(struct Class *s,int num)
{
	while(1)
	{
		system("cls");
		out_put(5);
		char choice;
		cin>>choice;
		getchar();
		int flag;
		switch(choice)
		{
			case '1':
					flag=1;
					break;
			case '2':
					flag=2;
					break;
			case '0':
					return;
			default:
					out_put(4);
					break;
		 }
		 char name[20],number[20];
		 int flag_find=0;
		 if(flag==1)
		 {
		 	flag_find=2;
		 	cout<<"输入你所要查询的课程编码"<<endl;
		 	scanf("%s",number);
		 	for(int i=0;i<num;i++)
		 	{
		 		if(strcmp(number,s[i].num)==0)
		 		{
		 			if(flag_find==2)
		 			{
		 				cout<<"恭喜你,查询到了你想要的信息!"<<endl;
		 				out_put(6);
					}
						printf("%s",s[i].num);
						printf("%10s",s[i].name);
						printf("%15s",s[i].sex);
						printf("     ");
						cout<<s[i].time;
						printf("%10.2f\n",s[i].score);
						flag_find=1;
				}
			}
		if(flag_find==2)
		 {
		 	cout<<"并未找到课程编码为:"<<number<<"的课程"<<endl;
			system("pause");
		 }else
		system("pause");
		 }
		 else if(flag==2)
		 {
		 	flag_find=0;
		 	cout<<"输入你所要查询的课程名称"<<endl;
		 	scanf("%s",name);
		 	for(int i=0;i<num;i++)
		 	{
		 		if(strcmp(name,s[i].name)==0)
		 		{
		 			if(flag_find==0)
		 			{
		 				cout<<"恭喜你,查询到了你想要的信息!"<<endl;
		 				out_put(6);
					}
						printf("%s",s[i].num);
						printf("%10s",s[i].name);
						printf("%15s",s[i].sex);
						printf("     ");
						cout<<s[i].time;
						printf("%10.2f\n",s[i].score);
						flag_find=1;
				}
			}
			if(flag_find==0)
		 {
		 	cout<<"并未找到课程名称为:"<<name<<"的课程"<<endl;
			system("pause");
		 }else
		system("pause");
		  }
	}
}
//修改课程函数 
void change_class(struct Class *s,int num)
{
	while(1)
	{
		system("cls");
		out_put(7);
		char choice;
		cin>>choice;
		getchar();
		int flag;
		switch(choice)
		{
			case '1':
					flag=1;
					break;
			case '2':
					flag=2;
					break;
			case '0':
					return;
			default:
					out_put(4);
					break;
		 }
		 char name[20],number[20];
		 int flag_find=0;
		 if(flag==1)
		 {
		 	flag_find=2;
		 	cout<<"输入你所要修改的课程编码"<<endl;
		 	scanf("%s",number);
		 	for(int i=0;i<num;i++)
		 	{
		 		if(strcmp(number,s[i].num)==0)
		 		{
		 			if(flag_find==2)
		 			{
		 				cout<<"恭喜你,查询到了你想要修改的信息!"<<endl;
		 				out_put(6);
					}
						printf("%s",s[i].num);
						printf("%10s",s[i].name);
						printf("%15s",s[i].sex);
						printf("     ");
						cout<<s[i].time;
						printf("%10.2f\n",s[i].score);
						flag_find=1;
						Change_class(s,i); 			
				}
			}
		if(flag_find==2)
		 {
		 	cout<<"并未找到课程编码为:"<<number<<"的课程"<<endl;
			system("pause");
		 }else
		system("pause");
		 }
		 else if(flag==2)
		 {
		 	flag_find=0;
		 	cout<<"输入你想要修改的课程名称"<<endl;
		 	scanf("%s",name);
		 	for(int i=0;i<num;i++)
		 	{
		 		if(strcmp(name,s[i].name)==0)
		 		{
		 			if(flag_find==0)
		 			{
		 				cout<<"恭喜你,查询到了你想要修改的信息!"<<endl;
		 				out_put(6);
					}
						printf("%s",s[i].num);
						printf("%10s",s[i].name);
						printf("%15s",s[i].sex);
						printf("     ");
						cout<<s[i].time;
						printf("%10.2f\n",s[i].score);
						flag_find=1;
						Change_class(s,i);
				}
			}
			if(flag_find==0)
		 {
		 	cout<<"并未找到课程名称为:"<<name<<"的课程"<<endl;
			system("pause");
		 }else
		system("pause");
		  }
	}
}
//修改内容函数
void Change_class(struct Class *s,int i)
{
	int flag;
	while(1)
	{
		out_put(8);
		char choice;
		cin>>choice;
		getchar();
		if(choice >'6'||choice < '0')
		{
			out_put(4); 
		}else
		{
			switch(choice)
			{
				case '1':
					flag=1;
					break;
				case '2':
					flag=2;
					break;
				case '3':
					flag=3;
					break;
				case '4':
					flag=4;
					break;
				case '5':
					flag=5;
					break;
				case '0':
					return;
					break;
			}
		}
		if(flag==1)
		{
				printf("请输入修改后课程的课程编号:\n");
				gets(s[i].num);
				while(1)//课程编号查错 
				{
					if(strlen(s[i].num)<=10)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10位数以内的课程编号!"<<endl;
						printf("请输入第%d个课程的课程编号:",i+1-flag_input);
						gets(s[i].num);
					 } 
				}
		}else if(flag==2)
		{
			printf("请输入修改后课程的课程名称:");
				gets(s[i].name);
				while(1)//课程名称查错 
				{
					if(strlen(s[i].name)<=20)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10个字以内的课程名称!"<<endl;
						printf("请输入修改后课程的课程名称:");
						gets(s[i].name);
					 } 
				}
		}else if(flag==3)
		{
				printf("请输入修改后课程的课程性质(必修/选修):");
				gets(s[i].sex);
				while(1)//课程性质查错 
				{
					if((strcmp(s[i].sex,"必修")==0)||(strcmp(s[i].sex,"选修")==0))
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入必修或者选修!"<<endl;
						printf("请输入修改后课程的课程性质:");
						scanf("%s",s[i].sex);
					 } 
				}
		}else if(flag==4)
		{
				printf("请输入修改后课程的课程总学时:");
				scanf("%d",&s[i].time);
				while(1)
				{
					if(s[i].time>100||s[i].time<=0)
					{
						cout<<"你的输入有误,请输入0-100之间的一个整数"<<endl;
						printf("请输入修改后课程的课程总学时:");
						scanf("%d",&s[i].time);
					}
					else
					break;
				}
		}else if(flag==5)
		{
				printf("请输入修改后课程的课程学分:");
				scanf("%lf",&s[i].score);
				while(1)
				{
					if(s[i].score>5||s[i].score<=0)
					{
						cout<<"你的输入有误,请输入0-5之间的一个实数"<<endl;
						printf("请输入修改后课程的课程总学时:");
						scanf("%lf",&s[i].score);
					}
					else
					break;
				}
		}
}
} 
//删除课程函数
int delete_class(struct Class *s,int num)
{
	int count=0;
	while(1)
	{
		system("cls");
		out_put(9);
		char choice;
		int flag=0;
		switch(choice)
		{
			case '1':
					flag=1;
					break;
			case '2':
					flag=2;
					break;
			case '0':
					return count;
					break;
			default :
					out_put(4);
					break;
		 }
		 char name[30],number[30];
		 int flag_delete=0;
		 if(flag==1)
		 {
		 	flag_delete=0;
		 	cout<<"输入你要删除的课程编号:"; 
		 	cin>>number;
		 	for(int i=0;i<num;i++)
		 	{
		 		if(strcmp(number,s[i].num)==0)
		 		{
		 			count++;
		 			if(flag_delete==0)
		 			{
		 						printf("课程编号  课程名称  课程性质  总学时   学分\n");
		 						printf("%s",s[i].num);
								printf("%10s",s[i].name);
								printf("%15s",s[i].sex);
								printf("     ");
								cout<<s[i].time;
								printf("%10.2f\n",s[i].score);
								flag_delete=1;
								for(int m=i;m<num-1;m++)
								s[m]=s[m+1];
					 }
				 }
			 }
			 if(flag_delete==1)
			 {
			 	cout<<"恭喜你删除成功!"<<endl;
			 	system("pause");
			 }
		 }else if(flag==2)
		 {
			flag_delete=2;
		 	cout<<"输入你要删除的课程名称:"; 
		 	cin>>name;
		 	for(int i=0;i<num;i++)
		 	{
		 		if(strcmp(name,s[i].name)==0)
		 		{
		 			count++;
		 			if(flag_delete==2)
		 			{
		 						printf("课程编号  课程名称  课程性质  总学时   学分\n");
		 						printf("%s",s[i].num);
								printf("%10s",s[i].name);
								printf("%15s",s[i].sex);
								printf("     ");
								cout<<s[i].time;
								printf("%10.2f\n",s[i].score);
								flag_delete=1;
								for(int m=i;m<num-1;m++)
								s[m]=s[m+1];
					 }
				 }
			 }
			 if(flag_delete==1)
			 {
			 	cout<<"恭喜你删除成功!"<<endl;
			 	system("pause");
			 }
		 }
		 if(flag==1||flag==2)
		 {
		 	if(flag_delete==0)
		 	{
		 	cout<<"并未找到课程编码为:"<<number<<"的课程"<<endl;
			system("pause");
			 }
			 else if(flag_delete==2)
			 {
		 	cout<<"并未找到课程名称为:"<<name<<"的课程"<<endl;
			system("pause");
			 }
		  } 
	}
}
//排序课程函数
void sort_class(struct Class *s,int num)
{
	while(1)
	{
		system("cls");
		out_put(10);
		char choice;
		int flag;
		cin>>choice;
		if(choice>'2'||choice < '0')
		{
			out_put(4);
		 }else
		 {
		 	switch(choice)
		 	{
		 		case '1':
		 			flag=1;
		 			break;
		 		case '2':
		 			flag=2;
		 			break;
		 		case '0':
		 			flag=0;
		 			break;
			 }
		 }
		 if(flag==1)
		 {
		 	for(int i=0;i<num-1;i++)
		 	for(int j=0;j<num-1;j++)
		 	if(strcmp(s[j].num,s[j+1].num)>0)
		 	swap(s[j],s[j+1]);
		 }else if(flag==2)
		 {
		 	for(int i=0;i<num-1;i++)
		 	for(int j=0;j<num-1;j++)
		 	if(strcmp(s[j].name,s[j+1].name)>0)
		 	swap(s[j],s[j+1]);	
		 }else if(flag==0)
		 {
		 	write_class(s,num);
		 	cout<<"成功退出排序菜单!"<<endl;
		 	system("pause");
		 	return;
		 }
	}
}
//结构体排序 
void swap(struct Class *a,struct Class *b)
{
	struct Class *tmp;
	tmp=b;
	b=a;
	a=tmp;
}
//插入课程函数 
void into_class(struct Class *s,int num)
{
	struct Class tmp;
	char choice;
	int flag;
	while(1)
	{
		out_put(11);
		cin>>choice;
		if(choice>'2'||choice < '0')
		{
			out_put(4);
		}else
		{
		switch(choice)
		 	{
		 		case '1':
		 			flag=1;
		 			break;
		 		case '2':
		 			flag=2;
		 			break;
		 		case '0':
		 			flag=0;
		 			break;
			 }
		 }
		if(flag==1)
		{
		 	cout<<"请输入要插入的课程!"<<endl;
				printf("请输入课程编号:");
				gets(tmp.num);
				while(1)//课程编号查错 
				{
					if(strlen(tmp.num)<=10)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10位数以内的课程编号!"<<endl;
						printf("请输入课程编号:");
						gets(tmp.num);
					 } 
				}
				printf("请输入课程名称:");
				gets(tmp.name);
				while(1)//课程名称查错 
				{
					if(strlen(tmp.name)<=20)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10个字以内的课程名称!"<<endl;
						printf("请输入课程名称:");
						gets(tmp.name);
					 } 
				}
				printf("请输入课程性质(必修/选修):");
				gets(tmp.sex);
				while(1)//课程性质查错 
				{
					if((strcmp(tmp.sex,"必修")==0)||(strcmp(tmp.sex,"选修")==0))
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入必修或者选修!"<<endl;
						printf("请输入课程性质:");
						scanf("%s",tmp.sex);
					 } 
				}

				printf("请输入课程总学时:");
				scanf("%d",&tmp.time);
				while(1)
				{
					if(tmp.time>100||tmp.time<=0)
					{
						cout<<"你的输入有误,请输入0-100之间的一个整数"<<endl;
						printf("请输入课程总学时:");
						scanf("%d",&tmp.time);
					}
					else
					break;
				}
				printf("请输入课程学分:");
				scanf("%lf",&tmp.score);
				while(1)
				{
					if(tmp.score>5.0||tmp.score<=0.0)
					{
						cout<<"你的输入有误,请输入0-5之间的一个实数"<<endl;
						printf("请输入课程学分:");
						scanf("%lf",&tmp.score);
					}
					else
					break;
				}
		s[num+1]=tmp;
		for(int i=0;i<num;i++)
	 	for(int j=0;j<num;j++)
	 	if(strcmp(s[j].num,s[j+1].num)>0)
		swap(s[j],s[j+1]);
		}else if(flag==2)
		{
		 	cout<<"请输入要插入的课程!"<<endl;
				printf("请输入课程编号:");
				gets(tmp.num);
				while(1)//课程编号查错 
				{
					if(strlen(tmp.num)<=10)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10位数以内的课程编号!"<<endl;
						printf("请输入课程编号:");
						gets(tmp.num);
					 } 
				}
				printf("请输入课程名称:");
				gets(tmp.name);
				while(1)//课程名称查错 
				{
					if(strlen(tmp.name)<=20)
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入10个字以内的课程名称!"<<endl;
						printf("请输入课程名称:");
						gets(tmp.name);
					 } 
				}
				printf("请输入课程性质(必修/选修):");
				gets(tmp.sex);
				while(1)//课程性质查错 
				{
					if((strcmp(tmp.sex,"必修")==0)||(strcmp(tmp.sex,"选修")==0))
					{
						break;
					}
					else
					{
						cout<<"你的输入有误,请输入必修或者选修!"<<endl;
						printf("请输入课程性质:");
						scanf("%s",tmp.sex);
					 } 
				}

				printf("请输入课程总学时:");
				scanf("%d",&tmp.time);
				while(1)
				{
					if(tmp.time>100||tmp.time<=0)
					{
						cout<<"你的输入有误,请输入0-100之间的一个整数"<<endl;
						printf("请输入课程总学时:");
						scanf("%d",&tmp.time);
					}
					else
					break;
				}
				printf("请输入课程学分:");
				scanf("%lf",&tmp.score);
				while(1)
				{
					if(tmp.score>5.0||tmp.score<=0.0)
					{
						cout<<"你的输入有误,请输入0-5之间的一个实数"<<endl;
						printf("请输入课程学分:");
						scanf("%lf",&tmp.score);
					}
					else
					break;
				}
		s[num+1]=tmp;
		for(int i=0;i<num;i++)
	 	for(int j=0;j<num;j++)
	 	if(strcmp(s[j].name,s[j+1].name)>0)
		swap(s[j],s[j+1]);
		}
		else if(flag==0)
		{
		 	write_class(s,num);
		 	cout<<"成功退出插入菜单!"<<endl;
		 	system("pause");
		 	return;	
		}
	}
}
//读文件
int read_class(struct Class *s)
{
	FILE *file;
	int i=0;
	if((file=fopen("class.txt","r"))==NULL)
	{
		cout<<"打开文件失败!"<<endl;
		system("pause");
		exit(0);
	}
	while(!feof(file))
	{
		fscanf(file,"%s %s %s %d %lf\n",s[i].num,s[i].name,s[i].sex,&s[i].time,&s[i].score);
		i++;
	}
	if(fclose(file))
	{
		cout<<"关闭文件失败!"<<endl;
		system("pause");
		exit(0);
	}
	return i;
} 
//写文件 
void write_class(struct Class *s,int n)
{
	FILE *file;
	int i=0;
	if((file=fopen("class.txt","w"))==NULL)
	{
		cout<<"打开文件失败!"<<endl;
		system("pause");
		exit(0);
	}
	for(i=0;i<n;i++)
	{
		fprintf(file,"%s %s %s %d %lf\n",s[i].num,s[i].name,s[i].sex,s[i].time,s[i].score);
	}
	if(fclose(file))
	{
		cout<<"关闭文件失败!"<<endl;
		system("pause");
		exit(0);
	}
} 
//输出菜单函数 
void out_put(int n)
{
	if(n==1)
	{
		cout<<"欢迎来到课程管理模拟系统"<<endl;
		cout<<"************************"<<endl;
		cout<<"1---------------用户登陆"<<endl;
		cout<<"0---------------退出系统"<<endl;
		cout<<"************************"<<endl;		
	}
	else if(n==2)
	{
		cout<<"*********主菜单*********"<<endl;
		cout<<"1------------新建课程"<<endl;
		cout<<"2------------浏览课程"<<endl;
		cout<<"3------------查询课程"<<endl;
		cout<<"4------------修改课程"<<endl;
		cout<<"5------------删除课程"<<endl;
		cout<<"6------------课程排序"<<endl;
		cout<<"7------------插入课程"<<endl;
		cout<<"0------------退出系统"<<endl;
		cout<<"************************"<<endl;	
	}else if(n==3)
	{
		cout<<"******新建课程菜单******"<<endl;
		cout<<"1------------新建课程"<<endl;
		cout<<"0------------退出系统"<<endl;
		cout<<"************************"<<endl;	
	}else if(n==4)
	{
			cout<<"输入错误,请重新输入"<<endl;
			system("pause");
	}else if(n==5)
	{
		cout<<"******查询课程菜单******"<<endl;
		cout<<"1----按照课程编码查询"<<endl;
		cout<<"2----按照课程名称查询"<<endl;
		cout<<"0----退出查询课程菜单"<<endl;
		cout<<"************************"<<endl;
	}else if(n==6)
	{
		printf("课程编号  课程名称  课程性质  总学时   学分\n");
	}else if(n==7)
	{
		cout<<"******修改课程菜单******"<<endl;
		cout<<"1----按照课程编码修改"<<endl;
		cout<<"2----按照课程名称修改"<<endl;
		cout<<"0----退出修改课程菜单"<<endl;
		cout<<"************************"<<endl;
	}
	else if(n==8)
	{
		cout<<"******修改内容菜单******"<<endl;
		cout<<"1--------修改课程编号"<<endl;
		cout<<"2--------修改课程名称"<<endl;
		cout<<"3--------修改课程性质"<<endl;
		cout<<"4--------修改课程学时"<<endl;
		cout<<"5--------修改课程学分"<<endl;
		cout<<"0----退出修改内容菜单"<<endl;
		cout<<"************************"<<endl;	
	}else if(n==9)
	{
		cout<<"******删除课程菜单******"<<endl;
		cout<<"1----按照课程编号删除"<<endl;
		cout<<"2----按照课程名称删除"<<endl;
		cout<<"0----退出删除课程菜单"<<endl;
		cout<<"************************"<<endl;	
	}else if(n==10)
	{
		cout<<"******课程排序菜单******"<<endl;
		cout<<"1----按照课程编号排序"<<endl;
		cout<<"2----按照课程名称排序"<<endl;
		cout<<"0----退出排序课程菜单"<<endl;
		cout<<"************************"<<endl;
	}else if(n==11)
	{
		cout<<"******课程插入菜单******"<<endl;
		cout<<"1----按照课程编号插入"<<endl;
		cout<<"2----按照课程名称插入"<<endl;
		cout<<"0----退出插入课程菜单"<<endl;
		cout<<"************************"<<endl;
	}
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:09:57  更:2021-09-02 11:12:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:47:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码