黑马程序员技术交流社区
标题:
【求助】基础测试里的一道题
[打印本页]
作者:
MadPawn
时间:
2015-5-17 14:40
标题:
【求助】基础测试里的一道题
编写一个学生管理系统程序,用来记录学生的信息(包括姓名、年龄、性别、学号、分数),提供增加、删除、查询学生信息的入口。(C语言)
就是这个题目了,做了两天了,百度了,几大论坛也找过好几回了,还是不会弄。有没有人能救救我。
作者:
welfarezhang
时间:
2015-5-17 14:43
这个题目出现在基础测试里面有点变态,楼主可以尝试放弃
作者:
x331275955
时间:
2015-5-17 15:15
这是基础测试??别闹了,这个题有点复杂吧。。。兄弟 你点子太背了。。这个我真心不会。。
作者:
MadPawn
时间:
2015-5-17 16:15
x331275955 发表于 2015-5-17 15:15
这是基础测试??别闹了,这个题有点复杂吧。。。兄弟 你点子太背了。。这个我真心不会。。 ...
我发四,这就是我的基础测试题:'(
作者:
cui0wei0
时间:
2015-5-17 16:21
这个是C高级的题啊. 涉及到链表. 你可以百度下链表的增加删除和查找功能
作者:
cui0wei0
时间:
2015-5-17 16:24
定义学生信息, 做成包含指针的链表

struct student
{
char name[20];
char Num[20];
char sex;
int age;
float score;
};
typedef struct node
{
struct student data;
struct node *next;
}Node;
复制代码
作者:
cui0wei0
时间:
2015-5-17 16:43
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
char name[30]; char sex;
int age;
float score;
}STU;
typedef struct node
{
struct student data;
struct node *next;
}Node;
void init()
{
STU stu[5] =
{
{"zhangsan",'s',12,99.4},
{"lisi",'x',34,34.5},
{"wangwu",'a',23,45.6},
{"zhaoliu",'b',23,89.0},
{"bob",'s',89,23.7}
};
FILE * fp = fopen("stu.data","w");
fwrite(stu,sizeof(STU),5,fp);
fclose(fp);
}
Node *createListFromFile()
{
Node *head = (Node*)malloc(sizeof(Node));
head->next = NULL;
FILE *fp = fopen("stu.data","r");
if(fp == NULL) return -1;
Node * cur = (Node*)malloc(sizeof(Node));
while(fread(&cur->data,sizeof(STU),1,fp)>0) {
cur->next = head->next; head->next = cur;
cur = (Node*)malloc(sizeof(Node)); }
free(cur);
return head;
}
void displayStudent(Node * head)
{
head = head->next;
while(head)
{
printf("%10s\t%c\t%d\t%g\t \n",
head->data.name, head->data.sex,
head->data.age,head->data.score);
head = head->next;
}
}
void insertStudent(Node *head)
{
Node * cur = (Node*)malloc(sizeof(Node));
printf("name:");
scanf("%s",cur->data.name);
getchar();
printf("sex:");
scanf("%c",&cur->data.sex);
printf("age:");
scanf("%d",&cur->data.age);
printf("score:");
scanf("%f",&cur->data.score);
cur->next = head->next;
head->next = cur;
}
void deleteStudent(Node *head)
{
printf("input student name:");
char buf[30];
scanf("%s",buf);
Node * pfind = head;
while(pfind != NULL)
{
if(strcmp(pfind->data.name,buf) == 0)
break;
pfind = pfind->next;
}
if(pfind == NULL) printf("find none\n");
else{
while(head->next != pfind) head = head->next;
head->next = pfind->next;
free(pfind);
}
return ;
}
void saveStudent2File(Node *head)
{
FILE *fp = fopen("stu.data","w");
head = head->next;
while(head != NULL)
{
fwrite(&head->data,sizeof(STU),1,fp);
head = head->next;
}
fclose(fp);
}
int main(void)
{
// init();
Node * head;
head = createListFromFile();
int choice;
while(1)
{
system("cls");
displayStudent(head);
printf("1->insert \t2->delete\t3->exit\t\n"); scanf("%d",&choice);
switch(choice)
{
case 1: insertStudent(head); break;
case 2: deleteStudent(head); break;
case 3: saveStudent2File(head); return 0;
default:
break;
}
}
return 0;
}
复制代码
这个你可以看看, 看不明白就不用看了. 你会了老师才觉得奇怪
作者:
Rdxer
时间:
2015-5-17 16:48
需要保存到文件???不需要还难???
作者:
fixer
时间:
2015-5-17 18:10
网上一般能找到合适的答案,建议楼主尝试理解,自己写出来,如果自己写不出来建议放弃,如果作弊被发现还不如少拿几分
作者:
尹世伟
时间:
2015-5-17 18:28
我是这一期的基础班的 刚开始 这个是等我们基础班结束时候的考试题??
作者:
liyuer
时间:
2015-5-17 18:39
综合性有点太大了!用java编程可以不?
作者:
等风继续吹
时间:
2015-5-17 19:18
吐槽了,基础考试这么难么。
作者:
wodeheimalife
时间:
2015-5-17 19:47
好难啊。。
作者:
doushu
时间:
2015-5-17 21:38
这基础也太变态了吧
作者:
追随自然
时间:
2015-5-17 23:32
技术含量比较高!
作者:
aSmallStone
时间:
2015-5-17 23:44
基础就这样了 那么屌
作者:
~缘~
时间:
2015-5-18 00:26
不会怎么办
作者:
梦初醉
时间:
2015-5-18 00:50
只能是学习! 预知未来的学习内容!
作者:
飞翔的猪
时间:
2015-5-18 14:04
可以用结构体数组实现简单的,不一定用链表
作者:
卖报的小画家
时间:
2015-5-18 14:59
这个就算把c语言学完也不一定做得出来,需要一定的功底,我们C语言的课程设计就是这个,弄了2周
作者:
wr6524798
时间:
2015-5-18 18:47
http://bbs.itheima.com/thread-197301-1-1.html
楼主可以参考下我写的 ,楼主有更好的代码 希望告我下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2