是想把第一图的界面设计和第二图的学生管理系统结合?那功能上有什么改变,具体的要求是什么,及以上两图中的代码贴出来,不然咋帮呢。
修改如下,供参考:
#include <stdio.h>
#include <string.h>
#define N 45
struct student {
char number[10];
char name[8];
char gender[3];;
int age;
char password[10];
float score[4];
} s[N];
int sn = 0;
// 函数声明
void insertdata();
void searchdata();
void printdata();
void administrator();
void teacher();
void student();
int main()
{
int i;
printf("\t\t\t欢迎使用学生成绩管理系统\n");
printf("\t请选择 1.管理员 2.老师 3.学生 0.退出\n");
fflush(stdin);
scanf("%d", &i);
while (i) {
switch (i)
{
case 1:administrator(); break;
case 2:teacher(); break;
case 3:student(); break;
default:printf("您的输入有误,请重试!\n");
}
printf("\t请选择 1.管理员 2.老师 3.学生 0.退出\n");
fflush(stdin);
scanf("%d", &i);
}
}
// 以下函数实现
void administrator()
{
int j;
printf("请选择操作:1)添加学生信息 2)查询学生信息 3)浏览学生信息 0)退出\n");
fflush(stdin);
scanf("%d", &j);
while (j) {
switch (j)
{
case 1:insertdata(); break;
case 2:searchdata(); break;
case 3:printdata(); break;
default:printf("您的输入有误!\n");
break;
}
printf("请选择操作:1)添加学生信息 2)查询学生信息 3)浏览学生信息 0)退出\n");
fflush(stdin);
scanf("%hhd", &j);
}
}
void teacher()
{
printf("教师模块建立中...\n");
}
void student()
{
printf("学生模块建立中...\n");
}
void insertdata()
{
char c;
char number[10];
char name[8];
char gender[3];
int age;
char password[10];
while (1) {
printf("\n请输入学生的全部信息(学号,姓名,性别,年龄,密码),以空格分开\n");
fflush(stdin);
scanf("%s %s %s %d %s", number, name, gender, &age, password);
int j;
for (j = 1; j <= sn; j++) {
if (strcmp(number, s[j].number) == 0)
{
printf("该学号已存在,不能录入!\n");
break;
}
}
if (j > sn) {
sn++;
strcpy(s[sn].number, number);
strcpy(s[sn].name, name);
strcpy(s[sn].gender, gender);
s[sn].age = age;
strcpy(s[sn].password, password);
int i;
printf("请输入该生四门课程成绩,以空格分开\n");
for (i = 0; i < 4; i++)
scanf("%f", &s[sn].score[i]);
printf("该学生信息已插入完成!\n");
}
printf("%s\n", "是否继续输入? (y/n)");
getchar();
c = getchar();
if (c == 'n') break;
}
}
void printdata()
{
int i;
printf("%s\n", "学号 姓名 性别 年龄 密码 高等数学 大学英语 马哲 C语言");
for (i = 1; i <= sn; i++)
printf("%-12s%-9s%-8s%-8d%-9s%8.1f%8.1f%8.1f%8.1f%\n",s[i].number, s[i].name,
s[i].gender,s[i].age,s[i].password,s[i].score[0], s[i].score[1], s[i].score[2],s[i].score[3]);
printf("%d\n", sn);
printf("\n");
}
void searchdata()
{
fflush(stdin);
int i;
struct student tmp;
char number[10];
printf("请输入要查询的学号: ");
getchar();
gets(number);
for (i = 1; i <= sn; i++)
if (strcmp(number, s[i].number) == 0)
{
tmp = s[i];
break;
}
if (i > sn)
printf("未找到相关记录!\n");
else {
printf("%s\n", "学号 姓名 性别 年龄 密码 高等数学 大学英语 马哲 C语言");
printf("%-12s%-9s%-8s%-8d%-9s%8.1f%8.1f%8.1f%8.1f%\n",tmp.number, tmp.name,
tmp.gender,tmp.age,tmp.password, tmp.score[0],tmp.score[1],tmp.score[2], tmp.score[3]);
}
}
已知n个整数x1,x2,x3...xi,以及1个整数k(k<n)。从 n 个整数中任选 k个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4个整数分别为3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22, 3+7+19=29, 7+12+19=38, 3+12+19=34,
现在,要求你计算出和为素数共有多少种。
例如上例,只有一种的和为素数:3+7+19=29