当前位置:文档之家› c语言课程设计

c语言课程设计

课程设计报告课程设计名称:学生成绩管理系统系别:三系学生姓名:班级:学号:成绩:指导教师:开课时间:2013-2014 学年二学期目录一、课程设计目的 (2)二、课程设计内容 (2)三、学生成绩管理系统概要设计(包含几大功能模块) (4)3.1、各个模块功能 (4)3.2、各函数的功能和实现 (4)四、成绩管理系统详细设计(各功能模块的具体实现算法——流程图) (5)4.1、本人所负责的部分: (5)4.2、其他附带源程序: (7)五、总结 (18)学生成绩管理系统一、课程设计目的建立学生成绩管理系统,利用计算机对学生成绩进行管理,方便学生查看自己成绩,对学生的基本信息,成绩录入,修改,删除,查询统计等提供一系列的操作。

帮助广大师生提高工作效率,实现学生成绩管理工作流程的系统化,规范化,减少人力投资。

二、课程设计内容对学生信息(包括学号、语文、数学、英语、)进行管理,包括学生成绩的信息保存,输入、输出、查询、删除、统计、修改、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。

假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。

学习相关开发工具和应用软件,熟悉系统建设过程。

1、用C语言实现系统;2、对学生信息(包括学号、姓名、语文、数学、英语)进行管理,包括学生成绩的信息输入、输出、查询、删除、统计、保存、退出;3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一个学生的学号、姓名、3门课成绩(2) 录入功能:从键盘输入学生的姓名学号及三科成绩(3) 输出功能:完成全部学生记录的显示(4)、查询功能:完成按姓名或者学号查找学生记录,并显示(5)删除功能:按学号进行删除某学生的成绩(6)统计功能:统计学生的总分,平均分(7)修改功能:通过学号修改学生信息(8)保存查看功能:将学生的成绩,信息保存入文件。

可从文件中查看。

(9)退出功能:退出系统(10)菜单界面:调用界面和各个功能的操作界面应尽可能清晰美观三、学生成绩管理系统概要设计(包含几大功能模块)3.1、各个模块功能1、成绩录入功能2、成绩输出功能3、成绩查询功能4、删除模块5、查找功能6、统计功能7、修改功能8、退出系统分组成员:董新歌,钱晨,夏蒙,张婧霖,程红,赵越本人负责信息录入和输出模块。

3.2、各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void type()来实现此操作。

2、成绩输出模块:输出学生的信息以及成绩void look():输入的信息保存入文件,从文件中输出已经输入的信息。

3、成绩查询模块:void search_name();void search_number()。

分别通过学生的姓名和学号进行查找。

4、删除模块:用函数void del()来实现5、保存查看模块:用函数void save(),void see()来实现6、统计功能能:用函数void tongji () 来实现7、修改功能能:用函数void xiugai () 来实现8、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

如图3.1程序流程图图 3.1 程序流程图四、成绩管理系统详细设计(各功能模块的具体实现算法——流程图)4.1、本人所负责的部分:4.1.1信息录入原程序:look.clook.c#include"head.h"void look()/*定义查看函数*/{int i;printf("\t学号\t姓名\t性别\t语文成绩\t数学成绩\t英语成绩\t\n"); for(i=0;i<n;i++)/*输出所有的学生信息*/{printf("%10s\t%s\t%2s\t%10s\t%10s\t%10s\t\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].chinese,stu[i].math,stu[i].english);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}4.1.2信息输出原程序:type.ctype.c#include"head.h"void type()/*定义键入学生信息函数*/{int i;/*定义局部变量*/printf("\t\t输出你想输入的学生信息个数:");scanf("%d",&n);for(i=0;i<n;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].chinese);/*输入语文成绩*/printf("\t\t\t数学成绩:");scanf("%s",&stu[i].math);/*输入数学*/printf("\t\t\t英语成绩:");scanf("%s",&stu[i].english);/*输入英语*/}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}4.1.3运行结果截图:4.2、其他附带源程序:4.2.1头文件#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"void look();/*声明查看函数*/void save();/*声明保存函数*/void search_name();/*声明按姓名查看函数*/void search_number();/*声明按学号查看函数*/void del();/*声明删除函数*/int openl();/*声明打开函数*/void type();/*声明输入函数*/void see();/*声明打开并查看文件函数*/void xiugai();/*声明修改文件函数*/void tongji();/*声明统计文件函数*/struct student/*定义学生成绩的结构体类型*/{char num[15];/*学号*/char name[20];/*姓名*/char sex[4];/*性别*/char math[20];/*数学*/char chinese[20];char english[20];}stu[100];int n;4.2.2 main.c#include"head.h"void main()/*主函数即用户的操作界面*/{int b,flag=0;/*声明局部变量*/while(1)/*循环输出以下信息*/{ printf("\t\t\t-------------------------------\n");printf("\n\t\t\t欢迎来到学生成绩管理系统\n");printf("\t\t\t-------------------------------\n");printf("\t\t\t1.输入学生的成绩\n\n");/*键入学生的成绩*/printf("\t\t\t2.查看录入的学生成绩\n\n");/*查看录入的学生成绩*/printf("\t\t\t3.按姓名查看学生的成绩\n\n");/*按姓名查看学生的成绩*/ printf("\t\t\t4.按学号查看学生的成绩\n\n");/*按学号查看学生的成绩*/printf("\t\t\t5.删除学生成绩\n\n");/*删除学生成绩*/printf("\t\t\t6.保存学生成绩 \n\n");/*保存*/ printf("\t\t\t7.打开文件\n\n");/*打开文件*/ printf("\t\t\t8.修改成绩\n\n");/*修改成绩*/ printf("\t\t\t9.成绩统计\n\n");/*成绩统计*/printf("\t\t\t0.退出\n\n");/*退出*/printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case 1:type();/*调用输入学生成绩函数*/break;case 2:look();/*调用查看函数*/break;case 3:search_name();/*调用姓名查看函数*/break;case 4:search_number();/*调用学号查看函数*/ break;case 5:del();/*调用删除函数*/break;case 6:save();/*调用保存函数*/break;case 7:see();/*调用打开文件函数*/break;case 8:xiugai();/*调用修改函数*/break;case 9:tongji();/*调用统计成绩函数*/break;case 0:flag=1;/*退出SWITCH语句*/break;default:printf("错误!");}if(flag)/*如果选择0就退出循环*/break;}}4.2.3 save.c#include"head.h"void save()/*建立保存文件函数*/{FILE *fp;/*定义文件型指针*/int i;if((fp=fopen("student.txt","wb"))==NULL)/*打开输出文件*/ {printf("不能打开文件!\n");return;/*终止程序*/}for(i=0;i<n;i++)/*向student文件中写入信息*/if(fwrite(&stu[i],sizeof(struct student),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();}4.2.4 see.c#include"head.h"void see()/*打开并查看文件*/{int i;n=openl();printf("文件打开成功!\n");printf("按任意键查看!\n");getch();printf("学号姓名性别语文数学英语 \n");for(i=0;i<n;i++)/*输出所有的学生信息*/{printf("%10s\t%s\t%2s\t%10s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex, stu[i].chinese,stu[i].math,stu[i].english);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}4.2.5search.c#include"head.h"void search_name()/*按姓名查看函数*/{int i;char name[20];/*声明字符数组*/printf("\t\t\t请输入学生姓名:\n");scanf("%s",name);printf("\t学号\t姓名\t性别\t语文成绩\t数学成绩\t英语成绩\t\n");for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)/*将输入的姓名与结构体中的姓名进行比较*/ {printf("%10s\t%s\t%2s\t%10s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex, stu[i].chinese,stu[i].math,stu[i].english);printf("\n\n\n\t\t\t按任意键返回菜单");}getch();}#include"head.h"void search_number()/*定义按学号查看函数*/{int i;char number[15];/*声明字符数组*/printf("\t\t\t请输入学号:\n");scanf("%s",number);printf("\t学号\t姓名\t性别\t语文成绩\t数学成绩\t英语成绩\t\n");for(i=0;i<n;i++)if(strcmp(stu[i].num,number)==0)/*将输入的学号与结构体中的学号进行比较*/printf("%10s\t%s\t%2s\t%10s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[ i].chinese,stu[i].math,stu[i].english);printf("\n\n\n\t\t\t按任意键返回菜单");getch();}4.2.6 xiugai.c#include"head.h"void xiugai(){int number,i;printf("请输入要修改信息的学生学号:");scanf("%d",&number);for(i=0;i<10;i++)if(i<10){printf("请输入修改后的学生的信息:");printf(" \n请输入学生的学号:");fflush(stdin);scanf("%d",&stu[i].num);printf("\n请输入学生的姓名:");scanf("%s", stu[i].name) ;printf("\n请输入学生的语文成绩:");scanf("%d",&stu[i].chinese);printf("\n请输入学生的数学成绩:");scanf("%d", &stu[i].math);printf("\n请输入学生的英语成绩:"); scanf("%d", &stu[i].english);}elseprintf("没找到该学生的信息\n");}4.2.7 del.c#include"head.h"void del()/*定义删除学生信息函数*/{int i;char a;char name[20];printf("\t\t\t输入学生名字:\n");scanf("%s",name);printf("\t学号\t姓名\t性别\t语文成绩\t数学成绩\t英语成绩\t\n");for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0){printf("%10s\t%s\t%2s\t%10s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex, stu[i].chinese,stu[i].math,stu[i].english);getch();printf("真的删除(y or n)");getchar();scanf("%c",&a);if(a=='y')/*是否删除该信息*/{for(;i<n;i++)stu[i]=stu[i+1];n=n-1;printf("你已经删除信息");}elseprintf("退出");getch();}save();}intopenl()/*定义打开文件函数*/{int i;FILE *fp;if((fp=fopen("student.txt","rb"))==NULL){printf("Cannot open file.\n");exit(0);}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);return(i-1);}4.2.8 tongji.c#include"head.h"void tongji(){ FILE *fp;int i;int j;float stu[3];float sum[3];float aver[3];/*下面代码用于将输入存入student.txt文件中*/if ((fp=fopen("student.txt","w"))==NULL)//打开文件并判断是否正常打开{printf("打开文件失败\n");exit(0);}fprintf(fp,"成绩汇总表:\n\n");//向文件输入内容for(i=0; i<3; i++){for(j=0; j<3; j++){sum[i]+=stu[i];}aver[i]=sum[i]/3;}printf("\n每位学生的总分和平均分分别为:\n\n");for(i=0; i<3; i++){printf("第%d个学生的总分:%d 平均分:%d\n", i+1,sum[i],aver[i]);}getch();}五、总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。

相关主题