C语言程序设计学生成绩标准管理系统专业课程设计方案报告.doc
《C语言程序设计学生成绩标准管理系统专业课程设计方案报告.doc》由会员分享,可在线阅读,更多相关《C语言程序设计学生成绩标准管理系统专业课程设计方案报告.doc(25页珍藏版)》请在咨信网上搜索。
重庆科技学院 《C语言程序设计》 课程设计汇报 学 院:_电气和信息工程学院_ 专业班级: 自动化-03 学生姓名: 高跃跃 学 号: 443321 设计地点(单位)_____ 计算机基础自主学习中心_____ __ 设计题目: 《学生成绩管理系统》设计和实现 完成日期: 年 09 月 25 日 指导老师评语: ______________________ _________________ ____________________________________________________________________________________________________________________________________________________________________ 成绩(五级记分制):______ __________ 指导老师(签字):________ ________ 课程设计任务书 设计题目:《学生成绩管理系统》设计和实现 学生姓名 高跃跃 课程名称 C语言课程设计 专业班级 自动化 地 点 计算机基础自主学习中心 起止时间 .9.9-.9.26 设计内容及要求 内容 强化C语言中相关结构体数组及外部文件内容,独立设计学生成绩管理系统,并编程实现以下功效: 1、整个系统均用C语言实现; 2、利用结构体数组来实现学生成绩数据结构设计; 3、系统含有输入、显示、查询、删除、排序、插入、保留、读取等基础功效; 4、系统各个功效模块全部用函数形式来实现; 5、要求能将学生成绩信息保留在文件中; 6、要求能从文件中读取学生信息并进行相关处理。 设计参数 1、每一条统计包含一个学生学号、姓名、3门成绩、平均成绩。 2、输入功效:进入后能够进行多条统计输入并保留。 3、显示功效:完成全部学生或满足指定条件统计显示。 4、查找功效:完成按学号或姓名查找学生统计,并显示。 5、排序功效:按学生学号或平均成绩进行排序。 6、插入功效:按学生学号或平均成绩高低插入一条学生统计。 7、保留功效:将学生统计保留在自定义名称文件中。 8、读取功效:将保留在文件中学生统计读取出来。 9、有一个文本菜单来调用各个功效。 进度要求 1.部署设计题目,讲解要求和说明 .9.9 2.确定设计任务,确定具体功效,熟悉相关知识 .9.9 3.按功效需求确定程序关键模块 .9.10 4.编程实现程序功效 .9.11 –.9.15 5.调试并完善程序 .9.16 –.9.22 6.撰写课程设计汇报 .9.23 - .9.24 7.提交课程设计汇报并答辩 .9.25 其它 谭浩强,《C语言程序设计(第三版)》,清华大学出版社,.2 说明 1.本表应在每次实施前一周由负责老师填写二份,院系审批后交院系办立案,一份由负责老师留用。 2.若填写内容较多可另纸附后。 3.一题多名学生共享,在设计内容、参数、要求等方面应有所区分。 摘要 学生成绩管理系统是为了实现学校对学生成绩管理系统化、规范化和自动化,从而提升学校管理效率而设计。它完全替换了原来一直用人工管理工作方法,避免了因为管理人员工作疏忽和管理质量问题所造成多种错误,为立即、正确、高效完成学生成绩管理提供了强有力工具和管理手段。学生成绩管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基础满足了学生成绩管理要求。 本系统是在以Microsoft Visual C++ 6.0作为后台来开发。学生成绩管理系统在运行阶段,效果好,数据正确性高,提升了工作效率,同时也实现了学生成绩管理计算机化。 关键词:成绩 管理系统 C语言 目录 1.软件需求说明 1 1.1程序界面要求 1 1.2程序功效 1 2.程序分析和设计 1 2.1程序数据结构分析 4 2.2程序算法设计 6 3.程序实现 7 3.1主函数 7 3.2定义数据结构 8 4.程序试用说明 10 4.1主页面 11 4.2录入信息页面 18 5.总结 19 5.1致谢 19 5.2参考文件 19 1. 软件需求说明 1.1程序界面要求 ① 整个系统均用C语言实现; ② 利用结构体数组来实现学生成绩数据结构设计; ③ 系统含有输入、显示、查询、删除、排序、插入、保留、读取等基础功效; ④ 系统各个功效模块全部用函数形式来实现; ⑤ 要求能将学生成绩信息保留在文件中; ⑥ 要求能从文件中读取学生信息并进行相关处理。 1.2 程序功效 ① 每一条统计包含一个学生学号、姓名、3门成绩、平均成绩。 ② 输入功效:进入后能够进行多条统计输入并保留。 ③ 显示功效:完成全部学生或满足指定条件统计显示。 ④ 查找功效:完成按学号或姓名查找学生统计,并显示。 ⑤ 排序功效:按学生学号或平均成绩进行排序。 ⑥ 插入功效:按学生学号或平均成绩高低插入一条学生统计。 ⑦ 保留功效:将学生统计保留在自定义名称文件中。 ⑧ 读取功效:将保留在文件中学生统计读取出来。 ⑨ 有一个文本菜单来调用各个功效。 2. 系统分析和设计 2.1 程序数据(结构)分析 2.1.1定义结构体 本程序需要定义多个结构体,用于存放学生相关信息 typedef struct CStudent { char Name[32]; /* 学生姓名 */ int Sno; /* 学号 */ double dDataStruct; /* 数据结组成绩 */ double dMath; /* 数学成绩 */ double dEnglish; /* 英语成绩 */ double aver; /* 平均成绩 */ }CStudent; 2.1.2 main()主函数 主函数功效比较简单,用while循环语句和switch多重选择语句来显示主界面和调用函数。在主函数前面要写必需头文件,预定义语句和全局变量结构体。 2.1.3 del( )删除函数 在C语言中无法做到删除和移动数据,所以删除统计要先将全部统计从文件中读出,删除后再将统计写回文件中。每读出一条统计,按其在文件中次序做好指针链接关系,然后查处要删除学生信息,将其在链表中删除,最终再将变动统计重新写回文件中。用指针,else/if结构来实现查找出要删除学生。 2.1.4 insert( )插入函数 在插入函数中利用指针,while循环和else/if语句来实现输入数据根据插入相 应位置。 2.1.5 读取函数 利用指针、链表打开已经储存信息。 void Read() /* 从文档读取 */ { char p[128] = "file.txt"; FILE *fp; if ((fp=fopen("file.txt","r"))==NULL) { printf("Open file %s error! Strike any key to exit!",p); system("pause"); exit(0); } SavePos = 0; while(!feof(fp)) { fscanf(fp,"Name:%s\n",example[SavePos].Name); fscanf(fp,"Sno:%d\n",&example[SavePos].Sno); fscanf(fp,"Score(DS)%lf\n",&example[SavePos].dDataStruct) ; fscanf(fp,"Score(M)%lf\n",&example[SavePos].dMath) ; fscanf(fp,"Score(E)%lf\n",&example[SavePos].dEnglish) ; fscanf(fp,"Score(Average)%lf\n",&example[SavePos].aver) ; fscanf(fp,"*********************\n"); SavePos++; } fclose(fp); Display(); } 2.1.6 save( )保留函数 关键利用指针来把信息保留在文件中。 void Save() /* 保留到文档 */ { int j=0; const char fname[128] = "file.txt"; FILE* fp; //open file fp = fopen(fname, "w"); //write in file for(j=0;j<SavePos;j++) { //fprintf(fp,"This is the file.\n") fprintf(fp,"Name:%s\n",example[j].Name) ; fprintf(fp,"Sno:%d\n",example[j].Sno); fprintf(fp,"Score(DS)%f\n",example[j].dDataStruct) ; fprintf(fp,"Score(M)%f\n",example[j].dMath) ; fprintf(fp,"Score(E)%f\n",example[j].dEnglish) ; fprintf(fp,"Score(Average)%f\n",example[j].dEnglish) ; fprintf(fp,"*********************\n"); } //close file fclose(fp); printf("保留成功\n"); } 2.2 程序算法设计 学生成绩管理系统 输出信息 整理信息 输入信息 修改信息 查询信息 输出至文件 输出至屏幕 删除学生信息 学生信息排序 插入学生信息 按学号查询 按姓名查询 从键盘输入 从 文件读入 图2.2 学生成绩管理系统功效模块图 开始 开始 按学号 输入name 输入 2 输入num i=j 1 输出数据 输入数据 结束 按9 按0 图2.2输入模块 图2.2 查询模块 开始 输入学号 该学号已存在 Y 输入信息 N 保留并结束 图2.2插入模块 3. 程序实现 3.1主函数 int main() { int choice1 = 1,choice2; int i = 1,s = 1; do { 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("8、退出程序\n"); scanf("%d",&choice1); 3.2 定义数据结构 用一个类嵌套定义struct student *next;用整型数据定义学号和成绩,用char定义姓名。 typedef struct CStudent { char Name[32]; /* 学生姓名 */ int Sno; /* 学号 */ double dDataStruct; /* 数据结组成绩 */ double dMath; /* 数学成绩 */ double dEnglish; /* 英语成绩 */ double aver; /* 平均成绩 */ }CStudent; CStudent example[1024]; int SavePos = 0; 3.3 函数说明 链表定义头指针stu *s,switch函数中用了8个case。 case 1: Record(SavePos);break; // 录入学生信息 case 2: Search_Name( );Search_Sno ();break;// 查询学生信息 case 3: Insert_Score();break;// 插入学生信息 case4: Sort_Sno( );Sort_Score( );break;//学生信息排序 case 5: Save( ) student(s);break;// 保留学生信息 case 6: Delete_Sno( ); Delete_Name( );break;//删除学生信息 case 7: Read( )student(s);break;// 读取学生信息 case 8: exit(0);break;//退出系统 3.3 文件录入功效 void Record(int j) /* 录入 */ { printf("信息录入\n"); printf("姓名:"); scanf("%s",example[j].Name); printf("学号:"); scanf("%d",&example[j].Sno); printf("数据结构:"); scanf("%lf",&example[j].dDataStruct); printf("数学:"); scanf("%lf",&example[j].dMath); printf("英语:"); scanf("%lf",&example[j].dEnglish); printf("平均成绩:"); scanf("%lf",&example[j].aver); 3.4 文件读取功效 读取功效利用文件指针方法,和While循环语句完成。 void Read() /* 从文档读取 */ { char p[128] = "file.txt"; FILE *fp; if ((fp=fopen("file.txt","r"))==NULL) { printf("Open file %s error! Strike any key to exit!",p); system("pause"); exit(0); } SavePos = 0; while(!feof(fp)) { fscanf(fp,"Name:%s\n",example[SavePos].Name); fscanf(fp,"Sno:%d\n",&example[SavePos].Sno); fscanf(fp,"Score(DS)%lf\n",&example[SavePos].dDataStruct) ; fscanf(fp,"Score(M)%lf\n",&example[SavePos].dMath) ; fscanf(fp,"Score(E)%lf\n",&example[SavePos].dEnglish) ; fscanf(fp,"Score(Average)%lf\n",&example[SavePos].aver) ; fscanf(fp,"*********************\n"); SavePos++; } fclose(fp); Display(); } 3.5 插入功效 首先建立循环,检测插入学号是否已存在,若存在则停止插入;若不存在,则继续进行输入学生信息。 void Insert_Score() { int i , j, m, flag; i = SavePos; do { flag=1; while(flag) { flag = 0; printf("请输入第 %d 位:\n",i+1); printf("请输入学号检验该生是否已经存在\n"); scanf("%d",&example[i].Sno); for(j=0;j<i;j++) if(example[i].Sno == example[j].Sno) { printf("已存在该号,请检验重新录入!\n"); flag=1; break; /*反复立即退该层循环,提升判定速度*/ } Record(i); printf("录入完成\n\n"); Sort_Score(); }while(0); } 4. 程序使用说明 4.1 主页面 将写好程序用Microsoft Visual C++6.0打开并运行,首先出现是主页面,图4-1所表示。 图4-1 4.2 录入信息页面 输入数字1,按提醒进行学生成绩录入,并按数字5保留信息。继续录入按数字9,结束录入按数字0。图4-2 图4-2 4.3 信息查询页面 返回主页面,按数字2,进行学生信息查询,分为按学号查询和姓名查询。图4-3-1。 图4-3-1 按数字1和按数字2查询结果页面图4-3-2所表示。 图4-3-2 图4-3-2 4.4 插入信息页面 返回主页面,按数字3,首先检验该学号是否存在,若存在则程序 停止录入,不然继续进行录入。图4-4-1所表示。 图4-4-1 4.5 排序功效页面 返回主页面,按数字4进行学生信息排序。分为按学号排序和按平均成绩排序。图4-5-1所表示。 图4-5-1 4.6信息删除页面 返回主页面,按数字6进行学生信息删除页面,分为按学号删除和按姓名删除,图4-6-1所表示。 图4-6-1 按学号删除页面图4-6-2所表示。 图4-6-2 4.7读取并显示页面 返回主页面,按数字7进入读取显示页面。图4-7所表示。 图4-7 5. 总结 5.1 致谢 首先感谢我们C用语言课程设计四位老师,是你们陪同我们度过了三周C语言学习生活,使我们从对C语言停留在纸上谈兵状态变为对C语言学以致用,为以后学习打下了坚实基础。再者是要感谢学校,感谢为我们设置这么一门很有实际意义课程,让我们从中学到了很多,感悟了很多。 5.2 参考文件 [1] 李丽娟.C语言程序设计教程(第二版).北京:人民邮电出版社,. [2] 张欣.C语言程序设计(VC++6.0环境)[M].北京:中国水利水电出版社,. [3] 陈宝贤.C语言程序设计教程 [M].北京:人民邮电出版社,. [4] 刁成嘉.C语言程序设计论文[D].北京:清华大学出版社,. [5] 郑阿奇主编.VisualC++实用教程.西安:电子工业出版社,. [6] 杨文军,杨柳.C语言程序设计教程 [M].北京:清华大学出版社,. [7] 周启海.C语言程序设计汇报[R].北京:中国水利工程出版社,. [8] 徐士良.C语言程序设计教程 [M].北京:人民邮电出版社,. [9] 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,200- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 学生 成绩 标准 管理 系统 专业课程 设计方案 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文