c语言课程设计报告含代码.docx
《c语言课程设计报告含代码.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告含代码.docx(25页珍藏版)》请在冰豆网上搜索。
![c语言课程设计报告含代码.docx](https://file1.bdocx.com/fileroot1/2022-11/16/8dfcca49-abc8-422a-bf78-8ae841433760/8dfcca49-abc8-422a-bf78-8ae8414337601.gif)
c语言课程设计报告含代码
西安郵電學院
C语言课程设计报告
题目:
学生成绩管理系统
院系名称:
计算机学院
专业名称:
计算机科学与技术
班级:
学生姓名:
学号(8位):
指导教师:
设计起止时间:
一.设计目的
1.强化上机动手能力,在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程化软件设计的基本方法;
2.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力;
3.为后续各门计算机课程的学习打下坚实基础。
二.设计内容
1.通过键盘输入学生成绩档案;
2.对所输入的数据进行排序,删除修改,插入等管理操作;
3.运用文件将实现数据的保存和读出;
4.对此程序进行加密操作;
5.实现程序操作界面的简单美化;
6.实现程序的操作简单化,方便用户。
三.概要设计
1.功能模块图;
2.各个模块详细的功能描述。
1.通过密码进入系统(已确立的密码);
2.输入数据(学生的学号姓名,性别,年龄,各门学科的成绩);
3.查找成绩(根据学号或者姓名进行查询);
4.删除学生信息(整条信息的删除);
5.插入修改学生信息;
6.对成绩进行排序(按平均分);
7.存储数据(文件存储);
8.读出数据(将保存在文件的数据读出);
9.退出程序;
四.详细设计
1.功能函数的调用关系图
2.各功能函数的数据流程图
学生成绩档案的输入成绩的修改
整条删除和添加学生信息学生成绩统计和排序
文件的保存于读取成绩输出
3.重点设计及编码
删除功能函数
voiddel()
{
intn,j;
printf("请输入学号:
\n");
scanf("%d",&n);
for(j=0;j<=c;j++)
{
if(stu[j].stuNO==n)
{
inti=j;
while(i++!
=c)
stu[i-1]=stu[i];
}
}
--c;
menu();
}
五.测试数据及运行结果
1.正常测试数据和运行结果
注释:
个人成绩信息的输入排序(按照学号)级打印
2.异常测试数据及运行结果
输入的错误数据结果
六.调试情况,设计技巧及体会
1.改进方案
对于此次课程设计,总体我认为还是不错的,但是仍存在这一点遗憾就是:
我对界面进行了简单的颜色和整体结构设计但仍不完美,还有就是没有运用链表而是采用了数组进行了数据的保存。
因此接下来的任务就显而易见了,这就需要我再接再厉,将此次课程设计所要求设计的程序美化,使之成为一个简单实用完美的程序!
2.体会
通过此次课程设计,使我更加扎实的掌握了有关C语言方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘。
七.参考文献
《C语言程序设计》(第二版)
《C语言程序设计》谭浩强编清华大学出版社
八.附录:
#include"stdio.h"
#include"windows.h"
#include"time.h"
#include"stdlib.h"
#include"conio.h"
#defineNUM200
//结构体定义
structnode
{
intstuNO;
charname[10];
charsex[6];
intage;
intChinese;
intEnglish;
intComputer;
intMath;
inttotal;
intaverage;
}stu[NUM];
structnodetemp;
intc=0;
//函数声明
voidmenu();
voidinput();
voidsort();
voidfind();
voiddel();
voidoutput();
voiderror();
voidinsert();
voidprint(inti);
intmima(void);
voidtuichu();
voidread();
voidsave();
voidput();
voidmain()
{
intn=0,choice,password;
for(choice=1;;choice++)
{
password=mima();
if(password==1)
break;
elseif(choice==3)
{
printf("\n输入次数已达到3次,系统将强制退出!
\n");
exit
(1);//密码错误异常退出
}
}
menu();
}
//菜单函数
voidmenu()
{
intselect;
time_tt;
time(&t);
system("cls");
printf("\n");
printf("\t\t〖欢迎您使用成绩管理系统〗\n");
printf("\n");
printf("\t\t\t\t————西安邮电学院王一帆\n");
printf("\n");
printf("\t\t▂▃▄▅▆▇█▇▆▅▄▃▂\n");
printf("\t******************************************************\n");
printf("\t*\t\t[1]输入成绩*\n");
printf("\t*\t\t[2]查找成绩*\n");
printf("\t*\t\t[3]插入成绩*\n");
printf("\t*\t\t[4]删除成绩*\n");
printf("\t*\t\t[5]打印成绩*\n");
printf("\t*\t\t[6]成绩排序*\n");
printf("\t*\t\t[7]保存文件*\n");
printf("\t*\t\t[8]读取文件*\n");
printf("\t*\t\t[0]退出系统*\n");
printf("\t******************************************************\n");
printf("\t******************************************************\n");
printf("\n");
printf("\t\t\t当前时间%s",ctime(&t));
printf("\n");
printf("\t请输入你的选项(0--8):
");
scanf("%d",&select);
switch(select)//判断选择
{
case1:
system("color1F");
input();
break;
case2:
system("color2F");
find();
break;
case3:
system("color3F");
insert();
break;
case4:
system("color4F");
del();
break;
case5:
system("color5F");
output();
break;
case6:
system("color6F");
sort();
break;
case7:
system("color7F");
save();
break;
case8:
system("color8F");
put();
break;
case0:
system("color9F");
tuichu();
break;
default:
error();
break;
}
}
//输入函数
voidinput()
{
inti;//循环变量
system("cls");//清屏
printf("\n");
printf("请输入你要输入的人数:
");
scanf("%d",&c);//下标C保存多少个学生
c--;
if(c>NUM)
{
printf("最多输入%d个学生\n",NUM);
printf("按任意键返回");
getchar();
getchar();
input();//递归调用
}
for(i=0;i<=c;i++)//NUM是一个常量
{
printf("\n第%d个学生的学号:
",i+1);
scanf("%d",&stu[i].stuNO);
printf("第%d个学生的姓名:
",i+1);
scanf("%s",stu[i].name);
printf("第%d个学生的性别:
",i+1);
scanf("%s",stu[i].sex);
printf("第%d个学生的年龄:
",i+1);
scanf("%d",&stu[i].age);
printf("第%d个学生的语文成绩:
",i+1);
scanf("%d",&stu[i].Chinese);
printf("第%d个学生的英语成绩:
",i+1);
scanf("%d",&stu[i].English);
printf("第%d个学生的电脑成绩:
",i+1);
scanf("%d",&stu[i].Computer);
printf("第%d个学生的数学成绩:
",i+1);
scanf("%d",&stu[i].Math);
stu[i].total=stu[i].Chinese+stu[i].English+stu[i].Computer+stu[i].Math;
stu[i].average=stu[i].total/4;
}
printf("\n按回车键返回主菜单……\n");
getchar();
getchar();
menu();
}
//排序函数
voidsort()
{
inti,j;
structnodetemp;
for(i=0;i{
for(j=i+1;j