学生成绩管理系统c语言代码.docx

上传人:b****3 文档编号:4978121 上传时间:2022-12-12 格式:DOCX 页数:17 大小:17.13KB
下载 相关 举报
学生成绩管理系统c语言代码.docx_第1页
第1页 / 共17页
学生成绩管理系统c语言代码.docx_第2页
第2页 / 共17页
学生成绩管理系统c语言代码.docx_第3页
第3页 / 共17页
学生成绩管理系统c语言代码.docx_第4页
第4页 / 共17页
学生成绩管理系统c语言代码.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统c语言代码.docx

《学生成绩管理系统c语言代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统c语言代码.docx(17页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统c语言代码.docx

学生成绩管理系统c语言代码

Documentserialnumber【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

 

学生成绩管理系统c语言代码

#include<>

#include<>

#defineNsizeof(structSTH)

#defineGESHI"

%-10ld%-10s%-5s%-4d/%-2d/%-4d%-12s%-12s%s\n"

#definePRINTF"学号姓名性别生日系别班级家庭住址\n"

structSTH*readfile();/*声明*/

intinsert(structSTH**);

intn=0;

structdt

{

intyear;/*全局变量*/

intmonth;

intday;

};

structSTH

{

longnum;/*学号不能以0开头*/

charname[9];

charsex[5];

structdtbirth;

charxi[20];

charban[20];

charadd[30];

structSTH*next;

}*head;

/*输入模块*/

input_message()

{

charch;

intflag=1;

do

{

if(insert(&head)!

=0)

n++;/*计数*/

else

printf("\n有相同的的学号!

");

printf("\n是否继续(y/n)");

getchar();

scanf("%c",&ch);

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

{

printf("\n继续!

");

getch();

flag=1;/*标志程序不结束*/

}

else

flag=0;

}while(flag==1);

save_message();

printf("按任意键继续...");

getch();

}

/*insert()模块*//*被输入和插入模块所调用*/

intinsert(structSTH**h)

{

structSTH*p,*p0;

p=(structSTH*)malloc(N);

printf("\n请输入学号:

");

   scanf("%ld",&p->num);

printf("\n请输入姓名:

");

scanf("%s",p->name);

printf("\n请输入性别:

");

getchar();/*取走上一个留下来得‘\n’*/

scanf("%s",p->sex);

printf("\n请输入生日(年月日,用回车隔开):

\n");

   scanf("%d%d%d",&p->,&p->,&p->;

printf("\n请输入系别:

");

scanf("%s",p->xi);

printf("\n请输入班级:

");

scanf("%s",p->ban);

printf("\n请输入家庭住址:

");

scanf("%s",p->add);

p->next=NULL;

if(*h==NULL)

{

*h=p;

return1;

}

p0=*h;

if(p0->num>p->num)

{

p->next=p0;

*h=p;

return1;

}

   while(p0->next!

=NULL&&p0->next->numnum)

p0=p0->next;

if(p0->next==NULL)

{

p0->next=p;

return1;

}

elseif(p0->next->num==p->num)

{

free(p);/*有相同数据输入失败*/

return0;

}

else

{

p->next=p0->next;

p0->next=p;

return1;

}

}

/*读文件模块*/

/*读文件模块中创建了一个新的链表,其返回值为新链表的头指针*/

structSTH*readfile()

{

FILE*fp;

structSTH*p,*p0;

charch;

inti;

if((fp=fopen("","r"))==NULL)

{

printf("\n不能读取文件!

\n");

returnNULL;

}/*注意要该*/

head=p=p0=(structSTH*)malloc(N);

fscanf(fp,"%d",&n);

fscanf(fp,"%c",&ch);/*为了使学号和信息个数分开加入一个‘/’*/

fscanf(fp,"%ld%s%s%d%d%d%s%s%s",

          &p->num,p->name,p->sex,&p->,&p->,&p->,p->xi,p->ban,p->add);

p->next=NULL;

i=1;/*如果只有一个数时跳出*/

if(n!

=1)

{

do

{

p=(structSTH*)malloc(N);

fscanf(fp,"%ld%s%s%d%d%d%s%s%s",

               &p->num,p->name,p->sex,&p->,&p->,&p->,p->xi,p->ban,p->add);

p0->next=p;

p0=p;

i++;

}while(i

p0->next=NULL;

}

fclose(fp);

returnhead;

}

/*插入模块*/

insert_message()

{

structSTH*p;

intflag=1;

charch;

head=readfile();

do

{

if(insert(&head)!

=0)

{

n++;

save_message();

printf("");

}/*计数*/

else

{

printf("\n添加失败!

\n有相同的的学号!

");

save_message();

getch();

}

printf("\n是否继续(y/n)");

getchar();

ch=getchar();

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

{

printf("\n继续!

");

flag=1;/*标志程序不结束*/

}

else

flag=0;

}while(flag==1);

printf("\n按任意键继续...");

getch();

}

/*修改模块*/

renew_message()

{

structSTH*p;

inti,flag=1;

longnum;

p=head=readfile();

if(head==NULL)

{

printf("读文件有误!

");

getch();

}

else

{

printf("\n请按输入要修改的学生的学号:

");

scanf("%ld",&num);

for(i=0;i

{

if(p->num==num)

{

p->num=num;

printf("\n已找到要%ld号学生的信息!

\n",num);

printf("原姓名为%s要修改为:

\n",p->name);

scanf("%s",p->name);

printf("原性别为%s要修改为:

\n",p->sex);

scanf("%s",p->sex);

printf("原生日为%d/%d/%d要修改为:

\n",p->,p->,p->;

               scanf("%d%d%d",&p->,&p->,&p->;

printf("原系别为%s要修改为:

\n",p->xi);

scanf("%s",p->xi);

printf("原班级为%s要修改为:

\n",p->ban);

scanf("%s",p->ban);

printf("原家庭住址为%s要修改为:

\n",p->add);

scanf("%s",p->add);

printf("你所更改后的信息为:

\n");

printf(PRINTF);

printf(GESHI,

p->num,p->name,p->sex,p->,p->,p->,p->xi,p->ban,p->add);

printf("\n按任意键退出!

\n");

getch();

flag=1;

break;

}

else

p=p->next;

}

if(flag!

=1)

printf("无此人信息!

\n");

else

save_message();

getch();

}

}

/*删除模块*/

delete_message()

{

intflag;

longnum;

charch;

structSTH*p,*p0;

p0=p=head=readfile();

if(head==NULL)

{

printf("文件读取出错!

");

getch();

}

else

{

printf("请输入要删除学生的学号:

\n");

scanf("%ld",&num);

if(p0->num==num)

{

head=p0->next;

free(p0);

flag=1;

n--;/*学生数减一*/

}

p=p0->next;

while(p!

=NULL)

{

if(p->num==num)

{

p0->next=p->next;

free(p);

flag=1;

n--;

}

else

{

p0=p;

p=p->next;

}

}

if(p->next==NULL)

flag=0;

if(flag==1)

{

printf("\n永久删除%ld号学生的信息(y/n)",num);

getchar();

ch=getchar();

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

save_message();

else

{

printf("\n撤消删除!

");

getch();

}

}

else

printf("\n删除失败!

");

getch();

}

}

/*查询模块*/

inquire_message()

{

inti,flag=0;

longnum;

structSTH*p;

p=head=readfile();

if(head==NULL)

{

printf("文件读取出错!

");

getch();

}

else

{

printf("请输入要查询学生的学号:

\n");

scanf("%ld",&num);

for(i=0;i

{

if(p->num==num)

{

printf("\n信息已找到:

\n");

getch();

clrscr();

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

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

printf(PRINTF);

printf(GESHI,

p->num,p->name,p->sex,p->,p->,p->,p->xi,p->ban,p->add);

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

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

flag=1;break;

}

else

p=p->next;

}

if(flag==0)

printf("\n无此人信息!

");

else

printf("\n显示完毕!

\按任意键返回主菜单......");

getch();

}

}

/*显示模块*/

output_message()

{

inti=0;

structSTH*p;

p=head=readfile();

if(head==NULL)

{

printf("文件读取出错!

");

getch();

}

else

{

clrscr();

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

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

printf(PRINTF);

while(i

{

printf(GESHI,

p->num,p->name,p->sex,p->,p->,p->,p->xi,p->ban,p->add);

p=p->next;

i++;

}

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

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

printf("\n显示完毕!

\n共%d条信息.\n按任意键返回主菜单......",n);

getch();

}

}

/*存档模块*/

save_message()

{

FILE*fp;

inti;

structSTH*p;

p=head;

if((fp=fopen("","w"))==NULL)

{

printf("读文件错误!

");

exit(0);

}

fprintf(fp,"%d",n);

fprintf(fp,"%c",'/');/*注意要该*/

for(i=0;i

{

fprintf(fp,"%ld%s%s%d%d%d%s%s%s",

p->num,p->name,p->sex,p->,p->,p->,p->xi,p->ban,p->add);

p=p->next;

}

fclose(fp);

printf("\n信息已经保存在文件中!

");

getch();

}

/*主函数*/

voidmain(void)

{

intchoice;

charch;

FILE*fp;

structdated;

getdate(&d);

if((fp=fopen("","r"))==NULL)

{

fp=fopen("","w");

fprintf(fp,"%d",0);

fclose(fp);

}

else

{

fscanf(fp,"%d",&n);

fclose(fp);

}

clrscr();

printf("制作人:

通工0501李艺凡");

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

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

printf("欢迎进入学生户籍系统\n\n");

printf("1创建记录\n");

printf("2添加记录\n");

printf("3查找记录\n");

printf("4删除记录\n");

printf("5修改记录\n");

printf("6显示全部信息\n");

printf("0退出程序\n");

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

printf("%d年%d月%d日",,,;

printf("\n请选择(0-6):

");

scanf("%d",&choice);

if(n==0)/*记录为空时不让其进行其他操作*/

{

while(choice<0||choice>1)

{

printf("记录为空,无法操作此项!

");

printf("请重新输入:

(0或1)\n");

scanf("%d",&choice);

}

}

else

{

while(choice<0||choice>6)

{

printf("输入有误!

\n请重新输入:

\n");

scanf("%d",&choice);

}

}

do

{

switch(choice)

{

case1:

input_message();break;

case2:

insert_message();break;

case3:

inquire_message();break;

case4:

delete_message();break;

case5:

renew_message();break;

case6:

output_message();break;

case0:

break;

}

printf("\n按任意键返回主菜单!

");

getchar();

ch='y';

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

{

clrscr();

printf("制作人:

通工0501李艺凡");

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

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

printf("欢迎进入学生户籍系统\n\n");

printf("1创建记录\n");

printf("2添加记录\n");

printf("3查找记录\n");

printf("4删除记录\n");

printf("5修改记录\n");

printf("6显示全部信息\n");

printf("0退出程序\n");

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

printf("%d年%d月%d日",,,;

printf("\n请选择(0-6):

");

scanf("%d",&choice);

}

}while(choice!

=0);

printf("以上信息已经保存在中!

\n");

}

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

当前位置:首页 > PPT模板 > 图表模板

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

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