用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
最后更新于 2023-10-11 10:21:55 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章