一、实践的目的和要求。
加深对《c语言》课程所学知识的理解,进一步巩固c语言语法规则。学会编制结构清晰、风格良好、数据结构适当的c语言程序,从而具备解决综合性实际问题的能力。
二、实践内容。
在熟练掌握c语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。
三、实践任务。
1.欢迎画面。
2.学生成绩管理系统(自己设计界面)
3.异或加密与解密。
1)文件加密。
2)文件解密。
说明:将某一已知文件的内容以字符形式读出,与密钥(用户从键盘输入)的对应字符进行异或操作即可,解密同样如此。
如:设原文为ab1234,密钥为56,则有。
ab1234
按二进制进行异或操作即可得到密文(乱码)。
4.移位加密与解密。
1)文件加密。
2)文件解密。
说明:将某一已知文件的内容(限于英文字母)以字符形式读出,根据密钥k(用户从键盘输入)将对应字符进行移位操作即可,解密时移动方向相反。
如:设原文为abcdef,密钥为5,则有。
abcdef 每个字母按字母表向后移动位(注:z后接a)
fghijkl 可得到密文(乱码)。
5.辅助运算。
1)整数n模m的乘法逆t
要求:输入整数n和m,求出t,若t不存在,给出信息。
提示:这三个数满足:n*t%m=1,使用穷举法。
例如:当n为11,m为26时,由于(11×19)%26=1,所以11模26的乘法逆为19。
2)统计字母个数。
要求:输入一段英文字母,统计各个字母的个数,并按个数从大到小排序输出。
提示:字母大小写等价。输出格式为:字母:个数。
3)otp加密。
要求:输入同等长度的原文x和密钥k(英文字母),根据公式。
c=(x+k) %26 得到密文,并输出。
提示:将26个字母按0~25编号,将原文字母和对应位置的密钥字母的编号按上述公式进行计算后得到一个新的字母。
四、设计流程图。
流程图另附!
五、相关程序。
1 欢迎画面。
#include<>
#include<>
struct snow
int x;
int y;
int speed;
snow[100];
int snownum=0;
int size;
int change=10;
void *s**e1,*s**e2;
void copy();
void drawsnow();
void pr();
void main(void)
int gd=detect,gm;
initgraph(&gd,&gm,"c:\\turboc2");
copy();
drawsnow();
getch();
closegraph();
void copy()
setcolor(0);
setfillstyle(solid_fill,15);
fillellipse(200,200,4,4);
size=imagesize(196,196,204,204);
s**e1=malloc(size);
s**e2=malloc(size);
getimage(196,196,204,204,s**e1);
getimage(96,96,104,104,s**e2);
void pr()
int s[15]=;
setcolor(change/10);
settextstyle(0,0,4);
outtextxy(150,200,"welcome!!!
sound(s[change/10]);
void drawsnow()
int i;
int sx[62];
randomize();
for(i=0;i<62;i++)
sx[i]=(i+2)*10;
cleardevice();
while(!kbhit())
pr();if(snownum!=100)
snow[snownum].speed=2+random(5);
i=random(62);
snow[snownum].x=sx[i];
snow[snownum].y=10-random(100);
for(i=0;i putimage(snow[i].x,snow[i].y,s**e2,copy_put);
pr();if(snownum!=100)
snownum++;
*delay(300);*
setfillstyle(solid_fill,15);
for(i=0;i
change++;
if(change==140)
change=10;
nosound();
2学生成绩管理系统(自己设计界面)
#define n 1
struct student
char num[10];
char name[10];
int score[4];
float **e;
stu[n];
main()
int i,j,max,maxi,sum;
float **erage;
for(i=0;i{printf("please input scores of student %d :",i+1);
printf("no.:"
scanf("%s",stu[i].num);
printf("name:")
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
printf("score %d :"j+1);
scanf("%d",&stu[i].score[j]);
**erage=0;
max=0;
maxi=0;
for(i=0;i{sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
stu[i].**e=sum/3.0;
**erage+=stu[i].**e;
if(sum>max)
max=sum;
maxi=i;
**erage/=n;
printf(" no. name score1 score2 score3 **erage");
for(i=0;i{printf("%5s",stu[i].num);
printf("%10s",stu[i].name);
for(j=0;j<3;j++)
printf("%9d",stu[i].score[j]);
printf("%8.2f",stu[i].**e);
printf("**erage=%6.2f",**erage);
printf("the highest score is : s,score total :%d",stu[maxi].name,max);
getch();
3.异或加密与解密。
#include<>
#include<>
#include<>
#include<>
void jiami(char *in,char *pwd,char *out);
void main(int argc,char *ar**)
char in[30];
char out[30];
char pwd[8];
if(argc!=4)
printf("\input file name:");
gets(in);
printf("please enter password:");
gets(pwd);
printf("output file name:");
gets(out);
jiami(in,pwd,out);
elsestrcpy(in,ar**[1]);
strcpy(pwd,ar**[2]);
strcpy(out,ar**[3]);
jiami(in,pwd,out);
void jiami(char *in,char *pwd,char *out_file)
file *fp1,*fp2;
register char ch;
int j=0;
int k=0;
fp1=fopen(in,"rb");
if(fp1==null)
printf("cannot open in-file!");
exit(1);
fp2=fopen(out_file,"wb");
if(fp2==null)
printf("cannot open or create output-file!");
exit(1);
while(pwd[++k]);
ch=fgetc(fp1);
while(!feof(fp1))
fputc(ch^pwd[j>=k?j=0:j++]fp2);
ch=fgetc(fp1);
fclose(fp1);
fclose(fp2);
4.移位加密与解密。
#include""
main()
int choice=0,k;
file *fp1,*fp2;
char c,filename1[30],filename2[30];
printf("please input two deferent filename:")
scanf("%s%s",filename1,filename2);
c语言课程设计报告 课程设计报告
周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...
C语言课程设计报告
华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...
C语言课程设计报告
c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...