文档视界 最新最全的文档下载
当前位置:文档视界 › 程序设计基础课程设计报告

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

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

课程设计(大作业)报告

课程名称:程序设计基础

设计题目:学生成绩记录薄设计

院系:信息技术学院

班级:

设计者:

学号:

指导教师:

设计时间:2013.7 8.-2013.7.13

信息技术学院

昆明学院课程设计(大作业)任务书

学生成绩记录薄设计

一、课程设计目的与要求

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

#include

#include

#include

int n=4;

struct student

{

int num; /*学号*/

char name[10]; /**/

float score[3]; /*成绩*/

}

2.函数说明

1.主函数

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

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

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

算法思想:

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

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

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

(2)学生成绩信息录入函数void input()

算法思想:

①依次录入结构体数组中所包含的各个成员;

②直到输入的结构体成员中信息为4,数据输入结束;

③返回实际录入的学生成绩信息数。

(3)从文件中读出学生成绩信息void output();

算法思想:

①定义指向结构体变量的指针和指向文件的指针;

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

③将文件中的信息依次读出,最后结构体的指针为NULL。

3.函数设计

(1)主菜单函数main()

功能:函数返回值为整数,代表所选的菜单项

int main ()

{

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.添加学生信息

void Addstudent()

{

FILE *fp;

struct student s;

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

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

printf("File open error!\n");

else

{

printf("请输入所增加学生的学号c语言成绩:\n");

scanf("%d",&s.num );

scanf("%s",https://www.docsj.com/doc/b03522554.html,);

scanf("%f",&s.score[0]);

fwrite (&s,sizeof(struct student),1,fp);

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

}

printf("写入成功!\n");

}//end function Addstudent;

B.修改学生成绩

void modify()

{

int number,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.查询学生成绩

void namecheck(void);

void scorecheck(void);

void searchmenu()

{ printf(" ***** 欢迎进入学生成绩查询系统****** \n");

printf("* 1------------------按姓名查询成绩* \n");

printf("* 2-----------------按学号查询成绩* \n");

printf("* 3-----------------返回上一层* \n");

printf("* 4------------------退出* \n");

printf(" ************************************* \n");

printf(" 请输入相应菜单编号: ");

int m;

scanf("%d",&m);

switch(m)

{

case 1: namecheck();

printf("\n");

system("PAUSE");

system("CLS");

break;

case 2: scorecheck();

printf("\n");

system("PAUSE");

system("CLS");

break;

case 3: main();break;

case 4: exit(0); break;

相关文档