| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1616 人关注过本帖
标题:添加函数不知如何编,其中还有两个问题,求解答
只看楼主 加入收藏
晚叹诶
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-5-8
结帖率:0
收藏
已结贴  问题点数:1 回复次数:10 
添加函数不知如何编,其中还有两个问题,求解答
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 15
struct student{
    union{
    struct a;//本科生
    struct b;//研究生
    };
    enum{a,b};
    struct student *link;
};
struct a{       //本科生
int number;//学号
char name[N];//姓名
char sex;//性别
int cla;//班别
char major;//专业
int score[3];//成绩
int sum;//总分
int ave;//平均分
}stu[N];

struct b{         //研究生
int number;//
char name[N];//
char sex;//
int cla;//
char major;//
char yanjiufanx;//研究方向
char teacher;//导师
int score[2];
int sum;
int ave;
}stu[N];

void menu();

void write();   //添加信息

void change(int n);//修改信息

int del(int n);//删除信息

void outputonestudent(int i);//查询一个学生信息

void searchmenu(int n);//查询信息操作

void searchnumber(int n);//按学号查询

void searchname(int n);//按姓名查询

void inturn(struct student c[]);//排序

void tongji();//统计

void save(int x);//保存

void main(){
int choice;

printf("学生成绩管理系统");
while(1){
menu();
printf("请选择:");
scanf("%d",&choice);

if(choice==0){
printf("谢谢使用!");
break;
}
switch(choice){
case 1:
    write();
    inturn(stu);//为什么这里显示“a”的实参“student”的形参不兼容
    save(N);
    break;
case 2:
    change(n);//为什么说没定义
    break;
case 3:
    del(n);
    break;
case 4:
    searchmenu(n);
    break;
case 5:
    tongji();
case 0:
    printf("谢谢使用!再见。");
default:
    printf("按键错误,请重新选择!");
}
}
}
void menu(){
printf("请输入所需选择\n");

printf("1.添加学生信息\n");

printf("2.修改学生信息\n");

printf("3.删除学生信息\n");

printf("4.查询学生信息\n");

printf("5.统计学生信息\n");

printf("0.退出系统\n");
}
void write(){   //添加学生信息.....如何分别输入本科生和研究生的信息?
int i;



}
搜索更多相关主题的帖子: 研究生 include number 本科生 如何 
2017-05-09 13:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
你这是直接列提纲 让别人填写核心内容啊  
相当于你这个项目自己实现了1%都不到  别人实现了99%+

DO IT YOURSELF !
2017-05-09 14:10
晚叹诶
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-5-8
收藏
得分:0 
void write(){   //添加学生信息.....如何分别输入本科生和研究生的信息?
int i;
int n;
int choice;
printf("0.本科生   1.研究生\n");
printf("请输入选择:");
scanf("%d",&choice);
if(choice==0){
    printf("请输入本科生的人数:",n);
scanf("%d",&n);
}
for(i=0;i<n;i++){
printf("");
scanf("");

}
if(choice==1){
printf("");
scanf("");
}
for(i=0;i<n;i++){
printf();
scanf();

}

}这是我后来自己想的,不知道可不可以
2017-05-09 16:11
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:1 
回复 2楼 wp231957
好吧,我笑了。


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 18:15
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 3楼 晚叹诶
数据类型的定义错了,应该写成下面这样。
程序代码:
struct a{       //本科生
int number;//学号
char name[N];//姓名
char sex;//性别
int cla;//班别
char major;//专业
int score[3];//成绩
int sum;//总分
int ave;//平均分
};

struct b{         //研究生
int number;//
char name[N];//
char sex;//
int cla;//
char major;//
char yanjiufanx;//研究方向
char teacher;//导师
int score[2];
int sum;
int ave;
};

struct student{
    union{
    struct a benkesheng;
    struct b yanjiusheng;
    }xuesheng;
    enum{benkesheng,yanjiusheng}type;//枚举的名字必须明确,不然谁知道a,b是什么玩意儿。
    struct student *link;
};


[此贴子已经被作者于2017-5-9 18:18编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 18:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 5楼 renkejun1942
为啥要用联合体以及枚举呢

DO IT YOURSELF !
2017-05-09 18:33
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 6楼 wp231957
区分类型。
你没看他的数据中有两种个结构,一个是研究生,一个是本科生。(好吧,他的那个数据结构的框架其实就是我写的,他自己完善了具体细节。)
如果type的值是benkesheng,那么就按照benkesheng的结构录入数据。
如果是yanjiusheng,那么就按照Yanjiusheng的结构录入数据。
枚举只是让一切变的清晰,实际上你用具体的数字也可以做。


说道这里,我又想起我那个零件管理系统,做了些多余的事。

相同结构可以直接赋值,我竟然还一个一个的赋值。

[此贴子已经被作者于2017-5-9 18:40编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 18:36
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
从来没玩过联合体  不知道咋玩

DO IT YOURSELF !
2017-05-09 18:39
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 8楼 wp231957
你看下我那个零件管理系统的一个函数就知道了,你等等,我复制那个函数过来。

算了,我那个函数并不适合当例子。

以后吧,联合反正用的也很少。

[此贴子已经被作者于2017-5-9 18:41编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 18:40
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
这是我那个程序的结构。
程序代码:
#ifndef DATATYPE_H
#define DATATYPE_H
struct Head {
    int MaxNumber;//最大编号
    int DeleteionNumber;//缺失的编号
    double Total;//所有零件的总价
}; 

struct Component {
    char Description[ 21 ];//描述信息
    int PartNumber;//编号
    int Quantity;//数量
    double ComponentTotal;//该零件的总价值
};

typedef struct NODE {
    union {
        struct Head HeadInformation;
        struct Component ComponentInformation;
    }Ption;
    enum { Head, Component }Type;
    struct NODE *Next;
}Node;
#endif


这是一个使用方法。
    InNode.Type = Head;
    InNode.Ption.HeadInformation.MaxNumber = 0;
    InNode.Ption.HeadInformation.DeleteionNumber = 0;
    InNode.Ption.HeadInformation.Total = 0;


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 18:44
快速回复:添加函数不知如何编,其中还有两个问题,求解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017267 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved