C语言实现的学生成绩管理系统

更新时间:2023-05-22 05:04:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言实现的学生成绩管理系统

an

C语言课程设计报告

系部名称 : 专业名称 : 班 级 : 学

号 :

2009 年 5 月25 日 至 2009年 6 月5 日

题 目: 学生信息管理系统

学生姓名 : 指导教师 :

时间 :

C语言实现的学生成绩管理系统

一、课程设计目的

1)对C各部分知识的综合应用能力 2)提高程序设计的能力

3)提升对于较大程序的抽象分析设计能力 4)学习调试和测试的技巧

二、课程设计内容

1)熟悉C实验环境,按给定的上机步骤练习完成; 2)熟悉C程序的编辑,编译,链接和运行的过程。 3)编译一个应用系统程序,形成一个软件系统。

三、需求分析

随着当今社会发展,信息化水平逐步提高,对教务管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。

该软件主要是实现对学生信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定学生的相关信息,然后可以插入学生的相关信息,还有就是可按学生相关信息排序,以求达到简易操作的目的。

四、概要设计(或总体设计)

1.系统结构图(功能模块图)和数据变量说明

2.功能模块说明

1.输入模块 2.列表模块

C语言实现的学生成绩管理系统

3.查找模块 4.修改模块

5.增加模块

6.成绩排序

C语言实现的学生成绩管理系统

五、运行情况

1. 主菜单

2.录入数据

3.输出数据

4.查找数据

5.增加数据

5.增加数据

C语言实现的学生成绩管理系统

6.修改数据

7.成绩排序

8.退出系统

C语言实现的学生成绩管理系统

六、设计体会和反思

通过两周的上机实习,我对C语言又有了崭新的认识。

C语言的学习是一个系统的过程,需要长期的知识积累和储备并辅以大量的上级实际操作练习,自己也应该有所体会,在实践中成长,在实践中求知。

这次我设计的课题是学生信息管理系统。课题要求对学生信息实现一系列基本操作。我选择通过结构体数组来实现这个设计。通过fread和fwrite两个函数实现对文件的读写,过程比较简洁(这里也有参考《C程序设计》中某例题的思想)。通过大量的符号和printf语句,使得操作界面更加和谐友善,这些都是我通过这次实习积累的经验。

同时,设计完成后我也发现了代码中的一些不足,例如在录入数据时要求输入序号的值,这个我认为操作比较复杂,但由于时间紧迫,未能提出完美的解决方案,但此问题并不影响程序的运行和要求的实现。经过实际检验,只要按照程序要求输入,就能够实现。

总之,通过这次实习,我也认识到了我自己在程序设计这门课程上的不足,在以后的学习实践中,要更加的严谨踏实,对知识的把握要更加的细致入微,要活学活用,争取在这个学科上取得更大的进步。

七、参考文献

谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005

C语言实现的学生成绩管理系统

八、程序源代码

#include "stdio.h" #define SIZE 100000 #include"string.h" #include"stdlib.h" #include"conio.h"

struct student 结构体数据 {int n; int num;

char name[10]; int C; int Maths; int En; float ave; }stu[SIZE];

/*录入数据(向文件fp中录入信息)*/

void finput() { FILE *fp; int i,p;

fp=fopen("fstu","wb"); for(i=0;i<SIZE;i+1) { printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i++); scanf("%d",&i);

if(i==-1) { fclose(fp); return; }

else { printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:");

scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; stu[i].n=i+1;

fwrite(&stu[i],sizeof(struct student),1,fp); } }

fclose(fp); }

/*输出文件fp中的数据*/

void flist() { FILE *fp; int i;

fp=fopen("fstu","rb");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }

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

C语言实现的学生成绩管理系统

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); }

/*查找数据*/

void fsearch() { FILE *fp; int i,num;

fp=fopen("fstu","rb"); rewind(fp);

printf("请输入要查找的学号:"); scanf("%d",&num);

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 查询结果\n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;i<=SIZE;i++) if(stu[i].num==num) {

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }

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

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n"); fclose(fp); }

/*增加文件fp中的数据*/

void fadden() { int i,s; FILE *fp;

fp=fopen("fstu","ab+"); rewind(fp);

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); s=i;

for(i=s;i<SIZE;i++) { printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i+1); scanf("%d",&i); if(i==-1) { fclose(fp); return; } else { printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:"); stu[i].n=i+1;

C语言实现的学生成绩管理系统

scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; fwrite(&stu[i],sizeof(struct student),1,fp); } }

fclose(fp); }

/*修改文件fp中的数据*/

void fchange() { FILE *fp; int i,num,n; int flag=0;

printf("请输入要修改学生的学号:"); scanf("%d",&num); for(i=0;i<=SIZE;i++) if(stu[i].num==num) { printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n");

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); printf("-----------------------------------------------------------\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); n=i; flag=1; break; }

if(flag==0) { printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 输入错误!\n"); printf(" 请返回!\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); return; }

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

fp=fopen("fstu","rb+");

fseek(fp,n*sizeof(struct student),0);

printf("请输入新的学号,姓名,C成绩,数学成绩,英语成绩:");

scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; fwrite(&stu[i],sizeof(struct student),1,fp); fclose(fp);

fp=fopen("fstu","rb");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }

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

C语言实现的学生成绩管理系统

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); }

/*成绩排序*/

void ftaxis() { int i,j,n; FILE *fp;

struct student t;

fp=fopen("fstu","rb");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }

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

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); n=i;

for(i=0;i<n;i++)

for(j=i+1;j<n;j++)

if(stu[i].ave<stu[j].ave) { t=stu[i]; stu[i]=stu[j]; stu[j]=t; }

fp=fopen("fstus","wb"); printf("\n\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表 \n");

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

printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;i<n;i++) { fwrite(&stu[i],sizeof(struct student),1,fp);

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); }

C语言实现的学生成绩管理系统

/*主函数*/

main() { int n; for(;;) { printf("\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 欢迎来到学生信息管理系统 ※\n"); printf("※ ※\n"); printf("※ 系部:通信工程 专业:通信工程 ※\n"); printf("※ 姓名: 学号: ※\n"); printf("※ 班内序号: 指导老师: ※\n"); printf("※ ※\n"); printf("※ 主菜单 ※\n"); printf("※ ※\n"); printf("※ ▲1.录入数据▲ ※\n"); printf("※ ▲2.输出数据▲ ※\n"); printf("※ ▲3.查找数据▲ ※\n"); printf("※ ▲4.增加数据▲ ※\n"); printf("※ ▲5.修改数据▲ ※\n"); printf("※ ▲6.成绩排序▲ ※\n"); printf("※ ▲7.退出系统▲ ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"); printf("请输入选择项(1-7):"); scanf("%d",&n); printf("\n\n\n\n"); if(n>0&&n<8) { switch(n) { case 1:finput();break; case 2:flist();break; case 3:fsearch();break; case 4:fadden();break; case 5:fchange();break; case 6:ftaxis();break;

case 7:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 谢谢使用! ※\n"); printf("※ 再见! ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); exit(0); } } else { printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 输入错误! ※\n"); printf("※ 请退出! ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); break; } } }

C语言实现的学生成绩管理系统

Created on 6/22/2011 3:16:35 PM

第 11 页 共 10 页

本文来源:https://www.bwwdw.com/article/b5j4.html

Top