精华内容
下载资源
问答
  • C语言课程设计报告总结C语言课程设计报告总结
  • PAGE C语言程序设计 课程设计报告 学年 第 学期 专 业 班 级 姓名学号 姓 名 指导教师 成 绩 目 录 一课程设计的目的与要求1 二方案实现与调试 1 2.1 掷骰子游戏1 2.2 射击游戏3 2.3 计算存款本息之和5 2.4 肇事逃逸...
  • c语言课程设计报告-商业销售管理系统 (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!19.90 积分C语言课程设计商业销售管理系统学号姓名班级软件1202指导老师成绩...

    62e50291a81fc54b507f33cb80033297.gif c语言课程设计报告-商业销售管理系统

    (14页)

    57e00f2a40364d9d8cb6f44a41b46a60.gif

    本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

    19.90 积分

    C语言课程设计商业销售管理系统学号姓名班级软件1202指导老师成绩2013年6月C语言课程设计第2页,共14页一、任务描述编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选择后列出所选商品详细信息,并请顾客输入邮寄地址,后确认选购并增加相应商品的库存数量,顾客全部选购完成后列出所有选订商品,再次确认订购。在店员操作时可以实现店内商品的输入与查看,并能通过商品编号或者商品名称进行进货。顾客买走商品后,店员通过输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。二、系统概要设计DEADD商业销售管理系统顾客选购店员操作输入进货清单列表顾客选购顾客选购菜单店员操作店员菜单输入店员输入商品进货店员进货清单店员生成销售清单列表进入商品列表三、系统详细设计C语言课程设计第3页,共14页(1)、数据结构设计本程序使用结构数组INTQSN用来储存商店中的商品信息GN用来储存顾客选购的商品信息DN用来储存店员统计销售清单时输入的商品信息全局变量Q用来储存顾客选购的商品数量(2)、模块接口设计顾客选购由主菜单进入,可直接或在顾客完成选购后返回主菜单。函数原型VOIDXGVOIDRMVOIDRXVOIDJRVOIDLCINTXVOIDQRINTXVOIDSFVOIDZZ店员操作由主菜单进入,可以进入商品输入、进货、生成销售清单三个模块或返回主菜单。函数原型VOIDDY输入由店员操作进入,输完商品后返回店员操作界面。函数原型VOIDADD进货由店员操作进入,进货后返回店员操作界面。函数原型VOIDJHVOIDJHMVOIDJHBC语言课程设计第4页,共14页清单由店员操作进入,生成销售清单后返回店员操作界面。函数原型VOIDSCVOIDSCMVOIDSCBVOIDTJ列表由店员操作进入,生成商品列表后按任意键返回店员操作界面。函数原型VOIDDE(2)流程图顾客选购开始输入KKK1K2K3K4输入NAI1INISINAMENAY输入XHI1INN输入BHI1INYYYYYNNNSIXHXHSIBHBHIINNC语言课程设计第5页,共14页输入商品信息输入邮寄地址订购取消GQWZXSXYDQ继续选购结束选购订购取消结束输入KKKC语言课程设计第6页,共14页店员操作开始KK1K2K3K4输入KADDJHSCDEK5结束输入开始结束I1INIYN输入商品信息C语言课程设计第7页,共14页进货开始结束输入KKK1K2输入NA,KI1INISINAMENAYNYNSIKCK输入BH,KI1INISIBHBHYYNSIKCKC语言课程设计第8页,共14页清单输入KKK1K2I1IQY开始J1JN输入NASJNAMENAJYYNNIDIWZJI1IQYJ1JN输入KSJBHKJYYNNIDIWZJC语言课程设计第9页,共14页I1IQIYN输出商品信息SDIWZKCJSDIWZPRICESDIWZYD输出销售总价格结束列表结束开始I1INIYN输出商品信息C语言课程设计第10页,共14页四、系统实现主菜单顾客选购输入商品名称选1输入商品型号C语言课程设计第11页,共14页选1进入选择列表C语言课程设计第12页,共14页选2选1C语言课程设计第13页,共14页选2店员操作商品输入进货生成销售清单选1选2C语言课程设计第14页,共14页商品列表五、系统调试调试过程中,有一些代码编写错误,我根据提示立即进行修改并再次调试直至成功。六、系统不足不能做到商品的增加和删除。 关 键 词: 语言 课程设计 报告 商业 销售 管理 系统

    524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

    展开全文
  • 6总结.............................................................25 致谢...........................................................26 参考文献............................................................
  • 答题系统1. 求利用结构化程序设计方法以及C的编程思想来完成学生...通过本次课程设计,要求加深对C语言的语法规则、数组、函数、指针等方面基本内容的理解;预习并尝试使用第10章“对文件的输入输出”中的基础知识。
  • v1.0 可编辑可修改 C 程序设计课程设计 学 院 专 业 班 级 学 号 姓 名 指导教师 * * * * * * 2016 年 9 月 1 v1.0 可编辑可修改 第 1 章 分支与循环 设计任务 王小二自夸刀工不错有人放一张大地煎饼在砧板上问他...
  • 目 录 前 言 1 1 课程设计概述 2 1.1 C语言概述 2 1.2 Turbo C/C++ for Windows概述 2 2 程序总体设计 2 2.1 总体设计思想 2 2.2 总体设计流程图 3 3 程序详细设计 3 ...5 课程设计总结 9 致 谢 10 参考文献 11
  • C语言课程设计总结报告学生考勤系统设计 C语言程序设计课程设计报告设计题目:学生考勤系统设计专 业 自 动 化 班 级 自 动 化 071 学 生 朱 胜 佳 指导教师 梁 德 胜 2008 年 春季 学期2设计任务:C 语言课程设计...

    41528d3028836879cd698677c3999917.gifC语言课程设计总结报告学生考勤系统设计

    C语言程序设计课程设计报告设计题目:学生考勤系统设计专 业 自 动 化 班 级 自 动 化 071 学 生 朱 胜 佳 指导教师 梁 德 胜 2008 年 春季 学期2设计任务:C 语言课程设计任务书 10题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、日期、节次、出勤情况等信息。本系统可以模拟考勤过程、记录考勤结果,并能在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。要求:1、用 C 语言实现程序设计;2、利用结构体进行相关信息处理;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。平时成绩: 验收答辩成绩: 设计报告成绩:总评成绩: 指导教师:一、总体设计31.程序的总体设计◎确定界面,使用户可选择操作项目(录入,修改,查询,评分) 。◎录入功能:使用结构体,要求用户输入姓名、性别、学号、日期、节次、当前出勤情况等信息,并写入文件。 ◎修改功能:使用户输入学号,姓名其中一项可以修改考勤其信息。对于修改功能的实现,是先将所有文件内容读入到内存中,然后修改考勤值,最后再重新覆盖写入文件。◎查询模块:使用字符串比较函数,利用循环找到对应结构体数组元素,然后输出需要信息。对于查询功能的实现,同修改,是先将所有文件内容读入到内存中,然后查找到其中某项,最后输出到屏幕。◎评分模块:系统根据总的应道考勤数按照百分制,求出每个学生的分数,并输出到屏幕。2. 数据结构学生信息用结构体记录,包括姓名(字符数组) 、性别(字符型) 、日期(年月日三个字符数组) 、节次(整型) 、出情况(整4型) 。3. 函数原型声明void main() //主函数void record(); //录入数据函数void amend(); //修改数据函数void search(); //查询数据函数void goal(); //计算总评函数二、详细设计1.main( )函数void main(){void record(); //录入数据函数void amend(); //修改数据函数void search(); //查询数据函数void goal(); //计算总评函数char item;printf(“ ◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎\n“);printf(“ ● ●\n“);printf(“ ◎ 学 生 考 勤 管 理 系 统 ◎\n“);printf(“ ● ●\n“);printf(“ ◎ 作者 朱胜佳 西安理工 自 071 ◎\n“);printf(“ ● ●\n“);printf(“ ◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎\n“);printf(“ ● ●\n“);printf(“ ◎ 1.学生信息及考勤情5况录入 ◎\n“);printf(“ ● ●\n“);printf(“ ◎ 2.学生信息及考勤情况修改 ◎\n“);printf(“ ● ●\n“);printf(“ ◎ 3.学生信息及考勤情况查询 ◎\n“);printf(“ ◎ ◎\n“);printf(“ ● 4.学生考勤总评分数查询 ●\n“);printf(“ ◎ ◎\n“); printf(“ ●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n“); //用户界面printf(“\n“);printf(“ 请选择您需要的操作\n“);scanf(“%c“,switch(item){case 1 : record();break;case 2 : amend();break;case 3 : search();break;case 4 : goal();break;} //实现功能选择} 流程图:6开 始2. record() 函数void record(){int i,j=0,jx=1;printf(“ ************************学 生 基 本 信 息 录 入*****************************\n“);if((fp=(“date.txt“,“w“))==NULL){printf(“文件打开失败\n“);exit(0);}for(i=0;jx==1;i++) //输入信息循环{ for(;j==0;) //输入确认循环{getchar();printf(“请输入第%d 个学生的姓名 “,i+1);gets(stu[i].name);printf(“请输入第%d 个学生的学号 “,i+1);输出界面switch(item) switch(item)switch(item)record()1amend()23 4search() goal()break结束7gets(stu[i].number);printf(“请输入第%d 个学生的性别(男:m 女:f) “,i+1);stu[i].sex=getchar();printf(“请输入第%d 个学生的生日(格式:年 月 日) “,i+1);scanf(“%d%d

    展开全文
  • 1).系统功能介绍 2).功能模块结构 3).数据结构设计 4).主要模块算法说明 5).运行结果 6).课程设计总结 7).附录(源代码) 8).参考文献
  • 这是我大一时的课程设计报告,当时经过老师指点并且获得了优95分的成绩。里面有我完整的报告内容。
  • C语言课程设计.zip

    2019-07-10 09:12:33
    大学生C语言课程设计——成绩管理系统,包含设计报告,以及设计的总结心得。对C语言课程设计有着很好的参考依据。
  • C语言课程设计-职工信息管理系统程序设计C语言课程设计报告设计题目:职工信息管理系统程序设计课程设计评语2目 录31.课程论文题目42.程序设计思路43.功能模块图54.数据结构设计55.算法设计66.程序代码137....

    C语言课程设计-职工信息管理系统程序设计

    C语言课程设计报告

    设计题目:职工信息管理系统程序设计

    课程设计评语2

    目 录3

    1.课程论文题目4

    2.程序设计思路4

    3.功能模块图5

    4.数据结构设计5

    5.算法设计6

    6.程序代码13

    7.程序运行结果22

    8.编程中遇到的困难及解决方法25

    9.总结心得及良好建议26

    10.致谢26

    课程论文题目

    职工信息管理系统程序设计

    题目要求

    职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:

    系统以菜单的方式工作。

    职工信息录入功能 (职工信息用文件保存)。

    职工浏览功能。

    职工信息查询功能,查询方式可按学历查询或者工号查询。

    职工信息的删除、修改功能(可选项)。

    2.程序设计思路

    1、设计思路

    (1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;

    (2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;

    (3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

    3.功能模块图

    5.算法设计

    1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

    N

    Y

    2浏览模块

    【分析】

    该模块的功能是浏览职工的全部信息

    3排序模块

    N

    Y

    12

    1

    2

    4查询模块

    【分析】

    该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。流程图如下:

    5修改模块

    【分析】

    该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。流程图如下:

    Y

    6.程序代码

    #include

    #define N 50

    struct worker

    {

    char id[50];

    char name[20];

    char sex[10];

    char age[10];

    char edu[20];

    char salary[10];

    char address[20];

    char tel[20];

    }worker[N];

    void save(int n) //保存函数,保存n个记录

    { FILE *fp;

    int i;

    if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件

    { printf("\nCannot open file\n");

    }

    for(i=0;i

    if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)

    printf("file write error\n");

    fclose(fp);

    }

    int load() //加载函数

    { FILE *fp;

    int i;

    if((fp=fopen("worker.txt","rb"))==NULL)

    {printf("\nCannot open file\n");

    return NULL;

    }

    for(i=0;!feof(fp);i++)

    fread(&worker[i],sizeof(struct worker),1,fp);

    fclose(fp);

    return(i-1);

    }

    void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n表示比较到第n个职工

    { int j,k,w1;

    do

    {w1=0;

    printf("工号:");

    scanf("%s",worker[i].id);

    for(j=0;worker[i].id[j]!='\0';j++)

    if(w

    展开全文
  • 学院 管理科学与信息工程学院 班级 计算机 学号 _1401111633 姓名 张浩 程序作者 程光亮 ,张浩 语言程序设计课程 -----设计报告 课程设计的目的 1复习巩固 C 语言的基础知识进一步加深对 C语言的理解 和掌握 2为学生...
  • 评分为优秀的课程设计! 设计内容: [问题描述] 每个航班记录包括八项,分别是:航班号、起点站、终点站、航班期、起飞时间、到达时间、机型以及票价。设计该航班信息系统,实现飞机航班信息的插入、删除、查询与...
  • 信息工程系 课程设计报告书 所属课程名称 C 语言程序设计 专业班级 : 150311 学生姓名曾传凤 学 号 15031102 长春工业大学人文信息学院 2016 年 9 月 9 日 1 课程设计成绩评定表 项 目 得 分 平时表现 及设计完成...
  • 课程设计报告 课程设计名称 C 程序设计 系 别 学 生姓名 班 级 学 号 成 绩 指 导教师 开 课 时 间 2011-2012学年二学期 第一章 菜单设计 . 1.1 目及要求 1 1.2 思路 3 1. 3 流程 4 1. 4 具体 4 1.5 程序运行截 7 第...
  • 湖南文理院学 二一学年 第 二 学期 电气与信息工程学院 课程设计报告书 课程名称 C语言课程设计 班 级 通信09102班 学 号 200916020216 姓 名 颜文武 指导老师 张晓虎 二一年 十月 通讯录管理系统 需求分析 设计题目...
  • 面向过程程序设计 课 程 设 计 课程名称学生宿舍管理系统 院 系 班 级 学 号 姓 名 指导教师 目录 引言.2 课程设计任务书.3 设计目的 设计要求 课程设计报告装订内容及顺序 设计题目 程序设计说明书.3 课程设计目的...
  • 语言课程设计报告C 目图书信息管理系统设计 题 河南理工大学计算机学院 录目 题目与要求 第一章1.1 问题提出1 1.2 本系统涉及地知识点1 1.3 功能要求1 功能设计第二章 2.1 算法设计1 2.2 部分模块流程图4 第三章 ...
  • C语言课程总结.pdf

    2020-09-07 13:03:28
    过 程 考 核 卷 三 课程小论文 班级 学号 姓名 考核成绩 程序设计语言 I 课程学习总结报告 C 语言是一门最基础的程序设计语言刚接触它时比较讨厌因为什么都不会不过后来 慢慢体会到了它的乐趣所在开始慢慢喜欢上 C ...
  • C语言课程总结.docx

    2020-11-08 21:22:58
    过 程 考 核 卷 三 程 小 文 班 学号 姓名 考核成 程序设计语言 I 课程学习总结报告 言是一 最基 的程序 言 接触它 比 因 什么都不会不 后来慢慢 体会到了它的 趣所在开始慢慢喜 上 C 言 在 C 言大学教程第一章里面...
  • c语言程序报告总结 附表2 C++(或C)语言课程设计总结报告 源代码 /* 学生通讯录管理系统能够实现对通讯录的内容进行创建显示查询删除以及 修改等功能 */ # include # include # include # include # define N 100 ...
  • c语言报告总结.docx

    2020-07-29 15:27:35
    c语言报告总结 篇一c语言实训总结报告 125041330 实习报告书 防灾科技学院灾害信息工程系 20XX年制 实习目的 本课程是信息管理与信息系统专业的一门专业必修课 程是学生学习完 C语言程序设计专业基础课程后进一步 ...
  • 实用文档 课程设计报告 课程类别本科 课程名称程序设计基础 C语言 课程代号指导教师 银行 ATM自动取款机系统课程设计 姓名 学号 姓名 学号 姓名 学号 学院 班级 标准文案 实用文档 目 录 1. 课程设计内容 . 2. 课程...
  • 成 绩 C 语言程序设计 课程设计报告 专 业 班 级 姓 名 指导教师 二零一二年十二月 二十六日 . . 目 录 一设计题目2 二设计 目的2 三设计内容2 3.1 需求分析2 3.2 概要设计3 3.3 详细设计6 3.5 编写过程中遇到的...
  • 3.写课程设计报告(要求正规打印,A4 幅面,双面打印),内容 包括:  封面(以附件格式为主)  课程设计题目、内容、要求。  总体设计(包含几大功能...
  • 声明:本课程报告比较简陋,仅供学习参考哦!!(源码见文章末尾) 目录 1. 引言 1.1 研究背景 1.2 研究意义 2. 需求分析 3.概要设计设计 3.1 功能模块设计 3.2 主函数的流程设计 4. 详细设计和实施 4.1 ...

    声明:本课程报告比较简陋,仅供学习参考哦!!(源码见文章末尾)


    目录

    1. 引言

    1.1  研究背景

    1.2  研究意义

    2. 需求分析

    3. 概要设计设计

    3.1 功能模块设计

    3.2 主函数的流程设计

    4.  详细设计和实施

    4.1 主界面设计

    4.2 录入信息

    4.3 查询信息

    4.4 修改信息

    4.5 添加学生

    4.6 删除学生信息

    4.7 统计学生信息

    5.   测试数据与测试结果

    5.1 系统测试

    5.2 问题分析

    5.3 总结

    参考文献


     

    1. 引言

    1.1  研究背景

    随着科技的不断发展,计算机的应用领域越来越广。在我国的各类学校,尤其是高等院校,近些年由于阔招生员,大大增加了学校的管理体制的负担,管理信息系统已经进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的,统一的系统。因此,开发一套适合、 兼容性好的系统是很有必要的。

    1.2  研究意义

    根据开发要求,学生成绩管理系统全要应用于教育系统,完成对学生成绩信息的计算机管理,使学院职员工轻工作压力,同时,可以减少劳动力的使用,加快查询速度、加强管理,加快国家和部门关于信息化的步伐,使管理更加规范化。学生成绩管理系统是时代发展的必然产物。

    2. 需求分析

    编写一个学生成绩管理系统,每个学生信息包括:姓名、学号、C语言、编译原理、数据库以及离散数学的成绩。具体功能如下:

    (1)创建学生信息并以磁盘文件保存;

    (2)读取磁盘文件并显示输出所有学生的成绩;

    (3)按学号或姓名查询成绩;

    (4)添加成绩记录;

    (5)修改指定姓名或学号的学生的成绩并可存盘;

    (6)删除指定姓名或学号的学生成绩并可存盘;

    (6)只显示C语言成绩60分以下、60~79、80~89、90分以上各分数段的学生信息;

    (7)打印所有学生成绩单。

    3. 概要设计设计

    3.1 功能模块设计

    功能模块如下图1所示:

                                                                                             图1 功能模块结构图

    3.2 主函数的流程设计

    (1)主界面系统

      可分别输入0—7数字来实现对学生信息的执行。各个按键的功能如下:

    “0”:可退出程序;

    “1”:录入信息,调用input()函数;

    “2”:查询信息,先调用search()函数,根据姓名或学号分别调用xingming()和xuehao()函数;

    “3”:修改信息,先调用modiway()函数,根据姓名或学号分别调用modify1 ()和modify2()函数;

    “4”:添加学生信息,直接调用insert()函数;

    “5”:删除学生信息,先调用deleteway()函数,根据姓名或学号分别调用delete1 ()和delete2()函数;

    “6”:显示打印成绩,直接调用print()函数;

    “7”:统计C语言成绩,直接调用count()函数。

     

    4.  详细设计和实施

    4.1 主界面设计

    (1)  功能介绍

    本模块主要是调用以上每个自定义函数,在界面中输入相对应的数字便可进入相关模块。保证了本程序的完美运行。

    (2)  关键函数及其描述

    void main()

    {

        char ch;

        while(1)

        {

          menu();// 显示菜单

          ch=getch();//选择菜单

          if(ch=='0')

              break;

          switch(ch)//判断功能项

          {

          case '1':input();break;

          case '2':search();break;

          case '3':modiway();break;

          case '4':insert();break;

          case '5':deleteway();break;

          case '6':print();break;

          case '7':count();break;

          }

        }

        printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");

    }

    4.2 录入信息

    (1)功能简介

    该模块主要实现学生信息的录入。在界面中输入“1 ”进入学生成绩的录入,录入信息是一直到姓名为“End”时结束录入。

    (2)流程图

    录入信息模块流程图如图2所示:

                                                                                      图2 录入信息

     

    (3) 关键代码及其描述

    void input()

    {

        FILE *fp;

        stu xs;           /*定义一个结构体变量来装从文件中读出来的数据*/

        if((fp=fopen("student.dat","ab"))==NULL)  //判断文件能否打开

        {

           printf("can't open the file!\n");exit(0);     //正常退出

        }

        printf("\n录入格式: 姓名 学号 C语言 编译原理 数据库 离散数学 \n");

        printf("当输入姓名为<End>结束录入\n");

        while(1)                               

        {

            scanf("%s",xs.name);

            if(strcmp(xs.name,"End")==0) break; //判断姓名是否为END,用字符串判断

            scanf("%d%f%f%f%f",&xs.num,&xs.c,&xs.by,&xs.sjk,&xs.lssx);

            fwrite(&xs,sizeof(stu),1,fp);        //将成绩信息写入文件

        }

        fclose(fp);

    }

    4.3 查询信息

    (1) 功能简介

    本模块先定义了学生姓名和学号两项信息,然后再自定义一个search函数,利用switch函数来通过这两种方式来查询。在界面中输入“2”进入查询信息模块。接着输入“1”则是按姓名查询,输入“2”则是按学号查询。

    (2)流程图

    查询信息模块流程图如图3所示:

     

                                                                                      图3 查询信息

    (3) 关键代码及其描述

    void search()

    {

           char ch1;

           system("cls");

        printf("请选择何种方式查询<编号>:\n");

        printf("1->姓名,2->学号:");

        ch1=getchar();              /*用字符接收*/

        switch(ch1)                 /*判断*/

      {

        case '1':xingming();break;

        case '2':xuehao();break;

      }

    getch(); 

    4.4 修改信息

    (1) 功能简介

    本模块主要实现修改学生信息的功能,modify1和modify2分别定义两种修改信息的方式,然后利用modiway函数,使用switch函数判断选择修改的方式,在界面中输入“3”进入修改成绩模块,接着输入“1”则是按姓名修改成绩,输入“2”则是按学号修改成绩。

    (2)流程图

    修改信息模块流程图如图4所示:

                                                                                     图4 修改信息

     

    (3) 关键代码及其描述

    void modiway()

    {

        char ch1;

        system("cls");

        printf("请输入按何种方式修改<编号>:\n");

        printf("1->姓名,2->学号:");

        ch1=getchar();       /*用字符接收*/

        switch(ch1)          /*判断*/

           {

          case '1':modify1();break;

          case '2':modify2();break;

           }

     

        getch();/*让屏幕停留同时按任意键返回*/

    }

    4.5 添加学生

    (1)功能简介

    本模块主要实现了学生的添加,在界面中输入“4”进入添加学生模块,依次输入姓名、学号、C语言,编译原理,数据库以及离散数学成绩、和插入的位置。

    (2)流程图

    添加学生模块流程图如图5所示:

                                                                                     图5 添加学生

     

    (3) 关键代码及其描述

    void insert()

    {

           int i=0,j,k,lenth;

        FILE *fp;

        stu s,xs[N];

        system("cls");

        printf("\n请输入添加的学生的姓名:");

           scanf("%s",&s.name);

        printf("\n学生的学号:");scanf("%d",&s.num);

        printf("\n学生的成绩:C语言、编译原理、数据库、离散数学:");scanf("%f %f %f %f",&s.c,&s.by,&s.sjk,&s.lssx);

        printf("\n请输入插入到第几行:");scanf("%d",&k);

        if((fp=fopen("student.dat","rb"))==NULL)

           {

               printf("can't open the file!\n");exit(0);

           }

        while(!feof(fp))

           {

            fread(&xs[i],sizeof(stu),1,fp);/*把数据读入到结构体数组中*/

            if(feof(fp)) break;

            i++;

           }

        fclose(fp);

        lenth=i;                            //记录此时lenth最大

        if(k<lenth && k>=0)                 /*k的位置要位于数组范围之内*/

           {

           for(j=lenth-1;j>=k;j--)

               xs[j+1]=xs[j];               /*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/

               xs[k]=s;                     /*将输入的学生信息加入这个k位置*/

               lenth++;                   //增加一个学生空间,否则会少一个数据

           if((fp=fopen("student.dat","wb"))==NULL)

              {

                   printf("不能建立文件!!\n");exit(0);

              }

           for(i=0;i<lenth;i++)

           fwrite(&xs[i],sizeof(stu),1,fp);  //存入数据

           }

        else/*不再数组范围之内*/

           {

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

                  {

                  printf("不能建立文件!!\n");exit(0);

                  }

        fwrite(&s,sizeof(stu),1,fp);

           }

           fclose(fp);

    }

    4.6 删除学生信息

    (1) 功能介绍

    根据学生的姓名或学号来删除学生的信息,在主界面点击“6”,接着选择删除学生信息的方式。

    (2)删除学生模块流程图如图6所示:

                                                                                     图6 删除学生

    (3) 关键代码及其描述

    //删除:输入学生学号,若该学生存在,则删除,并显示删除后余下的学生成绩信息

    void deleteway()

    {

        char ch1;

        system("cls");

        printf("请输入按何种方式删除:\n");

        printf("1->姓名,2->学号:");

        ch1=getchar();/*用字符接收*/

        switch(ch1)/*判断*/

           {

           case '1':delete1();break;

        case '2':delete2();break;

           }

           getch();/*让屏幕停留同时按任意键返回*/

    }

    4.7 统计学生信息

    (1) 功能介绍

    本模块主要实现了对学生成绩的统计,对不同分数段的学生进行划分并逐个显示。在界面中输入“6”,则进入统计学生信息模块。按任意键退出。

    (2)流程图

    统计学生模块流程图如图7所示:

                                                                                    图7 统计学生

    (3)  关键代码及其描述

    void count()

    {

    int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;

    stu s[N], *p1[N],*p2[N],*p3[N],*p4[N];   /*用指针数组*/

    fread(&s[i++],sizeof(stu),1,fp);         /*读入数据*/

    t=i;i=0;

    for(u=0;u<t;u++)/*以下每个指针数组用于指向各分数段的学生信息*/

    {

    if(s[i].c<60) {p1[j++]=&s[i++];continue;

    } /*每个学生信息只能位于一个分数段,各分数段都是如此*/

    printf("不及格:姓名 学号 C语言\n");

    printf("%10s %6d %6.2f\n",p1[n]->name,p1[n]->num,p1[n]->c}//显示指针内的信息

    //显示不及格学生成绩,各分数段都是如此

     

    5.   测试数据与测试结果

    5.1 系统测试

    (1)主界面设计

    具体效果如图8所示。

     

                                                                                   图8 主函数界面

    (2)学生成绩信息录入测试

    学生成绩录入界面如图9所示。

                                                                                      图9 学生成绩录入

    (3) 查询信息系统测试

        可以通过姓名和学号两种方式来查询信息。图10为通过姓名来查询,图11为通过学号来查询。

                                                                                   图10姓名查询

                                                                                   图11学号查询

    (4) 修改信息系统测试

         可以通过学生姓名和学号来修改信息,图12为通过姓名修改信息,图13为通过学号来修改信息。

                                                                                   图12 姓名修改

                                                                                   图13 学号修改

    (5)添加学生系统测试

    添加学生的界面如图14所示。

                                                                                   图14 添加学生

    (6)删除学生信息系统测试

    可以通过学生姓名和学号来删除学生信息,图15为通过姓名修改信息,图16为按学号删除学生信息。最终看下所剩下的学生信息,如图17所示:

                                                                                   图15 按姓名删除

                                                                                   图16按学号删除

                                                                                   图17查询删除后的信息

     

     

    (7)显示成绩系统测试

    对添加、修改、删除学生信息的所有学生成绩单进行统计打印,具体如图18所示:

                                                                                   图18 显示打印成绩

    (8)统计成绩系统截图

         因为C语言课程需要单独统计学生成绩情况,所以对学生C语言成绩进行分类。具体的统计后界面如图19所示。

                                                                                   图19 统计C语言

    5.2 问题分析

    1、编写程序的过程中有很多问题,首先就是总的大体布局,该如何构造函数,该构造哪些函数……解决的办法其实也很简单,大概看书上的学生信息管理系统的布局,然后根据自己的构思在纸上简单写出来。最好先画好流程图,然后才慢慢地编写程序。

    2、接着就有很多小问题接踵而来,虽然这只是个小程序,但是运用的东西还真不少。整个程序中都需要定义文件指针,这就需要对文件指针的概念及运用有着深入的了解。这就需要看书了,具体的细节就需要百度来获取了。例如while(!feof)就是读取文件失败的情况。还有fread和fwrite的格式。而且本程序中大部分都运用指针,对于指针的运用,还不能熟练的掌握,例如P1[i++]=&s[i++],将s[i++]赋值给指针P1,这就需要对指针的表示和指针所指向的内容要了解。

    3、除了指针,还有struct结构体类型的定义。每一个地址对应必须要准确,稍不留意就会出错。例如在printf()和scanf()中,后面的地址就容易出错。尤其地址符&经常会忘。这就需要自己细心,反复编译查找出错的地方。

    4、另外,再录入信息时,需要输入一定的数据后中断程序。一时不清楚如何解决,百度了一下。可以利用strcmp函数来检查name是否与LAST一致,一致后就可以中断程序。并且在使用strcmp函数时要注意字符要加引号,而引用的变量可不加。

    5、还有就是如何保存修改后的学生的成绩,之前无论如何都保存不了学生信息,后来查了百度,可以利用“fseek(fp,-sizeof(stu),1);fwrite(&xs,sizeof(stu),1,fp”,这就可以覆盖之前的信息并显示修改后的信息。

     

    5.3 总结

    通过本次实训,我对C语言程序设计有了更深入的了解。虽然实训的只有两天,但是从上周我就开始考虑并设计程序了。C语言是真的有趣,复杂却有条理的代码是真的有意思。虽然免不了枯燥乏味,但是将程序编写出来是非常有成就感的。本次实训我选择这个题目,就是因为题目中包含C语言,想着如何将这个程序编好,作为我学习C语言的结束的标志。在编写程序的过程中,当然陆陆续续地出现很多问题,出了参观以下别人写的程序外,还得专门百度来解决个别问题,这样就可以深入地了解这个问题,处理起来就比较容易。尤其对文件有了更深入的了解。更重要的是,通过这次实训,培养了自己的逻辑能力和独立思考的能力,我想这个才是最重要的。

     

     

    参考文献

    [1] 陈珂,陈静.实用C语言程序设计教程.中国电力出版社.2016.6

    [2] 谭浩强.软件工程导论[M].清华大学出版社,2013.6

    [3] 姜仲秋. C语言程序设计.南京大学出版社,1998.1.

    [4] K.N.King. C语言程序设计.人民邮电出版社.1998.2

     

    参考源码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #define N 20
    typedef struct
    {
      char name[10];
      int num;
      float c;
      float by;
      float sjk;
      float lssx;
    }stu;
    void menu() 
    {
       system("cls");  //清屏
       printf("\n\n\n\n\t\t\t*********   学生成绩管理系统  ***********\n");
       printf("\t\t\t             Time:2020年6月6日              \n");       
       printf("\t\t\t|==========================================|\n");
       printf("\t\t\t|*************1.  录入信息  ***************|\n");
       printf("\t\t\t|*************2.  查询成绩  ***************|\n");
       printf("\t\t\t|*************3.  修改信息  ***************|\n");
       printf("\t\t\t|*************4.  添加学生  ***************|\n");
       printf("\t\t\t|*************5.  删除成绩  ***************|\n");
       printf("\t\t\t|*************6.  显示成绩  ***************|\n");
       printf("\t\t\t|*************7.    统计    ***************|\n");
       printf("\t\t\t|*************0.    退出    ***************|\n");
       printf("\t\t\t|==========================================|\n");
       printf("\t\t\t|******************************************|\n");
       printf("\n\n\t\t\t      请选择相应的功能<输入编号>:");
    }
    //录入信息
    
    void input()
    {
        FILE *fp;
        stu xs;                                   /*定义一个结构体变量来装从文件中读出来的数据*/
        if((fp=fopen("student.dat","ab"))==NULL)  //判断文件能否打开
    	{
    	   printf("can't open the file!\n");exit(0);     //正常退出
    	}
        printf("\n录入格式: 姓名 学号 C语言 编译原理 数据库 离散数学 \n");
    	printf("当输入姓名为<End>结束录入\n");
        while(1)                                
    	{
            scanf("%s",xs.name);
            if(strcmp(xs.name,"End")==0) break;   //判断姓名是否为LAST,用字符串判断
            scanf("%d%f%f%f%f",&xs.num,&xs.c,&xs.by,&xs.sjk,&xs.lssx);
            fwrite(&xs,sizeof(stu),1,fp);        //将成绩信息写入文件
    	}
        fclose(fp);
    }
    //姓名定义
    
    void xingming()
    {
        FILE *fp;
        stu xs;
        char name[10];
        printf("\n请输入需要查询的学生姓名: ");
    	scanf("%s",name);
        if((fp=fopen("student.dat","rb"))==NULL) 
    	{
    	   printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))                           //判断文件是否到达末尾,即读取文件失败时
    	{
            fread(&xs,sizeof(stu),1,fp);
            if(strcmp(xs.name,name)==0)//按姓名查询时判断输入的姓名是否存在,会循环从数据中找取
    		{
               printf(" 学生的信息如下:\n");
               printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
               printf("%10s %6d %6.2f %6.2f   %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
               break;
    		}
    	}
        if(feof(fp))
    		printf("ERROR,查找失败!!!"); /*学生不存在*/
        fclose(fp);
    }
    
    //学号定义
    
    void xuehao()
    {
        FILE *fp;
        stu xs;
        int num;
        printf("\n请输入需要查询的学生学号: ");
    	scanf("%d",&num);
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&xs,sizeof(stu),1,fp);
            if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/
    		{
                 printf(" 学生的信息如下:\n");
               printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
               printf("%10s %6d %6.2f %6.2f   %6.2f   %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
                 break;
    		}
    	}
         if(feof(fp)) 
    		 printf("ERROR,查找失败!!!");
         fclose(fp);
    }
    
    //查询
    
    void search()
    {
    	char ch1;
    	system("cls");
        printf("请选择何种方式查询<编号>:\n");
        printf("1->姓名,2->学号:");
        ch1=getchar();              /*用字符接收*/
        switch(ch1)                 /*判断*/
      {
        case '1':xingming();break;
        case '2':xuehao();break;
      }
    getch();                       /*让屏幕停留同时按任意键返回*/ }
    
    //修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;
    
    void modify1()
    {
    
        stu xs;
        FILE *fp;
        char name[10];
        printf("\n请输入要修改的学生姓名: ");
    	scanf("%s",name);
        if((fp=fopen("student.dat","rb+"))==NULL)
    	{
         	printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
             fread(&xs,sizeof(stu),1,fp);
             if(strcmp(xs.name,name)==0)                      /*判断输入要修改的姓名是否存在*/
    		 {
                printf(" 修改前学生的信息:\n");
                printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
                printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
                printf("\n请依次输入 C语言 编译原理 数据库 离散数学的成绩:");
    			scanf("%f%f%f%f",&xs.c,&xs.by,&xs.sjk,&xs.lssx);
                break;
    		 }
    	}
        if(!feof(fp))
    	{
             printf(" \n 修改后的学生的信息如下:\n");
             printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
             printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
    		 fseek(fp,-sizeof(stu),1);   //负号表示后退,1表示文件当前位置
    		 fwrite(&xs,sizeof(stu),1,fp);  //再重新写入,同时把之前的要修改的覆盖掉
    	}
        else
             printf("\nERROR,学生不存在,修改失败!!");
        fclose(fp);
    	getch();
        
    }
    
    //修改:输入学生的学号,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;
    
    void modify2()
    {
        stu xs;
        FILE *fp;
        int num;
        printf("\n请输入要修改的学生学号: ");
    	scanf("%d",&num);
        if((fp=fopen("student.dat","rb+"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
    
        while(!feof(fp))
    	{
           fread(&xs,sizeof(stu),1,fp);
             if(xs.num==num)/*判断输入要修改的姓名是否存在*/
    		 {
                printf(" 修改前学生的信息如下:\n");
                printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
                printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
                printf("\n请依次输入C语言 编译原理 数据库以及离散数学的成绩:");
    			scanf("%f%f%f%f",&xs.c,&xs.by,&xs.sjk,&xs.lssx);
                break;
    		 }
    	}
        if(!feof(fp))
    	{
            printf(" \n 修改后的学生的信息如下:\n");
             printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
             printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
    		fseek(fp,-sizeof(stu),1);
    		fwrite(&xs,sizeof(stu),1,fp);
    	}
        else
            printf("\nERROR,学生不存在,修改失败!!");
    	getch();
        fclose(fp);
        
    }
    //选择修改方式
    void modiway()
    {
        char ch1;
        system("cls");
        printf("请输入按何种方式修改<编号>:\n");
        printf("1->姓名,2->学号:");
        ch1=getchar();       /*用字符接收*/
        switch(ch1)          /*判断*/
    	{
          case '1':modify1();break;
          case '2':modify2();break;
    	}
    
        getch();/*让屏幕停留同时按任意键返回*/ 
    }
    
    //插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果
    void insert()
    {
    	int i=0,j,k,lenth;
        FILE *fp;
        stu s,xs[N];
        system("cls");
        printf("\n请输入添加的学生的姓名:");
    	scanf("%s",&s.name);
        printf("\n学生的学号:");scanf("%d",&s.num);
        printf("\n学生的成绩:C语言、编译原理、数据库、离散数学:");scanf("%f %f %f %f",&s.c,&s.by,&s.sjk,&s.lssx);
        printf("\n请输入插入到第几行:");scanf("%d",&k); 
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&xs[i],sizeof(stu),1,fp);/*把数据读入到结构体数组中*/
            if(feof(fp)) break;
            i++;
    	}
        fclose(fp);
        lenth=i;                            //记录此时lenth最大
        if(k<lenth && k>=0)                 /*k的位置要位于数组范围之内*/
    	{
           for(j=lenth-1;j>=k;j--)
               xs[j+1]=xs[j];               /*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/
               xs[k]=s;                     /*将输入的学生信息加入这个k位置*/
               lenth++;                   //增加一个学生空间,否则会少一个数据
           if((fp=fopen("student.dat","wb"))==NULL)
    	   {
    	        printf("不能建立文件!!\n");exit(0);
    	   }
           for(i=0;i<lenth;i++)
           fwrite(&xs[i],sizeof(stu),1,fp);  //存入数据
    	}
        else/*不再数组范围之内*/
    	{
            if((fp=fopen("student.dat","ab"))==NULL) 
    		{
    	       printf("不能建立文件!!\n");exit(0);
    		}
        fwrite(&s,sizeof(stu),1,fp);
    	}
    	fclose(fp);
    }
    
    //显示
    
    void print()
    {
        FILE *fp;
        stu s;
        system("cls");
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        printf("\n%10s %s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
        while(!feof(fp))
    	{
            fread(&s,sizeof(stu),1,fp);  //从文件中读取成绩信息
               if(feof(fp)) break;       //判断是否文件尾
                  printf("%10s %4d %6.2f %6.2f  %6.2f  %6.2f \n",s.name,s.num,s.c,s.by,s.sjk,s.lssx);
    	}
        fclose(fp);
        getch();
    }
    
    //删除:输入学生姓名,若该学生存在,则删除,并显示删除后余下的学生成绩信息
    
    void delete1()
    {
    
        stu xs[N];
        FILE *fp;
        char name[10];
        int i=0,len,k=-1/*k<0是为后面if判断用的*/;
        system("cls");
        printf("\n请输入要删除的学生姓名: ");scanf("%s",name);
        if((fp=fopen("student.dat","rb+"))==NULL) 
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
           fread(&xs[i],sizeof(stu),1,fp);
           if(feof(fp)) break;
           if(strcmp(xs[i].name,name)==0) k=i;
           i++;
    	}
        fclose(fp);
    
    //以下是删除后重新写文件
    
        len=i;/*结构体数组上限*/
        if(k>=0)/*k>0说明找到删除学生位置*/
    	{
          if((fp=fopen("student.dat","wb+"))==NULL) 
    	  {
    	      printf("can't open the file!\n");exit(0);
    	  }
          for(i=0;i<len;i++)
    	  {
          if(i==k) continue;/*从这个位置开始写入*/
          fwrite(&xs[i],sizeof(stu),1,fp);
    	  }
          fclose(fp);
    	}
          else {printf("ERROR,删除失败!!!\n");getch();} /*失败后重新返回菜单*/
          print();
    }
    
    
    //删除:输入学生学号,若该学生存在,则删除,并显示删除后余下的学生成绩信息
    
    void delete2()
    {
        stu xs[N];
        FILE *fp;
        int num;
        int i=0,len,k=-1/*k<0是为后面if判断用的*/;
        system("cls");
        printf("\n请输入要删除的学生学号: ");
    	scanf("%d",&num);
        if((fp=fopen("student.dat","rb+"))==NULL) 
    	{
    	printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&xs[i],sizeof(stu),1,fp);
            if(feof(fp)) break;
            if(xs[i].num==num)
    			k=i;
                i++;
    	}
        fclose(fp);
    //以下是删除后重新写文件
    
        len=i;/*结构体数组上限*/
        if(k>=0)/*k>0说明找到删除学生位置*/
    	{
        if((fp=fopen("student.dat","wb+"))==NULL) 
    	{
    	     printf("can't openfile!\n");exit(0);
    	}
        for(i=0;i<len;i++)
    	{
           if(i==k) continue;/*从这个位置开始写入*/
           fwrite(&xs[i],sizeof(stu),1,fp);
    	}
        fclose(fp);
    	}
        else {printf("ERROR,删除失败!!!\n");getch();} /*失败后重新返回菜单*/
        print();
    }
    
    
    //删除
    
    void deleteway()
    {
        char ch1;
        system("cls");
        printf("请输入按何种方式删除:\n");
        printf("1->姓名,2->学号:");
        ch1=getchar();/*用字符接收*/
        switch(ch1)/*判断*/
    	{
    	case '1':delete1();break;
        case '2':delete2();break;
    	}
    	getch();/*让屏幕停留同时按任意键返回*/
    }
    
    //统计C语言成绩情况
    
    void count() 
    {
        int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;   //j,k,m,l分别是指各个分数段,n,p,q,r也是
        FILE *fp;
        stu s[N], *p1[N],*p2[N],*p3[N],*p4[N];/*用指针数组*/
        system("cls");
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&s[i++],sizeof(stu),1,fp);/*读入数据*/
            if(feof(fp)) break;  //到文件末尾中断程序
    	}
        t=i;i=0;           //t 指最大
        for(u=0;u<t;u++)/*以下每个指针数组用于指向各分数段的学生信息*/
    	{
            if(s[i].c<60) 
    		{
    			p1[j++]=&s[i++];continue;
    		}                                     /*每个学生信息只能位于一个分数段*/
            if(s[i].c>=60 && s[i].c<80) 
    		{
    			p2[k++]=&s[i++];continue;
    		}
            if(s[i].c>=80 && s[i].c<90) 
    		{
    			p3[l++]=&s[i++];continue;
    		}
            if(s[i].c>=90)
    		{
    			p4[m++]=&s[i++];continue;
    		}
    	}
        printf("     不及格:姓名 学号 C语言\n");
        for(n=0;n<j-1;n++)
    	{
            printf("%14s %4d %6.2f\n",p1[n]->name,p1[n]->num,p1[n]->c);      //逐个显示个分数段信息,显示上面指针的内容
    	}
        printf(" 60-79分之间:姓名 学号 C语言\n");
        for(p=0;p<k;p++)
    	{
            printf("%16s %4d %6.2f\n",p2[p]->name,p2[p]->num,p2[p]->c);
    	}
        printf(" 80-89分之间:姓名 学号 C语言\n");
        for(q=0;q<l;q++)
    	{
            printf("%16s %4d %6.2f\n",p3[q]->name,p3[q]->num,p3[q]->c);
    	}
        printf("90以上:姓名 学号 C语言\n");
        for(r=0;r<m;r++)
    	{
            printf("%12s %4d %6.2f\n",p4[r]->name,p4[r]->num,p4[r]->c);
    	}
        fclose(fp);
        getch();
    }
    
    
    //菜单选择
    
    void main()
    {
    	char ch;
        while(1)
    	{
          menu();// 显示菜单
          ch=getch();//选择菜单
          if(ch=='0') 
    		  break;
          switch(ch)//判断功能项
    	  {
          case '1':input();break;
          case '2':search();break;
          case '3':modiway();break;
          case '4':insert();break;
    	  case '5':deleteway();break;
          case '6':print();break;
    	  case '7':count();break;
    	  }
    	} 
    	printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");
    }
    

     

    展开全文
  • 项目案例报告 课程名称 程序设计基础 院 系 计算机科学与信息工程学院 学生姓名 李飞 学 号 13031110124 专业班级 网络工程 指导教师 周 晏 2013 年 12 月 案例一 案例内容 编程判定从键盘输入 n 个数据互不相等 ...
  • 课程设计报告结构及要求 (课程设计报告要求打印,用小4号宋字,行距1.5倍,A4纸,上下左右各留边距20mm。) (1)封面(按学校统一规定格式) 封面包括:题目、学院、专业、班级、学号、学生姓名、指导教师及时间 ...
  • 设计题目猜数字游戏 目 录 目录 目录- 1 - 1 程序分析与设计2 1.1 功能分析与任务分配2 功能分析2 1.2 流程图2 1.3 数据结构4 2 详细设计4 3 参考文献5 4 附录5 5 总结错误未定义书签 C程序设计课程设计实验报告 1 ...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

c语言课程设计报告总结

c语言 订阅