#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
typedef struct
{
char id[12]
char name[21]
char origin[101]
}student
FILE *fp
student stu,cache
void Menu()
{
system("cls")
time_t t = time(0)
char tmp[64]
strftime(tmp, sizeof(tmp), "%Y/%m/%d %A",localtime(&t))
puts(tmp)
printf("\n")
printf("1 --输入信息\n")
printf("2 --显示所有信息\n")
printf("3 --按学号查询\n")
printf("4 --按姓名查询\n")
printf("5 --按籍贯查询\n")
printf("0 --退出\n\n\n请输入选项:")
}
void Creat_add()
{
system("cls")
fp=fopen("stu_origin.dat","rb+")
if(fp==NULL)
{
fp=fopen("stu_origin.dat","wb+")
if(fp==NULL)
{printf("can't creat the file stu_origin.dat!\n")printf("Press any key to exit...")getch()}
}
fseek(fp,0,SEEK_END)
char next='y'
while(next=='y'||next=='Y')
{
printf("请输入学号:")scanf("%s",stu.id)
printf("请输入姓名:")scanf("%s",stu.name)
printf("请输入籍贯:")scanf("%s",stu.origin)
printf("\n\n确定写入数据?(y/n)")
if(getch()=='y'||getch()=='Y') fwrite(&stu,sizeof(stu),1,fp)
printf("\n\n是否继续输入?(y/n)")next=getch()system("cls")
}
fclose(fp)
}
我也在做课设,和你一样的题目。下面是我自己做的。最后一个功能没有实现。有空交流。e-mail: jy02137461@163.com#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
class stu
{
char name[20]
int number
char bornplace[50]
public:
stu()
{
}
stu(char n[20],int num,char born[50])
{
strcpy(name,n)
number=num
strcpy(bornplace,born)
}
friend void main()
}
void main()
{
cout<<"请选择您需要的 *** 作!"<<endl
cout<<" *** 作:"<<endl
cout<<"(0)数据录入"<<endl
cout<<"(1)增加人员"<<endl
cout<<"(2)删除人员"<<endl
cout<<"(3)修改数据"<<endl
cout<<" 查询:"<<endl
cout<<"(4)按姓名查询"<<endl
cout<<"(5)按学号查询"<<endl
cout<<"(6)输出所有学生的籍贯信息"<<endl
cout<<"(7)按籍贯查询"<<endl
cout<<"选择相关 *** 作请输入相对的括号里的阿拉伯数字!"<<endl
char pchar w
stu *s[50]
ofstream *file[50]
int i=0
int j=0
bool flag2=0
do
{
cin>>p
if((p>='0'&&p<='6'))
flag2=1
else
cout<<"指令错误!请重新输入:"<<endl
}while(flag2==0)
do{
switch(p)
{
case '0':
{
char c
char name[20],bornplace[50]int number
do{
cout<<"请输入姓名"<<endl
cin>>name
cout<<"请输入学号:"<<endl
cin>>number
cout<<"请输入籍贯:"<<endl
cin>>bornplace
file[j]=new ofstream("d:\\document.txt",ios::ate)
*file[j]<<"姓名"<<name<<"学号"<<number<<"籍贯"<<bornplace <<endl
j++
s[i]=new stu(name,number,bornplace)
i++
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl
cin>>c
flag2=0
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
else
flag2=1
}
while(flag2==0)
}
while(c=='y')
break
}
case '4':
{
char t[20]
char c
do
{
int flag1=0
cout<<"请输入你要查询学生的姓名"<<endl
cin>>t
for(int q=0q<iq++)
{
if(strcmp((*s[q]).name,t)==0)
{
flag1=1
cout<<"您要查询的学生是:"<<(*s[q]).name<<"学号是:"<<(*s[q]).number<<"籍贯是:"<<(*s[q]).bornplace<<endl
}
}
if(flag1==0)
cout<<"对不起!您要查询的学生不存在!"<<endl
cout<<"您想继续查询吗?(y/n)"<<endl
cin>>c
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
}
while(c=='y')
break
}
case '5':
{
int n int j=0char c
do{
int flag=0
cout<<"请输入你要查询的学生学号:"<<endl
cin>>n
for(int j=0j<ij++)
{ int no=((*s[j]).number)
if(no==n)
{
flag=1
cout<<"您要查询的学生是:"<<(*s[j]).name<<endl
cout<<"籍贯是:"<<(*s[j]).bornplace<<endl
}
}
if(flag==0)
cout<<"对不起!您要查询的学生不存在!"<<endl
cout<<"您想继续查询吗?(y/n)"<<endl
cin>>c
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
}
while(c=='y')
break
}
case '7':
{
char m[20]int j=0char c
do{
int flag=0
cout<<"请输入你要查询籍贯:"<<endl
cin>>m
for(int w=0w<iw++)
{
if(strcmp((*s[w]).bornplace,m)==0)
{
flag=1
cout<<"您要查询的学生是:"<<(*s[w]).name<<endl
cout<<"学号是:"<<(*s[w]).number<<endl
}
}
if(flag==0)
cout<<"对不起!您要查询的学生不存在!"<<endl
cout<<"您想继续查询吗?(y/n)"<<endl
cin>>c
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
}
while(c=='y')
break
}
case '1':
{
char name[20],bornplace[50]int number
char c
do
{
cout<<"请输入您要增加的学生的姓名:"<<endl
cin>>name
cout<<"请输入学号:"<<endl
cin>>number
cout<<"请输入籍贯:"<<endl
cin>>bornplace
file[j]=new ofstream("d:\\document",ios::ate)
*file[j]<<"姓名"<<name<<"学号"<<number<<"籍贯"<<bornplace<<endl
j++
s[i]=new stu(name,number,bornplace)
i++
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl
cin>>c
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
}while(c=='y')
break
}
case '2':
{
char name[20]bool flag3=0char c
do{
cout<<"请输入您要删除的学生姓名:"<<endl
cin>>name
for(int h=0h<ih++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1
i--
do{
s[h]=s[h+1]
h++
}while(h<=i)
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!"
cout<<"要继续删除吗?(y/n)"<<endl
cin>>c
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
}while(c=='y')
break
}
case '3':
{
char name[20],born[50]int numflag2=0
char c
do
{
cout<<"请输入您要修改的学生的姓名:"<<endl
cin>>name
for(int h=0h<ih++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1
cout<<"请输入新的学号:"<<endl
cin>>num
cout<<"请输入新的籍贯:"<<endl
cin>>born
s[h]->number=num
strcpy(s[h]->bornplace,born)
cout<<"数据修改成功!"
}
}
if(flag2==0)
{
cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl
}
cout<<"想继续修改吗(y/n)"<<endl
cin>>c
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl
cin>>c
}
}while(c=='y')
break
}
case '6':
{
cout<<"本系统所有学生的籍贯信息如下:"<<endl
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl
for(int k=0k<ik++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<" "<<
"学号:"<<" "<<s[k]->number<<" "<<"籍贯:"<<" "<<s[k]->bornplace
<<endl
}
break
}
}
cout<<"您想继续进行其他 *** 作吗?(y/n)"<<endl
bool flag4=0
do
{
cin>>w
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl
else
flag4=1
}while(flag4==0)
if(w=='y')
{cout<<"请选择您需要的 *** 作!"<<endl
cout<<" *** 作:"<<endl
cout<<"(0)数据录入"<<endl
cout<<"(1)增加人员"<<endl
cout<<"(2)删除人员"<<endl
cout<<"(3)修改数据"<<endl
cout<<" 查询:"<<endl
cout<<"(4)按姓名查询"<<endl
cout<<"(5)按学号查询"<<endl
cout<<"(6)输出所有学生的籍贯信息"<<endl
cout<<"(7)按籍贯查询"<<endl
cout<<"选择相关 *** 作请输入相对的括号里的阿拉伯数字!"<<endl
}
cin>>p
}while(w=='y')
for(int x=0x<ix++)
{
delete s[x]
cout<<"delete all members!"<<endl
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)