这是学校的作业。我们要编写一个c程序,该程序从一个文件中读取关键字,并计算它们在一个单独的文件中显示的次数。在这种情况下,另一个文件是伪造的简历。我以为自己有,但是现在我撞到了砖墙,被卡住了。帮助将不胜感激!谢谢!
/*Programmer: John S. Bolen*/
/*Date: 2/20/19*/
/*This program will read the keyword file, and count the number of times the keywords are found in the fake resume file and display it for the user*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define PAUSE system("pause")
#define CLS system("cls")
#define FLUSH flush()
#define ROW 50
#define COL 21
void flush() {
while (getchar() != '\n');
}
//prototype
void checkResume(char list[ROW][COL], int foundCount[ROW], int wordCount);
void displayResults(char list[ROW][COL], int foundCount[ROW], int wordCount);
int getWords(char list[ROW][COL]);
main() {
char keyWords[ROW][COL] = { 0 };
int foundCount[ROW] = { 0 };
int wordCount;
wordCount = getWords(keyWords);
checkResume(keyWords, foundCount, wordCount);
displayResults(keyWords, foundCount, wordCount);
PAUSE;
} // end main
void checkResume(char list[ROW][COL], int foundCount[ROW], int wordCount) {
FILE *fptr;
char fileName[50];
char read[1024];
char readPart[21];
int i, j, k;
// get filename
printf("Enter file name for resume: ");
scanf("%s", fileName);
for (i = 0; i < wordCount; i++) {
// open file
fptr = fopen(fileName, "r");
if (fptr == NULL) {
fptr = fopen("fakeResume.txt", "r");
if (fptr == NULL) {
printf("Error Opening File!");
exit(-1);
} // end if
} // end if
// read a line of text
while (fgets(read, 1024, fptr) != NULL) {
// TO UPPERCASE
for (j = 0; j < (int)strlen(read); j++) {
read[j] = toupper(read[j]);
}
//FOR TESTING ONLY: printf("Resume word %s\n", read); PAUSE;
for (j = 0; read[j] != NULL; j++) {
for (k = 0; k < 21; k++) // empty the tester
readPart[k] = 0;
for (k = 0; k < (int)strlen(list[i]); k++) {
readPart[k] = read[j + k]; // fill the tester with the next part of the line...match letters of word
}
if (strcmp(readPart, list[i]) == 0) // do the comparison
foundCount[i]++;
} // end for
} // end while
fclose(fptr); // file needs to be reopened for each word being checked
} // end for i
} // end checkResume
void displayResults(char list[ROW][COL], int foundCount[ROW], int wordCount) {
int i, j, total = 0;
CLS;
// find the total
for (i = 0; i < ROW; i++)
total += foundCount[i];
// top line
printf("\n\t\t%c", 201);
for (i = 0; i < 37; i++)
printf("%c", 205);
printf("%c\n", 187);
// keyword lines
for (i = 0; i < wordCount; i++) {
printf("\t\t%c %2i.) %s:", 186, i + 1, list[i]);
for (j = 0; j < 20 - (int)strlen(list[i]); j++)
printf(" ");
printf("%3i times %c\n", foundCount[i], 186);
} // end for
// middle line
printf("\t\t%c", 199);
for (i = 0; i < 37; i++)
printf("%c", 196);
printf("%c\n", 182);
// total line
printf("\t\t%c Total Keywords Found: %4i", 186, total);
for (i = 0; i < 7; i++)
printf(" ");
printf("%c\n", 186);
// bottom line
printf("\t\t%c", 200);
for (i = 0; i < 37; i++)
printf("%c", 205);
printf("%c\n\t\t", 188);
} // end displayResults
int getWords(char list[ROW][COL]) {
int result = 0;
FILE *fptr;
char fileName[50];
char string[1024] = { 0 };
int i, j, k = 0;
// get filename
printf("Enter file name for keyword list: ");
scanf("%s", fileName);
// open file
fptr = fopen(fileName, "r");
if (fptr == NULL) {
fptr = fopen("keywords.txt", "r");
if (fptr == NULL) {
printf("Error Opening File!");
exit(-1);
} // end if
} // end if
// get string---READ IN FROM THE INPUT FILE and store in one ARRAY
fscanf(fptr, "%s", string); // this reads in everything
// to UPPERCASE
for (i = 0; i < (int)strlen(string); i++)
string[i] = toupper(string[i]);
// split the string
for (i = 0; i < ROW && string[k] != '\0'; i++) {
for (j = 0; string[k] != ','; j++) {
if (string[k] != ',') // keep putting letters in the
list[i][j] = string[k]; // row until you hit a comma
k++;
} // end for
k++;
} // end for
// find word count
for (i = 0; i < ROW; i++)
if (list[i][0] != 0)
result++;
fclose(fptr);
return result;
} // end getWords
这些是我的keyword.txt文件中的关键字:
Java,CSS,HTML,XHTML,MySQL,学院,大学,设计,开发,安全,技能,工具,C,编程,Linux,脚本,网络,Windows,NT
这是我的fakeResume.txt中的假履历:
Dawn Johnson Johnson Sometown,OH 43085主页:555-555-5555 | dj@somedomain.com | BeFound个人资料@twitterhandle |领英| 投资组合链接
Web开发人员
能够从头开始建立Web形象的初级Web开发人员 -从概念,导航,布局和编程到UX和SEO。熟练使用以下语言编写经过精心设计,可测试和高效的代码 Web开发中的当前最佳实践。快速学习,勤奋的人 和精通多种脚本语言的团队合作者 和多媒体Web工具。技术工具箱
网络工具:JavaScript,jQuery,CSS,PHP,HTML,XHTML,XML,AngularJS, Bootstrap,Java,.Net,ASP.NET,Python,MySQL,GitHub,Apache Flex, JavaFX,REST,SOAP,cPanel,Google Analytics,WordPress Adobe Creative 云:Photoshop,Lightroom,Illustrator,InDesign,体验设计, Premiere Pro,After Effects,动画,Dreamweaver,保险丝,Adobe Muse, Acrobat Pro DC
教育ABC大学-俄亥俄州Sometown,理学士,信息技术, 专注于网站开发,正在进行中
课程:Web和多媒体开发数字和交互式设计 图形和GUI设计搜索引擎优化(SEO)3D动画和 敏捷方法论Web内容管理互联网技术 压缩格式音频/视频编辑系统安全性网站 开发经验
ABC CHARITY,Sometown分部-俄亥俄州,Sometown网络开发人员,2015至 礼物(夏天)
自愿作为新开放的动物收容所的Web开发人员。
从头开始共同开发一个动态,安全的网站。推出 具有交互功能的视觉吸引力,用户友好的Webscape 优化流量,页面浏览量,网站“粘性”和用户体验 (UX)。使用SEO最佳做法来提升组织的Web形象; 在几个竞争激烈的网站上获得Google排名前10位 关键字。创建在线调查,竞赛和捐赠表格, 提高了资金和组织的知名度。帮助推动$ 38K的收入 电子商务收入。设计创新的“收养宠物”网站 为移动设备定制的应用程序。荣获“ 因此获得了“年度”奖。