猫史档案馆


c++教程第二期:弄一个简易题库

用户:IDF哲宇MIKEIDF哲宇MIKE查看:5 回复:5 评论:5 创建时间:2021-09-21T17:12:24


先放个万能头(要你说?是个人都知道......)

 

#include <bits/stdc++.h>

 

接下来就是我那乱七八糟的变量(也不知道你们能不能看得懂......)

 

struct p{
	int a;//a一共有多少题
	string b;//b是标题
}d[100005];
int f,g,h,l,m,ans,c[1005][1005],axs,axy,cxy[1005];//c是每题多少分
string e[1005][1005],ee[1005][1005],k,n,bxy,exy[1005],eexy[1005];//e是内容

 

接下来就是美化一下窗口

 

system("color f4");  //设置窗口的颜色(前景色和背景色)
system("title tanzi v-1");//设置窗口的标题
system("mode con:cols=100 lines=100");//设置窗口的大小

 

最重要的就是读入了

 

ifstream fin("D:/百度2.txt");

 

你觉得就只会有这一点?看下面

 

fin>>f;
	for(int i=0;i<f;i++){
		if(g==0){
			fin>>d[i].b;
			g++;
		} 
		if(g==1){
			fin>>d[i].a;
			for(int j=0;j<d[i].a;j++){
				fin>>e[i][j];
				fin>>ee[i][j];
				fin>>c[i][j];
			}
			g++;
		} 
		g=0;
	}

 

结束读入(不结束好像也没啥关系......)

 

fin.close();

 

那题库里的那些题目又是从哪来的呢?看下面

 

cout<<"请输入考卷名:";
		cin>>bxy;
		cout<<endl;
		cout<<"请输入共有几题:";
		cin>>axy;
		cout<<endl;
		for(int i=0;i<axy;i++){
			cout<<"第"<<i+1<<"道题"<<endl;
			cout<<"请输入题目:";
			cin>>exy[i];
			cout<<endl;
			cout<<"请输入答案:";
			cin>>eexy[i];
			cout<<endl;
			cout<<"请输入分数:";
			cin>>cxy[i];
			cout<<endl;
		}
		ofstream fout("D:/百度2.txt");
		f++;
		fout<<f<<" ";
		g=0;
		for(int i=0;i<f-1;i++){
			if(g==0){
			fout<<d[i].b<<" ";
			g++;
		}
		if(g==1){
			fout<<d[i].a<<" ";
			for(int j=0;j<d[i].a;j++){
				fout<<e[i][j]<<" ";
				fout<<ee[i][j]<<" ";
				fout<<c[i][j]<<" ";
			}
			g++;
		}
			g=0;
		}
		fout<<bxy<<" ";
		fout<<axy<<" ";
		for(int i=0;i<axy;i++){
			fout<<exy[i]<<" ";
			fout<<eexy[i]<<" ";
			fout<<cxy[i]<<" ";
		}
		fout.close();

 

接着下面就是完整的代码啦

 

#include <bits/stdc++.h>
using namespace std;
struct p{
	int a;//a一共有多少题
	string b;//b是标题
}d[100005];
int f,g,h,l,m,ans,c[1005][1005],axs,axy,cxy[1005];//c是每题多少分
string e[1005][1005],ee[1005][1005],k,n,bxy,exy[1005],eexy[1005];//e是内容
int main(){
	system("color f4");  //设置窗口的颜色(前景色和背景色)
    system("title tanzi v-1");//设置窗口的标题
    system("mode con:cols=100 lines=100");//设置窗口的大小
	ifstream fin("D:/百度2.txt");
	fin>>f;
	for(int i=0;i<f;i++){
		if(g==0){
			fin>>d[i].b;
			g++;
		} 
		if(g==1){
			fin>>d[i].a;
			for(int j=0;j<d[i].a;j++){
				fin>>e[i][j];
				fin>>ee[i][j];
				fin>>c[i][j];
			}
			g++;
		} 
		g=0;
	}
	fin.close();
	cout<<"请输入选择,1代表做题,2代表增加题库:";
	cin>>h;
	cout<<endl;
	if(h==1){
		cout<<"以下是考卷名:"<<endl; 
		for(int i=0;i<f;i++){
			cout<<d[i].b<<" ";
		}
		cout<<endl;
		cin>>k;
		cout<<endl;
		for(int i=0;i<f;i++){
			if(d[i].b==k){
				l++;
				m=i;
			}
		}
		if(l==0){
			cout<<"抱歉,题库里暂无此卷"<<endl;
		}else{
			for(int i=0;i<d[m].a;i++){
				cout<<"问题:"<<e[m][i]<<endl;
				cout<<"请输入你的答案:";
				cin>>n;
				cout<<endl;
				if(ee[m][i]==n){
					ans+=c[m][i];
				}
				axs+=c[m][i];
			}
			cout<<"你获得了"<<ans<<"分,总分共"<<axs<<"分";
		}
	}else if(h==2){
		cout<<"请输入考卷名:";
		cin>>bxy;
		cout<<endl;
		cout<<"请输入共有几题:";
		cin>>axy;
		cout<<endl;
		for(int i=0;i<axy;i++){
			cout<<"第"<<i+1<<"道题"<<endl;
			cout<<"请输入题目:";
			cin>>exy[i];
			cout<<endl;
			cout<<"请输入答案:";
			cin>>eexy[i];
			cout<<endl;
			cout<<"请输入分数:";
			cin>>cxy[i];
			cout<<endl;
		}
		ofstream fout("D:/百度2.txt");
		f++;
		fout<<f<<" ";
		g=0;
		for(int i=0;i<f-1;i++){
			if(g==0){
			fout<<d[i].b<<" ";
			g++;
		}
		if(g==1){
			fout<<d[i].a<<" ";
			for(int j=0;j<d[i].a;j++){
				fout<<e[i][j]<<" ";
				fout<<ee[i][j]<<" ";
				fout<<c[i][j]<<" ";
			}
			g++;
		}
			g=0;
		}
		fout<<bxy<<" ";
		fout<<axy<<" ";
		for(int i=0;i<axy;i++){
			fout<<exy[i]<<" ";
			fout<<eexy[i]<<" ";
			fout<<cxy[i]<<" ";
		}
		fout.close();
	}
	return 0;
}

不喜勿喷

不知道你们有没有学C++呢?

第一期:https://shequ.codemao.cn/community/401278


回复

上一页1 页 / 共 1下一页
IDF哲宇MIKEIDF哲宇MIKE

下一期:1+1小游戏

点赞0


评论


IDF哲宇MIKEIDF哲宇MIKE

顶顶

点赞0


评论


IDF哲宇MIKEIDF哲宇MIKE

顶顶顶

点赞0


评论


Forzen_SevenForzen_Seven

大哥你分区

点赞0


评论


xiongsinxiongsin

编译失败

 

8:8: error: size of 'e' 32320800 bytes exceeds maximum object size 5242880 [-Werror=larger-than=] 8 | string e[1005][1005],ee[1005][1005],k,n,bxy,exy[1005],eexy[1005];//e是内容 | ^ 8:22: error: size of 'ee' 32320800 bytes exceeds maximum object size 5242880 [-Werror=larger-than=] 8 | string e[1005][1005],ee[1005][1005],k,n,bxy,exy[1005],eexy[1005];//e是内容 | ^~ cc1plus: all warnings being treated as errors

 

代码编译错误,再检查一下吧

点赞1


评论