C语言课程设计报告.docx
- 文档编号:10548645
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:28
- 大小:59.53KB
C语言课程设计报告.docx
《C语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告.docx(28页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告
《C语言程序设计》
课程设计报告
专业:
电子信息工程
班级:
0902
姓名:
杨展辉
指导教师:
彭琼丁雄
2010年12月30日
目录
一、课程设计任务书………………………………3
二、设计内容及思路………………………………4
三、函数说明及流程图……………………………15
四、个人部分………………………………………18
五、实验心得………………………………………20
六、参考文献………………………………………4
七、程序代码………………………………………4
一、课程设计任务书
一、设计题目:
学生成绩管理系统
二、设计目的
1、熟练掌握C语言课程中所学的理论知识;
2、通过综合C语言的基本知识来解决实际问题;
3、加强分析和解决问题的能力。
二、设计内容
职工信息包括职工号、姓名、性别、年龄、学历、工资等(职工号不重复)。
系统功能包括:
1、系统以菜单方式工作,密码登陆。
2、职工信息的录入(增加数据)。
用数组数据类型赋初值的方法把职工信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。
3、职工信息的删除(删除数据)。
任意输入一位职工的工号,将它所有的信息从组数中删除。
4、职工信息的浏览(查找数据)。
任意输入一位职工的工号,打印出他的所有数据。
要求能多次查找。
5、职工信息的修改(修改数据)。
任意输入一位职工的工号,打印出所有相关信息后,可对某一项信息进行修改并保存。
6、职工信息的计算并排序。
计算所有职工的总工资及平均工资(aver,单精度,输出一位小数),将包括所有数据的数组元素按工资从高到低的顺序排序打印出来。
四、设计步骤
1、需求分析:
对系统的应实现的功能进行分析。
2、概要设计:
对系统功能进行模块分解,对模块的功能及模块之间的相互关系进行说明(如用到函数,则对函数间的接口进行说明),对系统使用的数据结构(各数组、主要变量的设置及其代表的含义)进行说明。
3、详细设计:
用流程图、伪代码等方法对各主要算法进行描述。
4、编写代码:
根据设计编写。
源程序要按照程序的格式规范来编写,要求结构清晰,界面友好,关键部分有必要的注释。
5、调试分析:
准备充分的测试数据对系统进行调试(对错误的数据输入也要进行测试,保证程序的容错性),并通过测试对系统提出改进设想。
设计思路
1、(需求分析或算法分析)学生的主要信息包括:
学号、姓名、C语言成绩、数学成绩、英语成绩、总分、平均分、名次.
2、(数据分析:
包括所涉及的函数,数据结构等)用结构体数组来存储信息,例如用Add()函数来实现信息的录入,用Disp()函数来显示打印信息,用Qur()函数来查找信息,用Sort()函数来排序用Insert()函数来插入信息,用Modify()函数来修改信息,用Del()函数来删除信息,用Save()函数来保存信息,用Exit函数来退出通讯录等等.
3、对小组进行分工,每个人分配至少一个函数的代码实现,其余的再按情况进行分配.
三、函数说明及流程图
用到的函数库简介
A.
printf形式:
printf(char*format,args,…)按format指向的格式字符串所规定的格式、将输出表列args的值输出到标准输出设备;
scanf形式:
scanf(char*format,args,…)从标准输入设备按gormat指向的格式字符串所规定的格式,输入数据给args所指向的单元;
fopen形式:
fopen(char*filename,char*mode)以mode指定的方式打开名为filename的文件;
fclose形式:
fclose(file*fp)关闭fp所指的文件,释放文件缓冲区。
B.
strcmp形式:
strcmp(char*s1,char*s2)对s1和s2所指字符串进行比较,s1
C.
malloc形式:
malloc(unsignedsize)分配size字节的存储区。
流程图:
四、个人部分
任务内容:
职工信息的修改(修改数据)。
任意输入一位职工号,显示并打印出所有相关信息。
代码:
//信息查找函数//
voidczsj()
{
inti,y;
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\t\t\t******************************\n");
printf("\t\t\t~O(∩_∩)O~\n");
printf("\t\t\t***欢迎进入信息查找系统***\n");
printf("\t\t\t******************************\n");
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\n\n\n");
R:
printf("\t\t\t请输入要查询的职工号:
");
scanf("%d",&y);
printf("\n\n");
printf("\t\t职工号姓名性别年龄学历工资\n");
for(i=0;i
if(y==str1[i].num)
{printf("\t\t%d\t",str1[i].num);
printf("%s\t",str1[i].name);
printf("%s\t",str1[i].sex);
printf("%d\t",str1[i].age);
printf("%s\t",str1[i].xueli);
printf("%d",str1[i].gongzi);
printf("\n");}
printf("\n\n");
printf("\t\t是否继续进行操作,继续(Y),退出(n)\n");
getchar();
a=getchar();
if(a=='y'||a=='Y')gotoR;
else
printf("\n");
printf("\t\t\t按1键退出\n");
scanf("%d",&k);
getchar();}
进行过程中遇到的问题:
遇到的问题主要有两方面,一是自己的代码有错误,二是与小组其他成员的代码不兼容。
解决方案:
查询参考书籍,询问老师和同学。
完成情况:
经过修改、调试后,程序主要模块能正常运行。
五、实验心得
C语言是国内外广泛使用的程序设计语言,它功能强大,数据类型丰富,使用灵活,通用性强。
学会、学好、使用C语言进行程序设计是时代的要求,也是计算机工作者的一项基本功。
在这次的试验中,我们共同协作,共同一步步的解决了课题选定、资料查找、流程图设计、各模块的算法设计、各模块和主程序的源程序编辑、最后的调试等步骤,完成了“成绩管理系统”这个程序的设计。
在确定了大致上的方向后,我们也遇到了很多细节方面的问题,不过在我们的共同努力下,一个个问题都最终解决了.通过这次课程设计,使我充分认识到了自己一些方面的不足,同时经过课程设计时大家的不断讨论,使我对C语言有了更深入和更全面的认识.
通过本次课程设计,暴露了我很多学习上的误解.每门课都是要踏踏实实的学的,而不是到考前的恶补.可能成绩会比较好看.但一到实际就什么都不会了.脚踏实地是非常重要的学习态度,同时也是很重要的生活态度.
本次实验对于我们来说,是非常重要的一段经历,因为我们明白了什么才叫程序,工作如何进行分工,如何进行分配,才能达到更高的效率,为我们以为做团体项目打好一个最基本的基础。
六、参考文献
1)谭浩强.C程序设计教程,清华大学出版社。
2)沈大林.C语言程序设计案例教程,中国铁道出版社。
3)张基温.C语言程序设计案例教程,清华大学出版社。
4)郭翠英.C语言课程设计案例精编,中国利水电出版社。
5)申在明.C语言程序设计600例,人名邮电出版社。
七、程序代码
#include
#include
#include
#include
structxinxi
{
intnum;
charname[8];
charsex[4];
intage;
charxueli[6];
intgongzi;
};
structxinxistr1[100];
intu,t,k;
chara;
//主函数
voidmain()
{voiddljm();
voidmima();
voidzjsj();
voidscsj();
voidczsj();
voidxgsj();
voidjspx();
chari;
dljm();
printf("\n\n");
M:
system("cls");
printf("\n\n");
printf("\t\t★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\t\t************************************\n");
printf("\t\t**欢迎进入职工信息管理系统功能界面**\n");
printf("\t\t************************************\n");
printf("\t\t★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\n\n\n\n");
printf("\t\t\t********************\n");
printf("\t\t\t*A职工信息添加系统*\n");
printf("\t\t\t********************\n");
printf("\t\t\t*B职工信息删除系统*\n");
printf("\t\t\t********************\n");
printf("\t\t\t*C职工信息查找系统*\n");
printf("\t\t\t********************\n");
printf("\t\t\t*D职工信息修改系统*\n");
printf("\t\t\t********************\n");
printf("\t\t\t*E职工信息求值系统*\n");
printf("\t\t\t********************\n");
printf("\n\n\n");
printf("\t\t请输入所需功能对应的字母:
");
i=getchar();
switch(i)
{case'a':
{system("cls");zjsj();gotoM;}break;
case'b':
{system("cls");scsj();gotoM;}break;
case'c':
{system("cls");czsj();gotoM;}break;
case'd':
{system("cls");xgsj();gotoM;}break;
case'e':
{system("cls");jspx();gotoM;}break;
default:
printf("请输入有效的字符\n");
}
}
voiddljm(void)
{printf("\t********\n");
printf("\t^^^^^^^^^^^^^^^^\n");
printf("\t--------\n");
printf("\t╭︿︿︿╮☆☆☆☆☆☆☆☆╭︿︿︿╮\n");
printf("\t{/-⊙⊙-/}☆☆Happy☆☆{/-⊙⊙-/}\n");
printf("\t((oo))★★NewYear!
★★((oo))\n");
printf("\t︶︶︶☆☆God☆☆︶︶︶\n");
printf("\t★★Bless★★\n");
printf("\t^^^^^^☆☆You!
☆☆^^^^^^\n");
printf("\t---★★★★---\n");
printf("\t☆☆\n");
printf("\t★★*********************★★\n");
printf("\tWelcomtothemostbeautiful\n");
printf("※欢迎进入职工信息系统!
!
※\n");
printf("\t※※☆☆*********************☆☆※※\n");
printf("\t※╭︿︿︿╮※\n");
printf("\t{/-●●-/}\n");
printf("\t((oo))\n");
printf("\t︶︶︶\n");
printf("\t★★★★★★★★\n");
printf("\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t★★★★★★★★\n");
printf("\n\n");
system("color25");
mima();
}
//密码函数//
voidmima()
{chara[7],b[]={"123456"};
inti,j;
for(j=1;j<=3;j++)
{printf("\t\t请输入密码:
");
for(i=0;i<6;i++)
{a[i]=getch();
if(a[i]==8){i=i-2;printf("\b\b");}
else
{if(a[i]==13)break;
printf("*");}}
a[i]='\0';
printf("\n");
if(strcmp(a,b)==0)
{printf("密码正确\n");break;}
else
printf("\t\t输入的密码错误!
请再次输入密码:
\n");}}
//信息输入函数//
voidzjsj()
{
intj,k;
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\t\t\t**************************\n");
printf("\t\t\t*欢迎进入职工信息输入系统*\n");
printf("\t\t\t**************************\n");
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\n\n\n");
printf("\t\t请输入新的职工信息\n");
printf("\n");
L:
printf("职工号");
scanf("%d",&str1[u].num);
for(j=0;j
{if((str1[u].num==str1[j].num))
{printf("\t\t职工号重复,请重新输入:
\n");
scanf("%d",&str1[u].num);}}
printf("姓名");
scanf("%s",&str1[u].name);
printf("性别");
scanf("%s",str1[u].sex);
printf("年龄");
scanf("%d",&str1[u].age);
printf("学历");
scanf("%s",&str1[u].xueli);
printf("工资");
scanf("%d",&str1[u].gongzi);
u=u+1;
printf("\t\t是否继续输入信息,继续(Y),退出(n)\n");
getchar();
a=getchar();
if(a=='y'||a=='Y')gotoL;
else
printf("\n\n");
printf("\t\t职工号姓名性别年龄学历工资\n");
for(j=0;j
{printf("\t\t%d\t",str1[j].num);
printf("%s\t",str1[j].name);
printf("%s\t",str1[j].sex);
printf("%d\t",str1[j].age);
printf("%s\t",str1[j].xueli);
printf("%d",str1[j].gongzi);
printf("\n");}
printf("\n");
printf("\t\t\t按1键退出\n");
scanf("%d",&k);
getchar();}
//信息删除函数//
voidscsj()
{
intz,i,y1,y2,k;
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\t\t\t*****************************\n");
printf("\t\t\tYouhaveacesstodeletedata!
\n");
printf("\t\t\t!
^_^信息删除系统^_^!
\n");
printf("\t\t\t*****************************\n");
printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\n\n");
printf("\t╭⌒╮¤东边日出 ╭⌒╮西边雨 \n");
printf("\t╭╭⌒╮道是无晴●╭○╮╭╭⌒╮却有晴\n");
printf("\t╰----╯/█∨█\╰----╯\n");
printf("\t删除前~~~~~~~~~~∏~~∏~~~~~~~~~~望加思量\n");
N:
printf("\n\n");
printf("\t\t请输入要删除的职工号:
");
scanf("%d",&y1);
printf("\n");
printf("\t\t请再次输入要删除的职工号:
");
scanf("%d",&y2);
printf("\n");
if(y1==y2)
{
for(i=0;i
if(y1==str1[i].num){z=i;break;}
printf("\n\n\n");
printf("\t\t要删除的职工信息是:
\n");
printf("\n");
printf("\t\t职工号姓名性别年龄学历工资\n");
{printf("\t\t%d\t",str1[i].num);
printf("%s\t",str1[i].name);
printf("%s\t",str1[i].sex);
printf("%d\t",str1[i].age);
printf("%s\t",str1[i].xueli);
printf("%d",str1[i].gongzi);}
t++;}
printf("\n");
for(i=z;i {strcpy(str1[i].name,str1[i+1].name); strcpy(str1[i].sex,str1[i+1].sex); strcpy(str1[i].xueli,str1[i+1].xueli); str1[i].age=str1[i+1].age; str1[i].num=str1[i+1].num; str1[i].gongzi=str1[i+1].gongzi;} if(z==u) printf("\t\t没有此职工号信息\n"); printf("\n\n\n"); printf("\t\t职工号姓名性别年龄学历工资\n"); for(i=0;i {printf("\t\t%d\t",str1[i].num); printf("%s\t",str1[i].name); printf("%s\t",str1[i].sex); printf("%d\t",str1[i].age); printf("%s\t",str1[i].xueli); printf("%d",str1[i].gongzi); printf("\n");} printf("\t\t是否继续进行操作,继续(Y),退出(n)\n"); getchar(); a=getchar(); if(a=='y'||a=='Y')gotoN; else printf("\n"); printf("\t\t\t按1键退出\n"); scanf("%d",&k); getchar();} //信息查找函数// voidczsj() { inti,y; printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n"); printf("\t\t\t******************************\n"); printf("\t\t\t~O(∩_∩)O~\n"); printf("\t\t\t***欢迎进入信息查找系统***\n"); printf("\t\t\t******************************\n"); printf("\t\t\t★☆★☆★☆★☆★☆★☆★☆★☆★\n"); printf("\n\n\n"); R: printf("\t\t\t请输入要查询的职工号: "); scanf("%d",&y); printf("\n\n"); printf("\t\t职工号姓名性别年龄学历工资\n"); for(i=0;i if(y==str1[i].num) {printf("\t\t%d\t",str1[i].num); printf("%s\t",str1[i].name); printf("%s\t",str1[i].sex); printf("%d\t",str1[i].age); printf("%s\t",str1[i].xueli); printf("%d",str1[i].gongzi); printf("\n");} printf("\n\n"); printf("\t\t是否继续进行操作,继续(Y),退出(n)\n"); getchar(); a=getchar(); if(a=='y'||a=='Y')go
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告