#include <string.h>
# include "stdlib.h"
#define LEN sizeof(struct stu)
struct stu
{
long num
char name[20]
char sex
int age
char addr[30]
struct stu *next
}
int main()
{
int n
struct stu *head
struct stu *p1,*p2
head=(struct stu*)malloc (LEN)
head->next=NULL
p1=head
p2=(struct stu*)malloc (LEN)
p2->next=NULL
printf("学号\t姓名\t性别\t年龄\t住址\n")
scanf("%ld,\t%s,\t%c,\t%d,\t%s",&p2->num,&p2->name,&p2->sex,&p2->age,&p2->addr)
while(p2->num!=0)
{
p1->next=p2
p1=p2
fflush(stdin)
p2=(struct stu*)malloc (LEN)
printf("学号\t姓名\t性别\t年龄\t住址\n")
scanf("%ld,%s,%c,%d,%s",&p2->num,&p2->name,&p2->sex,&p2->age,&p2->addr)
}
}
纯手打,希望采纳。
#include<iostream.h>#include<iomanip.h>
#include<windows.h>
#include <conio.h>
void back()//返回开始菜单
void out()//输出信息
int w=1//用于记录学生人数,全局变量
class Data//日期类
{public:
double Year,Month,Day
Data()
{ Year=0Month=0Day=0 }
}
class student //学生类
{
public:
char name[10]//姓名
char sex[5]//性别
char jiguan[10]//籍贯
int num,age//学号,年龄
char adr[30]//住址
Data year
friend class Data//date作为student的友元 //定义一个日期类
void operator=(student s)//=重载
int operator == (student s)//==重载
}stu[100]
void main()
{
system("cls")//清屏 DOC调用
system("color f4")//颜色 同样是调用doc
int i
void comp()
void input()
void find()
void alt()
void del()
void exit()
void show()
cout<<setw(53)<<"欢迎进入学生管理系统!"<<endl
cout<<setw(55)<<"1 添加学生信息 2 查询学生信息"<<endl<<endl
cout<<setw(55)<<"3 删除学生信息 4 修改学生信息"<<endl<<endl
cout<<setw(55)<<"5 比较学生信息 6 显示学生信息"<<endl<<endl
cout<<setw(45)<<"0 推出系统"<<endl
cout<<"请选择:"
cin>>i
if(i>6||i<0)
{
cout<<"输入有误!"<<endl
back()
}
switch(i)
{
case 1:input()break
case 2:find()break
case 3:del()break
case 4:alt()break
case 5:comp()break
case 6:show()break
case 0:exit()break
default:cout<<"你的输入有误!\n"
}
}
void input() //添加学生
{
system("color 84")//颜色 同样是调用doc
system("cls")//清屏
int n
cout<<"请输入要添加的学生个数:\n"
cin>>n
if(n>=100||n<=0)
{cout<<"输入有误!<<endl"
main()}
else
{
for(n>0w++,n--)
{
cout<<"请输入姓名、性别、籍贯,年龄,学号,住址:"<<endl
cin>>stu[w].name>>stu[w].sex>>stu[w].jiguan>>stu[w].age >>stu[w].num>>stu[w].adr
cout<<"请输入该生生日(年 月 日)"<<endl
cin>>stu[w].year.Year
cin>>stu[w].year.Month
cin>>stu[w].year.Day
}
out()
}
cout<<"添加完毕2秒后返回"<<endl
Sleep(2000)//延时2秒
main()
}
void find() //按学号查找学生
{
system("color f4")//颜色 同样是调用doc
system("cls")
int i,id,j=0//j是用以记录是否有信息被找到
cout<<"请输入你要查找学生的学号:"
cin>>id
for(i=1i<wi++)
if(stu[i].num ==id)
{
cout<<i<<" "<<stu[i].name<<" "<<stu[i].sex<<" "<<stu[i].jiguan<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<stu[i].adr<<endl
j++
}
if(j==0)
cout<<"没有你要查找的信息"
back()
}
void del()//删除指定学号学生信息
{
system("color f4")//颜色 同样是调用doc
int i,a,y=0
char x
cout<<"请输入要删除的学生学号"
cin>>a
for(i=1i<wi++)
if(stu[i].num==a)
{
cout<<"该生情况:"<<endl
cout<<i<<" "<<stu[i].name<<" "<<stu[i].sex<<""<<stu[i].jiguan<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<" "<<stu[i].adr<<endl
cout<<"是否确认删除?(Y/N)"<<endl
cin>>x
if(x=='Y'||x=='y')
{
y++
for(i<w-1i++)
stu[i]=stu[i+1]
w--//每删除一个对总是减少一个
}
}
构造一个关于学生信息的数据类型如:
struct studengt_type
{
int number //学号
char *name//姓名
char sex//性别
int score// 入学成绩
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)