




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(1) 有一存储很多商品数据(每件商品的属性先后包括:品名、 规格、数量、单价,编程时相应的数据类型分别定义为字符 串char(20)、字符串char(12)、long、float)的二进制文件 sp.dat(即未作任何格式转换而直接使用fwrite将商品属性写 入文件),从键盘输入某种商品的品名,要求在文件中查找 有无相应品名商品(可能有多条记录或没有),若有则在屏幕 上显示出相应的商品的品名、规格、数量、单价(显示时, 品名、规格、数量、单价之间使用逗号(,)作分隔),若无则 显示没有相应品名的商品。并保存到程序P3-312.C所在的文 件夹且文件名保持不变。 编程可用素材:printf(“Please input shang pin pin ming:“).、 printf(“ncha zhao qing kuang :“).、printf(“nmei you shang pin :.。 程序的运行效果应类似地如图1和图2所示,图1中的 Please input shang pin pin ming:xuebi中的xuebi和图2中的 Please input shang pin pin ming:kele中的kele是从键盘输入的内容。 #include #include #include struct sp char pinming20; char guige12; long shuliang; float danjia; ; int main(void) int flag = 0; char pinming21; struct sp shangpin; FILE *fp; printf(“Please input shang pin pin ming:“); scanf(“%s“, pinming); printf(“n“); printf(“cha zhao qing kuang:n“); fp = fopen(“sp.dat“, “rb“); if (fp = NULL) printf(“can not open file!n“); exit(1); while (fread( flag = 1; if (flag = 0) printf(“mei you shang pin :%sn“, pinming); fclose(fp); return 0; (2) 程序运行时,先从键盘输入一个文本文件的文件名(约定: 字符数127字节,可含路径)和一个字符串(约定:字符数 20字节,其中不含空格、TAB等,后面称之为Str),再在 屏幕上显示该文件的内容。要求显示完内容后,在屏幕上输 出文件的行数(行之间以n为分隔、每行的长度不定但均 200个字节)、字符串Str在文件中第1次出现的行号和最后 一次出现的行号(查找时不区分大小写、不跨行查找,若未 找到,则行号显示为-1)。注意,程序中不能使用库函数 fgets或使用同名的变量、函数、单词,行的编号从1开始 计。 编程可用素材:printf(“input the files name and the string: “).、 printf(“nfile open error!“).、printf(“- File content:-n“).、printf(“n- File summary:-n“).、 printf(“. lines, first line: ., last line: .n“.。 程序的运行效果应类似地如图1所示,图1中 的“input the files name and the string: C:Temp315.txt Value”中 的“C:Temp315.txt Value”是从键盘输入的内容 (“C:Temp315.txt”是文件名,“Value”是需查找的字符串)。图1 中的“11 lines, first line: 6, last line: 11”表示文件一共有11行,字 符串“Value”在文件中第一次出现的行号为6、最后一次出现的 行号为11。 #include #include int main(void) char ch, filename128, str21, line201; int i = 0, j, k, m, lineNum = 0, isfirst = 0, firstLine = -1, lastLine = -1; FILE *fp; printf(“input the files name and the string:“); scanf(“%s%s“, filename, str); printf(“-File content:-n“); fp = fopen(filename, “r“); if (fp = NULL) printf(“can not open file!n“); exit(1); while (!feof(fp) ch = fgetc(fp); linei = ch; i+; if (ch = n) lineNum+; putchar(ch); linei = 0; i = 0; else if (ch = EOF) lineNum+; linei = 0; else putchar(ch); if (ch = n | ch = EOF) for (j = 0, k = 0; linej != 0; j+) if (linej = strk) | (linej = (strk - 32) | (linej = (strk + 32) for (m = j; (linem = strk) | (linem = (strk - 32) | (linem = (strk + 32) k+, m+) ; if (strk = 0) if (isfirst = 0) firstLine = lineNum; isfirst = 1; lastLine = lineNum; else if (linem != strk) k = 0; putchar(n); printf(“-File summary:-n“); printf(“%d lines, first line: %d, last line: %dn“, lineNum, firstLine, lastLine); return 0; (3)程序的运行效果应类似地如图1所示,图1中每行“:”后的内容 # af2346asfkl7123vdsg#sdf e3gerg67823;632235235562vrweg gsd124kl63g512jk57463sdgkdlgh45657478358756235135fwesdvg#safsa 均为从键盘输入的内容,注意, 在“input string-2:”处输入时直接按了回车键,这是题目 所允许 的。 #include #include /* GetString的功能是从键盘读入最多n个字符(遇到由endFlag指定 的字符或回车则结束读并且该字符和回车 均视为有效字符)存放在buf所指向的内存中并加上字符串结束 符0 函数返回值为读入的字符个数 */ int GetString(char *buf, char endFlag, int n); /* CompDigit 的功能是分别统计指针s1、s2、s3、s4所指向的字符 串中数字字符的个数, 将包含最多数字字符(不考虑存在包含相同个数数字字符的情况) 的字符串的长度放在指针mLen所指向的 内存单元中,并通过函数返回值返回该字符串中第1个数字字符的 地址 */ char *CompDigit(char *s1, char *s2, char *s3, char *s4, int *mLen); /* clearRestInput的功能是将前一次读字符后到回车(含回车)之间 的字符废弃 */ void clearRestInput(char lastInput); /* 本部分代码功能建议:考生新增函数原型声明(非必须新增) */ /* User Code Begin(Limit: lines= n) break; scanf(“%c“, if (ch = endFlag | ch = n) *buf = ch; buf+; num+; *buf = 0; return num; char *CompDigit(char *s1, char *s2, char *s3, char *s4, int *mLen) int i, num4 = 0, digitnum; char *str4, *maxStr; for (i=0; s1i!=0; i+) if (s1i = 0) maxStr = stri; *mLen = strlen(stri); while (1) if (*maxStr = 0) void sort(int data, int n); void output(int data, int n); int main(void) int inputDatamaxNums = 0, dataCount; dataCount = input(inputData); sort(inputData, dataCount); output(inputData, dataCount); return 0; int input(int data) int i, x, n = 0; printf(“nPlease input numbers:“); for (i=0; i struct student int num; char name20; float score1, score2, score3; float aver; ; void Input(struct student *pStu, int n); int Highest(struct student *pStu, int n); int main(void) int high; /* high记录平均分最高的学生的序号,具体使用参考后面的 代码 */ struct student myClass5; Input(myClass,5); high=Highest(myClass,5); printf(“nThe Highest is %s(%d)nscore1=%.2f score2=%.2f score3=%.2f aver=%.2fn“, myC, myClasshigh.num, myClasshigh.score1, myClasshigh.score2, myClasshigh.score3, myClasshigh.aver); return 0; void Input(struct student *pStu, int n) int i; struct student tmpStu; printf(“Please input students info:Num Name score1 score2 score3n“); for (i=0; i #define NOT_FIND -1 #define TOTAL_STU 8 /* 函数aver的功能为:求学号为stuNo的学生的6门课课程之平均成绩, 并通过函数值返回 若未找到学生stuNo,则返回NOT_FIND */ float aver(int (*pStu)7, int stuNo); int main(void) int studentTOTAL_STU7; /* the first column save students number */ float averScore; int i, j, stuNumber; printf(“Input the %d students number and score: n“, TOTAL_STU); for(i=0;i void fun(int r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册会计师招聘面试要点及模拟题解析
- 2025年采购管理专员求职攻略与模拟题集全解
- 电信网络安全知识培训课件
- 2025年热切割技术面试模拟题及答案
- 2025年医疗技术专家中级面试预测题及备考指南
- 2025年美妆行业:谷雨品牌拆解-解数咨询
- 某中小学二年级新学期家长会-动态
- 停顿和重音课件教学
- 田字演变课件
- 24孝图教学课件
- 微创外科课件
- GB/T 21977-2022骆驼绒
- 心理-认识过程课件
- 易驱ED3000系列变频器说明书
- 《ACT就这么简单》课件
- 农机行政处罚流程图
- GB∕T 6818-2019 工业用辛醇(2-乙基己醇)
- 钻具内防喷工具课件
- 新版(七步法案例)PFMEA
- 会计师事务所7(报告流转签发制度12)
- TCECS 20007-2021 城镇污水处理厂污泥厌氧消化工艺设计与运行管理指南
评论
0/150
提交评论