当前位置:文档之家› 软件设计课程设计报告 学生信息管理系统

软件设计课程设计报告 学生信息管理系统

软件设计课程设计报告题目:学生信息管理系统系部名称:专业名称:班级:学号:学生姓名:指导教师:时间:一、课程设计目的1)对C 各部分知识的综合应用能力 2)提高程序设计的能力3)提升对于较大程序的抽象分析设计能力 4)学习调试和测试的技巧二、课程设计内容1)熟悉C 实验环境,按给定的上机步骤练习完成; 2)熟悉C 程序的编辑,编译,链接和运行的过程。

3)编译一个应用系统程序,形成一个软件系统。

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

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

四、概要设计1.系统结构图(功能模块图)和数据变量说明2.功能模块说明1.输入模块2.列表模块3.查找模块4.修改模块5.增加模块6.成绩排序五、运行情况1.主菜单2.录入数据3.输出数据4.查找数据5.增加数据5.增加数据6.修改数据7.成绩排序8.退出系统六、设计体会和反思通过两周的上机实习,我对C语言又有了崭新的认识。

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

这次我设计的课题是学生信息管理系统。

课题要求对学生信息实现一系列基本操作。

我选择通过结构体数组来实现这个设计。

通过fread和fwrite两个函数实现对文件的读写,过程比较简洁(这里也有参考《C程序设计》中某例题的思想)。

通过大量的符号和printf语句,使得操作界面更加和谐友善,这些都是我通过这次实习积累的经验。

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

经过实际检验,只要按照程序要求输入,就能够实现。

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

七、参考文献谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005八、程序源代码#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];/*录入数据*/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);}/*输出数据*/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");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);}/*增加数据*/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;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);}/*修改数据*/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");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);}Created on 9/1/2020 3:17:46 AM /*主函数*/main(){int n;for(;;){printf("\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※欢迎来到学生信息管理系统※\n");printf("※※\n");printf("※系部:通信工程专业:通信工程※\n");printf("※姓名: 学号: ※\n");printf("※班内序号:35 指导老师:曹晓鹏※\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;}}}第10 页共10页。

相关主题