学生综合测评系统.docx

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

学生综合测评系统.docx

《学生综合测评系统.docx》由会员分享,可在线阅读,更多相关《学生综合测评系统.docx(24页珍藏版)》请在冰点文库上搜索。

学生综合测评系统.docx

学生综合测评系统

课程设计报告

课程名称C语言程序设计

课题名称学生综合测评系统

专业

班级

学号

姓名

指导教师

2012年1月2日

湖南工程学院

课程设计任务书

课程名称C语言程序设计课题学生综合测评系统专业班级

学生姓名

学号

指导老师

审批

任务书下达日期2012年12月25日

任务完成日期2013年1月2日

一、设计内容与设计要求

1.设计内容:

课题十:

学生综合测评系统

一、问题描述:

每个学生的信息为:

学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

二、功能描述:

A、学生信息处理

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

提示:

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

(2)插入(修改)同学信息:

提示:

先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的

信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,

(3)删除同学信息:

提示:

输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删

除后的信息写到文件中。

⑷浏览学生信息:

提示:

打开文件,显示该文件的学生信息。

B、学生数据处理:

(1)按考试科目录入学生成绩并且按公式:

考试成绩=(语文+数学+外语)/3计算考

试成绩,并计算考试名次,提示:

先把学生信息读入数组,然后按提示输入每科成绩,计算

考试成绩,求出名次,最后把学生记录写入一个文件中。

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

提示:

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

评分*0.2。

(3)学生数据管理

提示:

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

(4)学生数据查询:

提示:

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

C、学生综合信息输出

提示:

输出学生信息到屏幕。

三、算法提示:

1、数据结构:

结构体类型数组

2、数据库结构:

下表构成该系统的基本数据库。

学号

姓名

考试成绩

评分

Char

Char

struct

int

四、测试数据:

学生人数:

N=10

学生综合测评系统

1.课程设计目的

掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

2.课程设计主要任务

一、问题描述:

的信息为:

学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,

10%,10%,20%。

二、功能描述:

A学生信息处理

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

(2)插入(修改)同学信息:

(3)删除同学信息:

(4)浏览学生信息:

B、学生数据处理:

(1)按考试科目录入学生成绩并且按公式:

考试成绩=(语文+数学+外语)/3计算考

试成绩,并计算考试名次。

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

(3)学生数据管理

(4)学生数据查询:

C、学生综合信息输出

3.设计环境

1)硬件:

PC机,档次不低于CPU为PIII667,内存为128M4G硬盘,其它硬件与此相配套。

2)软件:

WindowsXP,VC++6.0

4.总体设计方案的选定

本设计采用模块化结构设计,主要包括:

主菜单(menu)下的学生信息处理系统

(info_menu)、学生数据处理系统(data_menu)、学生综合信息输出(shuchu)、帮助信息(help)、退出系统;学生信息处理系统(info_menu)下的输入学生信息(info_input)、修改学生信息(xiugai)、删除学生信息(info_del)、浏览学生信息(info_output)、返回主菜单;学生数据处理系统下的(data_menu)录入成绩数据(data_input)、修改学生数据(data_xiugai)、学生数据查询(data_chaxun)、返回主菜单。

学生综合测评系统结构框图

5.源程序清单

 

//包含

//定义学生信息结构数组

//定义学生数据结构数组

//主函数

\n\n");

\n\n");

#include文件

#include"stdlib.h"

#include"string.h"intcount;voidinfo_daoru();voidinfo_xieru();voidinfo_del();voidinfo_xiugai();voiddata_xieru();voiddata_daoru();voiddata_xiugai();voiddata_chaxun();voiddata_input();voidshuchu();structstudent{

doublenumber;

charname[11];

charsex[4];

charadds[15];

charphone[14];}p,info[100],w={0,"","","","",};structdata{

doublenumber;

charname[11];

charsex[4];

charadds[15];

charphone[14];

intchinese,math,english,stu,ksmc,pinde,teacher;floataver,ceping;

}data[100];

intmain(){

system("color9e");

voiddata_menu();

voidinfo_menu();

voidhelp();

voidmenu();

printf("\n\n\n\t\t欢迎使用学生综合管理系统

printf("\t\t\t\t本程序由宗幸幸借鉴陈伟的程序编写printf("\n\n\t\t");

system("pause");

menu();

return0;

}

voidhelp()//帮助信息

{

system("cls");//清屏

printf("*欢迎使用本系统!

*\n\n");

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

\n");

printf("基本信息包括:

学号、姓名、性别、家庭住址、联系电话;\n各科成绩包括:

语文、数学、外语成绩;\n");

printf("其它包括:

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

\n");

printf("说明:

考试成绩排名是按照考试成绩计算的(考试成绩=(语+数+

外)/3);\n");

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

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

\n\n");

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

system("pause");

}

voidinfo_daoru()//学生信息导出文件函数

{

FILE*f_info;

structstudentp={NULL};

printf("\n\n\t正在导入...\n\n");

if((f_info=fopen("info.txt","r"))==NULL){printf("\n\t打开文件失败!

\n\n");return;

}

count=0;

while(!

feof(f_info)){

fscanf(f_info,"%lf%s%s%s%s",&p.number,p.name,p.sex,p.adds,p.phone);info[count]=p;

count++;

}

printf("\n\t导入已完成!

共导入%d条记录!

\n\n\n",count);fclose(f_info);

}

voidinfo_input()//学生信息输入函数

{

inti,j;

info_daoru();

for(;;){

printf("\t请输入学号(输入0退出):

");scanf("%lf",&p.number);

if(p.number==0)return;

for(i=0;i<=count;i++){//判断是否存在该学生

if(p.number==info[i].number){

printf("\n\n\t该学号已存在!

请重新输入!

\n\n");

return;

}

}

printf("\t请输入姓名:

");

getchar();

gets(p.name);

printf("\t请输入性别:

");

getchar();

gets(p.sex);

printf("\t请输入家庭住址:

");

getchar();

gets(p.adds);

printf("\t请输入电话号码:

");

getchar();

gets(p.phone);

info[count]=p;

for(i=0;iinfo[count].number){for(j=count;j>i;j--){info[j]=info[j-1];

}

info[i]=p;

break;

}

}

count++;

}

}

voidinfo_output()

{

FILE*f_info;

inti;

if((f_info=fopen("info.txt","r"))==NULL){

//判断

printf("\n\t没有学生信息!

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

system("pause");

//输入学生信息

//按学号排序

//学生信息浏览

return;

}info_daoru();

 

if(count==0){

//判断

printf("\n\t没有学生信息!

");printf("\n\n\t\t");system("pause");return;

}

else{

printf("\t学号\t姓名\t性别\t家庭住址\t联系电话

\n");//输出学生信息

for(i=0;i

printf("%10.0lf",info[i].number);

printf("%10s",info[i].name);

printf("%10s",info[i].sex);

printf("%15s",info[i].adds);

printf("%13s\n\n",info[i].phone);

}

}

printf("\t请按任意键返回上级:

");

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

system("pause");

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

}

voidinfo_menu()//学生信息菜单

{

intchoice;

while

(1){

system("cls");//清屏

printf("\n\n\n\n\t\t☆☆☆☆☆学生信息处理系\n\n");printf("\t\t\t•1.输入学生信息\n");

printf("\t\t\t•2.修改学生信息\n");

printf("\t\t\t•3.删除学生信息\n");

printf("\t\t\t•4.浏览学生信息\n");

printf("\t\t\t•0.返回主菜单\n\n");printf("\t\t请输入序号选择操作:

");

scanf("%d",&choice);

if(choice==0)break;

switch(choice){

case1:

info_input();info_xieru();break;

case2:

info_xiugai();break;

case3:

info_del();break;

case4:

info_output();break;

default:

printf("\n\t输入有误!

请重新输入!

\n\n");break;

}

voiddata_menu()//数据处理菜单

{

intchoice;

printf("\n\t在进入学生数据管理前,请确认学生信息已全部完成!

\n");

printf("\n\t是否继续输入数字选择(0:

返回;其它数字继续。

)\n");scanf("%d",&choice);

if(choice==0)return;

while

(1){system("cls");//清屏

printf("\n\n\n\n\t\t☆☆☆☆☆学生数据处理系\n\n");

printf("\t\t\t•1.录入成绩数据\n");

printf("\t\t\t•2.修改学生数据\n");

printf("\t\t\t•3.学生数据查询\n");

printf("\t\t\t•0.返回主菜单\n\n");printf("\t\t请输入序号选择操作:

");

scanf("%d",&choice);if(choice==0)break;

switch(choice){

case1:

data_input();break;

case2:

data_xiugai();break;

case3:

data_chaxun();break;

default:

printf("\n\t输入有误!

请重新输入!

\n\n");break;

}

}

}

voidmenu()//主菜单函数

{

intchoice;

while

(1){

system("cls");

printf("\n\n\n\n\t\t※主----菜----单※\n\n");

printf("\t\t\t•1.学生信息处理系统\n");

printf("\t\t\t•2.学生数据处理系统\n");

printf("\t\t\t•3.学生综合信息输出\n");

printf("\t\t\t•4.帮助信息\n");

printf("\t\t\t•0.退出系统\n\n");

printf("\t\t请输入序号选择操作:

");

scanf("%d",&choice);

printf("\n");

if(choice==0){

printf("\t\t☆☆☆☆☆你已经退出,谢谢使用!

☆☆☆☆☆\n\n\t\t");

break;

}switch(choice){

case1:

info_menu();break;

case2:

data_menu();break;

case4:

help();break;

case3:

shuchu();break;

default:

printf("\n\t输入有误!

请重新输入!

\n\n");break;

}

}

}

voidinfo_xieru()//学生信息写入文件函数

{

FILE*f;

inti;if((f=fopen("info.txt","a"))==NULL){printf("\n\t打开文件失败!

\n\n");exit(0);

}

for(i=0;i

if(info[i].number==w.number)continue;

else

fprintf(f,"%.0lf%s%s%s%s",info[i].number,info[i].name,info[i].sex,info[i].adds,info[i].phone);

}

fclose(f);printf("\n\t保存成功!

\n\n");printf("\n\n\t\t");system("pause");

return;

}

voidinfo_del()//学生信息删除

{

doublepp;

inti,j;info_daoru();printf("\n\t请输入要删除学生的学号:

");scanf("%lf",&pp);

printf("\n");

for(i=0;i<=count;i++){//判断

if(info[i].number==pp)break;

if(i>=count){

printf("\n\t没有找到该学生!

\n");return;

printf("\t学号\t姓名\t性别家庭住址\t联系电话\n");//显示删除信息

printf("%10.0lf",info[i].number);

printf("%10s",info[i].name);

printf("%10s",info[i].sex);

printf("%13s\n\n",info[i].phone);

printf("\n\t是否删除?

\t1是\t2.否\t");

while

(1){scanf("%d",&j);switch(j){case1:

info[i]=w;printf("\n\t删除成功!

\n\n");info_xieru();return;

case2:

return;

default:

printf("输入错误!

请重新输入!

");break;

}break;

}

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

system("pause");

}

voidinfo_xiugai()//修改学生信息

{

doublepp;

inti,j;

info_daoru();

printf("\n\t请输入要修改学生的学号:

");//查找

scanf("%lf",&pp);

printf("\n");

for(i=0;i<=count;i++){

if(info[i].number==pp)break;printf("\n\t没有找到该学生!

\n");return;

}

printf("\t学号\t姓名\t性别\t家庭住址\t联系电话\n");

//显示

printf("%10.0lf",info[i].number);

printf("%10s",info[i].name);

printf("%10s",info[i].sex);

printf("%15s",info[i].adds);

printf("%13s\n\n",info[i].phone);

printf("\n\t是否修改?

\t1是\t2.否\t");

while

(1){//修改

scanf("%d",&j);

switch(j){

case1:

{

printf("\t学号为:

%.0lf\n",info[i].number);

printf("\t请输入姓名:

");scanf("%s",info[i].name);printf("\t请输入性别:

");scanf("%s",info[i].sex);

printf("\t请输入家庭住址:

");scanf("%s",info[i].adds);printf("\t请输入电话号码:

");scanf("%s",info[i].phone);

printf("\n\t修改成功!

\n\n");info_xieru();return;//保存

}case2:

return;

default:

printf("输入错误!

请重新输入!

");break;

}

break;

}printf("\n\n\t\t");system("pause");

}

voiddata_daoru()//学生数据导出

{

FILE*f_data;structdatap={NULL};printf("\n\n\t正在导入...\n\n");if((f_data=fopen("data.txt","r"))==NULL){printf("\n\t打开文件失败!

\n\n");return;

}count=0;

while(!

feof(f_data)){fscanf(f_data,"%lf%s%s%s%s%d%d%d%d%f%d%d%d%f",&p.number,p.name,p.sex,p.adds,p.phone,&p.chinese,&p.math,&p.english,&p.stu,&p.aver,&p.ksmc,&p.pinde,&p.teacher,&p.ceping);

data[count]=p;//nnaseadpchmaensuavkspitececount++;

}

printf("\n\t导入已完成!

共导入%d条记录!

\n\n\n",count);fclose(f_data);//关闭文件

}voiddata_xieru()//写入文件函数

{

FILE*f;

inti;if((f=fopen("data.txt","w"))==NULL){printf("\n\t打开文件失败!

\n\n");

exit(0);

}

for(i=0;i

fprintf(f,"%.0lf%s%s%s%s%d%d%d%.1f%d%d%d%.1f",data[i].number,data[i].name,data[i].sex,data[i].adds,data[i].phone,data[i].chinese,data[i].math,data[i].english,data[i].aver,data[i].ksmc,data[i].stu,data[i].pinde,data[i].teacher,data[i].ceping);

}//numnamsadtelcmeaveksstutcepfclose(f);

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

system("pause");

return;

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

当前位置:首页 > 经管营销 > 经济市场

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

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