#include<stdio.h>
#include<string.h>
#define N 20
struct shop{
char name[10]
float pri
}a[N]
void inputa(int n,int n0){
for(int i=n-n0i<ni++){
printf("请输入品名 价格\n")
scanf("%s%f",&a[i].name,&a[i].pri)
}
}
void change(char s[],int n){
for(int i=0i<ni++){
if(!strcmp(s,a[i].name)){
printf("改价格:")
scanf("%f",&a[i].pri)
break
}
else printf("未找到!")
}
}
void find(char s[],int n){
for(int i=0i<ni++){
if(!strcmp(s,a[i].name)){
printf("%d\t%s\t%.2f\n",i+1,a[i].name,a[i].pri)
break
}
else printf("未找到!")
}
}
void outa(int n){
for(int i=0i<ni++){
printf("%d\t%s\t%.2f\n",i+1,a[i].name,a[i].pri)
}
}
void del(char s[],int n){
for(int i=0i<n-1i++){
if(!strcmp(s,a[i].name))
while(i<n-1){
a[i]=a[i+1]++i
}
else printf("未找到!")
}
}
int main(){
int t=1,n=0,n0=0
char s[10]
while(t){
printf("1 增加记录\n2 修改价格\n3 删除记录\n4 查询商品\n5 查看全部\n0 退出系统\n")
scanf("%d",&t)
if(t<1)break
switch(t){
case 1:
printf("增加记录条数?")
scanf("%d",&n0)
n+=n0
inputa(n,n0)
break
if(n<1) break
case 2: printf("输入品名:")
scanf("%s",s)
change(s,n)
break
case 3: printf("输入品名:")
scanf("%s",s)
del(s,n)
n--
break
case 4:
printf("输入品名:")
scanf("%s",s)
find(s,n)
break
case 5:
outa(n)
break
}
}
return 0
}
#include<stdlib.h>#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
/*****定义结构体*****/
typedef struct students/*标记为students*/
{
char num[10] /*学生学号*/
char name[10] /*学生姓名*/
int age /*年龄*/
char sex[10] /*性别*/
float cyy /*C语言成绩*/
float computer/*计算机成绩*/
float english /*英语成绩*/
float pj /*平均成绩*/
}STU
STU temp
void sort(STU students[],int n)//排序
void save(STU students[] ,int n)//导出
int Locate(STU students[],int n)//查询
/*--------------显示菜单--------------------*/
char displaymenu()
{
char k
system("cls")
printf(" 学生成绩管理\n")
printf("-----------------------------------应用菜单-------------------------------------\n")
printf(" 1 输入学生成绩\n\n")
printf(" 2 输出学生成绩\n\n")
printf(" 3 查询学生成绩\n\n")
printf(" 4 修改学生成绩\n\n")
printf(" 5 查看成绩排序\n\n")
printf(" 6 查看成绩统计\n\n")
printf(" 7 保存数据\n\n")
printf(" 8 读取数据\n\n")
printf(" 9 退出系统\n\n")
printf(" 请选择你想进行的操作:")
k=getchar()
return k
}
/*****定义输出函数*****/
void printheader() /*格式化输出表头*/
{
printf("\n\n************************学生成绩管理系统****************************\n\n\n")
printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n")
}
void printdata(STU pp) /*格式化输出表中数据*/
{
STU* p
p=&pp
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f|%-5.0f|%-6.0f|\n",p->num,p->name,p->age,p->sex,p->cyy,p->computer,p->english,p->pj)
}
/*****添加学生信息*****/
int add(STU students[] ,int *n)
{
int i=0
system("cls")
printf(" \n")
printf("请输入学生信息\n")
printf(" 退出请在学生号处输入:0 \n")
printf("请输入学生学号:\n ")
scanf("%s",students[i].num)
while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入
{
printf("请输入学生姓名:\n ")
scanf("%s",students[i].name)
printf("****************\n\n\n")
printf("请输入学生年龄:\n ")
scanf("%d",&students[i].age)
printf("****************\n\n\n")
printf("请输入学生性别:\n")
scanf("%s",students[i].sex)
printf("****************\n\n\n")
printf("请输入C语言成绩:\n ")
scanf("%f",&students[i].cyy)
printf("****************\n\n\n")
printf("请输入计算机成绩:\n ")
scanf("%f",&students[i].computer)
printf("****************\n\n\n")
printf("请输入英语成绩:\n ")
scanf("%f",&students[i].english)
printf("****************\n\n\n")
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3
printf("学生平均成绩: %-8.0f\n",students[i].pj)
i++
printf("****************\n\n\n")
printf("请输入学生学号:\n ")
scanf("%s",students[i].num)
}
*n=i
save(students ,i)
return i
}
/*****查询学生信息函数*****/
int Locate(STU students[],int n)
{
int k,m=-1
char num[10],name[20]
int i=0
system("cls")
printf(" 退出请输入:0 \n")
printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n")
scanf("%d",&k)
if(k==1)
{
printf("请输入你要查询的学生学号:\n")
scanf("%s",num)
while(i<n)
{
if(strcmp(students[i].num,num)==0) /*若找到学号*/
{
printf(">>学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\n>C语言成绩:%-8.0f\n>计算机成绩:%-8.0f\n>>英语成绩:%-8.0f\n>>平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj)
m=i
getchar()
break
}
i++
}
if(i>=n)
printf("没有所找学生信息\n")
getchar()
}
else if(k==2)
{
printf("请输入你要查询的学生姓名:\n")
scanf("%s",name)
while(i<n)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj)
m=i
getchar()
break
}
i++
}
if(i>=n)
printf("没有所找学生信息\n")
}
return m/*返回一个根m便于修改学生信息*/
getchar()
}
/*****显示函数*****/
void input(STU students[],int n)
{
int i
system("cls")//清屏
if(n==0) /*表示没有学生信息记录*/
{
printf("\n没有学生记录!\n")
}
printf("\n\n")
printheader()/*输出表格头部*/
i=0
while(i<n)/*逐条输出数组中存储的学生信息*/
{
printdata(students[i])
i++
}
getchar()
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i
if(n<=0)
{
system("cls")
printf(" \n退出请输入:0 \n")
printf("\n----------not found!----------\n")
getchar()
return
}
system("cls")
printf("修改学生信息")
input(students,n)
i=Locate(students,n)/*查询到该数组元素,并返回下标值*/
if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/
{
printf("请输入新的学生信息: \n")
printf(" 学号: ")
scanf("%s",students[i].num)
printf(" 姓名: ")
scanf("%s",students[i].name)
printf(" 年龄: ")
scanf("%d",&students[i].age)
printf(" 性别: ")
scanf("%s",students[i].sex)
printf(" C语言: ")
scanf("%f",&students[i].cyy)
printf(" 英语: ")
scanf("%f",&students[i].english)
printf("计算机: ")
scanf("%f",&students[i].computer)
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3
printf("平均成绩: %-9.0f\n",students[i].pj)
save(students ,n)
printf("\n-------------修改成功!-------------\n")
}
else
printf("not found!\n")
getchar()
}
/*****学生成绩排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k
float p
printf(" \n退出请输入:0 \n")
printf("成绩排序方式选择: 1.按C语言2.按英语3.按平均\n ")
scanf("%d",&k)
if(k==1)/*用选择法对C语言排序*/
{
for(i=0i<ni++)
for(j=0j<n-1j++)
{
if(students[i].english<students[j+1].english)
{
temp=students[i]
students[i]=students[j+1]
students[j+1]=temp
}
}
}
else if(k==2)/*英语用冒泡法*/
{
for(a=0a<n-1a++)
{
c=a
//未完待续