实训报告书学生信息管理系统.docx

上传人:b****6 文档编号:7387911 上传时间:2023-01-23 格式:DOCX 页数:17 大小:75.58KB
下载 相关 举报
实训报告书学生信息管理系统.docx_第1页
第1页 / 共17页
实训报告书学生信息管理系统.docx_第2页
第2页 / 共17页
实训报告书学生信息管理系统.docx_第3页
第3页 / 共17页
实训报告书学生信息管理系统.docx_第4页
第4页 / 共17页
实训报告书学生信息管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实训报告书学生信息管理系统.docx

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

实训报告书学生信息管理系统.docx

实训报告书学生信息管理系统

 

江苏淮安信息职业技术学院

 

C语言课程设计报告书

 

题目:

____________________

系部:

____________________

专业:

____________________

班级:

____________________

姓名:

____________________

学号:

____________________

指导教师:

____________________

 

二○○八年四月

 

目录

一、课程设计题目

二、系统功能需求分析

三、数据结构设计

四、系统功能模块

五、各功能模块的算法流程图

1.主函数

2.进入主菜单页面

3.输入记录

4.显示输入记录

5.按学号查找记录

6.排序显示

7.按学号显示记录

8.删除记录

9.修改记录

10.写文件

11.读文件

12.退出

六、课程设计心得及体会

七、源程序清单

 

《C语言课程设计》报告

一、课程设计题目

学生信息管理系统

二、系统功能需求分析

基本信息:

学号姓名性别数学英语C语言

基本功能要求:

1.输入记录:

从键盘录入学生的基本信息;

2.显示输入记录:

输出学生的基本信息包括总成绩;

3.按学号查找记录:

输入一个学号,查找该学生的个人相关信息;

4.排序显示:

按总成绩进行降序排列;

5.按学号显示;按学号升序排列;

6.退出。

扩展功能要求:

7.删除记录;

8.修改记录;

9.写文件;

10.读文件。

三、数据结构设计

intNUM;/*全局变量,记录学生数*/

#defineM100

structstudent

{longid;/*学号*/

charname[10];/*姓名*/

charsex[4];

intmath;

intenglish;

intc_program;

inttotal;

}STU[M];

四、系统功能模块

五、各功能模块的算法流程图

1.主函数

2.进入主菜单页面

函数首部voidpage_title()

3.输入记录

函数首部:

voidstudent_new()

4.显示输入记录

函数首部:

voidshow()

5.按学号查找记录

函数首部:

voidscore_search()

6.排序显示

用冒泡法或选择法,以及其他排序方法来实现。

函数首部:

voidscore_sort()

7.按学号显示记录

函数首部:

voidid_sort()

8.删除记录

函数首部:

voidstudent_del()

9.修改记录

函数首部:

voidstudent_edit()

10.写文件

voidsave()

11.读文件

voidload()

12.退出

voidleft()

 

六、课程设计心得及体会

 

七、源程序清单

#include/*VC++6.0SP6*/

#include

#include

#include

#defineM100

/*全局变量*/

intnum=-1;/*学生数,从STU[0]开始记录学生信息*/

structstudent

{longid;/*学号*/

charname[8];/*姓名*/

charsex[2];/*性别*/

intmath;/*数学*/

intenglish;/*英语*/

intc_program;/*C语言*/

inttotal;/*总分*/

}STU[M];

/*函数声明*/

voidpage_title();

voidstudent_new();

voidstudent_del();

voidstudent_edit();

voidscore_search();

voidscore_sort();

voidid_sort();

voidshow();

voidsave();

voiddisplay();

voidleft();

voidpage_head1();/*打印表头1*/

voidpage_head2();/*打印表头2*/

intfind(long);/*按学号查找学生*/

voidshow_one(int);/*显示一条记录*/

voidinput_one(int);/*输入一个新学生的信息*/

voidcount(int);/*计算一个新学生的总分*/

voidin_menu();/*进入主菜单*/

/*主函数*/

voidmain()

{display();

while

(1)

{page_title();}

}

/*主菜单*/

voidpage_title()

{charc;

system("cls");/*清屏*/

printf("\n\n>>>>>>>>>>>>>学生成绩管理系统<<<<<<<<<<<<<\n\n");

printf("\t1录入学生成绩记录\n\n");

printf("\t2显示学生成绩记录\n\n");

printf("\t3修改学生成绩记录\n\n");

printf("\t4删除学生成绩记录\n\n");

printf("\t5按学号查询学生记录\n\n");

printf("\t6按学号显示学生记录\n\n");

printf("\t7按总成绩递减输出\n\n");

printf("\t8保存\n\n");

printf("\t0退出\n\n");

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

printf("请用数字键0-8选择操作:

");

c=getchar();

system("cls");

switch(c)

{case'1':

student_new();break;/*录入学生基本信息*/

case'2':

show();break;/*显示所有记录*/

case'3':

student_edit();break;/*修改记录*/

case'4':

student_del();break;/*删除记录*/

case'5':

score_search();break;/*查询记录*/

case'6':

id_sort();break;/*按学号排序显示*/

case'7':

score_sort();break;/*按成绩递减排序显示*/

case'8':

save();break;/*保存*/

case'0':

left();/*退出*/

}

}

/*录入学生基本信息*/

voidstudent_new()

{intn=0;

printf("\n请输入学生的个数(1-%d):

",M);

scanf("%d",&n);

while(n<=0||n>M)

{printf("\n请重新输入学生个数:

");

scanf("%d",&n);

}

page_head1();

while(n--)

{num++;

input_one(num);

count(num);

}

}

/*删除学生基本信息*/

voidstudent_del()

{longid;

intn;

charc;

while

(1)

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

");

scanf("%ld",&id);

printf("\n");

n=find(id);

if(n!

=-1)

break;

else

system("cls");

}

page_head2();

show_one(n);

printf("\n请确认删除吗?

(Y/N)?

");

c=getch();

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

{STU[n].id=STU[num].id;

STU[n].math=STU[num].math;

STU[n].english=STU[num].english;

STU[n].c_program=STU[num].c_program;

STU[n].total=STU[num].total;

strcpy(STU[n].name,STU[num].name);

strcpy(STU[n].sex,STU[num].sex);

num--;

}

}

/*按学号查找学生*/

intfind(longid)

{intn;

for(n=0;n<=num;n++)

if(STU[n].id==id)returnn;

return-1;

}

/*输入一个新学生的信息*/

voidinput_one(intn)

{scanf("%ld%s%s%d%d%d",&STU[n].id,STU[n].name,STU[n].sex,&STU[n].math,&STU[n].english,&STU[n].c_program);

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

}

/*显示所有记录*/

voidshow()

{inti;

page_head2();

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

show_one(i);

in_menu();

}

/*显示一条记录*/

voidshow_one(intn)

{printf("%ld\t%s\t\t%s\t%3d\t%3d\t%3d\t%3d",STU[n].id,STU[n].name,STU[n].sex,STU[n].math,STU[n].english,STU[n].c_program,STU[n].total);

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

}

/*计算一个新学生的总分*/

voidcount(intn)

{STU[n].total=STU[n].math+STU[n].english+STU[n].c_program;}

/*退出*/

voidleft()

{save();

exit(0);

}

/*修改信息*/

voidstudent_edit()

{longid;

intn;

while

(1)

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

");

scanf("%ld",&id);

printf("\n");

n=find(id);

if(n!

=-1)

break;

else

system("cls");

}

page_head2();

show_one(n);

printf("\n请输入修改的记录信息:

\n");

page_head1();

scanf("%ld%s%s%d%d%d",&STU[n].id,STU[n].name,STU[n].sex,&STU[n].math,&STU[n].english,&STU[n].c_program);

count(n);

}

/*进入主菜单*/

voidin_menu()

{printf("\n请按任意键进入主菜单");

getch();

}

/*按学号查询成绩*/

voidscore_search()

{longid;

intn;

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

");

scanf("%ld",&id);

n=find(id);

if(n!

=-1)

{page_head2();

show_one(n);

}

else

printf("没找到!

\n");

in_menu();

}

/*按学号排序显示*/

voidid_sort()

{inti=0;

intn;

longmin=STU[0].id;

for(i=1;i<=num;i++)

if(STU[i].id

page_head2();

for(i=0;i<=num;)

{n=find(min++);/*学号加1*/

if(n!

=-1)

{show_one(n);

i++;/*记录数加1*/

}

}

in_menu();

}

/*按总成绩冒泡降序显示*/

voidscore_sort()

{structstudentstu1;

inti,j;

for(i=0;i

{for(j=0;j

{if(STU[j].total

{stu1.id=STU[j].id;

STU[j].id=STU[j+1].id;

STU[j+1].id=stu1.id;

stu1.math=STU[j].math;

STU[j].math=STU[j+1].math;

STU[j+1].math=stu1.math;

stu1.english=STU[j].english;

STU[j].english=STU[j+1].english;

STU[j+1].english=stu1.english;

stu1.c_program=STU[j].c_program;

STU[j].c_program=STU[j+1].c_program;

STU[j+1].c_program=stu1.c_program;

stu1.total=STU[j].total;

STU[j].total=STU[j+1].total;

STU[j+1].total=stu1.total;

strcpy(stu1.name,STU[j].name);

strcpy(STU[j].name,STU[j+1].name);

strcpy(STU[j+1].name,stu1.name);

strcpy(stu1.sex,STU[j].sex);

strcpy(STU[j].sex,STU[j+1].sex);

strcpy(STU[j+1].sex,stu1.sex);

}

}

}

show();

}

/*打印表头2*/

voidpage_head2()

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

printf("学号\t\t姓名\t\t性别\t数学\t英语\tC语言\t总成绩\n");

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

}

/*打印表头1*/

voidpage_head1()

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

printf("学号\t\t姓名\t\t性别\t数学\t英语\tC语言\n");

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

}

/*读文件*/

voiddisplay()

{FILE*fp;

inti;

if((fp=fopen("d:

\c\stu.txt","rb"))==NULL)

{printf("cannotopenfile\n");

return;

}

for(i=0;i

{if(fread(&STU[i],sizeof(structstudent),1,fp)==1)i++;

elsebreak;

}

num=i-1;

fclose(fp);

}

/*写文件*/

voidsave()

{FILE*fp;

inti;

if((fp=fopen("d:

\c\stu.txt","wb"))==NULL)

{printf("cannotopenfile\n");

return;

}

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

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

=1)

printf("filewriteerror\n");

fclose(fp);

}

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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