用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别,还有三门课比如语,数,外的成绩
*/
//FileName: stuinfo.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SERIALLEN 20
#define COURSENUM 3
typedef struct
{
char course[SERIALLEN]
float score
}_courseInfo
typedef struct _stuinfo
{
char serial[SERIALLEN]
char name[SERIALLEN]
char sex[SERIALLEN]
_courseInfo courseInfo[COURSENUM]
struct _stuinfo *next
}stuinfo
int main(int argc, char **argv)
{
stuinfo *head=NULL,*ptr=NULL,*s=NULL
char str[SERIALLEN]
int cycle=1
int i=0
memset(str,0,SERIALLEN)
printf("建立学生信息:\n")
head=(stuinfo *)calloc(1,sizeof(stuinfo))
if(!head)
{
perror("申请空间失败,没有足够内存。")
return -1
}
ptr=head
while(cycle)
{
puts("输入学生学号(0退出):")
scanf("%s",str)
if(strcmp(str,"0")) //如果学号为0,则退出链表的创建
{
s=(stuinfo *)calloc(1,sizeof(stuinfo))
if(!ptr)
{
perror("申请空间失败,没有足够内存。")
return -1
}
memset(s->serial,0,SERIALLEN)
strcpy(s->serial,str)
memset(s->name,0,SERIALLEN)
puts("输入姓名:")
scanf("%s",s->name)
memset(s->sex,0,SERIALLEN)
puts("输入性别:")
scanf("%s",s->sex)
for(i=0i<COURSENUMi++)
{
memset(s->courseInfo[i].course,0,SERIALLEN)
puts("输入课程名称:")
scanf("%s",s->courseInfo[i].course)
s->courseInfo[i].score=0.0f
puts("输入课程分数:")
scanf("%f",&(s->courseInfo[i].score))
}
ptr->next=s
ptr=s
}
else cycle=0
}
ptr->next=NULL
ptr=head
head=head->next
free(ptr)
//head=linkSort(head)
ptr=head
printf("学号\t姓名\t性别")
for(i=0i<COURSENUMi++)
printf("\t课程[%d]",i)
printf("\n")
while(ptr!=NULL)
{
printf("%s\t%s\t%s",ptr->serial,ptr->name,ptr->sex)
for(i=0i<COURSENUMi++)
printf("\t%s[%.2f]",ptr->courseInfo[i].course,ptr->courseInfo[i].score)
printf("\n")
ptr=ptr->next
}
return 0
}
C:\mypro>gcc -g -Wall student.c -o student
C:\mypro>student
建立学生信息:
输入学生学号(0退出):
007
输入姓名:
zxsh
输入性别:
male
输入课程名称:
chinese
输入课程分数:
99
输入课程名称:
phy
输入课程分数:
100
输入课程名称:
english
输入课程分数:
98
输入学生学号(0退出):
002
输入姓名:
pipal
输入性别:
female
输入课程名称:
chem
输入课程分数:
98
输入课程名称:
math
输入课程分数:
97
输入课程名称:
chinese
输入课程分数:
100
输入学生学号(0退出):
0
学号姓名性别课程[0] 课程[1] 课程[2]
007 zxshmalechinese[99.00] phy[100.00] english[98.00]
002 pipal female chem[98.00] math[97.00] chinese[100.00]
C:\mypro>
大哥,你在忽悠人吗,这个你也问。给你写一个模板吧。
先建立一个实体类
class userBean{
private String name
//封装字段
public void setName(String name)
{this.name=name }
public String getName()
{return name}
}
//建立一个类,包含main方法,具体怎么写我忘了
class write{
public static void main(String arg[])
{
userBean user=new UserBean()//实例化一个userbean对象
uesr.setName("user")//可以看作是给你要输出的东西赋值吧。
console.writeln(uset.getName())
}
}
c#很多时候没碰了,但是大体应该是这样的,自己回去改改吧,这些都是很基础的,书上应该有,不应该是你的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)