当前位置:文档之家› 学生学籍信息管理系统

学生学籍信息管理系统

C语言课程设计综合实习报告题目:学籍信息管理系统姓名:**学号:***********班级号:052081院(系):工程学院专业:土木工程****:**一,题目要求1. 学生学籍信息管理系统设计[要求]使用下面的数据设计一个简单的学籍管理系统。

学生基本信息文件(A.TXT)极其内容:学号姓名性别宿舍号码电话号码01 张成成男501 8773211102 李成华女101 8772311203 王成凤女101 8772311204 张明明男502 8773433305 陈东男501 8773211106 李果男502 8773433307 张园园女102 87756112学生成绩基本信息文件(B.TXT)极其内容:.....................................................................................................................学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分01 A01 大学物理 3 66 78 8202 B03 高等数学 4 78 -1 9001 B03 高等数学 4 45 -1 8802 C01 VF 3 65 76 66................................................................................................................功能要求极其说明:(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)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

三,程序总体设计四,程序详细设计⒈主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。

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

[流程图][程序]void main(){while(1){printf("\n<<<<<<<<<<<<<<welcome to use student manage>>>>>>>>>>>>>>>>>\n\n");printf("*========================================================= * \n");printf("* 1>input 2>cha zhao * \n");printf("* 3>delete 4>paixu xianshi * \n");printf("* 5>exit * \n");printf("* * \n");printf("* --------------------------------------------------------- * \n");printf(" Please input which you want(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中。

学生基本信息的存放格式为:struct info{int sMingci; //名次char xuehao[8];char name[10];char sex[2];char d_num[4]; //宿舍号码char tel_num[9]; //宿舍电话号码}data,s_info[100];成绩基本信息的存放格式为:struct course{char xuehao[8];char course_No[6]; //课程代号char course_name[10]; //课程名字float xuefen; //学分float p_chengji; //平时成绩float s_chengji; //实验成绩float j_chengji; //卷面成绩float z_chengji; //综合成绩float s_xuefen; //实际学分}course_data,s_course[100];[需求分析]数据录入模块的功能是用户通过输入选项在基本信息和成绩信息的输入之间进行选择。

[程序]void input(){while(1){printf("\nwhich information do you want to input: b(base) s(socre) e(exit)");ch=getch();if(ch=='b'||ch=='B'){if((fp=fopen("s_info.txt","at+"))==NULL){printf("cannot open this file.\n");getch();exit(0);}printf("\nPlease input xuehao:");gets(sn);while((fread(&data,sizeof(data),1,fp))==1){if(strcmp(sn,data.xuehao)==0){flag=1;}}if(flag==1){printf("\n the number has exist,press ang key continue:\n");flag=0;getch();continue;}else{strcpy(data.xuehao,sn);}printf("Please input name:");gets();printf("Please input sex:M(male)/F(female):\n");gets(data.sex);printf("Please input your dormitory No:");gets(data.d_num);printf("Please input telephone Number:");gets(data.tel_num);fwrite(&data,sizeof(data),1,fp); //写入数据fclose(fp);} //ifelse if(ch=='s'||ch=='S'){if((fp1=fopen("s_score.txt","at+"))==NULL||(fp=fopen("s_info.txt","rt"))==NULL) {printf("cannot open this file.\n");getch();exit(0);}printf("\nPlease input xuehao:");gets(sn);while((fread(&data,sizeof(data),1,fp))==1){if(strcmp(sn,data.xuehao)==0){ flag=1;}}if(!flag){ printf("\nthis number is not exist\n");continue;}else{ flag=0;strcpy(course_data.xuehao,sn);}printf("\nPlease input course No:");gets(course_data.course_No);printf("\nPlease input course name:");gets(course_data.course_name);printf("\nPlease input course xuefeng:");gets(temp);course_data.xuefen=atof(temp);printf("\nPlease input pingshi chengji:");gets(temp);course_data.p_chengji=atof(temp);printf("\nPlease input shiyan chengji:");gets(temp);course_data.s_chengji=atof(temp);printf("\nPlease input juanmian chengji:");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;}else if((course_data.z_chengji)<70){course_data.s_xuefen=course_data.xuefen*0.6;}else if((course_data.z_chengji)<80){course_data.s_xuefen=course_data.xuefen*0.75;}else if((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);} //else ifelse{break;}printf("another?y/n");ch=getch();if(ch=='n'||ch=='N')break;}} //input⑵查询功能模块。

相关主题