学生信息管理系统C语言编写演示教学.docx

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

学生信息管理系统C语言编写演示教学.docx

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

学生信息管理系统C语言编写演示教学.docx

学生信息管理系统C语言编写演示教学

 

学生信息管理系统C语言编写

1设计目的………………………………………………………………………3

2设计题目及要求……………………………………………………3

3设计算法分析………………………………………………………………3

3.1模块调用层次图………………………………………………………3

3.2核心算法描述………………………………………………………4

3.3系统特点………………………………………………………6

4程序代码………………………………………………………………………6

5调试情况……………………………………………………………………8

6结论……………………………………………………………………………11

学生信息管理

1.设计目的

本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的知识,补充未学的但又必要的内容。

进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。

具体目的如下:

1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养学生综合运用所学知识独立完成课题的能力。

3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。

5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。

2.设计题目及要求

【1】设计题目

【2】要求

实现如下功能:

(1)建立学生信息的结构体

(2)学生信息的初始化(可以从文件获取)

(3)学生信息的添加、修改、删除、查找

(4)学生信息的输出

(5)对学生信息按学号、成绩排序

(6)计算一门课的平均分和总分

(7)将学生信息保存为文件

综合应用数组、指针、结构体、文件等,对该设计题目进行设计和实现。

课程设计完成后,提交课程设计报告。

3.设计算法分析

3.1模块调用层次图

【1】变量描述

定义形式/名称

含义/作用

数组

charname[20]

定义姓名数组

结构体

structstudentstu[50]

声明一个结构数组

全局变量

intinput=0;floatave,sum;

FILE*fp;

全局变量标记当前录入学生个数

文件

stu_list2.doc

保存学生信息

函数

SaveInputStuDelStuModifyStuFindStuInsertStuSortStuListStu

保存录入删除修改查找插入排序显示学生信息

【2】系统模块调用层次图

 

3.2核心算法描述

1.总体模块流程图:

N

T

2.修改模块:

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

for(i=0;i

stu[i].num==id

T(flag!

=0)F(flag!

=0)

输出修改后学生信息printf("\n\nnull")

3.查询模块:

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

for(i=0;i

(stu[i].num==id)

T(flag=0)F(flag!

=0)

输出查询后学生信息printf("\n\nnull")

(stu[i].classid==id)

T(flag=0)F(flag!

=0)

输出查询后学生信息printf("\n\nnull")

T(flag=0)(!

strcmp(stu[i].name,name))F(flag!

=0)

输出查询后学生信息无找到有关信息

4.插入模块:

for(i=0;i

stu[i].num=id

T(flag=0)F(flag!

=0)

学号信息已经存在输入要插入学生信息

5.删除模块:

ask!

='n'

TF

i=0;i

stu[i].num==delnum

T(flag=0)F(flag!

=0)for(j=i;j

删除成功且

显示删除后数据

删除指定学生的信息没有要删除的学生

6.排序模块:

chose==1

TF(chose==2)

for(i=0;i

for(j=i+1;j

stu[i].num>stu[j].numstu[i].ave

TFTF

temp=stu[i]temp=stu[i]

stu[i]=stu[j]stu[i]=stu[j]

stu[j]=tempstu[j]=temp

3.3系统特点

【1】特点:

这个学生信息管理系统建立了学生信息的结构体,实现了学生信息的录入、添加、修改、删除、查找等功能,并能计算学生的平均分和总分,对学生进行排序。

4.程序代码

【1】程序代码

voidHelp();

voidSave(structstudentstu[]);

voidInputStu(structstudentstu[]);

voidDelStu(structstudentstu[]);

voidModifyStu(structstudentstu[]);

voidFindStu(structstudentstu[]);

voidInsertStu(structstudentstu[]);

voidSortStu(structstudentstu[]);

voidListStu(structstudentstu[]);

voidmain()

{structstudentstu[50];structstudent*p;

intin;intin1;charch;

voidInputStu(structstudentstu[])

{pp=stu;

system("cls");

inti;

printf("Numberofstudentsyouwanttoenterinformation:

");

scanf("%d",&input);

if((fp=fopen("inputdata.sys","wb+"))==NULL)

{printf("Cannotopenfilestrikeanykeyexit!

");

getch();exit

(1);}

voidModifyStu(structstudentstu[])

{system("cls");

pp=stu;intid,i,flag=1;

if((fp=fopen("modifydata.sys","wb+"))==NULL)

{printf("Cannotopenfilestrikeanykeyexit!

");

getch();exit

(1);}

voidFindStu(structstudentstu[])

{system("cls");inti=0,id,flag=1,chose;

printf("\nPleaseselectquery:

1.No.inquiriesbyschool;2.Querybyclass;3.Querybyname\n");

scanf("%d",&chose);

switch(chose){

case1:

printf("PleaseenteryourqueryNo.students:

");

scanf("%d",&id);

for(i=0;i

{if(stu[i].num==id)

{flag=0;

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;

stu[i].ave=stu[i].sum/3;

printf("\nNo.Studies\Name\No.classes\Thefirstsubjec\Thesecondsubject\Thethirdsubject\Average\Total\n");

voidInsertStu(structstudentstu[])

{system("cls");

intflag=1;pp=stu;inti,id;

if((fp=fopen("insertdata.sys","wb+"))==NULL)

{printf("Cannotopenfilestrikeanykeyexit!

");

getch();exit

(1);}

voidListStu(structstudentstu[])

{inti=0;

for(i=0;i

{stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;

stu[i].ave=stu[i].sum/3;}

printf("\nNo.Studies\Name\No.classes\Thefirstsubjec\Thesecondsubject\Thethirdsubject\Average\Total\n");

for(i=0;i

{printf("\n%d%s%d\t%d\t%d\t%d\t%d%d",stu[i].num,stu[i].name,stu[i].classid,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);}

getch();}

voidDelStu(structstudentstu[])

{system("cls");

pp=stu;intdelnum,flag=1;charask;inti,j;

if((fp=fopen("Deldata.sys","wb+"))==NULL)

{printf("Cannotopenfilestrikeanykeyexit!

");

getch();exit

(1);}

voidSortStu(structstudentstu[])

{system("cls");

inti,j,chose;

structstudenttemp;

printf("Tosortthedatabefore:

\n");

printf("\nNo.Studies\Name\No.classes\Thefirstsubjec\Thesecondsubject\Thethirdsubject\Average\Total\n");

for(i=0;i

{printf("\n%d%s%d%d\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].classid,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);}

printf("\n1.SortbyStudentID\t2.Bytheaveragescore(high→low)Sort\n");

voidSave(structstudentstu[])

{inti,j;pp=stu;

system("cls");

printf("\n\n\n\n\t\t\tSaving");

if((fp=fopen("stu_list2.doc","wb+"))==NULL)

{printf("Cannotopenfilestrikeanykeyexit!

");

getch();exit

(1);

}

【2】程序执行结果

【3】结果的讨论:

系统最后将修改过后的学生信息保存了下来

5.调试情况

三科成绩、平均分、总分不能用float定义应改为int

定义应在函数的最前端

文件未定义

这是建立学生信息文件

添加学生信息并计算平均分和总分

找不到要删除的学生信息

删除了学号为12的学生信息

修改学生信息

新学生信息记录

保存信息后退出程序

6.结论

(1)能够通过编译时出现的出错提示信息,进行初步的纠错。

(2)完成一个程序的一般步骤为设计,录入,编译,如果出错,则修改,然后再编译,编译成功后,看看结果是否正确,如果结果不正确,则再重复以上步骤。

(3)从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译程序所需要的细心和耐心。

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

当前位置:首页 > 经管营销 > 企业管理

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

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