c语言课程设计报告答辩上交

合集下载

C语言课程设计报告(最终版)

C语言课程设计报告(最终版)

C语言课程设计报告题目:网络收费管理系统设计班级:计 111学号:110773110776110768姓名:李洋宇葛一波叶博兴成绩:2012 年7 月1 日·北京课程设计任务书一、基本要求1.1 设计目的课程设计是C语言理论课程的延伸,要求学生综合运用C语言知识,如数组、指针、函数、结构体、文件等,完成一个综合应用程序的开发。

锻炼学生分析问题解决问题的能力,知识的综合运用能力和团队合作的能力。

1.2 设计时间设计时间2周,集中上机,同学利用上机时间查阅资料,编制程序,完成设计。

为方便同学答疑,安排部分学时的集中上机辅导,每班配备两名指导教师。

1.3 设计要求1.每个班分成若干组,每组2~3名同学,指定组长。

2.以组为单位,组内同学共同完成一个题目,由组长确定组内成员的分工。

3.按时参加集中辅导,记考勤。

4.按时提交设计报告,按时参加验收和答辩。

5.每组提交《计算机程序设计基础(C语言)课程设计》设计报告1份及电子版源程序。

1.4 成绩评定方法1.课程设计成绩为五级分制,由平时上机情况、验收答辩、设计报告三部分组成。

2.答辩按组进行,先由组长介绍组内设计情况,演示程序,验收。

各成员独立答辩,答辩缺席者成绩为不及格。

3.课程设计报告,组员按照分工完成部分功能的报告撰写,由组长整理综合。

打印用A4纸。

1.5设计报告结构及要求(详见附录:设计报告模板)1.6 推荐的参考资料1. 苏小红等.C语言大学实用教程.电子工业出版社.20042. 苏小红等.C语言大学实用教程习题与实验指导.电子工业出版社.20043. 徐金梧等.TURBO C实用大全.机械工业出版社. 19964. 郭翠英等.C语言课程设计案例精编.中国水利水电出版社.20045. 谭浩强.C语言程序设计教程.高等教育出版社.19986. 崔武子.C程序设计辅导与实训. 清华大学出版社.20047. 有关TURBO C库函数使用的书籍8. 有关TURBO C编程的书籍9. 互联网上查阅相关资料题目:网络收费管理系统设计功能:实现简单的网络收费信息管理,基本信息包括学生的帐号、姓名、密码、余额等信息基本要求:1.设计简单的菜单,能够进行系统功能选择。

c语言课程设计设计报告

c语言课程设计设计报告

c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

(]1.2 实验要求在报告中记录建立、保存C程序实习过程。

1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。

第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。

()(2)通过编程进一步理解和掌握运算符的确切含义和功能。

2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。

c语言课程设计报告

c语言课程设计报告

c语言课程设计报告c语言课程设计报告在现在社会,我们都不可避免地要接触到报告,报告成为了一种新兴产业。

那么报告应该怎么写才合适呢?以下是店铺收集整理的c语言课程设计报告,欢迎阅读与收藏。

c语言课程设计报告11、题目要求◆ 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、居住街道、省份、城市、电子邮箱等;◆ 能够提供添加、删除和修改通讯录信息的功能;◆ 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆ 将通讯录保存在文件中;◆ 能够按表格方式输出通讯录信息。

2、需求分析本程序将用到文件系统,其中单行内容代表一张纸条。

程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。

3、总体设计根据项目的任务要求及以上分析,在设计方法上,采用模块化的程序设计思想,即将通讯录管理系统划分为数据输入模块,数据查询模块,数据修改模块,数据插入模块,数据删除模块,,并对每个模块按照其功能分别独立完成对应的程序设计。

在数据处理上,各模块中的数据处理(如数据读/写操作)均用文件形式来实施,并在主程序中完成操作界面的设计功能,设计思路如下:1、采用模块设计思想;2、将通讯录信息定义成结构体类型,并通过文件实施数据操作;3、通过设计一菜单界面完成具体操作。

4、详细设计c语言课程设计报告2一、传统C语言课程设计教学模式C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。

但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。

语言结课答辩 (修订)

语言结课答辩 (修订)
目录
1
在这次C语言结课答辩中,我主要介绍了C语言的特点和优势、课程内容及收获、个人在课程中的表现 和体会以及对于C语言未来的展望
首先,C语言作为一种通用的编程语言,具有高效、灵活和可移植性强的特点。通过学习C语言,我深
2 入了解了计算机程序的底层机制,如内存管理、指针和文件操作等。此外,C语言在系统级编程、嵌入
01.
最后,我对C语言的未来发展充满期待。随着计算机技术的不断进步,C语言也在不断发 展和完善。我相信,在未来的学习和工作中,C语言将继续发挥其重要作用,为我们的 生活和工作带来更多的便利和价值
02.
总之,通过这次C语言的学习,我深刻认识到了C语言的魅力和价值所在。我相信,只要 我们不断学习和探索,就一定能够掌握好C语言,为未来的发展打下坚实的基础
THANKS
式系统等领域应用广泛,对于未来的职业发展具有重要意义
在课程内容方面,我主要学习了C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针
3 以及结构体等。通过大量的编程实践,我逐渐掌握了C语言的编程技巧,提高了自己的编程能力和解决
问题的能力

在课程中,我积极参与课堂讨论和课后作业,认真完成每一个编程任务。通过不断的学习和探索,我 对于C语言的认识更加深入,编程能力得到了很大的提升

c语言答辩

c语言答辩

指导老师:王凤英
答辩人:智能1901梁景泽
设计思路及方案 管理系统分为7各部分,每个部分用子函数来实现,
成果展示:
• 图一输入学生成绩及统计排名运行结果图
成果展示:
• 图二单科均分及分数段统计人数运行结果图
成果展示:
• 图三不及格学生学号及优秀学生评定运行结果图
成果展示:
• 图四分数段人数统计存入文件图
成果展示:
• 图五根据平均成绩排名存入文件图
c语言答辩题目: 学生成绩管理系统
GRADUATION SPEECHES POWERPOINT TEMPLATE
指导老师:王凤英
答辩人:智能1901梁景泽
程序功能介绍
目录
CONTENTS
不足之处
设计思路及成果展示
总结
程序功能介绍
ห้องสมุดไป่ตู้
WRITE YOUR GREAT TITLE HERE
This is a good space for a short subtitle
程序功能介绍: 本程序可以更加简洁的计算统计学生的
成绩,可以随意改变学生的人数。输入学生 学号,姓名及五门课程成绩,可以计算出每 个人的平均成绩并按平均成绩升序排名。可 计算单科的平均成绩,统计出每科不同分数 段的人数,也能输出不及格学生的学号,还 能按优秀学生标准,评选出优秀学生。
设计思路及成果展示
不足之处: 此程序部分子函数设计比较复杂,
平均成绩相同无法排出名次。对于 不及格的同学,无法统计出具体的 信息,因为不会结构体嵌套的使用方法。
总结
课程设计总结:
在这次程序编写中,让我所学的知识实践的应用到具体的编程 之中。虽然程序的大框是从网上找来的,但还是有许多地方需要 修改,因为不满足原来题目的要求。我和我的好搭档在修改写程 序的过程中遇到了许多小问题,比如程序的结果不能存放到文件 中,编译时出现的问题等等,我们互相商讨,逐一解决,最终, 一个统计学生成绩的程序可以完美运行。在编程时,有基础知识 的不牢靠,也有难度较高的地方,让我明白,只有基础知识的扎 实,才能写出好的程序。程序运行成功,欣喜之情也油然而生。 虽然只是一个程序,但那种成就感也大快人心。

c语言课程设计总结报告范文5篇

c语言课程设计总结报告范文5篇

c语言课程设计总结报告范文5篇c语言课程设计总结1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实习学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.熟悉程序开发环境、学习计算机系统的操作方法一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行C语言程序设计实习心得体会(3篇)心得体会。

所谓环境就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。

通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。

同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。

2.学习上机调试程序完成程序的编写,决不意味着万事大吉。

C语言程式的撰写答辩


執行結果 False True False True False True
執行結果 True False true
• A=5
位元邏輯運算 & | ~ ^ << >>
說明 And Or Not Xor 左移 右移
範例 A & 0x01 A | 0x80 ~a A ^ 0xff A << 1 A >> 1
無資料
3-1-4 使用者自訂的資料型態
定義為字元
char hour,minute,second,year,month,day;
定義為結構
typedef struct {
// typedef struct{
char hour;
//
資料型態 變數1;
char minute;
//
資料型態 變數1;
char second;
// 單一列的註解,最前面加上2個’/’ 多列的註解,使用/*開始,以*/結束。如下所示 /* 多列的註解 */
3-1-3 基本資料型態
資料型態 bit char unsigned char signed char int short int unsigned int signed int long int unsigned ling int signed long int float double
3-3-4 函數
函數的格式 函數型態函數名稱(參數); 變數宣告{
函數程式;
}
main(){ while(1){ P1=0x00;
C:0x081B E4 CLR A C:0x081C F590 MOV P1(0x90),A
delay(); C:0x081E 1100 ACALL delay(C:0800)

C语言程序设计课程大型作业答辩

• {4,0} /*hot spot*/
设置鼠标的移动范围
SetMouseArea(int x0,int y0,int x1,int y1) { union REGS regs;
regs.x.ax=7;regs.x.cx=x0;regs.x.dx=x1; int86(0x33,&regs;&regs); regs.x.ax=8;regs.x.cx=y0;regs.x.dx=y1; int86(0x33,&regs,&regs); }
鼠标简介
鼠标系统实际上由两个主要元素组成: 鼠标机制和称作鼠标驱动程序的内存驻 留程序。鼠标驱动程序提供与鼠标通信 所需的全部低级支持。此外,它自动维 持鼠标光标位置和发现是否按下了某个 键。一旦装入驱动程序,鼠标就可以被 随后执行的任意程序使用。
鼠标简介续
可以通过PC中断33H访问鼠标和鼠标驱 动程序的各种功能。所选择的特定函数 依赖于中断时AX寄存器的值。三个其它 寄存器(BX、CX和DX)用于把各种参数 传送给鼠标例程。同样,鼠标函数使用 这四个寄存器把鼠标的位置和按钮的状 态返回给调用函数。
取得字节某一位的值
int getbit(unsigned char byte,int bit) { if(bit<0||bit>7)
return 0; return (byte>>bit)&0x1; } 函 数 getbit 用 于 得 出 一 个 字 节 中 每 个 位 (bit)是0还是1。
显示24点阵的汉字
• 提交开发文档,说明程序的主要模块及功能、 主要数据结构及意义、程序采用的核心算法及 实现方式、小组成员的分工及完成情况
C语言高级实验班小组登记表格 小组名称

C语言课堂答辩

没有返回值的函数,可定义为“void”, 即空类型。18
第6章 函数、存储类别和编译预处理
Байду номын сангаас5.函数的说明
函数说明是指在主调函数中,调用其他函数之前对该被调函 数进行说明,目的是让编译系统对被调函数的合法性做全面说 明 形式1:类型说明符 函数名 (类型 形参,类型 形参,…); 形式2:类型说明符 函数名 (类型,类型,…); 例如: void swap(int a, int b) ; void swap(int, int) ;
printf(“This is prime number.\n”);
else
printf(“This is not prime number.\n”);
}
运行
27
第6章 函数、存储类别和编译预处理
【例6-4】用牛顿切线法求方程f(x)=x2-n=0的正根。 假设n>0,x的初值x0为1,解的精确度设为10-4。
函数定义的首部加 分号(;)
19
第6章 函数、存储类别和编译预处理
例:编程求函数1+1/2+1/3+1/4+1/5+……+1/n.
#include <stdio.h>
main( )
{ double fun(int n);
/*函数声明 */
int n ; float sum;
scanf("%d",&n);
if (n%i= =0) return 0;
return 1 ; }
26
第6章 函数、存储类别和编译预处理
#include<stdio.h> main( )
运行结果

c语言知识学习答辩

华北科技学院计算机系综合性实验实验报告课程名称程序设计语言(C)实验学期2013 至2014 学年第 2 学期学生所在系部年级2013 专业班级学生姓名学号任课教师实验成绩计算机系制_ 《计算机技术基础(C)》课程综合性实验报告开课实验室:基础实验室2010 年6 月01 日分析:根据for循环,将每个学生成绩累加进sum中,再用sum/n来计算平均值,将计算出的平均值放入字符数组str[]中,然后输出str[]。

将min,max赋予初值,即min=max=a[0][0];用for和if语句进行对每个数判断,结果如上图所示。

2、本题运用数组名作自定义函数的实参和形参,定义全局变量用于在自定义函数中的计数器。

根据正数大于0,复数小于0的规律来判断输入的数组中数字的正负情况和是否等于零。

并用条件语句进行计数器的计数。

最后输出结果。

运行结果如图:分析:运用for循环进行对输入的数组中元素进行调用,用来判断正负时,用if(a[]>0)则正数计数器自增一个数,同理if(a[]<0)则负数计数器自增一个数,零也是如此来判断。

然后在main 函数中将全局变量输出,结果如上图所示。

3、本题运用数组名作自定义函数的实参和形参,用替换的方法将删除改为替换,用后一个字符替换前一个。

这样可以实现用一个数组直接完成的目的,中间运用循环和条件语句来实现替换。

最后用全局变量来记录需要计数的字符的个数。

然后输出结果。

运行结果如图:分析:运用for循环用’\0’作为结束符进行对字符数组的调用,运用str[j++]=str[i]这个步骤进行替换字符即删除字符。

当运行到要删除的字符时j就无法自加,就可以和i差位。

这样就可以实现替换删除的功能。

最后将新的数组复制一遍给全局变量,然后输出即可,结果如上图所示。

4、本题运用数组名作自定义函数的实参和形参,用循环将最大值找出,同时在用循环将最大值的位置也找出来,这样方便将最大值与最后一个数调换,在找最大值时要将数组中的第一个数赋予定义的变量然后再进行一个一个对比寻找最大值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

青岛理工大学 《C语言程序设计》

题目 家庭财务管理系统

指导教师: 王金龙 姓名: 吴玮 学号: 201007133 班级: 网络102 专业: 网络工程 地点: 多媒体楼207 时间: 6.27 至 7.01 一、内容 家庭财务管理系统主要是对家庭成员的收入,支出,进行添加,删除,查询等操作,并能统计总收入和总支出。该软件给家庭成员提供了一个管理家庭财务的平台。 1)菜单设计:本系统提供简单易操作的界面。有提示,帮助用户根据需要对家庭财务管理系统进行操作。 2)添加模块:根据实际的收入或支出,添加相应的记录,条数不限。 3)查询模块:可以选择不同关键字输入,查找该条记录。 4)删除模块:若某条记录错误或者不需要则可以删除。 5)显示模块:按照添加的先后顺序依次把记录显示在屏幕上,并显示总收入和总支出以及余额。 6)退出模块:退出财务管理系统并保存文件。 )

二、上机环境 操作系统:windows XP 开发工具:VC6.0++

三、函数调用关系图

开始 打开文件,载入信息

菜单界面

1 添 加联系

2 查询联系3 删除联系4 显示联系0 退出

保存

结束 四、各函数功能说明 1.系统主要函数及功能。 1.)add函数:功能为添加收入或支出的记录 2.)search函数:功能为查找联系人 输入关键字,从文件中搜索相应的记录并显示出来。 3.)delete_rec函数:功能为删除记录 若某条记录错误或者不需要则可以删除。 4.)show函数:功能为显示记录,将添加的记录显示在屏幕上。 5.)quit函数:功能为保存信息退出系统。

五、算法描述 添加:在主菜单选择添加选项后,系统会依次让用户输入年月日,并且限定月份输入时要在1至12内,如果符合要求则继续执行,输完整条记录。动态链表会根据用户的使用情况动态调整内存大小。插入一个结点到已有链表后,head指向插入的结点,该结点指向head原来所指的结点。每添加一条记录后接点随即加一。 查询:在主菜单选择查询选项后,选择查询方式,1.按姓名查 2.按备注查。然后按提示输入相应的信息姓名(或备注),系统会根据信息用一个指针从这个链表的第一个结点依次往后开始查询,若某个结点符合则输出该记录的信息,若指向NULL即最后一个结点也查询完毕依然没找到,则返回主菜单。

删除:输入需要删除的姓名和金额,系统会根据信息用一个q指针从这个链表的第一个结点

依次往后开始查询,并将已查询过的结点赋给另一个p指针。若某个结点符合则显示该记录的信息,并让用户再次确认是否删除。若指向NULL即最后一个结点也查询完毕依然没找到,则则返回主菜单。如果确定删除该结点,则q所指的结点的前一个结点(即p所指的结点)指向该接点所指向的下一个结点,也就是将q所指的结点从原来的链表中分离出来。每删除一条记录后接点随即减一。 六、程序运行效果图 1.添加联系人 添加记录时限定月份在1~12月之间,否则无法添加,每添加一条记录后就返回主菜单,链表中插入了该结点。

2查询联系人 查询记录时,可以选择备注或者姓名进行查找。若选择按姓名查找,则在输入名字后,系统会根据添加的先后顺序,在屏幕上依次显示出该联系人的全部记录。

3 删除联系人 选择删除选项后,界面会让使用者输入要删除者的姓名及金额,并根据输入的信息显示该条记录,并且为了防止意外删除而有提示是否删除,经使用者再三确认后便删除该记录。

4 显示联系人

在菜单中选择显示选项后,系统会把所有的记录按照先后顺序依次逐条显示在界面上,并且还计算出了一共的收入,一共的支出及当前余额。

5退出 在菜单中选中该选项后,系统会把所有的资料都保存到文件中,然后关闭该系统。

七、总结 本次对家庭财务管理系统的编写,我遇到了许多困难。主要原因不怎么擅长使用“指针”。在添加模块中,由于没有很好的理解指针中插入的专用句子,所以脱离书本的时候根本不知怎么开始,自己想了很久也没想出来,后面翻了书,把相关的句子抄上去后死记硬背了下来。p->next=head;head=p;在添加节点数是,未强调Recordcount数据类型。在写删除模块是也遇到了类似的问题。看了书上的一个例题,里面有两个指针,可是我的代码中只有一个,怎么办呢?模仿了书上的写法,第一次以失败告终,经过很多种修改后总结出失败的原因是该指针定义错误,针对该错误,经过很多的尝试终成功了。在显示函数中,自我感觉没有错误 了,可是每次在“一共收入,一共支出,当前余额”后面都显示了一长串数字,在快放弃时终于发现自己犯了一个很可笑的错,printf语言中居然用了取地址符。在保存函数中也犯了一些常见的错,在写入文件中居然用了fscanf语句。

八、参考文献 谭浩强.C程序设计(第四版).清华大学出版社。 九、程序清单(双列排版,小五号字) #include #include #include struct F_Data { int year; //年 int month; //月 int data; //日期 float amout; //金额 char name[20]; //姓名 int type; //收入或支出类型 char comment[100]; //备注 struct F_Data*next; //定义一个指针 }; void main() { int i,w=1; void add(); void search(); void delete_rec(); void show(); do { printf("***********************************\n"); printf("欢迎使用家庭财务管理系统\n"); printf("1:添加记录\n"); printf("2:查询记录\n"); printf("3:删除记录\n"); printf("4:显示所有记录\n"); printf("0:退出\n"); scanf("%d",&i); switch(i) { case 1:add();break; case 2:search();break; case 3:delete_rec();break; case 4:show();break; } }while(w==1); }

void add() { system("cls"); /*清屏*/ int Recordcount; struct F_Data*head; struct F_Data *p=NULL; /*定义pNode为struct F_Data类型指针*/ p=(struct F_Data*)malloc(sizeof(struct F_Data)); /*运行时动态调整所占内存 的大小*/ printf("请输入年份:"); scanf("%d",&p->year); printf("请输入月份:"); scanf("%d",&p->month); if((p->month>0)&&(p->month<13)) /*限定月份为1~12 */ { printf("请输入日期:"); scanf("%d",&p->data); printf("请输入金额:"); scanf("%f",&p->amout); printf("请输入姓名:"); scanf("%s",p->name); printf("收入按1,支出按0:"); scanf("%d",&p->type); printf("请输入类型:"); scanf("%s",p->comment); p->next=head; /*插入一个结点 */ head=p; Recordcount++; /*结点数加一 */ } system("PAUSE"); /*停顿*/ } void search() { system("cls"); /*清屏*/ struct F_Data*head; char name[20]; int type; int choice; struct F_Data*p=NULL; /*定义pNode为struct F_Data类型指针*/ printf("1按姓名查找\n2按备注查找\n "); printf("请输入你的选择:"); scanf("%d",&choice); if(choice==1) { printf("请输入姓名:"); scanf("%s",name); for(p=head;p!=NULL;p=p->next) /*从链表的第一个结点到尾结点 */ if(strcmp(p->name,name)==0) /*如果输入的name和结点中的name一样 */ { printf("%d\t",p->year); printf("%d\t",p->month); printf("%d\t",p->data); printf("%.2f\t",p->amout); printf("%s\t",p->name); printf("%d\t",p->type); printf("%s\n",p->comment); } } if(choice==2) { printf("请输入类型:1收入 0支出\n "); scanf("%d",&type); for(p=head;p!=NULL;p=p->next); if(p->type==type) /*如果输入的type和结点中的type一样 */ { printf("%d\t",p->year); printf("%d\t",p->month); printf("%d\t",p->data); printf("%.2f\t",p->amout); printf("%s\t",p->name); printf("%d\t",p->type); printf("%s\n",p->comment); } } system("PAUSE"); /*停顿*/ } void delete_rec() { system("cls"); /*清屏*/ struct F_Data*head; int Recordcount; char name[20]; float amout; int choice; struct F_Data *p=NULL,*q=NULL; /*定义p和q都为struct F_Data类型指针*/ p=head; /*p指向第一个结点 */ q=head; /*q指向第一个结点 */ printf("请输入要删除者的姓名:"); scanf("%s",name); printf("请输入金额:"); scanf("%f",&amout); for(;q!=NULL;q=q->next) /*q指针从链表的第一个结点到尾结点 */ { if((head->amout==amout)&&(strcmp(head->name,name)==0)) /*如果头结点符合要求 */ { printf("%d\t",q->year); printf("%d\t",q->month); printf("%d\t",q->data); printf("%.2f\t",q->amout); printf("%s\t",q->name); printf("%d\t",q->type); printf("%s\n",q->comment); printf("确认删除?\n 1是\n 2否

相关文档
最新文档