程序设计基础课程设计报告.docx

上传人:b****5 文档编号:7406270 上传时间:2023-01-23 格式:DOCX 页数:25 大小:234.07KB
下载 相关 举报
程序设计基础课程设计报告.docx_第1页
第1页 / 共25页
程序设计基础课程设计报告.docx_第2页
第2页 / 共25页
程序设计基础课程设计报告.docx_第3页
第3页 / 共25页
程序设计基础课程设计报告.docx_第4页
第4页 / 共25页
程序设计基础课程设计报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

程序设计基础课程设计报告.docx

《程序设计基础课程设计报告.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。

程序设计基础课程设计报告.docx

程序设计基础课程设计报告

课程设计(大作业)报告

课程名称:

程序设计基础     

设计题目:

学生成绩记录薄设计  

院系:

信息技术学院  

班  级:

设计者:

   

学号:

   

指导教师:

      

设计时间:

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分以上各分数段的学生信息。

二、总体设计

根据系统的要求,系统总体设计如图1所示。

图1系统总体结构

三、详细设计

1、数据结构设计

#include<stdio.h〉

#include<stdlib。

h>

#include〈string.h>

#include

h〉

int n=4;

structstudent

{

int num;    /*学号*/

charname[10];/*姓名*/

ﻩfloatscore[3];/*成绩*/

}

2.函数说明

1。

主函数

main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能.

2.其他部分功能函数包括

(1) 将学生成绩信息保存为文件void save();

算法思想:

①定义指向文件的指针变量;

②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;

③将存有学生成绩信息的结构体数组信息依次保存到文件中。

(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("Fileopen 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");

}//end functionAddstudent;

B.修改学生成绩

voidmodify()

{

ﻩintnumber,i;

ﻩprintf(”请输入要修改信息的学生学号:

”);

ﻩscanf("%d”,&number);

for(i=0;i

ﻩif(number==stud[i]。

num)

break;/*查找判断*/

if(i〈n)/*查找判断*/

ﻩﻩ{

ﻩprintf("请输入修改后的学生的信息:

”);

ﻩﻩprintf(”\n请输入学生的c语言成绩:

”);

ﻩscanf("%f",&stud[i].score[0]); 

ﻩﻩsave();

ﻩﻩ}

ﻩelse

ﻩprintf("没找到该学生的信息\n”); 

ﻩsystem("paues");system(”cls");

}

C.查询学生成绩

void namecheck(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;

ﻩcase 3:

 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]);

ﻩ}

void scorecheck()

{

ﻩ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<stdio.h〉

#include〈stdlib。

h〉

#include<string.h〉

#include

intn=4;

struct student

intnum; /*学号*/

ﻩcharname[10];/*姓名*/

floatscore[3]; /*成绩*/

/******以下是函数原型*******/

void save(void);  

voidinput(void); 

 void output(void);   

 voidmodify(); /*修改信息*/

ﻩvoidsearchmenu(void); /*查询信息*/

 voidnamecheck(void);/*按姓名查询*/

 voidscorecheck(void);/*按学号查询*/

 void Addstudent();  /*添加信息*/

ﻩvoidsclsearch();     /*成绩按分数段显示*/

2.函数源程序代码与运行结果

[1]函数源程序代码

#include〈stdio.h>

#include<stdlib。

h〉

#include<string.h>

#include<windows.h〉

int n=4;

struct student

{

ﻩintnum;

ﻩchar name[10];

floatscore[3];

}stud[100];

int i,choose,a,t=0;

longintnum;

intmain()

{ 

voidsave(void);

void input(void);

ﻩvoidoutput(void);

voidmodify();

voidsearchmenu(void);

voidAddstudent();

void sclsearch();

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;

ﻩcase 2:

ﻩ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<n;i++)

if(fwrite(&stud[i],sizeof(struct student),1,fp)!

=1)/*写入字节为1的信息在文件中*/

ﻩﻩprintf(”文件写入错误!

\n");

ﻩfclose(fp);/*关闭文件*/

void input()//录入学生成绩

ﻩ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' ||a=='N')

ﻩbreak;

ﻩ}

n=i+1;

voidAddstudent()

ﻩFILE*fp;

structstudents;

ﻩfp=fopen(”stu.dat”,”ab"); 

if((fp=fopen(”stu.dat”,”ab”))==NULL)

ﻩprintf(”Fileopenerror!

\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"); 

}//endfunction Addstudent;

voidoutput()

{

int i;

//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("请输入要修改信息的学生学号:

");

scan

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

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1