C语言课程设计报告学生信息管理系统Word格式.docx

上传人:b****8 文档编号:22448618 上传时间:2023-02-04 格式:DOCX 页数:50 大小:74.57KB
下载 相关 举报
C语言课程设计报告学生信息管理系统Word格式.docx_第1页
第1页 / 共50页
C语言课程设计报告学生信息管理系统Word格式.docx_第2页
第2页 / 共50页
C语言课程设计报告学生信息管理系统Word格式.docx_第3页
第3页 / 共50页
C语言课程设计报告学生信息管理系统Word格式.docx_第4页
第4页 / 共50页
C语言课程设计报告学生信息管理系统Word格式.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告学生信息管理系统Word格式.docx

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

C语言课程设计报告学生信息管理系统Word格式.docx

(2)学生信息的修改。

(3)学生信息的浏览

B、学生数据处理:

(1)学生考试数据输入并计算平均分及名次

(2)学生测评数据输入并计算综合测评总分及名次

(3)学生数据的修。

(4)学生数据的查询

C、学生综合信息显示

系统的总体结构

(1)程序主界面的设计

主界面

图系统主界面结构图

(2)学生信息处理子界面设计

图系统子界面结构图1

图系统子界面结构图2

1、学生信息处理

(1)录入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

学生信息可先输入到数组中,排序后可写到文件中。

(2)修改同学信息。

2、学生数据处理:

(1)考试成绩录入及处理:

考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:

先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。

(2)测评成绩录入及处理:

综合测评总分=(考试成绩)*+(同学互评分)*+品德成绩*+任课老师评分*。

(3)学生数据修改:

输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件

(4)学生数据查询:

输入学号,即读出所有数据信息,并显示出来。

3、查询学生综合信息

输入学号即读出综合信息,并显示出来

系统软硬件环境

本程序所适用的计算机系统软硬件环境要求为:

硬件环境:

PentiumIII500以上内存:

256M

软件环境:

Windows7

数据结构设计

学生信息数据结构类型如下:

structstudent

{

intnum;

/*学号*/

charname[20];

/*学生姓名*/

charsex[10];

/*性别男/女*/

charhome[200];

/*家庭住址*/

ints1;

/*语文成绩*/

ints2;

/*数学成绩*/

ints3;

/*英语成绩*/

intave;

/*三科平均成绩*/

intTel;

/*联系方式*/

intm1;

/*考试名次*/

inta1;

/*同学互评分*/

inta2;

/*品德成绩*/

inta3;

/*任课教师评分*/

intz;

/*综合测评总分*/

intm2;

/*综合测评名次*/

}stu[N];

4系统的详细设计

根据系统总体结构对问题进行的模块划分,对总的问题可划分为:

学生信息处理、学生数据处理、学生综合信息查询三个大模块,另还设置了用户帮助函数及退出系统。

首先在主函数中调用了voidone()函数来显示主菜单,主菜单中调用子菜单也就是学生信息处理、学生数据处理的菜单。

学生信息处理用voidinfo()来显示子菜单1,子菜单1中调用了voidinfo_1();

voidinfo_2()。

两个函数来实现学生信息的录入和修改。

学生数据处理用voiddata()来显示子菜2,子菜单2中调用了voiddata_2;

voiddata_1;

voiddata_3;

voiddata_4等函数来实现数据的录入修改及查询。

还使用了voidsort_num(structstudenta[],intn);

voidsort_ave(structstudenta[],intn);

voidsort_z(structstudenta[],intn);

三个排序函数来处理学生的数据

在最后的学生综合信息查询中使用的是voidlook()来实现其功能

在用户指南中使用了voidhelp()函数来实现其功能

以上就是此系统中使用的函数来实现其功能。

主菜单voidone()

1.系统流程

该函数主要用来显示主菜单的内容以及进入子菜单实现功能,该函数实现过程中首先定义了一个变量opt1,这是用户选择进入那个模块的选项。

首先判断opt1的值,如果为1则调用voidinfo()进入信息管理模块,如果为2则调用voiddata()进入数据管理模块,如果为3则调用voidlook()进入学生综合信息查询功

,如果为4则调用voidhelp()进入用户指南函数查看,如果为5则退出系统。

如果用户没有输入12345中的选项,则会提示输入错误请重新输入。

2.代码实现

voidone()/*主菜单函数*/

{

intopt1;

/*主菜单选项*/

printf("

欢迎使用学生综合测评系统\n\n"

);

printf("

1:

学生信息处理2:

学生数据处理\n\n3:

学生综合信息"

4:

用户使用指南\n\n"

5:

退出\n\n"

请输入12345中的任意一个选项进行操作:

"

loop:

scanf("

%d"

&

opt1);

switch(opt1)

case1:

info();

break;

case2:

data();

break;

case3:

look();

case4:

help();

case5:

default:

printf("

输入错误,请重新输入12345中的一项"

scanf("

gotoloop;

}

}

子菜单1voidinfo()

该函数主要用来显示子菜单1的内容以及进入功能实现函数,该函数实现过程中首先定义了一个变量opt2,这是用户选择进入那个功能的选项。

首先判断opt2的值,如果为1则调用voidinfo_1()进入学生信息录入功能,如果为2则调用voidinfo_2()进入学生信息修改功能,如果为3则调用voidone()返回到主菜单。

如果用户没有输入123中的选项,则会提示输入错误请重新输入。

voidinfo()/*信息处理函数*/

intopt2;

/*子菜单选项*/

\n\n欢迎进入信息处理\n\n"

1.学生信息录入\n\n2.学生信息的修改\n\n"

3.返回\n\n"

请输入123中的任意一个选项进行操作"

opt2);

switch(opt2)

info_1();

info_2();

one();

{printf("

输入错误,请重新输入123中的一项"

gotoloop;

学生信息录入voidinfo_1()

该函数运行后,首先打开文件,然后判断文件是否为空。

如果为空设置一个变量count来记录录入学生的数目。

如果不为空,则从文件中读取count的值。

然后开始录入学生信息,设置变量输入s,用switch语句来决定是否录入或退出。

输入1录入0退出2返回上一层。

在1中用goto语句实现循环录入到数组中。

在2中调用voidone().最后将学生信息的数组和count写入文件,然后关闭文件。

voidinfo_1()/*信息录入函数*/

FILE*fp;

ints,i,count;

count=0;

i=1;

if((fp=fopen("

stu"

"

rb+"

))==NULL)

if((fp=fopen("

wb"

Con'

topenfile\n"

exit

(1);

stu[0].num=0;

else

fclose(fp);

ab+"

exit

(1);

fread(stu,sizeof(structstudent),N,fp);

fscanf(fp,"

&

stu[0].num);

\n\n您将开始录入学生信息\n输入1将继续\n输入2返回上一层\n输入0将退出\n"

looo:

s);

switch(s)

case0:

case1:

{

count++;

\n\n您将输入第%d学生的信息:

count);

printf("

\n学号:

scanf("

stu[i].num);

姓名:

%s"

stu[i].name);

性别:

stu[i].sex);

家庭住址:

stu[i].home);

联系电话:

stu[i].Tel);

i++;

gotoloop;

break;

case2:

\n输入错误,请重新输入012中的一项"

gotolooo;

sort_num(stu,i);

stu[i+1].num=0;

stu[0].num+=count;

fseek(fp,0,SEEK_SET);

fwrite(stu,sizeof(structstudent),N,fp);

fseek(fp,0,SEEK_SET);

fread(stu,sizeof(structstudent),N,fp);

for(i=1;

i<

=stu[0].num;

i++)

%d\n"

stu[i].num);

system("

pause"

学生信息修改voidinfo_2()

该函数运行后,首先打开文件,读取文件内容到数组中。

设置变量num用户输入一个学号。

然后用一个for循环将num与数组中的学号的值进行比较,如果相同,跳出循环。

找到后将其输出。

询问是否修改。

修改后将其写入文件中。

关闭文件。

voidinfo_2()/*信息修改函数*/

intj;

if((fp=fopen("

"

rb"

Cannotopenfile\n"

exit

(1);

}/*打开文件*/

fread(stu,sizeof(structstudent),1,fp);

for(j=1;

j<

j++)

fread(&

stu[j],sizeof(structstudent),1,fp);

inti,num,xu,a;

llll:

\n\n请输入需要修改信息的学生的学号:

\n"

num);

for(i=1;

i<

i++)

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

}/*查找需要修改的学生的信息*

if(i>

=stu[0].num)

查无此人"

return;

请问您是否是需要修改此生的信息:

学号%d姓名%s性别%s家庭住址%s联系电话%d"

stu[i].num,stu[i].name,stu[i].sex,stu[i].home,stu[i].Tel);

\n\n如果是请输入1不是请输入2:

xu);

switch(xu)

请输入新的信息\n"

学号:

stu[i].name);

stu[i].sex);

stu[i].home);

完成修改!

\n输入错误,请重新输入01中的一项"

}/*修改学生信息*/

fwrite(stu,sizeof(structstudent),stu[0].num,fp);

/*写入文件中*/

\n是否继续修改学生信息\n是请输入1\n退出请输入2\n返回上一层请输入0"

lllk:

a);

switch(a)

gotollll;

gotolllk;

}/*关闭文件*/

学生数据模块的函数与学生信息模块的函数相似,录入,修改,查询功能。

学生综合信息查询voidlook()

2.该函数运行后,首先打开文件,读取文件内容到数组中。

然后询问是否继续修改,如果是goto语句回到输入学号那里,如果不是,关闭文件退出。

voidlook()/*综合信息显示函数*/

intm;

for(m=1;

m<

m++)

stu[m],sizeof(structstudent),1,fp);

/*读取文件*/

inti,num,a;

\n\n请输入需要查询综合信息的学生的学号:

}/*查找需要修改的学生的信息*/

学生数据显示:

\n\n"

学号%d姓名%s性别%s家庭住址%s联系电话%d\n"

语文%d数学%d英语%d平均分%d考试名次%d\n"

stu[i].s1,stu[i].s2,stu[i].s3,stu[i].ave,stu[i].m1);

同学互评分%d品德成绩%d任课教师评分%d综合测评总分%d综合排名%d"

stu[i].a1,stu[i].a2,stu[i].a3,stu[i].z,stu[i].m2);

\n是否继续查询学生数据是请输入1否请输入2\n"

/*关闭文件*/

用户指南voidhelp()

该函数主要用来提示用户此系统的信息,进入后浏览信息,最后定义一个变量i,请用户输入1返回到主菜单进行操作。

如果用户输入的不是1则提示请输入1。

voidhelp()

inti;

本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。

\n\n"

基本信息包括:

学号、姓名、性别、家庭住址、联系电话;

\n\n各科成绩包括:

语文、数学、英语成绩;

其它包括:

考试名次、同学互评分、品德成绩、任课教师评分等。

说明:

考试成绩排名是按照考试成绩平均分计算的(平均分=(语+数+外)/3)\n\n"

综合测评总分=((考试成绩)*+(同学互评分)*+(品德成绩)*\n+(任课教师评分)*\n\n"

此系统最多可管理5000人信息。

其它请按照提示操作即可。

返回上一层请输入1"

i);

if(i=1)

else

输入错误请重新输入:

5系统测试及调试

系统的测试及调试是为了发现程序中错误,而执行程序的过程。

运行过程:

1)运行该程序,进入一个主菜单函数,出现了选择的菜单:

可输入选项进入子菜单(两个子菜单分别进入):

2)在进入第一个子菜单后可进行学生的信息处理:

在输入1后可进行学生信息的录入:

每录完一个信息后会询问是否继续录入或者返回上一层或者退出

返回上一层,便回到了主菜单可继续进行操作:

在信息处理内选择2来修改学生的信息:

3)在进入第二个子菜单后可进行学生的数据处理:

数据录入:

数据查询:

3)在主菜单选择3进入后可查询综合信息:

4)在主菜单选择4进入后可查看用户指南:

5)输入5便退出系统:

系统调试过程中遇到的问题:

1)录入学生信息后能够写进文件,但是只能查询时只能查询到第一个人的信息

错误原因:

录入信息后储存后。

无法知道信息的条数。

读取的时候只读取了第一条。

解决方案:

在信息录入的时候设置一个变

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

当前位置:首页 > 工程科技 > 建筑土木

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

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