当前位置:首页 > 代码 > 正文

班级档案管理源代码(班级档案管理源代码怎么查)

admin 发布:2022-12-19 11:40 128


今天给各位分享班级档案管理源代码的知识,其中也会对班级档案管理源代码怎么查进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求C语言学生档案管理界面的源代码

# includeiostream.h

# includestring.h

# includestdio.h

# includestdlib.h

# includefstream.h

//*****定义一个学生原子的的数据结构*****//

struct stuatom

{

char *name;

int id;

char sex;

float math, eng, comp, totll, aver;

void show();

void setup();

};

//*********定义一系列对学生的操作**********//

class student

{

private:

stuatom ob[100];

int stulen;

public:

student();

void input();

void order();

void save();

void Query();

void read();

void add();

void del();

};

//********对学生数据的初始化(类的构造函数)**********//

student::student()

{

//用for循环对全部数组中的数据初始化

for(int i=0;i100;i++)

{

ob[i].math=ob[i].eng=ob[i].comp =ob[i].totll =ob[i].aver =0;

ob[i].id =0;

ob[i].sex =' ';

ob[i].name =NULL;

}

this-stulen =0;

}

//********输入学生的数据,并判断是否在规定数据域内*******//

void stuatom::setup()

{

char n[20]; char s;

int b;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

do {

cout" 学号: ";

cinb;

if(b1020||b1001)

cout"Bad data input!!"endlendl;

}while (b1001||b1020);

id=b;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

do{

name=new char[strlen(n)+1];

cout" 姓名: ";

cinn;

if( strlen(n)6 || strlen(n)4 )

cout"Bad data input!!"endlendl;

}while ( strlen(n)6 strlen(n)4 );

strcpy(name,n);

cout" 性别(m/f):" ;

cins;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (s!='m' s!='f')

{

cout"Bad data input!!"endlendl;

cout" 性别(m/f):";

cins;

}

sex=s;

float m, e, co;

cout" 数学: ";

cinm;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (m0 || m100)

{

cout"Bad data input!!"endlendl;

cout" 数学: ";

cinm;

}

math=m;

cout" 英语: ";

cine;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (e0 || e100)

{

cout"Bad data input!!"endlendl;

cout" 英语: ";

cine;

}

eng=e;

cout" 计算机: ";

cinco;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (co0 || co100)

{

cout"Bad data input!!"endlendl;

cout" 计算机: ";

cinco;

}

comp=co;

totll=math+eng+comp;

aver=(math+eng+comp)/3;

}

//*******按照规定格式把该学生的数据显示在屏幕上******//

void stuatom::show()

{

cout.setf(ios::left);

cout.width(6);

cout""id" ";

cout.width(8);

coutname;

cout.width(10);

coutsex;

cout.width(9);

coutmath;

cout.width(9);

couteng;

cout.width(11);

coutcomp;

cout.width(10);

couttotllaverendl;

}

//**************输入学生的数据***********************//

void student::input()

{

int n;

coutendl"输入将要录入的学生数目: ";

cinn;

int j;

//通过循环输入要求输入学生个数的学生的数据。

for(j=0; jn; j++)

{

cout" 输入学生信息 "jendl;

ob[j].setup();

}

this-stulen=n; //学生个数赋值

//学生数据显示格式

system("cls");

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

//通过循环输出所有学生数据。

for(j=0; jn; j++)

{

ob[j].show();

}

coutendl;

cout" 是否保存? (Y/N): ";

char Y;

cinY;

system("cls");

}

//**************按照一定格式显示所要查询学生的信息。**************//

void student::Query()

{

int x , i;

coutendl" 输入要查询学生的学号: ";

cinx;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0;i=this-stulen ;i++)

{ if (x==ob[i].id)

{

cout.setf(ios::left);

cout.width(6);

cout""ob[i].id" ";

cout.width(8);

coutob[i].name;

cout.width(10);

coutob[i].sex;

cout.width(9);

coutob[i].math;

cout.width(9);

coutob[i].eng;

cout.width(11);

coutob[i].comp;

cout.width(10);

coutob[i].totllob[i].averendl;

}

}

getchar();

}

//*******************保存学生数据**************************//

void student::save()

{

int i;

ofstream outfile;

outfile.open("list.txt",ios::trunc);

if(!outfile)

{

cout"Cannot open output file!\n,";

}

//通过循环把所有的学生数据保存在list.txt里边。

for(i=0; ithis-stulen; i++)

{

outfileob[i].id" "ob[i].name" "ob[i].sex" "

ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;

}

outfile.close();

}

//*************显示所有学生数据*********************//

void student::read()

{

int i;

system("cls");

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0; ithis-stulen; i++)

{

ob[i].show();

}

getchar();

}

//*******************一个学生的数据****************//

void student::add()

{

int i, d=this-stulen ;

cout"输入要添加学生的信息:"endl;

ob[d].setup();

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0; i=d; i++)

{

ob[i].show();

}

ofstream fout("list.txt",ios::app);

if(!fout)

{

cout"Cannot open output file!\n,";

}

//把添加的学生数据添加到list.txt里边去。

foutob[d].id" "ob[d].name" "ob[d].sex" "

ob[d].math" "ob[d].eng" "ob[d].comp" "ob[d].totll" "ob[d].averendl;

fout.close();

getchar();

}

//*********************删除指定名字学生的数据*******************//

void student::del()

{

int i,p; char x[8];

cout" 输入要删除学生名字:"endl;

cinx;

//通过for循环查找要删除学生的姓名

for(i=0; istulen; i++)

{

if(strcmp(ob[i].name,x)==0)

{

p=i;

coutendl"学号 姓名 性别 数学 英语 计算机 总成绩 平均成绩"endl;

coutob[i].id" "ob[i].name" "ob[i].sex" "ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;

break;

}

else

continue;

}

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1

stulen--;

for(i;istulen;i++)

{

ob[i]=ob[i+1];

}

this-read ();

cout" 删除成功!"endl;

getchar();

}

//***********把学生成绩排序******************//

void student::order()

{

int k,j;

float t; char n[20];

//排序算法。

for(j = 0; j=(2-1); j++)

{

for(k=1; k=(2-j); k++)

{

if(ob[k].totll ob[k + 1].totll)

{

t = ob[k].totll;

ob[k].totll = ob[k+1].totll;

ob[k+1].totll = t;

strcpy(n, ob[k].name);

strcpy(ob[k].name, ob[k+1].name);

strcpy(ob[k+1].name, n);

}

cout" 成绩排名:"endl;

cout" 姓名 总成绩 名次"endl;

for(k=0; k=stulen; k++)

{

cout" ";

cout.setf(ios::left);

cout.width(9);

coutob[k].name;

cout.width(9);

coutob[k].totllkendl;

}

getchar();

}

}

}

//********************选择菜单。*****************//

void menu()

{

cout"\n\n";

cout"------------------ 学生成绩系统 -----------------"endlendl;

cout"\t\t1.录入与保存学生信息.\n";

cout"\t\t2.读取学生信息.\n";

cout"\t\t3.删除学生信息.\n";

cout"\t\t4.追加学生信息.\n";

cout"\t\t5.查询学生信息.\n";

cout"\t\t6.显示成绩名次.\n";

cout"\t\t7.退出系统......\n\n\n";

cout"\t\t请选择功能项: ";

}

//---------------------------------------------------------------------------------------

void main()

{

student a;

while(1)

{

int SEL;

system("cls");

menu();

cinSEL;

switch(SEL)

{

case 1:

system("cls"); a.input();a.save();break;

case 2:

system("cls"); a.read(); break;

case 3:

system("cls"); a.del(); break;

case 4:

system("cls"); a.add();break;

case 5:

system("cls"); a.Query();break;

case 6:

system("cls"); a.order();break;

case 7:

coutendl" 按任意键退出.... "endl;

getchar();

exit(0);

default:

cout"Bad input!!\n";

break;

}

}

} 我比较忙,没有亲自帮你写,你自己改改吧,框架出来了。

学校档案管理系统 c++程序设计

#includestdio.h

#includestring.h

#include fstream

#include string

#include iostream

using namespace std;

int i;

struct student

{ char name[20];

char sex[10];

int age,num;

struct sco

{ int phy;

int maths;

int english;

int computer;

int vc;

}score;

}stu[1000];

void scan()

{ int u,xe;

i=0;

for(u=0;u1000;u++)

{ strcpy(stu[u].name,"/0");

strcpy(stu[u].sex,"/0");

stu[u].num=0;

stu[u].age=0;

stu[u].score.phy=0;

stu[u].score.maths=0;

stu[u].score.english=0;

stu[u].score.computer=0;

stu[u].score.vc=0;

}

printf("依次输入你要输入的信息,先是名字,然后学号,性别,年龄,成绩(5科),此系统最多科存1000名学生信息,剩余1000\n");

do

{ printf("输入学生名字\n");

scanf("%s",stu[i].name);

printf("输入学生学号\n");

scanf("%d",stu[i].num);

printf("输入学生性别\n");

while(scanf("%s",stu[i].sex)strcmp(stu[i].sex,"boy")!=0strcmp(stu[i].sex,"girl")!=0)

printf("输入错误,请再输入");

printf("输入学生年龄\n");

scanf("%d",stu[i].age);

printf("输入学生成绩(5科)\n");

printf("物理:");

scanf("%d",stu[i].score.phy);

printf("数学:");

scanf("%d",stu[i].score.maths);

printf("电脑:");

scanf("%d",stu[i].score.computer);

printf("英语:");

scanf("%d",stu[i].score.english);

printf("VC:");

scanf("%d",stu[i].score.vc);

printf("剩余%d\n",999-i);

printf("0继续输入下一个学生信息\n1回到菜单\n");

i++;

if(i=1000){printf("系统存储空间已满,无法继续增加,抱歉!");break;}

while(scanf("%d",xe)xe!=0xe!=1)

printf("输入错误,请再输入");

if(xe==0)printf("请继续输入\n");

}while(xe!=1);

}

void watch1()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ int i2,j2,all[100],averge[100],g,a,za;

char change3[10];

for(i2=0;i2i;i2++)

{ all[i2]=stu[i2].score.phy+stu[i2].score.computer+stu[i2].score.english+stu[i2].score.maths+stu[i2].score.vc;

averge[i2]=all[i2]/5;

}

for(i2=1;i2i;i2++)

{ for(j2=1;j2i;j2++)

{ if(all[j2-1]all[j2])

{ a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a;

a=stu[j2-1].score.computer;stu[j2-1].score.computer=stu[j2].score.computer;stu[j2].score.computer=a;

a=stu[j2-1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].score.english=a;

a=stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].score.maths=a;

a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a;

a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a;

a=all[j2-1];all[j2-1]=all[j2];all[j2]=a;

a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a;

a=averge[j2-1];averge[j2-1]=averge[j2];averge[j2]=a;

strcpy(change3,stu[j2-1].name);

strcpy(stu[j2-1].name,stu[j2].name);

strcpy(stu[j2].name,change3);

strcpy(change3,stu[j2-1].sex);

strcpy(stu[j2-1].sex,stu[j2].sex);

strcpy(stu[j2].sex,change3);

}

}

}

printf("学号 姓名 性别 年龄 物理 数学 英语 电脑 VC 总分 平均分 名次\n");

for(g=0;gi;g++)

printf("%-6d%-10s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d\n",stu[g].num,stu[g].name,stu[g].sex,stu[g].age,stu[g].score.phy,stu[g].score.maths,stu[g].score.english,stu[g].score.computer,stu[g].score.vc,all[g],averge[g],g+1);

printf("输入0返回菜单");

while(scanf("%d",za)za!=0)

printf("输入错误,请再输入");

if(za==0)break;

}

}

void watch2()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ int max[5],min[5],j,g,i2,all[100],averge[100],za,j2,a,yy[5][2];char change3[20];

for(i2=0;i2i;i2++)

{ all[i2]=stu[i2].score.phy+stu[i2].score.computer+stu[i2].score.english+stu[i2].score.maths+stu[i2].score.vc;

averge[i2]=all[i2]/5;

}

for(i2=0;i2i;i2++)

{ for(j2=1;j2i;j2++)

{ if(all[j2-1]all[j2])

{ a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a;

a=stu[j2-1].score.computer;stu[j2-1].score.computer=stu[j2].score.computer;stu[j2].score.computer=a;

a=stu[j2-1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].score.english=a;

a=stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].score.maths=a;

a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a;

a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a;

a=all[j2-1];all[j2-1]=all[j2];all[j2]=a;

a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a;

a=averge[j2-1];averge[j2-1]=averge[j2];averge[j2]=a;

strcpy(change3,stu[j2-1].name);

strcpy(stu[j2-1].name,stu[j2].name);

strcpy(stu[j2].name,change3);

strcpy(change3,stu[j2-1].sex);

strcpy(stu[j2-1].sex,stu[j2].sex);

strcpy(stu[j2].sex,change3);

}

}

}

printf("学号 姓名 性别 年龄 物理 数学 英语 电脑 VC 总分 平均分 名次\n");

for(i2=0;i2i;i2++)

{ all[i2]=stu[i2].score.phy+stu[i2].score.computer+stu[i2].score.english+stu[i2].score.maths+stu[i2].score.vc;

averge[i2]=all[i2]/5;

}

for(g=0;gi;g++)

printf("%-6d%-10s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d\n",stu[g].num,stu[g].name,stu[g].sex,stu[g].age,stu[g].score.phy,stu[g].score.maths,stu[g].score.english,stu[g].score.computer,stu[g].score.vc,all[g],averge[g],g+1);

max[0]=0;min[0]=100;

for(j=0;ji;j++)

{

if(stu[j].score.phy=max[0])

{ max[0]=stu[j].score.phy;yy[0][0]=j;}

if(stu[j].score.phy=min[0])

{ min[0]=stu[j].score.phy;yy[0][1]=j;}

}

max[3]=0;min[3]=100;

for(j=0;ji;j++)

{

if(stu[j].score.computer=max[3])

{ max[3]=stu[j].score.computer;yy[3][0]=j;}

if(stu[j].score.computer=min[3])

{ min[3]=stu[j].score.computer;yy[3][1]=j;}

}

max[2]=0;min[2]=100;

for(j=0;ji;j++)

{

if(stu[j].score.english=max[2])

{ max[2]=stu[j].score.english;yy[2][0]=j;}

if(stu[j].score.english=min[2])

{ min[2]=stu[j].score.english;yy[2][1]=j;}

}

max[1]=0;min[1]=100;

for(j=0;ji;j++)

{

if(stu[j].score.maths=max[1])

{ max[1]=stu[j].score.maths;yy[1][0]=j;}

if(stu[j].score.maths=min[1])

{ min[1]=stu[j].score.maths;yy[1][1]=j;}

}

max[4]=0;min[4]=100;

for(j=0;ji;j++)

{

if(stu[j].score.vc=max[4])

{ max[4]=stu[j].score.vc;yy[4][0]=j;}

if(stu[j].score.vc=min[4])

{ min[4]=stu[j].score.vc;yy[4][1]=j;}

}

printf("物理最高分:%d %s最低分:%d %s\n数学最高分:%d %s最低分%d %s\n英语最高分:%d %s最低分:%d %s\n电脑最高分:%d %s最低分:%d %s\nV C最高分:%d %s最低分:%d %s\n",max[0],stu[yy[0][0]].name,min[0],stu[yy[0][1]].name,max[1],stu[yy[1][0]].name,min[1],stu[yy[1][1]].name,max[2],stu[yy[2][0]].name,min[2],stu[yy[2][1]].name,max[3],stu[yy[3][0]].name,min[3],stu[yy[3][1]].name,max[4],stu[yy[4][0]].name,min[4],stu[yy[4][1]].name);

printf("输入0返回菜单");

while(scanf("%d",za)za!=0)

printf("输入错误,请再输入");

if(za==0)break;

}

}

void fine()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ printf("用学号查找请输入0,用姓名查找请输入1\n");

int i1,j1,num1,te=0,tc=0;char name1[20];

scanf("%d",i1);

if(i1!=0i1!=1)

printf("输入错误\n");

else if(i1==0)

{ printf("请输入学生学号");

scanf("%d",num1);

for(j1=0;j1i;j1++)

if(num1==stu[j1].num)

{ printf("学号:%d姓名:%s性别:%s年龄:%d物理:%d数学:%d英语:%d电脑:%dVC:%d总分%d\n",stu[j1].num,stu[j1].name,stu[j1].sex,stu[j1].age,stu[j1].score.phy,stu[j1].score.maths,stu[j1].score.english,stu[j1].score.computer,stu[j1].score.vc,stu[j1].score.vc+stu[j1].score.computer+stu[j1].score.english+stu[j1].score.maths+stu[j1].score.phy);

te=1;

}

if(te!=1) printf("无此学生信息\n");

}

else if(i1==1)

{ printf("请输入学生姓名");

scanf("%s",name1);

for(j1=0;j1i;j1++)

if(strcmp(name1,stu[j1].name)==0)

{ printf("学号:%d姓名:%s性别:%s年龄:%d物理:%d数学:%d英语:%d电脑:%dVC:%d总分%d\n",stu[j1].num,stu[j1].name,stu[j1].sex,stu[j1].age,stu[j1].score.phy,stu[j1].score.maths,stu[j1].score.english,stu[j1].score.computer,stu[j1].score.vc,stu[j1].score.vc+stu[j1].score.computer+stu[j1].score.english+stu[j1].score.maths+stu[j1].score.phy);

tc=1;

}

if(tc!=1) printf("无此学生信息\n");

}

printf("继续查找请输入1,回菜单请输入0");

int qq;

while(scanf("%d",qq)qq!=0qq!=1)

printf("输入错误,请再输入");

if(qq==1)continue;

if(qq==0)break;

}

}

void became()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ printf("请输入要修改的学生学号\n");

int num2,j3;

scanf("%d",num2);

for(j3=0;j3=i;j3++)

if(num2==stu[j3].num)

{ strcpy(stu[j3].name,"/0");

printf("重新输入该学生所有数据,依次为学号、姓名、性别、年龄、物理、数学、英语、电脑、VC。\n");

printf("输入学生名字\n");

scanf("%s",stu[j3].name);

printf("输入学生学号\n");

scanf("%d",stu[j3].num);

printf("输入学生性别\n");

while(scanf("%s",stu[j3].sex)strcmp(stu[j3].sex,"boy")!=0strcmp(stu[j3].sex,"girl")!=0)

printf("输入错误,请再输入");

printf("输入学生年龄\n");

scanf("%d",stu[j3].age);

printf("输入学生成绩(5科)\n");

printf("物理:");

scanf("%d",stu[j3].score.phy);

printf("数学:");

scanf("%d",stu[j3].score.maths);

printf("电脑:");

scanf("%d",stu[j3].score.computer);

printf("英语:");

scanf("%d",stu[j3].score.english);

printf("VC:");

scanf("%d",stu[j3].score.vc);

printf("修改成功");

}

else("未找到该学号学生请确定输入无误\n");

int za;

printf("输入0返回菜单,输入1继续查找");

while(scanf("%d",za)za!=0za!=1)

printf("输入错误,请再输入");

if(za==0)break;

if(za==1)continue;

}

}

void out()

{ if(i==0)printf("请先输入学生信息\n");

while(i!=0)

{ printf("请输入要删除的学生的学号\n");

int num3,j4,i3,za;

scanf("%d",num3);

for(j4=0;j4=i;j4++)

if(num3==stu[j4].num)

{ for(i3=j4;i3i;i3++)

{ stu[i3].num=stu[i3+1].num;

stu[i3].age=stu[i3+1].age;

strcpy(stu[i3].name,stu[i3+1].name);

strcpy(stu[i3].sex,stu[i3+1].sex);

stu[i3].score.computer=stu[i3+1].score.computer;

stu[i3].score.english=stu[i3+1].score.english;

stu[i3].score.maths=stu[i3+1].score.maths;

stu[i3].score.phy=stu[i3+1].score.phy;

stu[i3].score.vc=stu[i3+1].score.vc;

}

i--;

printf("修改成功\n");

}

else printf("未找到该学号学生请确定输入无误\n");

printf("输入0返回菜单,输入1继续修改");

while(scanf("%d",za)za!=0za!=1)

printf("输入错误,请再输入");

if(za==0)break;

if(za==1)continue;

}

}

void into()

{ for(;;)

{ if(i1000){printf("系统存储空间已满,无法继续增加,抱歉!\n");break;}

printf("输入要增加学生信息,依次为学号、姓名、性别、年龄、物理、数学、英语、电脑、VC。\n");

i++;

printf("输入学生名字\n");

scanf("%s",stu[i-1].name);

printf("输入学生学号\n");

scanf("%d",stu[i-1].num);

printf("输入学生性别\n");

while(scanf("%s",stu[i-1].sex)strcmp(stu[i-1].sex,"boy")!=0strcmp(stu[i-1].sex,"girl")!=0)

printf("输入错误,请再输入");

printf("输入学生年龄\n");

scanf("%d",stu[i-1].age);

printf("输入学生成绩(5科)\n");

printf("物理:");

scanf("%d",stu[i-1].score.phy);

printf("数学:");

scanf("%d",stu[i-1].score.maths);

printf("电脑:");

scanf("%d",stu[i-1].score.computer);

printf("英语:");

scanf("%d",stu[i-1].score.english);

printf("VC:");

scanf("%d",stu[i-1].score.vc);

printf("输入成功,剩余%d",1000-i);

if(i=1000){printf("系统存储空间已满,无法继续增加,抱歉!\n");break;}

int za;

printf("输入0返回菜单,输入1继续增加");

while(scanf("%d",za)za!=0za!=1)

printf("输入错误,请再输入");

if(za==0)break;

if(za==1)continue;

}

}

void main()

{ int a,wu=0;

FILE *fp;

fp=fopen("out.txt","rb+");

if(feof(fp)!=0)i=0;

while(feof(fp)==0)

{ fread(i,sizeof(int),1,fp);

for(int m=0;mi;m++)

fread(stu[m],sizeof(struct student),1,fp);

}

fclose(fp);

do

{printf("********************主菜单********************\n");

printf(" 1.输入和储存学生信息(会删除之前记录)\n");

printf(" 2.查看学生信息(已排名)\n");

printf(" 3.学生成绩统计\n");

printf(" 4.查找学生信息\n");

printf(" 5.修改学生信息\n");

printf(" 6.删除学生信息\n");

printf(" 7.增加学生信息\n");

printf(" 8.退出\n");

printf("**********************************************\n");

printf("请输入选择项目序号:");

while(scanf("%d",a)a!=0a!=1a!=2a!=3a!=4a!=5a!=6a!=7a!=8)

printf("输入错误,请再输入");

if(a==1)

{scan();}

if(a==2)

{watch1();}

if(a==3)

{watch2();}

if(a==4)

{fine();}

if(a==5)

{became();}

if(a==6)

{out();}

if(a==7)

{into();}

if(a==8)

{ FILE *fp;

fp=fopen("out.txt","rb+");

fwrite(i,sizeof(int),1,fp);

for(int m=0;mi;m++)

fwrite(stu[m],sizeof(struct student),1,fp);

fclose(fp);

break;

}

}while(8);

}

80分奖励给一个C语言源代码“档案管理系统的设计”

#include stdio.h

#include stdlib.h

#include string.h

#include conio.h

/*********************** 字定义函数声明 ********************************/

void Add(); //增加记录

void Delete(); //删除记录

void Search(); //查找记录

void Alter(); //修改记录

void Views(); //查看所有记录

void delete_all(); //清除所有记录

int check(char strID[]); //查找文件记录中已经存在的学生ID

/********************* 定义学生信息结构体 **********/

struct student

{

//学生信息(学号,姓名,性别,籍贯,电话,住址,民族);

char ID[10];

char name[10];

char sex[4];

char nativePlace[10];

char phone[13];

char nation[6];

};

struct student stu;

FILE *fp;//定义文件指针

/********************* main() 主函数 *************************************/

void main()

{

int flag;

while(flag!=7)

{

printf("\n\t\t 【 请选择您所要的操作 】 \n");

printf("\t\t‖****************************************‖\n");

printf("\t\t‖ 1、增加记录 4、修改记录 ‖\n");

printf("\t\t‖ 2、删除记录 5、清除所有记录 ‖\n");

printf("\t\t‖ 3、查询记录 6、所有记录列表 ‖\n");

printf("\t\t‖ 〖 按任意键退出 〗 ‖\n");

printf("\t\t‖****************************************‖\n");

scanf("%d",flag);

switch(flag)

{

case 1:

Add(); //增加记录

getch();

system("cls");

break;

case 2:

Delete(); //删除记录

getch();

system("cls");

break;

case 3:

Search(); //查找记录

getch();

system("cls");

break;

case 4:

Alter(); //修改记录

getch();

system("cls");

break;

case 5:

delete_all(); //清空所有记录

getch();

system("cls");

break;

case 6:

Views(); //查看所有记录

getch();

system("cls");

break;

default:

exit(0);

}

}

}

/***************** 插入新记录 *******************************/

void Add()

{

if((fp=fopen("StudentMessage","ab+"))==NULL)

{

printf("学生信息文件打开失败!");

exit(1);

}

else

{

int check_add(char stuID[]);

long flength,offset;

int k=0,t; //t用来接收check()函数的传值

char str[53];

fseek(fp,0,SEEK_END);

flength=ftell(fp)/sizeof(stu); //统计文件中有多少条记录

printf("\t请输入要插入的学生的信息:\n");

input_message:

printf("\t学号:");

scanf("%s",stu.ID);

t=check_add(stu.ID);

if(t==1)

{

printf("\t》 该学号已经存在,不允许重复插入!请重新输入一个学号。《\n");

goto input_message; //跳转到“input_message”标记处继续执行

}

printf("\t姓名:");

scanf("%s",stu.name);

printf("\t性别:");

scanf("%s",stu.sex);

printf("\t籍贯:");

scanf("%s",stu.nation);

printf("\t电话:");

scanf("%s",stu.phone);

printf("\t名族:");

scanf("%s",stu.nativePlace);

rewind(fp);

//检测文件中是否有空字符串,如果有则在此处插入新记录,如果没有则插入到文件尾

while(!feof(fp))

{

fread(str,sizeof(stu),1,fp);

//检测到空字符串,则将fp所指向的文件关闭,以读写方式重新打开

if(strcmp(str,"")==0)

{

fclose(fp);

fp=fopen("StudentMessage","rb+");

break;

}

k++;

}

offset=sizeof(stu)*k;

fseek(fp,offset,SEEK_SET);

fwrite(stu,sizeof(stu),1,fp);

fclose(fp);

printf("插入数据成功!\n");

}

}

/****************** 检测将要插入的学号是否已存在文件记录中 **************************/

int check(char stuID[10])

{

int id=0,k=1;

FILE *fpp;

struct student checkID;

if((fpp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开一个二进制文件StudentMessage

{

printf("文件打开失败!\n");

exit(1);//打开失败,返回系统

}

while(!feof(fpp))

{

fread(checkID,sizeof(stu),1,fpp);

//检测用户输入的学号是否已经存在,若存在则终止程序的执行

if(strcmp(checkID.ID,stuID)==0)

{

break;

}

id++;

}

fclose(fpp);

return id*k;

}

/******************** 检测输入的学号是否能插入 *****************************************/

int check_add(char stuID[10])

{

int id;

FILE *fpp;

struct student checkID;

if((fpp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开一个二进制文件StudentMessage

{

printf("文件打开失败!\n");

exit(1);//打开失败,返回系统

}

while(!feof(fpp))

{

fread(checkID,sizeof(stu),1,fpp);

//检测用户输入的学号是否已经存在,若存在则终止程序的执行

if(strcmp(checkID.ID,stuID)==0)

{

id=1;

break;

}

else

{

id=0;

}

}

fclose(fpp);

return id;

}

/******************* 根据用户输入的学号删除记录 ************/

void Delete()

{

printf("删除相应记录!\n");

if((fp=fopen("StudentMessage","rb+"))==NULL) //以可读可写方式打开一个二进制文件

{

printf("文件打开失败!\n");

return;

}

else

{

char message[10]; //接收用户需要删除的学号

int i;

long flength;

fseek(fp,0,SEEK_END); //把文件指针移到文件尾

flength=ftell(fp)/sizeof(struct student); //计算文件中有多少条记录

printf("\t请输入您要删除的学号:");

scanf("%s",message);

i=check(message);

long offset=sizeof(stu)*i; //记录要删除的学号的位置

if(flength==0)

{

printf("文件记录为空!\n");

return;

}

else if(iflength)

{

printf("没有该学生信息!\n");

return;

}

else

{

//将要删除的字符串全部置为空

strcpy(stu.ID,"");

strcpy(stu.name,"");

strcpy(stu.sex,"");

strcpy(stu.nation,"");

strcpy(stu.phone,"");

strcpy(stu.nativePlace,"");

fseek(fp,offset,SEEK_SET); //移动指针到要删除的学号的位置

fwrite(stu,sizeof(stu),1,fp); //将置空的信息重新写回到文件中

printf("\t\t数据删除成功!\n");

}

fclose(fp);

}

}

/****************** 查找数据 ***************************************/

void Search()

{

if((fp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开StudentMessage文件

{

printf("\t文件打开失败!\n");

return;

}

else

{

char message[10]; //接收用户需要查找的信息

int i;

long flength,offset;

fseek(fp,0,SEEK_END); //将文件指针移文件尾

flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录

printf("\t请输入您要查找的学号:");

scanf("%s",message);

i=check(message);

offset=sizeof(struct student)*i;

if(flength==0)

{

printf("\t文件记录为空!\n");

return;

}

else if(iflength)

{

printf("\t\t查找失败,没有找到相应信息!\n");

return;

}

else

{

//输出查找到的内容

rewind(fp);

fseek(fp,offset,SEEK_SET);

fread(stu,sizeof(struct student),1,fp);

printf("学号:%s ",stu.ID);

printf("姓名:%s ",stu.name);

printf("性别:%s ",stu.sex);

printf("籍贯:%s ",stu.nation);

printf("电话:%s ",stu.phone);

printf("民族:%s\n",stu.nativePlace);

}

fclose(fp);

}

}

/****************** 修改记录 ********************************/

void Alter()

{

printf("修改相应记录!\n");

if((fp=fopen("StudentMessage","rb+"))==NULL)

{

printf("文件打开失败!\n");

exit(1);

}

else

{

char message[10]; //存储用户要修改的学号

int i;

long flength,offset;

fseek(fp,0,SEEK_END); //移动文件指针到文件尾

flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录

printf("\t请输入您要修改的学号:");

scanf("%s",message);

i=check(message);

offset=sizeof(struct student)*i; //记录要修改的记录在文件中的位置

if(flength==0)

{

printf("文件记录为空!\n");

return;

}

else if(iflength)

{

printf("没有该学生信息!\n");

return;

}

else

{

rewind(fp);

fseek(fp,offset,SEEK_SET);

fread(stu,sizeof(struct student),1,fp);

printf("该学生原来的信息:\n");

printf("\t学号:%s ",stu.ID);

printf("姓名:%s ",stu.name);

printf("性别:%s ",stu.sex);

printf("籍贯:%s ",stu.nation);

printf("电话:%s ",stu.phone);

printf("名族:%s\n\n",stu.nativePlace);

printf("请更新该学生的信息:\n");

strcpy(stu.ID,message);

printf("\t姓名:");

scanf("%s",stu.name);

printf("\t性别:");

scanf("%s",stu.sex);

printf("\t籍贯:");

scanf("%s",stu.nation);

printf("\t电话:");

scanf("%s",stu.phone);

printf("\t名族:");

scanf("%s",stu.nativePlace);

fseek(fp,offset,SEEK_SET); //将文件指针指向要修改的地方

fwrite(stu,sizeof(stu),1,fp); //将修改后的内容重新写回到原来的地方

printf("\t数据更新成功!\n");

}

fclose(fp);

}

}

/************** 查看所有记录 ************************************/

void Views()

{

long flength;

if((fp=fopen("StudentMessage","rb"))==NULL)

{

printf("文件打开失败!\n");

exit(1);

}

fseek(fp,0,SEEK_END); //移动文件指针到文件尾

flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录

if(flength==0)

{

printf("文件中没有记录!");

return;

}

rewind(fp); //将文件指针移动到文件头

printf("\t\t\t所有记录列表\n\n");

while(!feof(fp))

{

fread(stu,sizeof(stu),1,fp);

if(strcmp(stu.ID,"")!=0) //检测文件中的空字符串,如果不是空字符串则输出

{

printf("学号:%s ",stu.ID);

printf("姓名:%s ",stu.name);

printf("性别:%s ",stu.sex);

printf("籍贯:%s ",stu.nation);

printf("电话:%s ",stu.phone);

printf("民族:%s\n",stu.nativePlace);

}

}

fclose(fp);

}

/******************** 删除所有记录 ********************************/

void delete_all()

{

int ch;

printf("该操作将删除所有记录,按“0”退出,按“1”继续。\n");

scanf("%d",ch);

switch(ch)

{

case 0:

break;

case 1:

printf("将删除所有记录,继续请按“1”,退出请按“0”。\n");

scanf("%d",ch);

switch(ch)

{

case 0:

break;

case 1:

if (remove("StudentMessage") == 0) //删除StudentMessage文件

{

printf("操作成功,所有记录已经删除!");

}

else

{

perror("remove"); //如果删除不成功则输出系统出错的信息

}

break;

}

}

}

C语言程序设计--班级档案管理系统

给,已经编译运行确认了:

#includestdio.h

#includestdlib.h

#includestring.h

#includeconio.h

#define N 10

int M=0;

struct student

{

char num[13];

char name[20];

char sex;

char address[30];

int age;

};

typedef struct LB

{

struct student XINXI;

struct LB *next;

}LB_1,*LB_2;

void CAIDANG()

{

printf(" \t \t \t (欢迎使用本班级档案管理系统)\t\t\t\t\n");

printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入我们的系统 ★*★*★*★*★*★*★*★*★*★\n\n");

printf("1.录入学生资料\t\t\t\t\t4.查询学生信息\n\n");

printf("2.修改学生信息\t\t\t\t\t5.删除学生信息\n\n");

printf("3.保存学生信息\t\t\t\t\t0.退出档案系统\n\n");

printf(" \n");

printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入本系统 ★*★*★*★*★*★*★*★*★*★\n");

}

/*文本颜色*/

void color()

{

textbackground(8);

textcolor(9);

clrscr();

}

void Wrong()

{

printf("\n对不起您的输入错误!\n");

}

void SORRY()

{

printf("\n对不起该同学现没有任何信息!\n");

}

void printe(LB_1 *p)/* 本函数用于输出英文 */

{

printf(" %-2s %s\t %s\t%s\t %d\t \n",p-XINXI.num,p-XINXI.name,p-XINXI.sex,p-XINXI.address,p-XINXI.age);

}

/* 该函数用于定位链表中符合要求的接点,并返回该指针 */

LB_1 *Locate(LB_2 l,char findmess[],char nameornum[])

{

LB_1 *r;

if(strcmp(nameornum,"num")==0) /* 按学号查询 */

{

r=l-next;

while(r!=NULL)

{

if(strcmp(r-XINXI.num,findmess)==0)

return r;

r=r-next;

}

}

else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */

{

r=l-next;

while(r!=NULL)

{

if(strcmp(r-XINXI.name,findmess)==0)

return r;

r=r-next;

}

} return 0;

}

/*以下是增加学生信息的函数*/

void TIANJIA(LB_2 l)

{

LB_1 *p,*r,*s;

char num[13];

r=l; s=l-next;

while(r-next!=NULL) /*些处循环一直到最后*/

r=r-next;

while(1)

{

printf(" 请输入添加的学生学号(输入'0'返回上一级菜单:)");

scanf("%s",num);

if(strcmp(num,"0")==0)

break;

while(s)

{

if(strcmp(s-XINXI.num,num)==0)

{

printf("(必看提示):学号为'%s'的学生已有信息,若要修改请你输入'2 修改'!\n",num);

printe(s);

printf("\n");

return;

}

s=s-next;

} p=(LB_1 *)malloc(sizeof(LB_1));

strcpy(p-XINXI.num,num);

printf(" 请你输入学号:");

scanf("%s",p-XINXI.num);

getchar();

printf(" 请你输入姓名:");

scanf("%s",p-XINXI.name);

getchar();

printf(" 请你输入性别:");

scanf("%s",p-XINXI.sex);

getchar();

printf(" 请你输入地址:");

scanf("%s",p-XINXI.address);

getchar();

printf(" 请你输入年龄:");

scanf("%d",p-XINXI.age);

getchar();

/* 下面是把指针变量转到链表的下一个结点中以便循环的时候使用 */

p-next=NULL;

r-next=p;

r=p; M=1;

}

}

/*以下是删除学生信息的函数*/

void SHANCHU(LB_2 l)

{

int sel;

LB_1 *p,*r;

char findmess[20];

if(!l-next)

{

printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n");

return;

}

printf("\n 必看提示 以学号删除请输入1\n 以姓名删除请输入2\n PLEASE:");

scanf("%d",sel);

if(sel==1)

{

printf("请输入要删除的学生的学号PLEASE:");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{ r=l;

while(r-next!=p)

r=r-next;

r-next=p-next;

free(p);

printf("\n*******(必看提示):该学生的信息已完全删除成功!\n");

M=1;

}

else

SORRY();

}

else if(sel==2)

{

printf("请输入要删除的学生的姓名PLEASE:");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{ r=l;

while(r-next!=p)

r=r-next;

r-next=p-next;

free(p);

printf("\n******(必看提示):该学生信息已成功删除!\n");

M=1;

}

else

SORRY();

}

else

Wrong();

}

/*以下是查询学生信息*/

void CHAXIONG(LB_2 l)

{ int sel;

char findmess[20];

LB_1 *p;

if(!l-next)

{ printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n");

return;

}

printf("\n以学号查询请输入1:\n以姓名查询请输入2:\n以性别查询请输入3:\n以性别查询请输入4:\n PLEASE:");

scanf("%d",sel);

if(sel==1)/*输入学号查询*/

{

printf("请你输入要查找的学号:");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{ printf("\t\t\t\t查找结果\n");

printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p-XINXI.num,p-XINXI.name,p-XINXI.sex,p-XINXI.address,p-XINXI.age);

}

else

SORRY();

}

if(sel==2) /* 输入姓名查询 */

{

printf("请你输入要查找的姓名:");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{ printf("\t\t\t\t查找结果\n");

printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p-XINXI.num,p-XINXI.name,p-XINXI.sex,p-XINXI.address,p-XINXI.age);

}

else

SORRY();

}

else

Wrong();

}

/*以下是修改学生信息的函数*/

void XIUGEI(LB_2 l)

{

LB_1 *p;

long int i,j;

char findmess[20];

if(!l-next)

{ printf("\n(必看提示):对不起,现文件中没有信息:所以您不能查询!\n");

return;

}

for(i=1;i=2;i++)

{

printf("\n\n\n\n\n");

printf("请输入密码:");

scanf("%s",j);

if(j==2007)break;

else

{if(j!=2007)

return(CAIDANG());

}

}

printf("请你输入要修改的学生学号:");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{ printf("请你输入新学号(原来是%s):",p-XINXI.num);

scanf("%s",p-XINXI.num);

printf("请你输入新姓名(原来是%s):",p-XINXI.name);

scanf("%s",p-XINXI.name);

printf("请你输入新性别(原来是%s):",p-XINXI.sex);

scanf("%s",p-XINXI.sex);

printf("请你输入新地址(原来是%s):",p-XINXI.address);

scanf("%s",p-XINXI.address);

printf("请你输入新年龄(原来是%d):",p-XINXI.age);

scanf("%s",p-XINXI.age);

getchar();

M=1;

}

else

SORRY();

}

/*保存在文件中*/

void BAOCONG(LB_2 l)

{

FILE* fp;

LB_1 *p;

int flag=1,count=0;

fp=fopen("c:\\lyg","wr");

if(fp==NULL)

{

printf("\n=====提示:重新打开文件时发生错误!\n");

exit(1);

}

p=l-next;

while(p)

{

if(fwrite(p,sizeof(LB_1),1,fp)==1)

{ p=p-next;

count++;

}

else

{ flag=0;

break;

}

}

if(flag)

{ printf("\n 提示;正在保存文件 共保存了%d条信息\n",count);M=0;

}

fclose(fp);

}

/*以下是主函数*/

void main()

{

LB_2 l;/* 连表 */

FILE *fp; /* 文件指针 */

int sel;long i,j,d;

char ch;

char jian;

int count=0;

LB_1 *p,*r;

color();

clrscr();

l=(LB_1*)malloc(sizeof(LB_1));

l-next=NULL;

r=l;

fp=fopen("C:\\lyg","rb");

if(fp==NULL)

{

printf("\t\t\t\t\n\n");

printf("\n");

printf(" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" Welcome to come to our system!!! \n"

" You can only inquire your own messages! If you want to see about other \n"

" students' messages,you need first to send inquirment to them,asking for \n"

" agreement,then you can visit his/her messages! \n"

" Have a good time! now you can come in!!! \n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" 注意:系统启动码为 : ILOVEMYSCHOOLVERYMUCH !!! \n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n");

printf("欢迎使用,本系统中现没有任何记录,您要先创建文件请按以下操做进行PLEASE:\n");

printf("\n 提示:文件还不存在,是否创建?(y/n)请做选择--\n");

printf("\n");

scanf("%c",jian);

if(jian=='y'||jian=='Y')

{fp=fopen("C:\\lyg","wb");

clrscr();

}

{for(i=1;i=2;i++)

{

printf("\n\n\n\n\n");

printf("请输入密码:");

scanf("%ld",j);

if(j==2007)break;

else

{if(j!=2007)return;

}

}

}

exit(0);clrscr();

}

while(!feof(fp))

{

p=(LB_1*)malloc(sizeof(LB_1));

if(fread(p,sizeof(LB_1),1,fp)) /* 将文件的内容放入链表中 */

{

p-next=NULL;

r-next=p;

r=p; /*把该结点放入链表中*/

count++;

}

}

fclose(fp); /* 关闭文件 */

while(1)

{

CAIDANG();

printf("请你选择操作:");

scanf("%d",sel);

clrscr();

printf("\n\n\n");

if(sel==0)

{

if(M==1)

{ getchar();

printf("\n(必看提示):链表中的信息已经改动,如果确认把改动保存在文件中请做选择(y/n)?\n");

scanf("%c",ch);

if(ch=='y'||ch=='Y')

BAOCONG(l);

}

break;clrscr();

}

switch(sel)

{

case 1: TIANJIA(l);break;

case 4: CHAXIONG(l);break;

case 3: BAOCONG(l);break;

case 2: XIUGEI(l);break;

case 5: SHANCHU(l);break;

default: getchar();break;

}

} end:

getchar();

}

关于班级档案管理源代码和班级档案管理源代码怎么查的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/7534.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载