您的位置 首页 知识

学生成绩管理系统c语言源代码(大一c语言课程设计报告总结)

C语言学生成绩管理系统?

想要它变成什么样,自己做一下修改就是了:

#include<iostream>

#include<fstream>

#include <windows.h>

#include<string>

#include <time.h>

#include<cstdlib>

#include<iomanip>

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->num<<setw(3)<<“∣”<<setw(7)<<p1->name<<setw(2)<<“∣”<<setw(4)<<p1->age<<setw(4)<<“∣”<<setw(4)<<p1->hig<<setw(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->ave<<setw(4)<<“∣”<<setw(6)<<p1->sum<<setw(4)<<“∣”<<setw(7)<<p1->p_y<<setw(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;

cin>>num>>name>>age>>hig;

cout<<“—–分数::语文_数学_英语_”<<endl<<” “;

for(int i=0;i<3;i++)

cin>>score[i] ;

}

void ji_ke_1_class::display()

{

ji_ke_1_class *p;

int i;

for( p=head , i=0 ; i<n ; 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 ; m<n ; p=p->next )

{

total=total+p->score[0]+p->score[1]+p->score[2];

p->sum=total;

p->ave=total/3;

cout<<p->sum<<“——–__”<<p->ave<<endl;

if(p->ave>85) strcpy( p->p_y , “优秀” );

else if(p->ave>75) strcpy( p->p_y , “中等” );

else if(p->ave>60) strcpy( p->p_y , “及格” );

else strcpy( p->p_y , “不及格” );

total=0;

m+=1;

}

}

template<typename T1>

void exchang1(T1 &a,T1 &b)

{

int t;

t=a;

a=b;

b=t;

}

template<typename 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;

cout<<endl;

for(p1=head , m=0 ; m<n-1 ; m++ , p1=p1->next)

for(p2=p1->next,t=m+1 ; t<n ; 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();

cout<<endl;

}

void ji_ke_1_class::del(int num)

{

ji_ke_1_class *p1,*p2;

if(head==0)

{

cout<<“nlist null!n”;

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<<“n”<<“恭喜你–deleted the:”<<num<<endl<<endl;

n=n-1;

}

else cout<<num<<“抱歉–好像没有这个数吧!!n”<<“nn”;

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;i<3;i++)

total+=pt->score[i];

pt->sum=total;

pt->ave=total/3;

if(pt->ave>85) strcpy( pt->p_y , “优秀” );

else if(pt->ave>75) strcpy( pt->p_y , “中等” );

else if(pt->ave>60) strcpy( pt->p_y , “及格” );

else strcpy( pt->p_y , “不及格” );

p1=head;

p0=pt;

if(head==0)

{

head=p0;

p0->next=0;

}

else

{

while( (p0->num>p1->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 ; m<n ; 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;k<4;k++)

{

d=0;

y=(int)aa[k];

for(x=48;x<=57;x++)

{

d++;

if(x==y) m[k]=(d-1);

}

}

for(j=0 ; j<4 ; 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;

cout<<endl<<“请输入存储路径(建议存入当前文件中的data_save中)(例 —绝对路径:C:\\文件名\\文件名\\数据名.dat n ”

<<” —相对路径:save\\数据名.dat; )”

<<endl

<<“路径为:”;

string cc;

cin>>cc;

cout<<” ╭——————————————╮”<<endl<<“正在保存 “;

for(ii=0;ii<15;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 );

file3<<name_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;i<n;i++,p=p->next)

outfile.write( (char *)p,sizeof(ji_ke_1_class));

outfile.close();

for(ii=0;ii<15;ii++)

{

cout<<’20’;

Sleep(15);

}

cout<<endl<<endl;

cout<<“—–已成功保存!!!!!!”<<endl<<endl;

}

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;e<h2;e++)

{

if(e%2==0) cout<<endl;

file0>>name[e];

name0[e]=name[e];

cout<<“第”<<e+1<<“个文件:”<<setw(16)<<(string)name0[e]<<” ; “;

}

file0.close();

cout<<endl;

loop3:

cout<<endl<<“请输入路径(例 —绝对路径:C:\\文件名\\文件名\\数据名.dat —相对路径:save\\数据名.dat;)”<<endl ;

cout<<“路径为:”;

string ccc;

cin>>ccc;

cout<<” ╭——————————————╮”<<endl<<“正在读取 “;

int ii;

for(ii=0;ii<15;ii++)

{

cout<<’20’;

Sleep(15);

}

ifstream infile(ccc.c_str(),ios::binary);

int c;

ji_ke_1_class t[60],*pp[60];

if(!infile)

{

cout<<endl<<“无此文件; 1—重输 ; other—放弃”;

cin>>c;

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; i<nnn; 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;ii<15;ii++)

{

cout<<’20’;

Sleep(15);

}

cout<<endl;

cout<<endl<<“————————恭喜!!!成功装载,数据文件以可以使用”<<endl<<endl;

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 ; m<n ; 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++;

}

cout<<endl

<<“总计 “<<n<<” 人:”<<endl

<<” 优秀生人数:”<<setw(5)<<by<<setw(12)<<“优秀率为:”<<setw(6)<<setprecision(5)<<(double)by/n<<endl

<<” 中等生人数:”<<setw(5)<<bz<<setw(12)<<“中等率为:”<<setw(6)<<setprecision(5)<<(double)bz/n<<endl

<<” 及格生(60-75)人数:”<<setw(5)<<bj<<setw(12)<<“及格率为:”<<setw(6)<<setprecision(5)<<(double)bj/n<<endl

<<” 不及格人数为:”<<setw(5)<<bc<<setw(12)<<“不及格率为:”<<setw(6)<<setprecision(5)<<(double)bc/n<<endl<<endl;

}

void bz()

{

system(“cls”);

M”欢”Y”迎”Y”使”Y”用”Y”本”Y”程”Y”序”Y”-“Y”-“Y”-“Y”-“Y”-“Y” 使”Y”用”Y”说”Y”明”Y”:”N;cout<<endl<<endl;

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;cout<<endl<<endl;

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;cout<<endl<<endl;

M”三”Y””Y”、”Y”建”Y”链”Y”表”Y”的”Y”最”Y”后”Y”使”Y”全”Y”为”Y”0″Y”,”Y”建”Y”表”Y”结”Y”束”N;cout<<endl<<endl;

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;cout<<endl<<endl<<” “;

M”制”Y”作”Y”人”Y”:”Y””Y””Y””Y””Y”吕”Y””Y””Y””Y””Y”威”Y””Y””Y””Y””N;cout<<endl<<endl;

}

////////////////////////////////////////////////////////////////////////////////////////////

////

////

////////////////////////////////////////////////////////////////////////////////////////////

void mult()

{tm * tp;

time_t t;

cout<<“____________________________________________________________________________________________________n”;

cout<<” ╭——————————————╮n”

<<” “;

t=time(NULL);

tp=localtime(&t);

cout<<tp->tm_mon+1<<“-“<<tp->tm_mday<<“-“<<tp->tm_year+1900<<” “;

cout<<tp->tm_hour<<“:”<<tp->tm_min<<“:”<<tp->tm_sec;

cout<<” ∣ 菜单 ∣ n”

<<” ∣____________________________∣n”

<<” ∣ 0—创建数据 ∣n”

<<” ∣ ∣n”

<<” ∣ 1—按学号排序 ∣n”

<<” ∣ ∣n”

<<” ∣ 2—按分数排序 ∣n”

<<” ∣ ∣n”

<<” ∣ 3—删除一学生信息 ∣n”

<<” ∣ ∣n”

<<” ∣ 4—插入一学生信息 ∣n”

<<” ∣ ∣n”

<<” ∣ 5—检索一学生 ∣n”

<<” ∣ ∣n”

<<” ∣ 6—统计数据 ∣n”

<<” ∣ ∣n”

<<” ∣ 7—保存 ∣n”

<<” ∣ ∣n”

<<” ∣ 8—打开 ∣n”

<<” ∣ ∣n”

<<” ∣ 9—清屏 ∣n”

<<” ∣ ∣n”

<<” ∣ 10–帮助(建议先看) ∣n”

<<” ∣ other—quit ∣n”

<<” ∣ ∣n”

<<”  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄n”;

}

void select()

{

int fl=0,a,num2;

ji_ke_1_class aa;

loop:

cout<<“What can I do for you ? ? ?(输入命令—数字) :”;

cin>>a;

switch(a)

{

case 0 :

{

cout<<“输入数据n”;

aa.creat();

aa.print();

goto loop;

}

case 1 :

{

aa.sort(1);

goto loop;

}

case 2 :

{

aa.sort(2);

goto loop;

}

case 3 :

{

cout<<“num========”;

cin>>num2;

aa.del(num2);

goto loop;

}

case 4 :

{

aa.insert();

goto loop;

}

case 5 :

{

char xx[20]={0};

cout<<“输入要查询的学生的学号 或 姓名:”;

cin>>xx;

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”;

cin>>f;

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语言这门课程的学习之后,我的态度大有改观。不仅从中了解到了C语言是国内外广泛使用的语言,而且还知道了它的功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高等特点。特别的适合于编写系统软件。通过独立自主的完成每一次作业,我从中体会到了程序调试成功后的喜悦,并且对已学知识有了进一步的了解。总之,我正在改变,从不感兴趣向喜欢这门课程有了很大的改变。

在编此程序的过程中,我遇到了一些问题,在刚刚编完时,出现了许多错误,其中最主要的便是函数的形参和实参类型不匹配,经过几次改写,最终将形参——结构体指针改为了结构体数组,使得错误减少了许多。同时还出现了一些因马虎而产生的错误,不过最后经过仔细检查都解决了。最难找的的要数逻辑错误了,在对成绩进行计算的时候,忘了对数组进行处理,结果进行完运算后并没有得到预期结果。还有,在编写删除和添加函数时对覆盖前面的成绩没有把握,但经过参考一些资料后,确定了我的想法还是行的通的。总体而言,程序编写中遇到的错误还是比较小的,经过自己的努力还是给克服了。

c语言课题设计 学生管理系统 要求:1.可输入学生学号、姓名、性别、入学成绩。最多保存十个学生信

  • c语言课题设计学生管理系统要求:1.可输入学生学号、姓名、性别、入学成绩。最多保存十个学生信息。2.可有查询功能,比如输入学号,能显示该生所有信息;输入性别,能显示所有该性别学生的信息;输入成绩,能显示低于,高于或等于该成绩的学生信息。
  • 的饿,图书馆看书去吧

c语言程序设计(2) 学生成绩管理系统

  • 1、 学生成绩管理系统V1.01)目的:熟悉模块化程序设计、二维数组作函数参数2)内容:某班最多不超过30人(具体人数由键盘输入)参加期末考试,考试科目最多不超过6门(具体门数由键盘输入)。请编写一个程序实现如下菜单驱动的学生成绩管理系统。(1) 录入每个学生的学号、姓名和各科考试成绩。(2) 计算每门课程的总分和平均分。(3) 计算每个学生的总分和平均分。(4) 按每个学生的总分由高到低排出名次表。(5) 按学号由小到大排出成绩表。(6) 按姓名的字典顺序排出成绩表。(7) 按学号查询学生排名及各科考试成绩。(8) 按姓名查询学生排名及各科考试成绩。(9) 按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,对每门课程分别统计每个类别的人数及所占的百分比。(10) 输出每个学生的学号、姓名、各科考试成绩、总分、平均分,以及每门课程的总分和平均分。3)要求:(1)程序运行后先显示如下菜单,并提示用户输入选项: ******************************************************* 1. Input record 2.Caculate total and average score of every course 3.Caculate total and average score of every student 4.Sort in decending order by total socre of every student 5.Sort in ascending or甫弗颠煌郯号奠铜订扩der by number 6.Sort in ascending order by name 7.Search by number 8.Search by name 9.Statistic analysis for every course 10.List reocrd 0. Exit ******************************************************* Pleaseenter your choice:然后,根据用户输入的选项执行相应的操作。(2)完成上述所有任务后,可选一个函数,将二维数组的列指针代替二维数组名作函数参数实现。(3)完成上述所有任务后,用指针数组代替二维字符数组名作函数参数实现“按姓名查询”函数。
  • 有,,扣来有,,扣来有,,扣来

c语言程序设计(3)学生成绩管理系统

  • 1)目的:熟悉动态单向链表的操作、模块化程序设计2)内容:某班最多不超过30人(具体人数由键盘输入)参加期末考试,考试科目最多不超过6门(具体门数由键盘输入)。请编写一个肌畅冠堆攉瞪圭缺氦画程序实现如下菜单驱动的学生成绩管理系统。(1) 录入每个学生的学号、姓名和各科考试成绩。(2) 计算每门课程的总分和平均分。(3) 计算每个学生的总分和平均分。(4) 按每个学生的总分由高到低排出名次表。(5) 按学号由小到大排出成绩表。(6) 按姓名的字典顺序排出成绩表。(7) 按学号查询学生排名及各科考试成绩。(8) 按姓名查询学生排名及各科考试成绩。(9) 按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,对每门课程分别统计每个类别的人数及所占的百分比。(10) 输出每个学生的学号、姓名、各科考试成绩、总分、平均分,以及每门课程的总分和平均分。(11) 插入记录,插入一个学生记录。(12) 删除记录,删除一个学生的记录。3)要求:(1)程序运行后先显示如下菜单,并提示用户输入选项: ******************************************************* 1. Input record 2.Caculate total and average score of every course 3.Caculate total and average score of every student 4.Sort in decending order by total socre of every student 5.Sort in ascending order by number 6.Sort in ascending order by name 7.Search by number 8.Search by name 9.Statistic analysis for every course 10.List reocrd 11.Insert record 12. Delete record 0. Exit ******************************************************* Pleaseenter your choice:然后,根据用户输入的选项执行相应的操作。(2)该系统是在V1.0的基础上增加了11和12两个功能,要求整个系统使用动态单向链表编程实现。
  • 这个肯定要实现调式的了,帮

学生成绩管理系统 C程序作业 用C语言编的

  • 求大神帮忙,实在不会~发我邮箱2655077163@qq.com. 本系统实现的功能:(1)录入学生的成绩(2)输出学生的成绩(3)添加学生的成绩信息(4)删除指定学生的成绩信息(5)按照要求对学生成绩信息进行排序(6)根据学号查询指定学生的成绩(7)将学生的成绩信息保存到文件2. 功能模块描述:(1)数据结构结构体说的定义如下:struct scorenode{ int number;*学生学号*char name[10]; *学生姓名*float chinese; *语文成绩*float mathmatic; *数学成绩*float english; *英语成绩 *struct scorenode *next; };typedef struct scorenode score; (2)main()主函数:程序采用模块化设计,主函数是程序入口,各模块独立,可分块调整,均由主函数控制。采用while死循环和switch分支语句编写菜单选择控制各个模块的功能,每个模块的功能由简单的基本函数构成。(3)score *creatlink()创建动态链表由于记录并不是一次性全部输入,而是随时添加和删除的,而预先开辟的空间数往往大于实际的记录数,浪费内存,因此使用动态空间开僻函数malloc()为输入的数据动态分配内存空间。(4)void print(score *head)显示学生信息使用参数head传递链表的首地址,首先判断链表是否为空,如为空,则输出提示信息;如不为空,设一个指针变量p,先指向第一个结点,输出p所指的结点,然后使p后移一个结点,再输出,直到链表的尾结点。(5)score *add(score *head,score *stu)向链表中添加学生数据函数有两个参数,head头结点指向链表的首地址,stu指向新建立结点,向其输入数据,添加到链表上,按学生的学号排序。(6)score *search(score *head)查询学生成绩在进行查找时,只需要从链表的表头开始进行查询。如果链表为空,则直接输出提示信息;如链表不为空,则按输出的学号进行查询,查询成功就输出该学号学生的成绩,否则输出提示信息。(7)score *dele(score *head)删除数据该函数根据输入学生的学号,在链表中进行查找如有匹配的,将该学号的学生信息删除掉。最后返回删除后的链表的头结点。(8)score *sortdata(score *head)对数据进行排序使用switch-case语句根据用户的选择,判断是按照学号、姓名或是单科成绩使用交换法进行排序。(9)save(score *p1)保存数据在程序中的数据输入和输出是以终端为对象的,当程序关闭后,数据也就丢失了,所以为能随时查阅数据,须将数据输出到磁盘文件上保存,使用时人磁盘中读入到内存,这用到了磁盘文件的读写操作。(10)score *load(score *head)从文件中读取数据为了程序关闭后丢失,我们将数据保存到磁盘文件中,下一次对已有数据进行的时候可以直接从文件中读取数据进行操作。(11)score *statistics(score *head)成绩统计主要实现对学生成绩统计的几种方式:统计个人总分和平均分、统计单科平均分、统计总分最高分和最低分。(12)int menu(int k)菜单主要提供系统显示的界面,系统模块介绍,便于用户操作
  • 啊啊啊飞安德森萨

关于C语言学生成绩管理系统的一个问题

  • 问题补充: 求大神帮加上一个“统计各课程的平均分、及格率、最高分、最低分”的功能
  • 你的邮箱?用大写写你的邮箱,不然会被删。请采纳。

C语言学生成绩管理系统:fread(&stu[i],sizeof(STU),1,fp)?

  • stu[i],是一个结构数组,包含学生姓名,学号,语文数学英语成绩以及总分和平均分。while(1) { if(feof(fp))//检测文件是否结束 break; fread(&stu[i],sizeof(STU),1,fp); i++; //读取文件数 }我是这样写的,可以成功打开文件,但是读取的结果是那一行信息全被读到姓名那里,其他的全是0.现在应该怎么该,或者应该怎么写这个打开文件读入信息?
  • fread不能格式化读入文件内容,建议使用fscanf示例:如果文件中一行的格式是name, id, chinese, math, english, total score, average score(注意空格)while(1){if(feof(fp))//检测文件是否结束break;if (fscanf(f, "%s, %d, %d, %d, %d, %d, %f",stu[i].name, &stu[i].id, &stu[i].chn_score, &stu[i].math_score, &stu[i].eng_score, stu[i].total_score, &stu[i].average_score) == EOF){break;}i++;}

如何用C语言程序编写一个学生成绩管理系统,界面用菜单进行设计。菜单功能可用函数实现。

  • 我有一个代码包,功能差不多。

c语言程序设计实例 选题二:学生成绩管理系统设计 学生成绩信息包括:学号,姓名,三门课程成绩(数学、英

  • 你QQ号多少。。我发给你吧。。

谁能帮我做个学生成绩管理系统用c语言

  • 看可以不咯看#includestdio.hint avgGrade(int a[50]){ int i,sum=0,max=0,min=0; double avg=0.0; max=a[0]; min=a[0]; for(i=0;i50;i++) { sum+=a[i]; if(a[i]max) max=a[i]; if(a[i]min) min=a[i]; } avg=(double)sum50; printf("平均成绩为%lf,最高成绩为%d,最低成绩为%dn",avg,max,min); return 0;}int compositor(int a[50]){ int i,j,n,temp乏酣催叫诎既挫习旦卢=0; printf("请输入您要排序的方式(0:升序,1:降序):n"); scanf("%d",&n); for(i=0;i50;i++) { for(j=0;ji;j++) { if(n==0) { if(a[j]a[i]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } else { if(a[j]a[i]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } for(i=0;i50;i++) { printf("%d",a[i]); }}int insertGrade(int a[50]){ int i,n; printf("请输入你要插入的成绩:n"); scanf("%d",&n); for(i=0;i50;i++) if(na[i]) { for(s=49;s=i;s–) a[s+1]=a[s]; break; } a[i]=n;}int deleteGrade(int a[50]){ ……余下全文

用C语言编写学生成绩管理系统

  • 要求如下 (1)学生信息包括:学号,姓名,性别,出生(年,月,日),三门课成绩和总分( 数学, 英语, C语言, 总分)。(2)数据格式:测试数据,以文件方式提供,studf.txt,数据文件自己建立。(3)需要实现的功能1) 建立学生信息结构数组 从文件中读入数据2) 按姓名递增冒泡排序3) 按总分递减选择排序4) 显示按总分排序后学生信息5) 按学号查学生信息和平均分数(顺序查找法)6) 按姓名查学生信息和平均分数(折半查找法)7) 查各门课平均分数8) 查男女学生人数和总人数9) 显示学生信息表10) 将排序后的内容存为文件,以后显示时直接从文件中调出而不用再执行排序算法。【程序设计的具体说明】数据结构:结构类型的层次结构:Struct student{ charno[9]; * 学号 * charname[20]; * 姓名 * boolsex; * 性别 * intbirthdate; * 出生日期 * intmath; int English;int clanguage;int sum; };为减少参数传递,程序中用到的学生结构体数组可以定义为一个全局变量:struct student stu[30];(以上只是提示,不一定要按照上述提示编程,可以用class)顺便问下自己编写的程序大多数提示没有定义,开头需要用到哪些定义。。问题补充: 开头加不加 int main()
  • 你应该去更专业的论坛里去问 因为这个问题涉及知识面太狭窄 百度知道里并没有这么专业的人 就算有也是极少 看到你问题的几率更小 所以你可以去专业论坛 或者有计算机的QQ群 那里的人会更好的帮助你

返回顶部