程序设计基础课程设计报告.docx
- 文档编号:9730790
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:29
- 大小:203.24KB
程序设计基础课程设计报告.docx
《程序设计基础课程设计报告.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
程序设计基础课程设计报告
课程设计(大作业)报告
课程名称:
程序设计基础
设计题目:
学生成绩记录薄设计
院系:
信息技术学院
班级:
设计者:
学号:
指导教师:
设计时间:
2013、78、-2013、7、13
信息技术学院
昆明学院课程设计(大作业)任务书
姓名:
院(系):
信息技术学院
专业:
计算机科学与技术学号:
任务起止日期:
2013、7、8-2013、7、13
课程设计题目:
学生成绩记录薄设计
课程设计要求:
(1)通过课程设计,进一步掌握C语言的语法结构,基本流程,更加深入与全面理解所学的基本概念、基本原理与基本方法。
(2)独立实践的机会,将课本上的理论知识与实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高程序编制、程序调试及综合应用的能力
(3)明确课程设计的目的,通过布置具有一定难度的,能综合运用所学知识的程序设计题目。
(4)程序设计经过需求分析,明确程序设计题目要求,进行合理的设计,编码阶段编出的程序易读、易懂并具有良好的交互性,界面清晰。
测试阶段应指导学生编写测试用例,尽量多地找出程序中的错误,进行调试。
工作计划及安排:
第一天的,两个人合作选定题目,建立起程序的构思图形,了解题目意思,确立程序的方向,并且查阅一些资料开始构建程序。
第二天,两人商量分工合作,确定谁写那段函数,并且在总体思路的框架下,逐步写程序,并确保证程序无误。
第三天,将小程序合并,进行调试,对里面出现的问题协商合作共同解决。
第四天,开始写实验报告,对每次失败原因进行总结,并且整合两人思想纂写报告。
第五天,实训课也接近尾声,与班上的同学交流心得体会。
指导教师签字
2013年7月8日
课程设计(大作业)成绩
学号:
姓名:
指导教师:
课程设计题目:
学生成绩记录薄设计
总结:
通过一周C语言课程设计,不仅增加了我对C语言学习的兴趣,还让我对C语言有了更深的了解。
在这次的实训中,我们通过自己动手查找资料,并自己设计程序,还上机运行验证我们的程序。
虽然在上机调试过程中,我遇到了很多的困难,(比如:
很难理解一些逻辑思维上的东西)但通过自己不断的重新理解与修正,最终还就是成功的完成了程序的设计。
那种喜悦感难以用言语来表达,这让我感觉到学习也可以就是快乐的。
在这次设计我不单单学习到了C语言的知识,也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
有许多知识,光靠老师上课所讲的与自己瞧书得到的,还远远不够,C语言主要就是通过上机来熟悉并且运用的,这次的实训课让我深刻的明白了这一点。
所以在以后的学习生活中,我要经常写程序并上机进行调试,不断从中学习新的知识。
还有一点就就是:
不懂就问。
遇到难题实在解决不了的,问老师同学,与同学共同讨论,有合作精神也就是很重要的。
希望以后还有更多的实训机会,让我得到锻炼。
指导教师评语:
成绩:
填表时间:
指导教师签名
学生成绩记录薄设计
一、课程设计目的与要求
1、课程设计目的
(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体与文件等)来完成一个简单的信息管理程序的设计。
(2)充分体现与体会函数在程序设计中的必要性与实用性,并反映主函数main()在程序设计中的实现思路与方法。
2、课程设计要求
设计一个简易学生成绩记录簿设计,其中包括:
姓名,学号,C语言成绩;
具体功能:
1.系统以菜单方式工作
2、创建学生成绩信息并以磁盘文件保存;
3、读取磁盘文件并显示输出所有学生的成绩;
4、查询学生成绩
(1)按学号查询成绩
(2)学号姓名查询成绩
5.添加成绩记录;
6.修改指定姓名或学号的学生的成绩并可存盘;
7.显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
2、总体设计
根据系统的要求,系统总体设计如图1所示。
读取并显示所有成绩
学号查询成绩成绩
姓名查询成绩
添加成绩记录
修改学生成绩
结束程序
学生信息输入
学生成绩记录薄
图1系统总体结构
三、详细设计
1、数据结构设计
#include
#include
#include
#include
intn=4;
structstudent
{
intnum;/*学号*/
charname[10];/*姓名*/
floatscore[3];/*成绩*/
}
2.函数说明
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("§§\n");
printf("§【1】--------------------------创建学生成绩信息§\n");
printf("§§\n");
printf("§【2】--------------------------显示所有学生成绩信息§\n");
printf("§§\n");
printf("§【3】--------------------------添加学生成绩信息§\n");
printf("§§\n");
printf("§【4】--------------------------查询学生成绩信息§\n");
printf("§§\n");
printf("§【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("error!
\n");
else
{
printf("请输入所增加学生的学号姓名c语言成绩:
\n");
scanf("%d",&s、num);
scanf("%s",s、name);
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 if(number==stud[i]、num) break;/*查找判断*/ if(i { printf("请输入修改后的学生的信息: "); printf("\n请输入学生的c语言成绩: "); scanf("%f",&stud[i]、score[0]); save(); } else printf("没找到该学生的信息\n"); system("paues");system("cls"); } C、查询学生成绩 voidnamecheck(void); voidscorecheck(void); voidsearchmenu() {printf("*****欢迎进入学生成绩查询系统******\n"); printf("*1------------------按姓名查询成绩*\n"); printf("*2-----------------按学号查询成绩*\n"); printf("*3-----------------返回上一层*\n"); printf("*4------------------退出*\n"); printf("*************************************\n"); printf("请输入相应菜单编号: "); intm; scanf("%d",&m); switch(m) { case1: namecheck(); printf("\n"); system("PAUSE"); system("CLS"); break; case2: scorecheck(); printf("\n"); system("PAUSE"); system("CLS"); break; case3: main();break; case4: 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("按照学号查询请按\n"); { printf("\n请输入学号: "); scanf("%d",&b); printf("查询结果\n"); printf("学号姓名c语言成绩\n"); for(i=0;i if(stud[i]、num==b) { printf("%d%s%、2f\n",stud[i]、num,stud[i]、name,stud[i]、score[0]); } } } 四、程序清单与执行结果 1、头文件 #include #include #include #include intn=4; structstudent { intnum;/*学号*/ charname[10];/*姓名*/ floatscore[3];/*成绩*/ /******以下就是函数原型*******/ voidsave(void); voidinput(void); voidoutput(void); voidmodify();/*修改信息*/ voidsearchmenu(void);/*查询信息*/ voidnamecheck(void);/*按姓名查询*/ voidscorecheck(void);/*按学号查询*/ voidAddstudent();/*添加信息*/ voidsclsearch();/*成绩按分数段显示*/ 2.函数源程序代码与运行结果 [1]函数源程序代码 #include #include #include #include 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("§>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<§\n"); printf("§§\n"); printf("§【1】--------------------------创建学生成绩信息§\n"); printf("§§\n"); printf("§【2】--------------------------显示所有学生成绩信息§\n"); printf("§§\n"); printf("§【3】--------------------------添加学生成绩信息§\n"); printf("§§\n"); printf("§【4】--------------------------查询学生成绩信息§\n"); printf("§§\n"); printf("§【5】--------------------------修改学生的信息§\n"); printf("§§\n"); printf("§【6】--------------------------按分数段显示学生的信息§\n"); printf("§§\n"); printf("§【0】--------------------------退出§\n"); printf("§§\n"); printf("*********************************************************\n"); printf("请输入相应菜单编号: "); scanf("%d",&a); switch(a) { case1: input(); save(); break; case2: output(); printf("\n"); system("PAUSE"); system("CLS"); break; case3: Addstudent(); printf("\n"); system("PAUSE"); system("CLS"); break; case4: searchmenu(); printf("\n"); system("PAUSE"); system("CLS"); break; case5: modify(); printf("\n"); system("PAUSE"); system("CLS"); break; case6: 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 if(fwrite(&stud[i],sizeof(structstudent),1,fp)! =1)/*写入字节为1的信息在文件中*/ printf("文件写入错误! \n"); fclose(fp);/*关闭文件*/ } voidinput()//录入学生成绩 { inti; chara; for(i=0;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'||a=='N') break; } n=i+1; } voidAddstudent() { FILE*fp; structstudents; fp=fopen("stu、dat","ab"); if((fp=fopen("stu、dat","ab"))==NULL) printf("error! \n"); else { printf("请输入所增加学生的学号姓名c语言成绩: \n"); scanf("%d",&s、num); scanf("%s",s、name); 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,fp)==1;i++) { printf("%d%10s%10、2f\n",stud[i]、num,stud[i]、name,stud[i]、score[0]); } fclose(fp); n=i; } voidmodify() { intnumber,i; printf("请输入要修改信息的学生学号: "); scanf("%d",&number); for(i=0;i if(number==stud[i]、num) break;/*查找判断*/ if(i { printf("请输入修改后的学生的信息: "); printf("\n请输入学生的c语言成绩: "); scanf("%f",&stud[i]、score[0]); save(); } else printf("没找到该学生的信息\n"); system("paues");system("cls"); } voidnamecheck(void); voidscorecheck(void); voidsearchmenu() {printf("*****欢迎进入学生成绩查询系统******\n"); printf("*1------------------按姓名查询成绩*\n"); printf("*2-----------------按学号查询成绩*\n"); printf("*3-----------------返回上一层*\n"); printf("*4------------------退出*\n"); printf("***
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)