C语言课程设计实验报告 (2).doc_第1页
C语言课程设计实验报告 (2).doc_第2页
C语言课程设计实验报告 (2).doc_第3页
C语言课程设计实验报告 (2).doc_第4页
C语言课程设计实验报告 (2).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言课程设计报告题目:1.文件移位加密与解密2.学生成绩管理系统 班级:电子信息工程*班 学号: * 姓名: 艾依河里的鱼 2009年7月C语言课程设计说明书一、课程设计的目的和要求1.进一步巩固C语言讲法规则。2.熟练掌握程序设计的一般技巧和方法。3.培养解决综合性实际问题的能力。二、课程设计任务1文件移位加密与解密将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。如加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5位(注:z后接a)可得到密文(乱码)fghijkl。对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。2学生成绩管理系统题目功能要求:建立一个5个学生的信息登记表,每个学生和信息包括:学号,姓名,和3门课程的成绩(MATH,C,ENGLISH)。程序运行时显示一个简单的菜单 例如:(1):信息输入(INPUT)(2):显示信息(DISPLAY)(3):总分统计(COUNT)(4):总分排序(SORT)(5):查询(QUERY)其中:(1):对5个学生的信息进行输入;(2):显示当前学生记录的信息,若无记录,则给出提示信息;(3):对每个学生的3门课程统计总分;(4):对5个学生的总分按升序序排序并显示出来;(5):可以按“学号”、“姓名”查询该生的有关信息。三、课程设计要求:查阅资料,完成程序设计,提交一份课程设计报告。四、时间安排:1周题目 文件移位加密与解密 一、题目介绍将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。如加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5位(注:z后接a)可得到密文(乱码)fghijkl。对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。二、题目分析要实现对文件内容的移位加密与解密,必须从文件内容的ASCII码值入手,将要加密内容的ASCII码值按照一定的密钥进行改变,得到一组密文,从而实现对文件内容的加密;解密则相反,将密文的ASCII码值按照对应的密钥反向移位,得到明文的ASCII码值,从而实现对密文的解密。程序中可将加密与解密用的移位函数定义为外部函数,在主函数中将其进行引用,就可实现欲达到的目的。三、程序代码#includevoid encrypt(char *p,int key) while(*p!=0) *p=97+(*p-97+key)%26; p+; void decrypt(char *p,int key) while(*p!=0) *p=97+(*p-71-key)%26; p+; main() char str100; int n,key; printf(输入密钥:); scanf(%d,&key); printf(输入1加密,输入2解密:); scanf(%d,&n); printf(输入字符串:); scanf(%s,str); if(n=1) encrypt(str,key); printf(密文为%sn,str); else if(n=2) decrypt(str,key); printf(原文为%sn,str); 四、运行结果加密:输入密钥:5输入1加密,输入2解密:1输入字符串:abcdefg密文为fghijkl解密:输入密钥:5输入1加密,输入2解密:2输入字符串:fghijkl原文为abcdefg五、总结这个题目比较简单,只要明白要做什么,剩下的就很好做了。只需设计子函数对文件内容的ASCII码值进行操作,然后在主函数中调用子函数就行了。题目 学生成绩管理系统 一、题目介绍建立一个5个学生的信息登记表,每个学生和信息包括:学号,姓名,和3门课程的成绩(MATH,C,ENGLISH)。程序运行时显示一个简单的菜单 例如:(1):信息输入(INPUT)(2):显示信息(DISPLAY)(3):总分统计(COUNT)(4):总分排序(SORT)(5):查询(QUERY)其中:(1):对5个学生的信息进行输入;(2):显示当前学生记录的信息,若无记录,则给出提示信息;(3):对每个学生的3门课程统计总分;(4):对5个学生的总分按升序序排序并显示出来;(5):可以按“学号”、“姓名”查询该生的有关信息。二、题目分析 按照题目要求需要建立一个学生信息登记表,这项工作可以用结构体完成,要实现各项操作,必须有一个目录,按照目录可以选择要进行的操作,而每项操作要做成一个子函数,在main()主函数中对其进行引用,从而实现各项操作。三、程序代码#include #include#include#include #include#define MAX 80void input();void sort();void display();void insert();void sum();void find();void save();void sum();void modify();int now_no=0;struct student int no; char name20; char sex4; float score1; float score2; float score3; float sort; float sum;struct student stuMAX,*p;main()/*主函数*/ int as; start: printf(nttt欢迎使用学生成绩管理系统n); /*以下为功能选择模块*/ do printf(ntttt1.录入学生信息ntttt2.显示学生信息ntttt3.成绩排序信息ntttt4.添加学生信息ntttt5.修改学生信息ntttt6.查询学生信息ntttt7.保存学生信息ntttt8.退出系统n); printf(tttt选择功能选项:); fflush(stdin); scanf(%d,&as); switch(as) case 1:system(cls);input();break; case 2:system(cls);display();break; case 3:system(cls);sort();break; case 4:system(cls);insert();break; case 5:system(cls);modify();break; case 6:system(cls);find();break; case 7:system(cls);save();break; case 8:system(exit);exit(0); default:system(cls);goto start; while(1); /*至此功能选择结束*/void input()/*原始数据录入模块*/ int i=0; char ch; do printf(tttt1.录入学生信息n输入第%d个学生的信息n,i+1); printf(n输入学生编号:); scanf(%d,&stui.no); fflush(stdin); printf(n输入学生姓名:); fflush(stdin); gets(); printf(n输入学生性别:); fflush(stdin); gets(stui.sex); printf(n输入学生高数成绩:); fflush(stdin); scanf(%f,&stui.score1); printf(n输入学生C语言成绩:); fflush(stdin); scanf(%f,&stui.score2); printf(n输入学生英语成绩:); fflush(stdin); scanf(%f,&stui.score3); printf(nn); i+; now_no=i; printf(是否继续输入?(Y/N); fflush(stdin); ch=getch(); system(cls); while(ch!=n&ch!=N); system(cls);void sort()/*排序数据函数*/ struct student temp; int i,j; sum(); for(i=1;inow_no;i+) for(j=1;jstuj.sum) temp=stuj; stuj=stuj-1; stuj-1=temp; display();/*显示数据函数*/void display()/*显示数据函数*/ int i; char as; sum(); do printf(ttt班级学生信息列表n); printf(编号t姓名t性别t高数成绩tC语言成绩t英语成绩t总分n); for(i=0;inow_no&0;i+)printf(%dt%st%st%.2ftt%.2ftt%.2ftt%.2fn,stui.no,,stui.sex,stui.score1,stui.score2,stui.score3,stui.sum); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); while(!as); system(cls);void insert()/*添加数据函数*/ char ch; do printf(ntt输入新插入学生队信息n); printf(n输入学生编号:); scanf(%d,&stunow_no.no); fflush(stdin); printf(n输入学生姓名:); fflush(stdin); gets(stunow_); printf(n输入学生性别:); fflush(stdin); gets(stunow_no.sex); printf(n输入学生高数成绩:); fflush(stdin); scanf(%f,&stunow_no.score1); printf(n输入学生C语言成绩:); fflush(stdin); scanf(%f,&stunow_no.score2); printf(n输入学生英语成绩:); fflush(stdin); scanf(%f,&stunow_no.score3); printf(nn); now_no=now_no+1; sort(); printf(是否继续输入?(Y/N); fflush(stdin); ch=getch(); system(cls); while(ch!=n&ch!=N);void save()/*保存数据函数*/ FILE *fp; int i; char filepath20; printf(输入要保存的文件路径:); fflush(stdin); gets(filepath); if(fp=fopen(filepath,w)=NULL) printf(n保存失败!); exit(0); for(i=0;inow_no;i+) stui.sum=stui.score1+stui.score2+stui.score3; stui.sum=stui.sum/3; fprintf(fp,%dt%st%st%.2ftt%.2ftt%.2ftt%.2fn,stui.no,,stui.sex,stui.score1,stui.score2,stui.score3,stui.sum); fclose(fp); printf(学生信息已保存在%s中!n,filepath); system(pause); system(cls);void find()/*查询函数*/ int i; char str20,as; do printf(输入要查询的学生姓名:); fflush(stdin); gets(str); for(i=0;inow_no;i+) if(!strcmp(,str) printf(编号t姓名t性别t高数成绩tC语言成绩t英语成绩t总分n); printf(%dt%st%st%.2ftt%.2ftt%.2ftt%.2fn,stui.no,,stui.sex,stui.score1,stui.score2,stui.score3,stui.sum); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); while(!as); system(cls);void sum()/*求总分函数*/ int i; for(i=0;inow_no;i+) stui.sum=stui.score1+stui.score2+stui.score3; void modify()/*修改数据函数*/ int i; char str20,as; printf(输入要修改的学生姓名:); fflush(stdin); gets(str); for(i=0;inow_no;i+) if(!strcmp(,str) system(cls); printf(ntt输入新插入学生队信息n); printf(n输入学生编号:); fflush(stdin); scanf(%d,&stui.no); printf(n输入学生性别:); fflush(stdin); gets(stui.sex); printf(n输入学生高数成绩:); fflush(stdin); scanf(%f,&stui.score1); printf(n输入学生C语言成绩:); fflush(stdin); scanf(%f,&stui.score2); pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论