要求有5个功能。1 输入功能:录入学生信息;
2 显示功能:完成学生记录的显示;
3 查找功能:完成查看所有学生,按学号或姓名查找学生的相关记录,并显示;
4 更新功能:(增加或删除)。
利用结构体数组实现学生信息的数据结构设计,且各个功能模块用函数的形式实现。(加注释的话更好)
c语言课程设计:学生档案管理系统
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- Histheme 2017-05-30 08:03关注
#include
#include
#include
#include
#include
struct studentding{
char name[19];
int goal[3];
int xuenum;
};
int stunum;
struct studentding student;
int searchnum;
int cmp(const void*a,const void *b)//¿ìÅŵĶԱȺ¯Êý
{
return (((struct studentding )a).xuenum-((struct studentding )b).xuenum>0?1:-1);
}
void inputmes()//ÊäÈë
{
int x;
puts("How many students do you have ?");
scanf("%d",&stunum);
student=(struct studentding *)malloc(stunum*sizeof(struct studentding)); //¶¯Ì¬ÄÚ´æ·ÖÅä¸ø½á¹¹ÌåÊý×é
for(x=0;x {
printf("input a student id:");
scanf("%d",&student[x].xuenum);
getchar();
printf("input a student name contain less than 19 characters:");
gets((student+x)->name);
printf("input 3 scores:");
scanf("%d%d%d",&student[x].goal[0],&student[x].goal[1],&student[x].goal[2]);
while(getchar()!='\n');//³ÔµôÈ«²¿µÄ»»Ðзû
}
qsort(student,stunum,sizeof(struct studentding),cmp);//¿ìÅŵÄÔËÓÃ
}
void outputmes()
{
int x;
printf("please input the id of the student which you want to search:");
scanf("%d",&searchnum);
getchar();
x=search();
if(x>=0)
{
printf("student id:%d name :\t%s,scores:",student[x].xuenum,student[x].name);
printf("<%d %d %d>\n",student[x].goal[0],student[x].goal[1],student[x].goal[2]);
}
else
return;
}
int search()//¶þ·Ö·¨²éÕÒ
{
int x;
if(searchnum==student[stunum/2].xuenum)
return stunum/2;
else if(searchnum>student[stunum/2].xuenum)
{
for(x=stunum/2;x if(searchnum==student[x].xuenum)
return x;
puts("Not found!");
return -1;
}
else if(searchnum {
for(x=stunum/2;x>=0;x--)
if(searchnum==student[x].xuenum)
return x;
puts("Not found!");
return -1;
}
}
void dele()//ɾ³ýѧÉúÐÅÏ¢
{
int x;
int y;
printf("please input the student id which you want to delete:");
scanf("%d",&searchnum);
getchar();
x=search();
if(x>=0)
{
memmove(&student[x],&student[x+1],sizeof(student[0])(stunum-x-1));
stunum-=1;
}
else
return;
}
int main()
{
char ch;
inputmes();
while(1)//Èý¸öÑ¡Ïî
{
puts("what do you select ? please press not input\na:search a student and his massage.\nb:delete a student\nc:exit ");
ch=getch();
if(ch=='a')//Ñ¡ÔñµÄ²Ëµ¥
{
outputmes();
puts("press r to return");
ch=getch();
system("cls");
}
else if(ch=='b')
{
dele();
puts("press r to return");
ch=getch();
system("cls");
}
else if(ch=='c')//Í˳öµÄÌõ¼þ
return;
else
{
puts("No,please press a ,b or c");
sleep(1);
system("cls");
}
}
}
去年学c时候做的,感觉应该还能用本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 9
悬赏问题
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用