学生信息管理系统设计.docx

上传人:b****5 文档编号:29389869 上传时间:2023-07-22 格式:DOCX 页数:15 大小:18.32KB
下载 相关 举报
学生信息管理系统设计.docx_第1页
第1页 / 共15页
学生信息管理系统设计.docx_第2页
第2页 / 共15页
学生信息管理系统设计.docx_第3页
第3页 / 共15页
学生信息管理系统设计.docx_第4页
第4页 / 共15页
学生信息管理系统设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

学生信息管理系统设计.docx

《学生信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计.docx(15页珍藏版)》请在冰豆网上搜索。

学生信息管理系统设计.docx

学生信息管理系统设计

学生信息管理系统

--C语言版

主要功能介绍:

1实现菜单式选项功能,0—9均有特殊功能

2主要菜单介绍:

数字0:

返回功能,主界面

数字1:

学生信息的输入,不定数量的输入,判断是否继续输入

数字2:

学生信息的显示,可以显示此时学生信息的资料

数字3:

查找学生信息,查找是否存在要查询的学习信息

数字4:

删除学生信息,删除输入的学生信息

数字5:

插入学生信息

数字6:

修改学生信息有子菜单修改学生的任何资料可以反复修改

数字7:

对学生信息进行排列

数字8:

保存学生信息以文本的形式

数字9:

读取学生信息从文本中读取不需要重新输入数据,可读取以前的数据

说明:

此系统是根据其他网友的程序改编的,加入了几项!

此系统还有可以增加的空间,如可以添加登陆界面,输入密码等!

只是鉴于此系统没有用到指针,对于大多数人来说比较容易上手!

心得:

了解别人的程序基础上,进行了升级,遇到了一系列的问题。

如,修改学生信息函数中,保存原来的值,替换原来的值,还有就是scanf()中的&,用反了,该用的没有用,要用的却没有用。

最重要的问题是,完成以上后,把程序关闭后,却不可以从文件中读取。

起初想是文件函数用错了,查看课本,按照课本中的例题来了一遍,可以的,然后对照自己写的文件,是对的!

经过看,才知道是定义的inti惹的祸。

因为变量没有被调用时,还是0,为了验证我的假象,改了i的值,可以了!

所以问题就再于如何解决i的问题!

起初想将其与结构体保存在一个文件中,错了好多次,失败了!

所以保持到了两个文件中!

几位本例题!

有时文件忘记关闭了,造成错误!

此程序具有实际操作意义

复制程序:

看着结果分析程序!

学生信息管理系统源文件如下:

 

#include

#include

#include

#include

structstudent

{intid;//学号

charname[20];

intage;

charsex[10];

charbirthady[20];

inttel;

charnativeplace[50];

intE_mail;

}st[50];

inti=0;//学生数初始化,通过输入确定人数

voidshuru()

{

FILE*fp;

chara;

do{

printf("\n请输入学号:

");

scanf("%d",&st[i].id);

fflush(stdin);//清空回车字符头文件在stdio.h

printf("\n请输入姓名:

");

gets(st[i].name);//此处没有用到fflush只有在scanf用了

printf("\n");

printf("请输入年龄:

");

scanf("%d",&st[i].age);

fflush(stdin);

printf("\n请输入姓别:

");

gets(st[i].sex);

fflush(stdin);

printf("\n请输入生日:

");

gets(st[i].birthady);

printf("\n请输入电话:

");

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

fflush(stdin);

printf("\n请输入籍贯:

");

gets(st[i].nativeplace);

fflush(stdin);

printf("\n请输入E_mail:

");

scanf("%d",&st[i].E_mail);

fflush(stdin);

printf("\n是否继续输入另外一个学生信息?

(y/n)");

fflush(stdin);

a=getchar();

i++;

}while(a=='y'&&i<=50);

if((fp=(fopen("c:

\\stu_list1.txt","wb")))==NULL)

{

printf("cannotopenfile:

stu_list1!

\n");

exit(0);

}

fflush(stdin);

putw(i,fp);

fclose(fp);

}

 

voidsave()

{

inta;

FILE*fp;

if((fp=(fopen("c:

\\stu_list.txt","wb")))==NULL)

{

printf("cannotopenfile:

stu_list!

\n");

exit(0);

}

for(a=0;a

{

if((fwrite(&st[a],sizeof(structstudent),1,fp))!

=1)

{

printf("writeerror!

\n");

fclose(fp);

exit(0);

}

}

printf("\t\t恭喜你,要保存的学生信息已经为您保存完毕!

");

fclose(fp);

}

voidread()

{

FILE*fp,*fp1;

inta,k;

fp1=fopen("c:

\\stu_list1.txt","rb");

k=getw(fp1);

fclose(fp1);

fp=fopen("c:

\\stu_list.txt","rb");

printf("\n");

printf("学号\t姓名\t年龄\t性别\t生日\t电话\t籍贯\t\tE_mail\n");

for(a=0;a

{

fread(&st[a],sizeof(structstudent),1,fp);

printf("%d\t%s\t%d\t%s\t%s\t%d\t%s\t%d\n",st[a].id,st[a].name,st[a].age,st[a].sex,st[a].birthady,st[a].tel,st[a].nativeplace,st[a].E_mail);

}

fclose(fp);

printf("\t\t\t读取全部文件的学生信息完毕!

");

}

voidxianshi()

{

intj,k;

FILE*fp,*fp1;

fp1=fopen("c:

\\stu_list1.txt","rb");

k=getw(fp1);

fclose(fp1);

fp=fopen("c:

\\stu_list.txt","rb");

printf("\n");

printf("学号\t姓名\t年龄\t性别\t生日\t电话\t籍贯\tE_mail\n");

for(j=0;j

printf("%d\t%s\t%d\t%s\t%s\t%d\t%s\t%d\n",st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace,st[j].E_mail);

}

voidpaixu()//按年龄从大到小排序函数

{

intj,k,b;

inttemp;

FILE*fp,*fp1;

fp1=fopen("c:

\\stu_list1.txt","rb");

b=getw(fp1);

fclose(fp1);

fp=fopen("c:

\\stu_list.txt","rb");

for(j=0;j

{

for(k=0;k

{

if(st[k].age

{

temp=st[k].age;

st[k].age=st[k+1].age;

st[k+1].age=temp;

}

}

}

xianshi();//排序后输出

}

voidchazhao()

{intm,k;

charname[20],b;

FILE*fp,*fp1;

fp1=fopen("c:

\\stu_list1.txt","rb");

k=getw(fp1);

fclose(fp1);

fp=fopen("c:

\\stu_list.txt","rb");

printf("\n");

do

{printf("\n请输入想查找的学生姓名:

");

fflush(stdin);

gets(name);

for(m=0;m

{

if(strcmp(name,st[m].name)==0)

{

printf("\n\t您查找的学生在第%d个位置找到了!

!

!

\n",m+1);

break;

}

}

if(m>=20)

printf("\n\t没有找到这个学生!

!

!

\n");

else

{

printf("学号\t姓名\t年龄\t性别\t生日\t电话\t籍贯\tE_mail\n");

printf("%d\t%s\t%d\t%s\t%s\t%d\t%s\t%d\n",st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace,st[m].E_mail);

}

printf("\n是否查找另一个学生的信息?

(y/n)");

fflush(stdin);

b=getchar();

}while(b=='y');

}

voidshanchu()

{

charname[20],c;

inta,b,k;

FILE*fp,*fp1;

fp1=fopen("c:

\\stu_list1.txt","rb");

k=getw(fp1);

fclose(fp1);

fp=fopen("c:

\\stu_list.txt","rb");

printf("\n");

do

{printf("\n请输入要删除的学生姓名:

\n");

fflush(stdin);

gets(name);

for(a=0;a

{

if(strcmp(name,st[a].name)==0)break;

}

for(b=a;b

st[b]=st[b+1];

if(a>i)

printf("\t没有找到这个学生!

!

!

\n");

else

{i--;

xianshi();

}

printf("\n是否继续删除另一个学生信息?

(y/n)");

fflush(stdin);

c=getchar();

}

while(c=='y');

}

voidcharu()

{

shuru();

paixu();

}

voidxiugai()

{

intb,a,m,k,q;

intnian0,nian1;

intte0,te1;

intemail0,email1;

charname[20],ch0[20],ch1[20];

charsex0[10],sex1[10];

charbir0[20],bir1[20];

charnative0[50],native1[50];

charen_d;

FILE*fp,*fp1;

fp1=fopen("c:

\\stu_list1.txt","rb");

q=getw(fp1);

fclose(fp1);

fp=fopen("c:

\\stu_list.txt","rb");

printf("\n");

do

{

printf("按照姓名进行信息查询修改,请输入要修改学生的姓名:

");

fflush(stdin);

gets(name);

fflush(stdin);

for(a=0;a

{

if(strcmp(name,st[a].name)==0)

printf("\n\t\t已经找到你要修改的人员!

!

\n");

else

{

if(a==i-1)

{printf("\n\t\t对不起,没有找到你要查询的姓名!

请查证后再次查询!

!

\n");

gotoloop1;}

elsecontinue;

}

break;

}

printf("***你想修改学生的信息有如下选择***\n");

printf("**1---学号2---姓名3---年龄**\n");

printf("**4---性别5---生日6---电话**\n");

printf("**7---籍贯8---E_mail**\n");

printf("*********************\n");

printf("\n");printf("\n");

printf("请输入要修改的选项:

");

scanf("%d",&b);

fflush(stdin);

switch(b)

{

case1:

printf("你选择了修改学生的学号,请输入修改后的学生学号:

");scanf("%d",&m);printf("\n");k=st[a].id;st[a].id=m;

printf("YES,修改后学生学号是:

%d,替代了原来为%d的学号",m,k);break;

case2:

printf("你选择了修改学生的姓名,请输入修改后的学生姓名:

");scanf("%s",ch1);strcpy(ch0,st[a].name);strcpy(st[a].name,ch1);printf("\n");

printf("YES,修改后学生姓名是:

%s,替代了原来为%s的姓名",ch1,ch0);break;

case3:

printf("你选择了修改学生的年龄,请输入修改后的学生年龄:

");scanf("%d",&nian1);printf("\n");nian0=st[a].age;st[a].age=nian1;

printf("YES,修改后学生年龄是:

%d,替代了原来为%d的年龄",nian1,nian0);break;

case4:

printf("你选择了修改学生的性别,请输入修改后的学生性别:

");scanf("%s",sex1);strcpy(sex0,st[a].sex);strcpy(st[a].sex,sex1);printf("\n");

printf("YES,修改后学生生日是:

%s,替代了原来为%s的生日",sex1,sex0);break;

case5:

printf("你选择了修改学生的生日,请输入修改后的学生生日:

");scanf("%s",bir1);strcpy(bir0,st[a].birthady);strcpy(st[a].birthady,bir1);printf("\n");

printf("YES,修改后学生生日是:

%s,替代了原来为%s的生日",bir1,bir0);break;

case6:

printf("你选择了修改学生的电话,请输入修改后的学生电话:

");scanf("%d",te1);te0=st[a].tel;st[a].tel=te1;printf("\n");

printf("YES,修改后学生电话是:

%d,替代了原来为%d的电话",te1,te0);break;

case7:

printf("你选择了修改学生的籍贯,请输入修改后的学生籍贯:

");scanf("%s",native1);strcpy(native0,st[a].nativeplace);strcpy(st[a].nativeplace,native1);printf("\n");

printf("YES,修改后学生籍贯是:

%s,替代了原来为%s的籍贯",native1,native0);break;

case8:

printf("你选择了修改学生的电话,请输入修改后的学生电话:

");scanf("%d",email1);email0=st[a].E_mail;st[a].E_mail=email1;printf("\n");

printf("YES,修改后学生电话是:

%d,替代了原来为%d的电话",email1,email0);break;

default:

printf("查询错误选项,确认后再查询");printf("\n");

}

fflush(stdin);

loop1:

printf("\n是否继续修改学生信息,如果继续,请按y,否则请按n:

");

en_d=getchar();

fflush(stdin);

}while(en_d=='y');

}

voidmain()//主函数

{intchange;

do{

system("cls");//清屏

printf("\n");

printf("\n");//软键盘有或者拼xing第五个

printf("******欢迎使用学生信息管理*******\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※※\n");

printf("※1.输入学生信息2.显示学生信息※\n");

printf("※※\n");

printf("※3.查找学生信息4.删除学生信息※\n");

printf("※※\n");

printf("※5.插入学生信息6.修改学生信息※\n");

printf("※※\n");

printf("※7.排序学生信息8.保存学生信息※\n");

printf("※※\n");

printf("※9.读取文件学生信息※\n");

printf("※※\n");

printf("※0.退出学生管理系统※\n");

printf("※※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("\n");printf("\n");

fflush(stdin);

printf("请输入功能选项:

");

scanf("%d",&change);

switch(change)

{case1:

shuru();break;

case2:

xianshi();break;

case3:

chazhao();break;

case4:

shanchu();break;

case5:

charu();break;

case6:

xiugai();break;

case7:

paixu();break;

case8:

save();break;

case9:

read();break;

case0:

break;

}

getch();

}while(change!

=0);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1