c语言学生成绩管理系统为什么只可以输入一个学生? 大约是因为程序员在编写代码时,将学生的成绩管理系统设置为只可以输入一个学生 。 C语言学生成绩管理系统? 想要它变成什么样,自...
成绩查询
大约是因为程序员在编写代码时,将学生的成绩管理系统设置为只可以输入一个学生 。
想要它变成什么样,自己做一下更改就是了:
#includeiostream
#includefstream
#include windows.h
#includestring
#include time.h
#includecstdlib
#includeiomanip
using namespace std;
int n=0;
#define M cout
#define N ;Sleep(80);
#define Y N M
#define NN cout"╭----------------------—╮"endl;cout"∣ num ∣ name∣ age ∣ hig ∣ 语文 ∣ 数学 ∣ 英语 ∣ 平均 ∣ 满分 ∣ 评语 ∣ "endl;cout"├-—-┼-—-┼-—┼-—┼-—-┼-—-┼-—-┼--—┼--┼-—-┤"endl;cout"∣"setw(6)p1-numsetw(3)"∣"setw(7)p1-namesetw(2)"∣"setw(4)p1-agesetw(4)"∣"setw(4)p1-higsetw(4)"∣"setw(5)p1-score[0]setw(4)"∣"setw(5)p1-score[1]setw(4)"∣"setw(5)p1-score[2]setw(4)"∣"setw(8)setprecision(3)p1-avesetw(4)"∣"setw(6)p1-sumsetw(4)"∣"setw(7)p1-p_ysetw(2)"∣"endl;cout"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ "endl;
////////////////////////////////////////////////////////////////////////////////////////////
////
////
////
////////////////////////////////////////////////////////////////////////////////////////////
class ji_ke_1_class
{
int num;
char name[20];
int age;
float hig;
int score[3];
float ave;
float sum;
char p_y[10];
public:
void set_date();
void display();
void creat();
void print();
void insert();
void exchange(ji_ke_1_class *p1,ji_ke_1_class *p2);
void sort(int j);
void index(int q,char aa[20]);
void del(int num);
void save();
void tongji();
void load();
class ji_ke_1_class *next;
};
ji_ke_1_class *head,*p1,*p2,*p;
void ji_ke_1_class::set_date ()
{
cout"学号_姓名_年龄_身高_"endl;
cinnumnameagehig;
cout"--成绩::语文_数学_英语_"endl" ";
for(int i=0;i3;i++)
cinscore[i] ;
}
void ji_ke_1_class::display()
{
ji_ke_1_class *p;
int i;
for( p=head , i=0 ; in ; i++ , p=p-next )
cout"∣"
setw(6)p-num
setw(3)"∣"
setw(7)p-name
setw(2)"∣"
setw(4)p-age
setw(4)"∣"
setw(4)p-hig
setw(4)"∣"
setw(5)p-score[0]
setw(4)"∣"
setw(5)p-score[1]
setw(4)"∣"
setw(5)p-score[2]
setw(4)"∣"
setw(8)setprecision(3)p-ave
setw(4)"∣"
setw(6)p-sum
setw(4)"∣"
setw(7)p-p_y
setw(2)"∣"
endl;
}
void ji_ke_1_class::print()
{
ji_ke_1_class *p0=head;
cout"╭----------------------—╮"endl;
cout"∣ num ∣ name∣ age ∣ hig ∣ 语文 ∣ 数学 ∣ 英语 ∣ 平均 ∣ 满分 ∣ 评语 ∣ "endl;
cout"├-—-┼-—-┼-—┼-—┼-—-┼-—-┼-—-┼--—┼--┼-—-┤"endl;
p0-display();
cout"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ "endl;
}
void ji_ke_1_class::creat()
{
int m=0;
float total=0;
head=p2=p1=new ji_ke_1_class;
p1-set_date();
while(p1-num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2-next=p1;
p2=p1;
p1=new ji_ke_1_class;
p1-set_date ();
}
p2-next=0;
ji_ke_1_class *p=new ji_ke_1_class;
for(p=head ; mn ; p=p-next )
{
total=total+p-score[0]+p-score[1]+p-score[2];
p-sum=total;
p-ave=total/3;
coutp-sum"--__"p-aveendl;
if(p-ave85) strcpy( p-p_y , "优秀" );
else if(p-ave75) strcpy( p-p_y , "中等" );
else if(p-ave60) strcpy( p-p_y , "及格" );
else strcpy( p-p_y , "不及格" );
total=0;
m+=1;
}
}
templatetypename T1
void exchang1(T1 a,T1 b)
{
int t;
t=a;
a=b;
b=t;
}
templatetypename T2
void exchang2(T2 a,T2 b)
{
float t;
t=a;
a=b;
b=t;
}
void ji_ke_1_class::exchange(ji_ke_1_class *p1,ji_ke_1_class *p2)
{
char t2[30],t1[10];
exchang1(p1-num,p2-num);
exchang1(p1-score[1],p2-score[1]);
exchang1(p1-score[0],p2-score[0]);
exchang1(p1-score[2],p2-score[2]);
exchang2(p1-hig,p2-hig);
exchang2(p1-ave,p2-ave);
exchang2(p1-sum,p2-sum);
strcpy(t2,p1-name);
strcpy(p1-name,p2-name);
strcpy(p2-name,t2);
strcpy(t1,p1-p_y );
strcpy(p1-p_y ,p2-p_y );
strcpy(p2-p_y ,t1);
}
void ji_ke_1_class::sort(int j)
{
ji_ke_1_class *p1,*p2;
int m,t;
coutendl;
for(p1=head , m=0 ; mn-1 ; m++ , p1=p1-next)
for(p2=p1-next,t=m+1 ; tn ; t++ , p2=p2-next)
{
if( (p1-num) (p2-num) j==1 ) exchange(p1,p2);
if( (p1-sum) (p2-sum) j==2 ) exchange(p1,p2);
}
print();
coutendl;
}
void ji_ke_1_class::del(int num)
{
ji_ke_1_class *p1,*p2;
if(head==0)
{
cout"list null!";
goto end1;
}
p1=head;
while(num!=p1-num p1-next!=0)
{
p2=p1;
p1=p1-next;
}
if(num==p1-num)
{
if(p1==head) head=p1-next;
else p2-next=p1-next;
cout"""祝贺你-deleted the:"numendlendl;
n=n-1;
}
else coutnum"抱歉-好像没有这个数吧!!""";
end1: ;
}
void ji_ke_1_class::insert()
{
float total;
ji_ke_1_class *pt=new ji_ke_1_class;
ji_ke_1_class *p0,*p1,*p2;
pt=new ji_ke_1_class;
pt-set_date();
total=0;
int i;
for(i=0;i3;i++)
total+=pt-score[i];
pt-sum=total;
pt-ave=total/3;
if(pt-ave85) strcpy( pt-p_y , "优秀" );
else if(pt-ave75) strcpy( pt-p_y , "中等" );
else if(pt-ave60) strcpy( pt-p_y , "及格" );
else strcpy( pt-p_y , "不及格" );
p1=head;
p0=pt;
if(head==0)
{
head=p0;
p0-next=0;
}
else
{
while( (p0-nump1-num)(p1-next!=0))
{
p2=p1;
p1=p1-next;
}
if(p0-num=p1-num)
{
if(head==p1) head=p0;
else p2-next=p0;
p0-next=p1;
}
else
{
p1-next=p0;
p0-next=0;
}
}
n=n+1;
}
void ji_ke_1_class::index(int q,char aa[20])
{
ji_ke_1_class *p1=head;
int m=0,j=0;
int len,flag=1;
int a[4];
for( m=0 ; mn ; p1=p1-next , m++ )
{
a[0]=0;a[1]=0;a[2]=0;a[3]=0;
flag=1;
a[0]=(int)( (p1-num)/1000 ); a[1]=(int)( (p1-num-a[0]*1000 )/100 );
a[2]=(int)( (p1-num-a[1]*100-a[0]*1000 )/10 ); a[3]=(int)( p1-num-a[1]*100-a[0]*1000-a[2]*10 );
for(int i=19 ; i=0 ; i-)
{
if(aa[i]!=0)
len=i+1;
}
int m[4],k=0,y=0,x=0,d=0;
for(k=0;k4;k++)
{
d=0;
y=(int)aa[k];
for(x=48;x=57;x++)
{
d++;
if(x==y) m[k]=(d-1);
}
}
for(j=0 ; j4 ; j++ )
{
if( a[j]!=m[j] )
flag=0;
}
if( flag==1 q==1 )
{
NN
break;
}
if( p1-name[0]==aa[0] p1-name[1]==aa[1] p1-name[2]==aa[2] q==2 )
{
NN
break;
}
}
if( m==n ) cout"no the student"endl;
}
int x[20];
string filename;
void ji_ke_1_class::save()
{
int d,d1=0;
int ii;
coutendl"请输入存储路径(建议存入现目前文件中的data_save中)(例 -绝对路径:C:\\\\文件名\\\\文件名\\\\数据名.dat "
" -相对路径:save\\\\数据名.dat; )"
endl
"路径为:";
string cc;
cincc;
cout" ╭-------╮"endl"已经在保存 ";
for(ii=0;ii15;ii++)
{
cout'\20';
Sleep(15);
}
ifstream file1("程序必用1.dat",ios::binary);
file1.read( (char *)d , sizeof(d) );
d1=(int)d+1;
file1.close();
string filename0,name_file;
filename0=cc;
name_file=filename0.c_str();
ofstream file2("程序必用1.dat",ios::binary);
file2.write( (char *)d1 , sizeof(d1) );
file2.close();
ofstream file3("程序必用2.dat", ios::app|ios::out );
file3name_file.c_str ()" ";
file3.close();
ofstream outfile(cc.c_str(),ios::binary);
if(!outfile)
{
cerr"!!!!!"endl;
abort();
}
outfile.write( (char *)n , sizeof(n) );
ji_ke_1_class *p=head;
for(int i=0;in;i++,p=p-next)
outfile.write( (char *)p,sizeof(ji_ke_1_class));
outfile.close();
for(ii=0;ii15;ii++)
{
cout'\20';
Sleep(15);
}
coutendlendl;
cout"--已成功保存!!!!!!"endlendl;
}
void ji_ke_1_class::load()
{
int h1,h2;
string qq,name[20],name0[20];
ifstream file("程序必用1.dat",ios::binary);
if(!file)
{
cerr"open error!!"endl;
abort();
}
file.read( (char *)h1, sizeof(h1) );
h2=int(h1);
cout"共有以下 "h2" 个文件"endl;
ifstream file0("程序必用2.dat",ios::in);
if(!file0)
{
cerr"open error!!"endl;
abort();
}
for(int e=0;eh2;e++)
{
if(e%2==0) coutendl;
file0name[e];
name0[e]=name[e];
cout"第"e+1"个文件:"setw(16)(string)name0[e]" ; ";
}
file0.close();
coutendl;
loop3:
coutendl"请输入路径(例 -绝对路径:C:\\\\文件名\\\\文件名\\\\数据名.dat -相对路径:save\\\\数据名.dat;)"endl ;
cout"路径为:";
string ccc;
cinccc;
cout" ╭-------╮"endl"已经在读取 ";
int ii;
for(ii=0;ii15;ii++)
{
cout'\20';
Sleep(15);
}
ifstream infile(ccc.c_str(),ios::binary);
int c;
ji_ke_1_class t[60],*pp[60];
if(!infile)
{
coutendl"无此文件; 1-重输 ; other-放弃";
cinc;
if(c==1) goto loop3;
else goto loop4;
}
int nn,nnn;
int i;
infile.read( (char *)nn , sizeof(nn) );
nnn=(int)nn;
n=nnn;
infile.read( (char *)t[0] , sizeof(ji_ke_1_class) );
head=(ji_ke_1_class *)t[0];
for(i=1; innn; i++)
{
infile.read( (char *)t[i] , sizeof(ji_ke_1_class) );
pp[i]=(ji_ke_1_class *)t[i];
if(i==1)
{
head-next=pp[1];
}
if(i!=1)
{
pp[i-1]-next=pp[i];
}
}
infile.close();
for(ii=0;ii15;ii++)
{
cout'\20';
Sleep(15);
}
coutendl;
coutendl"----祝贺!!!成功装载,数据文件以可以使用"endlendl;
loop4:;
}
void ji_ke_1_class::tongji()
{
ji_ke_1_class *pm=head;
int m,by=0,bz=0,bc=0,bj=0;
for(pm=head , m=0 ; mn ; m++ , pm=pm-next)
{
if( pm-ave = 85 ) by++;
if( pm-ave 85 pm-ave =75 ) bz++;
if( pm-ave =60 pm-ave 75 ) bj++;
if( pm-ave 60 ) bc++;
}
coutendl
"总计 "n" 人:"endl
" 优秀生人员数量:"setw(5)bysetw(12)"优秀率为:"setw(6)setprecision(5)(double)by/nendl
" 中等生人员数量:"setw(5)bzsetw(12)"中等率为:"setw(6)setprecision(5)(double)bz/nendl
" 及格生(60-75)人员数量:"setw(5)bjsetw(12)"及格率为:"setw(6)setprecision(5)(double)bj/nendl
" 不及格人员数量为:"setw(5)bcsetw(12)"不及格率为:"setw(6)setprecision(5)(double)bc/nendlendl;
}
void bz()
{
system("cls");
M"欢"Y"迎"Y"使"Y"用"Y"本"Y"程"Y"序"Y"-"Y"-"Y"-"Y"-"Y"-"Y" 使"Y"用"Y"说"Y"明"Y":"N;coutendlendl;
M"一"Y""Y"、"Y"建"Y"立"Y"自"Y"己"Y"的"Y"数"Y"据"Y"("Y"建"Y"议"Y"马"Y"上"Y"存"Y"储"Y"!"Y"!"Y")"Y"按"Y"提"Y"示"Y"操"Y"作"Y"即"Y"可"Y";"Y"呵"Y"呵"N;coutendlendl;
M"二"Y""Y"、"Y"注"Y"意"Y"事"Y"项"Y":"Y" 对"Y"链"Y"表"Y"("Y"数"Y"据"Y")"Y"若"Y"超"Y"过"Y"6"Y"0"Y"个"Y","Y"则"Y"请"Y"联"Y"系"Y""Y""Y"吕"Y""Y""Y"威"Y""Y""Y"___"Y"qq"Y":"Y"921963406"Y","Y"可"Y"免"Y"费"Y"赠"Y"送"Y"所"Y"需"Y"程"Y"序"N;coutendlendl;
M"三"Y""Y"、"Y"建"Y"链"Y"表"Y"的"Y"最"Y"后"Y"使"Y"全"Y"为"Y"0"Y","Y"建"Y"表"Y"结"Y"束"N;coutendlendl;
M"四"Y""Y"、"Y"因"Y"技"Y"术"Y"有"Y"限"Y","Y"清"Y"屏"Y"函"Y"数"Y"造"Y"成"Y"head"Y"丢"Y"失"Y";"Y"慎"Y"用"Y"!"Y"!"N;coutendlendl" ";
M"制"Y"作"Y"人"Y":"Y""Y""Y""Y""Y"吕"Y""Y""Y""Y""Y"威"Y""Y""Y""Y""N;coutendlendl;
}
////////////////////////////////////////////////////////////////////////////////////////////
////
////
////////////////////////////////////////////////////////////////////////////////////////////
void mult()
{tm * tp;
time_t t;
cout"____________________________________________________________________________________________________";
cout" ╭-------╮"
" ";
t=time(NULL);
tp=localtime(t);
couttp-tm_mon+1"-"tp-tm_mday"-"tp-tm_year+1900" ";
couttp-tm_hour":"tp-tm_min":"tp-tm_sec;
cout" ∣ 菜单 ∣ "
" ∣____________________________∣"
" ∣ 0-创建数据 ∣"
" ∣ ∣"
" ∣ 1-按学号排序 ∣"
" ∣ ∣"
" ∣ 2-按成绩排序 ∣"
" ∣ ∣"
" ∣ 3-删除一学生信息 ∣"
" ∣ ∣"
" ∣ 4-插入一学生信息 ∣"
" ∣ ∣"
" ∣ 5-检索一学生 ∣"
" ∣ ∣"
" ∣ 6-统计数据 ∣"
" ∣ ∣"
" ∣ 7-保存 ∣"
" ∣ ∣"
" ∣ 8-打开 ∣"
" ∣ ∣"
" ∣ 9-清屏 ∣"
" ∣ ∣"
" ∣ 10-帮(建议先看) ∣"
" ∣ other-quit ∣"
" ∣ ∣"
"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄";
}
void select()
{
int fl=0,a,num2;
ji_ke_1_class aa;
loop:
cout"What can I do for you ? ? ?(输入命令-数字) :";
cina;
switch(a)
{
case 0 :
{
cout"输入数据";
aa.creat();
aa.print();
goto loop;
}
case 1 :
{
aa.sort(1);
goto loop;
}
case 2 :
{
aa.sort(2);
goto loop;
}
case 3 :
{
cout"num========";
cinnum2;
aa.del(num2);
goto loop;
}
case 4 :
{
aa.insert();
goto loop;
}
case 5 :
{
char xx[20]={0};
cout"输入要查询的学生的学号 或 姓名:";
cinxx;
if( xx[0]=48 xx[0]=57 )
aa.index(1,xx);
else
aa.index(2,xx);
goto loop;
}
case 6 :
{
aa.tongji();
goto loop;
}
case 7 :
{
aa.save();
fl=1;
goto loop;
}
case 8 :
{
aa.load();
goto loop;
}
case 9 :
{
ji_ke_1_class *nn=new ji_ke_1_class;
head=nn;
system("cls");//清屏导致head丢失--------------??????????????????
nn=head;
mult();
goto loop;
}
case 10 :
{
bz();
mult();
goto loop;
}
default :
{
if(fl=0)
{
char f;
cout"你想要储存吗?y/N";
cinf;
if(f=='y'||f=='y')
{
aa.save();
fl=1;
goto loop;
}
else goto end;
}
else goto end;
}
}
end:;
}
void main()
{
int q2=0;
ifstream file0("程序必用1.dat",ios::binary);
if(!file0)
{
file0.close();
ofstream file1("程序必用1.dat",ios::binary);
file1.write( (char *)q2 , sizeof(q2) );
file1.close();
goto loop5;
}
file0.close();
loop5:
mult();
select();
}
c语言运行速度快,故此,c语言成绩管理系统优点就是性能高,且安全。
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
以上就是本文c语言学生成绩管理系统为什么只能输入一个,c语言学生成绩管理系统设计报告的全部内容
本文链接:https://bbs.china-share.com/news/46999.html
发布于:博宇考试网(https://bbs.china-share.com/)>>> 成绩查询栏目(https://bbs.china-share.com/chengjichaxun/)
投稿人:网友投稿
说明:因政策和内容的变化,上文内容可供参考,最终以官方公告内容为准!
声明:该文观点仅代表作者本人,博宇考试网系信息发布平台,仅提供信息存储空间服务。对内容有建议或侵权投诉请联系邮箱:ffsad111@foxmail.com
关注本站了解更多关于文c语言学生成绩管理系统为什么只能输入一个,c语言学生成绩管理系统设计报告和成绩查询的相关信息。
成绩查询
c语言学生成绩管理系统为什么只可以输入一个学生? 大约是因为程序员在编写代码时,将学生的成绩管理系统设置为只可以输入一个学生 。 C语言学生成绩管理系统? 想要它变成什么样,自...
成绩查询
正常女生100米成绩标准? 16秒左右。 女子100米国家运动员标准成绩为:一级11.80,二级13.04,三级14.04。 田径是体育运动中最大的项目,它涵盖五个类别的不少单项。它是竞赛次数最多、运动员...
成绩查询
往年到往年高中毕业考试人员数量? 往年参考946万人,录取657万人,录取率69%。 往年参考933万人,录取675万人,录取率72%。 往年参考915万人,录取685万人,录取率75%。 往年参考912万人,录...
成绩查询
大学期末成绩合格分数线是多少? 大学的期末考试是60分及格,但是,期末考试成绩大多数情况下会综合平日间分,故此,要及时完成,平日间老师布置的作业还有课上积极回答问题就可以比...
成绩查询
英语三级查分通道入口? 学员可以在考后50个工作日后,登陆“教育部考试中心综合查询网”(http://chaxun.neea.edu.cn)或PETS报名官方网站(http://pets.etest.net.cn)查询考试成绩。 假设对此次考试成绩有异...