课程设计报告学生成绩管理系统C语言.docx

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

课程设计报告学生成绩管理系统C语言.docx

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

课程设计报告学生成绩管理系统C语言.docx

课程设计报告学生成绩管理系统C语言

信息学院

课程设计Ⅰ报告

课程名称___C语言程序设计_

题目名称学生成绩管理系统

学生学院__

专业班级

学号

学生姓名

指导教师__________

 

2012年12月23日

 

1设计目的与要求3

1.1题目及设计要求3

1.2本程序设计的知识点3

2、功能设计3

2.1、总体设计3

2.3详细设计6

3、程序实现8

3.1程序实现时应考虑的问题8

3.2成绩排序、信息删除、信息保存、文件打开模块核心代码8

3.3程序源代码11

4、测试分析19

4.1测试结果及分析19

5、总结22

6、参考文献:

23

 

1设计目的与要求

1.1题目及设计要求

题目:

将学生基本信息、学生成绩基本信息要存入文件当中,并且具有文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。

设计要求:

程序具有信息录入、查看、查找、成绩排序、删除信息、保存信息、打开文件、退出系统等功能。

我负责的是成绩排序、信息的删除、信息的保存、文件的打开这四个模块。

1.2本程序设计的知识点

1程序涉及数组,字符串的定义;

2函数调用;

3结构体,指针;

4文件录入

2、功能设计

2.1、总体设计

(1)在此程序中,包括几个头文件:

#include

将stdio.h内容放在这儿,此文件有printf、scanf等函数的定义;

#include

定义字符串变量;

#include

定义了五种类型变量、常用函数例如look()、save();

(2)系统中所包含的函数:

voidlook();/*声明查看函数*/

voidsave();/*声明保存函数*/

voidsearch_name();/*声明按姓名查看函数*/

voidsearch_number();/*声明按学号查看函数*/

voidorder();/*声明排序函数*/

voiddel();/*声明删除函数*/

intopenl();/*声明打开函数*/

voidwelcome();/*声明我的个人信息函数*/

voidtype();/*声明输入函数*/

voidsee();/*声明打开并查看文件函数*/

Main();/*主函数*/

(3)系统中定义的结构体

structstudent/*定义学生信息的结构体类型*/

charnum[15];/*学号*/

charname[20];/*姓名*/

charsex[4];/*性别*/

chardno[20];/*宿舍号*/

intenglish;/*英语成绩*/

intmath;/*数学成绩*/

intchinese;/*语文成绩*/

floataver;/*平均成绩*/

floatsum;/*总成绩*/

(4)系统中定义的全局变量

intn

 

(5)系统功能模块

 

 

2.3详细设计

(1)成绩排序模块

 

排序功能:

对数据进行排序,通过order函数对数据按平均分进行排序,排序结束后调用save函数保存。

 

(2)信息删除模块

 

 

删除功能:

删除信息,通过del函数实现,删除后调用save函数对数据保存。

 

(3)信息保存模块

 

保存功能:

对数据进行保存,用save函数向文件中写入数据实现该功能。

(4)文件打开模块

 

3、程序实现

3.1程序实现时应考虑的问题

程序代码问题输入时大小写问题、界面是否整洁大方。

在程序实现时,定义是否合理,函数调用语句是否达到要求,控制语句是否合理。

调试程序,运行程序,程序是否达到设计需求等。

3.2成绩排序、信息删除、信息保存、文件打开模块核心代码

 

voidorder()/*定义排序函数*/

{

system("CLS");

inti,j;

chara;

structstudenttemp;/*声明结构体变量*/

printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

{

for(j=i+1;j

if(stu[i].sum

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

}

getch();

printf("是否保存?

(yorn)");

getchar();

scanf("%c",&a);

if(a=='y')/*是否保存排序后的文件*/

save();

else

printf("退出");

getch();

}

voiddel()/*定义删除学生信息函数*/

{

inti;

chara;

charname[20];

system("CLS");

printf("\t\t\t输入学生名字:

\n");

scanf("%s",name);

system("CLS");

printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

if(strcmp(stu[i].name,name)==0)

{

printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

getch();

printf("真的删除?

(yorn)");

getchar();

scanf("%c",&a);

if(a=='y')/*是否删除该信息*/

{

for(;i

stu[i]=stu[i+1];

n=n-1;

printf("你已经删除信息");

}

else

printf("退出");

getch();

}

save();

}

voidsave()/*建立保存文件函数*/

{

system("CLS");

FILE*fp;/*定义文件型指针*/

inti;

if((fp=fopen("student.txt","wb"))==NULL)/*打开输出文件*/

{

printf("不能打开文件!

\n");

return;/*终止程序*/

}

for(i=0;i

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

=1)

printf("文件写入错误\n");

fclose(fp);/*关闭文件*/

printf("\n\n\n\n\t\t\t学生信息保存成功!

\n");

printf("\n\n\n\n\t\t\t按任意键返回菜单!

!

");

getch();

}

voidsee()/*打开并查看文件*/

{

system("CLS");

inti;

n=openl();

printf("文件打开成功!

\n");

printf("按任意键查看!

\n");

getch();

printf("学号\t姓名\t性别\t宿舍\t电话\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

{

printf("%s\t%s\t%2s\t%s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

}

printf("\n\n\n\t\t\t按任意键返回菜单");

getch();

}

 

3.3程序源代码

#include"stdio.h"

#include"conio.h"

#include"string.h"

#include"stdlib.h"

voidlook();/*声明查看函数*/

voidsave();/*声明保存函数*/

voidsearch_name();/*声明按姓名查看函数*/

voidsearch_number();/*声明按学号查看函数*/

voidorder();/*声明排序函数*/

voiddel();/*声明删除函数*/

intopenl();/*声明打开函数*/

voidwelcome();/*声明我的个人信息函数*/

voidtype();/*声明输入函数*/

voidsee();/*声明打开并查看文件函数*/

structstudent/*定义学生信息的结构体类型*/

{

charnum[15];/*学号*/

charname[20];/*姓名*/

charsex[4];/*性别*/

chardno[20];/*宿舍号*/

intenglish;/*英语成绩*/

intmath;/*数学成绩*/

intchinese;/*语文成绩*/

floataver;/*平均成绩*/

floatsum;/*总成绩*/

}stu[100];

intn;/*声明一个全局变量*/

voidmain()/*主函数即用户的操作界面*/

{

intn;

for(;;)

{

printf("\n");

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

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

printf("\t※欢迎来到学生信息管理系统※\n");

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

printf("\t※系部:

计科系专业:

计算机科学与技术※\n");

printf("\t※姓名:

学号:

2011091124※\n");

printf("\t※姓名:

学号:

2011091152※\n");

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

printf("\t※指导老师:

马瑜※\n");

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

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

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

printf("\t※▲1.录入信息▲※\n");/*键入学生的信息*/

printf("\t※▲2.查看信息▲※\n");/*查看录入的学生信息*/

printf("\t※▲3.姓名查找▲※\n");/*按姓名查看学生的信息*/

printf("\t※▲4.学号查找▲※\n");/*按学号查看学生的信息*/

printf("\t※▲5.成绩排序▲※\n");/*排序*/

printf("\t※▲6.删除信息▲※\n");/*删除学生信息*/

printf("\t※▲7.保存信息▲※\n");/*保存*/

printf("\t※▲8.打开文件▲※\n");/*打开文件*/

printf("\t※▲9.退出系统▲※\n");/*退出*/

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

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

printf("请输入选择项(1-9):

");

scanf("%d",&n);

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

if(n>0&&n<10)

{

switch(n)

{

case1:

type();break;/*调用键入学生信息函数*/

case2:

look();break;/*调用查看函数*/

case3:

search_name();break;/*调用姓名查看函数*/

case4:

search_number();break;/*调用学号查看函数*/

case5:

order();break;/*调用排序函数*/

case6:

del();break;/*调用删除函数*/

case7:

save();break;/*调用保存函数*/

case8:

see();break;

case9:

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

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

printf("\t\t※谢谢使用!

※\n");

printf("\t\t※再见!

※\n");

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

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

exit(0);

}

}

else

{system("CLS");

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

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

printf("\t\t※输入错误!

※\n");

printf("\t\t※请退出!

※\n");

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

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

printf("\n\n\n\t\t\t按任意键返回菜单");

getch();

}

}

}

voidtype()/*定义录入学生信息函数*/

{

system("CLS");

inti;/*定义局部变量*/

printf("\t\t输出你想输入的学生信息个数:

");

scanf("%d",&n);

for(i=0;i

{

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

printf("\t\t\t学号:

");

scanf("%s",&stu[i].num);/*输入学号*/

printf("\t\t\t姓名:

");

scanf("%s",&stu[i].name);/*输入姓名*/

printf("\t\t\t性别:

");

scanf("%s",&stu[i].sex);/*输入性别*/

printf("\t\t\t宿舍号:

");

scanf("%s",&stu[i].dno);/*输入宿舍*/

printf("\t\t\t英语:

");

scanf("%d",&stu[i].english);/*输入英语成绩*/

printf("\t\t\t数学:

");

scanf("%d",&stu[i].math);/*输入数学成绩*/

printf("\t\t\t语文:

");

scanf("%d",&stu[i].chinese);/*输入语文成绩*/

stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*计算平均成绩*/

stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*计算总成绩*/

printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver);/*输出平均成绩*/

printf("\t\t\t总成绩=%4.1f\n",stu[i].sum);/*输出总成绩*/

}

printf("\n\t\t\t按任意键返回菜单!

!

");

getch();

save();

}

voidsave()/*建立保存文件函数*/

{

system("CLS");

FILE*fp;/*定义文件型指针*/

inti;

if((fp=fopen("student.txt","wb"))==NULL)/*打开输出文件*/

{

printf("不能打开文件!

\n");

return;/*终止程序*/

}

for(i=0;i

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

=1)

printf("文件写入错误\n");

fclose(fp);/*关闭文件*/

printf("\n\n\n\n\t\t\t学生信息保存成功!

\n");

printf("\n\n\n\n\t\t\t按任意键返回菜单!

!

");

getch();

}

voidlook()/*定义查看函数*/

{

system("CLS");

inti;

//n=openl();/*调用openl函数*/

printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

{

printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

}

printf("\n\n\n\t\t\t按任意键返回菜单");

getch();

}

voidsearch_name()/*按姓名查看函数*/

{

system("CLS");

inti;

charname[20];/*声明字符数组*/

printf("\t\t\t请输入学生姓名:

\n");

scanf("%s",name);

printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

if(strcmp(stu[i].name,name)==0)/*将输入的姓名与结构体中的姓名进行比较*/

{

printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

printf("\n\n\n\t\t\t按任意键返回菜单");

}

getch();

}

voidsearch_number()/*定义按学号查看函数*/

{

system("CLS");

inti;

charnumber[15];/*声明字符数组*/

printf("\t\t\t请输入学号:

\n");

scanf("%s",number);

printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

if(strcmp(stu[i].num,number)==0)/*将输入的学号与结构体中的学号进行比较*/

printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

printf("\n\n\n\t\t\t按任意键返回菜单");

getch();

}

voidorder()/*定义排序函数*/

{

system("CLS");

inti,j;

chara;

structstudenttemp;/*声明结构体变量*/

printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");

for(i=0;i

{

for(j=i+1;j

if(stu[i].sum

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

}

getch();

printf("是否保存?

(yorn)");

getchar();

scanf("%c",&a);

if(a=='y')/*是否保存排序后的文件*/

save();

else

printf("退出");

getch();

}

v

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

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

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

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