主题:[讨论]C语言程序设计 成绩记录簿 求帮助
gaorena
[专家分:0] 发布于 2011-05-23 14:16:00
编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信
回复列表 (共5个回复)
沙发
gaorena [专家分:0] 发布于 2011-05-23 17:47:00
请求用TC 在这里谢过
板凳
gaorena [专家分:0] 发布于 2011-05-23 17:49:00
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
/*定义学生的类型*/
struct cj
{
int cjnum; //定义学号为整型
char cjname[20]; //定义姓名为字符数组
float cjcreat,cjnew; //定义成绩,新成绩为浮点型
}cj[1000];
//////////////////////////////////查询成绩模块//////////////////////////////////////////
/////////////////////////////////按学号查询/////////////////////////////////////////////
findcj()
{
FILE *fp; //定义文件fp
int cjnum;//定义学号
int i; //定义变量i用来控制学生的个数
fp=fopen("cj.txt","r"); //用只读的形式打开文件 cj.txt
printf("\n请输入您要查找的学生学号:");
scanf("%d",&cjnum); //输入学号
for(i=0;fread(&cj[i],sizeof(struct cj),1,fp)!=0;i++)
{
if(cjnum==cj[i].cjnum) //判断有没有你要查找的学号
{
printf("\n您要查找的成绩详细信息为:\n");
printf("学号 姓名 成绩\n%d %8s %f\n",cj[i].cjnum,cj[i].cjname,cj[i].cjcreat);
printf("\n查询成功,请按任意键返回.");
fclose(fp);
return 0; //结束此操作
}
}
printf("没有您要查询的信息!\n");
fclose(fp);//关闭文件
return 0;
}
/////////////////////////////////////按姓名查询///////////////////////////
findcj1()
{
FILE *fp;
char cjname[20];
int i;
fp=fopen("cj.txt","r"); //打开文件
printf("\n请输入您要查找的学生姓名:\n"); //查找的学生姓名
scanf("%s",cjname); //输入姓名
for(i=0;fread(&cj[i],sizeof(struct cj),1,fp)!=0;i++) //在文件中查找
{
if(strcmp(cjname,cj[i].cjname)==0) //判断有没有你要查找的姓名
{
printf("\n您要查找的成绩的详细信息为:\n");
printf("学号 姓名 成绩\n%d %8s %f\n",cj[i].cjnum,cj[i].cjname,cj[i].cjcreat);
printf("\n查询成功,请按任意键返回.");
fclose(fp); //关闭文件
return 0;
}
}
printf("没有您要查询的信息\n");
fclose(fp);
return 0;
}
////////////////////////////////////查询成绩信息///////////////////////////////////
3 楼
gaorena [专家分:0] 发布于 2011-05-23 17:51:00
chacj()
{
char ch5;
do //不选择返回则进行
{
system("cls");//将屏幕清空
printf("\n ◎◎◎欢迎进入成绩查询系统◎◎◎\n");
printf(" 1: 按学号查询 \n");
printf(" 2: 按姓名查询 \n");
printf(" 0: 返回 \n");
printf(" 请输入您的选择:(0━2):");
ch5=getch();
switch(ch5)
{
case '1':findcj();getch();break; //调用findcj(),按学号查询
case '2':findcj1();getch();break; //调用findcj1(),按姓名查询
case '0':break; //退出,返回上一操作
default:printf("无此操作!\n");getch();break; //没输入任何数字时则输出无此操作
}
}while(ch5!='0');
return 0;
}
////////////////////////////成绩管理模块//////////////////////////////////////
////////////////////////////增加成绩信息///////////////////////////////////////
addcj()
{
FILE *fp;
int i=0;
char choice='y';
fp=fopen("cj.txt","a+");//用追加的形式打开文件 cj.txt
while(choice=='y'||choice=='Y') //选择y或Y
{
system("color 3f");//设置背景颜色
system("cls"); //清屏
printf("\n ◎◎◎欢迎进入成绩添加系统◎◎◎\n");
printf("\n请输入您要添加的学号:");
scanf("%d",&cj[i].cjnum);
printf("\n请输入您要添加的姓名:");
scanf("%s",cj[i].cjname);
printf("\n请输入您要添加的c的成绩:");
scanf("%f",&cj[i].cjcreat);
fwrite(&cj[i],sizeof(struct cj),1,fp); //将添加的内容写入文件中
printf("\n是否要输入下一名学生的信息(y/n):");
scanf("%s",&choice);
}
fclose(fp);
}
///////////////////////////////删除学生信息////////////////////////////////////
4 楼
gaorena [专家分:0] 发布于 2011-05-23 17:52:00
TC TC 高手 在哪啊?
5 楼
cgl_lgs [专家分:21040] 发布于 2011-05-23 19:35:00
TC还是别用了。。。
我来回复