A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© MadPawn 中级黑马   /  2015-5-17 14:40  /  2616 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编写一个学生管理系统程序,用来记录学生的信息(包括姓名、年龄、性别、学号、分数),提供增加、删除、查询学生信息的入口。(C语言)
就是这个题目了,做了两天了,百度了,几大论坛也找过好几回了,还是不会弄。有没有人能救救我。

20 个回复

倒序浏览
这个题目出现在基础测试里面有点变态,楼主可以尝试放弃
回复 使用道具 举报
这是基础测试??别闹了,这个题有点复杂吧。。。兄弟  你点子太背了。。这个我真心不会。。
回复 使用道具 举报
x331275955 发表于 2015-5-17 15:15
这是基础测试??别闹了,这个题有点复杂吧。。。兄弟  你点子太背了。。这个我真心不会。。 ...

我发四,这就是我的基础测试题:'(
回复 使用道具 举报
这个是C高级的题啊. 涉及到链表. 你可以百度下链表的增加删除和查找功能
回复 使用道具 举报
定义学生信息, 做成包含指针的链表
  1. 
  2. struct student
  3. {
  4. char name[20];
  5. char Num[20];
  6. char sex;
  7. int age;
  8. float score;
  9. };
  10. typedef struct node
  11. {
  12. struct student data;
  13. struct node *next;
  14. }Node;
复制代码
回复 使用道具 举报
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef struct student
  4. {
  5.     char name[30]; char sex;
  6.     int age;
  7.     float score;
  8. }STU;

  9. typedef struct node
  10. {
  11.     struct student data;
  12.     struct node *next;
  13. }Node;

  14. void init()
  15. {
  16.     STU stu[5] =
  17.     {
  18.         {"zhangsan",'s',12,99.4},
  19.         {"lisi",'x',34,34.5},
  20.         {"wangwu",'a',23,45.6},
  21.         {"zhaoliu",'b',23,89.0},
  22.         {"bob",'s',89,23.7}
  23.     };
  24.     FILE * fp = fopen("stu.data","w");
  25.     fwrite(stu,sizeof(STU),5,fp);
  26.     fclose(fp);
  27. }

  28. Node *createListFromFile()
  29. {
  30.     Node *head = (Node*)malloc(sizeof(Node));
  31.     head->next = NULL;
  32.     FILE *fp = fopen("stu.data","r");
  33.     if(fp == NULL) return -1;
  34.     Node * cur = (Node*)malloc(sizeof(Node));
  35.     while(fread(&cur->data,sizeof(STU),1,fp)>0) {
  36.         cur->next = head->next; head->next = cur;
  37.         cur = (Node*)malloc(sizeof(Node)); }
  38.     free(cur);
  39.     return head;
  40. }

  41. void displayStudent(Node * head)
  42. {
  43.     head = head->next;
  44.     while(head)
  45.     {
  46.         printf("%10s\t%c\t%d\t%g\t \n",
  47.                head->data.name, head->data.sex,
  48.                head->data.age,head->data.score);
  49.         head = head->next;
  50.     }
  51. }

  52. void insertStudent(Node *head)
  53. {
  54.     Node * cur = (Node*)malloc(sizeof(Node));
  55.     printf("name:");
  56.     scanf("%s",cur->data.name);
  57.     getchar();
  58.     printf("sex:");
  59.     scanf("%c",&cur->data.sex);
  60.     printf("age:");
  61.     scanf("%d",&cur->data.age);
  62.     printf("score:");
  63.     scanf("%f",&cur->data.score);
  64.    
  65.     cur->next = head->next;
  66.     head->next = cur;
  67. }

  68. void deleteStudent(Node *head)
  69. {
  70.     printf("input student name:");
  71.     char buf[30];
  72.     scanf("%s",buf);
  73.     Node * pfind = head;
  74.     while(pfind != NULL)
  75.     {
  76.         if(strcmp(pfind->data.name,buf) == 0)
  77.             break;
  78.         pfind = pfind->next;
  79.     }
  80.     if(pfind == NULL) printf("find none\n");
  81.     else{
  82.             while(head->next != pfind) head = head->next;
  83.             head->next = pfind->next;
  84.             free(pfind);
  85.         }
  86.     return ;
  87. }

  88. void saveStudent2File(Node *head)
  89. {
  90.     FILE *fp = fopen("stu.data","w");
  91.     head = head->next;
  92.     while(head != NULL)
  93.     {
  94.         fwrite(&head->data,sizeof(STU),1,fp);
  95.         head = head->next;
  96.     }
  97.     fclose(fp);
  98. }
  99. int main(void)
  100. {
  101.     // init();
  102.     Node * head;
  103.     head = createListFromFile();
  104.    
  105.     int choice;
  106.     while(1)
  107.     {
  108.         system("cls");
  109.         displayStudent(head);
  110.         printf("1->insert \t2->delete\t3->exit\t\n"); scanf("%d",&choice);
  111.         switch(choice)
  112.         {
  113.                
  114.             case 1: insertStudent(head); break;
  115.                
  116.             case 2: deleteStudent(head); break;
  117.                
  118.             case 3: saveStudent2File(head); return 0;
  119.                
  120.             default:
  121.                 break;
  122.         }
  123.     }
  124.    
  125.     return 0;
  126. }
复制代码

这个你可以看看, 看不明白就不用看了. 你会了老师才觉得奇怪
回复 使用道具 举报 1 0
Rdxer 中级黑马 2015-5-17 16:48:50
8#
需要保存到文件???不需要还难???
回复 使用道具 举报
fixer 中级黑马 2015-5-17 18:10:37
9#
网上一般能找到合适的答案,建议楼主尝试理解,自己写出来,如果自己写不出来建议放弃,如果作弊被发现还不如少拿几分
回复 使用道具 举报
我是这一期的基础班的  刚开始 这个是等我们基础班结束时候的考试题??
回复 使用道具 举报
liyuer 来自手机 中级黑马 2015-5-17 18:39:51
11#
综合性有点太大了!用java编程可以不?
回复 使用道具 举报
吐槽了,基础考试这么难么。
回复 使用道具 举报
好难啊。。
回复 使用道具 举报
这基础也太变态了吧
回复 使用道具 举报
技术含量比较高!
回复 使用道具 举报
基础就这样了  那么屌
回复 使用道具 举报
~缘~ 中级黑马 2015-5-18 00:26:21
17#
不会怎么办
回复 使用道具 举报
只能是学习! 预知未来的学习内容!
回复 使用道具 举报
可以用结构体数组实现简单的,不一定用链表
回复 使用道具 举报
这个就算把c语言学完也不一定做得出来,需要一定的功底,我们C语言的课程设计就是这个,弄了2周
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马