c语言版学生成绩管理系统课程设计报告.doc

上传人:仙人指路1688 文档编号:2384626 上传时间:2023-02-17 格式:DOC 页数:20 大小:153.50KB
返回 下载 相关 举报
c语言版学生成绩管理系统课程设计报告.doc_第1页
第1页 / 共20页
c语言版学生成绩管理系统课程设计报告.doc_第2页
第2页 / 共20页
c语言版学生成绩管理系统课程设计报告.doc_第3页
第3页 / 共20页
c语言版学生成绩管理系统课程设计报告.doc_第4页
第4页 / 共20页
c语言版学生成绩管理系统课程设计报告.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《c语言版学生成绩管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《c语言版学生成绩管理系统课程设计报告.doc(20页珍藏版)》请在三一办公上搜索。

1、课程设计报告(本科)课程:高级语言程序设计学号:姓名:班级:2013级计算机科学与技术教师:时间:2013年12月计算机科学与技术系设计名称:学生成绩管理系统设计内容、目的与要求:设计内容:设计并实现学生成绩管理系统目的与要求: 设计学生成绩管理系统,实现以下功能:1、采用的数据结构:结构体数组 2、实现的功能:能对学生成绩信息(学号,课程设计,成绩)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。计划与进度安排:12月20日至12月22日:研究学生管理系统的要求,分析应实现的功能,具体分析问题,选择解题所用的方法;12月23日至12月25日:设计出解题的方法(如该使

2、用何种算法,函数如何定义)和具体步骤;12月26日至12月31日:编写各部分的程序,然后整合;1月1日至1月2日:调试程序;1月3日至1月5日:检查并完善程序,找出不足,认真填写课程设计报告,为验收做准备。设计过程、步骤(可加页):1、 此设计采用结构体数组,根据不同的值表达的不同意思,对变量进行定义。 另外此代码,添加了结构体变量如下:struct student char name60; char ID7; int score; 2、本课程设计定义了大量函数,主要为: (1)case 1: add(); fh();(增加学生成绩) (2)case 2: chazhao(); fh();(查

3、找) (3)case 3: del(); fh();(删除) (4)case 4: xg(); fh();(修改) (5)case 5:bca(); fh();(保存) 3、详细说明各函数功能的实现: (1)增加功能void add()/增加学生 int numberTemp=0; int i=0; struct student temp; /临时保存信息 printf(请输入要增加学生成绩个数:); scanf(%d,&numberTemp); for(i=0;i提示:文件不存在,是否要创建?yn) scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /这

4、里仅为了建立文件 fp=fopen(C:/student.dat,wb); fclose(fp); else exit(0); else Number=dq(st); /要是文件只能够已经有数据 将数据初始化到 数组中 结果与分析(可以加页): 一、 运行结果1 、总页面2、增加功能3、 查找功能姓名查找(内含模糊查找)学号查找 条件组合查找 3、删除功能4、 修改功能5、 保存功能 二、程序分析 该程序设计基本实现了,对学生成绩的增加,删除,修改,查找和存储的基本功能,另外在查找程序中,还包含了模糊查找和条件组合查找 但是对于条件组合查找,在两个条件存在的前提下,却能查出多个结果,查询显示结

5、果却由“且”变成“或”。设计体会与建议: 设计体会:起初在拿到课程设计之时,对本课题只是大致浏览过一遍,等到真正开始编写,才发现各方各面的问题,主函数的定义,其它函数的声明,一切的一切都是如此困难。也正是通过本次作业,能够正视自己在c语言上的不足点。犹记得起初对程序段极其陌生,不清楚该使用什么程序段,一直徘徊在不同函数之间。记得那时看到c语言头就晕。曾经为了一个模糊查询语句,跑去图书馆查阅。不得不承认那段时间的自己也确实萌生了失望,绝望,或者放弃的思想。但是考虑再三,还是咬牙坚持,泡图书馆,电子阅览室。功夫不负有心人,最后经过多次查找资料,多次修改,最终完成本次作业。建议:此次实验让我明白了,

6、在实践一个于己而言,陌生的作业之前,先要熟悉课本基本知识,起码了解所要实现的功能,或者所需的函数定义。多查阅资料,看看别人怎么做的。不要老想一个人死撑,可以问问同学老师。附录:#include #include #include struct student char name60; char ID7; int score;int dq(struct student st);void xianshi();void bc(struct student st);void add(); /定义增加函数void chazhao();/定义查找函数void xhcz();/按学号查找void xmcz(

7、);/按姓名查找void del();/定义删除函数void xmsc();/姓名删除void xhsc();/学号删除void zhcz();/条件组合查找void xg();/定义修改函数void xhxg(); /学号修改void xmxg();/姓名修改void bca();void fh();struct student st300; /这个数组用来保存所有的学生信息 和文件里面的一致int Number=0; /记录总的学生人数 也就是数组/文件里面的学生人数int k=0;/表示输入的信息是否存在void main() int choose=0; FILE *fp=NULL; c

8、har yesorno; if(fp=fopen(C:/student.dat,rb)=NULL) printf(n=提示:文件不存在,是否要创建一个?(y/n)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /这里仅为了建立文件 fp=fopen(C:/student.dat,wb); fclose(fp); else exit(0); else Number=dq(st); /要是文件只能够已经有数据 将数据初始化到数组中 system(cls); xianshi(); printf(tt=请选择:); scanf(%d,&choose);

9、system(cls); switch(choose) case 0: exit(0); /退出 break; case 1: add(); fh();/增加学生成绩 break; case 2: chazhao(); fh();/ 查找 break; case 3: del(); fh();/删除 break; case 4: xg(); fh();/修改 break; case 5:bca(); fh();/保存 break; default: break; fflush(stdin); getchar(); system(cls); void bca() printf(t=程序在运行时已

10、自动保存.n);void fh() printf(n);void xg() /修改学生信息 int way=0; printf(请选择修改查找方式n); printf(1 按姓名查找修改n); printf(2 按学号查找修改n); scanf(%d,&way); switch(way) case 1: xmxg(); break; case 2: xhxg(); break; default: printf(输入有误,结束!n); break; /按姓名修改void xmxg() FILE *fp=NULL; char name60; int i=0; int changeIndex=0;

11、int index=0; printf(请输入要修改的学生姓名:); scanf(%s,name); for (i=0;i修改成功n); else if(k=0) printf(=无此人nnn); /信息修改后重新更新文件里面的数据 以保持数据一致性 fp=fopen(C:/student.dat,wb); for (i=0;iNumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0;void xhxg()/按学号修改 FILE *fp=NULL; char id60; int i=0; int changeInd

12、ex=0; int index=0; printf(请输入要修改的学生学号:); scanf(%s,id); for (i=0;i修改成功n); else if(k=0) printf(=无此人nnn); /信息修改后重新更新文件里面的数据 以保持数据一致性 fp=fopen(C:/student.dat,wb); for (i=0;iNumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0; void del()/删除 int n=0; printf(1 按姓名删除n); printf(2 按学号删除n); sc

13、anf(%d,&n); switch(n) case 1: xmsc(); break; case 2: xhsc(); break; void xmsc()/按姓名删除 FILE *fp=NULL; char name60; int i=0; int j=0; printf(请输入要删除的学生姓名:); scanf(%s,name); for(i=0;iNumber;i+) if (strcmp(name,sti.name)=0) /如果查找到就删除 for (j=i;j无此人!nnn); /将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了 fp=fopen(C:/studen

14、t.dat,wb); for (i=0;iNumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0; void xhsc()/按学号删除 FILE *fp=NULL; char id60; int i=0; int j=0; printf(请输入要删除的学生学号:); scanf(%s,id); for(i=0;iNumber;i+) if (strcmp(id,sti.ID)=0) /如果查找到就删除 for (j=i;j无此人!nnn); /将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了 fp=

15、fopen(C:/student.dat,wb); for (i=0;iNumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0;void chazhao()/查找学生 int n=0; printf(1 按姓名查找n); printf(2 按学号查找n); printf(3 组合查找n); scanf(%d,&n); switch(n) case 1: xmcz(); break; case 2: xhcz(); break;case 3: zhcz(); break; default: printf(输入有误,

16、结束!n); break; void xhcz()/按学号查找 char id7; int i=0; printf(请输入要查找学生学号:); scanf(%s,id); system(cls); for (i=0;i对不起没有查找出这个人!nnn); k=0;void xmcz()/按姓名查找 char name7; int i=0; printf(请输入要查找学生姓名:); scanf(%s,name); system(cls); for (i=0;i=0) printf(t姓名t学号t高数t英语tc语言t计算机导论n);printf(t%st%st%dt%dt%dt%dn,sti.nam

17、e,sti.ID,sti.score,sti.score,sti.score,sti.score); k=1; if(k=0) printf(=对不起没有查找出这个人!nnn); k=0;void zhcz()/组合查找 char name7;char id7; int i=0,j=0; printf(请输入要查找学生姓名:); scanf(%s,name);printf(请输入要查找学生学号:); scanf(%s,id); system(cls); for (i=0;i对不起没有查找出这个人!nnn); k=0;void add()/增加学生 int numberTemp=0; int i

18、=0; struct student temp; /临时保存信息 printf(请输入要增加学生成绩个数:); scanf(%d,&numberTemp); for(i=0;inumberTemp;i+) printf(输入第%d个同学信息n,i+1); printf(姓名:); scanf(%s,temp.name); printf(学号:); scanf(%s,temp.ID);printf(高数成绩:); scanf(%d,&temp.score);printf(英语成绩:); scanf(%d,&temp.score);printf(c语言成绩:); scanf(%d,&temp.sc

19、ore);printf(计算机导论成绩:); scanf(%d,&temp.score); stNumber+=temp; /将刚添加的写入到数组 bc(&temp); /将刚添加的写入到文件 printf(添加成功n);void bc(struct student *st) FILE *fp=NULL; fp=fopen(C:/student.dat,ab+); fwrite(st,sizeof(struct student),1,fp); fclose(fp);int dq(struct student st) FILE *fp=NULL; int i=0; fp=fopen(C:/stu

20、dent.dat,rb); while(fread(&sti,sizeof(struct student),1,fp) i+; fclose(fp); return i;void xianshi() 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* 0 退出系统 *n); printf(t*n);

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号