Ⅰ c语言程序设计题(文件、排序)
for(i=0; i<9; i++) for(j=0; j<9-i; j++) if(a[j]
Ⅱ C语言实验 结构体与文件程序设计
//main.c文件
#include<stdio.h>
#include<stdlib.h>
#define BufLen 20
#define KeChengCount 3
typedef struct tagStuInfor
{
char xh[BufLen]; //学号
char xm[BufLen]; //姓名
char kchm[KeChengCount][BufLen]; //课程名
float pshchj[KeChengCount]; //平时成绩
float kshchj[KeChengCount]; //考试成绩
float zpchj[KeChengCount]; //总评成绩
float zf;
}StudentInformation;
typedef struct tagBookInfor
{
char shm[BufLen]; //书名
float dj; //单价
}BookInformation;
void shurustu();
void zongfen();
void shuchumaxmin();
void sortbook();
void freeall();
//学生数,书数
int xshsh,shsh;
StudentInformation *ptstu=NULL;
BookInformation *ptbook=NULL;
int main()
{
char in[]="data.txt",out[]="T_data.txt";
int i;
float chjs[6],zf;
FILE *fin,*fout;
printf("250这个数字太不好了,能换成350吗?\n\n");
shurustu();
zongfen();
shuchumaxmin();
printf("请输入书数:");
scanf("%d",&shsh);
ptbook=(BookInformation*)calloc(shsh,sizeof(BookInformation));
for(i=0;i<shsh;i++)
{
printf("请输入第%d本书的书名:",i+1);
scanf("%s",ptbook[i].shm);
printf("请输入第%d本书的单价:",i+1);
scanf("%f",&ptbook[i].dj);
}
printf("\n");
sortbook();
printf("按书的单价升序排序后的结果:\n书名\t单价\n");
for(i=0;i<shsh;i++)
{
printf("%s\t%.2f\n",ptbook[i].shm,ptbook[i].dj);
}
fin=fopen(in,"r");
fout=fopen(out,"w");
while(!feof(fin))
{
for(i=0;i<6;i++)
{
fscanf(fin,"%f",&chjs[i]);
}
zf=0.2*(chjs[0]+chjs[1]+chjs[2])+0.8*(chjs[3]+chjs[4]+chjs[5]);
printf("%.2f\n",zf);
fprintf(fout,"%.2f\r\n",zf);
}
printf("\n");
fclose(fin);
fclose(fout);
freeall();
system("PAUSE");
return EXIT_SUCCESS;
}
void shurustu()
{
int i;
printf("请输入学生的个数:");
scanf("%d",&xshsh);
ptstu=(StudentInformation*)calloc(xshsh,sizeof(StudentInformation));
for(i=0;i<xshsh;i++)
{
strcpy(ptstu[i].kchm[0],"C语言");
strcpy(ptstu[i].kchm[1],"高等数学");
strcpy(ptstu[i].kchm[2],"英语");
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",ptstu[i].xh);
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",ptstu[i].xm);
printf("请输入第%d个学生的C语言课程的平时成绩和考试成绩:",i+1);
scanf("%f %f",&ptstu[i].pshchj[0],&ptstu[i].kshchj[0]);
printf("请输入第%d个学生的高等数学课程的平时成绩和考试成绩:",i+1);
scanf("%f %f",&ptstu[i].pshchj[1],&ptstu[i].kshchj[1]);
printf("请输入第%d个学生的英语课程的平时成绩和考试成绩:",i+1);
scanf("%f %f",&ptstu[i].pshchj[2],&ptstu[i].kshchj[2]);
}
printf("\n");
}
void zongfen()
{
int i;
for(i=0;i<xshsh;i++)
{
ptstu[i].zpchj[0]=0.2*ptstu[i].pshchj[0]+0.8*ptstu[i].kshchj[0];
ptstu[i].zpchj[1]=0.2*ptstu[i].pshchj[1]+0.8*ptstu[i].kshchj[1];
ptstu[i].zpchj[2]=0.2*ptstu[i].pshchj[2]+0.8*ptstu[i].kshchj[2];
ptstu[i].zf=ptstu[i].zpchj[0]+ptstu[i].zpchj[1]+ptstu[i].zpchj[2];
printf("%s的%s,%s,%s的总评成绩是:",ptstu[i].xm,ptstu[i].kchm[0],ptstu[i].kchm[1],ptstu[i].kchm[2]);
printf("%.2f,%.2f,%.2f\n",ptstu[i].zpchj[0],ptstu[i].zpchj[1],ptstu[i].zpchj[2]);
printf("%s的总分是:%.2f\n",ptstu[i].xm,ptstu[i].zf);
}
printf("\n");
}
void shuchumaxmin()
{
int i,min,max;
min=max=0;
for(i=1;i<xshsh;i++)
{
if(ptstu[i].zf<ptstu[min].zf)
{
min=i;
}
if(ptstu[i].zf>ptstu[max].zf)
{
max=i;
}
}
printf("总分最高的学生的信息:\n学号\t姓名\t");
printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2]);
printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2]);
printf("%s\t%s\t",ptstu[max].xh,ptstu[max].xm);
printf("%.2f\t%.2f\t%.2f\t",ptstu[max].pshchj[0],ptstu[max].pshchj[1],ptstu[max].pshchj[2]);
printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[max].kshchj[0],ptstu[max].kshchj[1],ptstu[max].kshchj[2],ptstu[max].zf);
printf("总分最低的学生的信息:\n学号\t姓名\t");
printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2]);
printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2]);
printf("%s\t%s\t",ptstu[min].xh,ptstu[min].xm);
printf("%.2f\t%.2f\t%.2f\t",ptstu[min].pshchj[0],ptstu[min].pshchj[1],ptstu[min].pshchj[2]);
printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[min].kshchj[0],ptstu[min].kshchj[1],ptstu[min].kshchj[2],ptstu[min].zf);
}
void sortbook()
{
int i,j,min;
BookInformation t;
for(i=0;i<shsh-1;i++)
{
min=i;
for(j=i+1;j<shsh;j++)
{
if(ptbook[j].dj<ptbook[min].dj)
{
min=j;
}
}
t=ptbook[i];
ptbook[i]=ptbook[min];
ptbook[min]=t;
}
}
void freeall()
{
if(NULL!=ptstu)
{
free(ptstu);
}
if(NULL!=ptbook)
{
free(ptbook);
}
}
//data.txt文件
50 65 70 88 97 80
66 87 95 46 88 97
77 82 65 58 91 58
78 87 91 48 66 70
Ⅲ C语言程序设计(文件程序设计)
每本关于C语言的书都有这样的例题!如果仅为过二级 弄懂书上的就行了 但好教材很重要
Ⅳ C语言程序设计 文件处理
可以逐个字符读入, 根据非数字来判断何时分隔凑成一个完整的数字. 以转行符判断是否同一行
Ⅳ 要求用C语言设计文档整理程序,可按语法对英文文本文件内容进行整理,并可对整理后文档加密。
这个我不会。给文件加密,你可以在网络上下载超级加密3000 这是一款功能强大的文件和文件夹加密和保护软件。
超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000还支持加密文件的临时解密,文件加密后,双击加密文件,在弹出密码输入对话框输入正确的密码选择确定,该加密文件就处于临时解密,文件使用完毕退出以后,它自动恢复到加密状态,无需再加密。
超级加密3000是一款不可多得的文件加密软件,您可以到网络上搜索超级加密3000给您的文件加密试试看。
Ⅵ c语言课设 简单文件管理软件设计 要实现文件的查看 复制 删除 关闭 #in
用C写界面?直观?大方?直观? 写出来你可以直接去微软了
Ⅶ C语言程序设计 简单的读取文件并整理数据
首先还是先完整的学习一下文件打的所有方式。
文件的打开方式是由r,w,a,t,b,+,六个字符组成。如下:
“r” 只读打开文件,如果文件不存在,返回一个错误.
“r+” 可读写打开文件,如果文件不存在,返回错误.
“w” 只写打开文件,如果文件不存在,则创建一个新的文件,如果已经存在,将里面的内容清空.
“w+” 可读写打开文件,如果文件不存在,创建新文件,如果已经存在,清空文件中的内容.
“a” 以追加写入的方式打开文件(在文件未尾追加写入数据) ,如果文件不存在,创建新文件.
“a+” 以可读取并且可追加写入的方式打开文件,如果不存在,创建新文件.
如果要指定打开文本文件,则在打开方式中加入’ t ‘ 字符.如果是二进制文件,则加入’ b ‘ 字符. 如下:
1
"rt" "rt+" "r+t" "rb" "rb+" "r+b"
当以追加方式打开文件时,文件的数据偏移指针会指向文件的最未尾,如果此时从文件读入数据,可能会失败,都已经文件未尾了,还有什么数据要读的?所以追加方式打开时,不要第一时间读入数据.
注意: 如果想打开文件后,先读取数据,然后再写入,请不要用”w+”的方式,因为”w”方式会把已存在的文件的数据清空,所以会发生读取错误.
基于上面介绍,我们这章要从一个文本文件中读取数据,所以使用下面代码打开文件:
1
2
3
4
FILE * fptr;
fptr = fopen( FILE_NAME , "rt" );
.....
fclose( fptr );
读取文件的函数原型如下:
1
2
int fgetc( FILE* fstream);
char* fgets( char* buf , int n , FILE* fstream);
fgetc() 返回读到的字符的ASCII码.
在fgets()中,buf参数用来指定一个字符串指针来接收读到的数据,参数n用来指定读入的最大字符数.
fgets() 返回读到的字符串指针.如果错误,返回NULL.
并且,我们可以用feof()函数来判断是否已经读到了文件的未尾.
1
int feof( FILE* fstream);
如果已经读到文件未尾,feof()返回非0值(也就是TRUE值),如果没有,返回0(FALSE);
学完了上面,我们现在准备一个data.txt文件,内容可以,也可以你喜欢的任何内容:
1
2
3
1234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
请把data.txt文件与程序一起放在同一个文件夹,否则会有打开data.txt文件错误
然后编写一个程序,代码如下:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
本程序中涉及到的fputc() 和 fputs()函数在上一章已经作了介绍,可自行查阅.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILENAME "data.txt" //文件名
#define BUFSIZE 27 //缓存的大小为27字节
int main( int argc , char* argv[])
{
FILE *fptr;
char buf[BUFSIZE];
char ch;
fptr = fopen( FILENAME , "r+t");
if ( fptr == NULL )
{
puts( "open file error");
exit(1);
}
do{
ch = fgetc( fptr);
fputc(ch , stdout);
}while( ch != 'n' );//如果读到换行符,就退出循环.
while( ! feof( fptr) ){//如果读到文件未尾,就退出循环.
memset ( buf , 0 , BUFSIZE);
fgets( buf , BUFSIZE -1 , fptr );
//之所以要限制读入的数据长度为BUFSIZE-1,因为buf字符串的最后一个字符必须为'',防止被读入的数据覆盖.
fputs( buf , stdout);
}
fclose( fptr);
getchar();//程序暂停,按下回车键后继续
return 0 ;
}
把代码复制到编译环境中编译后,把执行程序放在与data.txt相同的文件夹,然后运行,就会看到效果了.
Ⅷ 用C语言设计一个文件加密与解密程序
c语言文件加密和解密方法如下:
1、首先打开VC++6.0;
4、声明头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
首先写个加密函数,算法就是简介里说的;
voidEncryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
if(sfp==0||dfp==0)
{
printf("ERROR!
");
return;
}
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=(ch-'a'+1)%26+'a';
ch=ch^pwd;
}
if((ch>='A')&&(ch<='Z'))
{
ch=(ch-'A'+1)%26+'A';
ch=ch^pwd;
}
fputc(ch,dfp);
}
}
写解密子函数:与加密的过程相反;
voidDecryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=ch^pwd;
ch=(ch-'a'+25)%26+'a';
}
if((ch>='A')&&(ch<='Z'))
{
ch=ch^pwd;
ch=(ch-'A'+25)%26+'A';
}
fputc(ch,dfp);
}
}
输出函数,输出文件内容
voidOutputFile(FILE*fp)
{
charch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函数,主要调用这几个函数
intmain()
{
/*用户输入的要加密的文件名*/
charsfilename[20];
/*用户输入加密后保存的文件名*/
chardfilename[20];
/*用来保存密码字符*/
charpwd;
FILE*sfp,*dfp;
printf(":
");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密后你要的文件名*/
printf(":
");
gets(dfilename);
/*得到加密字符*/
printf("PleaseinputyourPassword:
");
//scanf("%c",&pwd);
pwd=getch();
/*屏幕以*来表示输入的加密字符*/
printf("*
");
/*以只读方式打开要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can'topenthefile:%s
",sfilename);
exit(0);
}
/*输出要加密的文件*/
printf(":
");
OutputFile(sfp);
/*建立加密后的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can'topenorcreatethefile:%s
",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf("
Encryptedthefilesuccessfully!
");
/*输出加密后的文件*/
printf(":
");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return0;
}
Ⅸ C语言 程序设计 文件处理
C语言建立的文件是DAT文件还是TXT文件?
---这个都可以,只要你后缀名是什么就建什么
反复输入大量数据,非常不方便
---可以考虑把输入数据放到文件中,这样就不会重复。只需要在你程序中加一行语句
freopen("文件名","r",stdin);
---对于输出的时候若要输出到文件中,也只要加上一句 freopen("文件名","w",stdout);其他语句不变
大部分整ACM的要重复测试数据,多次输入就采用上面的freopen("文件名","r",stdin);
方法。你也可以把输入的数据复制好,每次在窗口复制就省的输入了
给你个例子:
#include "stdio.h"
int main()
{
freopen("a.txt","r",stdin);
//freopen("b.txt","w",stdout);
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d+%d=%d\n",a,b,a+b);
}
return 0;
}
a.txt文件内容:
1 2
3 4
5 6
7 8
输入格式和你在命令行的时候一样
上面的注释如果你去掉你会发现生成了b.txt文件里面有结果
注意a.txt文件放到你程序的目录下,否则路径名就要对
while(scanf("%d%d",&a,&b)!=EOF) 是表示输入读完了没有,使用于输入数不知道的情况。如果你知道输入数据的具体个数就可以用for语句输入