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

学籍学籍管理系统源代码(学籍系统版本号)

admin 发布:2022-12-19 04:05 88


本篇文章给大家谈谈学籍学籍管理系统源代码,以及学籍系统版本号对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

目前学籍状态代码

150802临河区150821五原县150822磴口县150823乌拉特前旗150824乌拉特中旗150825乌拉特后旗150826杭锦后旗150900乌兰察布市150901市辖区150902集宁区150921卓资县150922化德县150923商都县150924兴和县150925凉城县150926察哈尔右翼前旗150927察哈尔右翼中旗150928察哈尔右翼后旗150929四子王旗150981丰镇市152200兴安盟152201乌兰浩特市152202阿尔山市152221科尔沁右翼前旗152222科尔沁右翼中旗152223扎赉特旗152224突泉县152500锡林郭勒盟152501二连浩特市152502锡林浩特市152522阿巴嘎旗152523苏尼特左旗152524苏尼特右旗152525东乌珠穆沁旗152526西乌珠穆沁旗152527太仆寺旗152528镶黄旗152529正镶白旗152530正蓝旗152531多伦县152900阿拉善盟152921阿拉善左旗152922阿拉善右旗152923额济纳旗210000辽宁省210100沈阳市 学籍系统代码 全国中小学学生学籍信息管理系统专栏县及县以上行政区划代码 350000 福建省 350100 福州市 350101 市辖区 350102 鼓楼区 350103 台江区 350104 仓山区 350105 马尾区 350111 晋安区 350121 闽侯县 350122 连江县 350123 罗源县 350124 闽清县 350125 永泰县 350128 平潭县 350181 福清市 350182 长乐市 350200 厦门市 350201 市辖区 350203 思明区 350205 海沧区 350206 湖里区 350211 集美区 350212 同安区 350213 翔安区 350300 莆田市 350301 市辖区 350302 城厢区 130435 曲周县 130481 武安市 130500 邢台市 130501 市辖区 130502 桥东区 130503 桥西区 130521 邢台县 130522 临城县 130523 内丘县 130524 柏乡县 130525 隆尧县 130526

急求C语言源代码 题目:学生学籍管理系统 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,

#include stdio.h

#include stdlib.h

#include string.h

#include malloc.h

struct student

{

int num;

char name[20];

char tel[20];

struct student *next;

};

struct student *head,*tmp1,*tmp2;

int n;

void Load()

{

FILE *fp1;

int i;

fp1=fopen("file.txt","rb");

struct student *tmp;

struct student *q;

printf("开始读取学生信息 \n");

head=0;

while(1){

tmp=malloc(sizeof(struct student));

tmp-next=0;

//i=fscanf(fp1,"学号:%d 姓名:%s 电话:%s\n",(tmp-num),tmp-name,tmp-tel);

i=fread(tmp,sizeof(struct student),1,fp1);

if(i==1){

if(head==0)

q=head=tmp;

printf("读取一条学生信息\n");

q-next=tmp;

q=q-next;

}else{

fclose(fp1);

return;

}

}

}

void OutPut()

{

tmp1=head;

while(tmp1!=0)

{

printf("学号:%d 姓名:%s 电话:%s\n",tmp1-num,tmp1-name,tmp1-tel);

tmp1=tmp1-next;

}

}

void InPut( )

{ struct student *q,*p;

printf("请按要求增加学生信息:\n");

p=malloc(sizeof(struct student));

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

scanf("%d",p-num);

printf("\n请输入学生姓名:");

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

printf("\n请输入学生电话:");

scanf("%s",p-tel);

p-next=0;

if(head==0){

head=p;

q=p;

}else{

q=head;

while(q-next!=0)

{

q=q-next;

}

q-next=p;

q=p;

}

}

void Delete()

{ struct student *q,*p;

int num;int i; /* 这里num为第几条 */

printf("请输入要删除的第i条记录\n");

scanf("%d",num);

if(num==1)

{head=head-next;}/*删除头节点*/

p=head;

for(i=1;inum-1;i++) /*移动p指向要删除的节点*/

{p=p-next;}

if (num1)

p-next=(p-next)-next;/*例如:把2 4节点链接,删除3节点*/

printf("删除成功,请查看\n");

}

void Search()

{ char c[20];

char tmp2_num[20];

printf("请输入需要查询的信息内容:\n");

scanf("%s",c);

printf("你要查询的内容为:\n");

tmp2=head;/*进行遍历*/

while(tmp2!=0)

{

printf("学号:%d姓名:%s电话:%s\n",tmp2-num,tmp2-name,tmp2-tel);

if (strncasecmp(tmp2-name,c,strlen(c))==0)

printf("姓名匹配成功\n");

/*进行匹配*/

if (strncasecmp(tmp2-tel,c,strlen(c))==0)

printf("电话匹配成功\n");

sprintf(tmp2_num,"%d",tmp2-num);

if(strncasecmp(tmp2_num,c,strlen(c))==0)

printf("学号匹配成功\n");

tmp2=tmp2-next;

}

}

void Save()

{

FILE *fp1;

struct student *q,*p1;

fp1=fopen("file.txt","w");

p1=0;

p1=head;

if(head==0)

{

printf("现在没有学生信息,请先增加学生信息:\n");

}

while(p1!=0)

{

//fprintf(fp1,"学号:%d 姓名:%s 电话:%s\n",p1-num,p1-name,p1-tel);

fwrite(p1,sizeof(struct student),1,fp1);

printf("学号:%d 姓名:%s 电话:%s\n",p1-num,p1-name,p1-tel);

p1=p1-next;

}

fclose(fp1);

}

void Change()

{ struct student *p;

int num;int i; /* 这里num为第几条 */

printf("请输入要修改的第i条记录\n");

scanf("%d",num);

p=head;

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

{

p=p-next;

}

printf("学号:%d 姓名:%s 电话:%s\n",p-num,p-name,p-tel);

printf("请修改学生学号:");

scanf("%d",p-num);

printf("请修改学生姓名:");

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

printf("请修改学生电话:");

scanf("%s",p-tel);

}

int main()

{

head=tmp1=0;

while(1)

{

printf("\n\n");

printf("\t\t*** 欢迎进入学生管理系统 ***\n");

printf("\t\t*** 请按要求输入相应信息 ***\n");

printf("\t\t*** 0.加载学生信息 ***\n");

printf("\t\t*** 1.查看学生情况 ***\n ");

printf("\t\t*** 2.增加学生信息 ***\n ");

printf("\t\t*** 3.删除学生记录 ***\n ");

printf("\t\t*** 4.查询学生记录 ***\n ");

printf("\t\t*** 5.保存学生信息 ***\n ");

printf("\t\t*** 6.修改学生信息 ***\n ");

printf("\t\t*** 7.退出 ***\n ");

printf("选择功能:");

scanf("%d",n);

switch(n)

{

case 0:

Load();

break;

case 1:

OutPut();

break;

case 2:

InPut();

break;

case 3:

Delete();

break;

case 4:

Search();

break;

case 5:

Save();

break;

case 6: Change();

break;

case 7:

exit(0);

break;

default:

printf("暂无此功能");

}

}

}

跪求C++高校学籍管理程序代码

#include iostream //为了输入和输出

#include map //为了使用映射容器

#include string //为了使用string字符串

#include algorithm //为了使用排序函数sort()和查找函数find_if()

#includevector //为了使用向量容器

#include limits // 为了使用numeric_limits

#include iomanip //为了使用setw()、setfill()

using namespace std;

struct Student //学生信息

{

string name; //姓名

double math; //数学成绩

double chinese; //语文成绩

double total; //总分

};

//CITT代表map容器的迭代器类型

typedef mapint,Student::iterator CITT;

CITT citt;//为了给Find函数节省一个参数,这里定义了一个迭代器citt

//map容器的元素类型是value_type,value_type就是pair结构,

//这个结构保存了一个关键字和一个关联值,

//typedef为这个结构取了个新名字叫VT

typedef mapint,Student::value_type VT;

class func//为find_if()函数执行自定义查找而定义的类

{

public:

func(const string name):NAME(name){}

bool operator () (VTvt)

{

return vt.second.name==NAME;

}

private:

string NAME;

};

class Cmp

{ // 用于比较总成绩的类

public:

bool operator()(const pairint,Studentp1,const pairint,Student p2)const

{

return(p1.second.total p2.second.total);

}

};

class Chinese

{ // 用于比较语文成绩的类

public:

bool operator()(const pairint,Studentp1,const pairint,Student p2)const

{

return (p1.second.chinese p2.second.chinese);

}

};

class Math

{ // 用于比较数学成绩的类

public:

bool operator()(const pairint,Student p1,const pairint,Student p2)const

{

return(p1.second.math p2.second.math);

}

};

templateclass T

void show(T vt) //没有具体化类型的show,该函数被多次用到

{

coutfixed"学号:"setw(2)setfill('0')vt-first" "

"姓名:"setw(6)setprecision(2)setfill(' ')vt-second.name" "

"语文:"setw(6)setprecision(2)setfill(' ')vt-second.chinese" "

"数学:"setw(6)setprecision(2)setfill(' ')vt-second.math" "

"总分:"setw(6)setprecision(2)setfill(' ')vt-second.totalendl;

}

template

void show(VT vt)//具体化了类型的show函数

{

coutfixed"学号:"setw(2)setfill('0')vt.first" "

"姓名:"setw(6) setprecision(2)setfill(' ')vt.second.name" "

"语文:"setw(6) setprecision(2)setfill(' ')vt.second.chinese" "

"数学:"setw(6) setprecision(2)setfill(' ')vt.second.math" "

"总分:"setw(6)setprecision(2)setfill(' ')vt.second.totalendl;

}

//适用于查找、删除、修改的Find函数,参数F用来区别搜索的动机,是查找、删除还是修改

CITT Find(mapint,StudentmapStu,int F)

{

char *str;

char ch[50];

char ch1[40];

string name;

if(F==1)

{

str="查找";

}

else if(F==2)

{

str="删除";

}

else

{

str="修改";

}

//格式化输出字符串ch,可用于查找、删除和修改,一举三得。

sprintf_s(ch,"(1)按学号进行%s (2)按姓名进行%s (3)退出:",str,str);

while(1)

{

coutch;

int choice;

cinchoice;

if(cin.fail())

{

cin.clear();

cin.ignore( numeric_limitsstreamsize::max(), '\n' );

cout"输入非法数字\n";

continue;

}

else if(choice==1)

{

sprintf_s(ch1,"请输入您要%s的学号:",str);

coutch1;

cinchoice;

citt=mapStu.find(choice);

}

else if(choice==2)

{

sprintf_s(ch1,"请输入您要%s的姓名:",str);

coutch1;

cinname;

citt=find_if(mapStu.begin(),mapStu.end(),func(name));

}

else if(choice==3)

{

break;

}

else

{

cout"请输入1-3之间的数字\n";

continue;

}

if (citt==mapStu.end())

{

cout "没有找到...\n";

}

else

{

if(F==1)

{

show(citt);

}

else if(F==2)

{

//citt=mapStu.erase(citt);

mapStu.erase(citt);

citt++;

cout"删除成功\n";

}

else

{

show(citt);

cout"是否对该学生的记录进行修改,1是,2否:";

int choice;

cinchoice;

if(choice==2)

continue;

else

{

cout"请输入该生的名字:";

cincitt-second.name;

cout"请输入该生的语文成绩:";

cincitt-second.chinese;

cout"请输入该生的数学成绩:";

cincitt-second.math;

citt-second.total=citt-second.chinese+citt-second.math;

cout"学生记录更新如下:"endl;

show(citt);

}

}

}

}

return citt;

}

//用于累加所有学生的总成绩的Add函数

double Add(mapint,StudentmapStu)

{

double total=0;

for(citt=mapStu.begin();citt!=mapStu.end();++citt)

total+=citt-second.total;

return total;

}

int main()

{

mapint,StudentmapStu; //关键字具有唯一性,不能有两个内容相同的学号;

bool quit=false; //用于退出死循环

int choice; //保存选择值

int num; //保存学号

string name; //保存姓名

Student student; //保存学生记录

while(1)

{

system("cls");

cout"---------------------------------学生成绩管理系统-------------------------------\n";

cout"(1)插入(2)删除(3)修改(4)查找(5)总分(6)统计(7)显示(8)排序(9)退出:";

cinchoice;

//结构体模板pair,第1个参数是map容器的迭代器,用来指向容器中的每个元素,

//第2个参数是布尔类型,用来记录元素是否插入成功,不成功则值为false

//p是用这个结构体模板定义的结构体变量,该变量会拥有2个成员,

//first成员是map容器的迭代器,可以用它来访问map容器的元素

//second成员是检测是否插入成功的bool变量,后面在调用insert函数时会用到它。

pairmapint,Student::iterator, bool p;

switch(choice)

{

case 1:

while(1)

{

cout"请输入学生学号,输入字符退出:";

cinnum;//输入学号

if(cin.fail())//假如输入非法数字,如字符

{

cin.clear();//重置流状态,以去掉非法标志

//清空输入缓冲区,将非法数字清除

cin.ignore(numeric_limitsstreamsize::max(), '\n' );

break;//退出case 1中的死循环

}

else //没有输入非法数字

{//利用一个结构变量student保存学生信息

cout"请输入学生姓名:";

cinstudent.name;

cout"请输入学生语文成绩:";

cinstudent.chinese;

cout"请输入学生数学成绩:";

cinstudent.math;

//计算出总分并保存到total成员中

student.total=student.chinese+student.math;

//调用insert函数将pair结构变量插入到容器中

//pair结构变量保存了关键字num和关联值student

//num保存的是学号,student保存的是姓名和学生成绩

//通过调用pair结构的构造函数来完成对pair结构变量的初始化

//insert再将其插入到mapStu容器中

//返回值也是个pair结构变量,由p来保存

//这样p就拥有了2个成员,first成员指向刚插入的元素

//second成员保存了是否插入成功的bool值

p=mapStu.insert(pairint,Student(num,student));

if(p.second)//检测second成员是否为真,为真意味着成功插入

cout"成功插入一条学生记录。"std::endl;

else//为假则表示插入失败,有相同关键字是导致失败的原因

cout "存在相同的学号,插入学生记录失败。\n";

}

}

break;

case 2://删除

Find(mapStu,2);//调用Find函数执行搜索,2表示搜索到目标后会执行删除

break;

case 3://修改

Find(mapStu,3);//调用Find函数执行搜索,3表示搜索到目标后会执行修改

break;

case 4://查找

Find(mapStu,1);//调用Find函数执行搜索,1表示搜索到目标后会执行输出

break;

case 5://总分

cout"所有学生的总成绩为:"Add(mapStu)endl;

cin.get();

cin.get();

break;

case 6://统计

cout"共记录"mapStu.size()"名学生的成绩.\n";

cin.get();

cin.get();

break;

case 7://显示

if(!mapStu.size())

{

cout"学生记录为空。\n";

cin.get();

cin.get();

break;

}

//for_each的最后1个参数是函数对象show

for_each(mapStu.begin(),mapStu.end(),showVT);

cin.get();

cin.get();

break;

case 8://排序

{

//算法类中的大部分排序函数都不能用于关联容器,比如说sort函数,

//sort函数不能用在关联容器中,map是个关联容器,所以不能用。

//map是个排好序的容器,因为排好序,该容器不再提供排序函数,

//为了执行对成绩的排序,需要将map容器中的元素挪动到向量容器中。

//wd是定义的向量容器,它的元素类型是pairint,Student,

//也就是说每个元素有2个成员,一个是关键字,一个是关联值

//关键字类型是int,用来保存学号,默认就是用学号来排序的。

//关联值类型是Student,用来保存学生姓名和成绩。

//小括号中的2个参数mapStu.begin()和mapStu.end()表示把map容

//器中的所有元素都挪动到向量容器wd中。

vector pairint,Student wd(mapStu.begin(),mapStu.end());

//向量容器的迭代器it

vector pairint,Student ::iterator it;

if(!wd.size())//判断容器是否为空

{

cout"没有学生记录,无法进行排序。\n";

cin.get();

cin.get();

break;

}

bool quit=false;//用于退出死循环

int choice;//用于记录菜单选项值

while(1)

{

cout"(1)按语文成绩进行排序(2)按数学成绩进行排序(3)按总成绩进行排序(4)返回:";

cinchoice;

switch(choice)

{

case 1://按语文成绩排序

sort(wd.begin(), wd.end(), Chinese());

for(it=wd.begin();it!=wd.end();++it)

show(it);

break;

case 2://按数学成绩排序

sort(wd.begin(), wd.end(), Math());

for(it=wd.begin(); it!=wd.end();++it)

show(it);

break;

case 3://按总成绩排序

sort(wd.begin(), wd.end(), Cmp());

for(it=wd.begin();it!=wd.end();++it)

show(it);

break;

case 4://返回

quit=true;

break;

default://警告

cout"请输入1-4之间的数字\n";

break;

}

if(quit==true)

break;

}

}

break;

case 9://退出

quit=true;

break;

}

if(quit==true)

break;

}

return 0;

}

求一个用C++语言写的学生信息管理系统源代码

#includeiostream

#includestring

#includefstream

#includeconio.h

#includewindows.h

using namespace std;

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

// 抽象基类 //

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

class Base

{

protected:

int id;//本科生,研究生识别

int num;

char name[20];

char sex[5];

double ch,en,ma;//成绩

int borth;

public:

Base();

virtual int getid()=0;//本科生,研究生识别

virtual void set()=0;//纯虚函数,在派生类中调用

virtual void display()=0;

double getsum();//取总成绩

char * getsex();//取性别

double getch();//取各科成绩

double geten();

double getma();

int getborth();

int getnum();//取学号

char* getname();//取姓名

};

Base::Base()//基类构造

{

num=0;

strcpy(name,"No name");

ch=0;en=0;ma=0;

borth=1900;

}

int Base::getborth()

{return borth;}

double Base::getsum()

{return ch+en+ma;}

double Base::getch()

{return ch;}

double Base::geten()

{return en;}

double Base::getma()

{return ma;}

int Base::getnum()

{return num;}

char *Base::getsex()

{return sex;}

char * Base::getname()

{return name;}

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

// 本科生类 //

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

class College:public Base//本科生类

{

private:

int id;//本科生识别

关于学籍学籍管理系统源代码和学籍系统版本号的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

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

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


取消回复欢迎 发表评论:

分享到

温馨提示

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

联系我们反馈

立即下载