C语言学生信息管理系统.docx

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

C语言学生信息管理系统.docx

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

C语言学生信息管理系统.docx

C语言学生信息管理系统

1.课程设计目的和要求(一级标题)。

3

2.课程的主要内容。

3

3.实践要求:

3

4.课程设计题目描述和要求。

4

5.程序代码。

4

(1).文件头部,对函数要调用到的系统函数的声名。

4

(2).定义无空函数。

5

(3).主函数。

6

(4).显示菜单函数。

6

(5).输入函数,并把输入的信息读入文件。

8

(6).显示函数,对学生信息的显示。

9

(7).增加函数(增加学生的信息)。

10

(8).删除函数。

12

(9).删除函数(按学号查找删除)。

12

(10).删除函数(按姓名查找到后删除)。

14

(12).统计(将学生的信息全部显示出来,并判断哪个学生不极格和不极格的总人数,并将它显示出来)。

17

(13).对学生信息的查找。

19

(14)查找函数(用学号进行查找)。

19

(15).查找(用姓名查找)。

20

(16).排序函数。

21

(17).排序函数(按学号排序)。

22

(18).排序函数(按总分排序)。

23

(20).保存函数。

25

(21).退出函数。

25

6.总结26

7.参考书目:

26

1.课程设计目的和要求(一级标题)

本课程设计是针对刚学完C语言的计算机类专业学生的课程设计教学。

C语言是学生的第一门计算机高级语言课程,课程结束后,学生已经对C语言程序设计有了较全面的了解,但接触的基本上是为了阐述相关概念或知识点而列举的示例,都是较小的程序,程序功能单一,因此缺乏整体观点和编写一个具体实用的综合程序的思想。

本课程设计的目的是要培养学生初步具有系统分析思想,并能利用开发工具开发一个简单实用的综合程序。

为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。

要求学生以TC或VC为开发工具,完成一个小型应用软件的设计和开发。

进一步提高学生进行程序设计的能力。

2.课程的主要内容

(1)选题

(2)进行系统分析

(3)程序设计实现

(4)系统测试

(5)编写、上交课程设计报告

3.实践要求:

(1)系统设计要实用。

(2)对系统进行功能模块分析、控制模块分析正确,要画出主要功能模块的流程图。

(3)编程简练,可用,界面友好,功能全面。

(4)课程设计报告、流程图要清楚。

4.课程设计题目描述和要求

本课程设计选题为“学生成绩管理系统”。

系统主要功能是管理学生成绩信息,要求能实现学生成绩添加、删除、修改、查找,总分、平均分计算、按成绩排序等功能。

……

经过分析,确定本系统结构图如下图所示:

图1系统结构图

5.程序代码。

(1).文件头部,对函数要调用到的系统函数的声名.

#include/*将需要不得的函数包含在内*/

#include

#include

#include

#defineN20/*定义宏N为学生结构体的总数*/

structstudent/*这义学生结构体*/

{

longnum;

charname[20];

charsex[4];

intscore[3];

intsum;

intave;

};

structstudentstu[N];

intt=1,pl=0;/*定义两个全变量,学生总数变量和增加的学生变量*/

(2).定义无空函数.

voids();/*以下为定义无参函数*/

voidinput();/*输入*/

voidshow();/*显示*/

voidincrease();/*增项*/

voiddelet();/*删除*/

voidamend();/*修改*/

voidpreside();/*统计*/

voidfint();/*查找*/

voidarrange();/*排序*/

voidresume();/*恢复*/

voidsave();/*保存*/

voidoutput();/*退出*/

voiddeleta();/*学号查找后删除*/

voiddeletb();/*姓名查找后删除*/

voidfinta();/*学号查找*/

voidfintb();/*姓名查找*/

voidarranga();/*学号排序*/

voidarrangb();/*总分排序*/

(3).主函数.

voidmain()/*主函数*/

{

intpasword;/*这义密码*/

system("cls");

printf("\n\n\n\n\n\n\n\n\n\t\t\t请输入密码,密码为:

123456.\n");

scanf("%d",&pasword);/*输入密码*/

if(pasword==123456)

s();

else

{

printf("密码有误,请重新输入.\n");

getch();

main();

}

}

(4).显示菜单函数.

voids()

{intselect,w;chark;/*定义变量*/

system("cls");

printf("C语言课程设计.\n");/*以下显示主菜单*/

printf("1.录入.\n2.显示.\n3.增项.\n4.删项.\n5.修改.\n6.统计.\n7.查找.\n8.排序.\n9.恢复.\n10.保存.\n11.退出.\n");

printf("\n选怿项目执行相应功能.");/*以下是显示编;定人的姓名。

*/

printf("\n\n\t\t\t\t\txxxxxx

scanf("%d",&select);

switch(select)

{case1:

input();break;/*以下是选怿执行菜单上的哪个函数。

*/

case2:

show();break;

case3:

increase();break;

case4:

delet();break;

case5:

amend();break;

case6:

preside();break;

case7:

fint();break;

case8:

arrange();break;

case9:

resume();break;

case10:

save();break;

case11:

output();break;

default:

w=1;

}

if(w==1)

{printf("输入有误,按任意键重新选怿.\n");

k=getchar();

getch();

s();

}

}

(5).输入函数,并把输入的信息读入文件.

voidinput()//该函数为输入函数,并把输入的信息读入文件,以便再恢复。

{FILE*fp;

intx,count=0,i;charw,r[20],o;structstudent*p;/*定义变量和指向结构体的指针变量。

*/

system("cls");

p=stu;

printf("\t\t\t学生信息的录入.\n");

do{pl++;

printf("请输入第%d个学生的信息.\n\n",t);/*逐个步骤的实现学生信息的输入。

*/

printf("学号:

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

printf("姓名:

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

printf("性别:

\n");gets(r);gets(p->sex);printf("\n");

printf("三门成绩:

1.高数.2.C语言.3.英语.\n");

for(i=0;i<3;i++)

scanf("%d",&p->score[i]);

p->sum=p->score[0]+p->score[1]+p->score[2];

p->ave=p->sum/3;

printf("\n\n是否要继续输入学生信息,如果是请按y;不是请按n.\n");

o=getchar();/*接收回车键。

*/

w=getchar();

if(w=='y'||w=='Y')/*选怿是否输入更多的学生*/

{

t++;

x=1;

p++;

}

else

x=0;

}while(x==1);

if(w=='n'||w=='N')

{

if((fp=fopen("stulist","wb"))==NULL)

{

printf("cannotopenthefile\n");

return;

}

for(i=0;i

*/

if(fwrite(&stu[i],sizeof(structstudent),1,fp)!

=1)

printf("filewriteerror.\n");

fclose(fp);

printf("按任意键返回.\n");

getch();

s();

}

}

(6).显示函数,对学生信息的显示。

voidshow()//显示函数,对学生信息的显示。

{intj,i;

system("cls");

printf("\t\t\t学生成绩显示.\n\n");/*以下实现显示。

*/

printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","性别","高数","C语言","英语","平均分","总分");

for(i=0;i

{printf("%-8ld%-8s%-8s",stu[i].num,stu[i].name,stu[i].sex);

for(j=0;j<3;j++)

printf("%-8d",stu[i].score[j]);

printf("%-8d",stu[i].ave);

printf("%-8d",stu[i].sum);

printf("\n\n");

}

printf("\n按任意键返回.\n");

getch();

s();

}

(7).增加函数(增加学生的信息).

voidincrease()//增加学生的信息。

{inti,x;chara,w;structstudent*p;

system("cls");

printf("\t\t\t你增加的信息会加到其它学生的后面.\n");

p=stu+t;

do/*以下是逐个学生信息的增加。

*/

{

printf("请输入第%d个学生的信息.\n\n",t+1);

printf("学号:

\n");

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

printf("\n");

printf("姓名:

\n");

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

printf("\n");

printf("性别:

\n");

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

printf("\n");

printf("三门成绩:

1.高数.2.C语言.3.英语.\n");

for(i=0;i<3;i++)

scanf("%d",&p->score[i]);

for(i=0;i<3;i++)

p->sum=p->score[0]+p->score[1]+p->score[2];

p->ave=p->sum/3;

a=getchar();

printf("\n是否要继续输入学生信息,如果是请按y;不是请按n.\n\n");

w=getchar();p++;t++;/*判断是否继续对学生信息的增加。

*/

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

{

x=1;

}

if(w=='n'||w=='N')

{

x=0;break;

}

}while(x==1);

if(x==0)

{

printf("\n");

printf("按任意键返回.\n");

getch();

s();

}

}

(8).删除函数。

voiddelet()//删除函数。

{inti;

system("cls");

printf("\t\t\t请选怿用哪种方式删除学生信息.\n");

printf("1.学号.\n2.姓名.\n");

scanf("%d",&i);/*选怿用哪种方式对学生信处进行删除。

*/

switch(i)

{

case1:

deleta();break;

case2:

deletb();break;

default:

printf("输入有误,请按任意键返回.\n");

}

getch();

s();

}

(9).删除函数(按学号查找删除)。

voiddeleta()//删除函数(按学号查找删除)。

{longnum_a;intz,j;charc,x,m,b,o;structstudent*p;/*定义变量,接收字符。

*/

system("cls");

do

{printf("请输入要删除的学号.\n");

scanf("%ld",&num_a);/*输入学号。

*/

for(p=stu;p

*/

if(p->num==num_a)

break;

else

{

printf("不存在该学生,请按任意键返回.\n");

getch();

s();

}

printf("你要删除的学生为:

\n");/*显示要删除的信息。

*/

printf("%-8ld%-8s%-8s",p->num,p->name,p->sex);

for(j=0;j<3;j++)

printf("%-8d",p->score[j]);

printf("%-8d",p->ave);

printf("%-8df",p->sum);

printf("你确定要删除吗?

如是请输入y;不是请输入n.\n");

x=getchar();/*接收回车键。

*/

c=getchar();

if(c=='y'||c=='Y')/*判断是否要删除该学生的信息。

*/

{for(;p

*p=*(p+1);t--;

}

if(c=='n'||'N')z=0;

printf("是否要继续删除:

是请按1.不是请按2.\n");

m=getchar();b=getchar();o=getchar();

}while(b=='y'||b=='Y');/*是否继续删除学生信息*/

printf("系统已为你删除信息,请按任意键返回.\n");

getch();

s();

}

(10).删除函数(按姓名查找到后删除)。

voiddeletb()//删除函数(按姓名查找到后删除)。

*/

{charname_b[20],c,m,b,r,d;intj,z;structstudent*p;

system("cls");

do

{printf("请输入要删除的姓名.\n");

gets(name_b);r=getchar();/*输入姓名。

*/

for(p=stu;p

if(strcmp(p->name,name_b)==0)/*判断是否存在该学生。

*/

break;

else

{printf("不存在该学生,请按任意键返回.\n");

getch();

s();

}

printf("你要删除的学生为:

\n");/*显示要删除的学生。

*/

printf("%-8ld%-8s%-8s",p->num,p->name,p->sex);

for(j=0;j<3;j++)

printf("%-8d",p->score[j]);

printf("%-8d",p->ave);

printf("%-8d",p->sum);

printf("你确定要删除吗?

如是请输入y;不是请输入n.\n");

c=getchar();

if(c=='y'||c=='Y')/*判断是否确定要删除。

*/

{for(;p

*p=*(p+1);

t--;

}

if(c=='n'||'N')z=0;

printf("是否要继续删除:

是请按y.不是请按n.\n");

d=getchar();m=getchar();b=getchar();

}while(b=='y'||b=='Y');

printf("请按任意键返回.\n");

getch();

s();

}

(11).修改(详细对学生信息的修改)。

voidamend()//修改(详细对学生信息的修改)。

{longj;inti,z,r=t;charc,d,e,f,q,u,l,v,m,k;structstudent*p;

system("cls");

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

\n\n");

scanf("%ld",&j);/*输入要修改学生的学号。

*/

for(p=stu;p

if(p->num==j)/*判断是否存在该学生。

*/

break;

elser--;

if(r==0)

{printf("你输入的学生不存在,请按任意键返回.\n");

getch();

s();

}

printf("\n你要修改的学生为:

\n");

printf("%-8ld%-8s%-8s",p->num,p->name,p->sex);/*将要修改的学生信息的显示。

*/

for(j=0;j<3;j++)

printf("%-8d",p->score[j]);

printf("%-8d",p->ave);

printf("%-8d",p->sum);

printf("\n\n是否要修改学号:

是请按y;不是请按n.\n\n");

l=getchar();

c=getchar();

if(c=='y'||c=='Y')/*以下是判断对学生的哪一个信息的修改,并选怿是否进行修改。

*/

{

printf("请输入正确的学号:

\n\n");

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

}

if(c=='n'||c=='N')

z=1;

printf("是否要修改姓名:

是请按y;不是请按n.\n\n");

q=getchar();

d=getchar();

m=getchar();

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

{printf("请输入正确的姓名:

\n");

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

}

if(d=='n'||c=='N')

z++;

printf("\n是否要修改性别:

是请按y;不是请按n.\n\n");

e=getchar();k=getchar();

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

{

printf("请输入正确的性别:

\n");

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

}

if(e=='N'||e=='n')

z++;

printf("\n是否要修改三门成绩:

是请按y;不是请按n.\n\n");

f=getchar();

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

{printf("请输入正确的三门成绩:

");

for(i=0;i<3;i++)

scanf("%d",&p->score[i]);

p->sum=p->score[0]+p->score[1]+p->score[2];p->ave=p->sum/3;

}

v=getchar();

if(f=='n'||f=='N'){printf("请按任意键返回.\n");getch();s();

}

}

(12).统计(将学生的信息全部显示出来,并判断哪个学生不极格和不极格的总人数,并将它显示出来)。

voidpreside()//统计(将学生的信息全部显示出来,并判断哪个学生不极格和不极格的总人数,并将它显示出来)。

{inti,j,o=0,b=10,r=60;structstudent*p;

system("cls");

printf("\t\t\t学生信息统计.\n\n");

printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","性别","高数","C语言","英语","平均分","总分");

for(p=stu;p

*/

{printf("%-8ld%-8s%-8s",p->num,p->name,p->sex);

for(j=0;j<3;j++)

printf("%-8d",p->score[j]);

printf("%-8d",p->ave);

printf("%-8d",p->sum);

printf("\n\n");

}

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

printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","性别","高数","C语言","英语","平均分","总分");

for(p=stu;p

{for(i=0;i<3;i++)

if(p->score[i]

*/

{b=b-1;o=o+1;

printf("%-8ld%-8s%-8s",p->num,p->name,p->sex);/*以下是显示不极格的学生。

*/

for(j=0;j<3;j++)

printf("%-8d",p->score[j]);

printf("%-8d",p->ave);

printf("%-8d",p->sum);

printf("\n\n");break;}

}

if(b==10)printf("\n\n班上所有的人都通过考试.\n\n");

else

if(b<10)printf("\n以上为不极格的同学,全班不极格的人数为:

%d人.\n\n",o);/*显示不极格学生的总人数。

*/

printf("\n");

printf("统计完成,请按任意键返回.\n");

getch();

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

当前位置:首页 > 医药卫生 > 药学

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

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