程序设计基础课程设计报告_第1页
程序设计基础课程设计报告_第2页
程序设计基础课程设计报告_第3页
程序设计基础课程设计报告_第4页
程序设计基础课程设计报告_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础课程设计报告i国5%挈俄课程设计(大作业)报告课程名称:程序设计基础 设计题目:学生成绩记录薄设计院系:信息技术学院 一班级:设计者: 学号: 指导教师: 设计时间:2013・78,-2013.7・13信息技术学院昆明学院课程设计(大作业)任务书院(系):信息技术学院专业:计算机科学与技术号:任务起止日期:2013.7.8-2013.7.13课程设计题目:学生成绩记录薄设计I课程设计要求:(1)通过课程设计,进一步掌握C语言的语法结构,基本流程,更加深入和全面理解所学的基本概念、基本原理和基本方法。(2)独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高程序编制、程序调试及综合应用的能力(3)明确课程设计的目的,通过布置具有一定难度的,能综合运用所学知识的程序设计题目。(4)程序设计经过需求分析,明确程序设计题目要求,进行合理的设计,编码阶段编出的程序易读、易懂并具有良好的交互性,界面清晰。测试阶段应指导学生编写测试用例,尽量多地找出程序中的错误,进行调试。工作计划及安排: 第一天的,两个人合作选定题目,建立起程序的构思图形,了解题目意思,确立程序的方向,并且查阅一些资料开始构建程序。第二天,两人商量分工合作,确定谁写那段函数,并且在总体思路的框架下,逐步写程序,并确保证程序无误。第三天,将小程序合并,进行调试,对里面出现的问题协商合作共同解决。第四天,开始写实验报告,对每次失败原因进行总结,并且整合两人思想纂写报告。第五天,实训课也接近尾声,和班上的同学交流心得体会。指导教师签字 2013年7月8日课程设计(大作业)成绩姓名指导教师:姓名指导教师:课程设计题目:学生成绩记录薄设计总结通过一周C语言课程设计,不仅增加了我对C语言学习的兴趣,还让我对C语言有了更深的了解。在这次的实训中,我们通过自己动手查找资料,并自己设计程序,还上机运行验证我们的程序。虽然在上机调试过程中,我遇到了很多的困难,(比如:很难理解一些逻辑思维上的东西)但通过自己不断的重新理解和修正,还是成功的完成了程序的设计。那种喜悦感难以用言语来表达,这让我感觉到学习也可以是快乐的。在这次设计我不单单学习到了C语言的知识,也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。有许多知识,光靠老师上课所讲的和自己看书得到的,还远远不够,C语言主要是通过上机来熟悉并且运用的,这次的实训课让我深刻的明白了这一点。所以在以后的学习生活中,我要经常写程序并上机进行调试,不断从中学习新的知识。还有一点就是:不懂就问。遇到难题实在解决不了的,问老师同学,和同学共同讨论,有合作精神也是很重要的。希望以后还有更多的实训机会,让我得到锻炼。指导教师评语成绩填表时间: 指导教师签名学生成绩记录薄设计一、课程设计目的与要求.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。.课程设计要求设计一个简易学生成绩记录簿设计,其中包括:姓名,学号,C语言成绩;具体功能:

绩;系统以菜单方式工作绩;创建学生成绩信息并以磁盘文件保存;读取磁盘文件并显示输出所有学生的成查询学生成绩(1)按学号查询成绩查询学生成绩盘;添加成绩记录;修改指定姓名或学号的学生的成绩并可存显示输出60分以下、盘;添加成绩记录;修改指定姓名或学号的学生的成绩并可存显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。二、总体设计根据系统的要求,系统总体设计如图1所示。

三、详细设计1、数据结构设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>intn=4;structstudentintnum;/*intnum;/*学号*/charname[10];/*姓名*/floatscore[3];/*成绩*/}2.函数说明1.主函数1.主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。2.其他部分功能函数包括(1)将学生成绩信息保存为文件voidsave();算法思想:①定义指向文件的指针变量;

②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;③将存有学生成绩信息的结构体数组信息依次保存到文件中。(2)学生成绩信息录入函数voidinput()算法思想:①依次录入结构体数组中所包含的各个成员;②直到输入的结构体成员中信息为4,数据输入结束;③返回实际录入的学生成绩信息数。(3)从文件中读出学生成绩信息voidoutput();算法思想:①定义指向结构体变量的指针和指向文件的指针;②输入文件的路径,打开文件,若不能打开文件给出提示信息;③将文件中的信息依次读出,:后结构体的指③将文件中的信息依次读出,:后结构体的指针为NULL。3.函数设计(1)主菜单函数main()功能:函数返回值为整数,代表所选的菜单项intmain()printf("小♦可可不否可可下♦可可不否可可下♦可可不否可可下♦可可不否可可下♦可可不否可可下****************\n");printf("§\n");printf("§<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§\n");printf("§ >>欢迎进入学生成绩记录系统<< §\n");printf("§>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<§\n");printf(" §§w”);printf("§【1】 创建学生成绩信息 §\n");

printf("显示所§\n");printf("§【2】 显示所有学生成绩信息 §\n");printf("§§\n");添加学printf("§【3】 添加学生成绩信息 §\n");printf("查询学§\n");printf("§【4】 查询学生成绩信息 §\n");printf("§\n");TOC\o"1-5"\h\zprintf("§【5】 修改学生的信息 §\n");printf(" §§\n");printf("§【6】 按分数段显示学生的信息 §\n");printf(" §§\n");printf("§【0】 退出 §\n");printf("§\n");printf("至布布至.下布否至布不至.下布否至布不至.下布否至布不至.下布否至布不至.可不否下****************\n");printf("请输入相应菜单编号:”);}(2)我负责编写的程序A.添加学生信息voidAddstudent(){FILE*fp;structstudents;fp=fopen("stu.dat","ab");if((fp=fopen("stu.dat","ab"))==NULL)printf("Fileopenerror!\n");elseprintf(”请输入所增加学生的学号姓名c语言成绩:\n");scanf("%d",&s.num);scanf("%s",);scanf("%f",&s.score[0]);fwrite(&s,sizeof(structstudent),1,fp);fclose(fp);/*关闭文件*/}printf("写入成功!\n");}//endfunctionAddstudent;B.修改学生成绩voidmodify()intnumber,i;printf("请输入要修改信息的学生学号:");scanf("%d",&number);for(i=0;i<n;i++)if(number==stud[i].num)break;/*查找判断*/if(i<n)/*查找判断*/

printf("请输入修改后的学生的信息:”);printf("\n请输入学生的c语言成绩:”);scanf("%f",&stud[i].score[0]);save();}elseprinf("没找到该学生的信息\n");system("paues");system("cls");C.查询学生成绩voidnamecheck(void);voidscorecheck(void);voidsearchmenu(){printf("*****欢迎进入学生成绩查询系统\n");printf("*\n");printf("*\n");printf("*printf("*\n");printf("*\n");printf("*按姓名查询成绩2 按学号查询成绩3 返回上一层\n");printf("* 4 退出\n");printf("至布布至.下布否至布不至.下布否至布不至.下布否至布不至.下布否否布布至.\n");printf("请输入相应菜单编号printf("请输入相应菜单编号:");intm;scanf("%d",&m);switch(m)namecheck();printf("\n");system("PAUSE");system("CLS");break;scorecheck();printf("\n");system("PAUSE");system("CLS");break;main();break;exit(0);break;}}voidnamecheck()charname[10];printf("按照姓名查询请按\n");printf("\n请输入姓名:");scanf("%s",&name);printf("查询结果\n");printf("学号姓名c语言成绩\n");if(strcpy(stud[i].name,name))printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}voidscorecheck()

intb;printf("按照学号查询请按5");printf("\n请输入学号:");scanf("%d",&b);printf("查询结果\n");printf("学号printf("学号姓名c语言成绩\n");for(i=0;i<n;i++)if(stud[i].num==b){printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}}

四、程序清单和执行结果.头文件#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>intn=4;structstudentintnum; /*学号*/charname[10];/*charname[10];/*姓名*/floatscore[3];/*成绩*//******floatscore[3];/*成绩*//******以下是函数原型*******/voidsave(void);voidinput(void);voidoutput(void);voidmodify。;voidsearchmenu(void);voidnamecheck(void);voidoutput(void);voidmodify。;voidsearchmenu(void);voidnamecheck(void);/*修改信息*//*查询信息*//*按姓名查询*/voidscorecheck(void);voidAddstudent();voidsclsearch();示voidscorecheck(void);voidAddstudent();voidsclsearch();示*//*按学号查询*//*添加信息*//*成绩按分数段显.函数源程序代码与运行结果[1]函数源程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>intn=4;structstudent{intnum;charname[10];floatscore[3];}stud[100];inti,choose,a,t=0;longintnum;intmain()voidsave(void);voidinput(void);voidoutput(void);voidmodify();voidsearchmenu(void);voidAddstudent();voidsclsearch();while(1)printf("****************\n");printf(" §§\n");printf("§<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§\n");printf("§ >>欢迎进入学生成绩记录系统<< §\n");printf("

§»>»»»»»»»»»»»»<«<««<<<<<<<<<<<<<<<<<<<§\nn);printf(n§W”);创建printf(n§[1] 创建学生成绩信息§W”);显示printf(n显示printf(H§[2] 所有学生成绩信息 §\n”);printf(n§\暧);添加printf(n§【3】 添加学生成绩信息§W”);printf(n查询printf(H§【4】 查询学生成绩信息 §W”);printf(n§\nn);printf(H§[5] 修改学生的信息§\n改学生的信息§\nn);printf("§\n");按分printf("§【6】 按分数段显示学生的信息§\n");printf("§\n");出printf("出printf("§\n");printf("printf("§【0】 §\n");小♦可可不否可可下♦可可不否可可下♦可可不否可可下♦可可不否可可下♦可可不否可可下****************\n");printf("请输入相应菜单编号:”);scanf("%d",&a);switch(a)input();save();break;output();printf("\n");system("PAUSE");system("CLS");break;Addstudent();printf("\n");system("PAUSE");system("CLS");break;searchmenu();printf("\n");system("PAUSE");system("CLS");break;modify。;printf("\n");system("PAUSE");system("CLS");break;sclsearch();printf("\n");system("PAUSE");system("CLS");break;case0:exit(0);default:;}}return0;}voidsave(){FILE*fp;if((fp=fopen("stu.dat","wb"))==NULL)/*以只写的方式打开文件*/printf("无法打开文件!\n");return;}for(i=0;i<n;i++)if(fwrite(&stud[i],sizeof(structstudent),1fp)!=1)/*写入字节为1的信息在文件中*/prinf("文件写入错误!\n");fclose(fp);/*关闭文件*/}void1叫口式)〃录入学生成绩{inti;chara;for(i=0;i<n;i++){printf("\n 请输入学生成绩信息:\n");printf("\n请依次输入学号、姓名、c语言成绩:\n");scanf("%d%s%f",&stud[i].num,stud[i].name,&stud[i].score[0]);printf("输入:y(继续),n(终止)!\n");fflush(stdin);scanf("%c",&a);if(a=='n'IIa=='N')break;}n=i+1;}voidAddstudent()FILE*fp;structstudents;fp=fopen("stu.dat","ab");if((fp=fopen("stu.dat","ab"))==NULL)printf("Fileopenerror!\n");elseprintf(”请输入所增加学生的学号姓名c语言成绩:\n");scanf("%d",&s.num);scanf("%s",);scanf("%f",&s.score[0]);fwrite(&s,sizeof(structstudent),1,fp);fclose(fp);/*关闭文件*/}printf("写入成功!\n");}//endfunctionAddstudent;voidoutput(){inti;//floats;FILE*fp;if((fp=fopen("stu.dat","rb"))==NULL){printf("cannotopenfile\n");exit(0);}printf("\n学号姓名c语言成绩\n");for(i=0;fread(&stud[i],sizeof(structstudent),1即)==1;i++){printf("%d %10s %10.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}fclose(fp);n=i;}voidmodify()intnumber』;printf("请输入要修改信息的学生学号:");scanf("%d",&number);for(i=0;i<n;i++)if(number==stud[i].num)break;/*查找判断*/if(i<n)/*查找判断*/printf("请输入修改后的学生的信息:”);printf("\n请输入学生的c语言成绩:");

scanf("%f",&stud[i].score[0]);save();}elseprintf("没找到该学生的信息\n");system("paues");system("cls");}voidnamecheck(void);voidscorecheck(void);voidsearchmenu(){printf("*****欢迎进入学生成绩查询系统******\n");printf("*\n");printf("*******\n");printf("*\n");printf("*\n");printf("*\n");printf("*\n");按姓名查询成绩按学号查询成绩返回上一层printf("<j^ <^> <j^ <^>至布布至.下布否至布不至.下布否至布不至.下布否至布不至.下布否否布布至.\n");printf("请输入相应菜单编号:”);intm;scanf("%d",&m);switch(m){namecheck();printf("\n");system("PAUSE");system("CLS");break;scorecheck();printf("\n");system("PAUSE");system("CLS");break;main();break;exit(0);break;}voidnamecheck()charname[10];printf("\n请输入姓名charname[10];printf("\n请输入姓名:");scanf("%s",&name);printf("查询结果\n");printf("学号printf("学号姓名c语言成绩\n");if(strcpy(stud[i].name,name))printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}voidscorecheck()intb;

intb;printf("\n请输入学号:");scanf("%d",&b);printf("查询结果\n");printf("学号printf("学号姓名c语言成绩\n");for(i=0;i<n;i++)if(stud[i].num==b)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}}voidsclsearch()inti;printf("90分以上:\n");printf("学号printf("学号姓名c语言成绩\n");for(i=0;i<n;i++)if(stud[i].score[0]>=90)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("80~89:\n");printf("学号printf("学号姓名c语言成绩\n");for(i=0;i<n;i++)if(stud[i].score[0]>=80&&stud[i].score[0]<90)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("70~79:\n");printf("学号printf("学号姓名c语言成绩,”);for(i=0;i<n;i++)if(stud[i].score[0]>=70&&stud[i].score[0]<80)

printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("60~69:\n");printf("学号printf("学号姓名c语言成绩\n");for(i=0;i<n;i++)if(stud[i].score[0]>=60&&stud[i].score[0]<70)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("60分以下:\n");printf("学号printf("学号姓名c语言成绩\n");for(i=0;i<n;i++)if(stud[i].score[0]<60)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);

}}(1)系统以菜单方式工作lC\Dehu.g\C.axe*。◎育白>!由*奇*.':>..空.“口不.£'。◎育白>!由*奇*.':>..空.“口不.£':<'*己*.由:<:由内门£.卢£由;<;奇>!由*奇京电々“口电<«««««««««««««»>»»»»»»»»»»»»»I >以迎进入学生成象正求系统。§>>>>>>>>»»>>>>>>>»>>>>>><<<<<<<<«««<<<<<<<«<<<<I【1】 创建学生成绩信息■【之】 显示所有苧注成绩,信息1【3】 添加学生成绩信息I 专询学生成绩信息/ 15】 修改学注的信息| EG 技分数段显示学三的信息S[⑪] ]艮出请输入相应菜单编号二■(2)学生成绩录入aw'':.<仃.--.口aw'':.<仃.--.口.--.口.--.■■■■--■,.■■■■■--■.■■■■■--■.■■■■■--■.■■■■■--■.■■■■-.W<<<<<<<<<<<C<<<<<<<<<K<<<<<>->>>>>>>>>>>>>>>>>>>>>>>>>->>>>>玳迎迸入学生成绩记录事统《>》钦迎过入学上也项记示器疣灯>>>>>>>>>>>>>>>>>»>>>>>>>><<<<<<<<<<<<«<<<<<<<<<<<<<11_1 jpg-【2】 显布所有苧生成薪,(§■息【3】 添加学生成绩信息【3】 方询学生成绩信息IG 修改学生的"信息16】 按分数段显于学生的信息[o] ]艮!"H请输入相应菜单编号: 1请愉平生成亲信启;请依次输入学号,姓名,『语言成绩二11±56的人.股继续,Y冬止》,V诘愉入学生成亲信息;〃依次输入学号、姓名、匚语言成舜同1人:”阳知,Y冬止”话轴入学生成须伯息:标依次输入学号、姓名、匚语言成寿□vang9t畅入:V〈继竦),n〈蟀止X宿箱大宁生成防信,息:植恢次瑜入,平号一姓名、厂传三球和-Im(3)显示所有学生成绩力卜,力卜,已门可学丽。>iuKU 囹」建学生成缴估息工力 显示所有学在成绩信息Ea] 添加竽生成绩估息M 咨询学生成绩信息KS] 保险学生的伯总[61 按分数段显示当先的宿生、Ei —————————————————————————— [I、!J<4吾言成绩EG,0O.IEIO02.❺自

(4)查询学生成绩按姓名查询灰*D=\,C\De:biig\C_H3EE:_■_««««««««««<«««»»>»»»»»»»»»»»»含»欢迎进入学生成绩记录寿统行>>>>>>»»>>>>>»»»>>>>>><<<«<<<<<««<<<<<<<««<<LUlilfl倒建毛土成汨信息也1Tl方字1.由^信息添加学生成绩佶息出:旬学生成写信目、南应*I的信用[G][H]按分数段显示学生的佶息退出LUlilfl倒建毛土成汨信息也1Tl方字1.由^信息添加学生成绩佶息出:旬学生成写信目、南应*I的信用[G][H]按分数段显示学生的佶息退出I首II,文辿混人学士庄得r:黎学号查询成亘叵_!_一房RIII按学号查询

□\C\Detiiig:□\C\Detiiig:\C.©se*(5)修改学生成绩5"»:\C\Det]ug\C.eke,<<<<<<««<<<<<«<<<<<<<<<<>»>>>>>>>»»>>>>>>>»>>>>>>>〉就迎过入学生或兼元录系统皴>>»>>»»»>>»»»»»»>««««««««<<«<«««口】 创建学生成缔信息【2】 显不,斤有学件成绩信息乜】 添力n学生成绩信息14] 查询学生成绩信息15】 像改学生的信息16] 按分数段显示学生的信息[□] i艮土! 兰学号:2故后的苧注的信息:1•双’后I也\ 运士:78(6)按分数段显示学生成绩Bis\C\Detiug\iCHaHe一就迎进入学生成绩记录系统《>>>>>>>>>>>>>>>>>»>>>>>>>><<<<<<<<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论