学生信息管理程序(C++)

学生信息管理程序(C++),第1张

//学生个人信息类

#include<iostream.h>

#include<string.h>

#include<fstream.h>

#include<iomanip.h>//kjljjj

class student

{private:int maxnum//学生学号最大值

int sno//学号char name[5]

char sex[2]

int agechar birth[10]//出生日期

char folk[2]//民族

char mianmao[10]//政治面貌

char department[10]//系别

long banji//班级

char speciality[10]//专业

char address[30]//学生详细家庭住址

public:

student()~

student()

void enter()//学生信息录入函数

void display()//学生信息输出函数

void setsno(int temp)

int getsno()

char *getname()

long getbanji()

char *getspeciality()

void read()

void write()

}

student::student()

{}

student::~student()

{}

int student::getsno()

{return sno}

char *student::getspeciality()

{return speciality}

long student::getbanji()

{return banji}

void student::setsno(int temp)

{sno=temp}

char *student::getname()

{return name}

void student::display()

{cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<age<<setw(4)<<folk<<setw(8)<<birth<<setw(8)<<mianmao<<setw(8)<<department<<setw(8)<<banji<<setw(8)<<speciality<<setw(8)<<address<<endl}

void student::enter()

{ ifstream tfile("max.txt",ios::binary|ios::nocreate)

if(tfile)

{ tfile.read((char *)&maxnum,sizeof maxnum)}

else

{ maxnum=1000//学生学号初始化 } tfile.close()

sno=maxnum++

ofstream ofile("max.txt")

ofile.write((char*)&maxnum,sizeof maxnum) tfile.close()

cout<<"请输入学生信息"<<endl

cout<<"学生姓名:"<<endl

cin>>name

cout<<"性别(男(n),女(m)):"<<endl

cin>>sex while(strcmp(sex,"n")!=0&&strcmp(sex,"m")!=0)

{ cout<<"错误请重新输入!"<<endl cin>>sex }

cout<<"出生日期:"<<endl

cin>>birth

cout<<"年龄:"<<endl

cin>>age

while(age<=15||age>=50)

{ cout<<"错误请重新输入!"<<endl cin>>age}

cout<<"政治面貌(团员(a),预备党员(b),党员(c)):"<<endl

cin>>mianmao

while(strcmp(mianmao,"a")!=0&&strcmp(mianmao,"b")!=0&&strcmp(mianmao,"c")!=0)

{cout<<"错误请重新输入!"<<endl cin>>mianmao}

cout<<"民族:"<<endl cin>>folk

cout<<"系别:"<<endl cin>>department

cout<<"班级:"<<endl cin>>banji

cout<<"专业:"<<endl cin>>speciality

cout<<"家庭住址:"<<endl cin>>address}//主程序部分:#include<iostream.h>

#include<fstream.h>

#include<string.h>

#include<iomanip.h>

#include<stdlib.h>

//#include"student.h"

student stu//student 类的全局变量

void read()

{ ifstream afile("student.txt",ios::nocreate) afile.read((char*)&stu,sizeof stu)

}

void write()

{ ofstream bfile("student.txt",ios::app) bfile.write((char*)&stu,sizeof stu)}

void input(void)

{ char ch stu.enter()

write()

cout<<"你还要输入下一位学生的信息吗(Y/N)!"<<endl cin>>ch

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

{ input() }}

void search()

{ int j,k,i,m=0 char ch1[5],ch2[10] cout<<"请输入你的查找类型:(1.学号 2.姓名 3.专业 4.班级)"<<endl

cin>>j

while(j<=0||j>=5)

{ cout<<"错误请重新选择!"<<endlcin>>j }

if(j==1)

{ cout<<"请输入你要查找的学生的学号:"<<endl

cin>>i

}

if(j==2)

{ cout<<"请输入你要查找的学生的姓名:"<<endl

cin>>ch1

}

if(j==3)

{

cout<<"请输入你要查找的学生所在的专业:"<<endl

cin>>ch2 }

if(j==4)

{

cout<<"请输入你要查找的学生所在的班级:"<<endl cin>>k

}

ifstream dfile("student.txt",ios::nocreate) while (dfile.good())

{

dfile.read((char *) &stu,sizeof stu)

if(i==stu.getsno()||strcmp(stu.getname(),ch1)==0||

strcmp(stu.getspeciality(),ch2)==0||k==stu.getbanji())

{

cout<<"你要查找的学生信息如下:"<<endl

cout<<setw(4)<<"学号"<<setw(4)<<"姓名"<<setw(4)<<"性别"<<setw(4)<< "年龄"<<setw(4)<<"民族"<<setw(8)<<"出生日期"<<setw(8)<<"政治面貌"<< setw(8)<<"系别"<<setw(8)<<"班级"<<setw(8)<<"专业"<<setw(8)<<"联系电话"<<setw(8)<<"家庭住址"<<endl stu.display()

i=0

k=0

m=1

return

}

}

if(m!=1)

cout<<"没有找到这名学生的信息!"<<endl

}

void output()

{

int i=0

ifstream cfile("student.txt",ios::nocreate)

while(cfile)

{

if( cfile.read((char *)&stu,sizeof stu)){stu.display() i++ } }cout<<"一共有"<<i<<"个学生信息"<<endl}void menu(){ cout<<"学号:2005132040 姓名:孟琳琳班级:通信053"<<endl

cout<<" * 学籍管理系统 *"<<endl

cout<<"*******************************************************"<<endl

cout<<" 0.退出系统 "<<endl

cout<<" 1.学生信息录入 "<<endl

cout<<" 2.学生信息查询 "<<endl

cout<<" 3.学生信息输出 "<<endl

cout<<"*******************************************************"<<endl

cout<<" 请选择以上 *** 作(0=======3) "<<endl

}

void select()//选择菜单函数

{

int ch

while(1)

{

cin>>ch

switch(ch)

{

case 0:exit(0)menu()break

case 1:input()menu()break

case 2:search()menu()break

case 3:output()menu()break

default:menu()cout<<"输入无效请重新输入(0======== 3)"<<endlbreak

}

}

}void main()

{

menu()

select()

}

#include<stdio.h>

#define M 2/*容量*/

struct _674

{

long num

char name[20]

char add[20]

long tel

}A[M],B[1]

void input()

{

int i=1

char a='y'

while(a=='y')

{

if(i<=M)

{

printf("请输入你要输入的学生学号\n")

scanf("%d",&A[i].num)

for(int j=1j<ij++)

if(A[j].num==A[i].num)

{

printf("你输入的学号已存在\n")continue

}

printf("请输入你要输入的学生姓名\n")

scanf("%s",&A[i].name)

printf("请输入你要输入的学生地址\n")

scanf("%s",&A[i].add)

printf("请输入你要输入的学生电话\n")

scanf("%d",&A[i].tel)

i++

printf("退出请任意输入,继续请输入y\n")

getchar()

scanf("%c",&a)

}

else

{

printf("你的空间已满\n")break

}

}

}

void output()

{

for(int i=1i<=Mi++)

printf("学号:%d姓名:%s地址:%s电话:%d\n",A[i].num,A[i].name,A[i].add,A[i].tel)

}

void seek()

{

int a,f=0

printf("请输入你要查找学生的学号\n")

scanf("%d",&a)

for(int i=1i<=Mi++)

if(a==A[i].num)

{

printf("学号:%d姓名:%s地址:%s电话:%d\n",A[i].num,A[i].name,A[i].add,A[i].tel),f=0break

}

else

f=1

if(f==1)

printf("查无此人\n")

}

void del()

{

int a

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

scanf("%d",&a)

for(int i=1i<=Mi++)

if(a==A[i].num)

{

for(i<Mi++)

A[i]=A[i+1]

}

}

void insert()

{

printf("请输入你要输入你要插入的学生学号\n")

scanf("%d",&B[1].num)

for(int j=1j<=Mj++)

if(B[1].num==A[j].num)

{

printf("你要插入的学号已存在\n")break

}

printf("请输入你要插入的学生姓名\n")

scanf("%s",&B[1].name)

printf("请输入你要插入的学生地址\n")

scanf("%s",&B[1].add)

printf("请输入你要插入的学生电话\n")

scanf("%d",&B[1].tel)

}

void main()

{

input()

output()

seek()

del()

insert()

}

不好意思

自己也是刚学的

有不足之处还请谅解

很多地方还需要根据你的需要适当修改

最后希望我们能相互讨论学习共同进步


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11275815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存