用C语言设计学生学籍管理程序

#包括

#包括

/*定义学生结构*/

结构学生

{

Char ID用C语言写的一个学籍管理系统。 #includeiostream

#includestring

# include流

#includeiomanip

使用命名空间std

班级学生

{

受保护:

int数;

char name[20];

char sex[6];

char place〔20〕;

char nation[6];

char出生[20];

char party[10];

char id[20];

双倍积分[3];

公共:

学生*下一个;

学生(){ }

~student(){ }

char * getname(){ return name;}

int get number(){ return number;}

double get score(int I){ return score[3];}

float getg(){ return(score[0]score[1]score[2]);}

无效输入()

{

int e = 1;

Cout " \ t \ t \根据提示输入:" endl

Cout " \ t \输入号码:";

cinnumber

Cout " \ t \输入名称:";

肉桂;

{

cout " \ t \ tEnter gender:";

辛塞克斯;

If(strcmp(性别,“男性”)==0 || strcmp(性别,“女性)”==0)

{

Cout " \ t \输入产地:";

cinplace

cout " \ t \ tEnter nationality:";

cinnation

Cout " \ t \输入生日:";

cinbirth

Cout "\ t \ tEnter政治观点:";

cinparty

Cout " \ t \输入ID号:";

cinid

Cout " \ t \输入数学分数:";

CIN score[0];

Cout "\ t \ tEnter英语成绩:";

CIN score[1];

Cout " \ t \输入计算机分数:";

CIN score[2];

e = 0;

}

其他

{

Cout " \ t \ t \没有此类型的性别!重新进入!”endl

e = 1;

}

} while(e);

返回;

}

无效输入(如果流是)

{

isnumbernamespacenationbirthpartyid

分数[0]分数[1]分数[2];

is . get();

}

无效输出()

{

Cout”学生的基本信息如下:“endl

Cout”号:“$ NUMBER

“姓名:”姓名

性别:“性”

“籍贯:”地方

“民族”:“民族”

“生日:”出生

政治观点

”身份证号:“身份证

"数学:"分数[0]

英语:“分数[1]

电脑:“分数[2]

"总分:" getg()endlendl;

}

无效输出(流操作系统)

{

ossetw(6)号

setw(15)名称

setw(6)性别

设置(20)位置

第六民族

setw(20)出生

setw(20)党

setw(20)id

setw(6)分数[0]

setw(6)分数[1]

setw(6)score[2]endl;

}

};

班级学校

{

公共:

school(){ head =新生;head-next = NULL;key = 0;}

~school(){删头;}

void输入();

void mend();

void del();

int find(student **p,int num,char *pn="^ ");

找到了void

void show();

void计数();

void save();

void begin();

void clear();

char main menu();

int getkey(){ return key;}

void setkey(int k){ key = k;}

私人:

学生*头;

int键;

};

//输入功能

void学校::input()

{

学生*p,* p2 = NULL

p =头部;

int n;

while(p-next)

p = p-next;

当(名词)

{

p2 =新生;

p2-input();

p-next = p2;

p2-next = NULL;

p = p-next;

学校::setkey(1);

Cout " \ t \ t \按1继续,按0返回:";

cinn

}

}

//子搜索功能

int school::find(学生**p1,int num,char *pn)

{

学生* p;

p =头部;

while(p-next)

{

(* P1)= p;

if( (p-next)-getnumber()==num||!strcmp( (p-next)-getname(),pn))

返回1;

p = p-next;

}

返回0;

}

//查找函数

void学校::找到()

{

学生* p;

int num=-1,n = 9;

夏尔·name[20]="^”;

{

Cout"\t\t1:按号码搜索,2:按姓名搜索:";

cinn

} while(n1 | | N2);

如果(n==1)

{

Cout " \ t \ t \输入号码:";

cinnum

}

如果(n==2)

{

Cout " \ t \ t \输入名称:";

肉桂;

}

如果(!查找(p,num,name))

{

Cout " \ t \ tI找不到您要查找的内容!"endl

返回;

}

(p-next)-output();

}

//删除功能

void学校::del()

{

学生*p,* p2

int num

Cout " \ t \ t \输入号码:";

cinnum

如果(!find(p,num,"^”))

{

Cout " \ t \找不到您要删除的内容!"endl

返回;

}

(p-next)-output();

p2 = p-next;

p-next = p2-next;

删除p2;

学校::setkey(1);

}

//显示功能

void学校::show()

{

学生* p;

p =头部;

while(p-next)

{

(p-next)-output();

p = p-next;

}

}

//修改函数

void school::mend()

{

学生* p;

int num=-1,n;

夏尔·name[20]="^”;

{

Cout"\t\t1:按编号修改,2:按名称修改:";

cinn

} while(n1 | | N2);

如果(n==1)

{

Cout " \ t \ t \输入号码:";

cinnum

}

如果(n==2)

{

Cout " \ t \ t \输入名称:";

肉桂;

}

如果(!查找(p,num,name))

{

Cout " \ t \找不到您要修改的内容!"endl

返回;

}

(p-next)-output();

(p-next)-input();

学校::setkey(1);

}

//保存功能

void学校::save()

{

学生* p;

p =头部;

ofstream os("student.txt ",IOs::out);

if (school::getkey()==1)

{

while(p-next)

{

(p-next)-输出(OS);

p = p-next;

}

}

Cout " \ t \ t \文件已保存!"endl

school::setkey(0);

}

//初始化函数

void学校::begin()

{

学生*p,* p2

p =头部;

clear();

长t;

ifstream是(" student.txt ",IOs::in);

如果(!是)

{

ofstream os("student.txt ",IOs::out);

OS . close();

返回;

}

int num =-1;

while(1)

{

num =-1;

t = is . tellg();

isnum

is . seekg(t);

if(num0)

{

is . close();

返回;

}

p2 =新生;

p2-输入(是);

p-next = p2;

p2-next = NULL;

p = p-next;

}

}

//清除功能

void学校::clear()

{

学生*p,* p2

p = head-next;

while( p)

{

p2 = p;

p = p-next;

删除p2;

}

}

//统计功能

void学校::count()

{

学生* p;

p =头部;

int n = 0;

double g[3]={0,0,0 };

float j[3]={0,0,0 };

while(p-next)

{

p = p-next;

n;

for(int I = 0;i3;我)

{

g[I]= g[I](p-get score(I));

(p-getscore(i) )=60?j[I]:0;

}

}

Cout"\t\t\b\b\b\b数学总成绩:" g[0]"平均分:" g[0]/n

"通过率:" j[0]/nendl"\t\t\b\b\b\b英语总成绩:" g[1]

"平均分:" g[1]/n "通过率:" j[1]/nendl。

" \t\t\b\b\b\b计算机总分:" g[2]"平均分:" g[2]/n "

”通过率:“j[2]/nendl;

}

//主菜单功能

char school::mainmenu()

{

char n[6];

Cout "\ n \ n

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * " endl

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * " endl

" * * 1:输入学生信息* *"endl

“* * 2:显示学生信息* *”endl

“* * 3:查找学生信息* *”endl

“* * 4:删除学生信息* *”endl

“* * 5:修改学生信息* *”endl

“* * 6:学生成绩统计* *”endl

“* * 7:保存学生信息* *”endl

“* * 0:退出系统* *”endl

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * " endl

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * " endl

"请选择:";

cinn

返回n[0];

}

//主函数

void main()

{

学校PP;

int k = 1;

char n;

PP . begin();

while(k==1)

{

n = PP . main menu();

开关(n)

{

case“1”:PP . input();打破;

case“2”:PP . show();打破;

案例“3”:PP . found();打破;

case ' 4 ':PP . del();打破;

case“5”:PP . mend();打破;

case ' 6 ':PP . count();打破;

case“7”:PP . save();打破;

案例“0”:

if(pp.getkey()==1)

{

cout " \ t \ t \ t是否要保存它?1:保存0:不保存:“;

cink

如果(k==1)

PP . save();

}

PP . clear();

k = 0;

打破;

}

}

}

用C语言写一个简单的控制台下的学籍管理程序。 太长了。联系我,剩下的发给你!

/*11.3.2

源程序*/

/* * * * * * * * * * * * xuesheng . c * * * * * * * * * */

/* * * * *头文件(。h)* * * * * * * */

#包括

" stdio.h "

/*I/O功能*/

#包括

" stdlib.h "

/*其他注释*/

#包括

" string.h "

/*字符串函数*/

#包括

" conio.h "

/*屏幕操作功能*/

#包括

"记忆. h "

/*存储器操作功能*/

#包括

" ctype.h "

/*字符操作功能*/

#包括

"分配. h "

/*动态地址分配功能*/

#定义

普通

/*定义常数*/

typedef

结构体

z1

/*定义数据结构*/

{

否[11];

名称[15];

(同Internationalorganizations)国际组织

分数[N];

漂浮物

总和;

漂浮物

一般;

(同Internationalorganizations)国际组织

订单;

结构体

z1

*下一个;

}学生;

/*以下是函数原型*/

学生

* init();

/*初始化函数*/

学生

* create();

/*创建一个链表*/

学生

*删除(学生

* h);

/*删除记录*/

空的

打印(学生

* h);

/*

显示所有记录*/

空的

搜索(学生

* h);

/*查找*/

空的

保存(学生

* h);

/*保存*/

学生

* load();

/*读入记录*/

空的

计算机(学生

* h);

/*计算总分和平均分*/

学生

*插入(学生

* h);

/*插入记录*/

空的

append();

/*附加记录*/

空的

copy();

/*复制文件*/

学生

*排序(学生

* h);

/*排序*/

学生

*索引(学生

* h);

/*索引*/

空的

总计(学生

* h);

/*按类别分列的总数*/

(同Internationalorganizations)国际组织

menu _ select();

/*菜单功能*/

/* * * * * *主功能开始* * * * * *

主()

{

(同Internationalorganizations)国际组织

我;

学生

*头;

/*链表定义头指针*/

head = init();

/*初始化链表*/

clr SCR();

/*清空屏幕*/

for(;;)

/*无限循环*/

{

开关(menu_select())

/*调用主菜单函数,返回一个整数作为switch语句的条件*/

{

/*值不同,执行的函数也不同,break。

*/

情况

0:head = init();打破;

/*执行初始化*/

情况

1:head = create();打破;

/*创建一个链表*/

情况

2:head=delete(头);打破;

/*删除记录*/

情况

3:打印(头);打破;

/*显示所有记录*/

情况

4:搜索(头);打破;

/*查找记录*/

情况

5:保存(头);打破;

/*保存文件*/

情况

6:头=负载();

打破;

/*读取文件*/

情况

7:计算机(头);打破;

/*计算总分和平均分*/

情况

8:头=插入(头);

打破;

/*插入记录*/

情况

9:copy();打破;

/*复制文件*/

情况

10:head=sort(头);打破;

/*排序*/

情况

11:append();打破;

/*附加记录*/

情况

12:head=index(头);打破;

/*索引*/

情况

13:合计(人头);打破;

/*按类别分列的总数*/

情况

14:出口(0);

/*如果菜单返回14,程序结束*/

}

}

}

/*菜单函数,返回值是整数*/

menu_select()

{

c

相关文章

发表新评论