怎样用c程序设计一个学生信息记录薄系统?

怎样用c程序设计一个学生信息记录薄系统?,第1张

#include<conio.h>

#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: [email protected]

#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

}

}


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

原文地址: https://outofmemory.cn/yw/11747408.html

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

发表评论

登录后才能评论

评论列表(0条)

保存