学生学籍信息管理系统.docx

上传人:b****1 文档编号:15118121 上传时间:2023-06-30 格式:DOCX 页数:51 大小:191.63KB
下载 相关 举报
学生学籍信息管理系统.docx_第1页
第1页 / 共51页
学生学籍信息管理系统.docx_第2页
第2页 / 共51页
学生学籍信息管理系统.docx_第3页
第3页 / 共51页
学生学籍信息管理系统.docx_第4页
第4页 / 共51页
学生学籍信息管理系统.docx_第5页
第5页 / 共51页
学生学籍信息管理系统.docx_第6页
第6页 / 共51页
学生学籍信息管理系统.docx_第7页
第7页 / 共51页
学生学籍信息管理系统.docx_第8页
第8页 / 共51页
学生学籍信息管理系统.docx_第9页
第9页 / 共51页
学生学籍信息管理系统.docx_第10页
第10页 / 共51页
学生学籍信息管理系统.docx_第11页
第11页 / 共51页
学生学籍信息管理系统.docx_第12页
第12页 / 共51页
学生学籍信息管理系统.docx_第13页
第13页 / 共51页
学生学籍信息管理系统.docx_第14页
第14页 / 共51页
学生学籍信息管理系统.docx_第15页
第15页 / 共51页
学生学籍信息管理系统.docx_第16页
第16页 / 共51页
学生学籍信息管理系统.docx_第17页
第17页 / 共51页
学生学籍信息管理系统.docx_第18页
第18页 / 共51页
学生学籍信息管理系统.docx_第19页
第19页 / 共51页
学生学籍信息管理系统.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生学籍信息管理系统.docx

《学生学籍信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统.docx(51页珍藏版)》请在冰点文库上搜索。

学生学籍信息管理系统.docx

学生学籍信息管理系统

中国地质大学

C语言课程设计

综合实习报告

 

题目:

学籍信息管理系统

姓名:

 黄凯    

学号:

***********

班级号:

 052081

院(系):

工程学院

专业:

 土木工程

指导教师:

 曹弘

 

一,题目要求

1.学生学籍信息管理系统设计

[要求]

使用下面的数据设计一个简单的学籍管理系统。

学生基本信息文件(A.TXT)极其内容:

学号姓名性别宿舍号码电话号码

01张成成男50187732111

02李成华女10187723112

03王成凤女10187723112

04张明明男50287734333

05陈东男50187732111

06李果男50287734333

07张园园女10287756112

学生成绩基本信息文件(B.TXT)极其内容:

.....................................................................................................................

学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分

01A01大学物理3667882

02B03高等数学478-190

01B03高等数学445-188

02C01VF3657666

................................................................................................................

功能要求极其说明:

(1)数据录入功能:

录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。

实得成绩、实得学分根据条件自动运算。

综合成绩的计算:

a.如果本课程的实验成绩为-1,则表无实验成绩,综合成绩=平时成绩*30%+卷面成绩*70%

b.如果实验成绩不为-1,表示本课程有实验成绩,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%

实得学分的计算:

采用等级学分制。

综合成绩在90~100之间,应得学分=学分*100%

综合成绩在80~90之间,应得学分=学分*80%

综合成绩在70~80之间,应得学分=学分*75%

综合成绩在60~70之间,应得学分=学分*60%

综合成绩在60分以下,应得学分=学分*0%

(2)查询功能:

分为学生基本情况查询和成绩查询两种

学生基本情况查询:

输入一个学号或姓名(可实现选择)查出此学生的基本信息并显示输出。

输入一个宿舍号码,可查出本室所有学生的基本信息并显示输出。

称号查询:

输入一个学号时,查出此学生所有课程情况,格式如下:

学号:

XX课程名称:

XXXX综合成绩:

XX实得学分:

XXX

...............................................................................

共修:

X科,实得总分为:

XXX

(3)删除功能:

当在A.TXT中删除一个学生时,自动地在B.TXT中删除此学生所有信息。

(4)排序功能:

能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

[提示]

数据结构采用结构体数组,提供学生基本信息和学生成绩基本信息结构体数组。

二,需求分析

根据题目要求,该程序应具备的功能有:

(1)数据录入功能:

录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。

实得成绩、实得学分根据条件自动运算。

(2)查询功能:

分为学生基本情况查询和成绩查询两种

(3)删除功能:

当在A.TXT中删除一个学生时,自动地在B.TXT中删除此学生所有信息。

(4)排序功能:

能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

三,程序总体设计

 

退出

 

四,程序详细设计

⒈主函数

主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

[流程图]

[程序]

voidmain()

{

while

(1)

{

printf("\n<<<<<<<<<<<<<>>>>>>>>>>>>>>>>\n\n");

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

printf("*1>input2>chazhao*\n");

printf("*3>delete4>paixuxianshi*\n");

printf("*5>exit*\n");

printf("**\n");

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

printf("Pleaseinputwhichyouwant(1-5):

");

ch=getch();

switch(ch)

{

case'1':

input();break;

case'2':

search();getch();break;

case'3':

delete();getch();break;

case'4':

sort();getch();break;

case'5':

exit(0);

default:

continue;

}

}

}

⒉个功能模块设计

⑴数据录入。

[数据结构]

我们需要录入的信息数据有两类:

一类是学生基本信息,包括学号,学号姓名性别宿舍号码电话号码,存放在文件S_INFO.TXT中。

另一类信息是学生成绩基本信息,包括学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。

实得成绩、实得学分根据条件自动运算。

这些信息存放在文件S_SCORE.TXT中。

学生基本信息的存放格式为:

structinfo

{

intsMingci;//名次

charxuehao[8];

charname[10];

charsex[2];

chard_num[4];//宿舍号码

chartel_num[9];//宿舍电话号码

}data,s_info[100];

成绩基本信息的存放格式为:

structcourse

{

charxuehao[8];

charcourse_No[6];//课程代号

charcourse_name[10];//课程名字

floatxuefen;//学分

floatp_chengji;//平时成绩

floats_chengji;//实验成绩

floatj_chengji;//卷面成绩

floatz_chengji;//综合成绩

floats_xuefen;//实际学分

}course_data,s_course[100];

[需求分析]

数据录入模块的功能是用户通过输入选项在基本信息和成绩信息的输入之间进行选择。

[程序]

voidinput()

{

while

(1)

{

printf("\nwhichinformationdoyouwanttoinput:

b(base)s(socre)e(exit)");

ch=getch();

if(ch=='b'||ch=='B')

{

if((fp=fopen("s_info.txt","at+"))==NULL)

{

printf("cannotopenthisfile.\n");

getch();exit(0);

}

printf("\nPleaseinputxuehao:

");

gets(sn);

while((fread(&data,sizeof(data),1,fp))==1)

{

if(strcmp(sn,data.xuehao)==0)

{

flag=1;

}

}

if(flag==1)

{

printf("\nthenumberhasexist,pressangkeycontinue:

\n");

flag=0;

getch();

continue;

}

else

{

strcpy(data.xuehao,sn);

}

printf("Pleaseinputname:

");

gets(data.name);

printf("Pleaseinputsex:

M(male)/F(female):

\n");

gets(data.sex);

printf("PleaseinputyourdormitoryNo:

");

gets(data.d_num);

printf("PleaseinputtelephoneNumber:

");

gets(data.tel_num);

fwrite(&data,sizeof(data),1,fp);//写入数据

fclose(fp);

}//if

elseif(ch=='s'||ch=='S')

{

if((fp1=fopen("s_score.txt","at+"))==NULL||(fp=fopen("s_info.txt","rt"))==NULL)

{

printf("cannotopenthisfile.\n");

getch();exit(0);

}

printf("\nPleaseinputxuehao:

");

gets(sn);

while((fread(&data,sizeof(data),1,fp))==1)

{

if(strcmp(sn,data.xuehao)==0)

{flag=1;

}

}

if(!

flag)

{printf("\nthisnumberisnotexist\n");

continue;

}

else

{flag=0;

strcpy(course_data.xuehao,sn);

}

printf("\nPleaseinputcourseNo:

");

gets(course_data.course_No);

printf("\nPleaseinputcoursename:

");

gets(course_data.course_name);

printf("\nPleaseinputcoursexuefeng:

");

gets(temp);

course_data.xuefen=atof(temp);

printf("\nPleaseinputpingshichengji:

");

gets(temp);

course_data.p_chengji=atof(temp);

printf("\nPleaseinputshiyanchengji:

");

gets(temp);

course_data.s_chengji=atof(temp);

printf("\nPleaseinputjuanmianchengji:

");

gets(temp);

course_data.j_chengji=atof(temp);

//以下是综合成绩计算

if(course_data.s_chengji==-1)//如果有实验

{

course_data.z_chengji=(course_data.p_chengji)*0.3+(course_data.j_chengji)*0.7;

}

else//如果无实验

{

course_data.z_chengji=(course_data.p_chengji)*0.15+(course_data.s_chengji)*0.15+(course_data.j_chengji)*0.7;

}

//以下是实际学分计算

if((course_data.z_chengji)<60)

{course_data.s_xuefen=0;}

elseif((course_data.z_chengji)<70)

{course_data.s_xuefen=course_data.xuefen*0.6;}

elseif((course_data.z_chengji)<80)

{course_data.s_xuefen=course_data.xuefen*0.75;}

elseif((course_data.z_chengji)<90)

{course_data.s_xuefen=course_data.xuefen*0.8;}

else

{course_data.s_xuefen=course_data.xuefen;

}

fwrite(&course_data,sizeof(course_data),1,fp1);//写入数据

fclose(fp1);

fclose(fp);

}//elseif

else

{break;

}

printf("another?

y/n");

ch=getch();

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

break;

}

}//input

⑵查询功能模块。

[需求分析]

该模块的功能分为学生基本情况查询和成绩查询两种。

学生基本情况查询是根据输入的学号或姓名查出此学生的基本信息并显示输出;或者根据输入的宿舍号码,查出本室所有学生的基本信息并显示输出。

成绩查询的功能是根据输入的学号,查出此学生的所有课程情况。

[流程图]

[程序]

voidsearch()

{

printf("\nselectform:

a(studentinformation)b(socreinformation)");

ch=getch();

if(ch=='a'||ch=='A')

{

if((fp=fopen("s_info.txt","rt"))==NULL)

{

printf("\nCannotopenthisfile.\n");

exit(0);

}

printf("\nselectway:

a(studentNumber)b(studentname)c(dormitoryNO):

\n");

ch1=getch();

//按照学号查找

if(ch1=='a'||ch1=='A')

{

printf("\npleaseinputthestudentnumber:

");

gets(temp_NO);

printf("xuehaonamesexsushehaotelephone");

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

while((fread(&data,sizeof(data),1,fp))==1)

{

if(strcmp(temp_NO,data.xuehao)==0)

{flag=1;

printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,data.name,data.sex,data.d_num,data.tel_num);

}

}

if(!

flag)

{printf("\nthisnumberisnotexist,pressanykeytocontinue\n");

getch();

}

else

{flag=0;

}

}

//按照名字查找elseif(ch1=='b'||ch1=='B')

{

printf("\npleaseinputthename:

");

gets(temp_name);

printf("xuehaonamesexsushehaotelephone");

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

while((fread(&data,sizeof(data),1,fp))==1)

{

if(strcmp(temp_name,data.name)==0)

{flag=1;

printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,data.name,data.sex,data.d_num,data.tel_num);

}

}

if(!

flag)

{printf("\nthisnameisnotexist,pressanykeytocontinue:

\n");

getch();

}

else

{flag=0;

}

}

//按照宿舍号码查找

elseif(ch1=='c'||ch1=='C')

{

printf("\npleaseinputthedormitorynumber:

");

gets(temp_dnum);

printf("xuehaonamesexsushehaotelephone");

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

while((fread(&data,sizeof(data),1,fp))==1)

{

if(strcmp(temp_dnum,data.d_num)==0)

{flag=1;

printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,data.name,data.sex,data.d_num,data.tel_num);

}

if(!

flag)

{printf("thisdormitoryisnotexist,pressanykeycontinue:

");

getch();

}

else

{

flag=0;

}

}

}

else

{printf("\nselecterror\n");

}

fclose(fp);

}//chif

//学生成绩查找

elseif(ch=='b'||ch=='B')

{

j=0;

z_fen=0;

z_xuefen=0;

if((fp1=fopen("s_score.txt","rt"))==NULL)

{

printf("\nCannotopenthisfile.\n");

exit(0);

}

printf("\npleaseinputstudentnumber:

");

gets(temp_NO);

printf("xuehaocourse_Nocourse_namexuefenchengji");

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

while((fread(&course_data,sizeof(course_data),1,fp1))==1)

{

if(strcmp(temp_NO,course_data.xuehao)==0)

{flag=1;

j++;

z_fen=z_fen+course_data.z_chengji;

z_xuefen=z_xuefen+course_data.s_xuefen

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2